Linux 常用命令100+

Linux 运维/开发/测试 常用命令100+(v1.1)

帮助命令(2个)

命令功能说明示例
man 命令查看普通命令帮助,命令的词典,更复杂的还有info,但不常用。root@brLinux ~]#man ls
help 命令查看Linux内置命令的帮助,比如cd命令。[root@brLinux ~]#help cd
命令 --help查看命令简易帮助[root@brLinux ~]#mkdir --help

整理的命令集合

查看文件及内容处理命令(17个)

1、cat

全拼concatenate,功能是用于连接多个文件并且打印到屏幕输出或重定向到指定文件中。

用法:cat [选项]... [文件]...

示例:    
    # 显示文件全部内容(可同时查看多个文件)
    cat 3.unl  

    #查看文件内容,打印输出时显示行号
    cat -n 3.unl |more  
(部分)参数:
  -A, --show-all           等于-vET
  -b, --number-nonblank    对非空输出行编号
  -e                       等于-vE
  -E, --show-ends          在每行结束处显示"$"
  -n, --number             对输出的所有行编号
  -s, --squeeze-blank      不输出多行空行
  -t                       与-vT 等价
  -T, --show-tabs          将跳格字符显示为^I
  -u                       (被忽略)
  -v, --show-nonprinting   使用^ 和M- 引用,除了LFD和 TAB 之外
      --help		显示此帮助信息并退出
      --version		显示版本信息并退出
如果没有指定文件,或者文件为"-",则从标准输入读取。

2、tac

tac是cat的反向拼写,因此命令的功能为反向(倒序)显示文件内容。

用法:tac [选项]... [文件]...
将每个FILE写入标准输出,最后一行先写入。如果没有FILE,或者当FILE为-时,读取标准输入。
长期权的强制性参数对于短期权也是强制性的。
示例:
   tac w_abr_0000.unl 倒序显示文件内容
(部分)参数:
  -b, --before			在行前而非行尾添加分隔标志
  -r, --regex			将分隔标志视作正则表达式来解析
  -s, --separator=字符串	使用指定字符串代替换行作为分隔标志
      --help		显示此帮助信息并退出
      --version		显示版本信息并退出

3、more

分页显示文件内容。

用法:more [选项] 文件...

示例:
      more ac.txt 	#分页显示文件内容(空格翻屏,回车翻行,Q 或 Ctrl+C退出查看)

(部分)参数:
      -d        显示帮助,而不是响铃
      -f        统计逻辑行数而不是屏幕行数
      -l        抑制换页(form feed)后的暂停
      -p        不滚屏,清屏并显示文本
      -c        不滚屏,显示文本并清理行尾
      -u        抑制下划线
      -s        将多个空行压缩为一行
      -NUM      指定每屏显示的行数为 NUM
      +NUM      从文件第 NUM 行开始显示
      +/STRING  从匹配搜索字符串 STRING 的文件位置开始显示
      -V        输出版本信息并退出

image.png

4、less

less命令的功能是分页显示文件内容,不会自动退出,需要按q结束退出,more命令的相反用法。more命令只能从前向后浏览文件内容,而less命令不仅能从前向后浏览(按PageDown键),还可以从后向前浏览(按PageUp键),更加灵‍活。

用法:less [参数] 文件名

示例:
     less ac.txt  		#分页显示文件内容(分屏查看,空格翻屏,回车翻行,不显示已阅百分比,按Q显示命令提示符)
     less -N ac.txt 	#分页显示文件内容,同时 显示行号
   
(部分)参数:
      -b 设置缓冲区大小
      -Q 不使用警告音
      -e 当文件显示结束后自动退出 
      -r 显示原始字符
      -f 强制打开文件
      -s 将连续多个空行视为一行
      -g 仅标识最后搜索的关键词
      -S 在每行显示较多的内容,而不换行
      -i 忽略搜索时的大小写
      -V 显示版本信息
      -K 收到中断字符时,立即退出
      -x 将Tab字符显示为指定个数的空格字符
      -m 显示阅读进度百分比
      -y 设置向前滚动的最大行数
      -N 显示文件内容时带行号
      --help 显示帮助信息
      -o 将要输出的内容写入指定文件

image.png

5、head

查看文件内容,默认查看文件前10行。

用法:head [选项]... [文件]...

示例:
    #显示文件的前5行
    head -5 ac.txt  
    
    #显示文件前15个字符
    head -c 15 ac.txt 	
    
(部分)参数:
  -c, --bytes=[-]K 	print the first K bytes of each file;
                         	with the leading '-', print all but the last
                         	K bytes of each file
  -n, --lines=[-]K       	print the first K lines instead of the first 10;
                         	with the leading '-', print all but the last
                          K lines of each file
  -q, --quiet, --silent	不显示包含给定文件名的文件头
  -v, --verbose		总是显示包含给定文件名的文件头
      --help		显示此帮助信息并退出
      --version		显示版本信息并退出

6、tail

查看文件内容,默认查看文件后10行。

用法:tail [选项]... [文件]...

示例:
    #显示文件的后5行
    tail -5 ac.txt   	
    #显示文件的后5行(默认显示后10行),并动态刷新,常用于日志查看
    tail -5f ac.txt	
    
(部分)参数:
  -c, --bytes=K       	output the last K bytes; or use -c +K to output
                      	bytes starting with the Kth of each file
  -f, --follow[={name|descriptor}]
                         	output appended data as the file grows;
                          an absent option argument means 'descriptor'
  -F                      same as --follow=name --retry
  -n, --lines=K           output the last K lines, instead of the last 10;
                          or use -n +K to output starting with the Kth
      --max-unchanged-stats=N
                           with --follow=name, reopen a FILE which has not
                             changed size after N (default 5) iterations
                             to see if it has been unlinked or renamed
                             (this is the usual case of rotated log files);
                             with inotify, this option is rarely useful
      --pid=PID            with -f, terminate after process ID, PID dies
  -q, --quiet, --silent    never output headers giving file names
      --retry              keep trying to open a file if it is inaccessible
  -s, --sleep-interval=N   with -f, sleep for approximately N seconds
                             (default 1.0) between iterations;
                             with inotify and --pid=P, check process P at
                             least once every N seconds
  -v, --verbose            always output headers giving file names
      --help		显示此帮助信息并退出
      --version		显示版本信息并退出

7、cut

将文件的每一行按指定分隔符分割并输出
用法:cut [选项]… [文件]…
将每个FILE中选定的行部分打印到标准输出。
长期权的强制性参数对于短期权也是强制性的。
示例:
cut -c 4-5 ac.txt 以字符为单位进行分割 (取出每行第x到第Y个字符)
cut -d ‘|’ -f 3 ac.txt 以|为分隔符,取出每行第3段的内容
(部分)参数:
-b, --bytes=列表 只选中指定的这些字节
-c, --characters=列表 只选中指定的这些字符
-d, --delimiter=分界符 使用指定分界符代替制表符作为区域分界
-f, --fields=LIST select only these fields; also print any line
that contains no delimiter character, unless
the -s option is specified
-n with -b: don’t split multibyte characters
–complement 补全选中的字节、字符或域
-s, --only-delimited 不打印没有包含分界符的行
–output-delimiter=字符串 使用指定的字符串作为输出分界符,默认采用输入
的分界符
–help 显示此帮助信息并退出
–version 显示版本信息并退出
仅使用f -b, -c 或-f 中的一个。每一个列表都是专门为一个类别作出的,或者您可以用逗号隔
开要同时显示的不同类别。您的输入顺序将作为读取顺序,每个仅能输入一次。
每种参数格式表示范围如下:
N 从第1 个开始数的第N 个字节、字符或域
N- 从第N 个开始到所在行结束的所有字符、字节或域
N-M 从第N 个开始到第M 个之间(包括第M 个)的所有字符、字节或域
-M 从第1 个开始到第M 个之间(包括第M 个)的所有字符、字节或域
当没有文件参数,或者文件不存在时,从标准输入读取

8、split

分割文件为不同的小片段。
split命令来自英文单词“分裂”,其功能是用于分割文件内容。Linux系统运维人员可以使用split命令对指定的大文件进行内容分割,默认会按照每1000行切割成一个小文件来执行,也可以自定义分割大小,方便阅读和传输、

用法:split [选项]… [输入 [前缀]]
 split [参数] 文件名1 文件名2 [文件名2可以省略不写,不写则生成文件名默认字母命名]
将固定大小的INPUT输出到PREFIXaa,PREFIXab,.;默认size为1000行,默认PREFIX为’x’。 没有输入,或者当输入是-,读取标准输入。
长选项的强制参数对短选项也是强制的。
示例:
split -100 3.txt qq_ 把文件3.txt按每个文件100行进行分割成多个文件,分割后文件名以qq_开头
split -a 4 3.txt qq_ 把3.txt文件分割成1个文件(复制效果),新文件名为:qq_+四个字母
split -a 4 -d -l 5 3.txt w_abr_; 把文件3.txt按每个文件5行进行分割成多个文件,分割后文件名以w_abr_开头,后缀为4位数字
(部分)参数:
-数字 设置要分割的行数,与-l类似
-a 设置后缀长度
-b 设置分割的字节
-C 保持每行的完整性
-d 使用数字后缀而不是字母
-l 设置每个分割文件的行数
-t 设置间隔符
–help 显示帮助信息
–verbose 显示执行过程详细信息
–version 显示版本信息
SIZE is an integer and optional unit (example: 10M is 1010241024). Units
are K, M, G, T, P, E, Z, Y (powers of 1024) or KB, MB, … (powers of 1000).
CHUNKS may be:
N split into N files based on size of input
K/N output Kth of N to stdout
l/N split into N files without splitting lines
l/K/N output Kth of N to stdout without splitting lines
r/N like ‘l’ but use round robin distribution
r/K/N likewise but only output Kth of N to stdout

9、paste

合并文件内容。paste命令来自英文单词“粘贴”,其功能是用于合并显示两个文件内容。
用法:paste [参数] 文件1 文件2
写入由中顺序对应的行组成的行,每个FILE(由TAB分隔)转换为标准输出。
如果没有FILE,或者当FILE为-时,读取标准输入。
示例:
paste a.txt b.txt 显示合并后内容,按行合并,默认空格隔开
paste -d ‘|’ a.txt b.txt 按行合并,以|隔开
paste -s a.txt b.txt 每个文件粘贴成一行,原文件每行以空格/tab键隔开
(部分)参数:
-d, --delimiters=列表 自定义分隔符
-s, --serial 不使用平行的行目输出模式,而是每个文件占用一行
–help 显示此帮助信息并退出
–version 显示版本信息并退出

10、sort

排序。sort命令的功能是对文件按行进行排序,默认是按行首字母由小到大排序。
用法: sort [参数] 文件名
示例:
sort 2.txt 对文件每行排序,升序,默认是按行首字母由小到大排序
(部分)参数:
-b 忽略每行前面出现的空格字符
-c 检查文件是否已经按照顺序排序
-d 除字母、数字及空格字符外,忽略其他字符
-f 将小写字母视为大写字母
-h 以更易读的格式输出信息
-i 除040至176之间的ASCII字符外,忽略其他字符
-k 设置需要排序的栏位
-m 将几个排序号的文件进行合并
-M 将前面3个字母依照月份的缩写进行排序
-n 依据数值大小排序
-o 将排序后的结果写入指定文件
-r 以相反的顺序来排序
-R 依据随机哈希值进行排序
-t 设置排序时所用的栏位分隔符
-T 设置临时目录
-z 使用0字节结尾, 而不是换行

  • 参考示例:

1.对指定的文件内容(默认行首)按照字母顺序进行排序展示(不会改变源文件)
[root@brLinux /opt]# cat file1
nana
pear
apple
orange
raspaberry
[root@brLinux /opt]#sort file1
apple
nana
orange
pear
raspaberry
[root@brLinux /opt]#cat file1
nana
pear
apple
orange
raspaberry
2.对指定的文件内容按照数字大小进行排序
[root@brLinux /opt]#cat file2
24
56
945
12
3 98
82 67
24 56
9
[root@brLinux /opt]#sort -n file2
3 98
9
12
24
24 56
56
82 67
945
3.以冒号(:)为间隔符,对指定的文件内容按照数字大小对第3列进行排序
[root@brLinux /opt]#sort -t : -k 3 file1
qemu❌107:107:qemu user u
sbmuxd❌113:113:usbmuxd user
pulse❌171:171:PulseAudio System Daemonspaberry
pulse❌171:171:PulseAudio System Daemonspaberry
r❌59:59:Account used by the trousers package to sandbox the tcsd daemon
[root@brLinux /opt]#cat file1
pulse❌171:171:PulseAudio System Daemonspaberry
sbmuxd❌113:113:usbmuxd user
r❌59:59:Account used by the trousers package to sandbox the tcsd daemon
qemu❌107:107:qemu user u
pulse❌171:171:PulseAudio System Daemonspaberry

11、uniq

去除重复行。uniq命令来自英文单词unique的缩写,中文译为独特的、唯一的,其功能是用于去除文件中的重复内容行。uniq命令能够去除掉文件中相邻的重复内容行,如果两端相同内容中间夹杂了其他文本行,则需要先使用sort命令进行排序后再去重复,这样保留下来的内容就都是唯一的了。
用法:uniq [参数] 文件名
示例:
uniq -c File 统计相同内容行在文件中重复出现的次数
(部分)参数:
-c 显示每行在文本中重复出现的次数
-d 设置每个重复纪录只出现一次
-D 显示所有相邻的重复行
-f 跳过对前N个列的比较
-s 跳过对前N个字符的比较
-w 仅对前N个字符进行比较
-i 忽略大小写
-u 仅显示没有重复的纪录
-z 设置终止符(默认为换行符)

  • 参考示例:

1.对指定的文件进行去重操作
[root@linuxcool ~]# cat File
test 30
test 30
test 30
Hello 95
Hello 95
Hello 95
Hello 95
Linux 85
Linux 85
[root@linuxcool ~]# uniq File
test 30
Hello 95
Linux 85
2.统计相同内容行在文件中重复出现的次数:
[root@linuxcool ~]# uniq -c File
3 test 30
4 Hello 95
2 Linux 85

12、wc

统计文件的行数/单词数/字节数等; wc命令来自英文词组“Word count”的缩写。
用法:wc [参数] 文件名
示例:
[root@brLinux /opt/10055 ]# ls |wc -l 统计当前目录下文件个数
[root@brLinux /opt/10055 ]# wc -l c.txt 统计文件的行数
(部分)参数:
-c 统计字节数
-l 统计行数
-L 设置最长行的长度
-m 统计字符数
-w 统计单词数

13、diff

