普通视图

发现新文章,点击刷新页面。
昨天以前首页
  • ✇爱吃猫的鱼BLOG
  • 全面详细的常用Linux命令汇总(2)M.Talen
    无论是Linux的新手还是老手,掌握一些常用命令都是必不可少的,熟练使用它们可以大大提高工作效率,成为工作中的得力助手。本文是常用Linux命令汇总系列文章的第二篇,全面详细的展示了10个与文档编辑相关的命令。一览表序号命令简述分类1cat连接与查看文件内容文档编辑2more分页显示大文件文档编辑3less功能强大的文本查看器文档编辑4head查看文件开头部分文档编辑5tail查看文件结尾部分文档编辑6vim强大的文本编辑器文档编辑7sed批量编辑文本文件文档编辑8awk对文本和数据进行处理的编程语言文档编辑9grep强大的文本搜索工具文档编辑10diff比较文件内容差异文档编辑1. cat 命令cat 命令主要用于查看文件内容,也可将多个文件合并输出,还能创建新文件。它会一次性将文件的全部内容输出到标准输出设备(通常是屏幕)。语法格式1cat [参数] 文件常用参数123456-n 显示行号,会在输出的每一行前加上行号-b 显示行号,但只对非空行进行编号-s 压缩连续的空行,只显示一个空行-E 在每一行的末尾显示 $ 符号-T 将 Tab 字符显示为 ^
     

全面详细的常用Linux命令汇总(2)

作者 M.Talen
2024年11月19日 20:40

无论是Linux的新手还是老手,掌握一些常用命令都是必不可少的,熟练使用它们可以大大提高工作效率,成为工作中的得力助手。本文是常用Linux命令汇总系列文章的第二篇,全面详细的展示了10个与文档编辑相关的命令。

一览表

序号命令简述分类
1cat连接与查看文件内容文档编辑
2more分页显示大文件文档编辑
3less功能强大的文本查看器文档编辑
4head查看文件开头部分文档编辑
5tail查看文件结尾部分文档编辑
6vim强大的文本编辑器文档编辑
7sed批量编辑文本文件文档编辑
8awk对文本和数据进行处理的编程语言文档编辑
9grep强大的文本搜索工具文档编辑
10diff比较文件内容差异文档编辑

1. cat 命令

cat 命令主要用于查看文件内容,也可将多个文件合并输出,还能创建新文件。它会一次性将文件的全部内容输出到标准输出设备(通常是屏幕)。

语法格式

1
cat [参数] 文件

常用参数

1
2
3
4
5
6
-n    显示行号,会在输出的每一行前加上行号
-b 显示行号,但只对非空行进行编号
-s 压缩连续的空行,只显示一个空行
-E 在每一行的末尾显示 $ 符号
-T 将 Tab 字符显示为 ^I
-v 显示一些非打印字符

实例

(1)显示指定文件内容并显示非空行的行号

1
cat -b file1

image-20241114164504779

(2)把文件A的非空白行内容加上行号,之后将其附加到文件B中

1
cat -b file2 >> file3

image-20240320165734429

注意

  • cat命令默认会一次显示整个文件,如果文件过大可能会导致终端卡顿
  • cat命令可以用来创建新的空文件,但不能编辑文件

2. more 命令

more 命令用于分页显示文件内容,每次显示一屏。当文件内容较多时,使用 more 可以逐屏查看,避免内容过多在屏幕上滚动过快而难以阅读。

语法格式

1
more [参数] 文件

常用参数

1
2
3
4
5
6
7
8
+n    从笫n行开始显示
-n 定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c 从顶部清屏,然后显示
-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l 忽略Ctrl+l(换页)字符
-s 把连续的多个空行显示为一行
-u 把文件内容中的下画线去掉

操作命令

1
2
3
4
5
<回车键>    向下n行,需要定义。默认为1行
<空格键> 向下滚动一屏
<Ctrl> + B 返回上一屏
= 输出当前行的行号
q 退出more

实例

(1)显示指定文件内容并从第 5 行开始显示

