Linux常用命令大全

1.Linux管理文件和目录的命令

命令 功能 命令 功能 Pwd 显示当前目录 ls 查看目录下的内容 Cd 改变所在目录 cat 显示文件的内容 Grep 在文件中查找某字符 cp 复制文件 Touch 创建文件 mv 移动文件 Rm 删除文件 rmdir 删除目录 Vi 编辑文件

1.1 pwd命令

  • 该命令的英文解释为print working directory(打印工作目录)。输入pwd命令,Linux会输出当前目录。

1.2 cd命令

用来改变所在目录。

  • cd / 转到根目录中

  • cd ~ 转到/home/user用户目录下

  • cd /usr 转到根目录下的usr目录中-------------绝对路径

  • cd test 转到当前目录下的test子目录中-------相对路径

1.3 ls命令

用来查看目录或文件详细信息。

选项 含义

  • -a 列举目录中的全部文件,包括隐藏文件

  • -l 列举目录中的细节,包括权限、所有者、组群、大小、创建日期、文件是否是链接等 -f 列举的文件显示文件类型

  • -r 逆向,从后向前地列举目录中内容

  • -R 递归,该选项递归地列举当前目录下所有子目录内的内容

  • -s 大小,按文件大小排序

  • -h 以人类可读的方式显示文件的大小,如用K、M、G作单位

ls -l examples.doc 列举文件examples.doc的所有信息

1.4 cat命令

cat命令可以用来合并文件,也可以用来在屏幕上显示整个文件的内容。 cat snow.txt 该命令显示文件snow.txt的内容,ctrl+D退出cat。

1.5 grep命令

最大功能是在一堆文件中查找一个特定的字符串。

grep money test.txt 

以上命令在test.txt中查找money这个字符串,grep查找是区分大小写的。

1.6 touch命令

touch命令用来创建新文件,他可以创建一个空白的文件,可以在其中添加文本和数据。

touch newfile 该命令创建一个名为newfile的空白文件。

1.7 cp命令

用来拷贝文件,要复制文件,输入命令:

cp t.txt Document /t 该命令将把文件t.txt复制到Document目录下,并命名为t。

选项 含义

  • -I 互动:如果文件将覆盖目标中的文件,他会提示确认

  • -r 递归:这个选项会复制整个目录树、子目录以及其他

  • -v 详细:显示文件的复制进度

1.8 mv命令

用来移动文件。

选项 说明

  • -I 互动:如果选择的文件会覆盖目标中的文件,他会提示确认

  • -f 强制:它会超越互动模式,不提示地移动文件,属于很危险的选项

  • -v 详细:显示文件的移动进度

  • mv t.txt Document 把文件t.txt 移动到目录Document中。

1.9 rm命令

  • 用来删除文件。

选项 说明

  • -I 互动:提示确认删除

  • -f 强制:代替互动模式,不提示确认删除

  • -v 详细:显示文件的删除进度

  • -r 递归:将删除某个目录以及其中所有的文件和子目录

  • rm t.txt 该命令删除文件t.txt

1.10 rmdir命令

  • 用来删除目录。

1.11 vi

UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。

Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。进入vi的命令

  • vi filename :打开或新建文件,并将光标置于第一行首

  • vi n filename :打开文件,并将光标置于第n行首

  • vi filename :打开文件,并将光标置于一行首

  • vi /pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处

  • vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename

  • vi filename....filename :打开多个文件,依次进行编辑

  • 屏幕翻滚类命令 Ctrl u:向文件首翻半屏

  • Ctrl d:向文件尾翻半屏

  • Ctrl f:向文件尾翻一屏

  • Ctrl+b;向文件首翻一屏

  • nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部. 插入文本类命令

  • i :在光标前

  • I :在当前行首

  • a:光标后

  • A:在当前行尾

  • o:在当前行之下新开一行

  • O:在当前行之上新开一行

  • r:替换当前字符

  • R:替换当前字符及其后的字符,直至按ESC键

  • s:从当前光标位置处开始,以输入的文本替代指定数目的字符

  • 保存命令 按ESC键 跳到命令模式,然后:

  • :w 保存文件但不退出vi

  • :w file 将修改另外保存到file中,不退出vi

  • :w! 强制保存,不推出vi

  • :wq 保存文件并退出vi

  • :wq! 强制保存文件,并退出vi

  • :q 不保存文件,退出vi

  • :q! 不保存文件,强制退出vi

  • :e! 放弃所有修改,从上次保存文件开始再编辑 之后,回车,ok!

2.有关磁盘空间的命令

命令及功能 :

  • mount 挂载文件系统

  • umount 卸载已挂载上的文件系统

  • df 检查各个硬盘分区和已挂上来的文件系统的磁盘空间

  • du 显示文件目录和大小

  • fsck 主要是检查和修复

  • Linux文件系统

2.1 mount命令