比较文件的差异,常用于文本文件。diff命令来自英文单词“difference”的缩写,其功能是用于比较文件内容差异。如果有多个内容相近的文件,如何快速定位到不同内容所在位置?此时用diff命令就再合适不过了~!
用法:diff [参数] 文件名1 文件名2
示例:
[root@brLinux /opt/10055 ]# diff -q a.txt b.txt #判断两个文件是否相同,不同时有提示
(部分)参数:
-A 逐行比较文本文件内容
-B 不检查空格字符的不同
-d 尽力找到一组较小的更改
-E 忽略由于选项卡扩展而引起的更改
-i 忽略大小写
-N 将不存在的文件视为空文件
-q 仅判断两个文件是否不同(与–brief效果一致)
-r 递归处理所有子文件
-t 将制表符扩展为空格
-W 忽略所有空白
-w 设置显示栏宽
-x 不比较指定的文件或目录
-X 将文件或目录类型存成文本文件
-y 以并列的方式显示文件的异同之处
–left-column 若两个文件某一行内容相同,则在左侧栏位显示
–strip-trailing-cr 输入时删除尾随回车
–suppress-common-lines 仅显示不同之处,需要与y参数搭配使用

14、vimdiff

命令行可视化文件比较工具,常用于文本文件。
vimdiff命令来自英文词组“Vim differences”的缩写,其功能是用于同时编辑多个文本文件。对纯文本文件的比较和合并工具一直是软件开发过程中比较重要的组成部分,vimdiff命令能够比较多个文本文件之间的差异并快速定位,并很容易地进行文件合并操作.
用法:vimdiff [参数] 文件名1 文件名2 [文件名N]
示例:
h
(部分)参数:
dd 剪切当前行
数字dd 剪切当前行开始的多行
p 粘贴
qa 同时退出多个文件
u 撤销
wa 保存文件
wqa 保存并退出
数字yy 复制当前行开始的多行(不带数字 复制当前行)

  • 参考示例:

1.同时编辑两个内容不同,存在差异的文件
[root@brLinux /opt]#vimdiff file1 file2

15、grep

过滤字符串,三剑客老三。人们通常会将grep命令与正则表达式搭配使用,参数作为搜索过程中的补充或对输出结果的筛选,命令模式十分灵活。 与之容易混淆的是egrep命令和fgrep命令。如果把grep命令当作是标准搜索命令,那么egrep则是扩展搜索命令,等价于“grep -E”命令,支持扩展的正则表达式。而fgrep则是快速搜索命令,等价于“grep -F”命令,不支持正则表达式,直接按照字符串内容进行匹配。

用法:**grep [参数] 文件名 **
示例:
[root@brLinux /opt/10055 ]# grep -E ‘51|61’ a.txt 多条件过滤,把符合条件的都过滤出来
[root@brLinux /opt/10055 ]# grep -v 51 a.txt 反向过滤,,匹配不包含关键字的
[root@brLinux /opt/10055 ]# grep -rl 51 a.txt 匹配子文件,打印包含关键字的文件名
(部分)参数:
-n 显示所有匹配行及其行号
-h 搜索多文件时不显示文件名
-r 递归搜索模式
-F 匹配固定字符串的内容
-v 显示不包含匹配文本的所有行
-W 精准匹配整词
-x 精准匹配整行
-E 支持扩展正则表达式
-l 只显示符合匹配条件的文件名
-c 显示指定文件中,关键词的数量
-i:在搜索的时候忽略大小写

16、tr

替换或删除字符。tr命令来自英文单词“transform”的缩写,中文译为“转换”,其功能是用于字符转换。tr命令是一款批量字符转换、压缩、删除的文本工具,但仅能从标准输入中读取文本内容,需要与管道符或输入重定向操作符搭配使用。
用法:tr [参数] 字符串1 字符串2
示例:
[root@linuxcool ~]# tr [a-z] [A-Z] < File.cfg 将指定文件中的小写字母转换成大写字母后输出内容到终端界面
[root@linuxcool ~]# tr -d [0-9] < File.cfg 删除指定文件中所有的数字后 输出内容 到终端界面
[root@linuxcool ~]# tr -s “[\n]” < File.cfg 将指定文件中的多个相邻空行去重后输出内容到终端界面
(部分)参数:
-c 反选字符串1的补集
-d 删除字符串1中出现的所有字符
-s 删除所有重复出现的字符序列
-t 将字符串1截断为字符串2的长度

17、vi/vim

命令行文本编辑器。vi/vim命令的功能是用于编辑文本内容,是Linux系统字符界面下最常用的文本编辑工具,能够编辑任何的ASCII格式文件,对内容进行创建、查找、替换、修改、删除、复制、粘贴等操作。编写文件时,无需担心目标文件是否存在,若不存在则会自动在内存中创建,随保存操作输出到硬盘中。 由于vi/vim编辑器深入学习的难度较大,无法通过单一词条为读者讲透,如想熟练使用请参阅《Linux就该这么学》第四章4.1小节。
用法: vi [参数] 文件
示例:

(部分)参数:

文件和目录操作命令(13个)

1、cd

cd命令来自英文词组change directory的缩写,其功能是更改当前所处的工作目录,路径可以是绝对路径,也可以是相对路径,若省略不写则会跳转至当前使用者的家目‍录。

用法: cd [-L|[-P [-e]]] [dir]

示例:
      cd - 	去上一次所在的目录
    	cd ~ 或 cd 去当前用户的家目录,~表示家目录
    	cd . 	去当前目录,.表示当前目录
    	cd .. 	去上一级目录。..表示上一级目录

2、tree

以树形结构显示目录
参数可以组合使用
用法:
示例:
tree -L 1 /tmp/
tree -d /tmp/
(部分)参数:
-L 指定目录层数
-d 只显示目录

3、mkdir

mkdir命令来自英文词组make directories的缩写,其功能是创建目录文件。该命令的使用简单,但需要注意,若要创建的目标目录已经存在,则会提示已存在而不继续创建,不覆盖已有文件。若目录不存在,但具有嵌套的依赖关系时,例如/Dir1/Dir2/Dir3/Dir4/Dir5,要想一次性创建则需要加入-p参数,进行递归操‍作。

用法: mkdir [参数] 目录名

示例:
    mkdir /tmp/br					#创建目录br,若父目录不存在,报错
    mkdir -m 700 Dir2			#创建一个目录文件并设置700权限
    mkdir -p /tmp/br/aa/		#创建目录aa,若父目录不存在,同时创建
    mkdir Dir3 Dir4 Dir5		#一次性创建多个目录文件
(部分)参数:
      -m 创建目录的同时设置权限 
      -v 显示执行过程详细信息
      -p 递归创建多级目录
      -z 设置目录安全上下文

4、touch

摸的意思 创建文件,重复的文件忽视。Linux广义上一切皆文件,目录也是文件,目录和文件不同重名.

用法:
示例:
      #	创建文件aa.txt
      touch aa.txt	

      #批量创建文件,等价 touch 1.txt 2.txt 3.txt 4.txt 5.txt	{}生成数字序列,字母序列。
      touch {1..5}.txt	

      #修改文件的访问时间	
      touch -a	

      #同时修改文件的访问时间和修改时间
      touch -d “2021-01-02 09:32:21” 3.log		
      
      #修改文件的修改时间	
      touch -m: 	
      #(注意)同时修改访问时间和修改时间,不创建文件,不修改改变时间	
      touch -c:	
      
      #同时修改文件的访问时间和修改时间
      touch -t 201801021458.02 4.log	
      
(部分)参数:
    	-a 设置文件的读取时间记录   
    	-t 设置文件的时间记录 
    	-c 不创建新文件 
    	-d 设置时间与日期 
    	-m 设置文件的修改时间记录	
    	--version 显示版本信息 
    	--help 显示帮助信息 

5、ls

ls命令来自英文单词list的缩写,中文译为“列出”,其功能是显示目录中的文件及其属性信息,是最常使用的Linux命令之‍一。 默认不添加任何参数的情况下,ls命令会列出当前工作目录中的文件信息,常与cd或pwd命令搭配使用,十分方便。带上参数后,我们可以做更多的事情。作为最基础、最频繁使用的命令,有必要仔细了解其常用功‍能。

用法:ls 参数 文件名

示例:
  ls -al	显示当前目录下所有文件的详细信息
  ls -lt	显示当前目录下文件的详细信息,按文件修改时间排序

(部分)参数:
   -a 显示所有文件及目录
   -r 依据首字母将文件以相反次序显示
   -A 不显示当前目录和父目录
   -R 递归显示所有子文件
   -d 显示目录自身的属性信息
   -S 依据内容大小将文件排序显示
   -i 显示文件的inode属性信息
   -h 以人类可读形式显示
   -t 依据最后修改时间将文件排序显示
   -l 显示文件的详细属性信息
   -X 依据扩展名将文件排序显示
   -m 以逗号为间隔符,水平显示文件信息
   -color 以彩色显示信息

6、CP

copy复制文件与目录。centos7默认cp加了别名,输入命令默认使用的是别名,不用别名的方法有两种,一个是在命令前加反斜线\ 或 使用命令的绝对路径(如:/bin/cp 1.txt ./qqp/555.txt)

用法:	cp [OPTION]... SOURCE... DIRECTORY

示例:
    #复制文件(若目标目录处加上文件名,有重命名效果)
    cp aa.txt /tmp/br/ 		
    
    	#复制目录
    cp -r qqp ./asd/
    
    #复制文件,保持文件属性(属组、权限) 
    cp -p /home/binrui/aa.txt ./	

(部分)参数:
  	-a 功能等价于pdr参数组合
  	-l 对源文件建立硬链接,而非复制文件
  	-b 覆盖目标文件前先进行备份
  	-p 保留源文件或目录的所有属性信息
  	-d 复制链接文件时,将目标文件也建立为链接文件
  	-r 递归复制所有子文件
  	-f 若目标文件已存在,则会直接覆盖
  	-s 对源文件建立软链接,而非复制文件
  	-i 若目标文件已存在,则会询问是否覆盖
  	-v 显示执行过程详细信息

7、rm

全拼remove,其功能是删除一个或多个文件或目录。

用法:	rm [选项]... 文件...

示例:
      rm -rf aa.txt	

(部分)参数:
     -d 仅删除无子文件的空目录
     -v 显示执行过程详细信息
     -f 强制删除文件而不询问
     -i 删除文件前询问用户是否确认
     -r 递归删除目录及其内全部子文件    
     --version 显示版本信息
     --help 显示帮助信息