1
more +5 file1

image-20241114171900559

(2)从文件中查找第一个出现 34 字符串的行,并从该处前两行开始显示输出

1
more +/34 file1

image-20241114172040667

(3)设定每屏显示行数为 5

1
more -5 file1

image-20241114172319103

3. less 命令

less 功能更强大,支持向前和向后翻页,在文件中进行搜索,并且可以在查看文件时不加载整个文件到内存,对于非常大的文件更加高效。

语法格式

1
less [参数] 文件

常用参数

1
2
3
4
5
6
7
8
9
10
11
12
-b <缓冲区大小>    设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时将超出部分舍弃
-x <数字> 将"tab"键显示为规定的数字空格

操作命令

1
2
3
4
5
6
7
8
9
10
/字符串    向下搜索"字符串"的功能
?字符串 向上搜索"字符串"的功能
b 向上滚动一页
u 向上滚动半页
y 向上滚动一行
<空格键> 向下滚动一页
d 向下滚动半页
<回车键> 向下滚动一行
h 显示帮助界面
q 退出less

实例

(1)ps 查看进程信息并通过 less 分页显示

1
ps -ef |less

image-20241114173653083

(2)浏览多个文件

1
less file1 file2

提示:输入 :n 切换到下一个文件,输入 :p 切换上一个文件

image-20241114174041626

4. head 命令

head 命令用于显示文件的开头部分内容。默认情况下会显示文件的前 10 行内容。

语法格式

1
head [参数] 文件

常用参数

1
2
3
4
-q    隐藏文件名
-v 显示文件名
-c<数目> 显示的字节数
-n<行数> 显示的行数

实例

(1)显示指定文件的前 13 行

1
head -n 13 file1

image-20241114174815384

(2)显示指定文件除最后 39 行外的全部内容

1
head -n -39 file1

image-20241114175131721

(3)显示指定文件的前 100 个字节

1
head -c 100 file1

image-20241114175344903

5. tail 命令

tail 命令用于显示文件的结尾部分内容。默认情况下会显示文件的最后 10 行内容。

语法格式

1
tail [参数] 文件

常用参数

1
2
3
4
5
6
7
8
-f    循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示的行数
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

实例

显示指定文件的后 13 行

1
tail -n 13 file1

image-20241114175550073

6. vim 命令

vim 是强大的文本编辑器,支持多种操作模式,包括命令模式、输入模式和命令行模式。

语法格式

1
vim 文件

操作模式

  • 命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等
  • 输入模式:正常的文本输入
  • 命令行模式:保存或退出文档,以及设置编辑环境

image-20241119201558539

1. 命令模式

用户启动 vim 便进入了命令模式,此状态下敲击键盘动作会被 vim 识别为命令,而非输入字符,比如按下 iao 就进入了输入模式,而按下 : 就进入了命令行模式。

1
2
3
4
5
6
7
8
9
10
11
i    切换到输入模式,在光标当前位置开始输入文本
a 切换到输入模式,在光标下一个位置开始输入文本
o(小写) 在当前行的下方插入一个新行,并进入输入模式
O(大写) 在当前行的上方插入一个新行,并进入输入模式
dd 剪切当前行
yy 复制当前行
p(小写) 粘贴剪贴板内容到光标下方
P(大写) 粘贴剪贴板内容到光标上方
u 撤销上一次操作
<Ctrl> + r 重做上一次撤销的操作
: 切换到命令行模式,以在最底一行输入命令

2. 输入模式

在输入模式中用户可以随意修改文本内容,当编写完成后可以使用 <ESC> 返回命令模式,进行其它操作。

1
2
3
4
5
6
<ENTER>    回车键,换行
<BACK SPACE> 退格键,删除光标前一个字符
<DELETE> 删除键,删除光标后一个字符
<HOME>/<END> 移动光标到行首/行尾
<Page Up>/<Page Down> 上/下翻页
<ESC> 退出输入模式,切换到命令模式

3. 命令行模式

在命令模式下按下 : 就进入了命令行模式,在命令行模式通过输入单个或多个字符的命令来实现丰富与连贯的操作。