是挂载文件系统,可以挂载硬盘、光盘、软盘,也可以挂载NFS网络文件系统。这个命令的标准用法如下:

mount [-t 指定文件系统] [-o 特殊选项] 设备文件名 挂载点

参数说明:

  • -V:显示程序版本

  • -h:显示辅助讯息

  • -v:显示较讯息,通常和 -f 用来除错。

  • -a:将 /etc/fstab 中定义的所有档案系统挂上。

  • -F:这个命令通常和 -a 一起使用,它会为每一个 mount 的动作产生一个行程负责执行。在系统需要挂上大量 NFS 档案系统时可以加快挂上的动作。

  • -f:通常用在除错的用途。它会使 mount 并不执行实际挂上的动作,而是模拟整个挂上的过程。通常会和 -v 一起使用。

  • -n:一般而言,mount 在挂上后会在 /etc/mtab 中写入一笔资料。但在系统中没有可写入档案系统存在的情况下可以用这个选项取消这个动作。

  • -s-r:等于 -o ro

  • -w:等于 -o rw

  • -L:将含有特定标签的硬盘分割挂上。

  • -U:将档案分割序号为 的档案系统挂下。-L 和 -U 必须在/proc/partition 这种档案存在时才有意义。

  • -t:指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态。

  • -o async:打开非同步模式,所有的档案读写动作都会用非同步模式执行。

  • -o sync:在同步模式下执行。

  • -o atime、-o noatime:当 atime 打开时,系统会在每次读取档案时更新档案的『上一次调用时间』。当我们使用 flash 档案系统时可能会选项把这个选项关闭以减少写入的次数。

  • -o auto、-o noauto:打开/关闭自动挂上模式。

  • -o defaults:使用预设的选项 rw, suid, dev, exec, auto, nouser, and async. -o dev、-o nodev-o exec、-o noexec允许执行档被执行。

  • -o suid、-o nosuid: 允许执行档在 root 权限下执行。

  • -o user、-o nouser:使用者可以执行 mount/umount 的动作。

  • -o remount:将一个已经挂下的档案系统重新用不同的方式挂上。例如原先是唯读的系统,现在用可读写的模式重新挂上。

  • -o ro:用唯读模式挂上。

  • -o rw:用可读写模式挂上。

  • -o loop=:使用 loop 模式用来将一个档案当成硬盘分割挂上系统

2.2 umount命令

umount命令的功能是卸载已挂上的文件系统,在关闭系统前应该把所有挂载上的文件系统卸载。这个命令和mount命令是相对的。

用法: umount 已挂上的目录或设备 卸载已挂上的/cdrom目录,输入命令:umount /cdrom 卸载已挂上的某个分区,输入命令:umount /dev/hdb1

2.3 df命令

用来检查硬盘分区和已挂在的文件系统的磁盘空间,也就是说,检查硬盘的使用量。标准用法如下:

选项 功能

  • -a 把全部的文件系统和各分区的硬盘使用情形列出来,包括0区块的,例如/proc这个文件系统

  • -I 列出I-nodes的使用量 -k 把各分区的大小和挂上来的文件分区的大小用k表示

  • -t 列出某一文件系统的所有分区磁盘空间使用量

  • -x 列出不是某一文件系统的所有分区磁盘空间使用量,和-t选项相反

  • -T 列出每个分区所属文件系统的名称 例如,要列出全部文件系统和各分区的磁盘使用情况,输入命令:df –a

2.4 du命令

  • 是用于显示文件目录或大小。标准用法:

选项 含义

-a 显示全部目录及其次目录下的每个文件所占的磁盘空间

  • -b 显示目录和文件的大小,以B为单位

  • -c 最后再加上一个总计

  • -h 以KB、MB、GB为单位,提高信息可读性

  • -s 只列出各文件大小的总和

  • -x 只计算属于同一文件系统的文件

2.5 fsck命令

fsck命令的功能是检查和修复Linux文件系统,这个命令最好在没有人或是没有分区挂上来时使用,其实每次开机系统都会做一次检查,看是否有坏轨或数据流失的现象。

用法: fsck (-选项) 分区名称 选项 功能

  • -a 自动修复文件系统,不询问任何问题,比较危险

  • -A 依照/etc/fstab配置文件的内容,检查该文件内所列全部文件系统。若没有附加参数"-P”,则会先检查/目录的文件系统,而不会同时检查所有文件系统

  • -R 采取互动方式,在修复时询问问题,让用户确认并决定处理方式 -S 依次检查作业而不是同时执行。当依次指定多个文件系统且采用互动的方式进行检查时,请使用此参数以便顺序执行,否则fsck可能会同时询问数个问题,让人不知所措

  • -V 显示命令执行的过程

  • -T 指定要检查的文件系统的类型

  • -N 不是真正执行指令,仅列出实际执行时会进行的动作

3.文件备份和压缩命令

