Linux操作系统从入门到精通!第二天(命令行)

一、Linux的命令行

1.Linux介绍:刚出世的时候,没有什么节目,所有的操作都是靠命令行来执行,后来Linux发展迅速,也出现了图形界面,但是由于命令行的执行速度比图形界面块,所以也得到了广泛的应用,可以说不会命令行就不会Linux。

2.Linux的命令格式

command [-options] [param1] [,param2]...

command:Linux命令的名称,一般就是相应功能的单词或单词的缩写

-options\]:选项,它和命令之间有一个空格,可以用于对命令进行控制,\[\]表示可以省略 \[param1\] \[,param2\]...:传递给命令的参数,可以有零个或多个 **3.查看帮助文件:command --help** 例如: ![](https://i-blog.csdnimg.cn/direct/f34813702e164cde930c0b7999a5cca4.png) **4.man(manual,手册,有问题找男人)命令** Linux的man命令提供了一个手册,包含了绝大部分的命令、函数的使用说明,分了几个章节(section): 1. Standard commands:标准命令 2. System calls:系统调用 3. Library function:库函数 4. Special devices:设备文件说明 5. File formats:文件格式 6. Games and toys:游戏和娱乐 7. Miscellaneous:杂项 8. Administrative Commands:管理员命令,例如ifconfig man的使用:man \[section\] 命令名 运行man命令后可以执行的操作: b:回滚一屏 f:前滚一屏 q:退出man命令 h:列出所有功能键 /字符串:查找字符串 同时可以使用上下键来移动内容 ![](https://i-blog.csdnimg.cn/direct/e14525ec7c824eb383b75923e2f236e4.png) ![](https://i-blog.csdnimg.cn/direct/aa112e25433d4cb29bf72448296c1430.png) **5.命令的自动补全** 在敲命令的时候,可以只敲前面几个字母,然后按"Tab"键进行命令的自动补全 例如:敲一个m,然后按"Tab"键: ![](https://i-blog.csdnimg.cn/direct/ff495fc9f7e344e09745437e45a2439f.png) **6.历史命令** 当系统执行了一些命令之后,可以按上下键翻看以前执行过的命令。 在家目录中(\~),存在一个隐藏文件(.bash_history),里面记录了之前执行过的bash命令: ![](https://i-blog.csdnimg.cn/direct/fe903196a99f4fdfb16201767dad2963.png) **7.文件管理相关命令** **(1)查看文件信息:ls,list的简称,类似于Windows的dir命令** 语法: ls \[选项\] \[文件名

说明:[]内容可以省略,如果省略文件名,表示查看当前目录下的所有文件

选项:

-a:显示当前目录下的所有文件和子目录,包含隐藏文件(Linux中的隐藏文件都是以"."开头的,例如".bash_history")

-l:以列表的形式显示文件的详细信息

-h:搭配"-l"使用,以更人性化的方式显示文件大小

示例:

其中"ls -l"可以简写成"ll":

"ls -l"显示文件大小的时候,是以字节为单位,不方便查看,可以结合"-h"选项以更人性化的方式显示文件大小:

(2)输出重定向:>

默认情况下命令的执行结果是输出到控制台的,输出重定向允许将命令的执行结果输出到一个文件中。注意:输出重定向到相同文件时,后面的内容会覆盖之前的内容,如果不想覆盖,只是想追加,可以使用追加重定向:>>

示例:

追加:

(3)分屏显示:more

如果信息太多,一屏显示不完,可以通过more命令分屏显示

说明:

空格:显示下一页

q:退出

还可以使用上下键来移动内容,就像使用vi编辑器一样。

(4)less:分屏显示文件内容

less用于分屏查看文件内容,功能和more命令类似,但是比more命令更强大,支持各种显示终端。less命令在显示文件内容时,并不是一次将整个文件加载后显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。

1)语法:

less 要查看的文件

2)操作说明:

(5)head:显示文件头部内容

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

1)语法:

head 文件(查看文件头10行内容)

head -n 5 文件(查看文件头5行内容,数字5可以任意)

2)选项