1
2
3
4
5
6
:w    保存文件
:q 退出 Vim 编辑器
:wq 保存文件并退出 Vim 编辑器
:q! 强制退出 Vim 编辑器,不保存修改
:set nu (变量变更)显示行号
:set nonu (变量变更)取消行号

实例

使用 vim 打开指定文件

1
vim file1

image-20241114203405731

7. sed 命令

sed 是一种流编辑器,用于对文本进行非交互式的编辑操作,可以进行文本的替换、删除、插入等操作。

语法格式

1
sed [参数] [事件] 文件

常用参数

1
2
-e    以选项中指定的事件处理输入的文本文件
-n 仅显示事件处理后的结果

事件动作

1
2
3
4
5
6
a    新增,a的后面接字串,字串在下一行出现
c 取代,c的后面接字串,字串替换n1,n2之间的行
d 删除,删除行,d的后面通常不接字串
i 插入,i的后面接字串,字串在上一行出现
p 打印,将某个选择的数据输出,通常与参数 -n 一起运行
s 取代,通常搭配正则表达式

实例

(1)在指定文件第 6 行后添加一行,并将结果输出到标准输出设备

1
sed -e 6a跟在第6行后的一行 file1

image-20241114232322949

(2)在指定文件中搜索包含 13 的行并输出

1
sed -n 13p file1

image-20241114235444697

(3)替换指定文件中的内容更改为新内容

1
sed -e s/13/130/ file1

image-20241115000631362

8. awk 命令

awk 是一种用于处理文本文件的语言,它以行为单位处理文件内容,可以进行复杂的数据提取和分析。

语法格式

1
awk [参数] [处理规则] 文件

常用参数

1
2
3
-F <分隔符>    指定输入字段的分隔符,默认是空格
-v <变量名>=<值> 设置内部变量值。可以使用该选项将外部值传递给 awk 脚本中的变量
-f <脚本文件> 指定一个包含 awk 脚本的文件。这样可以在文件中编写较大的 awk 脚本,然后通过 -f 选项将其加载

内置变量

1
2
3
4
5
$0    保存当前行的内容
NR 记录号(行号),每处理完一条记录,NR值加1
NF 保存记录的字段数(总共保存的列数),$1,$2...$100
FS 输入字段分隔符,默认空格
OFS 输出字段分隔符

处理规则

1
2
3
4
BEGIN{}    BEGIN是在awk处理文本之前运行
// 使用的匹配规则
{} 循环(每次只处理一行数据)
END{} 当所有的处理全部执行完毕之后,执行END中的相关操作

实例

(1)打印指定文件内容的第一列

1
awk '{print $1}' file3

image-20241119115814152

(2)打印指定文件内容的第一列,并用分隔符指定列

1
awk -F':' '{print $1}' file3

image-20241119115951010

(3)打印指定文件内容的行数

1
awk 'END{print NR}' file3

image-20241119120225590

9. grep 命令

grep 命令用于在文件中搜索指定的模式。它可以搜索单个文件或多个文件,并输出包含匹配模式的行。

语法格式

1
grep [参数] 模式 文件

常用参数

1
2
3
4
5
6
-i    忽略大小写进行匹配
-v 反向查找,只打印不匹配的行
-n 显示匹配行的行号
-r 递归查找子目录中的文件
-l 只打印匹配的文件名
-c 只打印匹配的行数

实例

(1)在指定文件中搜索包含特定字符串的行

1
grep "/bin" file3

image-20241119121130878

(2)使用递归查找指定目录下所有文件包含指定字符串的行

1
grep -r "12" /linux

image-20241119121641346

10. diff 命令

diff 用于比较两个文件的差异。它会显示两个文件中不同的行,并可以以不同的格式输出差异信息。

语法格式

1
diff [参数] 文件1 文件2

常用参数

1
2
3
4
5
6
7
-u    显示完整的差异内容
-w 忽略空格和空行的差异
-r 递归比较目录下的所有文件和子目录
-q 仅判断两个文件是否不同,而不显示文件内容的差异
-c 显示上下文差异
-i 忽略大小写的差异
-y 以并列的方式显示差异内容