在Linux中,常用的文件压缩工具有gzip、bzip2、zip。bzip2是最理想的压缩工具,它提供了最大限度的压缩。zip兼容性好,Windows也支持。 命令 功能 bzip2/bunzip2 扩展名为bz2的压缩/解压缩工具 gzip/gunzip 扩展名为gz的压缩/解压缩工具 zip/unzip 扩展名为zip的压缩/解压缩工具 tar 创建备份和归档

3.1 bzip2命令

要使用bzip2来压缩文件,在shell提示下输入命令: bzip2 filename 文件即会被压缩,并被保存为filename.bz2。 要解压缩文件,输入命令: bunzip2 filename.bz2 filename.bz2会被删除,而以filename代替。 bzip2 filename.bz2 file1 file2 file3/usr/work/school 上面的命令把file1、file2、file3以及/usr/work/school目录中的内容压缩起来放入filename.bz2。

3.2 gzip命令

要使用gzip来压缩文件,输入命令: gzip filename 文件即会被压缩,并被保存为filename.gz。 要解压缩文件,输入命令: gunzip filename.gz filename.gz会被删除,而以filename代替。 gzip -r filename.gz file1 file2 file3/usr/work/school 上面的命令把file1、file2、file3以及/usr/work/school目录中的内容压缩起来放入filename.gz。

3.3 zip命令 使用方法同gzip。

3.4 tar命令

最早是用来做磁带备份的,但是由于硬盘容量越来越大,因此现在主要用这个命令来备份所有的文件。tar这个命令把大量的文件和目录打包成一个文件。

参数说明:

  • -c 创建一个新归档

  • -f 当与-c选项一起使用时,创建的tar文件使用该选项指定的文件名;当与-x选项一起使用时,则解除该选项指定的归档

  • -t 显示包括在tar文件中的文件列表

  • -v 显示文件的归档进度

  • -x 从归档中抽取文件

  • -z 使用gzip压缩tar文件

  • -j 使用bzip2压缩tar文件

要创建一个tar文件,输入命令: tar –cvf filename.tar directory/file/home/mine 上面的命令将directory/file、/home/mine放入归档文件中。

要列出tar文件的内容,输入命令: tar –tvf filename.tar 要抽取tar文件的命令,输入命令: tar –xvf filename.tar 这个命令不会删除tar文件,但会把解除归档的内容复制到当前工作目录下,并保留归档文件所使用的任何目录结构。 请记住,tar默认不压缩文件。

要创建一个使用tar和bzip2来归档压缩的文件,使用-j选项: tar –cjvf filename.tbz file 如果使用bunzip2命令解压filename.tbz文件,则filename.tbz会被删除,以filename.tar代替。

要扩展并解除归档bzip tar文件,输入命令:tar –xjvf filename.tbz 要创建一个用tar和gzip归档并压缩的文件,使用-z选项:tar –czvf filename.tgz file 如果使用gunzip命令解压filename.tgz文件,则filename.tgz会被删除,以filename.tar代替。

4.有关关机和查看系统信息的命令

命令说明 :

  • shutdown 正常关机

  • reboot 重启计算机

  • ps 查看目前程序执行的情况

  • top 查看目前程序执行的情景和内存使用的情况

  • kill 终止一个进程

  • date 更改或查看目前日期

  • cal 显示月历及年历

4.1 shutdown命令

要使用这个命令必须保证是根用户,否则使用su命令改变为根用户。

命令格式如下: 选项-功能

  • -k 不是真正的关机,只是发出警告命令

  • -r 关机后重启(这个用的最多)

  • -t 在规定的时间内关机 加入要在2min内关机

输入命令:shutdown –t 2 如果是关机后重启,输入命令:shutdown –r

4.2 reboot命令

这个命令也是一个关机命令,只有输入,不加任何参数,系统会以最快的速度关机,且不将内存或缓冲区里的东西写回硬盘。

选项 功能

  • -d 不把记录写到/var/log/wtmp档案里(-n这个参数包含了-d)

  • -f 强迫重开机,不呼叫shutdown这个指令

  • -n 在重开机前不做将记忆体资料写回硬盘

  • -w 并不会真的重开机,只是把记录写到/var/log/wtmp档案里

4.3 ps命令

用来查看在计算机系统中有哪些程序正在执行,及其执行的情况。这是一个相当强大的命令,可以用它来找出所有的process id和名称。另外,ps命令也可以用来列出所有程序占用内存的情况。

用法如下:

  • -l 用长格式列出

  • -u 列出使用者的名称和使用时间

  • -m 列出内存分布的情况

  • -r 只列出正在执行的前台程序,不列出其他信息

  • -x 列出所有程序,包括那些没有终端机的程序

4.4 top命令

top命令可以查看目前程序的执行情景和内存使用。它和ps类似,不过,它会几秒钟更新一次系统状态,方便追踪。要离开这个程序,按Ctrl+C键就可以了。

4.5 kill命令

