Linux 常用命令大全:2025 新手必学的 70 条命令!(全篇)

第一部分:基础命令,找到方向感

1. pwd:告诉我,我在哪儿?

“迷路了?这个命令就是你的导航。”

用法:pwd

  • 全称 Print Working Directory,用来显示你当前所在的工作目录,也就是告诉你“我在哪儿”。

比如,你在终端输入:

pwd

输出可能是:/home/user/Documents

意味着你现在的工作目录是 /home/user/Documents。简单来说,这个命令相当于给你当前的位置标了个“导航点”。

2. ls:看看这地方都有什么

“逛文件夹时的必备工具。”

用法:lsls [选项] [目录名]

  • “List”的缩写,用于列出目录中的文件和子目录。简单来说,这个命令就是告诉你“当前目录里都有什么东西”。

  • 加上 -l 参数,还能看到更详细的信息,比如文件大小和权限。

试试这个:

ls -l

还有ls -al,这会连隐藏文件(以.开头的文件)也一并显示。

3. cd:切换目录

“想去别的文件夹?用它轻松切换!”

用法:cd 目录名

  • cd全称 “Change Directory”,顾名思义,就是切换目录。

进入指定目录,如果不写目录,则回到用户的主目录(家目录)。

cd ~      # 进入家目录(用户主目录)
cd ~/Desktop  # 跳到桌面目录

cd ..    # 返回上一级目录
cd ~     # 回到家目录
cd -     # - 是上一次访问的目录,像“返回”按钮一样。

4. clear:“屏幕太乱了,清清场。”

用法:clear

  • 一键清空终端屏幕,重新开始。

第二部分:文件操作,动手搞事情

5. touch:新建一个文件。

“想新建一个空文件?就用 touch !”

用法:touch 文件名

  • “touch” 的作用是新建一个空文件,比如:

touch newfile.txt

6. mkdir:创建目录

“想建个新文件夹?用 mkdir 搞定!”

用法:mkdir 文件夹名

  • “Make Directory” 的缩写,用于创建文件夹( 新的目录 )。比如:

# 1. 创建一个新目录
mkdir my_folder

# 2. 同时创建多级目录
mkdir -p parent_folder/child_folder   # -p:递归创建,不存在的父目录会一并创建

7. cp:复制粘贴小能手

“想要两个一模一样的?复制一个!”

用法:cp 源文件 目标位置

  • “Copy” 的缩写,用于复制文件或目录,帮你轻松搞定备份和分发任务。

比如,复制一个文件:

cp file.txt backup.txt

这会把 file.txt 复制成 backup.txt

复制整个文件夹?加个 -r 参数就行:

cp -r my_folder my_folder_copy

小贴士

  • cp 不会动原文件,原地保存,安心又稳妥!

  • 如果目标文件已经存在,会直接覆盖,所以用前要小心。

8. mv:搬家+改名双能手

“这个文件名不好听?改了!或者换个位置放。”

用法:mv 源文件 目标位置

  • “Move” 的缩写,用于移动文件或重命名文件。

1、重命名

mv old_name.txt new_name.txt

这会把文件从 old_name.txt 改成 new_name.txt

2、搬家

mv file.txt /home/user/Documents/

file.txt 移动到 /home/user/Documents/ 文件夹下。

3、两者一起

mv file.txt /home/user/Documents/new_name.txt

同时改名字并搬家!

小贴士

  • mv 是“剪切”操作,源文件会被移除。

  • 小心误操作!移动目标路径错误可能会导致文件不容易被找到  ,尤其是重命名时。

9. rm:删除大师,不留痕迹

“不想要了?直接扔掉!”

用法:rm 文件名rm -r 目录名

  • “Remove” 的缩写,用于删除文件或目录。
    注意:删除的东西没有回收站!没有回收站!没有回收站!(重要的事情说三遍)

1、删除文件

rm file.txt

这会直接删除 file.txt

2、删除目录:

  1. 如果目录是空的,可以用 rmdir

  2. 如果目录里有文件,用 rm -r

rm -r my_folder

加了 -r 参数,会递归删除目录及其内容。

3、强制删除:

有时候系统会提示“文件只读,无法删除”。加个 -f 参数就可以了:

rm -rf my_folder

-r 是递归删除,-f 是强制删除,配合起来是个危险的“毁灭组合”。用这个命令时,一定要看清楚路径!

小贴士:安全删除指南

  • 误删保护:建议先用 ls 看看目录内容,确认没问题再删除。

  • 慎用通配符:比如 rm -rf *,可能会把当前目录里的所有东西都删光!

第三部分:文本查看与处理

10. cat 和 tac:查看文件内容的好帮手

“文件内容想怎么看?正着看用 cat,反着看用 tac!”

cat:按顺序查看文件内容

用法:cat 文件名

  • 这个命令可以快速查看文件内容,甚至把多个文件拼起来显示:

# 创建两个测试文件
echo "这是文件1的内容" > file1.txt
echo "这是文件2的内容" > file2.txt

# 查看单个文件内容
cat file1.txt

# 拼接文件内容
cat file1.txt file2.txt > combined.txt

# 显示合并后的文件内容(-n : 加上行号)
cat -n combined.txt

tac 是反过来显示内容,最后一行先显示,有趣吧?

11. lessmore:“文件内容太多?一页一页来看!”

用法:

  • more 文件名

  • less 文件名

简单操作:

  1. more:逐页查看文件

more file.txt
  • 按空格翻页

  • q 退出

      2. less:更灵活的翻页查看

less file.txt
  • 用上下箭头滚动

  • 输入 /关键词 搜索

  • q 退出

区别:

  • more:简单只能向后翻页。

  • less:功能更强大,支持前后翻页 和搜索。

lessmore 更好用,文件一多就用它,翻页舒服又方便!

12. headtail:文件内容看“开头”和“结尾”

“文件太大?只看最重要的部分!”

用法:

  • head 文件名:看文件的前 10 行。

  • tail 文件名:看文件的最后 10 行。

默认显示前 10 行。想自定义行数?加 -n 参数。

常用操作:

  1. 指定行数:

head -n 5 file.txt   # 看前 5 行
tail -n 8 file.txt   # 看最后 8 行

      2. 实时监控文件变化:

tail -f file.txt   # 动态显示新增内容

headtail,一个看开头,一个看结尾,简单实用!

13. grep:文本搜索小能手

“从一堆文本中快速找到你想要的信息?用它效率倍增!”

用法:grep [选项] "关键词" 文件/目录

  • 文本搜索神器,支持关键词匹配、忽略大小写、行号显示等功能,适合日志分析、快速定位问题。

常用操作:

# 1. 查找文件中包含 "error" 的行
grep "error" logfile.txt

# 2. 忽略大小写匹配
grep -i "error" logfile.txt

# 3. 显示匹配行的行号
grep -n "error" logfile.txt

# 4. 递归搜索目录下所有文件
grep -R "error" /path/to/directory

