Hello~大家好!我是今越,本文内容来源于平时的学习笔记,希望对大家有所帮助。鉴于个人水平有限,文中难免会有不足之处,欢迎留言评论。需要转载的朋友,请注明出处。感谢点赞和收藏。一起加油!:)
往期文章回顾
Linux 操作系统 01 - 目录篇
一、基本命令
1.1 cp
功能描述:拷贝文件到指定目录
cp [选项] source dest
选项
-a
等价于-pdr
,通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容
-p
除复制文件的内容外,还把修改时间和访问权限也复制到新文件中
-d
复制时保留链接,这里所说的链接相当于 Windows 系统中的快捷方式
-r
递归复制,如果给出的源文件是一个目录文件,将复制该目录下所有的子目录和文件
-f
覆盖已经存在的目标文件而不给出提示
-i
与-f
选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖
-l
不复制文件,只是生成链接文件
-u
当源文件比目标文件新或者目标文件不存在时,才执行复制操作
1.2 rm
功能描述:删除文件或目录
rm [选项] 文件或目录
选项
-r
递归删除
-f
强制删除不提示
-i
删除前逐一询问确认
注意
1)文件一旦通过 rm 命令删除,则无法恢复,所以必须格外小心地使用该命令;
案例
1)删除当前目录下的所有文件及目录: rm -r *
1.3 mv
功能描述:重命名文件或移动文件
mv [选项] source dest
mv [选项] source directory
选项
-f
如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件
-i
如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件
-u
当源文件比目标文件新或者目标文件不存在时,才执行移动操作
1.4 touch
功能描述:创建文件
touch 文件名
1.5 ln
功能描述:生成链接文件
ln [选项] 源文件 链接文件
选项
-s
创建软链接
说明
1)使用 pwd 命令查看当前目录,显示的是软链接所在的目录;
2)使用 ls 命令查看目录,显示的是软链接所指向目录的内容;
硬链接特征
1)拥有相同的 i 节点和存储 block 块,可以看做是同一个文件;
2)可通过 i 节点识别;
3)不能跨分区;
4)不能针对目录使用;
软链接特征
1)软链接也称为符号链接,类似于 Windows 里的快捷方式,主要存放了链接其他文件的路径;
2)软链接拥有自己的 i 节点和 block 块,但数据块中只保存源文件的文件名和节点号,并没有实际的文件数据;
3)lrwxrwxrwx l 软链接,软链接的文件权限都为 rwxrwxrwx;
4)修改任意文件,另一个都改变;
5)删除源文件,软链接不能使用;
6)不同于硬链接的创建,软链接创建时源文件要使用绝对路径;
案例
从结果可以发现,原文件 file1 与硬链接文件 file2 的 inode 节点相同,与软链接文件 file3 的 inode 节点不同。
从结果可以发现,当删除原文件 file1 后,硬链接文件 file2 不受影响,软链接文件失效!
1.6 echo
功能描述:输出内容到控制台
echo [选项] [输出内容]
选项
-e
支持反斜线控制的字符转换,如下表
控制字符 | 作用 |
---|---|
\a | 输出警告音 |
\b | 退格键,即向左删除键 |
\n | 换行符 |
\r | 回车键 |
\t | 制表符,即 TAB 键 |
\v | 垂直制表符 |
\0nnn | 按照八进制 ASCII 码表输出字符,其中 0 为数字零,nnn 是三位八进制数 |
\xhh | 按照十六进制 ASCII 码表输出字符,其中 hh 是两位十六进制数 |
说明
1)echo 支持颜色显示
文字颜色码
重置=0
黑色=30,红色=31,绿色=32,黄色=33
蓝色=34,洋红=35,青色=36,白色=37
背景颜色码
重置=0
黑色=40,红色=41,绿色=42,黄色=43
蓝色=44,洋红=45,青色=46,白色=47
文字闪烁
0 关闭所有属性
1 设置高亮度(加粗),4 下划线,5 闪烁,7 反显,8 消隐
案例
1)echo $PATH
输出环境变量
2)echo -e "hell\bo"
输出 helo
3)颜色显示,如图
1.7 > & >>
功能描述:输出重定向
>
功能描述:追加
>>
说明
1)标准输出的文件描述符是 1,标准错误输出的文件描述符是 2;
2)将一条命令执行结果(标准输出,或者错误输出,本来都要打印到屏幕上面的)重定向其它输出设备(文件,打开文件操作符,或打印机等等);
案例
1)ls -l > 文件
列表的内容写入文件中,覆盖写
2)ls -al >> 文件
列表的内容追加到文件的末尾
3)cat 文件1 > 文件2
将文件1的内容覆盖到文件2
4)echo "内容" >> 文件
追加内容
1.8 <
功能描述:输入重定向
<
说明
1)标准输入的文件描述符是 0;
2)命令默认从键盘获得的输入,改成从文件,或者其它打开文件以及设备输入;
案例
1)命令 < 文件
把文件作为命令的输入
2)把标识符之间的内容作为命令的输入
命令 << 标识符
...
标识符
3)mysql -u root -p -h test < test.sql
导入数据
1.9 history
功能描述:查看已经执行过的历史命令,也可以执行历史命令
history [选项] [历史命令保存文件]
选项
-c
清空历史命令
-w
把缓存中的历史命令写入历史命令保存文件~/.bash_history
说明
1)历史命令默认会保存 1000 条,可以在环境变量配置文件 /etc/profile
中进行修改;
2)使用上下箭头调用以前的历史命令;
3)使用 !n
重复执行第 n 条历史命令;
4)使用 !!
重复执行上一条命令;
5)使用 !字串
重复执行最后一条以该字串开头的命令;
6)在输入命令或文件时,按 TAB
键就会自动进行补全;
案例
1)history
显示所有历史命令
2)history 10
显示最近使用的10个命令
3)!5
执行历史编号为5的命令
1.10 date
功能描述:显示当前日期时间
date [选项] [参数]
选项 & 参数
-s
根据字符串设置日期时间
+%Y
显示当前年份
+%m
显示当前月份
+%d
显示当前是哪一天
"+%Y-%m-%d %H:%M:%S"
显示年月日时分秒
+%T
显示当前时间
说明
1)具体使用规则可以通过 man date
命令来查看;
案例
1)date -s "2021-05-25 12:01:01"
设置系统当前时间为 2021-05-25 12:01:01
1.11 cal
功能描述:显示本月日历
cal [选项] [月份] [年份]
选项
-m
显示星期一作为一周的第一天
-j
显示今天是一年的第几天
-y
显示当前年份的日历
说明
1)具体使用规则可以通过 man cal
命令来查看;
1.12 bc
功能描述:一个简单好用的计算器
bc
说明
1)运算符号:+
加 -
减 *
乘 /
除 %
取余 ^
指数;
2)默认仅输出整数,如果要输出全部小数,必须执行 scale=number
,number 指的是小数点后的位数;
2)输入 quit
退出 bc 计算器;
案例
1.13 man
功能描述:获得命令的帮助信息
man [选项] 命令名
选项
-f
查看命令拥有运行级别的帮助信息,等同于使用whatis
命令名
-k
查看所有相关的命令,等同与使用apropos
命令名
案例
1.14 help
功能描述:获得 Shell 内置命令的帮助信息
help Shell内部命令名
说明
1)确定是否是 Shell 内部命令,例如 whereis cd
;
2)内部命令是 Shell 自带的命令,外部命令是后来装入 Linux 系统的;
功能描述:获取命令选项的帮助信息
命令名 --help
案例
1.15 info
功能描述:获取命令的详细帮助信息
info 命令名
说明
1)Enter
进入子帮助页面(带有*号标记);
2)u
进入上层页面;
3)n
进入下一个帮助小节;
4)p
进入上一个帮助小节;
5)q
退出;
1.16 alias
功能描述:命令别名
# 查看命令别名
alias [别名]
# 设置命令别名,但只是暂时生效
alias 别名 = ‘原命令’
# 设置命令别名,永久生效,写入环境变量配置文件
vi ~/.bashrc
# 删除命令别名
unalias 别名
说明
1)使用 source .bashrc
可以让配置文件立即生效,不需要重启系统;
1.17 wc
功能描述:输入重定向
wc [选项] [文件名]
选项
-c
统计字节数
-w
统计单词数
-l
统计行数
二、查看文件
Linux系统中使用以下命令来查看文件的内容:
1)cat : 从第一行开始显示文件内容,用来读文章、配置文件都使用该命令;
2)tac : 从最后一行开始显示文件内容,可以看出 tac 是 cat 的倒着写;
3)nl : 显示的时候,顺道输出行号!看代码时,希望显示行号;
4)more : 一页一页的显示文件内容;
5)less : 与 more 类似,但是比 more 更好的是,它可以往前翻页;
6)head : 只看文件头几行,通过 -n 参数来控制显示几行;
7)tail : 只看文件尾几行,通过 -n 参数来控制显示几行;
2.1 cat
功能描述:从第一行开始显示文件内容
cat [选项] 文件名
选项
-A
等价于-vET
,可列出一些特殊字符而不是空白而已
-b
列出行号,仅针对非空白行做行号显示,空白行不标行号
-E
将结尾的断行字节$
显示出来
-n
列出行号,连同空白行也会有行号,与-b
的选项不同
-T
将TAB
按键以^I
显示出来
-v
列出一些看不出来的特殊字符
说明
1)cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道符命令 | more
;
案例
1)查看网络配置目录下的文件
切换到指定目录 cd /etc/sysconfig/network-scripts
2.2 tac
功能描述:从最后一行开始显示文件内容
tac 文件名
案例
2.3 nl
功能描述:显示文件内容,并输出行号
nl [选项] [参数] 文件名
选项 & 参数
-b
指定行号指定的方式,主要有两种:
-b a
表示不论是否为空行,也同样列出行号(类似cat -n
)
-b t
如果有空行,空的那一行不要列出行号(默认值)
-n
列出行号表示的方法,主要有三种:
-n ln
行号在荧幕的最左方显示,且不加 0
-n rn
行号在自己栏位的最右方显示,且不加 0
-n rz
行号在自己栏位的最右方显示,且加 0
案例
2.4 more
功能描述:一页一页的显示文件内容
more 文件名
说明
操作 | 功能说明 |
---|---|
空格键 (space) | 向下翻一页 |
回车 (Enter) | 向下翻一行 |
q | 退出 more,不再显示文件内容 |
Ctrl + F | 向下滚动一屏 |
Ctrl + B | 返回上一屏 |
= | 输出当前行的行号 |
:f | 输出文件名和当前行的行号 |
2.5 less
功能描述:与 more 类似,但是比 more 更好的是,它可以往前翻页
less 文件名
说明
操作 | 功能说明 |
---|---|
空白键 (space) | 向下翻一页 |
上下键 | 向上或向下翻一行 |
pagedown | 向下翻动一页 |
pageup | 向上翻动一页 |
/ 字符串 | 向下搜索字符串;n:向下查找;N:向上查找 |
? 字符串 | 向上搜索字符串;n:向上查找;N:向下查找 |
q | 推出 less,不再显示文件内容 |
2.6 head
功能描述:用于显示文件的开头部分内容
head [选项] [参数] 文件名
选项 & 参数
-n
+ 数字
说明
1)默认情况下,head 命令显示文件的前 10 行内容;
案例
2.7 tail
功能描述:用于显示文件的末尾部分内容
tail [选项] [参数] 文件名
选项 & 参数
-n
+ 数字
-f
实时追踪文件的所有更新内容
说明
1)默认情况下,tail 命令显示文件的尾 10 行内容;
案例
三、搜索文件
3.1 locate
功能描述:快速定位文件路径
locate 文件名
说明
1)/var/lib/mlocate/mlocate.db
locate 所搜索的后台数据库;
2)updatedb
更新后台数据库;
3)/etc/updatedb.conf
locate 搜索时遵循的规则在该配置文件中;
4)由于 locate 命令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 命令创建 locate 数据库;
3.2 find
功能描述:在系统中搜索符合条件的文件
find [搜索范围] [搜索条件] [参数]
说明
1)可以使用通配符匹配,通配符是完全匹配,Linux 系统中的通配符包括:
*
匹配任意内容
?
匹配任意一个字符
[]
匹配任意一个中括号内的字符
2)搜索条件主要有 name、iname、user、size 四种;
3)注意避免进行大范围搜索,因为会非常耗费系统资源;
4)find 搜索速度最慢,但是功能最强大;
案例
1)find / -name passwd
精确查找
2)find / -name 'pass*'
模糊查找
3)find / -name 'pass??'
pass + 两个字符
4)find / -user 'root'
查找 root 用户创建的目录及文件
5)find /root -iname passwd
不区分大小写
6)find /root -nouser
查找没有所有者的文件
7)find /var/log/ -mtime +10
查找 10 天前修改的文件
-10
10天内;10
10天当天;+10
10天前
atime
文件访问时间;ctime
改变文件属性;mtime
修改文件内容
8)find . -size 25k
查找当前目录下大小是 25kb 的文件
-25k
小于25kb;25k
等于25kb的文件;+25k
大于25kb
9)find . -inum 262422
查找当前目录下 i 节点是 262422 的文件
10)查找/etc目录下,大于20KB并且小于50KB的文件,并显示详细信息
find /etc -size +20k -a -size -50k -exec ls -lh {} \
-a
and 逻辑与 两个条件都满足
-o
or 逻辑或,两个条件满足一个即可
-exec 命令 {} \
对搜索结果执行操作
3.3 grep
功能描述:在文件中搜索符合条件的内容
grep [选项] 查找内容 文件名
选项
-i
忽略字母大小写
-v
排除指定字符串
-n
显示匹配行及行号
说明
1)grep 是在文件中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行包含匹配,与模糊匹配相近;
2)find 是在系统中搜索符合条件的文件名,如果需要匹配,使用通配符进行完全匹配;
3)配合管道符 |
,表示将前一个命令的处理结果输出传递给后面的命令处理;
案例
1)在 hello.txt 文件中,查找 “yes” 所在行,并且显示行号
写法 1:cat /root/hello.txt | grep -n "yes"
写法 2:grep -n "yes" /root/hello.txt
3.4 whatis
功能描述:查询命令执行什么功能
whatis 命令名
说明
1)等同于使用 man -f
命令名;
案例
3.5 whereis
功能描述:搜索命令所在路径及帮助文档所在位置
whereis [选项] 命令名
选项
-b
只查找可执行文件
-m
只查找帮助文件
3.6 which
功能描述:搜索命令所在路径及别名
which 命令名
3.7 apropos
功能描述:查看所有相关的命令
apropos 命令名
说明
1)等同于使用 man -k
命令名;
案例
四、压缩与解压缩
常见压缩格式:.zip .gz .bz2 .tar.gz .tar.bz2
4.1 .zip
功能描述:压缩文件
zip 压缩文件名 源文件
功能描述:压缩目录
zip -r 压缩文件名 源目录
功能描述:解压缩 .zip 文件
unzip [选项] 压缩文件名
选项
zip 常用选项
-r
递归压缩,即压缩目录
unzip 常用选项
-d<目录>
指定解压后文件的存放目录
案例
1)zip -r myroot.zip /root/
将 /root 下的所有文件/文件夹压缩成 myroot.zip
2)mkdir /opt/tmp unzip -d /opt/tmp /root/myroot.zip
将 myroot.zip 解压到 /opt/tmp 目录下
4.2 .gz
功能描述:压缩为 .gz 格式,不保留源文件
gzip 源文件
功能描述:压缩为 .gz 格式,保留源文件
gzip -c 源文件 > 压缩文件名
功能描述:压缩目录下所有的子文件,但是不能压缩目录
gzip -r 源目录
功能描述:解压缩文件
gzip -d 压缩文件名
gunzip [-r] 压缩文件名
4.3 .bz2
功能描述:压缩为 .bz2 格式,不保留源文件
bzip2 源文件
功能描述:压缩为 .bz2 格式,保留源文件
bzip2 -k 源文件
功能描述:解压缩,-k 保留压缩文件
bzip2 -d 压缩文件名
bunzip2 压缩文件名
注意
1)bzip2 命令不能压缩目录;
4.4 tar
功能描述:打包目录,压缩后的文件格式 .tar.gz
tar [-ctxzjJvf] 压缩文件名 [源文件]
选项
-c
产生 .tar 打包文件
-t
查看内容
-x
解打包解压缩
-z
使用 gzip 进行压缩或解压缩
-j
使用 bzip2 进行压缩或解压缩
-J
使用 xz 进行压缩或解压缩
-v
显示详细信息
-f
指定压缩后的文件名
说明
1)tar 命令使用时候 c\t\x 方式选一种;
2)使用 gzip、bzip2、xz 方式压缩,压缩文件后缀 gz、bz2、xz;
3)在 CentOS 中,bz2、zip 格式的压缩需要安装相应命令;
案例
1)压缩多个文件,将 /home/pig.txt 和 /home/cat.txt 压缩成 pc.tar.gz
tar -czvf pc.tar.gz /home/pig.txt /home/cat.txt
2)将 /home 的文件夹压缩成 myhome.tar.gz
tar -czvf myhome.tar.gz /home/
3)将 pc.tar.gz 解压到当前目录
tar -xzvf pc.tar.gz
4)将 myhome.tar.gz 解压到 /opt/tmp2 目录下
mkdir /opt/tmp2
tar -xzvf /home/myhome.tar.gz -C /opt/tmp2
慢慢来,保持专注,一点一点进步!
文章持续更新,感谢大家的点赞、收藏和评论,我是今越,我们下期再见:)