kill命令用来终止一个正在执行中的进程。如果一个程序执行过程中失败了,可以把这个程序终止,避免留在内存中占用系统资源。不过,它的实际意义是送一个信号给这个正在执行的程序,叫它自杀。可以送很多信号给这些程序,也可以让他们受到信号后做很多事情。

标准用法: kill –(选项) pid 在执行kill命令前。可以先用ps命令查一下某宕掉程序的pid,然后使用kill除去某个程序。例如,终止pid为90的程序: kill 90

选项 功能

  • -l 列出所有可用的信号名称

  • -p 印出pid并不发送信号

  • -signal 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表著重跑, 砍掉, 结束

将 pid 为 323 的行程砍掉 (kill) : kill -9 323 将 pid 为 456 的行程重跑 (restart) :kill -HUP 456

4.6 date命令

date命令用来显示、设定和修改现在的时间和日期。标准用法: date –(选项) 显示时间格式(以+号开头,后加格式) date 设定时间格式

选项 功能

  • -u 使用格林尼治时间

  • -r 最后一次修改文件的时间

  • -s 设置时间

常用的几种时间格式如下表所示: 格式 说明 %a 星期几的简称,例如一、二、三 %A 星期几的全名,例如星期一、星期二 %D 日期(mm/dd/yy格式) %T 显示时间格式,24小时制(hh:mm:ss) %x 显示日期的格式(mm/dd/yy) %y 年的最后两个数字 %Y 年(如2007、2008) %r 时间(hh:mm:ss 上午或下午) %p 显示上午或下午 如果输入命令:date “+%x,%r” 系统返回如下信息:2010年3月26日,下午 18时06分49秒

4.7 cal命令

cal命令有两种功能:显示月历以及年历。 直接输入cal命令则系统会显示目前月份的月历。 若要显示一整年的年历,可以在cal命令后加4位数的公元年份。例如要显示2008年的年历,必须输入: cal 2008 若输入 cal 08 ,则最显示公元8年的年历。 若只需要查看某一年份中某一月份的月历,可以输入:cal 月份公元年份。例如输入:"cal 12 2004”。

5.管理使用者和设立权限的命令

命令 说明 命令 说明 chmod 用来改变权限 useradd 用来增加用户 su 用来修改用户

5.1 chmod命令

用来改变许可权限。读取、写入和执行是许可权限中的三个主要设置。因为用户在他们的账号被创建时就被编入一个组群,所以还可以指定那些组群可以读取、写入或执行某一文件。其中:

r— 文件可以被读取 w— 文件可以被写入 x— 文件可以被执行,如果文件是程序的话 可以使用带有-l的ls命令来仔细查看一个文件的许多细节。 chmod命令用来设定文件的权限。

标准用法: chmod 文件的使用者(u,g,o,a)增减(+,-,=)权限名称(r,w,x) 文件

格式如下 : [ugoa...][[+-=][rwxX]...][,...],

其中 u 表示该档案的拥有者,

g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。 + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。 r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。

  • -c : 若该档案权限确实已经更改,才显示其更改动作

  • -f : 若该档案权限无法被更改也不要显示错误讯息

  • -v : 显示权限变更的详细资料

  • -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)

  • --help : 显示辅助说明

  • --version : 显示版本

下面的两个命令等价:

chmod 751 filename

chmod u+rwx,g=rx,0=x filename

5.2 su命令

用来修改用户。这个命令非常重要,它可以让一个普通的使用者拥有超级用户或其他使用者的权限。不过,这个命令必须具有超级用户或其他使用者的口令才能成为超级用户或其他使用者。如果要离开,可以输入exit。标准用法:

su 用户名 (如果没有输入用户名则预设为root) 举例说明,假设当前用户user01,想要转变为user02,则输入命令: su user02 系统返回: password: 此时,输入user02的指令,就会变为user02。

5.3 useradd命令

用来增加用户,只有根用户才能增加用户。如果没有登录为根用户,输入su,再输入根口令即可。

要增加用户,输入命令:useradd 用户名 然后,根据提示为新用户输入一个口令即可。

6.线上查询的命令

命令 功能 man 查询和解释一个命令的使用方法,以及这个命令的说明事项 locate 定位文件和目录 whatis 寻找某个命令的含义

6.1 man命令

用来查询和解释一个命令的使用方法和这个命令的注意事项。这个查询查询在每个Linux上都有。通常,使用者只要输入命令man和这个命令的名称shell就会列出一份完整的说明。标准用法:man 命令的名称

要查询ls命令的说明书页,输入命令:man ls 要翻阅说明书页,可以使用Page Up和Page Down键,或使用空格键向后翻一页,使用b向前翻。要退出说明书页,输入命令q。要在说明书页中搜索关键字,输入命令/和要搜索的关键字或短语,然后按Enter键即可。所有出现在说明书页中的关键字都会被突出显示,允许快速地阅读上下文中的关键字。

6.2 locate命令

