Linux常用命令自学手册

978-7-115-62625-7
作者: 刘遄
译者:
编辑: 傅道坤

图书目录:

详情

本书根据www.linuxcool.com上的命令使用频率和读者反馈,精心挑选了200条最常用的Linux命令进行简要介绍,旨在帮助读者每天学习一条命令,持之以恒,稳扎稳打精通Linux系统的使用。本书中的命令涵盖了Linux中的文件管理、文档编辑、系统管理、磁盘管理、文件传输、网络通信、设备管理、压缩备份等诸多内容,同时还涵盖了一些杂项命令,并提供了一些扩展知识。

图书摘要

版权信息

书名:Linux常用命令自学手册

ISBN:978-7-115-62625-7

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。

版  权

著    刘 遄

责任编辑 傅道坤

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315

内 容 提 要

本书根据www.linuxcool.com上的命令使用频率和读者反馈,精心挑选了200条最常用的Linux命令进行简要介绍,旨在帮助读者每天学习一条命令,持之以恒,稳扎稳打精通Linux系统的使用。本书中的命令涵盖了Linux中的文件管理、文档编辑、系统管理、磁盘管理、文件传输、网络通信、设备管理、压缩备份等诸多内容,同时还涵盖了一些杂项命令,并提供了一些扩展知识。

本书内容简洁、准确、实用,旨在成为读者的案头工具书,成为读者学习Linux系统的好帮手。本书可供Linux系统管理人员、Linux初学人员、Linux爱好者学习使用。

前  言

本书的准备工作最早可以追溯到2016年。当年在编写《Linux就该这么学》的过程中,我深深感受到了Linux命令的强大魅力——Linux的高效、便捷是远非图形化界面操作所能比拟的。但是苦于Linux中的命令数量众多,如果把每条命令的详细介绍都纳入《Linux就该这么学》,恐怕图书的篇幅和厚度能劝退好多人。于是,我注册了一个全新的网站linuxcool.com(取自谐音名“Linux库”),将日常用到的Linux命令收集、整理到该网站上。

到2018年时,随着《Linux就该这么学》的读者数量突破十万,社群用户量破百万,大家对该书配套资料的呼声也越来越高。我深刻认识到编写一本全面、实用、高品质的Linux命令手册的重要性。说干就干!我立即发动整个团队开展了相关的工作,整理、完善了1500条左右的Linux命令。

在2021年,由于众所周知的原因,我开始居家办公,因此有了更充裕的时间。在接下来的两年里,我和整个团队再一次对Linux命令进行了更为细致的汇总和整理,最终收集的Linux命令超过3000条,几乎覆盖了所有主流的Linux系统。

在2023年初,我们依据www.linuxcool.com网站的访问量及大量读者的反馈,精心挑选了200条常用的命令,最终形成本书,旨在帮助读者每天学好一条命令,稳扎稳打,持之以恒,最终精通Linux命令的使用。我们还针对这些命令词条,进行了多次精细化的修改、校对工作,确保了它们的准确性。我们所做的一切都是希望本书能够成为您案头必备的Linux工具书,成为您学习Linux系统的好帮手。

在此,也向团队中的成员由衷地表示感谢!他们是逄增宝、张宏宇、张振宇、王浩、郭建鹏、倪家兴、姜显赫、张雄、吴向平、冯瑞涛、王华超、吴康宁、杨斌斌、何云艳、王艳敏、向金平、姜传广、薛鹏旭、王婷。在我们共同的努力之下,Linux系统的自学门槛又一次得以降低。这是我们的骄傲!

最后,再叮嘱一句,由于各位读者使用的Linux系统不尽相同,它们可能存在诸多特性差异,由此会导致实际使用的命令参数与图书中的不一致,请各位读者务必以实际为准。

道阻且长,行则将至,加油!

资源与支持

资源获取

本书提供如下资源:

额外165条Linux命令资源;

异步社区7天VIP会员。

要获得以上资源,您可以扫描下方二维码,根据指引领取。

提交勘误

作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。