(6)tail:输出文件尾部的内容

tail用于输出文件尾部的内容,默认情况下显示文件后10行内容。

1)语法:

tail 文件(查看文件尾10行内容)

tail -n 5 文件(查看文件尾5行内容,5可以是任意数字)

tail -f 文件(实时追踪该文档的所有更新)

2)选项

(7)管道:|

类似于管子,一头塞进去,另一头取出来。

一个命令的输出可以通过管道作为另一个命令的输入

(8)清屏:clear
(9)切换工作目录:cd,change directory的简称

cd命令后面既可以跟绝对路径也可以跟相对路径,例如:

cd ~:进入家目录

cd .:进入当前目录

cd ..:进入上一级目录

cd -:进入上一个可以进入的目录

注意:Linux中的文件和目录严格区分大小写的,即使两个文件名相同,但是大小不一致,也是两个不同的文件(Windows是不区分大小写)

示例:

(10)显示当前路径:pwd

(11)创建目录:mkdir,make directory的简称

mkdir可以创建一个新的目录,通过-p选项可以递归的创建目录及其子目录,注意:目录的创建者必须具有对当前目录的写权限(w)

示例:

(12)删除目录:rmdir,remove directory的简称

注意:使用rmdir删除目录的时候,要求目录必须是空的目录,否则不能删除

(13)删除文件:rm,remove的简称

使用rm删除文件或目录的时候,需要注意,rm删除的文件不能够恢复,可以使用"-i"选项逐个确认之后再删除。

选项:

-i:interface的简称,以交互式的方式删除(询问),默认的情况。

-f:force的简称,强制删除,不提示。

-r:递归删除目录及其子目录。

示例:

练习:在家目录中创建一个demo目录,然后将其删除,然后创建test1/test2/test3目录,在test3目录中创建1.txt文件,然后删除整个test1目录。

(14)链接文件

Linux中的链接文件就类似于Windows中的快捷方式

分为软链接和硬链接:

软链接文件:不占用磁盘空间,源文件删除则链接文件就无用了

硬链接文件:占用磁盘空间,只能链接普通文件,不能链接目录

语法:ln,link的简称

软链接:ln -s 源文件 链接文件

硬链接:ln 源文件 链接文件

示例:

(15)查看或合并文件内容:cat

还可以使用cat来重定向:

合并:

合并之后输出到一个文件:

(16)正则表达式

1)什么是正则表达式:正则表达式使用某种模式(pattern)去匹配(match)一类受支持的公式

2)通常使用正则表达式进行查找替换等操作。

3)适当的使用正则表达式可以提高工作效率。

4)支持正则表达式的文本处理工具有:

a.grep:按模式匹配文本

b.sed:一个流编辑器

c.vi:一个屏幕编辑器

5)正则表达式的构成

a.正则表达式由一些普通字符和元字符(Meta Characters)组成

a)普通字符:包含大小写的字母和数字(非元字符)

b)元字符:具有特殊含义的字符

常用的元字符的表格:

非基本正则:

(17)文本搜索:grep

grep命令是Linux系统中一种强大的文本搜索工具,grep允许对文本进行模式查找,如果找到了匹配模式(正则表达式),grep打印包含模式的所有行。

语法:

grep [选项] '搜索的字符串' 文件名

说明:其中'搜索的字符串'可以包含正则表达式

选项:

-v:不包含匹配行,即取反

-n:显示匹配行的行号

-i:忽略大小写

-r:递归搜索,对指定目录及其子目录中的文件进行遍历搜索

示例1:

注意:grep命令只支持基本的正则表达式。

示例2:查找当前目录及其子目录中所有文件中包含IP地址的行,其中"-E"选项表示使用扩展的正则

(18)查找文件:find

该命令功能强大,通常用于在特定的目录下搜索文件,语法:

find 搜索路径 [选项] 搜索内容

1)按照文件名搜索

常用选项:

-name:按照文件名搜索

-iname:按照文件名搜索,不区分文件名大小写

-inum:按照 inode 号搜索

2)按照文件大小搜索

常用选项:

