wordpress 百度站长,wordpress4.x版本,网站 外包方案,做后期的网站有哪些Linux 运维/开发/测试 常用命令100
线上查询及帮助命令(2个)
命令功能说明示例man 命令查看普通命令帮助#xff0c;命令的词典#xff0c;更复杂的还有info#xff0c;但不常用。rootbrLinux ~]#man lshelp 命令查看Linux内置命令的帮助#xff0c;比如cd命令。[rootbrL…Linux 运维/开发/测试 常用命令100
线上查询及帮助命令(2个)
命令功能说明示例man 命令查看普通命令帮助命令的词典更复杂的还有info但不常用。rootbrLinux ~]#man lshelp 命令查看Linux内置命令的帮助比如cd命令。[rootbrLinux ~]#help cd命令 --help查看命令简易帮助[rootbrLinux ~]#mkdir --help
整理的命令集合
查看文件及内容处理命令17个
1、cat
全拼concatenate功能是用于连接多个文件并且打印到屏幕输出或重定向到指定文件中。
用法cat [选项]... [文件]...
将[文件]或标准输入组合输出到标准输出。
示例cat 3.unl 显示文件全部内容(可同时查看多个文件)cat -n 3.unl 查看文件内容,打印输出时显示行号
部分参数-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 或 CtrlC退出查看) 部分参数 -d 显示帮助而不是响铃 -f 统计逻辑行数而不是屏幕行数 -l 抑制换页(form feed)后的暂停 -p 不滚屏清屏并显示文本 -c 不滚屏显示文本并清理行尾 -u 抑制下划线 -s 将多个空行压缩为一行 -NUM 指定每屏显示的行数为 NUM NUM 从文件第 NUM 行开始显示 /STRING 从匹配搜索字符串 STRING 的文件位置开始显示 -V 输出版本信息并退出
4、less
分页显示文件内容不会自动退出需要按q结束退出more命令的相反用法。 用法 示例 less ac.txt 分页显示文件内容(分屏查看空格翻屏回车翻行不显示已阅百分比按Q显示命令提示符) less -N ac.txt 分页显示文件内容同时 显示行号
部分参数 -L … --no-lessopen Ignore the LESSOPEN environment variable. -m -M … --long-prompt --LONG-PROMPT Set prompt style. -n … --line-numbers Don’t use line numbers. -N … --LINE-NUMBERS Use line numbers.
5、head
查看文件内容默认查看文件前10行。 用法head [选项]… [文件]… 将每个FILE的前10行打印为标准输出。对于多个FILE请在每个FILE之前加一个提供文件名的标头。如果没有FILE或者当FILE为-时读取标准输入。 长期权的强制性参数对于短期权也是强制性的。 示例 head -5 ac.txt 显示文件的前5行 head -c 15 ac.txt 显示文件前15个字符 部分参数 -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 [选项]… [文件]… 将每个FILE的最后10行打印为标准输出。对于多个FILE请在每个FILE之前加一个提供文件名的标头。如果没有FILE或者当FILE为-时读取标准输入。 长期权的强制性参数对于短期权也是强制性的。 示例 tail -5 ac.txt 显示文件的后5行 tail -5f ac.txt 显示文件的后5行默认显示后10行并动态刷新常用于日志查看 部分参数 -c, --bytesK 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 --followname --retry -n, --linesK output the last K lines, instead of the last 10; or use -n K to output starting with the Kth –max-unchanged-statsN with --followname, 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 –pidPID 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-intervalN with -f, sleep for approximately N seconds (default 1.0) between iterations; with inotify and --pidP, 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, --fieldsLIST 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输出到PREFIXaaPREFIXab.;默认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.对指定的文件内容(默认行首)按照字母顺序进行排序展示(不会改变源文件) [rootbrLinux /opt]# cat file1 nana pear apple orange raspaberry [rootbrLinux /opt]#sort file1 apple nana orange pear raspaberry [rootbrLinux /opt]#cat file1 nana pear apple orange raspaberry 2.对指定的文件内容按照数字大小进行排序 [rootbrLinux /opt]#cat file2 24 56 945 12 3 98 82 67 24 56 9 [rootbrLinux /opt]#sort -n file2 3 98 9 12 24 24 56 56 82 67 945 3.以冒号为间隔符对指定的文件内容按照数字大小对第3列进行排序 [rootbrLinux /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 [rootbrLinux /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.对指定的文件进行去重操作 [rootlinuxcool ~]# cat File test 30 test 30 test 30 Hello 95 Hello 95 Hello 95 Hello 95 Linux 85 Linux 85 [rootlinuxcool ~]# uniq File test 30 Hello 95 Linux 85 2.统计相同内容行在文件中重复出现的次数 [rootlinuxcool ~]# uniq -c File 3 test 30 4 Hello 95 2 Linux 85
12、wc
统计文件的行数/单词数/字节数等; wc命令来自英文词组“Word count”的缩写。 用法wc [参数] 文件名 示例 [rootbrLinux /opt/10055 ]# ls |wc -l 统计当前目录下文件个数 [rootbrLinux /opt/10055 ]# wc -l c.txt 统计文件的行数 部分参数 -c 统计字节数 -l 统计行数 -L 设置最长行的长度 -m 统计字符数 -w 统计单词数
13、diff
比较文件的差异常用于文本文件。diff命令来自英文单词“difference”的缩写其功能是用于比较文件内容差异。如果有多个内容相近的文件如何快速定位到不同内容所在位置此时用diff命令就再合适不过了~ 用法diff [参数] 文件名1 文件名2 示例 [rootbrLinux /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.同时编辑两个内容不同存在差异的文件 [rootbrLinux /opt]#vimdiff file1 file2
15、grep
过滤字符串三剑客老三。人们通常会将grep命令与正则表达式搭配使用参数作为搜索过程中的补充或对输出结果的筛选命令模式十分灵活。 与之容易混淆的是egrep命令和fgrep命令。如果把grep命令当作是标准搜索命令那么egrep则是扩展搜索命令等价于“grep -E”命令支持扩展的正则表达式。而fgrep则是快速搜索命令等价于“grep -F”命令不支持正则表达式直接按照字符串内容进行匹配。用法**grep [参数] 文件名 ** 示例 [rootbrLinux /opt/10055 ]# grep -E ‘51|61’ a.txt 多条件过滤把符合条件的都过滤出来 [rootbrLinux /opt/10055 ]# grep -v 51 a.txt 反向过滤匹配不包含关键字的 [rootbrLinux /opt/10055 ]# grep -rl 51 a.txt 匹配子文件打印包含关键字的文件名 部分参数 -n 显示所有匹配行及其行号 -h 搜索多文件时不显示文件名 -r 递归搜索模式 -F 匹配固定字符串的内容 -v 显示不包含匹配文本的所有行 -W 精准匹配整词 -x 精准匹配整行 -E 支持扩展正则表达式 -l 只显示符合匹配条件的文件名 -c 显示指定文件中关键词的数量
16、tr
替换或删除字符。tr命令来自英文单词“transform”的缩写中文译为“转换”其功能是用于字符转换。tr命令是一款批量字符转换、压缩、删除的文本工具但仅能从标准输入中读取文本内容需要与管道符或输入重定向操作符搭配使用。 用法tr [参数] 字符串1 字符串2 示例 [rootlinuxcool ~]# tr [a-z] [A-Z] File.cfg 将指定文件中的小写字母转换成大写字母后输出内容到终端界面 [rootlinuxcool ~]# tr -d [0-9] File.cfg 删除指定文件中所有的数字后 输出内容 到终端界面 [rootlinuxcool ~]# 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
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 [选项]… 目录…** 如果目录不存在请创建目录。 长期权的强制性参数对于短期权也是强制性的。 示例 mkdir /tmp/br 创建目录br若父目录不存在报错 mkdir -p /tmp/br/aa/ 创建目录aa若父目录不存在同时创建 部分参数 -m, --modeMODE set file mode (as in chmod), not arwx - umask -p, --parents no error if existing, make parent directories as needed -v, --verbose print a message for each created directory -Z set SELinux security context of each created directory to the default type –context[CTX] like -Z, or if CTX is specified then set the SELinux or SMACK security context to CTX –help 显示此帮助信息并退出 –version 显示版本信息并退出
4、touch
摸的意思 创建文件重复的文件忽视。Linux广义上一切皆文件目录也是文件目录和文件不同重名. 用法 示例 touch aa.txt 创建文件aa.txt touch {1…5}.txt 批量创建文件等价 touch 1.txt 2.txt 3.txt 4.txt 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属性信息 -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 [选项]… 文件… 删除取消链接FILE。默认时rm 不会删除目录。使用–recursive(-r 或-R)选项可删除每个给定的目录以及其下所有的内容。 示例 rm -rf aa.txt 部分参数 -d 仅删除无子文件的空目录 -v 显示执行过程详细信息 -f 强制删除文件而不询问 -i 删除文件前询问用户是否确认 -r 递归删除目录及其内全部子文件 –version 显示版本信息 –help 显示帮助信息 [如何避免误删除](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
全拼print working directory其功能是显示当前工作目录的绝对路径。pwd命令来自英文词组“print working directory”的缩写其功能是用于显示当前工作目录的路径即显示所在位置的绝对路径。 在实际工作中我们经常会在不同目录之间进行切换为了防止“迷路”可以使用pwd命令快速查看当前所处的工作目录路径方便开展后续工作。 用法pwd [参数] 示例 [rootbrLinux /opt/10055 ]# pwd 查看当前路径 部分参数 -L 显示逻辑路径 -P 显示实际物理地址
10、rename
批量修改文件名称。rename命令的功能是用于批量修改文件名称。与mv命令一次只能修改一个文件名不同rename命令能够基于正则表达式对文件名进行批量修改但要求是把匹配规则准确地描述给系统。 用法 rename 原字符 新字符 文件名 参数有三项其一是当前文件名中要被修改的字符其二是其要被修改为的新字符其三是要被执行的对象文件列表。 示例 [rootlinuxcool ~]# rename .cfg .txt * 将当前工作目录下后缀为.cfg的文件改成.txt后缀结尾 [rootlinuxcool ~]# rename a A * 将当前工作目录下文件名中的小写a改成大写A 部分参数 -V 显示版本信息
11、chattr
改变文件的扩展属性。chattr命令来自英文词组“change attribute”的缩写其功能是用于更改文件隐藏属性。常用的ls命令仅能够查看到文件的一般权限、特殊权限、SELinux安全上下文与是否有FACL访问控制列表等情况但却无法查看到文件隐藏属性. 用法 chattr 参数 文件名 示例 [rootlinuxcool ~]# chattr -R i /Dir 给指定目录添加隐藏属性递归操作 [rootlinuxcool ~]# chattr i File.cfg 给指定文件添加隐藏属性 [rootlinuxcool ~]# chattr -i File.cfg 从指定文件移除隐藏属性 部分参数 -R 递归处理所有子文件 -v 设置文件或目录版本 开启文件或目录的指定隐藏属性 – 关闭文件或目录的指定隐藏属性 设置文件或目录的指定隐藏属性 常用权限 i 无法对文件进行任何修改 a 仅允许补充内容无法覆盖/删除内容 S 文件内容在变更后立即同步到硬盘 s 彻底从硬盘中删除不可恢复 A 不再修改这个文件或目录的最后访问时间 b 不再修改文件或目录的存取时间 D 检查压缩文件中的错误 d 使用dump命令备份时忽略本文件/目录 c 默认将文件或目录进行压缩 u 当删除该文件后依然保留其在硬盘中的数据 t 让文件系统支持尾部合并 x 可以直接访问压缩文件中的内容
12、lsattr
查看文件扩展属性。lsattr命令来自英文词组“list attribute”的缩写其功能是用于显示文件的隐藏属性。隐藏属性也叫隐藏权限顾名思义就是用chattr命令添加在文件上的隐藏权限属性用常规ls命令无法查看到它们需要使用lsattr命令查看这些属性信息。 用法 lsattr [参数] 文件名 示例 [rootlinuxcool ~]# lsattr File.cfg 查看指定文件上的隐藏属性 [rootlinuxcool ~]# lsattr -d /root 仅查看指定目录本身上的隐藏属性 [rootlinuxcool ~]# lsattr -a /root 查看指定目录中全部文件上的隐藏属性 部分参数 -a 显示目录中的所有文件 -d 仅显示目录名称 -D 显示属性的名称及默认值 -E 显示从用户设备数据库中获得的当前值 -F 设置用户定义格式 -R 递归处理所有子文件
13、file 显示文件的类型。
sfile命令的功能是用于识别文件类型也可以用来辨别一些内容的编码格式。由于Linux系统并不是像Windows系统那样通过扩展名来定义文件类型的因此用户无法直接通过文件名来进行区别。file命令则是为了解决此问题通过分析文件头部信息中的标识信息来显示文件类型使用很方便。 语法格式 用法 file [参数] 文件名 示例 [rootbrLinux ~]#file 1.unl 查看文件1.unl的类型 部分参数 -b 不显示文件名 -c 显示执行过程 -f 显示文件类型信息 -i 显示MIME类别信息 -L 显示符号链接所指向文件的类型 -z 尝试去解读压缩内的文件内容
文件压缩及解压缩命令4个
1、tar
打包压缩。tar命令的功能是用于压缩和解压缩文件能够制作出Linux系统中常见的.tar、.tar.gz、.tar.bz2等格式的压缩包文件。对于RHEL7、CentOS7版本以后的系统解压缩时可以不添加格式参数如z或j系统也能自动进行分析并解压。 压缩包规范后缀为.tar.gz 用法 tar 参数 压缩包名 [文件或目录名] 示例 [rootbrLinux /opt/10055 ]# tar -czvf 10055.tar.gz 1.txt 2.txt 同时打包压缩文件1.txt 与2.txt并显示压缩过程 [rootbrLinux /opt/10055 ]# tar -xzvf 10055.tar.gz 解压指定压缩包到当前工作目录 部分参数 -c 创建新的压缩包 -f 指定压缩包文件 -p 保留原来的文件权限与属性 -v 显示执行过程详细信息 -x 从压缩包内提取文件 -z 使用gzip压缩格式 –remove-files 操作完成后删除源文件
2、unzip
unzip命令用于解压缩zip格式的文件虽然Linux系统中更多地使用tar命令对压缩包进行管理操作但有时也会接收到Windows系统常用的zip和rar格式的压缩包文件unzip命令便派上了用场。直接使用unzip命令解压缩文件后压缩包内原有的文件会被提取并输出保存到当前工作目录下。 用法 unzip 参数 压缩包名 示例 [rootlinuxcool ~]# unzip File.zip -d /home 将压缩包文件解压到指定目录中 [rootlinuxcool ~]# unzip -t File.zip 测试压缩包文件是否完整文件有无损坏 部分参数 -a 对文本进行必要的字符转换 -L 将压缩包内文件名改为小写 -b 不要对文本进行任何字符转换 -n 解压缩时不覆盖已有文件 -c 适当转换字符后输出解压缩结果 -p 使用密码加密 -C 严格区分大小写 -q 静默执行模式 -d 解压缩文件到指定目录中 -t 检查压缩包完整性 -f 强制覆盖已有文件 -v 显示执行过程详细信息 -j 不处理压缩文件中原有的目录路径 -x 跳过压缩包内的指定文件 -l 显示压缩包内文件列表 -z 显示压缩包内的备注文字
3、gzip
gzip命令来自英文单词gunzip的缩写其功能是压缩和解压文件。gzip是一个使用广泛的压缩命令文件经过压缩后一般会以.gz后缀结尾与tar命令合用后即为.tar.gz后缀。 据统计gzip命令对文本文件的压缩比率通常能达到60%~70%压缩后可以很好地提升存储空间的使用率还能够在网络中传输文件时减少等待时间。 用法 gzip 参数 文件名 示例 [rootlinuxcool ~]# gzip File.cfg 压缩文件File.cfg 压缩包默认以“原文件名.gz”保存到当前工作目录下原文件会被自动删除 [rootlinuxcool ~]# gzip -dv File.cfg.gz 解压File.cfg.gz文件并显示解压过程解压后的文件会保存在当前目录下压缩包会被自动删除 [rootlinuxcool ~]# gzip -k File.cfg 将指定的文件进行压缩但是不删除原文件 [rootlinuxcool ~]# gzip -l File.cfg.gz 显示指定文件的压缩信息 部分参数 -a 使用ASCII文本模式 -n 不保存原来的文件名及时间戳 -c 把压缩后的文件输出到标准输出设备 -N 保存原来的文件名及时间戳 -d 解压指定的压缩包文件 -t 测试压缩包是否正确无误 -f 强行压缩文件而不询问 -q 静默执行模式 -h 显示帮助信息 -r 递归处理所有子文件 -k 保留原文件 -S 设置解压或压缩后文件的后缀名 -l 显示压缩包内的文件信息 -v 显示执行过程详细信息 -L 显示版权信息 -V 显示版本信息
4、zip
zip命令的功能是压缩文件解压命令为unzip。通过zip命令可以将文件打包成zip格式的压缩包里面包含文件的名称、路径、创建时间、上次修改时间等信息与tar命令相似。 用法 zip 参数 目标文件名.zip 源文件或目录名 示例 [rootlinuxcool ~]# zip -r File.zip /etc #将指定目录及其包含的全部文件都打包成zip格式的压缩包文件 [rootlinuxcool ~]# 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”替换成“LFCR”字符 -w 在文件名称中加入版本编号 -L 显示版本信息 -X 不保留过多的文件属性信息 -m 压缩后删除源文件 -y 直接保存符号链接而不是对应文件
信息显示命令10个
1、uname
显示操作系统相关信息的命令。uname命令来自英文词组UNIX name的缩写其功能是查看系统主机名、内核及硬件架构等信息。如果不加任何参数默认仅显示系统内核名称相当于-s参数的作用。
用法 uname 参数 示例 [rootbrLinux /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 [rootbrLinux /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 [参数] [主机名] 示例 [rootbrLinux /opt/10055 ]# hostname #显示系统当前主机名 [rootbrLinux /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 [参数] 示例 [rootlinuxcool ~]# 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 [参数] 示例 [rootlinuxcool ~]# uptime #查看当前系统负载及相关信息 部分参数 -p 以更易读的方式显示 -s 显示本次开机时间
5、stat
显示文件或文件系统的状态。stat命令来自英文单词status的缩写其功能是用于显示文件的状态信息。Linux系统中每个文件都有三个“历史时间”——最后访问时间ATIME、最后修改时间MTIME、最后更改时间CTIME用户可以使用stat命令查看到它们进而判别有没有其他人修改过文件内容。 *使用touch命令可以轻易修改文件的ATIME和MTIME因此请勿单纯以文件历史时间作为判别系统有无被他人入侵的唯一标准。 用法 stat [参数] 文件名 示例 [rootbrLinux /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 参数 对象磁盘/分区 示例 [rootlinuxcool ~]# df -h 显示系统全部磁盘的使用量情况带容量单位 [rootlinuxcool ~]# df -i 显示系统全部磁盘目录数情况 部分参数 -a 显示所有文件系统 -l 只显示本地文件系统 -h 以更易读的方式显示 -t 只显示指定类型文件系统 -H 以1KB1000B为换算单位 -T 显示文件系统的类型 -i 显示索引字节信息 –sync 在获取磁盘使用信息前先执行sync同步命令 -k 设置显示时的块大小
8、top
实时显示系统资源使用情况。top命令的功能是实时显示系统运行状态包含处理器、内存、服务、进程等重要资产信息。运维工程师们常常会把top命令比作“加强版的Windows任务管理器”因为除了能看到常规的服务进程信息之外还能够对处理器和内存的负载情况一目了然实时感知系统全局的运行状态。top命令非常适合作为接手服务器后执行的第一条命令。 用法 top 参数 对象 示例 [rootlinuxcool ~]# 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 参数 对象 示例 [rootlinuxcool ~]# date #以默认格式输出系统当前的日期与时间信息 [rootlinuxcool ~]# date “%Y-%m-%d” #按照“年-月-日”的指定格式输出系统当前的日期信息 [rootlinuxcool ~]# 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命令的功能是用于根据给定的路径和条件查找相关文件或目录参数灵活方便且支持正则表达式结合管道符后能够实现更加复杂的功能是Linux系统运维人员日常工作必须掌握的命令之一。 find命令通常进行的是从根目录/开始的全盘搜索有别于whereis、which、locate……等的有条件或部分文件的搜索。对于服务器负载较高的情况建议不要在高峰时期使用find命令的模糊搜索会相对消耗较多的系统资源。 用法find [路径] [条件] 文件名 示例 [rootlinuxcool ~]# find / -name .conf #全盘搜索系统中所有以.conf结尾的文件 [rootlinuxcool ~]# find /etc -size 1M 在/etc目录中搜索所有大于1M大小的文件 [rootlinuxcool ~]# find /var/log ! -name .log 在/var/log目录下搜索所有不是以.log结尾的文件 [rootlinuxcool ~]# find / -name “*.mp4” -exec rm -rf {} ; 全盘搜索系统中所有后缀为.mp4的文件并删除所有查找到的文件 部分参数 -name 匹配文件名 -perm 匹配文件权限 -user 匹配文件所属主 -group 匹配文件所属组 -mtime 匹配最后修改文件内容时间 -atime 匹配最后读取文件内容时间 -ctime 匹配最后修改文件属性时间 -nouser 匹配无所属主的文件 -nogroup 匹配无所属组的文件 -newer 匹配比指定文件更新的文件 -type 匹配文件类型 -size 匹配文件大小 -prune 不搜索指定目录 -exec …… {}; 进一步处理搜索结果(或者 xargs)
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 指定家目录 部分参数 -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 参数 用户名 示例
部分参数 -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 显示用户所属基本组的IDGID -Z 显示用户的安全上下文 -G 显示用户所属扩展组的IDGID –help 显示帮助信息 -n 显示用户所属基本组或扩展组的名称 –version 显示版本信息 -u 显示用户的IDUID
8、su
切换用户身份。su命令来自英文单词switch user的缩写其功能是切换用户身份。将管理员切换至任意用户身份时无须密码验证而将普通用户切换至任意用户身份时均需密码验证。另外添加单个减号-参数表示完全的身份变更不保留之前用户的任何环境变量信息。 用法 su 参数 用户名 示例 [rootlinuxcool ~]# su - linuxprobe #完全变更至指定的用户身份 部分参数 — 完全地切换身份 -m 切换身份时不变更环境变量 -c 执行完命令后自动恢复原来的身份 -s 设置要执行的Shell终端 -f 不读取启动文件适用于csh和tsch –help 显示帮助信息 -l 切换身份时同时变更工作目录 –version 显示版本信息
9、visudo
编辑/etc/sudoers文件的专属命令。使用visudo命令可以打开/etc/sudoers文件进行编辑设置sudo 用法 visudo [参数] 示例 [rootlinuxcool ~]# 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系统则不会自动终止需要用户手动按下CtrlC组合键才能结束或是发起命令时加入-c参数限定发送数据包的个数。 用法 ping 参数 域名或IP地址 示例 [rootlinuxcool ~]# ping www.baidu.com #测试与指定域名之间的网络连通性需手动按下CtrlC组合键结束命令 部分参数 -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 参数 示例 [rootlinuxcool ~]# 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 参数 网卡名 动作 示例 [rootlinuxcool ~]# ifconfig #显示系统的网络设备信息 [rootlinuxcool ~]# ifconfig ens160 down #关闭网卡ens160 [rootlinuxcool ~]# ifconfig ens160 up #打开网卡ens160 部分参数 -a 显示所有网卡状态 -v 显示执行过程详细信息 -s 显示简短状态列表
5、ifup
启动网卡。ifup命令来自英文词组“interface up”的缩写其功能是用于激活网络接口。ifup命令会去读取Linux系统中网络接口服务目录下的配置文件随后根据配置文件的内容来激活对应的网络接口这样就能实现对指定网卡启用的效果了。 用法 ifup 网络接口 示例 [rootlinuxcool ~]# ifup eth0 #激活网卡eth0 部分参数
6、ifdown
关闭网卡。ifdown命令来自英文词组“interface down”的缩写其功能是用于禁用网络接口。ifdown命令会去读取Linux系统中网络接口服务目录下的配置文件随后根据配置文件的内容来关闭对应的网络接口这样就能实现对指定网卡停用的效果了。 用法 ifdown 网络接口 示例 [rootlinuxcool ~]# ifdown eth0 #关闭网卡eth0 部分参数
7、route
显示和设置linux系统的路由表。 route命令的功能是显示与设置路由信息是Linux系统中常用的静态路由配置工具。要想让两台处于不同子网的服务器实现通信需要有一个跨网段的路由器来连接它们并用route命令为其设置路由信息。 用法 route 参数 域名或IP地址 示例 [rootlinuxcool ~]# route #显示当前路由表信息 [rootlinuxcool ~]# route add default gw 192.168.10.1 #添加默认网关 [rootlinuxcool ~]# 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 对象 示例 [rootlinuxcool ~]# 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 参数 文件或目录名 远程服务器信息 示例 [rootlinuxcool ~]# scp File.cfg 192.168.10.10:/Dir #把本地文件File.cfg传到192.168.10.10机子的/Dir下 [rootlinuxcool ~]# scp 192.168.10.10:/Dir/File.cfg /root #把远程主机192.168.10.10中/Dir/File.cfg文件复制到本地/root下 [rootlinuxcool ~]# scp -r Dir 192.168.10.10:/Dir #把本地目录Dir复制到192.168.10.10机子的/Dir目录下 [rootlinuxcool ~]# 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地址 示例 [rootlinuxcool ~]# 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 关闭指定的认证形态
1 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 [参数] 域名 示例 [rootlinuxcool ~]# 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地址 示例 [rootlinuxcool ~]# nmap --traceroute www.linuxcool.com #扫描目标主机并跟踪路由信息 [rootlinuxcool ~]# 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 参数 设备名 目录名 示例 [rootlinuxcool ~]# mount #查看当前系统中已有的文件系统信息 [rootlinuxcool ~]# mount -a #挂载/etc/fstab文件中所有已定义的设备文件 [rootlinuxcool ~]# 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 参数 设备名 示例 [rootlinuxcool ~]# 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 参数 设备名 示例 [rootlinuxcool ~]# 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 参数 设备名 示例 [rootlinuxcool ~]# 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 urwx aa.txt #【给用户 加 读写执行 权限】 chmod grwx aa.txt #【给组 加 读写执行 权限】 chmod orwx aa.txt #【去除 其他用户 的 读写执行 权限】 部分参数 -c 改变权限成功后再输出成功信息 -f 改变权限失败后不显示错误信息 -R 递归处理所有子文件 -v 显示执行过程详细信息 –version 显示版本信息 –help 显示帮助信息 –no-preserve-root 不特殊对待根目录 –preserve-root 禁止对根目录进行递归操作 –reference 使用指定参考文件的权限
2、chown
改变文件或目录的属主和属组。 chown命令来自英文词组change owner的缩写其功能是改变文件或目录的用户和用户组信息。管理员可以改变一切文件的所属信息而普通用户只能改变自己文件的所属信息。 用法 chown 参数 所属主:所属组 文件名 示例 [rootlinuxcool ~]# 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 [参数] 示例 [rootlinuxcool ~]# 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 参数 对象 示例 [rootbrLinux /tmp/br/asd/qqp]# $alias #查看已经设置好的别名 [rootbrLinux /tmp/br/asd/qqp]#alias cp‘cp -i’ #给命令cp -i 设置别名cp 以后使用cp命令就等于使用cp -i 命令 [rootbrLinux /tmp/br/asd/qqp]#unalias cp #取消别名 部分参数 -p 显示系统中已有的命令别名
2、echo
打印变量或直接输出指定的字符串。echo命令的功能是在终端设备上输出指定字符串或变量提取后的值能够给用户一些简单的提醒信息亦可以将输出的指定字符串内容同管道符一起传递给后续命令作为标准输入信息进行二次处理还可以同输出重定向符一起操作将信息直接写入文件。如需提取变量值需在变量名称前加入 符号变量名称一般均为大写形式。用法 e c h o 参数字符串或 符号变量名称一般均为大写形式。 用法 echo 参数 字符串或 符号变量名称一般均为大写形式。用法echo参数字符串或变量名 示例 [rootlinuxcool ~]# echo “Hello World” Doc.txt #字符串内容写入文件中 覆盖 追加如果文件不存在就会新建一个文件在往里写 [rootlinuxcool ~]# echo $PATH #输出某个变量值 [rootlinuxcool ~]# echo -e “First\nSecond\nThird” #输出带有换行符的内容\n会识别为换行符 部分参数 -e “内容” 识别转义字符(转义字符见下表) -E 禁止反斜杠转义 -n 不输出结尾的换行符 –version 显示版本信息 –help 显示帮助信息
转义字符含义转义字符含义\ttab\c结尾不加换行符\n换行\f换行后光标仍停留在原来的位置\b删除前一个字符\r光标移至行首但不换行
echo命令输出不同颜色 [rootoldgirl /opt]# echo -e “\033[30m 黑色字oldboy trainning \033[0m” 黑色字oldboy trainning [rootoldgirl /opt]# echo -e “\033[31m 红色字oldboy trainning \033[0m” 红色字oldboy trainning [rootoldgirl /opt]# echo -e “\033[32m 绿色字oldboy trainning \033[0m” 绿色字oldboy trainning [rootoldgirl /opt]# echo -e “\033[33m 黄色字oldboy trainning \033[0m” 黄色字oldboy trainning [rootoldgirl /opt]# echo -e “\033[34m 蓝色字oldboy trainning \033[0m” 蓝色字oldboy trainning [rootoldgirl /opt]# echo -e “\033[35m 紫色字oldboy trainning \033[0m” 紫色字oldboy trainning [rootoldgirl /opt]# echo -e “\033[36m 天蓝字oldboy trainning \033[0m” 天蓝字oldboy trainning [rootoldgirl /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 参数 软件包名 示例 [rootlinuxcool ~]# rpm -ivh cockpit-185-2.el8.x86_64.rpm #正常安装软件包 [rootlinuxcool ~]# rpm -qa #显示系统已安装过的全部RPM软件包 [rootlinuxcool ~]# rpm -ql cockpit #查询某个软件的安装路径 [rootlinuxcool ~]# rpm -evh cockpit #卸载通过RPM软件包安装的某个服务 [rootlinuxcool ~]# 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命令后终端界面会向后翻一页实现了“清除”当前屏幕上已有内容的效果等同于快捷键“Ctrlc”的效果。 用法 clear [参数] 示例 clear 部分参数 –help 显示帮助信息 –vesion 显示版本信息
8、history
查看命令执行的历史纪录。history命令的功能是显示与管理历史命令记录。Linux系统默认会记录用户执行过的有命令可以使用history命令查阅它们也可以对其记录进行修改和删除操作。用法 history 参数 示例
部分参数 -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 [参数] 示例 [rootlinuxcool ~]# mpstat -P 1 #执行监控第一个CPU [rootlinuxcool ~]# mpstat -P ALL #执行监控全部CPU [rootlinuxcool ~]# 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 [参数] 示例 [rootlinuxcool ~]# 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 参数 进程号 示例 [rootlinuxcool ~]# kill -9 518 #强制结束某个指定的进程数字为对应的PID值可用ps -ef查看 部分参数 -a 不限制命令名与进程号的对应关系 -p 不发送任何信号 -l 显示系统支持的信号列表 -s 设置向进程发送的信号
3、crontab
定时任务命令。crontab命令来自英文词组cron table的缩写其功能是管理定时计划任务。定时计划任务顾名思义就是计划好的任务到了时间就会自动执行。在Linux系统中crond是一个定时计划任务服务用户只要能够按照正确的格式分、时、日、月、星期、命令写入配置文件那么就会按照预定的周期时间自动执行而crontab命令则是用于配置定时计划任务的工具名称。 由于定时计划任务非常复杂本词条仅作简单介绍建议阅读《Linux就该这么学第2版》一书的第4章节。 用法 crontab 参数 对象 示例
部分参数 -e 编辑任务 -r 删除任务 -i 删除前询问用户是否确认 -u 设置用户名 -l 显示任务 –help 显示帮助信息
4、ps
显示进程的快照。ps命令来自英文单词process的缩写中文译为“进程”其功能是显示当前系统的进程状态。使用ps命令可以查看到进程的所有信息例如进程的号码、发起者、系统资源处理器与内存使用占比、运行状态等。ps命令可帮助我们及时发现哪些进程出现“僵死”或“不可中断”等异常情况。 ps命令经常会与kill命令搭配使用以中断和删除不必要的服务进程避免服务器的资源浪费。 用法 ps 参数 示例 [rootlinuxcool ~]# ps -ef | grep ssh #结合管道操作符将当前系统运行状态中指定的进程信息过滤出来 [rootlinuxcool ~]# ps aux | sort -rnk 4 #结合管道操作符与sort命令依据内存使用量第四列情况降序排序 部分参数 -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 重复显示标题列 –help 显示帮助信息 –info 显示排错信息 –lines 设置显示画面的列数 –version 显示版本信息
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 [参数] 命令或脚本名 示例 [rootlocalhost ~]# 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 [参数] 示例 [rootlinuxcool ~]# 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
Ctrld 退出当前登录的Shell的快捷键。 退出当前登录的Shell。logout指令让用户退出系统其功能和login指令相互对应。 用法 logout [参数] 示例
部分参数 –help 在线帮助 –vesion 显示版本信息
5、exit
退出当前登录的Shell。exit命令的功能是退出终端。在终端或shell脚本中执行exit命令默认会直接退出终端亦可在命令后添加状态值参数这样退出后可方便后续脚本判断本次执行结果是否成功例如执行echo $?命令。 用法 exit 参数 示例
部分参数 0 执行成功 1 执行失败