# 5. 反向匹配:只显示不包含 "error" 的行
grep -v "error" logfile.txt

# 6. 搜索多个关键词(用 \| 分隔)
grep -E "error|fail" logfile.txt

# 7. 统计匹配的行数
grep -c "error" logfile.txt

# 8. 只显示匹配的文件名
grep -l "error" *.txt

# 9.递归搜索 + 忽略二进制文件 (常用)
grep -nRI "keyword" /path/to/directory

小总结:

  • 匹配方式: 默认区分大小写,-i 忽略大小写,-E 支持多关键词匹配。

  • 显示信息:-n 显示行号,用 -c 统计匹配行数,用 -l 仅列出文件名。

  • 过滤内容:-v 显示不匹配关键词的内容。

  • 递归搜索:-r 搜索目录及子目录中的所有文件。

grep 是命令行中的搜索神器,轻松应对日志分析和快速文本定位!

14. find:文件搜索小能手

“找文件、筛文件、批量操作文件,全靠它!”

用法:find [搜索路径] [条件] [操作]

  • 灵活强大的文件查找工具,支持按文件名、类型、大小、修改时间等条件精准搜索,还能直接对结果执行操作。

常用操作:

# 1. 按名称查找:查找当前目录下名为 file.txt 的文件
find . -name "file.txt"

# 2. 忽略大小写:查找文件名中包含 test 的文件
find /path/to/dir -iname "*test*"

# 3. 按类型查找:查找当前目录下所有目录
find . -type d

# 4. 按大小查找:找出大于 10MB 的文件
find . -size +10M

# 5. 按时间查找:查找最近 7 天修改过的文件
find . -mtime -7

# 6. 结合操作:查找 .log 文件并删除
find . -name "*.log" -exec rm {} \;

小总结:

  • 按文件名:-name-iname 匹配文件名(-iname 忽略大小写)。

  • 按类型:-type 筛选类型(d 目录,f 文件)。

  • 按大小:-size 精确筛选文件大小。

  • 按时间:-mtime 找最近修改的文件。

  • 结合操作:-exec 对结果执行操作,比如删除或移动文件。

find 是命令行下的文件管理利器,搜索与操作一气呵成!

15. sed:文本处理小能手(初学者可以先跳过,有需要再来看)

“批量修改文件、替换文本内容,用它效率倍增!”

用法:sed [选项] '命令' 文件

  • 强大的流式编辑器,支持查找、替换、删除、插入等操作,适用于文本处理和自动化脚本。

常用操作:

# 1. 查找并替换:将文件中所有的 "old" 替换为 "new"
sed 's/old/new/g' file.txt

# 2. 只显示替换后的结果,不修改原文件
sed 's/old/new/g' file.txt

# 3. 直接修改文件(加 -i)
sed -i 's/old/new/g' file.txt

# 4. 删除包含 "unwanted" 的行
sed '/unwanted/d' file.txt

# 5. 显示文件的特定行(如第 5 行)
sed -n '5p' file.txt

# 6. 批量插入内容:在文件每一行后添加 "END"
sed 's/$/ END/' file.txt

小总结:

  • 查找替换:s/old/new/g 替换文本内容。

  • 直接修改:-i 参数直接修改文件内容。

  • 删除行:/pattern/d 删除匹配的行。

  • 插入内容:s/$/ 内容/ 在每行末尾添加内容。

sed 是命令行下的文本处理神器,快速、强大、灵活!

16. awk:文本分析小能手(初学者可以先跳过,有需要再来看)

“从数据中提取你想要的信息,用它事半功倍!”

用法:awk '条件 { 动作 }' 文件

  • 适合处理结构化文本,如日志、CSV 文件,支持模式匹配、字段操作、条件过滤等。

常用操作:

# 1. 打印每行的第 1 列和第 3 列
awk '{print $1, $3}' file.txt

# 2. 打印包含关键字 "error" 的行
awk '/error/ {print}' file.txt

# 3. 条件过滤:打印第 3 列值大于 100 的行
awk '$3 > 100 {print}' file.txt

# 4. 在输出中添加分隔符(如逗号)
awk '{print $1 "," $2}' file.txt

# 5. 统计行数
awk 'END {print NR}' file.txt

# 6. 处理 CSV 文件:打印第 2 列
awk -F ',' '{print $2}' file.csv

# 7. 计算列总和:统计第 3 列的总和
awk '{sum += $3} END {print sum}' file.txt

小总结:

1、字段操作:$1, $2, $3 表示第 1、2、3 列。

2、条件过滤:/pattern/ 或条件语句(如 $3 > 100)。

3、自定义分隔符:-F 指定分隔符(如 -F ',' 处理 CSV 文件)。

4、内置变量:

  • NR:行号。

  • NF:字段数。

  • $0:整行内容。

awk 是文本处理的瑞士军刀,数据提取与分析的利器!

17. wc:统计文件信息

“想知道文件有多少行、多少单词?它帮你算清楚!”

用法:wc [参数] 文件名

常用参数:

  1. -l:统计行数

wc -l file.txt

显示文件的总行数。

  2.-w:统计单词数

wc -w file.txt

统计文件中有多少个单词。

wc 的几个参数简单又实用,-l 数行,-w 数单词,轻松掌握文件的基本信息!

第四部分:权限管理,安全至上

18. chmod:修改文件权限

“想让文件可读、可写、可执行?用它调整权限!”

用法:chmod [选项] 权限 文件

  • 修改文件或目录的权限,适用于设置读取、写入、执行权限。

常用操作

# 1. 将文件设为所有人可读(r),所有者可写(w),所有人可执行(x)
chmod 755 script.sh

# 2. 只允许所有者读写,其他人无权限
chmod 600 secret.txt

# 3. 为目录添加执行权限(递归应用到子目录和文件)
chmod -R +x /path/to/directory

# 4. 使用符号模式添加权限:为文件添加所有用户的执行权限
chmod +x script.sh

# 5. 移除权限:移除文件的写权限
chmod -w readonly.txt

# 6. 为用户组添加写权限
chmod g+w shared_file.txt

# 7. 设置文件的详细权限:为不同用户分配精确权限
chmod u=rwx,g=rx,o= script.sh

# 7说明:
# u=rwx:文件所有者 (u) 有读 (r)、写 (w)、执行 (x) 权限。
# g=rx:文件所在的用户组 (g) 有读 (r)、执行 (x) 权限,没有写权限。
# o=:其他用户 (o) 无任何权限。
# 适用场景:
# 1. 让文件所有者可以完全操作文件。
# 2. 组用户只能查看和运行文件。
# 3. 防止其他用户访问文件内容。

小总结:

  • 数字模式: 快速设置权限,比如 chmod 755

  • 符号模式: 灵活添加或移除权限,比如 chmod +x

  • 递归操作:-R 修改目录及其子目录权限。

  • 权限拆解:4,写 2,执行 1,组合成总权限。

