Linux 命令大全(下)
1. 文件管理 常用命令
1.1 ls 命令 – 显示目录中文件及其属性信息
1.1.1 含义
ls
是英文单词 list
的缩写,其功能为列出目录的内容,是用户最常用的命令之一,类似于 DOS 下的 dir 命令。
- 默认不添加任何参数的情况下,
ls
命令会列出当前工作目录中的文件信息,常与 cd
或 pwd
命令搭配使用,十分方便。而带上参数后,我们则可以做更多的事情。
1.1.2 语法格式
1.1.3 Linux 下文件和目录的特点
- Linux 文件或目录名称最长可以有 256 个字符;
- 以
.
开头的文件为隐藏文件,需要用 -a
参数才能显示;
.
代表当前目录;
..
代表上一级目录。
1.1.4 常用参数
参数 |
含义 |
-a |
显示所有文件及目录 |
-A |
不显示当前目录和父目录 |
-d |
显示目录自身的属性信息 |
-i |
显示文件的 inode 属性信息 |
-l |
显示文件的详细属性信息 |
-m |
以逗号为间隔符,水平显示文件信息 |
-r |
依据首字母将文件以相反次序显示 |
-R |
递归显示所有子文件 |
-S |
依据内容大小将文件排序显示 |
-t |
依据最后修改时间将文件排序显示 |
-X |
依据扩展名将文件排序显示 |
--color |
显示信息带有着色效果 |
1.1.5 参考示例
ls
ls -a
ls -l
ls /etc
- 显示当前目录中的文件名及
inode
属性块号码:
ls -i
- 结合通配符一起使用,显示指定目录中所有以
sd
开头的文件列表:
ls /dev/sd*
- 依据文件内容大小进行排序,显示指定目录中文件名及其属性详情信息:
ls -Sl /etc
1.2 cp 命令 – 复制文件或目录
1.2.1 含义
cp
命令来自英文单词 copy
的缩写,中文译为“复制”,其功能是用于复制文件或目录。cp
命令能够将一个或多个文件或目录复制到指定位置,亦常用于文件的备份工作。-r
参数用于递归操作,复制目录时若忘记添加则会直接报错,而 -f
参数则用于当目标文件已存在时会直接覆盖不再询问,这两个参数尤为常用。
1.2.2 语法格式
1.2.3 常用参数
参数 |
含义 |
-a |
功能等价于 pdr 参数组合 |
-b |
覆盖目标文件前先进行备份 |
-d |
复制链接文件时,将目标文件也建立成链接文件 |
-f |
若目标文件已存在,则会直接覆盖 |
-i |
若目标文件已存在,则会询问是否覆盖 |
-l |
对源文件建立硬链接,而非复制文件 |
-p |
保留源文件或目录的所有属性信息 |
-r |
递归复制所有子文件 |
-s |
对源文件建立软链接,而非复制文件 |
-v |
显示执行过程详细信息 |
1.2.4 参考示例
cp File1.cfg File2.cfg
cp -r Dir1 Dir2
cp -a File1.cfg File2.cfg
- 将指定文件复制到
/etc
目录中,并覆盖已有文件,不进行询问:
cp -f File1.cfg /etc
- 将多个文件一同复制到
/etc
目录中,如已有目标文件名称则默认询问是否覆盖:
cp File1.cfg File2.cfg /etc
1.3 mkdir 命令 – 创建目录文件
1.3.1 含义
mkdir
命令来自英文词组 make directories
的缩写,其功能是用来创建目录文件。使用方法简单,但需要注意若要创建的目标目录已经存在,则会提示已存在而不继续创建,不覆盖已有文件。而目录不存在,但具有嵌套的依赖关系时,例如 /Dir1/Dir2/Dir3/Dir4/Dir5
,要想一次性创建则需要加入 -p
参数,进行递归操作。
1.3.2 语法格式
1.3.3 常用参数
参数 |
含义 |
-m |
创建目录的同时设置权限 |
-p |
递归创建多级目录 |
-v |
显示执行过程详细信息 |
-z |
设置目录安全上下文 |
1.3.4 参考示例
mkdir Dir1
- 创建一个目录文件并设置 700 权限,不让除所有主以外任何人读、写、执行它:
mkdir -m 700 Dir2
mkdir Dir3 Dir4 Dir5
- 在系统根目录中,一次性创建多个有嵌套关系的目录文件:
mkdir -p /Dir1/Dir2/Dir3/Dir4/Dir5
1.4 mv 命令 – 移动或改名文件
1.4.1 含义
mv
命令来自英文单词 move
的缩写,中文译为”移动“,其功能与英文含义相同,能够用于对文件进行剪切和重命名操作。这是一个被高频使用的文件管理命令,我们需要留意它与复制命令的区别。cp
命令是用于文件的复制操作,文件个数是增加的,而 mv
则为剪切操作,也就是对文件进行移动(搬家)操作,文件位置发生变化,但总个数并无增加。 而在同一个目录内对文件进行剪切的操作,实际应理解成重命名操作。
1.4.2 语法格式
1.4.3 常用参数
参数 |
含义 |
-b |
覆盖前为目标文件创建备份 |
-f |
强制覆盖目标文件而不询问 |
-i |
覆盖目标文件前询问用户是否确认 |
-n |
不要覆盖已有文件 |
-u |
当源文件比目标文件更新时,才执行覆盖操作 |
-v |
显示执行过程详细信息 |
-Z |
设置文件安全上下文 |
--help |
显示帮助信息 |
--version |
显示版本信息 |
1.4.4 参考示例
mv File1.cfg File2.cfg
- 将指定文件移动到
/etc
目录中,保留文件原始名称:
mv File2.cfg /etc
- 将指定目录移动到
/etc
目录中,并定义新的目录名称:
mv Dir1 /etc/Dir2
- 将
/home
目录中所有的文件都移动到当前工作目录中,遇到已存在文件则直接覆盖:
mv -f /home/* .
1.5 pwd 命令 – 显示当前工作目录的路径
1.5.1 含义
pwd
命令来自英文词组 print working directory
的缩写,其功能是用于显示当前工作目录的路径,即显示所在位置的绝对路径。 在实际工作中,我们经常会在不同目录之间进行切换,为了防止“迷路”,可以使用 pwd
命令快速查看当前所处的工作目录路径,方便开展后续工作。
1.5.2 语法格式
1.5.3 常用参数
参数 |
含义 |
-L |
显示逻辑路径 |
-P |
显示实际物理地址 |
--help |
显示帮助信息 |
--version |
显示版本信息 |
1.5.4 参考示例
pwd
1.6 tar 命令 – 压缩和解压缩文件
1.6.1 含义
tar
命令的功能是用于压缩和解压缩文件,能够制作出 Linux 系统中常见的 .tar
、.tar.gz
、.tar.bz2
等格式的压缩包文件。对于 RHEL7、CentOS7 版本以后的系统,解压缩时可以不添加格式参数(如z或j),系统也能自动进行分析并解压。 把要传输的文件先进行压缩再进行传输,能够很好地提高工作效率,方便分享。
1.6.2 语法格式
1.6.3 常用参数
参数 |
含义 |
-A |
添加文件到已存在的压缩包 |
-B |
设置区块大小 |
-c |
创建新的压缩包 |
-C |
解压缩到指定目录 |
-d |
记录文件的差别 |
-f |
指定压缩包文件 |
-j |
使用bzip2压缩格式 |
-l |
设置文件系统边界 |
-m |
保护文件不被覆盖 |
-N |
只将较新日期的文件保存到压缩包中 |
-p |
保留原来的文件权限与属性 |
-P |
使用绝对路径 |
-t |
显示压缩包的内容 |
-u |
更新压缩包内的文件 |
-v |
显示执行过程详细信息 |
-w |
确认压缩包的完整性 |
-x |
从压缩包内提取文件 |
-z |
使用 gzip 压缩格式 |
--exclude |
排除指定的文件不压缩 |
--remove-files |
操作完成后删除源文件 |
1.6.4 打包解包演练
- 删除桌面下所有内容;
- 在桌面下新建 3 个空白文件
01.py、02.py、03.py
;
- 将这 3 个文件打一个
py.tar
的包;
- 新建
tar
目录,并且将 py.tar
移动到 tar
目录下;
- 解包
py.tar
。
依次输入下面的命令即可:
cd Desktop
rm -r *
ls -l
touch 01.py
touch 02.py
touch 03.py
tar -cvf py.tar 01.py 02.py 03.py
mkdir tar
mv py.tar tar
cd tar
tar -xvf py.tar
1.6.5 参考示例
- 使用
gzip
压缩格式对指定目录进行打包操作,显示压缩过程,压缩包规范后缀为 .tar.gz
:
tar -czvf File.tar.gz /etc
- 使用
bzip2
压缩格式对某个目录进行打包操作,显示压缩过程,压缩包规范后缀为 .tar.bz2
:
tar -cjvf File.tar.bz2 /etc
- 将当前工作目录内所有以
.cfg
为后缀的文件打包,不进行压缩:
tar -cvf File.tar *.cfg
- 将当前工作目录内的所有以
.cfg
为后缀的文件打包,不进行压缩,并删除原始文件:
tar -cvf File.tar *.cfg --remove-files
tar -xvf File.tar
tar -xvf File.tar -C /etc
tar -tvf File.tar
2. 文件编辑 常用命令
2.1 cat 命令 – 在终端设备上显示文件内容
2.1.1 含义
-
cat
命令来自英文词组 concatenate files and print
的缩写,其功能是用于在终端设备上显示文件内容。在 Linux 系统中有很多用于查看文件内容的命令,例如 more
、tail
、head
……等等,每个命令都有各自的特点。cat
命令适合查看内容较少、纯文本的文件。
-
对于内容较多的文件,使用 cat
命令查看后会在屏幕上快速滚屏,用户往往看不清所显示的具体内容,只好按 Ctrl+c 键中断命令执行,所以对于大文件,适合用 more
命令。
2.1.2 语法格式
2.1.3 常用参数
参数 |
含义 |
-A |
等价于”-vET”参数组合 |
-b |
显示行数(空行不编号) |
-e |
等价于”-vE”参数组合 |
-E |
每行结束处显示$符号 |
-n |
显示行数(空行也编号) |
-s |
显示行数(多个空行算一个编号) |
-t |
等价于”-vT”参数组合 |
-T |
将TAB字符显示为^I符号 |
-v |
使用^和M-引用,除了LFD和TAB之外 |
--help |
显示帮助信息 |
--version |
显示版本信息 |
2.1.4 参考示例
cat Doc.txt
cat -n Doc.txt
- 持续写入文件内容,直到碰到
EOF
中止符后才会结束并保存:
cat > Doc.txt << EOF
2.2 echo 命令 – 输出字符串或提取后的变量值
2.2.1 含义
echo
命令来自英文单词“回声”,其功能是用于在终端设备上输出指定字符串或变量提取后的值,能够给用户一些简单的提醒信息,亦可以将输出的指定字符串内容同管道符一起传递给后续命令作为标准输入信息再来进行二次处理,又或是同输出重定向符一起操作,将信息直接写入到文件中。
- 如需提取变量值,需在变量名称前加入
$
符号做提取,变量名称一般均为大写形式。
2.2.2 语法格式
2.2.3 常用参数
参数 |
含义 |
-e “\a” |
发出警告音 |
-e “\b” |
删除前面的一个字符 |
-e “\c” |
结尾不加换行符 |
-e “\f” |
换行后光标仍停留在原来的位置 |
-e “\n” |
换行后光标移至行首 |
-e “\r” |
光标移至行首但不换行 |
-E |
禁止反斜杠转义 |
-n |
不输出结尾的换行符 |
--version |
显示版本信息 |
--help |
显示帮助信息 |
2.2.4 参考示例
echo LinuxCool
echo $PATH
echo \$PATH
- 搭配输出重定向符一起使用,将字符串内容直接写入文件中:
echo "Hello World!" > Doc.txt
echo `uptime`
echo -e "First\nSecond\nThird"
echo -e "123\b456"
2.3 rm 命令 – 删除文件或目录
2.3.1 含义
rm
命令来自英文单词 remove
的缩写,中文译为“消除”,其功能是用于删除文件或目录,一次可以删除多个文件,或递归删除目录及其内的所有子文件。
rm
也是一个很危险的命令,使用的时候要特别当心,尤其对于新手更要格外注意,如执行 rm -rf /*
命令则会清空系统中所有的文件,甚至无法恢复回来。所以我们在执行之前一定要再次确认下在哪个目录中,到底要删除什么文件,考虑好后再敲击回车键,时刻保持清醒的头脑。
2.3.2 语法格式
2.3.3 常用参数
参数 |
含义 |
-d |
仅删除无子文件的空目录 |
-f |
强制删除文件而不询问 |
-i |
删除文件前询问用户是否确认 |
-r |
递归删除目录及其内全部子文件 |
-v |
显示执行过程详细信息 |
--version |
显示版本信息 |
--help |
显示帮助信息 |
2.3.4 参考示例
rm File.cfg
rm -i File.cfg
rm -f File.cfg
rm -rf Dir
- 强制删除当前工作目录内的所有以
.txt
为后缀的文件:
rm -f *.txt
rm -rf /*
2.4 grep 命令 – 强大的文本搜索工具
2.4.1 含义
grep
来自英文词组 global search regular expression and print out the line
的缩写,意思是用于全面搜索的正则表达式,并将结果输出。人们通常会将 grep
命令与正则表达式搭配使用,参数作为搜索过程中的补充或对输出结果的筛选,命令模式十分灵活。
- 与之容易混淆的是
egrep
命令和 fgrep
命令。如果把 grep
命令当作是标准搜索命令,那么 egrep
则是扩展搜索命令,等价 grep -E
命令,支持扩展的正则表达式。而 fgrep
则是快速搜索命令,等价于 grep -F
命令,不支持正则表达式,直接按照字符串内容进行匹配。
2.4.2 语法格式
2.4.3 常用参数
参数 |
含义 |
-b |
显示匹配行距文件头部的偏移量 |
-c |
只显示匹配的行数 |
-E |
支持扩展正则表达式 |
-F |
匹配固定字符串的内容 |
-h |
搜索多文件时不显示文件名 |
-i |
忽略关键词大小写 |
-l |
只显示符合匹配条件的文件名 |
-n |
显示所有匹配行及其行号 |
-o |
显示匹配词距文件头部的偏移量 |
-q |
静默执行模式 |
-r |
递归搜索模式 |
-s |
不显示没有匹配文本的错误信息 |
-v |
显示不包含匹配文本的所有行 |
-w |
精准匹配整词 |
-x |
精准匹配整行 |
2.4.4 参考示例
grep root /etc/passwd
grep ^root /etc/passwd
grep linuxprobe /etc/passwd /etc/shadow
- 搜索多个文件中,包含某个关键词的内容,不显示文件名称:
grep -h linuxprobe /etc/passwd /etc/shadow
grep -c root /etc/passwd /etc/shadow
grep -n World Doc.txt
grep -v nologin /etc/passwd
- 搜索当前工作目录中包含某个关键词内容的文件,未找到则提示:
grep -l root *
- 搜索当前工作目录中包含某个关键词内容的文件,未找到不提示:
grep -sl root *
- 不仅搜索指定目录,还搜索其内子目录内是否有关键词文件:
grep -srl root /etc
grep -x cd anaconda-ks.cfg
grep -x cdrom anaconda-ks.cfg
- 判断指定文件中是否包含某个关键词,通过返回状态值输出结果(0为包含,1为不包含):
grep -q linuxprobe anaconda-ks.cfg
echo $?
grep -c ^$ Doc.txt
2.5 tail 命令 – 查看文件尾部内容
2.5.1 含义
tail
命令的功能是用于查看文件尾部内容,例如默认会在终端界面上显示出指定文件的末尾十行,如果指定了多个文件,则会在显示的每个文件内容前面加上文件名来加以区分。
- 高阶玩法的
-f
参数作用是持续显示文件的尾部最新内容,类似于机场候机厅的大屏幕,总会把最新的消息展示给用户,对阅读日志文件尤为适合,再也不需要手动刷新了。
2.5.2 语法格式
2.5.3 常用参数
参数 |
含义 |
-c |
设置显示文件尾部的字符数 |
-f |
持续显示文件尾部最新内容 |
-n |
设置显示文件尾部的行数 |
--help |
显示帮助信息 |
--pid |
当指定PID进程结束时,自动退出命令 |
--retry |
当文件无权限访问时,依然尝试打开 |
--version |
显示版本信息 |
2.5.4 参考示例
tail Doc.txt
tail -n 5 Doc.txt
tail -c 30 Doc.txt
tail -f Doc.txt
2.6 rmdir 命令 – 删除空目录文件
2.6.1 含义
rmdir
命令来自英文词组 remove directory
的缩写,其功能是用于删除空目录文件。rmdir
命令仅能够删除空内容的目录文件,如需删除非空目录时,则需要使用带有 -R
参数的 rm
命令进行操作。而 rmdir
命令的 -p
递归删除操作并不意味着能删除目录中已有的文件,而是要求每个子目录都必须是空的。
2.6.2 语法格式
2.6.3 常用参数
参数 |
含义 |
-p |
递归处理所有子文件 |
-v |
显示执行过程详细信息 |
--help |
显示帮助信息 |
--version |
显示版本信息 |
2.6.4 参考示例
rmdir Dir
rmdir -p Dir
rmdir -v Dir
3. 系统管理 常用命令
3.1 find 命令 – 根据路径和条件搜索指定文件
3.1.1 含义
find
命令的功能是用于根据给定的路径和条件查找相关文件或目录,参数灵活方便,且支持正则表达式,结合管道符后能够实现更加复杂的功能,是 Linux 系统运维人员日常工作必须掌握的命令之一。
find
命令通常进行的是从根目录(/
)开始的全盘搜索,有别于 whereis、which、locate……等的有条件或部分文件的搜索。对于服务器负载较高的情况,建议不要在高峰时期使用 find
命令的模糊搜索,会相对消耗较多的系统资源。
3.1.2 语法格式
3.1.3 常用参数
参数 |
含义 |
-name |
匹配文件名 |
-perm |
匹配文件权限 |
-user |
匹配文件所属主 |
-group |
匹配文件所属组 |
-mtime |
匹配最后修改文件内容时间 |
-atime |
匹配最后读取文件内容时间 |
-ctime |
匹配最后修改文件属性时间 |
-nouser |
匹配无所属主的文件 |
-nogroup |
匹配无所属组的文件 |
-newer |
匹配比指定文件更新的文件 |
-type |
匹配文件类型 |
-size |
匹配文件大小 |
-prune |
不搜索指定目录 |
-exec …… {}\; |
进一步处理搜索结果 |
3.1.4 参考示例
find / -name *.conf
- 在
/etc
目录中搜索所有大于 1M 大小的文件:
find /etc -size +1M
- 在
/home
目录中搜索所有属于指定用户的文件:
find /home -user <用户名>
- 列出当前工作目录中的所有文件、目录以及子文件信息:
find .
- 在
/var/log
目录下搜索所有指定后缀的文件,后缀不需要大小写。
find /var/log -iname "*.log"
- 在
/var/log
目录下搜索所有不是以 .log
结尾的文件:
find /var/log ! -iname "*.log"
- 搜索当前工作目录中的所有近 7 天被修改过的文件:
find . -mtime -7
- 全盘搜索系统中所有类型为目录,且权限为 1777 的目录文件:
find / -type d -perm 1777
- 全盘搜索系统中所有类型为普通文件,且可以执行的文件信息:
find / -type f -perm /a=x
- 全盘搜索系统中所有后缀为
.mp4
的文件,并删除所有查找到的文件:
find / -name "*.mp4" -exec rm -rf {} \;
3.2 rpm 命令 – RPM 软件包管理器
3.2.1 含义
rpm
命令来自英文词组 redhat package manager
的缩写,中文译为“红帽软件包管理器”,其功能是用于在 Linux 系统下对软件包进行安装、卸载、查询、验证、升级等工作,常见的例如 RHEL、CentOS、Fedora 等主流系统都采用这种软件包管理器,安装软件推荐用固定搭配 rpm -ivh 软件包名
,而卸载软件则用固定搭配 rpm -evh 软件包名
,简单好记又好用。
3.2.2 语法格式
3.2.3 常用参数
参数 |
含义 |
-a |
显示所有软件包 |
-c |
仅显示组态配置文件 |
-d |
仅显示文本文件 |
-e |
卸载软件包 |
-f |
显示文件或命令属于哪个软件包 |
-h |
安装软件包时显示标记信息 |
-i |
安装软件包 |
-l |
显示软件包的文件列表 |
-p |
显示指定的软件包信息 |
-q |
显示指定软件包是否已安装 |
-R |
显示软件包的依赖关系 |
-s |
显示文件状态信息 |
-U |
升级软件包 |
-v |
显示执行过程信息 |
-vv |
显示执行过程详细信息 |
3.2.4 参考示例
rpm -ivh cockpit-185-2.el8.x86_64.rpm
rpm -qa
rpm -ql cockpit
rpm -evh cockpit
rpm -Uvh cockpit-185-2.el8.x86_64.rpm
3.3 startx 命令 – 初始化 X-windows 系统
3.3.1 含义
startx
命令来自英文词组 start X-windows
的缩写,其功能是用于启动 X-Windows 系统。X-Windows System 也被称为 X 或 X11,中文译为 X 窗口系统,主要工作就是以图形方式显示软件窗口的系统,现在的 GNOME 和 KDE 桌面环境都是以 X 窗口系统为基础构建成的。
3.3.2 语法格式
3.3.3 常用参数
参数 |
含义 |
-m |
当未找到启动脚本时,启动窗口管理器 |
-r |
当未找到启动脚本时,装入资源文件 |
-w |
强制启动而不询问 |
-x |
使用startup脚本启动X-windows会话 |
--depth |
设置颜色深度 |
3.3.4 参考示例
startx
startx -- -depth 16
startx -w
3.4 ps 命令 – 显示进程状态
3.4.1 含义
ps
命令来自英文单词 process
的缩写,中文译为“进程”,其功能是用于显示当前系统的进程状态。使用 ps
命令可以查看到进程的所有信息,例如进程的号码、发起者、系统资源使用占比(处理器与内存)、运行状态等等。帮助我们及时地发现哪些进程出现“僵死”或“不可中断”等异常情况。
- 经常会与
kill
命令搭配使用来中断和删除不必要的服务进程,避免服务器的资源浪费。
3.4.2 语法格式
3.4.3 常用参数
参数 |
含义 |
a |
显示所有进程信息 |
c |
不显示程序路径 |
d |
不显示阶段作业程序 |
e |
显示环境变量信息 |
f |
用ASCII字符显示树状结构 |
g |
显示所有程序及其所属组的程序 |
h |
不显示标题列信息 |
H |
使用树状结构展示程序间的相互关系 |
j |
使用工作控制格式显示程序状态 |
l |
使用详细格式来显示程序状态 |
L |
显示栏位的相关信息 |
m |
显示所有的执行绪 |
n |
使用数字来表示“USER”和“WCHAN”栏位 |
p |
指定程序识别码并显示该程序的状态 |
r |
仅显示终端机正在执行中的程序 |
s |
使用程序信号格式显示程序状态 |
S |
显示包括已中断的子程序状态 |
t |
显示属于指定终端机的程序状态 |
T |
显示当前终端机下的所有程序 |
u |
使用用户为主的格式来显示程序状态 |
U |
显示属于指定用户的程序状态 |
v |
使用虚拟内存的格式显示程序状态 |
w |
使用宽阔的格式来显示程序状态 |
x |
不区分终端机 |
X |
使用旧式登录格式显示程序状态 |
--cols |
设置每列的最大字符数 |
--headers |
重复显示标题列 |
--help |
显示帮助信息 |
--info |
显示排错信息 |
--lines |
设置显示画面的列数 |
--version |
显示版本信息 |
3.4.4 参考示例
ps aux
- 结合输出重定向,将当前进程信息保留备份至指定文件(也就是说,将 ps aux 的结果保存在 File.txt 文件中):
ps aux > File.txt
- 结合管道操作符,将当前系统运行状态中指定进程信息过滤出来:
ps -ef | grep ssh
- 结合管道操作符,将当前系统运行状态中指定用户的进程信息过滤出来:
ps -u root
- 结合管道操作符与
sort
命令,依据处理器使用量(第三列)情况降序排序:
ps aux | sort -rnk 3
- 结合管道操作符与
sort
命令,依据内存使用量(第四列)情况降序排序:
ps aux | sort -rnk 4
3.5 uname 命令 – 显示系统内核信息
3.5.1 含义
uname
命令来自英文词组 Unix name
的缩写,其功能是用于查看系统主机名、内核及硬件架构等信息。如果不加任何参数,默认仅显示系统内核名称,相当于 -s
参数。
3.5.2 语法格式
3.5.3 常用参数
参数 |
含义 |
-a |
显示系统所有相关信息 |
-i |
显示硬件平台 |
-m |
显示计算机硬件架构 |
-n |
显示主机名称 |
-o |
显示操作系统名称 |
-p |
显示主机处理器类型 |
-r |
显示内核发行版本号 |
-s |
显示内核名称 |
-v |
显示内核版本 |
--help |
显示帮助信息 |
--version |
显示版本信息 |
3.5.4 参考示例
uname
- 显示系统所有相关信息(含内核名称、主机名、版本号及硬件架构):
uname -a
uname -r
uname -i
3.6 resize2fs 命令 – 同步文件系统容量到内核
3.6.1 含义
resize2fs
命令来自英文词组 resize to filesystem
的缩写,其功能是用于同步文件系统容量到内核。如对 ext3、ext4、XFS 等设备卷容量进行了调整,则需要使用 resize2fs
命令同步信息到系统内核。
3.6.2 语法格式
3.6.3 常用参数
参数 |
含义 |
-d |
打开调试特性 |
-f |
强制调整设备容量而不询问 |
-F |
刷新文件系统设备的缓冲区 |
-M |
将文件系统缩小到最小值 |
-p |
显示已完成的百分比进度条 |
-P |
显示文件系统的最小值 |
3.6.4 参考示例
resize2fs /dev/sdb
- 同步文件系统容量信息到系统内核,并显示百分比进度条:
resize2fs -p /dev/sdb
resize2fs -f /dev/sdb
- 刷新文件系统设备的缓冲区,随后同步容量信息到系统内核:
resize2fs -F /dev/sdb
4. 磁盘管理 常用命令
4.1 df 命令 – 显示磁盘空间使用量情况
4.1.1 含义
df
命令来自英文词组 report file system disk space usage
的缩写,其功能是用于显示系统上磁盘空间的使用量情况。df
命令显示的磁盘使用量情况含可用、已有及使用率等信息,默认单位为Kb,建议使用 -h
参数进行单位换算,毕竟 135M 比 138240Kb 更利于阅读。
4.1.2 语法格式
4.1.3 常用参数:
参数 |
含义 |
-a |
显示所有文件系统 |
-h |
以更易读的方式显示 |
-H |
以1KB=1000Byte为换算单位 |
-i |
显示索引字节信息 |
-k |
设置显示时的块大小 |
-l |
只显示本地文件系统 |
-t |
只显示指定类型文件系统 |
-T |
显示文件系统的类型 |
--sync |
在获取磁盘使用信息前先执行sync同步命令 |
4.1.4 参考示例
df -h
df -h /boot
- 显示系统中所有文件系统格式为 XFS 的磁盘分区使用量情况:
df -t xfs
4.2 fdisk 命令 – 管理磁盘分区
4.2.1 含义
fdisk
命令来自英文词组 Partition table manipulator for Linux
的缩写,其功能是用于管理磁盘的分区信息。如果一套几百平米的房子内部没有墙壁,虽然看起来会很敞亮,但是各种声音、气味、物品会随意充斥在整个房子内,让人极不舒适,因此需要用墙壁按照功能进行划分,例如卧室、厕所、厨房、阳台等等。
fdisk
命令可以用于对磁盘进行分区操作,用户可以根据实际情况进行合理划分,这样后期挂载和使用时会方便很多。
4.2.2 语法格式
4.2.3 常用参数
参数 |
含义 |
-b |
设置每个分区的大小 |
-c |
关闭 DOS 兼容模式 |
-C |
设置硬盘的柱面数量 |
-h |
显示帮助信息 |
-H |
设置硬盘的磁头数 |
-l |
显示指定的外围设备分区表状态 |
-s |
显示指定的分区大小 |
-S |
设置每个磁道的扇区数 |
-u |
以分区数目代替柱面数目 |
-v |
显示版本信息 |
4.2.4 参考示例
fdisk -l
fdisk /dev/sda
4.3 lsblk 命令 – 查看系统的磁盘使用情况
4.3.1 含义
lsblk
命令来自英文词组 list block devices
的缩写,其功能是用于查看系统的磁盘使用情况。
4.3.2 语法格式
4.3.3 常用参数
参数 |
含义 |
-a |
显示所有设备信息 |
-b |
显示以字节为单位的设备大小 |
-e |
排除指定设备 |
-f |
显示文件系统信息 |
-h |
显示帮助信息 |
-i |
仅使用字符 |
-l |
使用列表格式显示 |
-m |
显示权限信息 |
-n |
不显示标题 |
-o |
输出列信息 |
-P |
使用“key=value”格式显示信息 |
-r |
使用原始格式显示信息 |
-t |
显示拓扑结构信息 |
-V |
显示版本信息 |
4.3.4 参考示例
lsblk -a
lsblk -m
lsblk -S
lsblk -nl
4.4 vgextend 命令 – 扩展卷组设备
4.4.1 含义
vgextend
命令来自英文词组 volume group extend
的缩写,其功能是用于扩展卷组设备。LVM 逻辑卷管理器技术具有灵活调整卷组与逻辑卷的特点,卷组可以在创建时规定物理卷的数量,亦可以在后期使用 vgextend
命令进行扩展。
4.4.2 语法格式
4.4.3 常用参数
参数 |
含义 |
-A |
设置是否自动备份 |
-d |
使用调试模式 |
-f |
强制进行卷组扩展而不询问 |
-h |
显示帮助信息 |
-t |
仅进行测试,不实际操作 |
-v |
显示执行过程详细信息 |
-y |
所有询问均回答自动 yes |
4.4.4 参考示例
vgextend VG01 /dev/sdb
4.5 hdparm 命令 – 显示与设定硬盘参数
4.5.1 含义
hdparm
命令来自英文词组 hard disk parameters
的缩写,其功能是用于显示与设定硬盘参数。对于初次接手一块硬盘设备,了解相关性能属性有很好的帮助。
4.5.2 语法格式
4.5.3 常用参数
参数 |
含义 |
-a |
设置读取文件时预先存入块区的分区数 |
-b |
设置总线状态参数 |
-B |
设置高级电源管理功能 |
-C |
检查当前的IDE电源模式状态 |
-D |
启用或禁用硬盘缺陷管理功能 |
-E |
设置CD/DVD驱动器的速率 |
-f |
将内存缓冲区的数据写入硬盘,并清空缓冲区 |
-F |
冲洗驱动器上的写缓存缓冲区 |
-g |
显示硬盘的磁轨,磁头,磁区等参数 |
-h |
显示帮助信息 |
-i |
显示内核驱动的识别信息 |
-I |
直接读取硬盘所提供的硬件规格信息 |
-N |
设置最大可见扇区数 |
-r |
设置设备的只读标识,不允许写入操作 |
-R |
注册一个IDE接口 |
-s |
设置待机状态下的开机功能 |
-S |
使硬盘进入低功耗模式 |
-t |
评估硬盘读取效率 |
-W |
管理IDE/SATA设备的写缓存功能 |
-x |
对热交换机设备静态三态处理 |
-X |
设置硬盘的传输模式 |
-z |
强制内核重新读取指定设备的分区表 |
4.5.4 参考示例
hdparm /dev/sdb
hdparm -g /dev/sdb
hdparm -t /dev/sdb
hdparm -X /dev/sdb
4.6 pvcreate 命令 – 创建物理卷设备
4.6.1 含义
pvcreate
命令的功能是用于创建物理卷设备。LVM 逻辑卷管理器技术由物理卷、卷组和逻辑卷组成,其中 pvcreate
命令的工作属于第一个环节——创建物理卷设备。
4.6.2 语法格式
4.6.3 常用参数
参数 |
含义 |
-f |
强制创建物理卷而不询问 |
-u |
设置设备的UUID |
-y |
所有询问均回答自动 yes |
-z |
设置是否使用最前面的扇区 |
4.6.4 参考示例
pvcreate /dev/sdb
pvcreate /dev/sdc{1,2,3,4}
5. 文件传输 常用命令
5.1 curl 命令 – 文件传输工具
5.1.1 含义
curl
命令来自英文词组 CommandLine URL
的缩写,其功能是用于在 Shell 终端界面中基于 URL 规则进行的文件传输工作。curl
是一款综合的传输工具,可以上传也可以下载,支持 HTTP、HTTPS、FTP 等三十余种常见协议。
5.1.2 语法格式
5.1.3 常用参数
参数 |
含义 |
-a |
追加写入到指定文件 |
-A |
设置用户代理标头信息 |
-b |
设置用户 Cookie 信息 |
-B |
使用 ASCII 文本传输 |
-C |
支持断点续传 |
-d |
以 HTTP POST 方式传送数据 |
-D |
把头部信息写入到指定文件 |
-e |
设置来源网址 URL |
-f |
连接失败时不显示报错 |
-o |
设置新的本地文件名 |
-O |
保留远程文件的原始名 |
-G |
以 GET 方式传送数据 |
-H |
自定义头信息 |
-I |
只显示请求头信息 |
-K |
读取指定配置文件 |
-N |
禁用缓冲输出 |
-s |
静默执行模式 |
-T |
上传指定文件 |
-u |
设置服务器的用户名和密码 |
-U |
设置代理的用户名和密码 |
--basic |
使用 HTTP 基本验证 |
--cacert |
设置 CA 证书文件 |
--capath |
设置 CA 证书目录 |
--cert-type |
设置客户端证书文件和密码 |
--ciphers |
设置 SSL 证书密码 |
--connect-timeout |
设置最大请求时间 |
--create-dirs |
创建本地目录的层次结构 |
--digest |
使用数字身份验证 |
--ftp-create-dirs |
自动创建远程目录 |
--ftp-pasv |
使用 PASV/EPSV 代替端口 |
--ftp-ssl |
使用 SSL/TLS 来进行数据传输 |
--ftp-ssl-reqd |
使用 SSL/TLS 来进行数据传输 |
--help |
显示帮助信息 |
--key |
设置私钥文件名 |
--key-type |
设置私钥文件类型 |
--limit-rate |
设置传输速度 |
--max-filesize |
设置最大下载的文件总量 |
--max-redirs |
设置最大重定向次数 |
--pass |
设置密钥密码 |
--progress-bar |
显示进度条 |
--verbose |
显示执行过程详细信息 |
--version |
显示版本信息 |
5.1.4 参考示例
curl https://www.linuxcool.com
curl -O https://www.linuxprobe.com/docs/LinuxProbe.pdf
curl -I https://www.linuxcool.com
curl -u linuxprobe:redhat ftp://www.linuxcool.com/LinuxProbe.pdf