:::info
[如何避免误删除?](http://oldboy.blog.51cto.com/2561410/1687300" \t "_blank)
1、放弃使用 rm ,用mv或find代替
2、不删除,移动到/tmp目录
3、若一定要删除,先备份
4、不要这样用rm -rf /opt/* ,要切换到指定目录下再删除
5、为rm设置别名提醒自己与组员
:::

8、mv

全拼move,其功能是移动或重命名文件。mv命令来自英文单词move的缩写,中文译为“移动”,其功能与英文含义相同,能够对文件进行剪切和重命名操作。这是一个被高频使用的文件管理命令,我们需要留意它与复制命令的区别。cp命令是用于文件的复制操作,文件个数是增加的,而mv则为剪切操作,也就是对文件进行移动(搬家)操作,文件位置发生变化,但总个数并无增‍加。 在同一个目录内对文件进行剪切的操作,实际上应理解成重命名操作
用法:
mv 参数 源文件名 目标文件名
示例:
mv File1.cfg File2.cfg 对指定文件进行剪切后粘贴(重命名)操作
mv Dir1 /etc/Dir2 对指定文件进行剪切后粘贴(重命名)操作将指定目录移动到/etc目录中,并定义新的目录名称
mv -f /home/* . 将/home目录中所有的文件都移动到当前工作目录中,若遇到文件已存在则直接覆盖
(部分)参数:
-b 覆盖前为目标文件创建备份
-v 显示执行过程详细信息
-f 强制覆盖目标文件而不询问
-Z 设置文件安全上下文
-i 覆盖目标文件前询问用户是否确认
-n 不要覆盖已有文件
-u 当源文件比目标文件更新时,才执行覆盖操作
–help 显示帮助信息
–version 显示版本信息

9、pwd

pwd命令来自英文词组“print working directory”的缩写,其功能是显示当前工作目录的绝对路径。在实际工作中,我们经常会在不同目录之间进行切换,为了防止“迷路”,可以使用pwd命令快速查看当前所处的工作目录路径,方便开展后续工作。

用法:pwd [参数] 

示例:
    [root@brLinux /opt/10055 ]# pwd	查看当前路径

(部分)参数:
	-L 	显示逻辑路径
	-P	显示实际物理地址

10、rename

批量修改文件名称。rename命令的功能是用于批量修改文件名称。与mv命令一次只能修改一个文件名不同,rename命令能够基于正则表达式对文件名进行批量修改,但要求是把匹配规则准确地描述给系统。
用法: rename 原字符 新字符 文件名
参数有三项:其一是当前文件名中要被修改的字符,其二是其要被修改为的新字符,其三是要被执行的对象文件列表。
示例:
[root@linuxcool ~]# rename .cfg .txt * 将当前工作目录下后缀为.cfg的文件,改成.txt后缀结尾
[root@linuxcool ~]# rename a A * 将当前工作目录下文件名中的小写a改成大写A
(部分)参数:
-V 显示版本信息

11、chattr

改变文件的扩展属性。chattr命令来自英文词组“change attribute”的缩写,其功能是用于更改文件隐藏属性。常用的ls命令仅能够查看到文件的一般权限、特殊权限、SELinux安全上下文与是否有FACL访问控制列表等情况,但却无法查看到文件隐藏属性.

用法:	chattr 参数 文件名 
示例:
    [root@linuxcool ~]# chattr -R +i /Dir		给指定目录添加隐藏属性,递归操作
    [root@linuxcool ~]# chattr +i File.cfg		给指定文件添加隐藏属性
    [root@linuxcool ~]# chattr -i File.cfg 	从指定文件移除隐藏属性
(部分)参数:
  	-R	递归处理所有子文件
  	-v	设置文件或目录版本
  	+	开启文件或目录的指定隐藏属性 
  	--	关闭文件或目录的指定隐藏属性 
  	=	设置文件或目录的指定隐藏属性 

:::info
常用权限:
i 无法对文件进行任何修改 a 仅允许补充内容,无法覆盖/删除内容 S 文件内容在变更后立即同步到硬盘
s 彻底从硬盘中删除,不可恢复 A 不再修改这个文件或目录的最后访问时间 b 不再修改文件或目录的存取时间
D 检查压缩文件中的错误 d 使用dump命令备份时忽略本文件/目录 c 默认将文件或目录进行压缩
u 当删除该文件后依然保留其在硬盘中的数据 t 让文件系统支持尾部合并 x 可以直接访问压缩文件中的内容
:::

12、lsattr

查看文件扩展属性。lsattr命令来自英文词组“list attribute”的缩写,其功能是用于显示文件的隐藏属性。隐藏属性也叫隐藏权限,顾名思义就是用chattr命令添加在文件上的隐藏权限属性,用常规ls命令无法查看到它们,需要使用lsattr命令查看这些属性信息。
用法: lsattr [参数] 文件名
示例:
[root@linuxcool ~]# lsattr File.cfg 查看指定文件上的隐藏属性
[root@linuxcool ~]# lsattr -d /root 仅查看指定目录本身上的隐藏属性
[root@linuxcool ~]# lsattr -a /root 查看指定目录中全部文件上的隐藏属性
(部分)参数:
-a 显示目录中的所有文件
-d 仅显示目录名称
-D 显示属性的名称及默认值
-E 显示从用户设备数据库中获得的当前值
-F 设置用户定义格式
-R 递归处理所有子文件

13、file

显示文件的类型。file命令的功能是用于识别文件类型,也可以用来辨别一些内容的编码格式。由于Linux系统并不是像Windows系统那样通过扩展名来定义文件类型的,因此用户无法直接通过文件名来进行区别。file命令则是为了解决此问题,通过分析文件头部信息中的标识信息来显示文件类型,使用很方便。
语法格式:

用法:	file [参数] 文件名
示例:
    [root@brLinux ~]#file 1.unl 		查看文件1.unl的类型
(部分)参数:
	-b	不显示文件名
	-c	显示执行过程
	-f	显示文件类型信息
	-i	显示MIME类别信息
	-L	显示符号链接所指向文件的类型
	-z	尝试去解读压缩内的文件内容

14、ln

ln命令来自英文单词link的缩写,中文译为“链接”,其功能是为某个文件在另外一个位置建立同步的链接。Linux系统中的链接文件有两种形式,一种是硬链接,另一种是软链接。软链接相当于Windows系统中的快捷方式文件,原始文件被移动或删除后,软链接文件也将无法使用;硬链接则是将文件的inode属性块进行了复制,因此把原始文件移动或删除后,硬链接文件依然可以使用。
语法格式:

用法:	ln [参数] 源文件名 目标文件名 
示例:
    #为指定的源文件创建快捷方式(默认为硬链接形式)
    [root@linuxcool ~]# ln File1.cfg File2.cfg

    #为/etc/system-release文件创建软链接release,当前目录下不存在release文件才行,否则报错
    [root@brLinux /opt/br ]# ln -s /etc/system-release release 

    #为指定的源文件创建快捷方式,并输出制作的过程信息
    [root@linuxcool ~]# ln -v File1.cfg File2.cfg 
    
(部分)参数:
      -b 为已存在的目标文件创建备份
      -d 允许管理员创建目录的硬链接
      -f 强制创建链接而不询问
      -i 若目标文件已存在,则需要用户二次确认
      -L 若目标文件为软链接,找到其对应文件
      -n 将指向目录的软链接视为普通文件
      -P 若目标文件为软链接,直接链接它自身
      -r 创建相对于文件位置的软链接
      -s 对源文件创建软链接  
      -S 设置备份文件的后缀  
      -t 设置链接文件存放于哪个目录
      -v 显示执行过程详细信息
      --backup 备份已存在的文件
      --help 显示帮助信息
      --version 显示版本信息

文件压缩及解压缩命令(4个)

1、tar

打包压缩。tar命令的功能是用于压缩和解压缩文件,能够制作出Linux系统中常见的.tar、.tar.gz、.tar.bz2等格式的压缩包文件。对于RHEL7、CentOS7版本以后的系统,解压缩时可以不添加格式参数(如z或j),系统也能自动进行分析并解压。
压缩包规范后缀为.tar.gz

用法:	tar 参数 压缩包名 [文件或目录名] 
示例:
    #同时打包压缩文件1.txt 与2.txt,并显示压缩过程
    [root@brLinux /opt/10055 ]# tar -czvf 10055.tar.gz 1.txt 2.txt 	

    #解压指定压缩包到当前工作目录
    [root@brLinux /opt/10055 ]# tar -xzvf 10055.tar.gz 	
    
(部分)参数:
  	-c	创建新的压缩包
  	-f	指定压缩包文件
  	-p	保留原来的文件权限与属性
  	-v	显示执行过程详细信息
  	-x 	从压缩包内提取文件
  	-z 	使用gzip压缩格式
  	--remove-files 	操作完成后删除源文件

image.png

2、gzip

gzip命令来自英文单词gunzip的缩写,其功能是压缩和解压文件。gzip是一个使用广泛的压缩命令,文件经过压缩后一般会以.gz后缀结尾,与tar命令合用后即为.tar.gz后缀。 据统计,gzip命令对文本文件的压缩比率通常能达到60%~70%,压缩后可以很好地提升存储空间的使用率,还能够在网络中传输文件时减少等待时间。

用法:	gzip 参数 文件名
示例:
     [root@linuxcool ~]# gzip File.cfg	压缩文件File.cfg ,压缩包默认以“原文件名.gz”保存到当前工作目录下,原文件会被自动删除
     [root@linuxcool ~]# gzip -dv File.cfg.gz	解压File.cfg.gz文件并显示解压过程,解压后的文件会保存在当前目录下,压缩包会被自动删除
     [root@linuxcool ~]# gzip -k File.cfg		将指定的文件进行压缩,但是不删除原文件
     [root@linuxcool ~]# gzip -l File.cfg.gz	显示指定文件的压缩信息
(部分)参数:
	 -a 使用ASCII文本模式
	 -n 不保存原来的文件名及时间戳
	 -c 把压缩后的文件输出到标准输出设备
	 -N 保存原来的文件名及时间戳
	 -d 解压指定的压缩包文件
	 -t 测试压缩包是否正确无误
	 -f 强行压缩文件而不询问
	 -q 静默执行模式
	 -h 显示帮助信息
	 -r 递归处理所有子文件
	 -k 保留原文件
	 -S 设置解压或压缩后文件的后缀名
	 -l 显示压缩包内的文件信息
	 -v 显示执行过程详细信息
	 -L 显示版权信息
	 -V 显示版本信息

3、zip

zip命令的功能是压缩文件,解压命令为unzip。通过zip命令可以将文件打包成zip格式的压缩包,里面包含文件的名称、路径、创建时间、上次修改时间等信息(与tar命令相‍似)。

用法:	zip    参数 目标文件名.zip 源文件或目录名
示例:
    #将指定目录及其包含的全部文件都打包成zip格式的压缩包文件
    [root@linuxcool ~]# zip -r File.zip /etc	

    #更新压缩包文件中的某个文件
    [root@linuxcool ~]# zip -dv File.zip File.cfg	
    
(部分)参数:
  	 -A 自动解压缩文件
  	 -n 不压缩具有特定字符串的文件
  	 -b 设置暂存文件的目录
  	 -q 静默执行模式
  	 -c 添加注释信息到压缩文件
  	 -r 递归处理所有子文件
  	 -d 更新压缩包内文件
  	 -S 包含系统和隐藏文件
  	 -F 尝试修复损坏的压缩文件
  	 -t 设置压缩时间为指定日期
  	 -h 显示帮助信息
  	 -T 检查压缩文件是否正确无误
  	 -i 仅压缩符合条件的文件
  	 -v 显示执行过程详细信息
  	 -k 使用MS-DOS兼容格式
  	 -V 保留VMS操作系统的文件属性
  	 -l 将“LF”替换成“LF+CR”字符
  	 -w 在文件名称中加入版本编号
  	 -L 显示版本信息
  	 -X 不保留过多的文件属性信息
  	 -m 压缩后删除源文件
  	 -y 直接保存符号链接,而不是对应文件 

4、unzip

unzip命令用于解压缩zip格式的文件,虽然Linux系统中更多地使用tar命令对压缩包进行管理操作,但有时也会接收到Windows系统常用的zip和rar格式的压缩包文件,unzip命令便派上了用场。直接使用unzip命令解压缩文件后,压缩包内原有的文件会被提取并输出保存到当前工作目录下。

用法:	unzip 参数 压缩包名
示例:
      #将 myhome.zip 解压到 /opt/tmp 目录下
      [root@linuxcool ~]#unzip -d /opt/tmp /home/myhome.zip

      #测试压缩包文件是否完整,文件有无损坏
      [root@linuxcool ~]# unzip -t File.zip		
      
(部分)参数:
	 -a 对文本进行必要的字符转换
	 -L 将压缩包内文件名改为小写
	 -b 不要对文本进行任何字符转换
	 -n 解压缩时不覆盖已有文件
	 -c 适当转换字符后输出解压缩结果
	 -p 使用密码加密
	 -C 严格区分大小写
	 -q 静默执行模式
	 -d 解压缩文件到指定目录中
	 -t 检查压缩包完整性
	 -f 强制覆盖已有文件
	 -v 显示执行过程详细信息
	 -j 不处理压缩文件中原有的目录路径
	 -x 跳过压缩包内的指定文件
	 -l 显示压缩包内文件列表
	 -z 显示压缩包内的备注文字

信息显示命令(10个)

1、uname

显示操作系统相关信息的命令。uname命令来自英文词组UNIX name的缩写,其功能是查看系统主机名、内核及硬件架构等信息。如果不加任何参数,默认仅显示系统内核名称(相当于-s参数)的作用。

用法: uname 参数
示例:
[root@brLinux /opt/10055 ]# uname -a #显示系统所有相关信息
Linux brLinux 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@brLinux /opt/10055 ]# uname -r #显示内核版本
3.10.0-957.el7.x86_64
(部分)参数:
-a 显示系统所有相关信息
-r 显示内核发行版本号
-i 显示硬件平台
-s 显示内核名称
-m 显示计算机硬件架构
-v 显示内核版本
-n 显示主机名称
-o 显示操作系统名称
-p 显示主机处理器类型

内核版本释义
这里补充介绍一下各数字和字母代表的含义:第一个数字3表示主版本号,有结构性变化才更改;接下来的数字10表示次版本号,新增功能时才变化,一般奇数表示测试版,偶数表示开发版;再接下来的0表示对次版本的修订次数或补丁包数;957代表编译的次数每次编译可对少数程序优化或修改;e17用来表示版本的特殊信息,有较大的随意性;el代表全业版 Linux;pp代表测试版;fe代表 fedora core;rc代表候选版本;x86_64表示64位.

2、hostname

显示/设置系统的主机名。Linux系统中的HOSTNAME环境变量对应保存了当前的主机名称,使用hostname命令能够查看和设置此环境变量的值,而要想永久修改主机名称则需要使用hostnamectl命令或直接编辑配置文件/etc/hostname才行。
用法: hostname [参数] [主机名]
示例:
[root@brLinux /opt/10055 ]# hostname #显示系统当前主机名
[root@brLinux /opt/10055 ]# hostname -i #查看系统当前IP
(部分)参数:
-a 显示主机别名
-d 显示DNS域名
-f 显示FQDN名称
-F 从指定文件中读取主机名
-h 显示帮助信息
-i 显示主机IP地址
-s 显示短主机名
-v 显示执行过程详细信息
-V 显示版本信息
-y 显示NIS域名

3、dmesg

显示开机信息,用于诊断系统故障。dmesg命令来自英文词组“display message”的缩写,其功能是用于显示开机过程信息。Linux系统内核会将开机过程信息存储在环形缓冲区(ring buffer)中,随后再写入到/var/log/dmesg文件里,如果开机时来不及查看这些信息,则可以利用dmesg命令进行调取。
用法: dmesg [参数]
示例:
[root@linuxcool ~]# dmesg | grep memory #显示与内存相关的开机过程信息
(部分)参数:
-c 清空环形缓冲区中的内容
-d 显示信息时间差
-D 禁止向终端输出信息
-E 启用向终端输出信息
-H 以更易读的格式输出信息
-k 显示内核信息
-l 设置输出级别
-L 显示彩色信息
-n 设置记录信息的层级
-r 显示原生消息缓冲区信息
-s 设置环形缓冲区的大小
-t 不显示消息时间戳
-T 显示易读的时间戳格式
-u 显示用户空间消息
-w 等待新消息

4、uptime

显示系统运行时间及负载。uptime命令的功能是用于查看系统负载,Linux系统中最常用的命令之一。使用uptime命令能够显示系统已经运行了多长时间、当前登入用户数量、过去1分钟、5分钟、15分钟内的负载信息。而用法也十分简单,一般不需要加参数,直接输入uptime即可。
用法: uptime [参数]
示例:
[root@linuxcool ~]# uptime #查看当前系统负载及相关信息
(部分)参数:
-p 以更易读的方式显示
-s 显示本次开机时间

5、stat

显示文件或文件系统的状态。stat命令来自英文单词status的缩写,其功能是用于显示文件的状态信息。Linux系统中每个文件都有三个“历史时间”——最后访问时间(ATIME)、最后修改时间(MTIME)、最后更改时间(CTIME),用户可以使用stat命令查看到它们,进而判别有没有其他人修改过文件内容。 *使用touch命令可以轻易修改文件的ATIME和MTIME,因此请勿单纯以文件历史时间作为判别系统有无被他人入侵的唯一标准。
用法: stat [参数] 文件名
示例:
[root@brLinux /opt/10055 ]# stat a.txt #查看文件状态信息,
(部分)参数:
-c 设置显示格式
-f 显示文件系统信息
-L 支持符号链接
-t 设置以简洁方式显示
-Z 显示SELinux安全上下文值
–help 显示帮助信息
–version 显示版本信息 参考示例

6、du

计算磁盘空间使用情况。du命令来自英文词组disk usage的缩写,其功能是查看文件或目录的大小。人们经常会把df和du命令混淆,df是用于查看磁盘或分区使用情况的命令,而du命令则是用于按照指定容量单位来查看文件或目录在磁盘中的占用情况。
用法: du 参数 文件名
示例:
du -sh * #以易读的格式显示指定目录内总文件的大小信息
(部分)参数:
-a 显示目录中所有文件大小
-m 以MB为单位显示文件大小
-b 以B为单位显示文件大小
-P 不显示符号链接对应原文件的大小
-c 显示占用磁盘空间的大小总和
-s 显示子目录总大小
-D 显示符号链接对应原文件的大小
-S 不显示子目录大小
-g 以GB为单位显示文件大小
-X 排除指定文件
-h 使用易读格式显示文件大小
-k 以KB为单位显示文件大小
–version 显示版本信息
–help 显示帮助信息

7、df

显示系统上磁盘空间的使用量情况。df命令显示的磁盘使用量情况含可用、已用及使用率等信息,默认单位为KB,建议使用-h参数进行单位换算,毕竟135MB比138240KB更利于阅读。
用法: df 参数 对象磁盘/分区
示例:
[root@linuxcool ~]# df -h 显示系统全部磁盘的使用量情况(带容量单位)
[root@linuxcool ~]# df -i 显示系统全部磁盘目录数情况
(部分)参数:
-a 显示所有文件系统
-l 只显示本地文件系统
-h 以更易读的方式显示
-t 只显示指定类型文件系统
-H 以1KB=1000B为换算单位
-T 显示文件系统的类型
-i 显示索引字节信息
–sync 在获取磁盘使用信息前先执行sync同步命令
-k 设置显示时的块大小

8、top

实时显示系统资源使用情况。top命令的功能是实时显示系统运行状态,包含处理器、内存、服务、进程等重要资产信息。运维工程师们常常会把top命令比作“加强版的Windows任务管理器”,因为除了能看到常规的服务进程信息之外,还能够对处理器和内存的负载情况一目了然,实时感知系统全局的运行状态。top命令非常适合作为接手服务器后执行的第一条命令。
用法: top 参数 对象
示例:
[root@linuxcool ~]# top 以默认格式显示系统运行信息
(部分)参数:
-a 按内存使用情况排序
-n 设置显示的总次数,完成后自动退出
-b 使用批处理模式,不进行交互式显示
-p 仅显示指定进程ID
-c 使用显示模式
-s 使用安全模式,不允许交互式指令
-d 设置显示的更新速度
-u 仅显示与指定用户ID
-h 显示帮助信息
-v 使用线程模式
-i 不显示任何闲置或僵死的行程
-w 设置显示的宽度
-M 显示内存单位

9、free

查看系统内存。free命令的功能是显示系统内存使用量情况,包含物理内存和交换内存的总量、使用量、空闲量情况。
用法: free 参数
示例:
free -m #以MB为单位查看系统内存使用情况
(部分)参数:
-b 设置显示单位为B
-m 设置显示单位为MB
-g 设置显示单位为GB
-o 不显示缓冲区数据列
-h 自动调整合适的显示单位
-s 持续显示内存数据
-k 设置显示单位为KB
-t 显示内存使用总和
-l 显示低内存和高内存统计数据
-V 显示版本信息

10、date

显示与设置系统时间。date命令的功能是显示或设置系统日期与时间信息。运维人员可以根据想要的格式来输出系统时间信息,时间格式为MMDDhhmm[CC][YY][.ss],其中MM为月份,DD为日,hh为小时,mm为分钟,CC为年份前两位数字,YY为年份后两位数字,ss为秒的值。

用法:	date 参数 对象

示例:
    #以默认格式输出系统当前的日期与时间信息
    [root@linuxcool ~]# date 	
    
    #按照“年-月-日”的指定格式输出系统当前的日期信息
    [root@linuxcool ~]# date "+%Y-%m-%d"	
    
    #设置当前系统时间为指定的日期和时间
    [root@linuxcool ~]# date -s "20241101 8:30:00"		
    
(部分)参数:
	 -d 显示系统时间 
	 -s 设置系统时间
	 -f 从日期文件中按行读入时间信息
	 -u 显示格林尼治时间
	 -r 显示文件内容的最后修改时间
	 -R 以RFC-2822格式显示时间
	 --version 显示版本信息
   --help 显示帮助信息

搜索文件命令(4个)

1、which

查找二进制命令,按环境变量PATH路径查找。

用法: which 参数 文件名
示例:

(部分)参数:
-a 显示PATH变量中所有匹配的可执行文件
-n 设置文件名长度(不含路径)
-p 设置文件名长度(含路径)
-V 显示版本信息
-w 设置输出时栏位的宽度
–read-functions 从标准输入中读取shell函数定义
–show-tilde 使用波浪线代替路径中的家目录
–skip-dot 跳过PATH变量中以点号开头的目录
–help 显示帮助信息

2、find

find命令的功能是用于根据给定的路径和条件查找相关文件或目录,参数灵活方便,且支持正则表达式,结合管道符后能够实现更加复杂的功能。 find命令通常进行的是从根目录(/)开始的全盘搜索,有别于whereis、which、locate……等的有条件或部分文件的搜索。对于服务器负载较高的情况,建议不要在高峰时期使用find命令的模糊搜索,会相对消耗较多的系统资源。

用法:find [路径] [条件] 文件名
示例:
    #全盘搜索系统中所有以.conf结尾的文件:
    [root@linuxcool ~]# find / -name *.conf	

    #在/etc目录中搜索所有大于1M大小的文件
    [root@linuxcool ~]# find /etc -size +1M 	

    #在/var/log目录下搜索所有不是以.log结尾的文件
    [root@linuxcool ~]# find /var/log ! -name "*.log" 	

    #	全盘搜索系统中所有后缀为.mp4的文件,并删除所有查找到的文件
    [root@linuxcool ~]# find / -name "*.mp4" -exec rm -rf {} \;
    
(部分)参数:
  	-name	匹配文件名	
  	-perm	匹配文件权限	
  	-user	匹配文件所属主	
  	-group	匹配文件所属组	
  	-mtime	匹配最后修改文件内容时间
  	-atime	匹配最后读取文件内容时间	
  	-ctime	匹配最后修改文件属性时间	
  	-nouser	匹配无所属主的文件	
  	-nogroup	匹配无所属组的文件	
  	-newer	匹配比指定文件更新的文件	
  	-type	匹配文件类型	
  	-size	匹配文件大小	
  	-prune	不搜索指定目录	
  	-exec …… {}\;	进一步处理搜索结果(或者 xargs)	

image.png

3、whereis

查找二进制命令,按环境变量PATH路径查找。whereis命令的功能是显示命令及相关文件的路径位置信息,可用于找到命令(二进制程序)、命令源代码、man帮助手册等相关文件的路径位置信息,帮助我们更好地管理这些文件。 有别于find命令进行的全盘搜索,whereis命令的查找速度非常快,因为它不是在磁盘中乱找,而是在指定数据库中查询,该数据库是Linux系统自动创建的,包含本地所有文件的信息,每天自动更新一次。但也正因为这样,whereis命令的搜索结果会不及时,比如刚添加的文件可能搜不到,原因就是该数据库文件还没有更新,管理人员需手动执行updatedb命令进行更新。
用法: whereis 参数 命令名
示例:

(部分)参数:
-b 查找二进制程序或命令文件
-s 仅查找源代码文件
-m 查找man帮助手册文件
-u 查找可执行文件、源代码及帮助文档

4、locate

从数据库 (/var/lib/mlocate/mlocate.db) 查找命令,使用updatedb更新库。locate命令的功能是快速查找文件或目录。与find命令进行全局搜索不同,locate命令是基于数据文件(/var/lib/locatedb)进行的定点查找,由于缩小了搜索范围,因此速度快很多。 要想让locate命令查询的结果更加准确,建议定期执行updatedb命令对数据库文件进行更新。
用法: locate 参数 文件名
示例:

(部分)参数:
-b 仅匹配文件名
-r 使用正则表达式
-c 不输出文件名
-S 显示数据库的统计信息
-d 设置数据库所在目录
-w 匹配完整的文件路径
-i 忽略大小写
–help 显示帮助信息
-l 限制最大查找数量
–version 显示版本信息
-q 静默执行模式

用户管理命令(10个)

1、useradd

添加用户。useradd命令的功能是创建并设置用户信息。使用useradd命令可以自动完成用户信息、基本组、家目录等的创建工作,并在创建过程中对用户初始信息进行定制。 针对已创建的用户,则需使用chmod命令修改用户信息,使用passwd命令修改密码信息。

用法:	useradd 参数 用户名 
示例:
    #指定家目录
    useradd -d /home/test paas	
    #创建用户fox同时放入到	monster 组中
    useradd -g monster fox
    
    
(部分)参数:
	 -c 添加备注文字
	 -M 不建立用户家目录
	 -d 设置新用户登录时所使用的家目录
	 -n 不建立以用户名称为名的组
	 -D 设置新用户的预设值
	 -o 允许创建重复UID的用户
	 -e 设置用户的终止日期
	 -p 设置用户的密码
	 -f 设置用户过期几日后永久停权
	 -r 建立系统用户
	 -g 设置用户对应的基本用户组
	 -R 设置根目录
	 -G 设置用户对应的扩展用户组
	 -s 设置新用户的默认Shell终端
	 -h 显示帮助信息
	 -u 设置用户ID 
	 -k 设置用户的骨架目录
	 -U 创建与用户同名的组,并将其加入
	 -l 不将用户添加到最近登录和登录失败数据库文件
	 -Z 设置用户的SELinux映射角色
	 -m 用户目录不存在时则自动创建    

2、usermod

usermod命令来自英文词组user modify的缩写,其功能是修改用户信息中的各项参数。在创建用户后如果发现信息错误,可以不用删除,而是用usermod命令直接修改用户信息,并且参数会立即生效。

用法:	usermod 参数 用户名
示例:
     #用户zwj加入组tcpdump,追加
     [root@brLinux ~ ]# usermod -aG tcpdump zwj 
     #将 zwj 这个用户从原来所在zwj组,修改到 wudang 组
      usermod -g wudang zwj
      
(部分)参数:
  	 -a 将用户添加至扩展组中
  	 -L 锁定用户密码,使密码立即失效
  	 -c 修改用户的备注文字
  	 -m 将用户家目录内容移动到新位置
  	 -d 修改用户登录时的家目录
  	 -o 允许重复的用户ID
  	 -e 修改用户的有效期限
  	 -p 设置用户的新密码
  	 -f 设置在密码过期多少天后关闭该用户
  	 -s 修改用户登录后使用的Shell终端
  	 -g 修改用户所属的基本群
  	 -u 修改用户的ID 
  	 -G 修改用户所属的扩展群 
  	 -U 解除密码锁定,使密码恢复正常 
  	 -l 修改用户名称 
  	 -Z 设置用户的SELinux映射用户

3、userdel

删除用户。userdel命令来自英文词组user delete的缩写,其功能是删除用户信息。在Linux系统中,一切都是文件,用户信息被保存到了/etc/passwd、/etc/shadow以及/etc/group文件中,因此使用userdel命令实际上就是删除指定用户在上述3个文件中的对应信息。
用法: userdel 参数 用户名
示例:
userdel paas 删除用户paas
userdel -r paas 删除用户paas,同时删除家目录
(部分)参数:
-f 强制删除用户而不询问
-r 删除用户的家目录及其内全部子文件
-h 显示帮助信息
-Z 删除用户的SELinux映射用户

4、groupadd

groupadd命令的功能是创建新的用户组。每个用户在创建时都有一个与其同名的基本组,后期可以使用groupadd命令创建出新的用户组信息,让多个用户加入指定的扩展组,从而为后续的工作提供了良好的文档共享环境。

用法:	groupadd 参数 用户组 
示例:
    
(部分)参数:
	 -f 若用户组已存在,则以成功状态退出
	 -o 允许创建重复ID的用户组
	 -g 设置用户组ID
	 -p 设置用户组密码
	 -h 显示帮助信息
	 -r 创建系统用户组
	 -K 覆盖配置文件/etc/login.defs

5、passwd

修改用户密码。passwd命令来自英文单词password的缩写,其功能是修改用户的密码值;同时也可以对用户进行锁定等操作,但需要管理员身份才可以执行。
用法: passwd 参数 用户名
示例:

(部分)参数:
-d 清除已有密码、
-S 显示当前密码状态
-e 下次登录时强制修改密码
-u 解锁用户的密码值,允许修改
-f 强制执行操作而不询问
-w 设置密码到期前几天收到警告信息
-k 设置用户在期满后能仍能正常使用
-x 设置最大密码有效期
-l 锁定用户的密码值,不允许修改
-n 设置最小密码有效期
–usage 显示简短的使用信息提示
–help 显示帮助信息

6、chage

修改用户密码有效期限。chage命令来自英文单词“change”的缩写,其功能是用于设置账号密码有效期。Linux系统管理员都有个不好的习惯,就是一个密码用无数年之久,从来不改,这样的话很容易存在安全隐患,因此建议用chage命令强行为系统账户密码设置一个有效期限,到日子必须换新密码,总是让骇客们失望而归。
用法: chage [参数] 用户名
示例:

(部分)参数:
-d 显示上一次更改的日期
-E 设置帐号到期的日期
-h 显示帮助信息
-i 设置密码到期后还可以使用几天
-l 显示当前的设置
-m 设置密码可更改的最小天数
-M 设置密码保持有效的最大天数
-R 设置用户的chroot目录
-W 设置提前收到警告信息的天数

7、id

查看用户的uid,gid及归属的用户组。id命令的功能是显示用户与用户组信息。UID是用户身份的唯一识别号码,相当于我们的身份证号码,而GID则是用户组的唯一识别号码。用户仅有一个基本组,但可以有多个扩展组。
用法: id 参数 用户名
示例:

(部分)参数:
-g 显示用户所属基本组的ID(GID)
-Z 显示用户的安全上下文
-G 显示用户所属扩展组的ID(GID)
–help 显示帮助信息
-n 显示用户所属基本组或扩展组的名称
–version 显示版本信息
-u 显示用户的ID(UID)

8、su

切换用户身份。su命令来自英文单词switch user的缩写,其功能是切换用户身份。将管理员切换至任意用户身份时无须密码验证,而将普通用户切换至任意用户身份时均需密码验证。另外,添加单个减号(-)参数表示完全的身份变更,不保留之前用户的任何环境变量信‍息。
用法: su 参数 用户名
示例:
[root@linuxcool ~]# su - linuxprobe #完全变更至指定的用户身份:
(部分)参数:
— 完全地切换身份
-m 切换身份时,不变更环境变量
-c 执行完命令后,自动恢复原来的身份
-s 设置要执行的Shell终端
-f 不读取启动文件(适用于csh和tsch)
–help 显示帮助信息
-l 切换身份时,同时变更工作目录
–version 显示版本信息

9、visudo

编辑/etc/sudoers文件的专属命令。使用visudo命令可以打开/etc/sudoers文件进行编辑设置sudo
用法: visudo [参数]
示例:
[root@linuxcool ~]# visudo 使用visudo命令编辑/etc/sudoers文件
(部分)参数:
-c 启用check-only模式
-q 启用安静模式,此模式下不显示错误信息
-s 启用严格检查sudoers文件

10、sudo

以另外一个用户身份(默认root用户)执行事先在sudoers文件允许的命令。sudo命令来自英文词组super user do的缩写,中文译为“超级用户才能干的事”,其功能是授权普通用户执行管理员命令。使用su命令变更用户身份虽然好用,但是需要将管理员的账户密码告诉他人,总感觉心里不踏实,幸好有了sudo服务。 使用sudo服务可以授权某个指定的用户执行某些指定的命令。通过在满足工作需求的前提下尽可能少放权,可保证服务器的安全。配置sudo服务时,可以直接编辑配置文件/etc/sudoers,亦可以执行visudo命令进行设置,一切妥当后普通用户便能够使用sudo命令进行操作了。
用法: sudo 参数 命令
示例:

(部分)参数:
-A 使用图形化界面读取用户密码值
-p 设置需要密码验证时的提示语
-b 将要执行的命令放在后台执行
-r 设置新的SELinux映射角色
-E 保留用户原本的环境变量信息
-s 设置默认调用的Shell终端
-h 显示帮助信息
-t 设置新的SELinux安全上下文类型
-H 将用户的家目录环境变量设置为/root
-u 设置使用哪位用户的身份执行
-i 模拟用户的初始登录过程
-v 设置需要验证当前用户的密码
-k 下次强制验证当前用户的密码
-v 更新用户的缓存信息,让密码有效期延长5分钟
-K 删除用户的缓存信息,让密码有效期立即结束
-V 显示版本信息

基础网络操作命令(11个)

1、ping

测试主机之间网络的连通性。ping命令的功能是测试主机间网络的连通性,它发送出基于ICMP传输协议的数据包,要求对方主机予以回复。若对方主机的网络功能没有问题且防火墙放行流量,则就会回复该信息,我们也就可得知对方主机系统在线并运行正常了。 不过值得注意的是,ping命令在Linux下与在Windows下有一定差异,Windows系统下的ping命令会发送出去4个请求后自动结束该命令;而Linux系统则不会自动终止,需要用户手动按下Ctrl+C组合键才能结束,或是发起命令时加入-c参数限定发送数据包的个数。
用法: ping 参数 域名或IP地址
示例:
[root@linuxcool ~]# ping www.baidu.com #测试与指定域名之间的网络连通性(需手动按下Ctrl+C组合键结束命令)
(部分)参数:
-4 基于IPv4网络协议
-6 基于IPv6网络协议
-I 使用指定的网络接口送出数据包
-n 仅输出数值
-a 发送数据时发出鸣响声
-p 设置填满数据包的范本样式
-b 允许ping一个广播地址
-q 静默执行模式
-c 设置发送数据包的次数
-R 记录路由过程信息
-d 使用接口的SO_DEBUG功能
-s 设置数据包的大小
-f 使用泛洪模式大量向目标发送数据包
-t 设置存活数值TTL的大小
-h 显示帮助信息
-i 设置收发信息的间隔时间
-v 显示执行过程详细信息
-V 显示版本信息

2、netstat

查看网络状态。netstat命令来自英文词组network statistics的缩写,其功能是显示各种网络相关信息,例如网络连接状态、路由表信息、接口状态、NAT、多播成员等。 netstat命令不仅应用于Linux系统,而且Windows XP、Windows 7、Windows 10及Windows 11均已默认支持,并且可用参数也相同,有经验的运维人员可以直接上‍手。
用法: netstat 参数
示例:
[root@linuxcool ~]# netstat -an|grep 10.139.111.110 #显示系统网络状态中的所有连接信息,10.139.111.110
(部分)参数:
-a 显示所有连接中的接口信息
-n 直接使用IP地址,而不是域名
-A 设置网络连接类型
-N 显示网络硬件外围设备的符号链接名称
-c 持续显示网络状态
-o 显示计时器数据信息
-C 显示路由配置信息
-p 显示正在使用接口的程序识别码和名称
-F 显示路由缓存信息
-r 显示路由表信息
-g 显示多重广播功能群组成员名单
-s 显示网络工作信息统计表信息
-h 显示帮助信息
-t 显示TCP传输协议的连线状态
-i 显示网络界面信息表单
-u 显示UDP传输协议的连线状态
-l 仅显示正在监听的服务状态
-V 显示版本信息

3、ss

查看网络状态。ss命令来自英文词组“Socket Statistics”的缩写,其功能是用于显示活动套接字信息。如果您之前使用过netstat命令,那么恭喜!ss命令与其十分相似,它们都用于显示套接字信息,而ss命令的优势在于它能够显示更多TCP和连接状态的详细信息,并且速度更快更高效。
用法: ss [参数]
示例:

(部分)参数:
-0 显示数据包套接字
-4 基于IPv4网络协议
-6 基于IPv6网络协议
-a 显示所有套接字
-d 仅显示DCCP套接字
-D 将原始TCP套接字信息转储到文件
-e 显示执行过程详细信息
-h 显示帮助信息
-i 显示内部的TCP信息
-l 显示处于监听状态的套接字
-m 显示套接字的内存使用情况
-n 不解析域名
-o 显示计时器信息
-p 显示使用套接字的进程
-s 显示套接字使用概况
-t 仅显示TCP套接字
-u 仅显示UDP套接字
-V 显示版本信息
-w 仅显示RAW套接字
-x 仅显示Unix套接字

4、ifconfig

查看、配置、启用或禁用网络接口的命令。ifconfig命令来自英文词组network interfaces configuring的缩写,其功能是显示或设置网络设备参数信息。在Windows系统中,与之类似的命令为ipconfig,同样的功能可以使用ifconfig去完‍成。 通常不建议使用ifconfig命令配置网络设备的参数信息,因为一旦服务器重启,配置过的参数会自动失效,因此还是编写到配置文件中更稳妥。

用法: ifconfig 参数 网卡名 动作
示例:
[root@linuxcool ~]# ifconfig #显示系统的网络设备信息
[root@linuxcool ~]# ifconfig ens160 down #关闭网卡ens160
[root@linuxcool ~]# ifconfig ens160 up #打开网卡ens160
(部分)参数:
-a 显示所有网卡状态
-v 显示执行过程详细信息
-s 显示简短状态列表

5、ifup

启动网卡。ifup命令来自英文词组“interface up”的缩写,其功能是用于激活网络接口。ifup命令会去读取Linux系统中网络接口服务目录下的配置文件,随后根据配置文件的内容来激活对应的网络接口,这样就能实现对指定网卡启用的效果了。
用法: ifup 网络接口
示例:
[root@linuxcool ~]# ifup eth0 #激活网卡eth0
(部分)参数:

6、ifdown

关闭网卡。ifdown命令来自英文词组“interface down”的缩写,其功能是用于禁用网络接口。ifdown命令会去读取Linux系统中网络接口服务目录下的配置文件,随后根据配置文件的内容来关闭对应的网络接口,这样就能实现对指定网卡停用的效果了。
用法: ifdown 网络接口
示例:
[root@linuxcool ~]# ifdown eth0 #关闭网卡eth0
(部分)参数:

7、route

显示和设置linux系统的路由表。
route命令的功能是显示与设置路由信息,是Linux系统中常用的静态路由配置工具。要想让两台处于不同子网的服务器实现通信,需要有一个跨网段的路由器来连接它们,并用route命令为其设置路由信息。
用法: route 参数 域名或IP地址
示例:
[root@linuxcool ~]# route #显示当前路由表信息
[root@linuxcool ~]# route add default gw 192.168.10.1 #添加默认网关
[root@linuxcool ~]# route del default gw 192.168.10.1 #删除默认网关
(部分)参数:
-A 设置网络地址类型
-n 显示数字形式的IP地址
-C 显示内核路由缓存信息
-v 显示执行过程详细信息
-e 设置路由表显示格式
-host 一个主机的路由表
-F 设置内核FIB路由表参数
-net 一个网络的路由表
常用动作:
add 增加指定的路由记录
mss 设置TCP的最大区块长度(MB)
del 删除指定的路由记录
window 指定通过路由表的TCP连接的窗口大小
target 目的网络或目的主机
dev 路由记录所表示的网络接口
gw 设置默认网关

8、wget

命令行下载文件。
wget命令来自英文词组web get的缩写,其功能是从指定网址下载网络文件。wget命令非常稳定,一般即便网络发生波动也不会导致下载失败,而是不断地尝试重连,直至整个文件下载完毕。 wget命令支持如HTTP、HTTPS、FTP等常见协议,可以在命令行中直接下载网络文件。
用法: wget 参数 网址URL 对象
示例:
[root@linuxcool ~]# wget -O Book.pdf https://www.linuxprobe.com/docs/LinuxProbe.pdf #下载指定的网络文件,并定义保存在本地的文件名称
(部分)参数:
-4 基于IPv4网络协议
-r 递归处理所有子文件
-6 基于IPv6网络协议
-S 显示服务器响应信息
-a 将日志追加写入至指定文件
-t 设置最大尝试次数
-b 启动后转入后台执行
-T 设置最长等待时间
-c 支持断点续传
-v 显示执行过程详细信息
-d 使用调试模式
-V 显示版本信息
-e 执行指定的命令
-w 设置等待间隔(秒)
-F 将输入文件当作HTML处理
-x 强制创建目录
-h 显示帮助信息
-i 下载指定文件中的链接
-l 设置最大递归目录深度
-nd 不要创建目录
-N 只获取比本地更新的文件
-o 将日志信息写入指定文件
-O 设置本地文件名
-P 设置文件前缀
-q 静默执行模式
–ask-password 提示输入密码
–limit-rate 限制下载速度
–no-dns-cache 关闭DNS查询缓存
–no-proxy 禁止使用代理
–password 设置密码值
–random-wait 下载多个文件时,随机等待间隔(秒)
–spider 仅检查文件是否存在
–user 设置用户名

9、scp

全拼secure copy,用于不同主机之间复制文件。
scp命令来自英文词组secure copy的缩写,其功能是基于SSH协议远程复制文件。scp命令可以在多台Linux系统之间复制文件或目录,它有些类似于cp命令的功能,但复制的范围却不是本地,而是网络上的另一台主机。 由于scp命令是基于SSH协议进行的复制操作,全部数据都是加密的,因此会比HTTP和FTP更加安全。
用法: scp 参数 文件或目录名 远程服务器信息
示例:
[root@linuxcool ~]# scp File.cfg 192.168.10.10:/Dir #把本地文件File.cfg传到192.168.10.10机子的/Dir下
[root@linuxcool ~]# scp 192.168.10.10:/Dir/File.cfg /root #把远程主机192.168.10.10中/Dir/File.cfg文件复制到本地/root下
[root@linuxcool ~]# scp -r Dir 192.168.10.10:/Dir #把本地目录Dir复制到192.168.10.10机子的/Dir目录下
[root@linuxcool ~]# scp -r 192.168.10.10:/Dir /root #把192.168.10.10机子的/Dir目录 复制 到 本地/root目录下

(部分)参数:
-1 使用SSH协议版本1
-2 使用SSH协议版本2
-4 基于IPv4网络协议
-6 基于IPv6网络协议
-B 使用批处理模式
-c 使用指定密钥对传输文件进行加密
-C 使用压缩模式
-F 设置ssh配置文件路径
-i 从指定文件中读取传输文件的密钥
-l 设置宽带限制
-o 设置ssh服务选项
-P 设置远程主机的端口号
-p 保留文件的修改时间、访问时间和权限属性
-q 静默执行模式
-r 递归处理所有子文件
-S 设置加密传输时所使用的程序
-v 显示执行过程详细信息

10、telnet

使用TELNET协议远程登录。
telnet命令的功能是用于控制远程主机,作为常用的telnet协议的客户端工具,使用该命令后能够控制一切开启了telnet协议支持的设备,包括但不限于Linux系统、Windows系统、路由器、交换机等等。但由于telnet协议基于明文传输数据,因此不建议输入敏感信息,保护隐私和服务器安全哦。

用法:	telnet [参数] 域名或IP地址 
示例:
      [root@linuxcool ~]# telnet 192.168.10.10	#控制指定的远程主机
(部分)参数:
  	 -8 允许使用8位字符资料,包括输入与输出
  	 -a 自动登入远端主机
  	 -b 设置远端主机的别名名称 
  	 -c 不读取用户目录里的.telnetrc文件 
  	 -d 使用排错模式
  	 -e 设置脱离字符
  	 -E 滤除脱离字符
  	 -K  不自动登入远端主机
  	 -l 设置要登入远端主机的用户名称
  	 -L 允许输出8位字符资料
  	 -n 设置文件记录相关信息
  	 -r 使用类似rlogin指令的用户界面
  	 -S 设置telnet连线所需的IP TOS信息 
  	 -X 关闭指定的认证形态

11、 ssh

使用SSH加密协议远程登录。
ssh命令的功能是安全地远程连接服务器主机系统,作为OpenSSH套件中的客户端连接工具,ssh命令可以让我们轻松地基于SSH加密协议进行远程主机访问,从而实现对远程服务器的管理工‍作。

用法:	ssh 参数 域名或IP地址 
示例:
    
(部分)参数:
    	-1 使用SSH协议版本1					
    	-2 使用SSH协议版本2				
    	-4 基于IPv4网络协议 				
    	-6 基于IPv6网络协议				
    	-a 关闭认证代理连接转发功能		
    	-A 开启认证代理连接转发功能		
    	-b 设置本机对外提供服务的IP地址	
    	-c 设置会话的密码算法 				
    	-C 压缩所有数据 					
    	-f 后台执行ssh命令 				
    	-F 设置配置文件 					
    	-g 允许远程主机连接本机的转发端口 	
    	-i 设置密钥文件
    	-l 设置登录用户名
    	-N 不执行远程指令
    	-o 设置配置参数选项
    	-p 设置远程服务器上的端口号
    	-q 静默执行模式
    	-s 请求远程主机上的子系统调用
    	-v 显示执行过程详细信息
    	-V 显示版本信息
    	-x 关闭X11转发功能
    	-X 开启X11转发功能
    	-y 信任X11转发功能

深入网络操作 命令(4个)

1、tcpdump

命令行的抓包工具。tcpdump命令的功能是监听网络流量,是一款数据嗅探工具,在Linux系统中常用来抓取数据包,能够记录所有经过服务器的数据包信息。tcpdump命令需要以管理员身份执行。
用法: tcpdump 参数 对象
示例:

(部分)参数:
-a 将网络和广播地址转换成名称
-p 不让网络接口进入混杂模式
-c 收到指定的数据包数目后,就停止抓包操作
-q 静默执行模式
-d 将编译过的数据包编码转换成可阅读的格式
-r 从指定的文件中读取数据
-dd 将编译过的数据包编码转换成C语言的格式
-s 设置每个数据包的大小
-ddd 将编译过的数据包编码转换成十进制数字的格式
-S 用绝对而非相对数值列出TCP关联数
-e 在每列资料上显示连接层级的文件头
-t 不显示时间戳记
-f 用数字显示网络地址
-tt 显示未经格式化的时间戳
-F 指定内含表达方式的文件
-T 将数据包转换成指定类型
-i 使用指定的网络接口送出数据包
-v 显示执行过程信息
-l 使用标准输出列的缓冲区
-vv 显示执行过程详细信息
-n 不将IP地址转换成主机名
-x 用十六进制字码显示数据包
-O 不将数据包编码最佳化
-w 将数据包写入指定的文件

2、host

查询DNS的命令。host命令的功能是用于解析域名结果,是一个查找DNS解析结果的简单程序。将域名转换成IP地址形式,帮助运维人员找到指定域名所对应的IP地址。
用法: host [参数] 域名
示例:
[root@linuxcool ~]# host www.linuxcool.com #查询指定域名所对应的IP地址信息(默认模式)
(部分)参数:
-4 基于IPv4网络协议
-6 基于IPv6网络协议
-a 显示全部信息
-c 设置查询类型
-C 显示指定主机完整的SOA记录
-d 显示调试跟踪信息
-I 显示区域信息
-r 不使用递归的查询方式解析域名
-R 限制UDP查询的重试次数
-s 若服务器不响应,则不发送查询
-t 设置查询的域名信息类型
-v 显示执行过程详细信息
-V 显示版本信息
-W 设置查询域名的最长等待时间

3、nmap

网络扫描命令。nmap命令来自英文词组“Network Mapper”的缩写,中文译为网络映射器,其功能是用于网络探测及端口扫描工具。nmap是一款开放源代码的网络探测和安全审计工具,能够快速扫描互联网、局域网或单一主机上的开放信息,基于原始IP报文数据自动分析出网络上有哪些主机,主机上提供何种服务,服务程序又是什么版本,为日常维护和安全审计提供数据支撑。 除了上述帮助管理员了解整个网络情况的功能外,还能利用nmap获取目标主机的更深入信息,例如反向域名、猜测操作系统、设备种类及类型、MAC网卡地址信息等。
用法: nmap [参数] 域名或IP地址
示例:
[root@linuxcool ~]# nmap --traceroute www.linuxcool.com #扫描目标主机并跟踪路由信息
[root@linuxcool ~]# nmap -p80,443 www.linuxcool.com #扫描目标主机上的特定端口号信息
(部分)参数:
-A 使用高级功能进行扫描
-d 显示调试信息
-n 不使用域名解析
-p 扫描指定端口和端口范围
-R 为所有目标解析域名
-PE 强制执行直接的ICMPping
-ps 发送SYN同步报文
-PU 发送udp ping
-sP 对目标主机进行ping扫描
-sV 探测服务版本信息
–traceroute 扫描主机端口并跟踪路由

4、lsof

全名list open files,也就是列举系统中已经被打开的文件。lsof命令来自英文词组list opened files的缩写,其功能是查看文件的进程信息。由于Linux系统中的一切都是文件,因此使用lsof命令查看进程打开的文件,或是查看文件的进程信息,都能帮助用户很好地了解相关服务的运行状态,是一个不错的系统监视工具。
用法: lsof 参数 文件名
示例:

(部分)参数:
-a 显示与打开的文件相关的进程
-o 显示文件偏移量
-c 显示指定进程所打开的文件
-p 显示指定进程号所打开的文件
-d 显示占用该文件的进程
-R 显示父进程ID
-g 显示GID号进程的详细信息
-u 显示UID号进程的详细信息
-h 显示帮助信息
-v 显示版本信息
-i 显示符合条件的进程
+d 显示目录下被打开的文件
-n 显示使用NFS的文件
+D 递归处理所有子文件
-N 显示NFS文件列表

有关磁盘与文件系统 的命令(10个)

1、mount

挂载文件系统。mount命令的功能是将文件系统挂载到目录。文件系统指的是被格式化过的硬盘或分区设备,进行挂载操作后,用户便可以在挂载目录中使用硬盘资源‍了。 默认情况下,Linux系统并不会像Windows系统那样自动地挂载光盘和U盘设备,需要我们自行完成。

用法:	mount 参数 设备名 目录名
示例:
      [root@linuxcool ~]# mount	#查看当前系统中已有的文件系统信息
      [root@linuxcool ~]# mount -a		#挂载/etc/fstab文件中所有已定义的设备文件
      [root@linuxcool ~]# mount /dev/cdrom /Dir	#将光盘设备挂载到指定目录
(部分)参数:
    	-a 加载/etc/fstab文件中记录的所有文件系统 
    	-r 将文件系统设置为只读模式
    	-F 为每个设备创建出一个新的挂载版本
    	-t 挂载指定文件类型的设备分区
    	-h 显示帮助信息
    	-U 挂载指定UUID的设备分区
    	-l 显示已加载的文件系统列表
    	-V 显示版本信息
    	-L 挂载具有指定标签的分区
    	-w 以读写方式挂载文件系统
    	-n 加载没有写入/etc/mtab文件中的文件系统

2、umount

卸载文件系统。umount命令的功能是卸载文件系统。与mount挂载命令需要同时提供设备名与挂载目录不同,umount卸载命令只需要提供设备名或挂载目录之一即可。

用法:	umount 参数 设备或目录名
示例:
      
(部分)参数:
    	-a 卸载/etc/mtab文件中记录的所有设备
    	-r 使用只读方式重新挂载文件系统
    	-F 强制卸载设备而不询问
    	-t 仅卸载指定的文件系统
    	-h 显示帮助信息
    	-v 显示执行过程详细信息
    	-n 卸载时不要将信息写入/etc/mtab文件中
    	-V 显示版本信息

3、fsck

检查并修复Linux文件系统。fsck命令来自英文词组filesystem check的缩写,其功能是检查与修复文件系统。若系统有过突然断电或磁盘异常的情况,建议使用fsck命令对文件系统进行检查与修复,以防数据丢失。
用法: fsck 参数 设备名
示例:
[root@linuxcool ~]# fsck /dev/sdb #检查文件系统是否有损坏
(部分)参数:
-a 自动修复文件系统
-r 使用互动模式,在执行修复前询问用户是否确认
-C 显示进度条
-R 忽略指定的文件系统不予检查
-f 强制检查而不询问
-t 设置要检查的文件系统类型
-M 不检查正在使用的文件系统
-T 不显示标题信息
-n 不进行修复操作
-V 显示执行过程详细信息
-N 不实际执行操作,仅模拟输出结果
-y 始终尝试修复操作

4、fdisk

磁盘分区命令,适用于2TB以下磁盘分区。fdisk的意思是固定磁盘(fixed disk)或格式化磁盘(format disk),该命令的功能是管理磁盘的分区信息。 fdisk命令可以用来对磁盘进行分区操作,用户可以根据实际情况对磁盘进行合理划分,这样后期挂载和使用时会方便很多。
用法: fdisk 参数 设备名
示例:
[root@linuxcool ~]# fdisk -l #查看当前系统的分区情况
(部分)参数:
-b 设置每个分区的大小
-c 关闭DOS兼容模式
-C 设置硬盘的柱面数量
-h 显示帮助信息
-H 设置硬盘的磁头数
-l 显示指定的外围设备分区表状态
-s 显示指定的分区大小
-S 设置每个磁道的扇区数
-u 以分区数目代替柱面数目
-v 显示版本信息

5、parted

磁盘分区命令,没有磁盘大小限制,常用于2TB以下磁盘分区。parted命令来自英文单词,中文译为“分开”,其功能是用于磁盘分区。parted命令是由GNU组织开发的一款功能强大的磁盘分区和分区大小调整工具,与fdisk命令不同,它能够调整分区的大小,并且它可以处理最常见的分区格式,包括:ext2、ext3、fat16、fat32、NTFS、ReiserFS、JFS、XFS、UFS、HFS以及Linux交换分区。
用法: parted [参数] 设备名
示例:

(部分)参数:
-h 显示帮助信息
-i 使用交互式模式
-l 显示设备上的分区列表
-s 使用脚本模式
-v 显示版本信息

6、mkfs

格式化创建Linux文件系统。mkfs命令来自英文词组make file system的缩写,其功能是对设备进行格式化文件系统操作。在挂载使用硬盘空间前的最后一步,运维人员需要对整块硬盘或指定分区进行格式化文件系统操作。Linux系统支持的文件系统包含EXT2、EXT3、EXT4、XFS、FAT、MS-DoS、VFAT、Minix等多种格式。

用法: mkfs 参数 设备名
示例:
[root@linuxcool ~]# mkfs -t ext4 /dev/sdb #对指定的硬盘进行格式化文件系统操作
(部分)参数:
-c 检查指定设备是否损坏
-t 设置档案系统的模式
-V 显示执行过程详细信息
–help 显示帮助信息
–version 显示版本信息

7、dumpe2fs

导出ext2/ext3/ext4文件系统信息。dumpe2fs命令用于打印“ext2/ext3”文件系统的超级块和快组信息。
用法: dumpe2fs [参数]
示例:

(部分)参数:
-b 打印文件系统中预留的块信息
-ob<超级块> 指定检查文件系统时使用的超级块
-OB<块大小> 检查文件系统时使用的指定的块大小
-h 仅显示超级块信息
-i 从指定的文件系统映像文件中读取文件系统信息
-x 以16进制格式打印信息块成员

8、dump

ext2/3/4文件系统备份工具。dump命令用于备份文件系统 ,dump为备份工具程序,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。
用法: dump [参数]
示例:

(部分)参数:
-0123456789 备份的层级
-b 指定区块的大小,单位为KB
-B 指定备份卷册的区块数目
-c 修改备份磁带预设的密度与容量
-d 设置磁带的密度。单位为BPI
-f 指定备份设备
-h 当备份层级等于或大于指定的层级时,将不备份用户标示为”nodump”的文件
-n 当备份工作需要管理员介入时,向所有”operator”群组中的使用者发出通
-s 备份磁带的长度,单位为英尺
-T 指定开始备份的时间与日期
-u 备份完毕后,在/etc/dumpdates中记录备份的文件系统,层级,日期与时间等
-w 与-W类似,但仅显示需要备份的文件
-W 显示需要备份的文件及其最后一次备份的层级,时间与日期

9、e2fsck

检查ext2/ext3/ext4类型文件系统。e2fsck命令用于检查使用 Linux ext2 档案系统的 partition 是否正常工作。 e2fsck命令可以检查ext2、ext3、ext4文件系统,如果系统已经挂载了,那么不建议去检查,因为这样是不安全的。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
用法: e2fsck [参数]
示例:

(部分)参数:
device 预备检查的硬盘 partition,例如:/dev/sda1
-b 设定存放 superblock 的位置
-B 设定单位 block 的大小
-c 检查该partition 是否有坏轨
-C file 将检查的结果存到 file 中以便查看
-d 列印 e2fsck 的 debug 结果
-f 强制检查
-F 在开始检查前,将device 的 buffer cache 清空,避免有错误发生
-l bad_blocks_file 将有坏轨的block资料加到 bad_blocks_file 里面
-L bad_blocks_file 设定坏轨的block资料存到 bad_blocks_file 里面,若无该档则自动产生
-n 将档案系统以[唯读]方式开启
-p 对 partition 做检查,若有问题便自动修复
-v 详细显示模式
-V 显示出目前 e2fsck 的版本
-y 预先设定所有检查时的问题均回答[是]

10、resize2fs

调整ext2/ext3/ext4文件系统大小。resize2fs命令来自英文词组resize to filesystem的缩写,其功能是同步文件系统容量到内核。如对EXT3、EXT4、XFS等设备卷容量进行了调整,则需要使用resize2fs命令同步信息到系统内核。
用法: resize2fs 参数 设备名
示例:

(部分)参数:
-d 打开调试特性
-M 将文件系统缩小到最小值
-f 强制调整设备容量而不询问
-p 显示已完成的百分比进度条
-F 刷新文件系统设备的缓冲区
-P 显示文件系统的最小值

系统权限及用户授权相关命令(2个)

1、chmod

改变文件或目录权限。chmod命令来自英文词组change mode的缩写,其功能是改变文件或目录权限的命令。默认只有文件的所有者和管理员可以设置文件权限,普通用户只能管理自己文件的权限属性。 设置权限时可以使用数字法,亦可使用字母表达式,对于目录文件,建议加入-R参数进行递归操作,这意味着不仅对于目录本身,而且也对目录内的子文件/目录进行新权限的设定。 

用法: chmod 参数 文件名
示例:
chmod 007 aa.txt #修改 用户(0)、组内用户(0)、其他用户(7) 对文件aa.txt 的权限[4表示r 2表示w 1表示x ]
chmod u+rwx aa.txt #【给用户 加 读写执行 权限】
chmod g+rwx aa.txt #【给组 加 读写执行 权限】
chmod o+rwx aa.txt #【去除 其他用户 的 读写执行 权限】
(部分)参数:
-c 改变权限成功后再输出成功信息
-f 改变权限失败后不显示错误信息
-R 递归处理所有子文件
-v 显示执行过程详细信息
–version 显示版本信息
–help 显示帮助信息
–no-preserve-root 不特殊对待根目录
–preserve-root 禁止对根目录进行递归操作
–reference 使用指定参考文件的权限

2、chown

chown命令来自英文词组change owner的缩写,其功能是改变文件或目录的用户和用户组信息。管理员可以改变一切文件的所属信息,而普通用户只能改变自己文件的所属信息。如仅需要修改文件所属用户组身份信息,则可以使用chgrp命令更快地完成。

用法:	chown 参数 所属主:所属组 文件名 
示例:
      #改变指定目录及其内部所有子文件的所属主与所属组
      [root@linuxcool ~]# chown -R root:root /Dir	
      
(部分)参数:
    	-c 显示所属变更信息 
    	-f 若该文件拥有者无法被更改也不显示错误
    	-h 仅对链接文件(而非真正指向的文件)进行更改
    	-P 不遍历任何符号链接 
    	-R 递归处理所有子文件
    	-v 显示执行过程详细信息
    	--help 显示帮助信息
    	--no-preserve-root 不特殊对待根目录
    	--preserve-root 不允许在根目录上执行递归操作
    	--version 显示版本信息

查看系统用户登陆信息的命令(3个)

1、who am i

显示当前有效的用户名称,相当于执行id -un命令或 whoami命令。

用法: who am i
示例:

(部分)参数:

2、who

显示目前登录系统的用户信息。who命令的功能是用于显示当前登录用户信息,包含登录的用户名、终端、日期时间、进程等信息,帮助运维人员了解当前系统的登入用户情况。
用法: who [参数]
示例:
[root@linuxcool ~]# who -H #查看当前登录用户信息,并加上标题
(部分)参数:
-a 显示全部信息
-b 显示系统最近启动时间
-H 显示用户名、终端和时间
-l 显示系统登录进程
-p 显示由init生成的进程
-r 显示当前运行级别
-s 静默执行模式
-t 显示系统上次锁定时间
-u 显示已登录用户列表
–help 显示帮助信息
–version 显示版本信息

3、last

显示登入系统的用户。
last命令的功能是用于显示用户历史登录情况,通过查看系统记录的日志文件内容,进而使管理员可以获知谁曾经或者试图连接过服务器。 通过读取系统登录历史日志文件(/var/log/wtmp)并按照用户名、登录终端、来源终端、时间等信息进行划分,让用户对系统历史登录情况一目了然。
用法: last [参数] [对象]
示例:

(部分)参数:
-a 将来源终端信息项放到最后
-d 将IP地址解析成域名或主机名
-f 设置记录文件
-F 显示完整的登录时间和日期
-h 显示帮助信息
-i 显示指定IP登录情况
-n 设置显示行数
-R 不显示主机名字段
-s 显示指定时间以后的行
-t 显示指定时间之前的行
-x 显示系统开关机信息
-V 显示版本信息

内置命令及其它(17个)

1、alias

alias设置别名(unalias取消设置别名)alias命令来自英文单词alias,中文译为“别名”,其功能是设置命令别名信息。我们可以使用alias将一些较长的命令进行简写,往往几十个字符的命令会变成几个字母,从而大大提高我们的工作效率。 必须使用单引号将原来的命令引起来,防止特殊字符导致错误。并且alias命令的作用只局限于该次登入的操作,若要每次登入都能使用这些命令别名,则可将相应的alias命令存放到bash的初始化文件/etc/bashrc中。
用法: alias 参数 对象
示例:
[root@brLinux /tmp/br/asd/qqp]# $alias #查看已经设置好的别名
[root@brLinux /tmp/br/asd/qqp]#alias cp=‘cp -i’ #给命令cp -i 设置别名cp ,以后使用cp命令就等于使用cp -i 命令
[root@brLinux /tmp/br/asd/qqp]#unalias cp #取消别名
(部分)参数:
-p 显示系统中已有的命令别名

2、echo

打印变量,或直接输出指定的字符串。echo命令的功能是在终端设备上输出指定字符串或变量提取后的值,能够给用户一些简单的提醒信息,亦可以将输出的指定字符串内容同管道符一起传递给后续命令作为标准输入信息进行二次处理,还可以同输出重定向符一起操作,将信息直接写入文件。如需提取变量值,需在变量名称前加入$符号,变量名称一般均为大写形‍式。

用法:	echo 参数 字符串或$变量名
示例:
    #字符串内容写入文件中,> 覆盖 >> 追加(如果文件不存在,就会新建一个文件在往里写)
    [root@linuxcool ~]# echo "Hello World" > Doc.txt  

    #输出某个变量值
    [root@linuxcool ~]# echo $PATH	

    #输出带有换行符的内容,\n会识别为换行符
    [root@linuxcool ~]# echo -e "First\nSecond\nThird"	
    
(部分)参数:
  	-e “内容” 识别转义字符(转义字符见下表)
  	-E 禁止反斜杠转义
  	-n 不输出结尾的换行符 
   	--version 显示版本信息
  	--help 显示帮助信息
转义字符含义转义字符含义
\ttab\c结尾不加换行符
\n换行\f换行后光标仍停留在原来的位置
\b删除前一个字符
\r光标移至行首,但不换行

echo命令,输出不同颜色[root@oldgirl /opt]# echo -e “\033[30m 黑色字oldboy trainning \033[0m”
黑色字oldboy trainning
[root@oldgirl /opt]# echo -e “\033[31m 红色字oldboy trainning \033[0m”
红色字oldboy trainning
[root@oldgirl /opt]# echo -e “\033[32m 绿色字oldboy trainning \033[0m”
绿色字oldboy trainning
[root@oldgirl /opt]# echo -e “\033[33m 黄色字oldboy trainning \033[0m”
黄色字oldboy trainning
[root@oldgirl /opt]# echo -e “\033[34m 蓝色字oldboy trainning \033[0m”
蓝色字oldboy trainning
[root@oldgirl /opt]# echo -e “\033[35m 紫色字oldboy trainning \033[0m”
紫色字oldboy trainning
[root@oldgirl /opt]# echo -e “\033[36m 天蓝字oldboy trainning \033[0m”
天蓝字oldboy trainning
[root@oldgirl /opt]# echo -e “\033[37m 白色字oldboy trainning \033[0m”
白色字oldboy trainning

3、printf

printf 将结果格式化输出到标准输出。
printf命令来自英文词组“format and print”的缩写,其功能是用于格式化输出信息。Linux系统中的printf实际是一个模仿了C语言函数库中printf()的命令,让用户能够定制字符串的宽度、左右对齐格式、分隔符等参数,以便更好地按照自己想要的格式输出信息内容。
用法: printf [参数] 对象
示例:

(部分)参数:(转义序列)
\a 警告
\b 后退
\ddd 表示1到3位的八进制值字符
\f 换页
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\ 一个反斜杠
常用参数(指示符):
%c ASCII
%d 十进制
%e 浮点格式
%s 字符串
%u 不带正负号的十进制
%x 不带正负号的十六进制
%% 一个百分号

4、rpm

管理rpm包的命令。rpm命令来自英文词组redhat package manager的缩写,中文译为“红帽软件包管理器”,其功能是在Linux系统下对软件包进行安装、卸载、查询、验证、升级等工作,常见的主流系统(如RHEL、CentOS、Fedora等)都采用这种软件包管理器,推荐用固定搭配“rpm-ivh 软件包名”安装软件,而卸载软件则用固定搭配“rpm -evh 软件包名”,简单好记又好用。 

用法: rpm 参数 软件包名
示例:
[root@linuxcool ~]# rpm -ivh cockpit-185-2.el8.x86_64.rpm #正常安装软件包
[root@linuxcool ~]# rpm -qa #显示系统已安装过的全部RPM软件包
[root@linuxcool ~]# rpm -ql cockpit #查询某个软件的安装路径
[root@linuxcool ~]# rpm -evh cockpit #卸载通过RPM软件包安装的某个服务
[root@linuxcool ~]# rpm -Uvh cockpit-185-2.el8.x86_64.rpm #升级某个软件包
(部分)参数:
-a 显示所有软件包
-p 显示指定的软件包信息
-c 仅显示组态配置文件
-q 显示指定软件包是否已安装
-d 仅显示文本文件
-R 显示软件包的依赖关系
-e 卸载软件包
-s 显示文件状态信息
-f 显示文件或命令属于哪个软件包
-U 升级软件包
-h 安装软件包时显示标记信息
-v 显示执行过程信息
-i 安装软件包
-vv 显示执行过程详细信息
-l 显示软件包的文件列表

5、yum

自动化简单化地管理rpm包的命令。

yum命令来自英文词组yellow dog updater modified的缩写,其功能是在Linux系统中基于RPM技术进行软件包的管理工作。yum技术通用于RHEL、CentOS、Fedora、OpenSUSE等主流系统,可以让系统管理人员交互式地自动化更新和管理软件包,实现从指定服务器自动下载、更新、删除软件包的工作。 yum软件仓库及命令能够自动处理软件依赖关系,一次性安装所需的全部软件,无须烦琐的操作。
用法: yum 参数 动作 软件包
示例:

(部分)参数:常用动作
install 安装软件包
update 更新软件包
check-update 检查是否有可用的更新软件包
remove 删除软件包
list 显示软件包的信息
search 搜索指定软件包
info 显示指定软件包的描述和概要信息
clean 清理过期的缓存
shell 设置使用的shell提示符
resolvedep 显示软件包的依赖关系
localinstall 安装本地软件包
localupdate 更新本地软件包
deplist 显示软件包的依赖关系

6、watch

周期性的执行给定的命令,并将命令的输出以全屏方式显示。
watch命令来自英文单词“观察、监视”,其功能是用于周期性执行任务命令。watch命令会以周期性的方式执行指定命令,例如每隔几秒钟、几分钟执行一次,持续关注某个命令的运行结果,免去运维人员一遍遍地手动运行。
用法: watch [参数] 任务命令
示例:

(部分)参数:
-b 任务命令失败时发出警报声
-d 高亮显示变化内容
-e 任务命令错误时停止更新
-g 任务命令变化时停止更新
-h 显示帮助信息
-n 设置间隔时间
-t 不显示顶部的格式
-v 显示版本信息

7、clear

清除屏幕,简称清屏。clear命令来自英文单词,中文译为“清理”,其功能是用于清除终端界面已有内容。执行clear命令后终端界面会向后翻一页,实现了“清除”当前屏幕上已有内容的效果,等同于快捷键“Ctrl+c”的效果。
用法: clear [参数]
示例:
clear
(部分)参数:
–help 显示帮助信息
–vesion 显示版本信息

8、history

查看命令执行的历史纪录。history命令的功能是显示与管理历史命令记录。Linux系统默认会记录用户执行过的有命令,可以使用history命令查阅它们,也可以对其记录进行修改和删除操作。
用法:	history 参数 
示例:
    #显示最近使用过的 10 个指令。
    history 10
    #执行历史编号为 5 的指令
    !5

(部分)参数:
  	-a 保存命令记录 
  	-r 读取命令记录到缓冲区
  	-c 清空命令记录
  	-s 添加命令记录到缓冲区
  	-d 删除指定序号的命令记录
  	-w 将缓冲区信息写入历史文件
  	-n 读取命令记录  

9、time

计算命令执行时间。time命令的用途,在于量测特定指令执行时所需消耗的时间及系统资源等消息。 例如 CPU 时间、记忆体、输入输出等等。需要特别注意的是,部分消息在 Linux 上显示不出来。这是因为在 Linux 上部分资源的分配函式与 time 指令所预设的方式并不相同,以致于 time 指令无法取得这些资料。 

用法: time [参数] [命令]
示例:

(部分)参数:
-o 设定结果输出档。这个选项会将 time 的输出写入 所指定的档案中。
-a 配合 -o 使用,会将结果写到档案的末端,而不会覆盖掉原来的内容。
-f FORMAT 以 FORMAT 字串设定显示方式。

10、nc

功能强大的网络工具。nc命令来自英文词组“Net Cat”的缩写,其功能是用于扫描与连接指定端口。nc命令是一个功能丰富的网络实用工具,被誉为网络界的瑞士军刀,短小精悍,功能实用。它能够基于命令行在网络上读取和写入数据,连接与扫描指定端口号,支持TCP和UDP协议,为用户提供无限潜在用途。

用法: nc [参数] 域名或IP地址
示例:

(部分)参数:
-g 设置路由器通信网关
-h 显示帮助信息
-i 设置时间间隔
-l 使用监听模式
-n 使用IP地址,而不是域名
-o 设置文件名
-p 设置本地主机使用的端口
-r 设置本地与远程主机的端口
-s 设置本地主机送出数据包的IP地址
-u 使用UDP传输协议
-v 显示执行过程详细信息
-w 设置等待连线的时间
-z 使用输入或输出模式

11、xargs

将标准输入转换成命令行参数。xargs命令来自英文词组extended arguments的缩写,用作给其他命令传递参数的过滤器。xargs命令能够处理从标准输入或管道符输入的数据,并将其转换成命令参数,也可以将单行或多行输入的文本转换成其他格式。 xargs命令默认接收的信息中,空格是默认定界符,所以可以接收包含换行和空白的内容。 

用法: xargs 参数 文件名
示例:

(部分)参数:
-a 设置从文件中读取数据
-r 如果输入数据为空,则不执行
-d 设置自定义定界符
-s 设置每条命令最大字符数
-I 设置替换字符串
-t 显示xargs执行的命令
-n 设置多行输出
–help 显示帮助信息
-p 执行命令前询问用户是否确认
–version 显示版本信息

12、exec

调用并执行指令的命令。exec命令来自英文单词execute的缩写,其功能是用于调用并执行指定的命令,亦可将前一个命令的输出结果作为后一个命令的标准输入值进行二次处理,功能类似于管道符。
用法: exec [参数] 命令
示例:

(部分)参数:
-c 执行指定的命令

13、export

设置或者显示环境变量。export命令的功能是将变量提升成环境变量,亦可将shell函数输出为环境变量。通常个人创建出的变量仅能在自己账户下使用,其他人是无法看到的。若想让每个人都能看到并有权利去使用变量值,则需要使用export命令进行提升操作。

用法: export 参数 变量
示例:

(部分)参数:
-f 设置函数名称
-p 显示所有环境变量
-n 删除指定变量
-s 设置文件来源
-o 创建JSON文件路径

14、unset

删除变量或函数。unset命令用于删除已定义的shell变量(包括环境变量)和shell函数。unset命令不能够删除具有只读属性的shell变量和环境变量。 

用法: unset[参数]
示例:

(部分)参数:
-f 仅删除函数
-v 仅删除变量

15、type

用于判断另外一个命令是否是内置命令。type命令来自英文单词“类型”,其功能是用于查看命令类型,如需区分某个命令是Shell内部指令还是外部命令,则可以使用type命令进行查看。
用法: type [参数] 命令名称
示例:

(部分)参数:
builtin 内部指令
file 文件
function 函数
keyword 关键字
alias 别名
unfound 没有找到

16、bc

命令行科学计算器。bc命令来自英文词组binary calculator的缩写,中文译为“二进制计算器”,其功能是进行数字计算。bash解释器仅能进行整数计算,而不支持浮点数计算,因此有时要用到bc命令进行高精度的数字计算工作。

用法: bc 参数
示例:

(部分)参数:
-i 使用交互模式
-l 设置标准数学库
-q 显示正常的GNU bc环境信息
-s 精准处理POSIX bc语言
–help 显示帮助信息
–version 显示版本信息

系统管理与性能监视命令(9个)

1、chkconfig

管理Linux系统开机启动项。

chkconfig命令来自英文词组“Check config“的缩写,其功能是用于管理服务程序。chkconfig命令由红帽公司遵循GPL开源协议开发而成,能够用于日常管理服务程序的自启动开启、自启动关闭等工作。随着RHEL/CentOS 8版本系统的发布,该命令功能逐步被systemctl命令替代。
用法: chkconfig [参数] [服务名]
示例:

(部分)参数:
off 不随开机而自动运行
on 随开机而自动运行
–add 将服务添加至管理列表
–del 将服务移除出管理列表
–help 显示帮助信息
–list 显示当前已有的全部服务列表
–short 使用简短格式输出信息
–version 显示版本信息

2、vmstat

虚拟内存统计。
vmstat命令来自英文词组“Virtual Memory Statistics”的缩写,其功能是用于监视系统资源状态。Linux系统工程师可以使用vmstat查看到系统关于进程、内存、硬盘I/O等整体运行状态,但很遗憾无法深入分析。轻量级的性能查看工具,不会给系统带来什么负担。
用法: vmstat [参数] [对象]
示例:

(部分)参数:
-a 显示活动内页
-d 显示磁盘状态
-D 显示磁盘活动报告
-f 显示进程总数
-h 显示帮助信息
-m 显示内存分配信息
-n 设置头信息仅显示一次
-p 显示指定硬盘分区状态
-s 使用表格方式显示资源状态
-S 设置显示信息的单位
-t 显示时间戳
-V 显示版本信息

3、mpstat

显示各个可用CPU的状态统计。mpstat命令可以显示随着时间变化的CPU数据,方便找出CPU使用率与时间的关系。这个命令包含在工具集sysstat中,使用之前需要安装sysstat。

用法: mpstat [参数]
示例:
[root@linuxcool ~]# mpstat -P 1 #执行监控第一个CPU
[root@linuxcool ~]# mpstat -P ALL #执行监控全部CPU
[root@linuxcool ~]# mpstat 1 5 #每隔1个时间单位采样5次
(部分)参数:
-P 执行监控的CPU,取值0~CPUNUM。或者用ALL查看全部CPU
delay 采样间隔
count 采样次数

4、iostat

统计系统IO。iostat命令 – 监视系统I/O设备使用情况 /真正好用的Linux命令在线查询手册/ :播放正确发音 《Linux就该这么学》是一本基于最新Linux系统编写的入门必读书籍,内容面向零基础读者,由浅入深渐进式教学,销量保持国内第一,年销售量超过10万余本。点此免费在线阅读。 iostat命令来自英文词组“I/O stat”的缩写,其功能是用于监视系统I/O设备使用情况。I/O英文全称是Input/Output,中文译为输入/输出,通常指存储器与其他设备之间的数据交换操作。 iostat命令则能够查看到硬盘活动的统计情况,同时也会显示出CPU处理器的使用情况,帮助Linux系统运维人员进行系统调优。

用法: iostat [参数] 设备名
示例:

(部分)参数:
-c 显示CPU使用情况
-d 显示设备利用率
-h 使用NFS网络文件系统来输出报告
-k 以千字节每秒为单位
-m 以兆字节每秒为单位
-N 显示LVM逻辑卷管理器设备信息
-p 显示块设备和分区的状态
-t 显示报告产生时的时间
-V 显示版本及帮助信息
-x 设置要统计磁盘设备的扩展参数
-y 跳过不显示第一次报告的数据

5、sar

全面地获取系统的CPU、运行队列、磁盘 I/O、分页(交换区)、内存、 CPU中断和网络等性能数据。sar命令来自英文词组“System activity reporter”的缩写,其功能是用于统计系统运行状态。系统管理员可以使用sar命令对Linux系统进行取样,大量的取样数据和分析结果会实时存入到文件中,因此不会消耗太多的内存和额外系统资源。 

用法: sar [参数]
示例:

(部分)参数:
-A 显示全部报告信息
-b 显示I/O速率信息
-c 显示进程创建活动
-d 显示块设备的状态
-e 设置显示结束时间
-f 从文件中读取报告
-i 设置刷新间隔时间
-P 显示每个CPU状态
-R 显示内存状态
-u 显示CPU利用率
-w 显示交换分区状态
-x 显示指定进程状态

6、ipcs

用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。ipcs命令是用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息 。
用法: ipcs [参数]
示例:

(部分)参数:
-a 默认的输出信息
-m 打印出使用共享内存进行进程间通信的信息
-q 打印出使用消息队列进行进程间通信的信息
-s 打印出使用信号进行进程间通信的信息

7、ipcrm

用来删除一个或更多的消息队列、信号量集或者共享内存标识。ipcrm命令用来删除一个或更多的消息队列、信号量集或者共享内存标识。
用法: ipcrm [参数]
示例:
[root@linuxcool ~]# ipcrm -m 18163 #删除和 SharedMemoryID 18163 相关的共享内存段
(部分)参数:
-m SharedMemory id 删除共享内存标识 SharedMemoryID
-M SharedMemoryKey 删除用关键字 SharedMemoryKey 创建的共享内存标识
-q MessageID 删除消息队列标识 MessageID 和与其相关的消息队列和数据结构
-Q MessageKey 删除由关键字 MessageKey 创建的消息队列标识和与其相关的消息队列和数据结构
-s SemaphoreID 删除信号量标识 SemaphoreID 和与其相关的信号量集及数据结构
-S SemaphoreKey 删除由关键字 SemaphoreKey 创建的信号标识和与其相关的信号量集和数据结构

8、strace

用于诊断、调试Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。strace命令来自英文单词“跟踪”,其功能是用于跟踪系统调用信息。strace命令是一个集诊断、调试、统计于一体的工具,可以对系统调用和信号传递的跟踪结果进行分析,从而解决问题。 Linux系统中进程不能直接访问硬件设备,当进程需要读取磁盘文件或接收网络数据时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。而strace命令则可以跟踪到一个进程产生的系统调用数据——包括参数,返回值,执行消耗时间等信息。

用法: strace [参数] [对象]
示例:

(部分)参数:
-a 设置返回值的输出位置
-c 显示执行时间、报错次数等信息
-d 使用调试模式
-e 指定一个表达式
-f 跟踪由fork调用所产生的子进程
-F 跟踪vfork调用
-h 显示帮助信息
-o 将输出结果写入到文件
-p 设置进程号码
-q 不显示离线消息
-r 显示系统调用的相对时间
-t 每一行前加上时间信息(秒 )
-tt 每一行前加上时间信息(微秒级)
-T 显示每次调用所花费时间信息
-u 显示指定用户或用户组的信息
-v 显示所有的系统调用信息
-V 显示版本信息
-x 使用十六进制输出非标准字符串
-xx 使用十六进制输出所有字符串

9、ltrace

命令会跟踪进程的库函数调用,它会显现出哪个库函数被调用。ltrace命令是用来跟踪进程调用库函数的情况,ltrace其实也是基于ptrace。我们知道,ptrace能够主要是用来跟踪系统调用,那么它是如何跟踪库函数呢? 首先ltrace打开elf文件,对其进行分析。在elf文件中,出于动态连接的需要,需要在elf文件中保存函数的符号,供连接器使用。

用法: ltrace [参数]
示例:

(部分)参数:
-a 对齐具体某个列的返回值
-c 计算时间和调用,并在程序退出时打印摘要
-d 打印调试信息
-f 跟踪子进程
-l 只打印某个库中的调用

进程管理相关命令(12个)

1、jobs

查看当前有多少在后台运行的命令。jobs命令来自英文单词“工作”,其功能是用于显示终端后台的作业信息。Linux系统运维人员可以使用jobs命令查看到当前系统中终端后台的任务列表及其运行状态,查看任务列表及对应的进程号码,简单方便地了解到当前有哪些正在后台运行的工作。

用法: jobs [参数]
示例:

(部分)参数:
-l 显示作业列表及进程号
-n 仅显示自发生变化的作业
-p 仅显示其对应的进程号
-r 仅显示运行的作业
-s 仅显示暂停的作业
-x 替代原有作业的进程ID

2、kill

终止进程。kill命令的功能是杀死(结束)进程。Linux系统中如需结束某个进程,既可以使用如service或systemctl这样的管理命令来结束服务,也可以使用kill命令直接结束进程信息。 如使用kill命令后进程并没有结束,则可以使用信号9进行强制杀死动作。 

用法: kill 参数 进程号
示例:
[root@linuxcool ~]# kill -9 518 #强制结束某个指定的进程(数字为对应的PID值,可用ps -ef查看)
(部分)参数:
-a 不限制命令名与进程号的对应关系
-p 不发送任何信号
-l 显示系统支持的信号列表
-s 设置向进程发送的信号

3、crontab

定时任务命令。crontab命令来自英文词组cron table的缩写,其功能是管理定时计划任务。在Linux系统中,crond是一个定时计划任务服务,用户只要能够按照正确的格式(分、时、日、月、星期、命令)写入配置文件,那么就会按照预定的周期时间自动执行,而crontab命令则是用于配置定时计划任务的工具名称。 由于定时计划任务非常复杂,本词条仅作简单介绍,更详细请看[这里](https://www.yuque.com/binrui996/memo/rzlw5ie233u23pbg?singleDoc# 《Linux 实操篇-定时任务调度》)。

用法:	crontab [参数] 对象 
示例:
    
(部分)参数:
  	-l 查看任务
    -e 编辑任务
  	-r 删除任务
  	-i 删除前询问用户是否确认
  	-u 设置用户名

image.png

4、ps

显示进程的快照。ps命令来自英文单词process的缩写,中文译为“进程”,其功能是显示当前系统的进程状态。使用ps命令可以查看到进程的所有信息,例如进程的号码、发起者、系统资源(处理器与内存)使用占比、运行状态等。ps命令可帮助我们及时发现哪些进程出现“僵死”或“不可中断”等异常情‍况。 ps命令经常会与kill命令搭配使用,以中断和删除不必要的服务进程,避免服务器的资源浪费。

用法:	ps 参数 
示例:
    #结合管道操作符,将当前系统运行状态中指定的进程信息过滤出来
    [root@linuxcool ~]# ps -ef | grep ssh		
    #结合管道操作符与sort命令,依据内存使用量(第四列)情况降序排序
    [root@linuxcool ~]# ps aux | sort -rnk 4	
(部分)参数:
  	-a 显示所有进程信息
  	-c 不显示程序路径
  	-d 不显示阶段作业程序
  	-e 显示环境变量信息
  	-f 用ASCII字符显示树状结构
  	-g 显示所有程序及其所属组的程序
  	-h 不显示标题列信息
  	-H 使用树状结构展示程序间的相互关系
  	-j 使用工作控制格式显示程序状态
  	-l 使用详细格式显示程序状态
  	-p 指定程序识别码并显示该程序的状态
  	-r 仅显示终端主机正在执行中的程序
  	-s 使用程序信号格式显示程序状态
  	-S 显示包括已中断的子程序的状态
  	-t 显示属于指定终端主机的程序状态
  	-T 显示当前终端主机下的所有程序
  	-u 使用用户为主的格式来显示程序状态
  	-U 显示属于指定用户的程序状态
  	-v 使用虚拟内存的格式显示程序状态
  	-w 使用宽阔的格式显示程序状态
  	-x 不区分终端主机
  	-X 使用旧式登录格式显示程序状态
  	--cols 设置每列的最大字符数
  	--headers 重复显示标题列
  	--info 显示排错信息
  	--lines 设置显示画面的列数

5、pstree

树形显示进程。pstree命令来自英文词组“display a tree of processes”的缩写,其功能是用于以树状图形式显示进程信息,帮助管理员更好地了解进程间的关系。Linux系统中常用ps命令查看进程状态信息,但是却无法了解进程之间的依赖关系,哪个是父进程,哪个是子进程?这些信息则可通过pstree命令进行查看。

用法: pstree [参数]
示例:

(部分)参数:
-a 显示完整信息
-A 使用ASCII字符绘制树
-c 不使用精简标示法
-g 显示进程组ID
-G 使用VT100终端机的列绘图字符
-h 特别标明现在执行的程序
-I 使用长格式显示树状图
-n 依据PID排序上下级进程
-s 显示指定进程的父进程
-S 显示命名空间转换
-p 显示进程号码
-u 显示用户名
-U 使用UTF-8线条绘制字符
-V 显示版本信息
-Z 显示每个进程的安全上下文

6、nice

调整程序运行的优先级。nice命令的功能是用于调整进程的优先级,合理分配系统资源。Linux系统后台工作中某些不重要的进程,例如定期数据备份、自动清理垃圾等等工作,我们都可以通过nice命令调低其执行优先级,慢慢完成不用着急,把硬件资源留给重要的工作。优先级范围为-20~19,数字越小,优先级越高。
用法: nice [参数] 命令或脚本名
示例:
[root@localhost ~]# nice -n -5 ./File.sh #以优先级别为5的方式执行指定脚本
(部分)参数:
-g 匹配进程组ID
-n 设置优先级别
-p 匹配进程ID
-u 匹配用户ID
–help 显示帮助信息
–version 显示版本信息

7、nohup

忽略挂起信号运行指定的命令。nohup命令来自英文词组“no hang up”的缩写,其功能是用于后端运行程序。nohup命令可以将程序以忽略挂起信号的方式运行起来,而被运行程序的输出信息不会显示到屏幕上。
用法: nohup [参数] [对象]
示例:

(部分)参数:
–help 显示帮助信息
–version 显示版本信息

8、runlevel

查看系统当前运行级别。runlevel命令是读取/var/run/utmp/文件或指定的其他文件,检索其中最近的运行级记录,显示系统先前与当前的运行级 如果运行级记录中没有先前的运行级,则使用字符N表示先前的运行级。如果找不到运行级记录,runlevel将会输出一条表示不知道的错误信息,然后退出,返回一个非0的结束状态
用法: runlevel [参数]
示例:
[root@linuxcool ~]# runlevel #显示系统先前与当前的运行级
(部分)参数:
q 禁止输出任何运行级信息,遇到问题时也不输出错误信息
–help 显示命令的用法与概述等帮助信息
–version 显示命令的版本等信息

9、init

切换运行级别。init命令来自英文单词initialize的缩写,其功能是切换系统运行级别。init命令是Linux系统中的进程初始化工具,是一切服务程序的父进程,它的进程号永远为1。管理员可以使用init命令对系统运行级别进行自由切换,亦可进行重启、关机等操作。

用法:	init 参数 
示例:
    
(部分)参数:
	0:关机
	1:单用户【找回丢失密码】
	2:多用户状态没有网络服务
	3:多用户状态有网络服务
	4:系统未使用保留给用户
	5:图形界面
	6:系统重启
	--help 显示帮助信息

10、service

启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。 service命令的功能是用于管理系统服务,是早期红帽公司Linux系统中最常见的命令之一,主要应用于RHEL /CentOS 7版本以前的系统,能够用来启动、停止、重启或关闭指定服务程序,亦能够查看服务的运行状态信息。
用法: service [参数] 服务名称
示例:

(部分)参数:
restart 重启服务
start 启动服务
status 查看服务状态
stop 关闭服务
-h 显示帮助信息
–status-all 显示所有服务状态

关机/重启/注销和查看系统信息的命令(5个)

1、shutdown

关机。shutdown命令的功能是关闭服务器的系统,作用等同于poweroff命令。
用法: shutdown 参数 对象
示例:

(部分)参数:
-c 取消关机任务
-n 不调用init程序进行关机
-f 关机时不检查文件系统
-P 系统关机后切断电源
-F 关机时先检查文件系统
-r 将系统立即重启
-h 将系统立即关机
-s 关闭此计算机,非立即操作
-k 发送信息给所有用户
-t 设置距离关闭计算机还剩余的秒数

2、halt

关机。halt命令的功能是用于关闭当前服务器系统,类似于poweroff与shutdown命令,没有太大差别。

用法: halt [参数]
示例:

(部分)参数:
-a 关闭系统前不同步数据
-d 不写入日志文件
-f 强制关机或重启而不询问
-i 关机或重启前关掉所有的网络服务
-w 模拟关机,将过程写入到日志文件
–verbose 显示执行过程详细信息

3、poweroff

关闭电源。poweroff命令来自英文单词“关机”,其功能是用于关闭操作系统。很多学习者会着迷于对比poweroff、halt、shutdown、init 0等命令之间的区别,但我们要跟大家说明的是,它们都是Linux系统中的关机命令,体感上没有区别,更多地是依据个人喜好来选择的。
用法: poweroff [参数]
示例:

(部分)参数:
-d 关机时不写入任何信息到日志文件
-f 强制关闭操作系统而不询问
-h 关机前将所有硬件设置为备用模式
-i 关机前先关闭所有的网卡
-n 关机时不执行同步操作
-w 模拟关机操作并记录过程到日志文件
–help 显示帮助信息

4、logout

Ctrl+d 退出当前登录的Shell的快捷键。
退出当前登录的Shell。logout指令让用户退出系统,其功能和login指令相互对应。
用法: logout [参数]
示例:

(部分)参数:
–help 在线帮助
–vesion 显示版本信息

5、exit

退出当前登录的Shell。exit命令的功能是退出终端。在终端或shell脚本中执行exit命令默认会直接退出终端,亦可在命令后添加状态值参数,这样退出后可方便后续脚本判断本次执行结果是否成功(例如执行echo $?命令)。
用法: exit 参数
示例:

(部分)参数:
0 执行成功
1 执行失败

  • 8
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值