chmod 是管理文件权限的必备工具,轻松保护文件安全!

19. chown:修改文件所有者

“文件是谁的?用它改!”

用法:chown [选项] 用户名:组名 文件名

  • 修改文件的所有者和所属组。

常用操作:

# 1. 修改文件所有者为 user1,组保持不变
sudo chown user1 file.txt

# 2. 修改文件所有者为 user1,组为 group1
sudo chown user1:group1 file.txt

# 3. 递归修改目录及其所有文件的所有者。 -R:代表递归
sudo chown -R user1:group1 /path/to/directory 

小总结:

  • 改所有者:sudo chown 用户名 文件名

  • 改组:用户名:组名 组合方式。

  • 改目录及子文件:-R 递归修改。

chown,文件权限管理更灵活!

20. chgrp:修改文件所属组

“想改变文件的所属组?用它搞定!”

用法:chgrp [选项] 组名 文件名

  • chgrp专注于修改文件或目录的所属组,不影响文件的所有者。

常用操作

# 1. 修改文件的所属组为 group1
sudo chgrp group1 file.txt

# 2. 递归修改目录及其所有文件的所属组
sudo chgrp -R group1 /path/to/directory

# 适用场景:
# 1. 改变文件的组归属,例如分配给新团队或用户组。
# 2. 与 chown 搭配使用,灵活调整文件权限。

小总结

  • 改组:用 sudo chgrp 组名 文件名

  • 改目录及子文件组:加 -R 递归修改。

chownchmod区别:

21. sudo:以管理员身份执行命令

“需要管理员权限?用它搞定!”

用法:sudo 命令

示例:

sudo apt update

使用管理员权限更新软件包列表。

注意: 执行 sudo 时,可能会提示输入用户密码。输入后即可运行带管理员权限的命令。

第五部分:用户管理,系统小管家

22. adduser:添加用户

“想给系统加个新用户?用它!”

用法:sudo adduser 用户名

示例:

sudo adduser john

按照提示设置密码和用户信息,john 用户就添加好了!

adduser 还会帮你自动创建主目录,非常贴心。

23. deluser:删除用户

“不用的账号?删掉它!”

用法:sudo deluser 用户名

示例:

sudo deluser john

删除用户 john,但不会删除他的主目录。

小结:

  • 添加用户:adduser

  • 删除用户:deluser

简单高效,轻松管理系统用户!

24. passwd:修改用户密码

“想改密码?用它!”

用法:passwd : 直接更改当前用户的密码。

  • 如果修改其他用户密码,加上 sudo

sudo passwd 用户名

用管理员权限为指定用户设置新密码。

25. id:谁的权限最大?

“看看自己是普通员工还是管理员。”

用法:id

  • 显示 UID(用户 ID)和 GID(组 ID)。

常用操作:

  1. 查看当前用户的信息:

id

显示当前用户的 UID(用户 ID)、GID(组 ID)以及所属的组。

     2. 查看指定用户的信息:

id username

显示 username 的用户 ID 和权限组信息。

id 是快速查看用户 ID 和权限组的工具,简单实用!

26. whoamiwhow:谁在线?

“看看都有哪些人登录了系统。”

  • whoami: 简单显示登录用户。

  • who:显示所有登录到系统的用户 。

  • w:不仅显示用户,还显示他们在做什么。

第六部分:归档与压缩命令,数据收纳大师

27. tar:打包与解包神器

“想把文件打包或解压?用它就对了!”

用法:

  • 打包:tar -cvf archive.tar 文件/目录

  • 解包:tar -xvf archive.tar

比如:

# -c:创建打包文件
tar -cvf my_files.tar file1 file2  

这会把 file1file2 打包成一个文件。

要想压缩得更小,还可以用 -z

# -z:使用 gzip 压缩
tar -czvf my_files.tar.gz file1 file2 

-z 表示压缩成 gzip 格式。

解压缩同样简单:

# -x:解压文件
tar -xzvf my_files.tar.gz 

小结:

  • 打包:tar -cvf

  • 压缩:tar -czvf

  • 解压:tar -xzvf

tar,Linux 文件管理方便又高效!

28. zipunzip:轻松压缩与解压

“压缩和解压 zip 文件的工具。”

用法:

  • 压缩:

zip archive.zip 文件/目录

将 文件或者目录 压缩为 archive.zip,压缩目录需要加上 -r 参数。

  • 解压:

unzip archive.zip

更适合和 Windows 用户一起合作,因为大家都熟悉 zip 格式。

29. gzip 和 gunzip:快速压缩与解压

“只压缩或解压单个文件?用它最方便!”

gzip:压缩文件

用法:gzip 文件名

常用操作:

  1. 压缩单个文件:

gzip file.txt
  • 压缩后生成 file.txt.gz,原文件会被替换。

      2. 保留原文件,生成压缩文件:

gzip -k file.txt
  • -k:保留原文件,压缩结果为 file.txt.gz

gunzip:解压文件

用法:gunzip 文件名.gz

常用操作:

  1. 解压文件:

gunzip file.txt.gz
  • 解压后恢复为 file.txt

      2. 保留压缩文件,解压内容:

gunzip -k file.txt.gz
  • -k:保留原压缩文件,同时生成解压后的文件。

小结:

  • 压缩:gzip,加 -k 保留原文件。

  • 解压:gunzip,加 -k 保留压缩文件。

适合快速操作单个文件!

第七部分:磁盘和设备管理,硬盘健康助手

30. mount 和 umount:挂载与卸载

“插 U 盘后,告诉系统‘这是我的盘’,用完后再安全移除!”

mount:挂载设备

用法:mount [设备路径] [挂载点]

  • 设备路径:指设备在系统中的地址,比如 /dev/sdb1(U 盘或硬盘分区)。

  • 挂载点:指定一个目录,比如 /mnt,用来访问设备中的内容。

例子:挂载 U 盘

sudo mount /dev/sdb1 /mnt
  • /dev/sdb1:系统分配给 U 盘的路径,相当于设备的“接口”。

  • /mnt:挂载点,相当于给设备一个“访问入口”,可以用来打开 U 盘的内容。

umount:卸载设备

用法:umount [挂载点或设备路径]

例子:卸载设备

sudo umount /mnt
  • 卸载挂载点 /mnt,断开设备和系统的连接。

  • 卸载前确保设备中的文件没有被占用。

小结:

  • 挂载:sudo mount /dev/sdb1 /mnt,告诉系统“从这里访问设备”。

  • 卸载:sudo umount /mnt,用完后“安全移除”。

简单两步,就能管理 U 盘或其他存储设备!

31. fsck:文件系统检查与修复工具

“硬盘出问题了?用它检查修复!”

用法:fsck [选项] [设备路径]

用于检查和修复 Linux 文件系统错误的工具。

  • 设备路径:指需要检查的分区,比如 /dev/sda1

  • 选项:控制检查和修复行为。比如:-y-n-f

