Shell 命令基础3

1、常用文件查找和定位命令

1.1、pwd 命令

pwd 是 print working directory 的缩写,该命令用于显示用户当前所在的工作目录,工作目录的概念类似于在 Windows 中的当前文件夹。

pwd

注意命令提示符中当前工作目录的变化。

1.2、cd 命令

cd 是 change directory 的英文缩写,该命令用于改变当前的工作目录,这个动作相当于Windows 中的打开文件夹。其语法格式为:“cd [选项] [目录]

以下几种比较特殊且常用的切换命令:

  • cd -:返回到上一次所在的目录,相当于 Windows 文件夹中的后退操作。
  • cd …:切换到上级目录,相当于 Windows 文件夹中的向上操作。
  • cd ~:切换到当前用户的家目录,相当于 Windows 中的打开“我的文档”操作。
  • cd ~username:切换到指定用户 username 的家目录。
  • cd .:一个点表示当前目录,执行该命令不会有任何变化。

1.3、 ls 命令

ls 是英文单词 list 的缩写,该命令用于显示指定目录中的文件信息,语法格式为:ls [选项] [文件名称]

常用选项及含义:

选项含义
-a显示全部文件(包括隐藏文件)
-d显示指定目录的信息
-h以人性化格式显示文件大小,如 1K,2G
-i显示 inode 信息
-l显示文件的属性和大小等详细信息
-Z显示安全上下文

ls-al
图中命令用于显示当前工作目录下的所有文件的详细信息

lsbash
图中命令则用于显示指定文件~/.bashrc 的详细信息

Linux 系统中以点(.)开头的文件表示隐藏文件,这些文件大多数为系统服务文件。

lsetc
图中命令以人性化格式显示指定目录/etc的详细信息。

1.4、find 命令

find 命令用于查找文件,常用语法格式为:“find [查找点] 表达式”。
find 命令可以使用不同的文件特性作为寻找条件(比如文件名、大小、修改时间、权限等信息)在指定的目录中查找,并将查找到的信息默认显示到屏幕上。
在查找文件时,还可以使用通配符星号(*)和问号(?)来进行模糊查找。

命令常用选项及含义:

项目Value
-name指定查找的文件名称
-user指定文件的属主
-size指定文件大小(如+6KB 表示大于 6KB,-6KB 则表示小于 6KB)
-exec …… {}\;将搜索结果交由-exec 后的命令作进一步处理

 find /etc -name "host*"

图中命令是找出/etc 目录中所有以 host 开头的文件
findhome
图中命令是在/home/zhangsan 目录中找出所有属于用户zhangsan 的文件,并将找到的文件复制到/tmp/目录中

命令中的“{}”可以认为是一个占位符,表示要复制的文件,选项-a 表示 all,连同文件属性一并复制,命令必须以“;”结尾,且前面有空格。

1.5、locate 命令

locate 命令用于定位文件所在的位置,语法格式为:“locate 文件名称”。
与 find 命令类似,locate 命令也可以找出文件所在的位置,但 locate 命令的效率更高一些,适用于在整个文件系统中模糊查找文件的场景。
在使用 locate 命令之前,建议先执行 updatedb 命令生成或更新索引数据库,特别是本系统第一次使用该命令。

 locate passwd

1.6、whereis 命令

whereis 命令适用于搜索指定命令的二进制程序、源代码以及帮助手册文件的位置,常用语法格式为:“whereis [选项] 命令名称

whereis -b find

如图所示当只需要查看命令的二进制程序的位置时,则可以使用选项-b。

1.7、which 命令

which 命令用于快速查找指定命令程序所在位置,功能与命令“whereis -b”相同,常用语法格式为:“which 命令名称”。

which ifconfig

find 和 locate 是找出所有满足条件的文件,可能存在同名文件,但 find 需要指定在哪里找,而 locate是在整个文件系统中查找,而且基于索引库搜索,效率更高。
whereis 命令用于查找 Shell命令的可执行程序、源代码和帮助文件位置,不可能存 在同名文件。
which 命令专门用于查找 Shell命令的可执行程序所在的位置,也不可能存在同名 文件,但与 whereis 不同,它不关心源代码和帮助文件。

2、常用文本文件内容查看命令

2.1、cat 命令

cat 是英文单词 concatenate 的简写,该命令用于查看文件的内容,常用语法格式为:“cat [选项] 文件名”。
cat 命令适用于内容较少的文件,即无需翻页,一屏就能展现完的文件。对于长文件,cat 命令只展示最后一屏的内容。

2.2、more 与 less 命令

more 命令也可用于查看文件内容,语法格式为:more [选项] 文件名
more 命令适用于内容较多的、特别需要翻页的长文本文件。对于长文件,more 命令会分屏展示文件内容,使用空格键向下翻页,按 q 键结束,但不能向上翻页。
less 命令与 more 相似,可以使用 PageDown 和 PageUp 键向下和向上翻页,比 more 命令更灵活。

2.3、head 与 tail 命令