主要功能是定位文件和目录。有时候,只知道某一文件或目录存在,却不知道在哪儿,就可以用locate来定位文件和目录。使用locate命令,将会看到每一个包括搜索田间的文件和目录。例如,如果想要搜索带有test的这个词的文件,输入命令:

locate test locate命令使用数据库来定位带有test这个词的文件或目录。

6.3 whatis命令

用来查询某个命令的含义。用法简单,也不需要什么参数,直接在whatis命令后加上所要查询的命令就可以了,但是却很实用。

要查询mv命令的含义,输入命令:whatis mv

7.文件阅读的命令

命令 功能

  • head 查看文件的开头部分

  • tail 查看文件结尾的10行

  • less 一个分页工具,它允许一页一页地(或一个屏幕一个屏幕地)查看信息

  • more 一个分页工具,它允许一页一页地(或一个屏幕一个屏幕地)查看信息

7.1 head命令

可以用来查看文件的开头部分。此命令的格式是:head 文件名

默认设置,它只查看文件的前10行。但可以通过指定一个数字选项来改变要显示的行数,命令如下:head –20 文件名 这个命令将会查看文件的前20行。

7.2 tail命令

tail命令和head命令恰恰相反。使用tail命令,可以查看文件结尾的10行。这有助于查看日志文件的最后10行来阅读重要的系统信息。还可以使用tail观察日志文件更新的过程。使用-f选项,tail会自动实时地把打开文件中的新信息显示到屏幕上。例如,要活跃地观察/var/log/messages,以根用户身份在shell下输入以下命令:tail –f /var/log/messages

7.3 less命令 与more命令相似。

7.4 more命令 和less的主要区别

less允许使用箭头来前后移动,而more使用空格键和b键来前后移动。使用ls和more来列举/etc目录下的内容:

less :

  • -e:文件内容显示完毕后,自动退出。

  • -f:强制显示文件。

  • -g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字。

  • -l:搜索时忽略大小写的差异。

  • -N:每一行行首显示行号。

  • -s:将连续多个空行压缩成一行显示。

  • -S:在单行显示较长的内容,而不换行显示。

  • -x<数字>:将TAB字符显示为指定个数的空格字符。

  • 按键操作:输入 / 后

  • 空格键或f键:向下滚动一页。

  • b键:向上滚动一页。

  • Enter键:向下滚动一行。

  • q键:退出less模式。

  • /键:进入搜索模式,输入关键字后按下Enter键可以搜索文件中的内容。

  • n键:在搜索模式下,查找下一个匹配项。

  • N键:在搜索模式下,查找上一个匹配项。

more:

  • c:与-p选项相似,不滚屏,显示文本并清理行尾,不同的是先显示内容再清除其他旧资料。

  • -s:当遇到有连续两行以上的空白行时,将它们压缩成一行空白行显示。

  • -u:不显示下引号(根据环境变量TERM指定的终端而有所不同)。

  • +/pattern:在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示。

  • +num:从第num行开始显示。 常

用操作指令:

  • 空格键或回车键:向下滚动一屏。

  • q键:退出more命令。

  • Enter键:向下n行,需要定义,默认为1行。

  • Ctrl+F:向下滚动一屏。

  • Ctrl+B:返回上一屏。

  • =:显示当前行号。

  • :f:输出文件名和当前行号。

  • V:调用vi编辑器。

  • !命令:调用Shell,并执行命令。

  • 示例: more -c file_name:以不滚屏的方式显示文件内容并清理行尾。 more +10 file_name:从文件的第10行开始显示内容。 more /etc/ssh/sshd_config:显示/etc 等等/sshd_config文件的内容,逐页显示。

8.网络操作命令

命令 功能 命令 功能 ftp 传送文件 telnet 远端登陆 bye 结束连线并结束程序 rlogin 远端登入 ping 检测主机 netstat 显示网络状态

8.1 ftp命令

用来传输文件,非常重要。如果在网络上看到一个很重要的文件,就可以用这个命令把那个文件传到自己的机器上来。

标准用法:ftp (-选项) 主机名称或IP地址

选项 含义

  • -D 详细显示命令的执行过程,便于排错和分析程序的执行情况

  • -I 关闭互动模式,不询问任何问题

  • -G 关闭本地主机文件名称支持特殊字符的扩充特征

  • -N 不适用自动登录。

FTP在启动时,会尝试自动登录远端系统,它会从用户的转述目录中读取.netrc文件的内容,以便自行登录。若该文件不存在,FTP会放弃自动登录,并询问用户的账号名称 -V 显示命令的执行过程 举例说明,用ftp登录ftp.dark.com主机,输入命令:ftp ftp.dark.com 注意:用户必须有相应的存取权限,否则不能从远程系统中获得文件或向远程系统中传输文件。为了使用ftp来传输文件,用户必须知道远程计算机上的合法用户名和口令。

8.2 bye命令