常用操作  :

# 1. 检查并修复分区
sudo fsck /dev/sda1

# 2. 强制检查,即使文件系统被认为是干净的
sudo fsck -f /dev/sda1

# 3. 仅检查问题,不进行修复(安全查看用)
sudo fsck -n /dev/sda1

# 4. 自动修复所有问题,不需要逐一确认
sudo fsck -y /dev/sda1

检查并修复文件系统的错误,特别是硬盘在非正常关机后。总之fsck 是文件系统的急救工具,硬盘有问题时必备!

32. lsblk:查看磁盘及分区信息

“想知道系统里有几块硬盘、几块分区?用它一目了然!”

用法:lsblk 选项

  • 会清晰地列出所有存储设备及分区信息,包括大小和挂载点。

lsblk 常用参数示例:

# 1. 显示所有设备,包括未挂载的设备
lsblk -a

# 2. 只显示挂载点及文件系统信息
lsblk -f

lsblk 是查看系统磁盘和分区结构的利器,轻松了解设备大小、分区类型和挂载点!

第八部分:系统管理,了解机器

33. hostname:查看或设置主机名

“想知道机器的名字?或者改成自己喜欢的名字?用hostname!”

常用操作示例:

# 1. 查看主机名
hostname

# 2. 临时设置主机名(重启后失效)
sudo hostname new-hostname

# 3. 永久设置主机名
sudo hostnamectl set-hostname new-hostname

hostname 查看或临时设置主机名,用 hostnamectl 永久更改主机名,管理主机名就是这么简单!

34. uname:显示系统信息

“想知道系统的类型和版本?用它!”

用法:uname [选项]

常用操作示例:

# 1. 查看系统的基本信息
uname

# 2. 查看详细系统信息(内核版本、架构等)
uname -a

# 3. 查看内核名称(如 Linux)
uname -s

# 4. 查看内核版本
uname -r

# 5. 查看系统架构(如 x86_64)
uname -m

小总结:

  • 简单查看:unameuname -a 查看系统和内核信息。

  • 细节查询:-s 查看内核名称,-r 查版本,-m 查架构。

uname 是快速了解系统环境的基础工具!

35. top:系统任务管理器

“系统卡顿了?用它看看是哪个进程占资源。”

用法:top, 按 q 键退出

  • 实时查看系统的 CPU 和内存占用情况。

常用操作:

  • P:按 CPU 使用率排序。

  • M:按内存占用排序。

top 是系统性能的监控利器,学会用 PM 排序,排查问题快又准!

36. ps:查看进程

“系统里有什么进程在跑?一查便知!”

用法:ps [选项]

  • 列出所有运行的进程,包括用户、资源占用、启动命令等信息。

常用操作:

# 1. 查看所有进程(标准输出)
ps aux

# 2. 搜索特定进程,结合 grep,快速定位特定进程。
ps aux | grep 进程名

小总结ps aux 是查看当前系统所有进程的基础命令,配合 grep 查找特定进程,简单又实用!

37. kill:手动结束进程

“系统卡住了?用它强制关掉卡死的进程!”

用法:kill 进程号

  • 找到进程号 (PID),用 kill 结束它。

常用操作:

  1. 结束指定进程:

kill 12345

这里的 12345 是进程号 (PID),该命令会杀掉进程号为 12345 的进程。

    2. 强制结束进程:当进程拒绝退出时,可以用 -9 强制终止:

kill -9 12345

   3. 结合 ps 查找并结束进程(常用)

ps aux | grep 进程名
kill 进程号

通过 ps aux 找到目标进程的 PID,再用 kill 结束它。

小总结kill 是结束卡死或无响应进程的利器。先用 ps aux 定位进程号,再用 kill 轻松解决问题。如果进程顽固不退,加 -9 一击必杀!

38. free:内存够用吗?

“看看内存的分配情况。”

用法:free [选项]

  • 显示系统内存的使用情况,包括总内存、已用内存、空闲内存和缓冲/缓存。

常用操作示例:

# 1. 查看内存使用情况(以 KB 为单位,默认)
free

# 2. 以人类可读的格式显示内存(MB/GB)
free -h

# 3. 持续监控内存变化(每秒刷新一次)
free -s 1

free 是查看系统内存使用情况的利器,配合 -h 参数更直观,用 -s 持续刷新监控更方便!

39. dfdu:查看磁盘使用情况

“磁盘够用吗?用它们看看就知道!”

df:磁盘空间概览

“想知道磁盘空间还剩多少?用它一目了然!”

用法:df [选项]

  • 显示文件系统的磁盘使用情况,包括总空间、已用空间、可用空间和挂载点。

常用操作示例:

# 1. 查看所有文件系统的磁盘使用情况(以 KB 为单位,默认)
df

# 2. 以人类可读格式显示磁盘使用情况(MB/GB)
df -h

# 3. 显示特定目录的磁盘使用情况
df -h /path/to/directory
df 是查看磁盘分区整体使用情况的必备工具,配合 -h 参数更直观易读。

du:文件/目录空间占用

“想知道某个目录占了多少空间?用它精确分析!”

用法:du [选项] [路径]

  • 显示指定文件或目录的空间使用情况,支持递归统计。

常用操作示例:

# 1. 查看当前目录下每个文件和子目录的大小
du

# 2. 以人类可读格式显示文件和目录大小
du -h

# 3. 查看当前目录的总大小
du -sh

# 4. 显示指定目录下每个文件的大小
du -h /path/to/directory

du 是精准查看目录和文件空间占用的好帮手,配合 -h 参数更清晰,用 -s 快速查看总大小!

小总结

  • df:查看磁盘分区总览,关注整体使用情况。

  • du:查看目录或文件的具体占用,适合精准分析。

两者结合使用,磁盘空间管理更高效!

第九部分:网络操作,玩转连接

40. ping :测试网络连通性

“网络通不通?用它试一试!”

用法:ping [选项] 目标地址

  • 向目标地址发送 ICMP 数据包,测试网络的连通性和延迟。

# 1. 测试目标地址的连通性(默认持续发送数据包)
ping www.google.com  -- 这个最常用

# 2. 指定发送的次数(比如发送 5 次)
ping -c 5 www.google.com

# 3. 限制每次发送数据包的间隔时间(1 秒间隔)
ping -i 1 www.google.com

# 4. 调整数据包大小(默认 56 字节)
ping -s 128 www.google.com

# 5. 不解析 IP 对应的主机名(加速测试)
ping -n www.google.com

小总结:

  • 基本连通性测试:ping 检查目标是否在线。

  • 控制发送次数:-c 设定发送包数量。

  • 网络性能调试:-s-i 调整包大小和发送频率。

ping 是网络排查的基础工具,用 ping 测试目标是否在线、网络是否稳定,简单又高效!

41. traceroute:路由追踪工具

“想知道数据包经过哪些节点到达目标?用它一查便知!”

