Skip to content

指令快捷键

快捷键作用
Control + a光标移动到行首
Control + e光标移动到行尾
Control + w剪切 前面一个单词
Control + u剪切 前面所有内容
Control + y复制剪切的内容

目录、文件操作

cp 复制文件、目录

cp [ 选项 ] 源文件 目标文件,默认覆盖复制文件

  • -r 递归复制目录
  • -p 保留源文件的属性
  • -d 复制目录时保留源目录的属性
  • -a 相当于 -pdr

示例

shell
# 将 /etc 目录复制到 /tmp 目录下
cp -r /etc/ /tmp/

mv 移动修改文件、目录

mv [ 选项 ] 源文件 目标文件,同级目录下改名称,不同级目录下移动文件

示例

shell
# 将 /tmp/a.txt 移动到 /tmp/test 目录下
mv /tmp/a.txt /tmp/test/

ln 创建软连接

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

  • -s 创建软连接

类似于 Windows 的快捷方式,拥有独立的 inode 号,数据只保存在源文件中,删除源文件,软连接文件失效。

文件权限都是 777,修改任意一个文件,另一个文件也会改变。

示例

shell
# 类似与将 /etc/passwd 文件在 /tmp 目录下创建一个快捷方式
ln -s /etc/passwd /tmp/passwd

目录、文件搜索

locate 搜索文件

locate [ 选项 ] 文件名,该指令可能不存在,需要安装 mlocate 软件包 yum install mlocate

只能搜索文件名,从本地数据库中检索,每天更新一次,速度快,不能搜索实时文件。数据存放在 /var/lib/mlocate 目录下,可以使用 updatedb 命令更新数据库。

也可以根据配置被搜索的内容 /etc/updatedb.conf

bash
PRUNE_BIND_MOUNTS = "yes"  # 全部生效,开启搜索限制
PRUNEFS # 忽略的文件系统
PRUNENAMES # 忽略的文件类型
PRUNEPATHS # 忽略的文件的路径

示例

shell
locate passwd

find 搜索文件

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

  • -name 根据文件名搜索
  • -iname 根据文件名搜索,忽略大小写
  • -user 按所有者进行搜索
  • -size 根据文件大小搜索

    🧩 +100M 大于 100M

    🧩 -100M 小于 100M

    🧩 100M 等于 100M

    -ofind . -size +100M -o -size -100M

    -afind . -size +100M -a -size -100M

示例

shell
find /tmp -name passwd

# -name 接受使用通配符进行文件查找
find /tmp -name '*.txt'

grep 搜索文件内容

grep [ 选项 ] 搜索内容 文件名

  • -i 忽略大小写
  • -v 排除指定内容
  • -n 显示行号

示例

shell
grep -n 'root' /etc/passwd

# 可以通过 | 管道符将上一个命令的输出作为下一个命令的输入
# 查找 /tmp 目录下 a.txt 文件中包含 test 字符串的行
find /tmp -name a.txt | grep -in test

压缩、解压缩

zip

zip [ 选项 ] target.zip 文件1 文件2... 可以是多个文件或者目录。

  • -r 递归压缩目录

示例

shell
zip -r test.zip /tmp/test

unzip [ 选项 ] target.zip

  • -d 指定解压目录

示例

shell
unzip test.zip -d /tmp/

gzip

gzip [ 选项 ] 文件 只能压缩文件。比 zip 压缩比高。

  • -d 解压缩文件,不保留压缩包
  • -r 递归压缩目录下的所有文件
  • -c 将压缩后的文件输出到标准输出 gzip -c a.txt > b.txt.gz 有点重命名的意思

示例

shell
gzip a.txt

gunzip [ 选项 ] 文件

  • -c 将解压缩后的文件输出到标准输出 gunzip -c a.txt.gz 解压缩并保留压缩包

bzip2

bzip2 [ 选项 ] 文件 只能压缩文件。gzip 的升级版。可能需要下载 yum install bzip2

  • -d 解压缩文件,不保留压缩包
  • -k 压缩为 .bz2 文件,保留源文件

示例

shell
bzip2 -k a.txt

bunzip2 [ 选项 ] 文件

  • -k 解压缩文件,保留压缩包。 bunzip2 -k a.txt.bz2

tar 打包、解包

tar 本身是打包工具,不能压缩。但是可以和 gzipbzip2 结合使用,创建压缩文件后缀为 tar.gz、tar.bz2 的压缩包。

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

  • -c 打包
  • -x 解包
  • -v 显示打包过程
  • -f 指定打包后的文件名
  • -z gz 打包时使用 gzip 压缩,解包时使用 gunzip 解压
  • -j bz2 打包时使用 bzip2 压缩,解包时使用 bunzip2 解压

示例

shell
# 使用 gzip 打包 /tmp 目录下的所有文件
tar -zcvf test.tar.gz /tmp

# 使用 bzip2 解包 /tmp 目录下的所有文件
tar -jxvf test.tar.bz2

查看文件

cat 查看文件

cat [ 选项 ] 文件名

  • -n 显示行号
  • -b 显示行号,空行不显示
  • -s 压缩连续的空行

示例

shell
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 相同

示例

shell
# 查看进程并用 less 分页查看
ps -ef | less

head 查看文件开头内容

head [ 选项 ] 文件名

  • -n 显示的行数

示例

shell
# 显示 /etc/passwd 文件的前 10 行
head -n 10 /etc/passwd

tail 查看文件结尾内容

tail [ 选项 ] 文件名

  • -n 显示文件的尾部 n 行内容
  • -f 动态显示文件末尾内容

vi/vim 编辑器

alt text

vim 文件名

三种模式

alt text

命令模式

打开文件后默认进入命令模式,按照 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 显示指定类型文件系统的磁盘分区
  • -H1000 进制显示
  • -h1024 进制显示
  • -x 不显示指定文件类型的磁盘分区

示例

shell
# 以 1024 进制显示 /dev/shm 分区信息
df -ht tmpfs

du 统计磁盘上文件大小

du [ 选项 ] [ 文件 ]

  • -b 以 byte 显示统计文件
  • -k 以 kb 显示统计文件
  • -m 以 mb 显示统计文件
  • -h1024 进制显示
  • -H1000 进制显示
  • -s 只显示总和

示例

shell
# 以 1024 进制显示 /tmp 目录下所有文件大小
du -h /tmp

# 以 1024 进制显示 /tmp 目录下所有文件大小,只显示总和
du -s /tmp

fdisk 管理磁盘分区

fdisk [ 选项 ] 设备

  • -l 列出所有分区
  • -u-l 搭配,显示分区数目

示例

shell
fdisk -lu

fdisk /dev/sdb 进入分区管理界面,输入 m 查看帮助信息。

alt text