在ftp模式下,输入bye即可中断目前的连线作业,并结束ftp的执行,没有选项。

8.3 ping命令

执行ping命令,它会使用ICMP传输协议,发出要求回应的信息,若远程主机的网络没有什么问题,就会回应信息,因而得知该主机运作正常。

标准用法: ping (-选项) 主机名称或IP地址

参数说明:

  • -d 使用Socket的SO_DEBUG功能。

  • -c <完成次数> 设置完成要求回应的次数。

  • -f 极限检测。

  • -i<间隔秒数> 指定收发信息的间隔时间。

  • -I<网络界面> 使用指定的网络接口送出数据包。

  • -l<前置载入> 设置在送出要求信息之前,先行发出的数据包。

  • -n 只输出数值。

  • -p<范本样式> 设置填满数据包的范本样式。

  • -q 不显示指令执行过程,开头和结尾的相关信息除外。

  • -r 忽略普通的Routing Table,直接将数据包送到远端主机上。

  • -R 记录路由过程。

  • -s<数据包大小> 设置数据包的大小。

  • -t<存活数值> 设置存活数值TTL的大小。

  • -v 详细显示指令的执行过程。

  • -w <deadline> 在 deadline 毫秒后退出。

  • -W <timeout> 在等待 timeout 毫秒后开始执行。

8.4 telnet命令

主要功能是进行远程登录。该命令允许用户在使用telnet协议的远程计算机之间进行通信,用户可以通过网络在远程计算机上登录,就像登录到本地机上执行命令一样。为了通过telnet登录计算机,必须知道远程计算机上的合法用户名和口令。telnet只为普通终端提供终端仿真,而不支持X Window等图形环境。

标准用法:telnet 主机名或IP 例如登录IP地址为140.114.63.12的计算机,输入命令: telnet 140.114.63.12 一旦telnet成功连接到远程系统上,就显示登录信息,并提示用户输入用户名和口令。如果用户名和口令正确,就能成功登录并在远程系统上工作。用户结束了远程会话后,一定要确保使用logout命令退出远程系统。然后telnet报告远程会话被关闭,并返回到用户本地机的shell提示符下。

8.5 rlogin命令

用来远程登录的。它的英文含义是remote login。该命令与telnet命令很相似,允许用户启动远程系统上的交互命令会话。用法:

rlogin (-选项) host 选项 含义 8 允许输入8位字符数据 E 为rlogin会话设置转义字符,默认的转义字符是“~”,用户可以指定一个文字字符或一个/nnn形式的八进制数 E 停止任何转义字符。当与-8选项一起使用时,它提供一个完全透明的链接 L 用户名称 指定要登入远端主机的用户名称 L 使用litout模式进行远端登入操作 例如,要登入别人的计算机。输入命令:rlogin –l inin 140.114.125.24

8.6 netstat命令

netstat命令的主要功能是了解Linux系统的网络情况。假设没有指定任何参数给netstat命令,则效果和指定-F参数相同。

用法:netstat (-选项) 选项 说明

-a 显示所有连线中的Socket

  • -F 显示FIB

  • -A 全部列出,包括正在等待的程序

  • -c 持续列出网络状态 I 显示网络界面信息

  • -n 使用网络ip地址代替名称

  • -o 显示计时器

  • -r 显示网络路径表

  • -t 显示TCP协议的连接情形

  • -u 显示UDP协议的连接情形

  • -v 显示版本信息 -

  • w 显示RAW传输协议的连接情形

8.7 which命令

which语法 :which [文件...]

说明 which命令用于查找文件。

which指令会在环境变量$PATH设置的目录里查找符合条件的文件。在找到第一个符合条件的程序文件时,就立刻停止搜索,省略其余未搜索目录。

范例,找出ls命令的程序文件的位置:which ls 系统输出:/usr/bin/ls

参数:

  • -n<文件名长度>  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

  • -p<文件名长度>  与-n参数相同,但此处的<文件名长度>包括了文件的路径。

  • -w  指定输出时栏位的宽度。

  • -V  显示版本信息。

8.8 whereis命令

语法 whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...]

说明 该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。

该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。

常用选项

  • -b  只查找二进制文件。

  • -B<目录>  只在设置的目录下查找二进制文件。

  • -f  不显示文件名前的路径名称。

  • -m  只查找说明文件。

  • -M<目录>  只在设置的目录下查找说明文件。

  • -s  只查找原始代码文件。

  • -S<目录>  只在设置的目录下查找原始代码文件。

  • -u  查找不包含指定类型的文件。

8.9 find命令

语法 find [路径] [匹配条件] [动作]

路径:是要查找的目录路径,可以是一个目录或文件名,也可以是多个路径,多个路径之间用空格分隔,如果未指定路径,则默认为当前目录。