用法:traceroute [选项] 目标地址

  • 跟踪网络数据包从本地主机到目标主机的路径,显示经过的中间路由节点。(各个节点的 ip 地址)

# 1. 追踪到目标主机的路由节点,显示数据包到目标主机的所有中间节点地址及响应时间。
traceroute example.com  -- 这个最常用

# 2. 限制显示的最大跳数(默认是 30)
traceroute -m 20 example.com

# 3. 指定每跳的探测次数(默认是 3 次)
traceroute -q 1 example.com

# 4. 使用 ICMP 协议代替 UDP 进行路由追踪(部分网络更友好)
traceroute -I example.com

# 5. 使用指定端口进行路由追踪
traceroute -p 443 example.com

小总结:

  • 基本路由追踪:traceroute 查看节点路径。

  • 限制跳数:-m 避免输出过多节点。

  • 协议选择:-I 兼容更多网络环境。

traceroute 是网络调试的利器,快速定位网络延迟或中断的节点!

42. wget:文件下载工具

“轻松从网络下载文件,稳定又高效!”

用法:wget [选项] URL

  • 用于从指定 URL 下载文件,支持断点续传、批量下载等功能。

例如下载文件:

# 1. 下载单个文件
wget http://example.com/file.zip

# 2. 下载并保存为指定文件名
wget -O newname.zip http://example.com/file.zip

# 3. 断点续传未完成的下载
wget -c http://example.com/largefile.zip

# 4. 下载需要认证的文件(提供用户名和密码)
wget --user=username --password=password http://example.com/securefile.zip

# 5. 限制下载速度(每秒 100KB)
wget --limit-rate=100k http://example.com/largefile.zip

小总结:

  • 单个文件下载:wget URL 简单高效。

  • 断点续传:-c 续传未完成的文件下载。

  • 下载限制:--limit-rate 控制下载速度。

wget 是命令行中的万能下载器,下载稳定、功能强大,非常适合文件和网站资源获取!

43. curl:万能数据获取工具

“不仅能下载文件,还能调接口、获取网页数据!”

用法:curl 选项 [网址]

  • 支持 HTTP、HTTPS、FTP 等多种协议。

常用操作:

# 1. 下载文件
curl -O http://example.com/file.zip

# 2. 保存文件为指定名称
curl -o newname.zip http://example.com/file.zip

# 3. 查看网页内容
curl http://example.com

# 4. 调用接口(GET 请求)
curl -X GET http://api.example.com/data   # -X:指定请求方法(GET、POST、DELETE 等)

# 5. 调用接口(POST 请求并发送数据)
curl -X POST -d "key=value" http://api.example.com/data

# 6. 显示详细的请求和响应过程
curl -v http://example.com

小总结:

  • 下载文件:curl -Ocurl -o

  • 调试接口:-X 指定方法,结合 -d 发送数据。

  • 查看详细过程:-v 显示请求和响应细节。

curl 是命令行下的网络多面手,下载与调试两不误!

44. telnet:测试端口连通性

“目标端口能不能通?用它试一试!”

用法:telnet 主机名或IP 端口号

  • 测试目标主机的指定端口是否开放,检查网络服务连通性。

例如:

telnet www.baidu.com 80

# 说明:
# - 如果连接成功,显示 "Connected to ..."。
# - 如果失败,显示 "Connection refused" 或 "Unable to connect"。

这会测试百度的 HTTP 服务(80 端口)是否可以连接。

常用场景:

  • 测试服务器的特定服务是否正常运行。

  • 检查防火墙是否阻止了指定端口。

telnet 是测试端口连通的常用工具,用它快速判断目标端口是否开放,网络排查简单又直观!

45. netstat:网络连接一览

“想知道系统有哪些网络连接?用它快速查看!”

用法:netstat [选项]

  • 列出当前网络连接、端口监听状态、统计信息等。

常用操作示例:

# 1. 查看所有网络连接
netstat -a

# 2. 查看监听的 TCP 和 UDP 端口
netstat -nlptu
# -t:仅显示 TCP 连接。
# -l:仅显示正在监听的端口。
# -n:以数字格式显示地址和端口。
# -p:显示占用端口的进程。
# -u:仅显示 UDP 连接

# 3. 查看指定端口的连接情况(结合 grep 筛选)
netstat -tlnp | grep :80    # 这种非常常用!!

# 4. 通过进程名,筛选出由特定程序或服务占用的连接(也常用!)
netstat -tlnp | grep nginx    # 查看 Nginx 占用的连接

# 5.筛选出特定连接状态(例如 LISTEN 或 ESTABLISHED):
netstat -tlnp | grep LISTEN       # 查看所有监听的端口
netstat -tlnp | grep ESTABLISHED  # 查看所有已建立的连接

netstat 配合参数和过滤器 grep,网络调试更高效!

小总结:

  • 监听端口:-tlnp 查看监听的服务和进程。

  • 筛选连接: 配合 grep 过滤指定端口或进程。

虽然现在很多场景推荐用 ss 替代 netstat,但 netstat 依然是经典的网络调试工具,简单好用!

46. ss:现代网络连接查看工具

“想替代 netstat?用它更快更强大!”

用法:ss [选项]

  • ssnetstat 的现代替代工具,用于显示网络连接、监听端口、统计信息等,性能更高,输出更快。

常用操作:

# ss 常用操作示例:

# 1. 显示所有网络连接
ss -a

# 2. 显示所有监听的 TCP 和 UDP 端口
ss -nlptu
# -t:仅显示 TCP 连接
# -u:仅显示 UDP 连接
# -l:仅显示监听连接
# -n:不解析主机名和服务名称,显示数字地址和端口号(加速)。
# -p:显示占用端口的进程。


# 3. 查看 ESTABLISHED 状态的连接
ss -t state established

# 4. 查看指定端口的连接(结合 grep 过滤)
ss -tlnp | grep :80  # 按端口号过滤

# 5. 查看所有包含某个 IP 地址的连接
ss -tlnp | grep '192.168.1.100'  # 按 IP 地址过滤

# 7. 查看某个进程(根据 PID)
ss -tulnp | grep '1234'  # 根据进程 ID (PID) 过滤

# 8. 查看某个协议类型的连接
ss -tuln | grep 'tcp'  # 按协议类型(如 tcp)过滤

# 9. 查看网络连接的具体服务
ss -tulnp | grep 'nginx'  # 根据服务名称过滤(例如:nginx)

ss 和 netstat 的对比

总结:

  • 查看监听端口:ss -tuln

  • 定位特定端口:ss -tuln | grep 端口号

  • 显示进程和端口:ss -tulnp | grep 端口号

ss 是现代网络管理的必备工具,比 netstat 更快、更强大!

47. tcpdump:网络数据包捕获工具

“想知道网络中发生了什么?用它抓包分析!”

用法:tcpdump [选项] [过滤条件]

  • 强大的网络抓包工具,支持实时查看或保存数据包,用于分析网络问题。