实例

(1)比较两个文件的差异

1
diff file1 file4

image-20241119125830112

(2)比较两个文件的差异,并以并列的方式展示差异

1
diff -y file1 file4

image-20241119130202656

  • ✇爱吃猫的鱼BLOG
  • 全面详细的常用Linux命令汇总(1)M.Talen
    无论是Linux的新手还是老手,掌握一些常用命令都是必不可少的,熟练使用它们可以大大提高工作效率,成为工作中的得力助手。本文是常用Linux命令汇总系列文章的第一篇,全面详细的展示了10个与文件管理相关的命令。一览表序号命令简述分类1ls列出目录内容文件管理2cd切换目录文件管理3pwd显示当前工作目录的路径文件管理4mkdir创建新目录文件管理5cp复制文件或目录文件管理6mv移动或改名文件文件管理7touch创建空文件与修改时间戳文件管理8rm删除文件或目录文件管理9ln为文件创建快捷方式文件管理10cat显示文件内容文件管理1. ls命令ls命令是英文list的缩写,用于列出指定目录的内容,能够显示文件名、文件类型、文件大小、最后修改时间等信息语法格式1ls [参数] [文件或目录名]常用参数123456789ls -a 列出包括隐藏文件的所有文件ls -A 列出除当前目录(.)和父目录(..)所有文件和目录ls -d 当遇到目录时列出目录本身而非目录内的文件ls -i 显示每个文件的索引编号(inode号)ls -l 显示文件的属性信息,包括权限、
     

全面详细的常用Linux命令汇总(1)

作者 M.Talen
2024年3月20日 23:05

无论是Linux的新手还是老手,掌握一些常用命令都是必不可少的,熟练使用它们可以大大提高工作效率,成为工作中的得力助手。本文是常用Linux命令汇总系列文章的第一篇,全面详细的展示了10个与文件管理相关的命令。

一览表

序号命令简述分类
1ls列出目录内容文件管理
2cd切换目录文件管理
3pwd显示当前工作目录的路径文件管理
4mkdir创建新目录文件管理
5cp复制文件或目录文件管理
6mv移动或改名文件文件管理
7touch创建空文件与修改时间戳文件管理
8rm删除文件或目录文件管理
9ln为文件创建快捷方式文件管理
10cat显示文件内容文件管理

1. ls命令

ls命令是英文list的缩写,用于列出指定目录的内容,能够显示文件名、文件类型、文件大小、最后修改时间等信息

语法格式

1
ls [参数] [文件或目录名]

常用参数

1
2
3
4
5
6
7
8
9
ls -a    列出包括隐藏文件的所有文件
ls -A 列出除当前目录(.)和父目录(..)所有文件和目录
ls -d 当遇到目录时列出目录本身而非目录内的文件
ls -i 显示每个文件的索引编号(inode号)
ls -l 显示文件的属性信息,包括权限、所有者、大小、创建时间等
ls -R 递归列出目录中的所有文件和子目录
ls -S 依据内容大小将文件排序显示,最大的在最前
ls -t 按修改时间排序,最新的在最前
ls -X 依据文件扩展名排序

实例

(1)列出/bin目录下的文件

1
ls /bin

image-20240314155802479

(2)按照修改时间列出所有文件的详细信息

1
ls -Alt

image-20240314161027100

(3)结合通配符*使用,显示目录中以a开头的文件列表

1
ls a*

image-20240314164601891

(4)查看当前目录中某一目录的权限

1
ls -ld dir2

image-20240314230031404

注意

  • 对于-a-A参数,ls 命令是区分大小写的

2. cd命令

cd命令是英文change directory的缩写,用于更改当前所处的工作目录,路径可以是绝对路径,也可以是相对路径

语法格式

1
cd 目录名

常用参数&实例