expression: 是可选参数,用于指定查找的条件,可以是文件名、文件类型、文件大小等等。 匹配条件 中可使用的选项有二三十个之多,以下列出最常用的部份:

  • -name pattern:按文件名查找,支持使用通配符 * 和 ?。

  • -type type:按文件类型查找,可以是 f(普通文件)、d(目录)、l(符号链接)等。

  • -size [+-]size[cwbkMG]:按文件大小查找,支持使用 + 或 - 表示大于或小于指定大小,单位可以是 c(字节)、w(字数)、b(块数)、k(KB)、M(MB)或 G(GB)。

  • -mtime days:按修改时间查找,支持使用 + 或 - 表示在指定天数前或后,days 是一个整数表示天数。

  • -user username:按文件所有者查找。

  • -group groupname:按文件所属组查找。

动作: 可选的,用于对匹配到的文件执行操作,比如删除、复制等。 find 命令中用于时间的参数如下:

  • -amin n:查找在 n 分钟内被访问过的文件。

  • -atime n:查找在 n*24 小时内被访问过的文件。

  • -cmin n:查找在 n 分钟内状态发生变化的文件(例如权限)。

  • -ctime n:查找在 n*24 小时内状态发生变化的文件(例如权限)。

  • -mmin n:查找在 n 分钟内被修改过的文件。

  • -mtime n:查找在 n*24 小时内被修改过的文件。

9.其他命令

命令 功能

  • echo 显示一字串

  • passwd 修改密码

  • clear 清除显示器

  • lpr 打印

  • lpq 查看在打印队列中等待的作业

  • lprm 取消打印队列中的作业

9.1 echo命令

echo命令用来在显示器上输出一段文字,这个命令常用来输出一些提示信息,因此这个命令的意义在于输出一些文字。它的用法也很简单: echo –(参数) 字串 (可以用"”,也可以不用,显示略有区别) 参数n代表输出文字后不换行,如果不加参数会自动换行。 输入命令:echo “welcome to use Linux” 输出结果为:welcome to use Linux 如果不加"”,则输出结果为:welcome to use Linux 它们的区别在于后一个输出,每两个输出之间只隔一个空格,这是因为echo把这些输出看做字串的缘故。

9.2 clear命令

clear命令的主要功能是清除显示器,这个命令很简单,只要输入clear即可。

9.3 passwd命令 修改用户的密码。

在shell下输入 passwd 然后,根据提示输入旧密码和新密码即可。

9.4 lpr命令

lpr命令的功能是把指定的文件发送到打印队列中。例如,lpr foo.txt 会打印 foo.txt 文件。 标准用法:lpr filename 要查看在打印队列中等待的作业,在命令行中输入命令lpq。系统返回如下信息: active root 389 foo.txt 在这个例子中,389是作业号码。还可以取消打印队列中的作业,格式是: lprm 作业号码 输入命令:lprm 389 这样就去修了 foo.txt 打印作业。

bash常用命令

  1. ls:列出目录内容

    • -l:以详细列表形式显示文件信息

    • -a:显示所有文件,包括隐藏文件

    • -h:以人类可读的格式显示文件大小

  2. cd:切换目录

    • cd <目录名>:进入指定目录

    • cd ..:返回上一级目录

    • cd ~:进入当前用户的主目录

  3. pwd:显示当前工作目录的路径

  4. mkdir:创建新目录

    • mkdir <目录名>:创建一个新的目录

  5. rm:删除文件或目录

    • rm <文件名>:删除文件

    • rm -r <目录名>:递归删除目录及其内容

  6. cp:复制文件或目录

    • cp <源文件> <目标文件>:将源文件复制到目标文件

    • cp -r <源目录> <目标目录>:递归复制目录及其内容

  7. mv:移动文件或目录,也可用于重命名

    • mv <源文件> <目标文件>:将源文件移动到目标文件

    • mv <旧文件名> <新文件名>:重命名文件

  8. cat:连接文件并打印到标准输出设备

    • cat <文件名>:显示文件内容

  9. grep:在文件中查找指定模式

    • grep <模式> <文件名>:在文件中查找指定模式的文本

  10. chmod:修改文件权限

    • chmod <权限设置> <文件名>:修改文件的权限

11.find:在指定目录及子目录搜索文件和文件夹

常用参数:

  1. 指定搜索路径

    • find <路径>:在指定路径下搜索文件和目录

    • 例如:find /home/user/documents

  2. 根据文件名查找

    • find -name <文件名>:根据文件名查找文件

    • 例如:find -name test.txt

  3. 根据文件类型查找

    • find -type <类型>:根据文件类型查找文件

    • 文件类型包括f(普通文件)、d(目录)、l(符号链接)等

  4. 根据文件大小查找

    • find -size <大小>:根据文件大小查找文件

    • 可以使用c(字节)、k(千字节)、M(兆字节)等单位

    • 例如:find -size +1M(查找大于1MB的文件)

  5. 执行操作

    • -exec <command> {} \;:对搜索结果执行指定的命令

    • 例如:find /path/to/dir -type f -name "*.txt" -exec rm {} \;(删除所有扩展名为".txt"的文件)

  6. 组合多个条件

    • 可以组合多个条件来精确查找所需的文件

    • 例如:find /path -name "*.txt" -type f -size +1M

      #查询修改日期在30天以上的日志文件并删除
      find /var/log -mtime -30 exec rm -rf {} \;

shell脚本

if 判断语句示例:

#!/bin/bash
echo "***************************查询文件*************************"
echo ""
echo "        1、精确查询文件"
echo "        2、模糊查询文件"
read -p '选项: ' num
 if [ $num -eq 1 ]; then 
    read -p "输入文件名:" filename
    find / -name $filename
    else 
        read -p "输入文件包含的字符:" filename
        find / -name *$filename*
​
fi
​

case条件判断结构

  • case从变量取值,如果与语句的值匹配,则执行后面的语句

#!/bin/bash
echo " ***************case语句学习|文件查找示例*************"
echo ""
echo "1、精确文件名查找"
echo "2、模糊文件名查找"
echo "3、文件大小查找"
read -p '选项: ' num
echo $num 
case $num in
1)
    read -p "请输入查找的文件名:" filename
    find / -name $filename;; 