-size [+|-]大小:按照指定大小搜索文件

"+"的意思是搜索比指定大小还要大的文件

"-"的意思是搜索比指定大小还要小的文件

find 命令的单位:

'b':默认以块为单位,一块=512字节

'c' :字节

'w' :双字节(中文)

'k':KB单位

'M':MB单位

'G':GB单位

3)按照修改时间搜索

常用选项:

-atime [+|-]时间:按照文件访问时间搜索

-mtime [+|-]时间:按照文件数据修改时间搜索

-ctime [+|-]时间:按照文件状态修改时间搜索

4)按照权限搜索

常用选项:

-perm 权限模式:查找文件权限刚好等于"权限模式"的文件

-perm -权限模式:查找文件权限全部包含"权限模式"的文件

-perm +权限模式:查找文件权限包含"权限模式"的任意一个权限的文件

5)按照所有者和所属组搜索

常用选项:

-uid 用户ID:按照用户ID 查找所有者是指定 ID 的文件

-gid 组ID:按照用户组 ID 查找所属组是指定 ID 的文件

-user 用户名:按照用户名查找所有者是指定用户的文件

-group 组名:按照组名查找所属组是指定用户组的文件

-nouser:查找没有所有者的文件

6)按照文件类型搜索

常用选项:

-type d:查找目录

-type f:查找普通文件

-type l:查找软链接文件

7)逻辑运算符

常用选项:

-a:and 逻辑与

-o:or 逻辑或

-not:not 逻辑非

8)其他选项

① -exec 选项

find 搜索路径 [选项] 搜索内容 -exec 命令2 {} \;

这个选项的作用其实是把 find 命令的结果交给由"-exec"调用的"命令2" 来处理。"{}"就代表 find 命令的查找结果。

② -ok 选项

"-ok"选项和"-exec"选项的作用基本一致,区别在于:"-exec"的命令2 会直接处理,而不询问;"-ok"的命令2 在处理前会先询问用户是否这样处理,在得到确认命令后,才会执行。

(19)拷贝文件:cp,copy的简称

将指定的文件或目录复制到另一个文件或目录中

语法:

cp [选项] 源文件 目标文件

选项:

-a:保持源文件原有的属性

-f:删除已经存在的目标文件不提示(覆盖)

-i:交互式复制,有提示

-r:递归复制文件夹及其子文件夹

-v:显示拷贝的进度

示例:

(20)移动文件:mv,move的简称

mv命令可用于移动文件或目录,还可以重命名

语法:

mv [选项] 源文件 目的地

选项:

-f:禁用交互式提示(不提示)

-i:使用交互式提示(有提示)

-v:显示进度

示例:

(21)创建新文件:touch

语法:

touch 文件1 [文件2]...

(22)归档管理:tar

Linux系统数据经常需要备份,tar命令是最常用的备份工具,可以把一系列的文档归档到一个大的文件中(打包),也可以解开一个归档文件以恢复数据(解包)。

语法:

打包:

tar [选项] 打包后的文件名 源文件

解包:

tar [选项] 打包后的文件名 解包的目录

选项:

-c:create的简称,生成归档文件,打包

-v:显示归档的进度

-f:file的简称,指定归档文件的名称(是.tar文件),注意,这个选项只能作为最后一个选项,用于表示后面的文件的类型是.tar归档文件类型

-t:列出归档文件包含的文件

-x:relax的简称,解开归档文件,解包

示例:

(23)文件压缩和解压缩:gzip

1)tar和gzip结合可以打包并压缩以及解压缩文件

2)tar只负责打包,不负责压缩,gzip负责压缩打包后的文件,打包并压缩后的文件名如:xxx.tar.gz

语法:

gzip [选项] 被压缩的文件 生成的压缩文件

选项:

-d:解压

-r:递归压缩所有子目录

示例:

一般情况下,我们会将tar和gzip命令搭配使用来打包压缩和解压缩,语法如下:

压缩:tar -cvzf 压缩文件名.tar.gz 文件1 [文件2]...