常用操作:

# tcpdump 常用选项:
# -i:指定监听的网络接口(如 eth0)。
# -w:将捕获的数据包保存到文件(如 capture.pcap)。
# -r:从文件中读取并解析数据包(如读取保存的 pcap 文件)。
# -n:不解析主机名和服务名称,直接显示 IP 和端口号。
# -nn:同时禁用主机名和端口解析,显示数字地址和端口号。
# -c:限制捕获的数据包数量(如 -c 10 表示捕获 10 个包后退出)。
# -X:显示数据包的十六进制和 ASCII 内容。
# -A:以 ASCII 格式显示数据包内容(适合查看 HTTP 数据)。
# -v:显示数据包的详细信息

# 1. 捕获指定接口上的所有数据包
tcpdump -i eth0

# 2. 捕获并保存数据包到文件
tcpdump -i eth0 -w capture.pcap

# 3. 捕获来自特定 IP 的数据包
tcpdump -i eth0 src 192.168.1.100

# 4. 捕获目标 IP 的数据包
tcpdump -i eth0 dst 192.168.1.200

# 5. 捕获特定端口(如 80)上的流量
tcpdump -i eth0 port 80

# 6. 捕获来自特定源 IP 且目标端口为 80 的数据包,并保存到文件 capture.pcap 里
tcpdump -i eth0 src 192.168.1.100 and dst port 80 -w capture.pcap -nn -v # 比较常用!

小总结:

  • 抓取数据包:tcpdump -i 接口 监听网络流量。

  • 保存数据分析:-w 保存为文件,配合 Wireshark 等工具分析。

  • 过滤特定流量: 配合 srcdstport 筛选数据包。

  • 查看详细信息:-v 或更详细的 -vv 输出抓包细节。

tcpdump 是网络调试和分析的利器,实时抓包、高效诊断,让网络问题无处遁形!

48. nc (Netcat):网络工具的瑞士军刀

“不仅能测试端口,还能传文件、模拟服务,样样精通!”

用法:nc 选项 [主机名或IP] [端口号]

  • 支持 TCP 和 UDP 协议,用于网络调试、文件传输、服务模拟等。

常用操作:

# nc 常用选项:
# -l     :监听模式,用于在本地创建服务器,等待客户端连接。
# -z     :扫描模式,检查端口是否开放,不发送任何数据。
# -v     :启用详细模式,输出更多的调试信息。
# -u     :使用 UDP 协议进行连接,而不是默认的 TCP。
# -p     :指定源端口。
# -w     :设置超时时间,单位为秒。
# -n     :禁用 DNS 解析,直接使用 IP 地址,而不是域名。
# -v     :详细输出,显示连接过程中的所有信息。


# 1. 连接到远程主机的指定端口(TCP连接)
nc example.com 80

# 2. 监听本地端口(创建服务器,等待连接)
nc -l 12345

# 3. 通过 netcat 发送文件到远程主机
# 在远程机器上执行:nc -l 12345 > received_file.txt
# 在本地机器上执行:nc remote_host 12345 < file_to_send.txt

# 4. 使用 UDP 协议发送数据
nc -u -l 12345  # 监听 UDP 端口 12345
nc -u remote_host 12345  # 发送数据到指定 UDP 端口

# 5. 测试端口是否开放(可以用来检查某些端口是否能够连接)
nc -zv example.com 80 443

# 6. 扫描端口范围(测试哪些端口开放)
nc -zv example.com 1-1000

# 7. 通过 nc 实现简易的端到端聊天
# 在一台机器上执行:nc -l 12345
# 在另一台机器上执行:nc localhost 12345
# 然后你就可以发送消息了

# 8. 创建一个简单的 HTTP 请求
echo -e "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" | nc example.com 80

# 9. 发送数据并接收响应
echo "Hello, World!" | nc example.com 80

小总结:

  • 测试端口:-zv 查看目标主机端口是否开放。

  • 文件传输: 配合 -l 模式,简单实现发送和接收。

  • 模拟客户端: 手动发送请求,调试服务(如 HTTP)。

nc 是命令行下的网络全能工具,调试与传输样样行!

49. lsof:查看文件和网络连接的多面手

“文件被谁占用?哪个进程占用端口?用它快速搞定!”

用法:lsof [选项]

  • 默认列出系统中所有打开的文件和连接,包括网络套接字。

lsof 的两大核心功能:

  1. 文件占用: 查看文件或设备被哪些进程使用。

  2. 网络连接: 检查端口、IP 和服务状态。

网络相关:重头戏

常用操作:

# 查看所有网络连接
lsof -i

# 查看特定端口的占用情况
lsof -i :80

# 显示详细网络连接(数字端口和 IP 地址)
lsof -Pni

# 显示被特定端口(如 80)占用的进程及其详细信息。
lsof -Pni :80

# 结合 grep 筛选出监听状态的端口
lsof -Pni | grep LISTEN

# 筛选出与某个 IP 地址相关的连接(本地或远程)
lsof -Pni | grep 192.168.1.100

# 查找指定进程的网络连接,PID代表进程号
lsof -Pni | grep <PID>

文件相关操作:核心功能

# 查看文件被哪些进程占用
lsof /path/to/file

# 查看某用户打开的所有文件
lsof -u username

# 查看某进程打开的文件,PID代表进程号
lsof -p <PID>

特点:

  • 灵活强大: 不论是文件占用还是网络连接,lsof 都能快速定位问题。

  • 配合 grep: 在网络场景下,结合 grep 可快速筛选监听状态或特定端口的连接。

小总结:

  • 网络调试:lsof -Pni 查看详细连接信息,配合 grep LISTEN 排查监听端口。

  • 文件调试:lsof 文件路径lsof -p PID 查看文件占用情况。

lsof 是网络和文件调试的多面手,尤其适合端口和连接问题的排查!

50. ip:查看和管理网络配置

“网络连接有问题?用它查看或配置 IP 和路由!”

用法:ip [命令] [选项]

常用操作:

# 1. 查看网络接口信息(类似 ifconfig)
ip addr show

# 2. 查看路由表
ip route show

# 3. 启用网络接口
sudo ip link set eth0 up

# 4. 禁用网络接口
sudo ip link set eth0 down

ip 是强大的网络管理工具,配合 addrroutelink 子命令,轻松查看和配置网络接口!

51. ssh:远程登录工具

“想远程控制服务器?用它轻松连接!”

用法:ssh [选项] 用户名@主机地址

  • 通过 SSH 协议远程登录到目标主机,进行管理或操作。

常用操作:

# 1. 登录远程主机
ssh user@remote_host       # remote_host 代表目标 ip,user 代表用户名

# 2. 指定端口登录,使用 -p 参数
ssh -p 2222 user@remote_host

# 3. 使用指定私钥文件登录
ssh -i /path/to/private_key user@remote_host