1
2
3
4
5
6
cd /root/dir1/directory    切换到绝对路径
cd dir1/directory 切换到相对路径
cd .. 切换到上级目录
cd ../.. 切换到上上级目录
cd ~ 或 cd 切换到用户主目录
cd - 切换到上次访问的目录

3. pwd命令

pwd命令是英文print working directory的缩写,用于显示当前工作目录的路径,一般不需要配合任何参数去使用

语法格式

1
pwd

实例

显示当前工作目录的路径

1
pwd

image-20240315013440393

4. mkdir命令

mkdir命令是英文make directories的缩写,用于创建目录文件

语法格式

1
mkdir [参数] 目录

常用参数

1
2
3
mkdir -m    创建目录的同时设置权限
mkdir -p 递归创建多级目录
mkdir -v 显示执行过程详细信息

实例

(1)建立一个目录文件

1
mkdir dir3

image-20240314225041763

(2)创建一个新目录并赋予所有者完全权限(读、写、执行),组成员读权限和执行权限,其他用户只读权限

1
mkdir -m 754 dir4

image-20240314230231760

(3)一次性创建多个有嵌套关系的目录文件

1
mkdir -p dir3/dir33/dir333

image-20240314230514736

注意

  • 使用-p参数时,如果目录已经存在,命令不会报错,而是继续执行
  • 如果没有足够的权限或目录已存在,命令会失败

5. cp命令

cp命令是英文copy的缩写,用于复制文件或目录,将一个或多个文件或目录复制到指定位置

语法格式

1
cp [参数] 源文件或目录 目标文件或目录

常用参数

1
2
3
4
5
6
7
8
9
10
cp -a    通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容,功能等同dbR参数
cp -d 复制链接文件时,将目标文件也创建为链接文件而非普通文件,这里链接类似Windows中的快捷方式
cp -f 若目标文件已存在,则会直接覆盖,不会提示用户确认
cp -i 若目标文件已存在,对每个将要覆盖的目标文件都会提示用户确认
cp -l 用于创建硬链接,硬链接是一种指向同一文件的指针,使得多个文件名可以引用相同的数据块
cp -p 复制时保留源文件的权限、所有者和时间戳等属性信息
cp -r 复制目录时递归复制其所有子目录和文件
cp -s 用于创建符号链接(软连接),类似Windows快捷方式,是一个包含链接路径的特殊类型文件
cp -u 仅当源文件比目标文件新,或者目标文件不存在时,才进行复制
cp -v 显示执行过程详细信息

实例

(1)复制源文件到指定目录,并定义新文件的名称

1
cp file1 dir2/new_file

image-20240315004421360

(2)复制指定的源目录,并定义新目录的名称,显示执行过程详细信息

1
cp -rv dir3 dir5

image-20240315003505733

(3)复制指定文件时保留原始属性信息,并强制覆盖已有目录

1
cp -af article.md dir4

image-20240315010344208

注意

可以将一个文件通过复制来覆盖一个已有文件或者复制添加到一个目录中,但无法将一个目录通过复制来覆盖一个已有目录,如果使用cp -r 目录 已有目录命令,会把目录复制添加到已有目录中

6. mv命令

mv命令是英文move的缩写,用于移动文件或目录,与cp复制命令不同,mv命令是剪切操作,只有文件位置发生了变化,而文件总个数并没有增加

语法格式

1
mv [参数] 源文件或目录 目标文件或目录

常用参数

1
2
3
4
5
mv -f    若目标文件已存在,则会直接覆盖,不会提示用户确认
mv -i 若目标文件已存在,对每个将要覆盖的目标文件都会提示用户确认
mv -n 不覆盖已存在的目标文件
mv -u 仅当源文件比目标文件新,或者目标文件不存在时,才进行复制
mv -v 显示执行过程详细信息

实例

(1)移动源文件到指定目录,并定义新文件的名称

1
mv file2 dir1/new_file

image-20240315015109752

(2)重命名当前目录下的文件或目录的名称

1
mv file2 file3

image-20240315021423039