注意:这里的f选项只能是最后一个选项,选项z表示压缩,即使用gzip压缩

解压:tar -zxvf 压缩文件名.tar.gz [-C 解压的目录]

其中-C表示解压到哪一个目录,如果省略就解压到当前目录

(24)文件压缩和解压缩:zip和unzip,对应于Windows中的.zip和.rar类型的压缩文件,注意,CentOS7默认没有安装zip和unzip,需要使用yum安装:

语法:

压缩:

zip [-r] 目标文件.zip 源文件

选项-r表示递归压缩目录及其子目录中的内容

示例:

解压:

unzip -d 解压后的目录 压缩文件

选项-d用于指定解压的目录

(25)查看命令的位置:which

(26)处理,编辑文本文件,流处理器:sed

sed命令可以依照脚本的指令来处理,编辑文本,可以对文本文件进行增删改查的操作,支持按行,按字段,按正则表达式的方式来匹配文档内容,使用方便,适合脚本编程。

语法:

sed [选项] '命令和字符串' 文件

选项:

-c:默认选项,对文本进行编辑

-f:指定sed命令后保存的文件名

-n:取消默认输出,只打印处理过的行

-i:直接修改要处理的文件

命令:

-a:append,向匹配行追加

-d:delete,对匹配行删除

-c:更改匹配的内容

-s:将匹配行的内容替换

-i:insert,在匹配行前插入内容

-p:print,打印匹配行的内容,一般和-n选项搭配使用

示例:

示例2:

删除最后一行:sed -i '$d' demo.txt

删除第一行:send -i '1d' demo.txt

删除1~2行之外的行:

示例3:替换文本:

示例4:全局替换

(27)xargs

xargs是Linux中一个非常强大的命令,用于从标准输入构建并执行命令行。它通常和其他命令(如find、grep等)结合使用,以处理大量数据或文件。xargs的核心功能是将输入数据转换为命令行参数。

1)语法:

xargs [选项] [命令]

输入:xargs从标准输入(stdin)读取数据

输出:将输入数据作为参数传递给指定的命令并执行

2)常用选项

示例1:基本用法

将输入作为参数传递给echo(回显)命令:

示例2:结合find使用

查找当前目录下的所有.txt文件并删除

示例3:限制每次执行的参数个数(-n)

每次只传递2个参数给echo

示例4:使用占位符(-I)

将输入项替换为占位符{}

示例5:交互式模式(-p)

在执行命令前提示用户确认

示例6:打印执行的命令(-t)

在执行命令前打印命令:

示例7:忽略空输入(-r)

如果输入为空,则不执行命令

示例8:指定输入分隔符(-d)

使用逗号作为分隔符:

示例9:从文件读取输入(-a)

从文件note.txt中读取输入:

示例10:批量重命名文件

将当前目录下的.txt文件重命名为.bk:

示例11:并行压缩文件

使用xargs和gzip并行压缩文件(提高执行效率):

示例12:并行压缩并显示执行的命令

相关推荐
Johny_Zhao44 分钟前
Docker + CentOS 部署 Zookeeper 集群 + Kubernetes Operator 自动化运维方案
linux·网络安全·docker·信息安全·zookeeper·kubernetes·云计算·系统运维
小毛驴8501 小时前
Linux 后台启动java jar 程序 nohup java -jar
java·linux·jar
一心0922 小时前
ubuntu 20.04.6 sudo 源码包在线升级到1.9.17p1
运维·ubuntu·sudo·漏洞升级
好好学习啊天天向上2 小时前
世上最全:ubuntu 上及天河超算上源码编译llvm遇到的坑,cmake,ninja完整过程
linux·运维·ubuntu·自动性能优化
你想考研啊3 小时前
三、jenkins使用tomcat部署项目
运维·tomcat·jenkins
tan180°3 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
代码老y3 小时前
Docker:容器化技术的基石与实践指南
运维·docker·容器
wuk9984 小时前
基于MATLAB编制的锂离子电池伪二维模型
linux·windows·github
你想考研啊6 小时前
四、jenkins自动构建和设置邮箱
运维·jenkins