Linux 常用命令大全:2025 新手必学的 70 条命令!(全篇)
第一部分:基础命令,找到方向感
1. pwd
:告诉我,我在哪儿?
“迷路了?这个命令就是你的导航。”
用法:pwd
-
全称 Print Working Directory,用来显示你当前所在的工作目录,也就是告诉你“我在哪儿”。
比如,你在终端输入:
pwd
输出可能是:/home/user/Documents
意味着你现在的工作目录是 /home/user/Documents
。简单来说,这个命令相当于给你当前的位置标了个“导航点”。
2. ls
:看看这地方都有什么
“逛文件夹时的必备工具。”
用法:ls
或 ls [选项] [目录名]
-
“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、删除目录:
-
如果目录是空的,可以用
rmdir
。 -
如果目录里有文件,用
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. less
和 more
:“文件内容太多?一页一页来看!”
用法:
-
more 文件名
-
less 文件名
简单操作:
-
more
:逐页查看文件
more file.txt
-
按空格翻页
-
按
q
退出
2. less
:更灵活的翻页查看
less file.txt
-
用上下箭头滚动
-
输入
/关键词
搜索 -
按
q
退出
区别:
-
more
:简单只能向后翻页。 -
less
:功能更强大,支持前后翻页 和搜索。
less
比 more
更好用,文件一多就用它,翻页舒服又方便!
12. head
和 tail
:文件内容看“开头”和“结尾”
“文件太大?只看最重要的部分!”
用法:
-
head 文件名
:看文件的前 10 行。 -
tail 文件名
:看文件的最后 10 行。
默认显示前 10 行。想自定义行数?加 -n
参数。
常用操作:
-
指定行数:
head -n 5 file.txt # 看前 5 行
tail -n 8 file.txt # 看最后 8 行
2. 实时监控文件变化:
tail -f file.txt # 动态显示新增内容
head
和 tail
,一个看开头,一个看结尾,简单实用!
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 [参数] 文件名
常用参数:
-
-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 递归修改。
chown
和 chmod
区别:
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)。
常用操作:
-
查看当前用户的信息:
id
显示当前用户的 UID(用户 ID)、GID(组 ID)以及所属的组。
2. 查看指定用户的信息:
id username
显示 username
的用户 ID 和权限组信息。
id
是快速查看用户 ID 和权限组的工具,简单实用!
26. whoami
、who
和 w
:谁在线?
“看看都有哪些人登录了系统。”
-
whoami
: 简单显示登录用户。 -
who
:显示所有登录到系统的用户 。 -
w
:不仅显示用户,还显示他们在做什么。
第六部分:归档与压缩命令,数据收纳大师
27. tar
:打包与解包神器
“想把文件打包或解压?用它就对了!”
用法:
-
打包:
tar -cvf archive.tar 文件/目录
-
解包:
tar -xvf archive.tar
比如:
# -c:创建打包文件
tar -cvf my_files.tar file1 file2
这会把 file1
和 file2
打包成一个文件。
要想压缩得更小,还可以用 -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. zip
和 unzip
:轻松压缩与解压
“压缩和解压 zip 文件的工具。”
用法:
-
压缩:
zip archive.zip 文件/目录
将 文件或者目录 压缩为 archive.zip,压缩目录需要加上 -r 参数。
-
解压:
unzip archive.zip
更适合和 Windows 用户一起合作,因为大家都熟悉 zip 格式。
29. gzip 和 gunzip:快速压缩与解压
“只压缩或解压单个文件?用它最方便!”
gzip
:压缩文件
用法:gzip 文件名
常用操作:
-
压缩单个文件:
gzip file.txt
-
压缩后生成
file.txt.gz
,原文件会被替换。
2. 保留原文件,生成压缩文件:
gzip -k file.txt
-
-k
:保留原文件,压缩结果为file.txt.gz
。
gunzip
:解压文件
用法:gunzip 文件名.gz
常用操作:
-
解压文件:
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
小总结:
-
简单查看: 用
uname
或uname -a
查看系统和内核信息。 -
细节查询: 用
-s
查看内核名称,-r
查版本,-m
查架构。
uname
是快速了解系统环境的基础工具!
35. top
:系统任务管理器
“系统卡顿了?用它看看是哪个进程占资源。”
用法:top
, 按 q
键退出
-
实时查看系统的 CPU 和内存占用情况。
常用操作:
-
按
P
:按 CPU 使用率排序。 -
按
M
:按内存占用排序。
top
是系统性能的监控利器,学会用 P
、M
排序,排查问题快又准!
36. ps
:查看进程
“系统里有什么进程在跑?一查便知!”
用法:ps [选项]
-
列出所有运行的进程,包括用户、资源占用、启动命令等信息。
常用操作:
# 1. 查看所有进程(标准输出)
ps aux
# 2. 搜索特定进程,结合 grep,快速定位特定进程。
ps aux | grep 进程名
小总结:ps aux
是查看当前系统所有进程的基础命令,配合 grep
查找特定进程,简单又实用!
37. kill
:手动结束进程
“系统卡住了?用它强制关掉卡死的进程!”
用法:kill 进程号
-
找到进程号 (PID),用
kill
结束它。
常用操作:
-
结束指定进程:
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. df
和 du
:查看磁盘使用情况
“磁盘够用吗?用它们看看就知道!”
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 -O
或curl -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 [选项]
-
ss
是netstat
的现代替代工具,用于显示网络连接、监听端口、统计信息等,性能更高,输出更快。
常用操作:
# 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 等工具分析。 -
过滤特定流量: 配合
src
、dst
或port
筛选数据包。 -
查看详细信息: 用
-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
Host: example.com
" | nc example.com 80
# 9. 发送数据并接收响应
echo "Hello, World!" | nc example.com 80
小总结:
-
测试端口: 用
-zv
查看目标主机端口是否开放。 -
文件传输: 配合
-l
模式,简单实现发送和接收。 -
模拟客户端: 手动发送请求,调试服务(如 HTTP)。
nc
是命令行下的网络全能工具,调试与传输样样行!
49. lsof
:查看文件和网络连接的多面手
“文件被谁占用?哪个进程占用端口?用它快速搞定!”
用法:lsof [选项]
-
默认列出系统中所有打开的文件和连接,包括网络套接字。
lsof 的两大核心功能:
-
文件占用: 查看文件或设备被哪些进程使用。
-
网络连接: 检查端口、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
文件相关操作:核心功能
# 查看文件被哪些进程占用
lsof /path/to/file
# 查看某用户打开的所有文件
lsof -u username
# 查看某进程打开的文件,PID代表进程号
lsof -p
特点:
-
灵活强大: 不论是文件占用还是网络连接,
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
是强大的网络管理工具,配合 addr
、route
和 link
子命令,轻松查看和配置网络接口!
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
# 5. 显示系统调用的时间消耗
strace -T ls
常用选项:
-
-o 文件名
:将输出保存到文件。 -
-e trace=file
:仅跟踪文件相关的调用(如open
、read
等)。 -
-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. env
和 export
:环境变量好帮手
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
:指定并行执行的任务数。
小总结:
-
批量删除: 结合
find
和xargs 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
简洁易懂,适合快速上手命令操作!
完结!