注意

  • mv命令会覆盖文件,为避免误删文件,可以使用-i参数
  • 如果目标文件是一个目录,源文件会被移到此目录下,且文件名不变。如果目标文件不是目录,源文件名会变为目标文件名,并覆盖已存在的同名文件

7. touch命令

touch命令用于创建文件与修改文件或目录的时间属性,若文件存在则修改文件的访问时间和修改时间为当前时间,若文件不存在则创建一个新的空文件

语法格式

1
touch [参数] 文件

常用参数

1
2
3
4
5
touch -a    只修改文件的访问时间
touch -m 只修改文件的修改时间
touch -c 如果文件不存在,不会创建新文件
touch -d 使用字符串(YYYY-MM-DD hh:mm:ss)设定时间与日期,而不是使用当前时间
touch -t 使用时间戳(YYYYMMDDhhmmss)设定时间与日期,而不是使用当前时间

实例

(1)创建出一个指定名称的空文件

1
touch file4

image-20240315222535144

(2)修改指定文件的修改时间

1
touch -md "2024-03-04 05:06:07" file1

image-20240315223428148

(3)使用通配符批量修改多个文件的访问时间,并确保不创建不存在的文件

1
touch -ad "2024-03-04 05:06:07" file*

image-20240315230629852

注意

  • 当使用-d-t参数时,确保提供的时间格式正确
  • 如果提供的文件名包含特殊字符,可能需要用引号包围起来

8. rm命令

rm命令是英文remove的缩写,用于删除文件或目录,这是一个危险的命令,如rm -rf /*会清空系统所有文件且无法恢复

语法格式

1
rm [参数] 文件或目录

常用参数

1
2
3
4
5
rm -d    仅删除无子文件的空目录
rm -f 强制删除文件,不会提示用户确认
rm -i 在删除每个文件之前都会询问用户是否确定
rm -r 递归删除目录及其全部子文件
rm -v 显示执行过程详细信息

实例

(1)强制删除指定目录及其内的全部子文件

1
rm -rf dir1

image-20240317225703255

(2)删除当前目录下的所有文件及目录,并且每个文件删除前询问用户是否确认

1
rm -ri *

image-20240317230457708

(3)删除系统的所有文件(不要尝试!!!)

1
rm -rf /*

注意

  • 谨慎使用rm命令,一般情况下删除的文件或目录无法恢复

9. ln命令

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

语法格式

1
ln [参数] 源文件或目录 目标文件或目录

常用参数

1
2
3
4
5
6
7
ln -d    允许超级用户尝试创建指向目录的硬链接
ln -f 若目标文件已存在,则会直接覆盖,不会提示用户确认
ln -i 若目标文件已存在,对每个将要覆盖的目标文件都会提示用户确认
ln -r 根据相对位置创建软链接而非绝对路径
ln -s 创建软链接
ln -t 设置链接文件的存放目录
ln -v 显示执行过程详细信息

实例

(1)创建软链接

1
ln -s file1 file2

image-20240317170238335

(2)创建硬链接,当目标文件存在时询问是否覆盖

1
ln -i file1 file2

image-20240317170756446

注意

  • 目录只能创建软链接
  • 目录创建链接必须用绝对路径,使用相对路径创建会提示:符号连接的层数过多

10. cat命令

cat命令是英文concatenate的缩写,用于在终端设备上打印出文件内容,适合查看内容较少的纯文本文件,对于内容较多的文件查看后会在屏幕上快速滚屏看不清所显示的具体内容

语法格式

1
cat [参数] 文件

常用参数

1
2
3
cat -n    由1开始对所有输出的行数编号
cat -b 和-n相似,但对空白行不编号
cat -s 遇到有连续两行以上的空白行,就换为一行的空白行

实例

(1)查看指定文件的内容并显示行号

1
cat -n file1

image-20240320163041761

(2)把文件A的非空白行内容加上行号,之后将其附加到文件B中

1
cat -b file2 >> file3

image-20240320165734429

注意

  • cat命令默认会一次显示整个文件,如果文件过大可能会导致终端卡顿
  • cat命令可以用来创建新的空文件,但不能编辑文件
❌
❌