# 4. 执行远程命令后退出 
ssh user@remote_host "ls -l /home"

小总结:

  • 远程登录:ssh user@host

  • 指定端口或私钥:-p-i
    ssh,远程操作安全又方便!

52. scp:远程拷贝文件

“想在两台机器之间传文件?用它!”

用法:scp [选项] 源路径 目标路径

  • scp 基于 SSH 传输,支持安全、快速的文件拷贝。

常用操作:

# 1. 从本地传文件到远程
scp file.txt username@remote_host:/path/to/destination

# 2. 从远程下载文件到本地
scp username@remote_host:/path/to/file.txt /local/path/

# 3. 传输整个目录(加 -r 参数 : 递归传输目录)
scp -r /local/folder username@remote_host:/remote/folder

# 4. -P:指定远程主机的 SSH 端口(默认 22)
scp -P 8000 file.txt username@remote_host:/remote/path

scp 是远程传输文件的简单工具,配合 -r 传目录,配合 -P 指定端口,方便高效!

53. rsync:高效文件同步工具

“想同步文件或目录?用它快又稳!”

用法:rsync [选项] 源路径 目标路径

  • rsync 支持增量传输,只同步变化的部分,比 scp 更高效。

常用操作:

# rsync常用选项参数:
# -a:归档模式,保留文件权限、时间戳等信息。
# -v:显示详细信息。
# --delete:删除目标中源目录不存在的文件。
# -e:指定远程传输方式(如 SSH)。

# 1. 同步本地目录到远程
rsync -av /local/dir username@remote_host:/remote/dir

# 2. 从远程目录同步到本地
rsync -av username@remote_host:/remote/dir /local/dir

# 3. 同步时删除目标中多余的文件
rsync -av --delete /local/dir username@remote_host:/remote/dir

# 4. 使用 SSH 指定端口
rsync -av -e "ssh -p 2222" /local/dir username@remote_host:/remote/dir

优点:

  • 增量同步: 只传输修改过的部分,提高效率。

  • 多功能: 支持本地与远程同步,适合大规模文件传输。

rsync 是同步文件和目录的利器,结合 -a 保留信息,--delete 清理目标,多场景传输轻松搞定!

第十部分:日志和系统调试,系统探长

54. strace:系统调用调试工具

“程序卡住了?用它看看系统调用的细节!”

用法:strace [选项] 命令

  • 跟踪指定命令运行时的系统调用和信号。

  • 常用于调试程序错误或分析程序行为。

常用操作:

# 1. 跟踪一个命令的系统调用
strace ls

# 2. 将跟踪输出保存到文件
strace -o trace.log ls

# 3. 仅跟踪文件相关的系统调用
strace -e trace=file ls

# 4. 跟踪指定进程的系统调用, PID代表进程号
strace -p <PID>

# 5. 显示系统调用的时间消耗
strace -T ls

常用选项:

  • -o 文件名:将输出保存到文件。

  • -e trace=file:仅跟踪文件相关的调用(如 openread 等)。

  • -p PID:跟踪已有进程。

  • -T:显示每个系统调用的耗时。

小总结:

  • 跟踪命令:strace 命令 观察其行为。

  • 跟踪进程:-p PID 查看运行中的程序调用。

strace 是系统调试的神器,了解程序和内核交互的细节一目了然!

55. iostat:监控磁盘 I/O 和 CPU 性能

“硬盘和 CPU 忙不忙?用它一查便知!”**

用法:iostat [选项] [间隔时间] [次数]

  • 默认输出: 显示 CPU 和设备的 I/O 使用情况。

常用操作:

# 1. 查看 CPU 和磁盘 I/O 使用情况
iostat

# 2. 持续监控,每 2 秒刷新一次,共显示 5 次
iostat 2 5

# 3. 显示设备的详细 I/O 信息
iostat -d

# 4. 显示 CPU 的详细使用情况
iostat -c

# 5. 显示所有设备的完整统计信息
iostat -x

注意:

  • 安装方法:如果未安装,执行以下命令:

sudo apt update
sudo apt install sysstat

小总结:

  • iostat 查看系统的 CPU 和磁盘性能。

  • -c-d,专注 CPU 或磁盘的详细信息。

iostat,轻松定位性能瓶颈!

56. vmstat:系统性能快照工具

“想快速了解 CPU、内存和磁盘的使用情况?用它看看!”

用法:vmstat [刷新间隔] [次数]

  • 默认输出: 显示 CPU、内存、磁盘、系统进程等统计信息。

常用操作:

# 1. 查看一次系统性能快照
vmstat

# 2. 持续监控,每秒刷新一次,共显示 5 次
vmstat 1 5

# 3. 显示内存、I/O、CPU 和系统状态
vmstat -a

# 4. 显示磁盘块 I/O 信息
vmstat -d

# 5. 显示更详细的 CPU 使用统计
vmstat -t

小总结:

  • 查看系统状态:vmstat 直接获取快照。

  • 持续监控:vmstat 间隔 次数 实时跟踪系统性能。

vmstat 是诊断系统瓶颈的好帮手,尤其适合 CPU 和内存问题排查!

57. dmesg:查看内核日志

“想知道系统硬件或内核发生了什么?用它看看!”

用法:dmesg [选项]

  • 显示系统启动以来的内核日志信息,适合调试硬件问题。

dmesg 常用操作示例:

# 1. 查看完整内核日志
dmesg

# 2. 分页查看内核日志
dmesg | less

# 3. 查看特定关键词日志,比如 USB
dmesg | grep usb

# 4. 实时监控内核日志更新
dmesg -w

dmesg 配合过滤和分页使用,让内核日志清晰直观,实时监控硬件动态更方便!

58. journalctl:万能日志查看器

“任何服务的日志都能查。”

用法:journalctl [选项]

  • 查看系统启动以来的所有日志。

常用操作示例:

# 1. 查看所有日志
journalctl

# 2. 查看特定服务的日志
journalctl -u 服务名

# 比如查看 nginx 服务的日志
journalctl -u nginx

# 3. 实时查看日志更新
journalctl -f

# 4. 查看最近一小时的日志
journalctl --since "1 hour ago"

通过 journalctl,可以方便地查看、过滤和实时跟踪系统日志,调试问题更高效!

59. uptime:这台机跑多久了?

“系统开机多久了?负载高不高?用它一查便知!”

用法:uptime [选项]

  • 显示当前时间、系统运行时长、登录用户数和平均负载。

常用操作示例:

# 1. 查看系统运行时间、登录用户数和平均负载
uptime

# 2. 只显示系统运行时间(更简洁)
uptime -p

# 3. 查看系统启动的具体时间
uptime -s

uptime 是一个简单直观的工具,用来快速了解系统运行时长和负载情况。结合 -p-s 参数,更清晰易读!

60. htop:交互式资源监控工具

“想直观地看 CPU、内存使用情况?用它更方便!”

