指令快捷键
快捷键 | 作用 |
---|---|
Control + a | 光标移动到行首 |
Control + e | 光标移动到行尾 |
Control + w | 剪切 前面一个单词 |
Control + u | 剪切 前面所有内容 |
Control + y | 复制剪切的内容 |
目录、文件操作
cp 复制文件、目录
cp [ 选项 ] 源文件 目标文件
,默认覆盖复制文件
-r
递归复制目录-p
保留源文件的属性-d
复制目录时保留源目录的属性-a
相当于-pdr
示例
# 将 /etc 目录复制到 /tmp 目录下
cp -r /etc/ /tmp/
mv 移动修改文件、目录
mv [ 选项 ] 源文件 目标文件
,同级目录下改名称,不同级目录下移动文件
示例
# 将 /tmp/a.txt 移动到 /tmp/test 目录下
mv /tmp/a.txt /tmp/test/
ln 创建软连接
ln [ 选项 ] 源文件 目标文件
-s
创建软连接
类似于 Windows 的快捷方式,拥有独立的 inode
号,数据只保存在源文件中,删除源文件,软连接文件失效。
文件权限都是 777
,修改任意一个文件,另一个文件也会改变。
示例
# 类似与将 /etc/passwd 文件在 /tmp 目录下创建一个快捷方式
ln -s /etc/passwd /tmp/passwd
目录、文件搜索
locate 搜索文件
locate [ 选项 ] 文件名
,该指令可能不存在,需要安装 mlocate
软件包 yum install mlocate
只能搜索文件名,从本地数据库中检索,每天更新一次,速度快,不能搜索实时文件。数据存放在 /var/lib/mlocate
目录下,可以使用 updatedb
命令更新数据库。
也可以根据配置被搜索的内容 /etc/updatedb.conf
PRUNE_BIND_MOUNTS = "yes" # 全部生效,开启搜索限制
PRUNEFS # 忽略的文件系统
PRUNENAMES # 忽略的文件类型
PRUNEPATHS # 忽略的文件的路径
示例
locate passwd
find 搜索文件
find 搜索路径 [ 选项 ] 搜索内容
-name
根据文件名搜索-iname
根据文件名搜索,忽略大小写-user
按所有者进行搜索
-size
根据文件大小搜索🧩
+100M
大于 100M🧩
-100M
小于 100M🧩
100M
等于 100M-o
或find . -size +100M -o -size -100M
-a
与find . -size +100M -a -size -100M
示例
find /tmp -name passwd
# -name 接受使用通配符进行文件查找
find /tmp -name '*.txt'
grep 搜索文件内容
grep [ 选项 ] 搜索内容 文件名
-i
忽略大小写-v
排除指定内容-n
显示行号
示例
grep -n 'root' /etc/passwd
# 可以通过 | 管道符将上一个命令的输出作为下一个命令的输入
# 查找 /tmp 目录下 a.txt 文件中包含 test 字符串的行
find /tmp -name a.txt | grep -in test
压缩、解压缩
zip
zip [ 选项 ] target.zip 文件1 文件2...
可以是多个文件或者目录。
-r
递归压缩目录
示例
zip -r test.zip /tmp/test
unzip [ 选项 ] target.zip
-d
指定解压目录
示例
unzip test.zip -d /tmp/
gzip
gzip [ 选项 ] 文件
只能压缩文件。比 zip
压缩比高。
-d
解压缩文件,不保留压缩包-r
递归压缩目录下的所有文件-c
将压缩后的文件输出到标准输出gzip -c a.txt > b.txt.gz
有点重命名的意思
示例
gzip a.txt
gunzip [ 选项 ] 文件
-c
将解压缩后的文件输出到标准输出gunzip -c a.txt.gz
解压缩并保留压缩包
bzip2
bzip2 [ 选项 ] 文件
只能压缩文件。gzip
的升级版。可能需要下载 yum install bzip2
-d
解压缩文件,不保留压缩包-k
压缩为.bz2
文件,保留源文件
示例
bzip2 -k a.txt
bunzip2 [ 选项 ] 文件
-k
解压缩文件,保留压缩包。bunzip2 -k a.txt.bz2
tar 打包、解包
tar
本身是打包工具,不能压缩。但是可以和 gzip
和 bzip2
结合使用,创建压缩文件后缀为 tar.gz、tar.bz2
的压缩包。
tar [ 选项 ] 打包后的文件名 文件或者目录
-c
打包-x
解包-v
显示打包过程-f
指定打包后的文件名-z
gz
打包时使用gzip
压缩,解包时使用gunzip
解压-j
bz2
打包时使用bzip2
压缩,解包时使用bunzip2
解压
示例
# 使用 gzip 打包 /tmp 目录下的所有文件
tar -zcvf test.tar.gz /tmp
# 使用 bzip2 解包 /tmp 目录下的所有文件
tar -jxvf test.tar.bz2
查看文件
cat 查看文件
cat [ 选项 ] 文件名
-n
显示行号-b
显示行号,空行不显示-s
压缩连续的空行
示例
cat -n /etc/passwd
# 将 cat 的输出结果保存到文件的末尾
cat /etc/passwd >> a.txt
# 将 cat 的输出结果覆盖到文件
cat /etc/passwd > a.txt
# 将 cat 的输出当做下一个命令的输入
# 查找 /etc/passwd 文件中包含 root 字符串的行
cat /etc/passwd | grep root
more 分页查看文件
more [ 选项 ] 文件名
-[num]
指定每页显示的行数+[num]
从指定行开始显示
常用翻页快捷键
enter
向下翻一行Ctrl + f
或者space
向下翻一屏Ctrl + b
向上翻一屏q
退出:f
显示文件名和当前行号
less 分页查看文件
less [ 选项 ] 文件名
与 more
类似,支持行号、搜索关键词高亮等操作。
-f
强制打开特殊文件,例如二进制和目录/字符串
向下搜索字符串?字符串
向上搜索字符串
翻页与退出快捷键与 more
相同
示例
# 查看进程并用 less 分页查看
ps -ef | less
head 查看文件开头内容
head [ 选项 ] 文件名
-n
显示的行数
示例
# 显示 /etc/passwd 文件的前 10 行
head -n 10 /etc/passwd
tail 查看文件结尾内容
tail [ 选项 ] 文件名
-n
显示文件的尾部 n 行内容-f
动态显示文件末尾内容
vi/vim 编辑器
vim 文件名
三种模式
命令模式
打开文件后默认进入命令模式,按照 i o a
进入编辑模式,按 ESC
键再次进入命令模式。
命令模式下,按 :
进入底线命令模式。
Control + f
向下翻页Control + b
向上翻页0
移动到行首$
移动到行尾n + enter
向下移动 n 行n + space
向右移动 n 个字符gg
移动到文档第一行G
移动到文档最后一行dd
删除光标所在行ndd
删除光标所在行向下 n 行yy
复制光标所在行nyy
复制光标所在行向下 n 行p/P
p 粘贴到光标所在行下方,P 粘贴到光标所在行上方u
撤销上一次操作
底线命令模式
在命令模式下输入 :
进入底线命令模式。
w
保存q
退出q!
强制退出,若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案wq
保存并退出set nu
显示行号set nonu
取消行号ESC
退出编辑模式,进入命令模式%s/old/new
替换光标所在行的第一个字符串,%s/old/new/g
替换行中所有字符串
命令和底线命令模式都能使用
/字符串
向下搜索字符串?字符串
向上搜索字符串n
下一个N
上一个
编辑模式
在命令模式下输入以下内容进行编辑模式。
i
在光标所在字符前插入a
在光标所在字符后插入o
在光标所在行下插入新行ESC
退出编辑模式,进入命令模式
磁盘管理
df 查看磁盘使用情况
df [ 选项 ] [ 文件 ]
-l
进现实本地磁盘 (默认)-a
显示所有文件系统信息-T
显示磁盘分区类型-t
显示指定类型文件系统的磁盘分区-H
以1000
进制显示-h
以1024
进制显示-x
不显示指定文件类型的磁盘分区
示例
# 以 1024 进制显示 /dev/shm 分区信息
df -ht tmpfs
du 统计磁盘上文件大小
du [ 选项 ] [ 文件 ]
-b
以 byte 显示统计文件-k
以 kb 显示统计文件-m
以 mb 显示统计文件-h
以1024
进制显示-H
以1000
进制显示-s
只显示总和
示例
# 以 1024 进制显示 /tmp 目录下所有文件大小
du -h /tmp
# 以 1024 进制显示 /tmp 目录下所有文件大小,只显示总和
du -s /tmp
fdisk 管理磁盘分区
fdisk [ 选项 ] 设备
-l
列出所有分区-u
与-l
搭配,显示分区数目
示例
fdisk -lu
fdisk /dev/sdb
进入分区管理界面,输入 m
查看帮助信息。