顾名思义,head 命令用于查看文件内容的前若干行,常用语法格式为:“head [选项] 文件名”。
tail 命令用于查看文件内容的最后若干行,常用语法格式为:“tail [选项] 文件名”。
这两个命令的常用选项-n 均用来指定要显示的行数

tail -n 3 initial-setup-ks.cfg
tail 命令非常适合持续显示更新的文件的最新内容,比如日志文件。选项-f 用于显示最近一次更新的内容,按组合键 Ctrl+C 终止查看。

2.4、gedit 命令

gedit 是 Linux 下的基于 GNOME 的纯文本编辑器,类似于 Windows 下的记事本程序,在介绍 vim 文本编辑器之前,可以用该命令查看和编辑文本文件。
直接运行 gedit 命令,将以图形界面打开并创建一个空白的文本文件,若指定文件,则打开并显示该文本文件内容。
gedit /root/anaconda-ks.cfg

2.5、tr 命令

tr 是英文单词 translate 的缩写,该命令用于从标准输入接收字符串,然后将指定的旧字符删除或者替换成指定的新字符,最后在标准输出显示。常用语法格式为:tr [选项] [旧字符集] [新字符集]
例如,将/root 目录下的文件 initial-setup-ks.cfg 中的所在小写字母替换成大写字母,则相应的命令为 cat initial-setup-ks.cfg | tr [a-z] [A-Z]

 cat initial-setup-ks.cfg | tr [a-z] [A-Z]

如图所示,其中[a-z]表示小写字母集合,[A-Z]则表示大写字母集合。
图中命令的含义是先用 cat 命令打开指定的文件,并将文件内容通过管道符“|”传给命令 tr,由 tr 命令完成后面指定的字符替换工作。

2.6、wc 命令

wc 是 word counts 的缩写,该命令用于统计指定文本文件的行数、字符数或字节数,语法格式为:wc [选项] 文件名称

wc 命令的常用选项及含义:

选项含义
-l只显示行数
-w只显示单词数
-c只显示字节数

 wc -lw initial-setup-ks.cfg

2.7、grep 命令

grep 命令是用途最为广泛的文本搜索匹配工具,主要用于找出所有满足条件的文本行。
常用语法格式为:grep [选项] 需匹配的字符串 文件名

grep 命令的常用选项及其含义:

项目Value
-c仅显示找到的行数
-i忽略大小写
-n同时显示在原文件中的行号
-v反向选择,即显示所有不满足条件的行
-a将二进制文件作为文本文件来搜索

 grep -n "/sbin/nologin" /etc/passwd
Linux 系统中的/etc/passwd 文件保存着当前系统的所有用户账号信息,用 cat命令可以查看这些账号信息,可以发现一些账号后面被为/sbin/nologin,这种标记意味着禁止该用户账号登录系统。可以使用 grep 命令找出所有有此标记的用户账号。

2.8、cut 命令

cut 命令则用于按列提取文本内容,其常用语法格式为:cut [选项] 文件名

cut
/etc/passwd 文件中的数据项之间是用冒号(:)间隔的,每项所在的列就是一个字段,如同 Excel 表格中的一列,或者数据库中的一个字段
第 1 列的内容就是账号名称。
在 cut 命令中,常用选项包括-f 和-d,其中-f 用于指定要显示第几列,选项-d 用于指定数据项之间所使用的间隔符号。

2.9、diff 命令

diff 是英文单词 different 的简写,该命令用于按行比较文件之间内容的差异,常用语法格式为:“diff [选项] 文件 1 文件 2

diff 命令中,选项–brief 用于确认两个文件是否相同;选项-c 则详细比较出两个文件的哪些行不相同。

首先运行 gedit 命令打开图形文本编辑器,并依次编写和保存如图的 file_A 和 file_B 两个文件。
fileb
filea

如下图所示。从图中可以看出,diff 命令是逐行对两个文件进行比较的,对于不同的行,各文件内容行前面用“!”标记。

diff

用于文件比较的命令还有 comm 和 cmp,comm 命令用于对两个已排好序的文件逐行进行比较,cmp命令用于对两个文件逐字节进行比较。具体可参考帮助手册。

2.10、uniq 命令

uniq 是英文单词 unique 的缩写,该命令用于删除文本文件中连续的重复行,语法格式为: uniq [选项] 文件名称
运行 gedit 命令打开文本编辑器,并编写和保存如图所示的 file_C 文件。
filec
接下来就可以利用 uniq 命令删除 file_C 文件中重复的连续行了,如图下图所示。从图中可以清晰看到,uniq 删除的是连续的重复行,对于不是连续的重复行则不起作用。

uniq

实际的文本内容并没有改变

2.11、sort 命令

sort 命令用于对文件文本内容按行进行排序,与 Excel 中的排序原理类似,语法格式为:sort [选项] 文件名
sort 命令的常用选项及其含义:

选项含义
-f忽略大小写
-b忽略前导空格
-n根据字符串数值进行比较
-r逆向排序
-u去除重复行
-t指定间隔符
-k根据指定 key 排序

运行 gedit 命令打开文本编辑器,并编写和保存如图所示的 file_D文件。
filed