当您发现错误时,请登录异步社区(https://www.epubit.com/),按书名搜索,进入本书页面,点击“发表勘误”,输入勘误信息,点击“提交勘误”按钮即可(见下图)。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。

与我们联系

我们的联系邮箱是fudaokun@ptpress.com.cn。

如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。

如果您有兴趣出版图书、录制教学视频,或者参与图书技术审校等工作,可以发邮件给我们。

如果您所在的学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。

关于异步社区和异步图书

“异步社区”(www.epubit.com)是由人民邮电出版社创办的IT专业图书社区,于2015年8月上线运营,致力于优质内容的出版和分享,为读者提供高品质的学习内容,为作译者提供专业的出版服务,实现作者与读者在线交流互动,以及传统出版与数字出版的融合发展。

“异步图书”是异步社区策划出版的精品IT图书的品牌,依托于人民邮电出版社在计算机图书领域30余年的发展与积淀。异步图书面向IT行业以及各行业使用IT技术的用户。

001 ls命令:显示目录中文件及其属性信息

ls命令来自英文单词list的缩写,中文译为“列出”,其功能是显示目录中的文件及其属性信息,是最常使用的Linux命令之‍一。

默认不添加任何参数的情况下,ls命令会列出当前工作目录中的文件信息,常与cd或pwd命令搭配使用,十分方便。带上参数后,我们可以做更多的事情。作为最基础、最频繁使用的命令,有必要仔细了解其常用功‍能。

语法格式:ls 参数 文件名

-a

显示所有文件及目录

-r

依据首字母将文件以相反次序显示

-A

不显示当前目录和父目录

-R

递归显示所有子文件

-d

显示目录自身的属性信息

-S

依据内容大小将文件排序显示

-i

显示文件的inode属性信息

-t

依据最后修改时间将文件排序显示

-l

显示文件的详细属性信息

-X

依据扩展名将文件排序显示

-m

以逗号为间隔符,水平显示文件信息

-color

以彩色显示信息

显示当前目录中的文件名(默认不含隐藏文件):

[root@linuxcool ~]# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates
Desktop           Downloads  Music                   Public    Videos

显示当前目录中的文件名(含隐藏文件):

[root@linuxcool ~]# ls -a
.                   .bashrc   Documents             Music       Videos
..                  .cache    Downloads             Pictures   .viminfo
anaconda-ks.cfg  .config  .esd_auth              .pki
.bash_history    .cshrc   .ICEauthority          Public
.bash_logout     .dbus     initial-setup-ks.cfg .tcshrc
.bash_profile    Desktop  .local                  Templates

以详细信息模式输出文件名及其属性信息:

[root@linuxcool ~]# ls -l
total 8
-rw-------. 1 root root 1430 Dec 14 08:05 anaconda-ks.cfg
drwxr-xr-x. 2 root root     6 Dec 14 08:37 Desktop
drwxr-xr-x. 2 root root     6 Dec 14 08:37 Documents
drwxr-xr-x. 2 root root     6 Dec 14 08:37 Downloads
-rw-r--r--. 1 root root 1585 Dec 14 08:34 initial-setup-ks.cfg
drwxr-xr-x. 2 root root    6 Dec 14 08:37 Music
drwxr-xr-x. 2 root root    6 Dec 14 08:37 Pictures
drwxr-xr-x. 2 root root    6 Dec 14 08:37 Public
drwxr-xr-x. 2 root root    6 Dec 14 08:37 Templates
drwxr-xr-x. 2 root root    6 Dec 14 08:37 Videos

显示指定目录中的文件列表:

[root@linuxcool ~]# ls /etc
adjtime                     hosts                     pulse
aliases                     hosts.allow              qemu-ga
alsa                       hosts.deny               qemu-kvm
alternatives               hp                         radvd.conf
anacrontab                 idmapd.conf              ras
asound.conf                init.d                    rc0.d
at.deny                     inittab                   rc1.d
………………省略部分输出信息………………

显示当前目录中的文件名及inode属性信息:

[root@linuxcool ~]# ls -i
35290115 anaconda-ks.cfg  35290137 initial-setup-ks.cfg  35290164 Templates
 1137391 Desktop            17840039 Music                    51609597 Videos
 1137392 Documents          35290165 Pictures
17840038 Downloads          51609596 Public

结合通配符一起使用,显示指定目录中所有以sd开头的文件列表:

[root@linuxcool ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2

依据文件内容大小进行排序,显示指定目录中文件名及其属性详情信息:

[root@linuxcool ~]# ls -Sl /etctotal 1348-rw-r--r--. 1 root root 692241 Sep 10 2023 services-rw-r--r--. 1 root root 66482 Dec 14 08:34 ld.so.cache-rw-r--r--. 1 root root 60352 May 11 2023 mime.types-rw-r--r--. 1 root dnsmasq 26843 Aug 12 2023 dnsmasq.conf-rw-r--r--. 1 root root 25696 Dec 12 2023 brltty.conf-rw-r--r--. 1 root root 9450 Aug 12 2023 nanorc-rw-r--r--. 1 root root 7265 Dec 14 08:03 kdump.conf-rw-------. 1 tss tss 7046 Aug 13 2023 tcsd.conf………………省略部分输出信息………………

002 cp命令:复制文件或目录

cp命令来自英文单词copy的缩写,中文译为“复制”,其功能是复制文件或目录。cp命令能够将一个或多个文件或目录复制到指定位置,亦常用于文件的备份工作。-r参数用于递归操作,复制目录时若忘记添加则会直接报错;-f参数则用于当目标文件已存在时会直接覆盖而不再询问。这两个参数尤为常用。

语法格式:cp 参数 源文件名 目标文件名

-a

功能等价于pdr参数组合

-l

对源文件建立硬链接,而非复制文件

-b

覆盖目标文件前先进行备份

-p

保留源文件或目录的所有属性信息

-d

复制链接文件时,将目标文件也建立为链接文件

-r

递归复制所有子文件

-f

若目标文件已存在,则会直接覆盖

-s

对源文件建立软链接,而非复制文件

-i

若目标文件已存在,则会询问是否覆盖

-v

显示执行过程详细信息

复制指定的源文件,并定义新文件的名称:

[root@linuxcool ~]# cp File1.cfg File2.cfg 

复制指定的源目录,并定义新目录的名称:

[root@linuxcool ~]# cp -r Dir1 Dir2 

复制文件时,保留其原始权限及用户归属信息:

[root@linuxcool ~]# cp -a File1.cfg File2.cfg 

将指定文件复制到/etc目录中,并覆盖已有文件,不进行询问:

[root@linuxcool ~]# cp -f File1.cfg /etc 

将多个文件一同复制到/etc目录中,如已有目标文件名称则默认询问是否覆盖:

[root@linuxcool ~]# cp File1.cfg File2.cfg /etc 
cp: overwrite '/etc/File1.cfg'? y

003 grep命令:强大的文本搜索工具

grep命令来自英文词组global search regular expression and print out the line的缩写,意思是用于全面搜索的正则表达式,并将结果输出。人们通常会将grep命令与正则表达式搭配使用,参数作为搜索过程中的补充或对输出结果的筛选,命令模式十分灵‍活。

与之容易混淆的是egrep命令和fgrep命令。如果把grep命令当作标准搜索命令,那么egrep则是扩展搜索命令,等价于grep -E命令,支持扩展的正则表达式。而fgrep则是快速搜索命令,等价于grep -F命令,不支持正则表达式,直接按照字符串内容进行匹配。

语法格式:grep 参数 文件名

-b

显示匹配行距文件头部的偏移量

-o

显示匹配词距文件头部的偏移量

-c

只显示匹配的行数

-q

静默执行模式

-E

支持扩展正则表达式

-r

递归搜索模式

-F

匹配固定字符串的内容

-s

不显示没有匹配文本的错误信息

-h

搜索多文件时不显示文件名

-v

显示不包含匹配文本的所有行

-i

忽略关键词大小写

-w

精准匹配整词

-l

只显示符合匹配条件的文件名

-x

精准匹配整行

-n

显示所有匹配行及其行号

搜索指定文件中包含某个关键词的内容行:

[root@linuxcool ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin 

搜索指定文件中以某个关键词开头的内容行:

[root@linuxcool ~]# grep ^root /etc/passwd 
root:x:0:0:root:/root:/bin/bash 

搜索多个文件中包含某个关键词的内容行:

[root@linuxcool ~]# grep linuxprobe /etc/passwd /etc/shadow 
/etc/passwd:linuxprobe:x:1000:1000:linuxprobe:/home/linuxprobe:/bin/bash 
/etc/shadow:linuxprobe:$6$9Av/41hCM17T2PrT$hoggWJ3J/j6IqEOSp62elhdOYPLhQ1qDho7hANcm5fQkPCQdib8KCWGdvxbRvDmqyOarKpWGxd8NAmp3j2Ln00::0:99999:7:::

搜索多个文件中包含某个关键词的内容,不显示文件名称:

[root@linuxcool ~]# grep -h linuxprobe /etc/passwd /etc/shadow 
linuxprobe:x:1000:1000:linuxprobe:/home/linuxprobe:/bin/bash 
linuxprobe:$6$9Av/41hCM17T2PrT$hoggWJ3J/j6IqEOSp62elhdOYPLhQ1qDho7hANcm5fQkPCQdib8KCWGdvxbRvDmqyOarKpWGxd8NAmp3j2Ln00::0:99999:7::: 

显示指定文件中包含某个关键词的行数量:

[root@linuxcool ~]# grep -c root /etc/passwd /etc/shadow 
/etc/passwd:2 
/etc/shadow:1 

搜索指定文件中包含某个关键词位置的行号及内容行:

[root@linuxcool ~]# grep -n network anaconda-ks.cfg 
17:network --bootproto=static --device=ens160 --ip=192.168.10.10 --netmask=255.255.255.0 --onboot=off --ipv6=auto --activate 
18:network --hostname=www.linuxcool.com 

搜索指定文件中不包含某个关键词的内容行:

[root@linuxcool ~]# grep -v nologin /etc/passwd 
root:x:0:0:root:/root:/bin/bash 
sync:x:5:0:sync:/sbin:/bin/sync 
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown 
halt:x:7:0:halt:/sbin:/sbin/halt 
linuxprobe:x:1000:1000:linuxprobe:/home/linuxprobe:/bin/bash 

搜索当前工作目录中包含某个关键词内容的文件,未找到则提示:

[root@linuxcool ~]# grep -l root * 
anaconda-ks.cfg 
grep: Desktop: Is a directory 
grep: Documents: Is a directory 
grep: Downloads: Is a directory 
initial-setup-ks.cfg 
grep: Music: Is a directory 
grep: Pictures: Is a directory 
grep: Public: Is a directory 
grep: Templates: Is a directory 
grep: Videos: Is a directory 

搜索当前工作目录中包含某个关键词内容的文件,未找到也不提示:

[root@linuxcool ~]# grep -sl root * 
anaconda-ks.cfg 
initial-setup-ks.cfg 

004 sed命令:批量编辑文本文件

sed命令来自英文词组stream editor的缩写,其功能是利用语法/脚本对文本文件进行批量的编辑操作。sed命令最初由贝尔实验室开发,后被众多Linux系统集成,能够通过正则表达式对文件进行批量编辑,让重复性的工作不再浪费时间。

语法格式:sed 参数 文件名

-e

使用指定脚本处理输入的文本文件

-n

仅显示脚本处理后的结果

-f

使用指定脚本文件处理输入的文本文件

-r

支持扩展正则表达式

-h

显示帮助信息

-V

显示版本信息

-i

直接修改文件内容,而不输出到终端

查找指定文件中带有某个关键词的行:

[root@linuxcool ~]# cat -n File.cfg | sed -n '/root/p' 
    20 rootpw --iscrypted $6$c2VGkv/8C3IEwtRt$iPEjNXml6v5KEmcM9okIT.Op9/LEpFejqR. kmQWAVX7fla3roq.3MMVKDahnv0l/pONz2WMNecy17WJ8Ib0iO1 
    40 pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty 

将指定文件中某个关键词替换成大写形式:

[root@linuxcool ~]# sed 's/root/ROOT/g' File.cfg 
………………省略输出信息……………… 

读取指定文件,删除所有带有某个关键词的行:

[root@linuxcool ~]# sed '/root/d' File.cfg 
………………省略输出信息……………… 

读取指定文件,在第4行后插入一行新内容:

[root@linuxcool ~]# sed -e 4a\NewLine File.cfg 
#version=RHEL8 
ignoredisk --only-use=sda 
autopart --type=lvm 
# Partition clearing information 
NewLine
………………省略部分输出信息……………… 

读取指定文件,在第4行后插入多行新内容:

[root@linuxcool ~]# cat File.cfg | sed -e '4a NewLine1 \ 
> NewLine2 \ 
> NewLine3 ' 
#version=RHEL8 
ignoredisk --only-use=sda 
autopart --type=lvm 
# Partition clearing information 
NewLine1 
NewLine2 
NewLine3 
clearpart --none --initlabel 
# Use graphical install 
graphical 
………………省略部分输出信息……………… 

读取指定文件,删除第2~5行的内容:

[root@linuxcool ~]# cat -n /etc/passwd | sed '2,5d' 
     1 root:x:0:0:root:/root:/bin/bash 
     6 sync:x:5:0:sync:/sbin:/bin/sync 
     7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown 
     8 halt:x:7:0:halt:/sbin:/sbin/halt 
………………省略部分输出信息……………… 

读取指定文件,替换第2~5行的内容:

[root@linuxcool ~]# sed '2,5c NewSentence' File.cfg 
#version=RHEL8 
NewSentence 
# Use graphical install 
graphical 
repo --name="AppStream" --baseurl=file:///run/install/repo/AppStream 
# Use CDROM installation media 
cdrom 
………………省略部分输出信息……………… 

读取指定文件的第3~7行:

[root@linuxcool ~]# sed -n '3,7p' File.cfg 
autopart --type=lvm 
# Partition clearing information 
clearpart --none --initlabel 
# Use graphical install 
graphical

005 awk命令:对文本和数据进行处理的编程语言

awk命令来自三位创始人Alfred Aho、Peter Weinberger、Brian Kernighan的姓氏缩写,其功能是对文本和数据进行处理。使用awk命令可以让用户自定义函数或正则表达式,对文本内容进行高效管理,awk与sed、grep并称为Linux系统中的“文本三剑客”。

语法格式:awk 参数 文件名

-c

使用兼容模式

-h

显示帮助信息

-C

显示版权信息

-m

对指定值进行限制

-e

指定源码文件

-n

识别输入数据中的八进制和十六进制数

-f

从脚本中读取awk命令

-O

启用程序优化

-F

设置输入时的字段分隔符

-v

定义一个变量并赋值

-v

自定义变量信息

-V

显示版本信息

内置变量

ARGC

命令行参数个数

NF

浏览记录域的个数

ARGV

命令行参数排列

NR

已读的记录数

ENVIRON

支持在队列中使用系统环境变量

OFS

输出域分隔符

FILENAME

awk浏览的文件名

ORS

输出记录分隔符

FNR

浏览文件的记录数

RS

控制记录分隔符

FS

设置输入域分隔符

仅显示指定文件中第1、2列的内容(默认以空格为间隔符):

[root@linuxcool ~]# awk '{print $1,$2}' File.cfg 
#version=RHEL8
 ignoredisk --only-use=sda 
autopart --type=lvm 
# Partition 
clearpart --none
………………省略部分输出信息……………… 

以冒号为间隔符,仅显示指定文件中第1列的内容:

[root@linuxcool ~]# awk -F : '{print $1}' /etc/passwd 
root 
bin 
daemon 
adm 
lp 
sync 
shutdown
………………省略部分输出信息……………… 

以冒号为间隔符,显示系统中所有UID号码大于500的用户信息(第3列):

[root@linuxcool ~]# awk -F : '$3>=500' /etc/passwd 
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin 
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin 
polkitd:x:998:996:User for polkitd:/:/sbin/nologin 
geoclue:x:997:995:User for geoclue:/var/lib/geoclue:/sbin/nologin 
………………省略部分输出信息……………… 

仅显示指定文件中含有指定关键词root的内容:

[root@linuxcool ~]# awk '/root/{print}' File.cfg 
rootpw --iscrypted $6$n9sZuTcY8Yzk4l.Q$LsuMNAROewyx.LomDtPpL9iJIOD3tsRThnzsAGE0hZX LMtdVCHVQ3pxzm3El8K2kuhcYLXJnhz.xUDGiE27s/1 
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty 

以冒号为间隔符,仅显示指定文件中最后一个字段的内容:

[root@linuxcool ~]# awk -F : '{print $NF}' 
/etc/passwd 
/bin/bash 
/sbin/nologin /sbin/nologin 
/sbin/nologin 
/sbin/nologin 
/bin/sync 
………………省略部分输出信息………………

006 mkdir命令:创建目录文件

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

语法格式:mkdir 参数 目录名

-m

创建目录的同时设置权限

-v

显示执行过程详细信息

-p

递归创建多级目录

-z

设置目录安全上下文

建立一个目录文件:

[root@linuxcool ~]# mkdir Dir1 

创建一个目录文件并设置700权限,不让除所有主以外的任何人读、写、执行它:

[root@linuxcool ~]# mkdir -m 700 Dir2 

一次性创建多个目录文件:

[root@linuxcool ~]# mkdir Dir3 Dir4 Dir5 

在系统根目录中,一次性创建多个有嵌套关系的目录文件:

[root@linuxcool ~]# mkdir -p /Dir1/Dir2/Dir3/Dir4/Dir5

007 cat命令:在终端设备上显示文件内容

cat命令来自英文词组concatenate files and print的缩写,其功能是在终端设备上显示文件内容。在Linux系统中有很多用于查看文件内容的命令,例如more、tail、head等,每个命令都有各自的特点。cat命令适合查看内容较少的纯文本文件。 对于内容较多的文件,使用cat命令查看后会在屏幕上快速滚屏,用户往往看不清所显示的具体内容,只好按Ctrl+C组合键中断命令执行,所以对于大文件,干脆用more命令‍显示吧。

语法格式:cat 参数 文件名

-A

等价于-vET参数组合

-t

等价于-vT参数组合

-b

显示行数(空行不编号)

-T

将TAB字符显示为^I符号

-e

等价于-vE参数组合

-v

使用^和M-引用,LFD和TAB除外

-E

每行结束处显示$符号

--help

显示帮助信息

-n

显示行数(空行也编号)

--version

显示版本信息

-s

显示行数(多个空行算一个编号)

查看指定文件的内容:

[root@linuxcool ~]# cat anaconda-ks.cfg 
#version=RHEL8 
ignoredisk --only-use=sda 
autopart --type=lvm 
# Partition clearing information 
………………省略部分输出信息……………… 

查看指定文件的内容并显示行号:

[root@linuxcool ~]# cat -n anaconda-ks.cfg 
     1 #version=RHEL8 
     2 ignoredisk --only-use=sda 
     3 autopart --type=lvm
     4 # Partition clearing information 
     5 clearpart --none --initlabel 
     6 # Use graphical install
 ………省略部分输出信息……… 

搭配空设备文件和输出重定向操作符,清空指定文件的内容:

[root@linuxcool ~]# cat /dev/null > anaconda-ks.cfg 
[root@linuxcool ~]# cat anaconda-ks.cfg 
[root@linuxcool ~]# 

持续写入文件内容,直到碰到EOF终止符后结束并保存:

[root@linuxcool ~]# cat > anaconda-ks.cfg << EOF 
> Hello,World 
> Linux!~ 
> EOF 
[root@linuxcool ~]# cat anaconda-ks.cfg 
Hello,World 
Linux!~ 

搭配输出重定向操作符,将光盘设备制作成镜像文件:

[root@linuxcool ~]# cat /dev/cdrom > rhel.iso 
[root@linuxcool ~]# ls rhel.iso -lh 
-rw-r--r--. 1 root root 6.7G May 2 00:43 rhel.iso
[root@linuxcool ~]# file rhel.iso 
rhel.iso: DOS/MBR boot sector; partition 2 : ID=0xef, start-CHS (0x3ff,254,63), end-CHS (0x3ff,254,63), startsector 23128, 19888 sectors

008 more命令:分页显示文本文件内容

more命令的功能是分页显示文本文件的内容。如果文本文件中的内容较多较长,使用cat命令读取后则很难看清,这时使用more命令进行分页查看就比较合适了,该命令可以把文本内容一页一页地显示在终端界面上,用户每按一次Enter键即向下一行,每按一次空格键即向下一页,直至看完为止。

语法格式:more 参数 文件名

-c

不滚屏,先显示内容再清除旧内容

-s

将多个空行压缩成一行显示

-d

显示提醒信息,关闭响铃功能

-u

禁止下划线

-f

统计实际的行数,而非自动换行的行数

-数字

设置每屏显示的最大行数

-l

将“^L”当作普通字符处理,而不暂停输出信息

+数字

设置从指定的行开始显示内容

-p

先清除屏幕再显示文本文件的剩余内容

+/关键词

从指定关键词开始显示文件内容

分页显示指定的文本文件内容:

[root@linuxcool ~]# more File.cfg 
#version=RHEL8 
ignoredisk --only-use=sda 
autopart --type=lvm 
# Partition clearing information 
clearpart --none --initlabel 
# Use graphical install graphical 
# Use CDROM installation media 
cdrom 
………………省略部分输出信息……………… 

先进行清屏操作,随后以每次10行内容的格式显示指定的文本文件内容:

 [root@linuxcool ~]# more -c -10 File.cfg
 #version=RHEL8 
ignoredisk --only-use=sda 
autopart --type=lvm 
# Partition clearing information 
clearpart --none --initlabel 
# Use graphical install 
graphical repo --name="AppStream" --baseurl=file:///run/install/repo/AppStream
# Use CDROM installation media 
cdrom 
--More--(20%) 

分页显示指定的文本文件内容,若遇到连续两行及以上空白行的情况,则以一行空白行显示:

[root@linuxcool ~]# more -s File.cfg 
#version=RHEL8 
ignoredisk --only-use=sda 
autopart --type=lvm 
# Partition clearing information 
clearpart --none --initlabel 
# Use graphical install graphical 
# Use CDROM installation media 
cdrom 
………………省略输出信息……………… 

从第10行开始,分页显示指定的文本文件内容:

[root@linuxcool ~]# more +10 File.cfg 
cdrom 
# Keyboard layouts 
keyboard --vckeymap=us --xlayouts='us' 
# System language 
lang en_US.UTF-8 
 
# Network information 
network --bootproto=static --device=ens160 --ip=192.168.10.10 --netmask=255.255.255.0 --onboot=off --ipv6=auto --activate 
network --hostname=linuxcool.com 
# Root password
………………省略部分输出信息………………

009 less命令:分页显示文件内容

less命令的功能是分页显示文件内容。Less命令分页显示的功能与more命令很相像,但more命令只能从前向后浏览文件内容,而less命令不仅能从前向后浏览(按PageDown键),还可以从后向前浏览(按PageUp键),更加灵‍活。

语法格式:less 参数 文件名

-b

设置缓冲区大小

-Q

不使用警告音

-e

当文件显示结束后自动退出

-r

显示原始字符

-f

强制打开文件

-s

将连续多个空行视为一行

-g

仅标识最后搜索的关键词

-S

在每行显示较多的内容,而不换行

-i

忽略搜索时的大小写

-V

显示版本信息

-K

收到中断字符时,立即退出

-x

将Tab字符显示为指定个数的空格字符

-m

显示阅读进度百分比

-y

设置向前滚动的最大行数

-N

显示文件内容时带行号

--help

显示帮助信息

-o

将要输出的内容写入指定文件

分页查看指定文件的内容:

[root@linuxcool ~]# less File.cfg 

分页查看指定文件的内容及行号:

[root@linuxcool ~]# less -N File.cfg 

分页显示指定命令的输出结果:

[root@linuxcool ~]# history | less

相关图书

Linux后端开发工程实践
Linux后端开发工程实践
操作系统基础与实践——基于openEuler平台
操作系统基础与实践——基于openEuler平台
庖丁解牛Linux操作系统分析
庖丁解牛Linux操作系统分析
轻松学Linux:从Manjaro到Arch Linux
轻松学Linux:从Manjaro到Arch Linux
Linux高性能网络详解:从DPDK、RDMA到XDP
Linux高性能网络详解:从DPDK、RDMA到XDP
跟老韩学Linux架构(基础篇)
跟老韩学Linux架构(基础篇)

相关文章

相关课程