用法:htop

  • 启动后进入交互式界面,显示系统性能、进程详情,支持排序和操作。

常用操作:

# 先安装
sudo apt update
sudo apt install htop  

# 1. 启动 htop
htop

# 2. 按 F6:切换排序方式
# 比如按 CPU 使用率排序或按内存占用排序。

# 3. 按 F9:结束进程
# 选择进程后,按 F9 并确认结束。

# 4. 按 q + 回车:退出

htop 是增强版的任务管理器,比 top 更易用直观,适合日常监控系统资源和管理进程!

第十一部分:开发者工具,命令行上的黑科技

61. alias:命令也能取外号

“敲太长?给它改个短名字!”

用法:alias 别名='实际命令'

比如:

alias ll='ls -alF'

以后输入 ll 就等于 ls -alF

62. which:这个命令藏哪儿了?

“找出命令的安装路径。”

用法:which 命令名

  • 显示指定命令的绝对路径,告诉你系统中实际执行的是哪个命令。

比如:

which bash
# 输出: /usr/bin/bash

说明 bash 命令安装在 /usr/bin/bash 目录下。

63. envexport:环境变量好帮手

env:查看环境变量

“想知道系统有哪些环境变量?用它!”

# 查看所有环境变量
env

export:设置环境变量

“想添加或修改环境变量?用它!”

# 设置环境变量
export MY_VAR="Hello World"

# 验证变量是否设置成功
echo $MY_VAR

# 将目录添加到 PATH
export PATH=$PATH:/new/path

# 永久保存变量到 ~/.bashrc
echo "export MY_VAR='Hello World'" >> ~/.bashrc
source ~/.bashrc  # 使用 source 加载配置

64. diff:文件不同在哪?

“快速比较两个文件。”

用法:diff [选项] 文件1 文件2

  • 比较两个文件的内容并显示差异。

常用操作:

# 1. 简单对比两个文件
diff file1.txt file2.txt

# 2. 忽略大小写对比
diff -i file1.txt file2.txt

# 3. 递归对比两个目录
diff -r dir1/ dir2/

# 4. 只显示不同的行
diff --brief file1.txt file2.txt

小结:

  • diff 对比文件或目录,快速找到不同之处。

  • 配合参数如 -i(忽略大小写)或 -r(对比目录)更灵活!

65. vim:文件编辑小能手

“想在命令行编辑文件?用它轻松搞定!”

用法:vim 文件名

  • 如果文件不存在,会新建一个文件。

基本操作:

# 1. 打开文件
vim file.txt

# 2. 进入编辑模式
# 在文件中按 `i` 进入编辑模式,开始修改内容。

# 3. 保存并退出
# 按 `Esc` 键退出编辑模式,然后输入 `:wq` 保存并退出。

# 4. 退出不保存
# 按 `Esc` 键退出编辑模式,然后输入 `:q!` 强制退出。

66. tree:目录结构展示工具

“想直观展示目录结构?用它一键搞定!”

用法:tree [选项] [路径]

  • 以树状结构显示目录及文件,方便查看目录层次和文件内容。

常用操作:

# 1. 显示当前目录的树形结构
tree

# 2. 显示指定目录的树形结构
tree /path/to/directory

# 3. 限制层级深度(如最多显示两层)
tree -L 2

# 4. 显示文件大小
tree -h

# 5. 只显示目录(不显示文件)
tree -d

# 6. 输出结果到文件
tree > tree_output.txt

小总结:

  • 显示树形结构:tree 快速展示目录结构。

  • 限制深度:-L 控制层级,避免输出过长。

  • 显示文件信息:-h 加上文件大小,-d 只看目录。

tree 是快速查看和分享目录结构的好工具,让层次清晰直观!

67. xargs:批量操作的好帮手

“想将命令的输出作为另一个命令的输入?用它批量处理!”

用法:xargs [选项] [命令]

  • xargs 将标准输入中的内容转换为命令行参数,适合批量处理。

常用操作:

# 1. 删除匹配的文件(结合 find 使用)
find . -name "*.log" | xargs rm -f

# 2. 将列表中的文件名批量传递给 echo
echo "file1 file2 file3" | xargs echo

# 3. 控制每行传递的参数数量(每次处理 1 个)
echo "file1 file2 file3" | xargs -n 1 echo

# 4. 配合 -I 替换参数(灵活处理每个输入)
echo "file1 file2 file3" | xargs -I {} mv {} /backup

# 5. 并行执行命令(加速批量处理)
find . -name "*.jpg" | xargs -P 4 cp -t /backup

解释:

  • | xargs:将前一个命令的输出传递给后续命令。

  • -n:每次传递的参数数量。

  • -I {}:用 {} 表示输入的每个参数。

  • -P:指定并行执行的任务数。

小总结:

  • 批量删除: 结合 findxargs rm

  • 参数替换:-I {} 灵活指定处理逻辑。

  • 并行加速:-P 提高效率。

xargs 是命令行批量操作的必备工具,简单高效!

68. tee:数据双向输出工具

“想让命令的输出同时保存到文件和终端?用它轻松搞定!”

用法:command | tee [选项] 文件

  • 将命令的标准输出(stdout)同时保存到文件和显示在终端。

常用操作:

# 1. 将命令的输出保存到文件,同时显示在终端
ls -l | tee output.txt

# 2. 追加到文件(不覆盖原文件内容)
ls -l | tee -a output.txt

# 3. 将命令输出保存到多个文件
ls -l | tee file1.txt file2.txt

# 4. 将错误输出(stderr)也保存到文件
ls nonexistentfile 2>&1 | tee errors.log

解释:

  • | tee 文件:将命令的标准输出保存到指定文件。

  • -a:追加模式,不覆盖已有文件内容。

  • 2>&1:重定向错误输出到标准输出,便于保存日志。

小总结:

  • 保存日志:tee 保存输出日志并实时查看。

  • 追加内容:-a 确保不覆盖原文件。

  • 错误捕获:2>&1 保存所有输出(标准和错误)。

tee 是日志记录和命令调试的好帮手,让输出信息无遗漏!

第十二部分:学习与帮助,最贴心的命令

69. man:命令说明书

“忘了用法?查查手册。”

用法:man 命令名

  • 显示指定命令的完整手册,包括用法、参数和示例。

man 常用操作示例:

# 1. 查看 ls 的手册
man ls

# 2. 在手册中搜索关键词,比如 "file"
# 按 / 输入关键词,然后按回车查找
# /file

# 3. 退出手册
# 按 q 键退出

小总结:

  • man 命令名:查命令的说明书。

  • / 搜索:快速定位关键词。

man,不再为忘记命令用法发愁!

70. --help:快速帮你上手

“不想翻手册?用它快速查看命令用法!”

用法:命令 --help

  • 显示命令的简要说明,包括常用选项和用法。

比如查看 ls 的简要帮助:

ls --help

--help简洁易懂,适合快速上手命令操作!

完结!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值