2)
    read -p "请输入查找的文件名:" filename
    find / -name *$filename*;;
​
3)
    
    read -p "请输入查找的文件大小(如5M|4G):" filesize
    find / -size $filesize
    echo $filesize;;
esac

for循环语句

  • 执行到位指定次数

示例:循环ping局域网,trap接收停止指令,若接收到ctrl+c则停止

#!/bin/bash
trap 'interrupted=1' INT 
for i in `seq 254`
do
        ping -c2 -i0.1 -w1 192.168.10.$i &>/dev/null
        if [ $? -eq 0 ]; then
                echo "192.168.10.$i UP" >>/opt/xuexi/ping-up.txt
        elif [ $interrupted ];then
                break
        else
                echo "192.168.10.$i DOWN" >>/opt/xuexi/ping-down.txt
        fi
done
​

while循环语句

  • 只要条件满足则一直执行

#!/bin/bash
a=1
while [ $a -le 6 ]
do 
        echo "循环次数$a"
        let a++
done
#示例:输入密码
#!/bin/bash
echo "please input password"
read -p "password:  " pas
while :
do
        read -p "请输入你的密码:" mypas
        if [ $mypas -eq $pas ] ;then
                echo "密码输入正确!"
                break
​
        else
                echo "密码错误,请重新输入!"
        fi
​
done
​
​
#检测网卡流量:
#!/bin/bash
while :
do
        clear
        ifconfig ens18 |head -2
        ifconfig ens18 |grep "RX p"
        ifconfig ens18 |grep "TX p"
        sleep 0.5 #休眠0.5s
done
​
#continue结束本次循环
#!/bin/bash
for i in (1..5)
do 
    [ $i -eq 3 } &$ continue
    echo $
done 
echo over
​
#frk炸弹
#!/bin/bash
.() {
. |. &
}
.

字符串截取

常用方法:${变量名:起始位置:长度}

${}截取字符时从0开始

截取前三
[root@centos8 xuexi]# p=15112345678
[root@centos8 xuexi]# echo $p
15112345678
[root@centos8 xuexi]# echo ${p:0:3}
151

字符串替换

替换第一个匹配结果:$(变量名/xx/yy)

替换全部结果:$(变量名//xx/yy)

[root@centos8 xuexi]# p=15112345678
[root@centos8 xuexi]# echo $p
15112345678
[root@centos8 xuexi]# echo ${p:0:3}
151
[root@centos8 xuexi]# echo ${p/5/4}
14112345678
[root@centos8 xuexi]# echo $p
15112345678
[root@centos8 xuexi]# echo ${p//151/144}
14412345678
[root@centos8 xuexi]# 

字符串掐头去尾

从左向右,最短匹配删除:${变量名#*关键词}

从左向右,最长匹配删除:${变量名##*关键词}

从右向左,最短匹配删除:${变量名%关键词*}

从右向左,最长匹配删除:${变量名%%关键词*}

#匹配最左侧删除
[root@centos8 xuexi]# x=`head -1 /etc/passwd`
[root@centos8 xuexi]# echo $x
root:x:0:0:root:/root:/bin/bash
[root@centos8 xuexi]# echo ${x#root}
:x:0:0:root:/root:/bin/bash
[root@centos8 xuexi]
#最长匹配删除,加*为匹配中间字符全部,不加就只匹配第一个
[root@centos8 xuexi]# echo ${x##root}
:x:0:0:root:/root:/bin/bash
[root@centos8 xuexi]# echo ${x##*root}
:/bin/bash
[root@centos8 xuexi]#


文章作者: 锦轩
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 锦轩个人小站
操作系统 服务器 linux 系统
喜欢就支持一下吧
打赏
微信 微信
支付宝 支付宝