利用 sort 命令对 fruit 文件中的内容进行排序,如图下所示,使用选项-u 还可以删除重复的行,这一点注意对比 uniq 命令。

sort

3、常用文件和目录管理命令

3.1、touch 命令

touch 命令用于创建空白文件或设置文件时间属性,语法格式为:touch [选项] 文件名
touch 命令的常见选项及其含义

选项含义
-a修改文件的读取时间(atime)
-m修改文件内容的修改时间(mtime)
-d同时修改 atime 与 mtime

不使用选项时,touch 命令将创建一个空白文件。

touch

图中命令及其功能简要介绍如下:

  1. 首先利用 touch 命令创建一个名为 newfile1 的文件。
  2. 利用 ls 命令查看该文件的属性信息,包括该文件的mtime,该时间记为 t0。
  3. 利用 echo 命令将信息输出到文件 newfile1 中。
  4. 利用 cat 命令查看文件内容。
  5. 再次查看文件属性信息,注意对比 mtime 的变化。
  6. 利用 touch 命令的选项-d 修改 mtime,将该时间修改为 t0。
  7. 最后再次查看文件的属性信息,注意 mtime 的变化。

修改文件的 mtime 是黑客入侵时的常规操作。

3.2、mkdir 命令

mkdir 是 make directory 的缩写,该命令用于创建空目录,语法格式为:mkdir [选项] 目录名称

mkdir
在 mkdir 命令中,常用选项-p 递归创建多级目录,图中的 4 条命令简介如下:

  1. 在当前目录下创建一个名为 heibao 的目录
  2. 利用选项-p 在 heibao目录下递归创建 3 个嵌套的子目录。
  3. 利用 tree 命令查看 heibao目录的层次关系。

3.3、cp 命令

cp 是 copy 的缩写,该命令用于复制文件或目录,语法格式为:cp [选项] 源文件路径和名称 目标路径和名称

cp 命令的常用选项及含义

选项含义
-r递归持续复制(只用于目录)
-a复制文件全部档案,包括权限和属性等
-f若存在同名文件,则直接覆盖且不给提示
-i若存在同名文件,则给予提示,默认选项

cp

3.4、mv 命令

mv 是英文单词 move 的简写,该命令用于移动或重命名文件,语法格式为:“mv [选项] 源文件名 目标文件名
mv 命令的两个常用选项-f 和-i 与 cp 命令相同。
在同一目录内,对某文件执行 mv 操作其实就是重命名该文件。

mv

  1. 创建file1
  2. 重命名
  3. 移动文件

3.5、rm 命令

rm 是英文单词 remove 的简写,该命令用于删除文件或目录,语法格式为:“rm [选项] 文件名称”。

rm 命令的常用选项及含义:

选项含义
-f强制执行,不予询问确认
-i删除前询问是否确定删除
-r删除目录需要使用该选项

rm

3.6、dd 命令

dd 命令可用于创建一个指定长度的文件,其语法格式如下:

dd if=参数值 1 of=参数值 2 count=参数值 3 bs=参数值 4

dd 命令中的参数及含义

参数含义
if输入的文件名称
of输出的文件名称
bs设置每个“数据块”的大小
count设置要复制“数据块”的数量

dd

图中的/dev/zero 是一个设备文件,该文件不占用系统存储空间,但可以提供无穷无尽的 0 数据。图中就是复制 6 个大小为 10MB 的数据块到一个名为 newfile1 的文件中。

dd 命令还可以用于转换文件或者磁盘备份与恢复。

3.7、file 命令

file 命令用于查看文件的类型,语法格式为:file [选项] 文件名
在 Linux 系统中,文本、目录、设备等都统称为文件,通过 file 可以查看指定文件的类型。

file

如图所示,可见 initial-setup-ks.cfg 是 ASCII 文本文件;/dev/zero 是特殊的字符设备文件;而/root 为目录文件。

3.8、tar 命令

tar 命令用于对文件进行打包压缩或解压,语法格式为:“tar 选项 文件名”。
Linux 系统中主要使用的压缩格式有.tar、.tar.gz 或.tar.bz2 格式,这些格式大多由 tar 命令生成或解压。

tar 命令常用选项及含义

选项含义
-c创建压缩文件
-x解开压缩文件
-v显示压缩或解压的过程
-f指定压缩包文件名
-p保留原始的权限与属性
-P使用绝对路径来压缩
-C指定解压到的目录

这个命令很重要,使用频率也很高,下面对其常用选项再作以下说明:

  • -c:该选项用于创建压缩文件
  • -x:该选项用于解压文件,-c 和-x 两个选项不能同时使用。
  • -v:利用该选项可以动态显示压缩或解压的过程,推荐使用。
  • -C:该选项用于将压缩包解压到指定的目录。
  • -f:该选项必须放到选项的最后面,表示指定要压缩或解压的压缩包名。

对于初学者,记得并掌握以下两个命令即可解决大部分问题了。
(1)压缩命令:tar -czvf 压缩包名.tar.gz 要打包的目录或文件
(2)解压命令:tar -xzvf 压缩包名.tar.gz

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hi_heibao

谢谢您的鼓励与支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值