第1章:初始Linux系统——第15节:重点命令复习①
目录
一、文件与目录基本操作
1. pwd:显示当前工作目录
作用:打印当前所在的绝对路径,确认当前工作目录位置。常用选项:
-P:显示物理路径(不解析软链接,直接显示真实目录)-L:显示逻辑路径(默认,解析软链接,显示链接路径)
例题:
# 1. 基础用法:查看当前目录
pwd
# 输出示例:/home/user/project
# 2. 软链接场景对比
ln -s /home/user/project /home/user/link_project
cd /home/user/link_project
pwd -L # 输出:/home/user/link_project(逻辑路径)
pwd -P # 输出:/home/user/project(真实物理路径)
2. cd:切换目录
作用:切换当前工作目录到指定路径。常用选项 / 特殊用法:
cd或cd ~:切换到当前用户的家目录cd -:切换到上一次所在的目录cd ..:切换到上一级目录cd ../..:切换到上两级目录cd /:切换到根目录
例题:
# 1. 绝对路径切换
cd /usr/local/bin
# 2. 相对路径切换(当前在/home/user,切换到project目录)
cd project
# 3. 快速回家
cd ~
# 或直接cd
# 4. 回到上一次目录
cd -
3. ls:列出目录内容
作用:查看目录下的文件、子目录及属性信息。常用选项:
| 选项 | 作用 |
|---|---|
-l |
长格式显示(权限、所有者、大小、修改时间等) |
-a |
显示所有文件(包含隐藏文件,以.开头的文件) |
-h |
以人类可读格式显示大小(KB/MB/GB,需配合-l) |
-t |
按修改时间排序(最新的在前) |
-r |
反向排序(配合-t可实现旧文件在前) |
-R |
递归列出所有子目录内容 |
-d |
仅显示目录本身,不显示目录内的文件 |
例题:
# 1. 长格式+人类可读+显示隐藏文件
ls -lha
# 2. 按修改时间倒序(最新文件在最后)
ls -ltr
# 3. 递归查看目录结构
ls -R /home/user/project
# 4. 仅查看目录本身属性
ls -ld /home/user/project
4. mkdir:创建目录
作用:创建新的目录(文件夹)。常用选项:
-p:递归创建多级目录(父目录不存在时自动创建,不会报错)-m:创建时直接设置权限(如-m 755)
例题:
# 1. 基础用法:创建单个目录
mkdir test_dir
# 2. 递归创建多级目录
mkdir -p project/src/main/java
# 3. 创建目录并设置权限为755
mkdir -m 755 temp_dir
5. rmdir:删除空目录
作用:仅能删除空目录,非空目录无法删除(需用rm -r)。常用选项:
-p:递归删除空的父目录(子目录删除后,父目录为空则一并删除)
例题:
# 1. 删除单个空目录
rmdir empty_dir
# 2. 递归删除空目录链
rmdir -p project/src/main/java
# 若java、main、src、project均为空,则全部删除
6. touch:创建空文件 / 修改时间戳
作用:1. 创建新的空文件;2. 修改已有文件的访问 / 修改时间戳。常用选项:
-a:仅修改访问时间(atime)-m:仅修改修改时间(mtime)-t:指定自定义时间(格式:YYYYMMDDhhmm.ss)
例题:
# 1. 创建空文件
touch new_file.txt
# 2. 批量创建空文件
touch file{1..5}.txt
# 3. 修改文件时间为指定时间(2026-04-13 12:00:00)
touch -t 202604131200.00 test.txt
7. cp:复制文件 / 目录
作用:复制文件或目录到指定位置,支持重命名。常用选项:
| 选项 | 作用 |
|---|---|
-r/-R |
递归复制目录(复制目录必须加此选项) |
-p |
保留文件属性(权限、所有者、时间戳) |
-f |
强制覆盖(不提示) |
-i |
交互式覆盖(覆盖前提示确认,默认开启) |
-a |
归档复制(等价于-dR --preserve=all,保留所有属性,常用于备份) |
例题:
# 1. 复制单个文件
cp source.txt /home/user/backup/
# 2. 复制文件并重命名
cp source.txt /home/user/backup/new_source.txt
# 3. 递归复制目录
cp -r project /home/user/backup/
# 4. 归档复制(保留所有属性)
cp -a project /home/user/backup/
8. mv:移动 / 重命名文件或目录
作用:1. 移动文件 / 目录到新位置;2. 重命名文件 / 目录。常用选项:
-f:强制覆盖(不提示)-i:交互式覆盖(覆盖前提示确认,默认开启)-u:仅当源文件比目标文件新,或目标文件不存在时才移动
例题:
# 1. 重命名文件
mv old_name.txt new_name.txt
# 2. 移动文件到指定目录
mv test.txt /home/user/project/
# 3. 移动目录并重命名
mv project /home/user/backup/new_project
9. rm:删除文件或目录
作用:删除文件或目录(高危命令,谨慎使用)。常用选项:
| 选项 | 作用 |
|---|---|
-r/-R |
递归删除目录(删除非空目录必须加此选项) |
-f |
强制删除(不提示、忽略不存在的文件) |
-i |
交互式删除(删除前提示确认) |
-v:显示删除过程 |
例题:
# 1. 删除单个文件
rm test.txt
# 2. 强制删除文件(不提示)
rm -f test.txt
# 3. 递归删除目录(高危!)
rm -r project_dir
# 4. 强制递归删除目录(彻底删除,无提示,谨慎使用!)
rm -rf /home/user/temp/*
# 注意:绝对禁止使用 rm -rf / ,会直接删除根目录所有文件,导致系统崩溃
二、文件内容查看与编辑
1. cat:查看文件内容
作用:一次性查看文件全部内容(适合小文件,大文件会刷屏)。常用选项:
-n:显示行号-b:显示行号(忽略空行)-A:显示所有控制字符(如制表符^I、换行符$)
例题:
# 1. 查看文件内容
cat test.txt
# 2. 显示行号查看
cat -n test.txt
# 3. 合并多个文件到新文件
cat file1.txt file2.txt > merged.txt
2. more:分页查看文件
作用:分页查看大文件,按页翻动,支持搜索。常用操作:
- 空格:向下翻一页
- Enter:向下翻一行
/字符串:向下搜索指定字符串q:退出b:向上翻一页(部分版本支持)
例题:
# 分页查看大文件
more large_file.log
3. less:功能更强的分页查看
作用:more的增强版,支持上下滚动、搜索、跳转,是大文件查看首选。常用操作:
- 上下箭头:逐行滚动
- 空格 / PageDown:向下翻一页
- PageUp:向上翻一页
/字符串:向下搜索,n下一个,N上一个?字符串:向上搜索G:跳转到文件末尾g:跳转到文件开头q:退出
例题:
# 查看大日志文件
less system.log
# 查看命令输出结果(管道符配合)
ps -ef | less
4. head:查看文件开头
作用:查看文件开头部分内容,默认显示前 10 行。常用选项:
-n 数字:指定显示前 N 行(如-n 20显示前 20 行)-c 数字:指定显示前 N 个字节
例题:
# 1. 默认显示前10行
head test.txt
# 2. 显示前20行
head -n 20 test.txt
# 3. 显示前100个字节
head -c 100 test.txt
5. tail:查看文件结尾
作用:查看文件结尾部分内容,默认显示后 10 行,常用于实时查看日志。常用选项:
| 选项 | 作用 |
|---|---|
-n 数字 |
指定显示后 N 行(如-n 50显示后 50 行) |
-f |
实时追踪文件新增内容(日志监控必备) |
-F |
增强版-f,文件被轮转删除后会自动重试打开 |
例题:
# 1. 默认显示后10行
tail app.log
# 2. 显示后50行
tail -n 50 app.log
# 3. 实时监控日志(Ctrl+C退出)
tail -f app.log
三、文件查找与检索
1. whereis:查找命令、源码、帮助文件位置
作用:快速查找系统命令的二进制文件、源码、man 帮助文档位置。常用选项:
-b:仅查找二进制文件-m:仅查找 man 帮助文件-s:仅查找源码文件
例题:
# 1. 查找ls命令的相关文件
whereis ls
# 输出:ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
# 2. 仅查找二进制文件
whereis -b ls
2. find:在文件系统中查找文件
作用:功能最强大的文件查找命令,支持按名称、大小、时间、权限等多条件查找。常用选项:
| 选项 | 作用 |
|---|---|
-name 文件名 |
按文件名查找(支持通配符*) |
-type 类型 |
按文件类型查找(f普通文件,d目录,l软链接) |
-size 大小 |
按文件大小查找(+10M大于 10M,-5M小于 5M) |
-mtime 天数 |
按修改时间查找(-77 天内,+3030 天前) |
-perm 权限 |
按权限查找(如755) |
-exec 命令 {} \;:对查找到的文件执行指定命令 |
例题:
# 1. 按名称查找.log文件
find /home/user -name "*.log"
# 2. 查找大于100M的文件
find / -type f -size +100M
# 3. 查找7天内修改过的.txt文件
find /home/user -name "*.txt" -mtime -7
# 4. 查找并删除30天前的.log文件(谨慎使用)
find /var/log -name "*.log" -mtime +30 -exec rm -f {} \;
3. grep:在文件中搜索字符串 / 正则
作用:在文件中搜索匹配的字符串,支持正则表达式,是日志分析、文本检索神器。常用选项:
| 选项 | 作用 |
|---|---|
-i:忽略大小写 |
|
-v:反向匹配(显示不包含字符串的行) |
|
-n:显示匹配行的行号 |
|
-c:统计匹配的行数 |
|
-r/-R:递归搜索目录下所有文件 |
|
-A 数字:显示匹配行及后 N 行 |
|
-B 数字:显示匹配行及前 N 行 |
|
-C 数字:显示匹配行及前后各 N 行 |
例题:
# 1. 基础搜索:在文件中找error
grep "error" app.log
# 2. 忽略大小写+显示行号
grep -in "error" app.log
# 3. 递归搜索目录下所有包含"error"的文件
grep -r "error" /home/user/project/
# 4. 显示匹配行及前后2行
grep -C 2 "error" app.log
# 5. 统计error出现的行数
grep -c "error" app.log
4. wc:统计行数、单词数、字节数
作用:统计文件的行数、单词数、字节数,默认同时显示三个值。常用选项:
-l:仅统计行数-w:仅统计单词数-c:仅统计字节数-m:仅统计字符数(支持中文)
例题:
# 1. 默认统计(行数、单词数、字节数)
wc test.txt
# 输出:10 20 100 test.txt(10行,20个单词,100字节)
# 2. 仅统计行数
wc -l test.txt
# 3. 统计命令输出的行数(如统计文件数量)
ls -l | wc -l
四、文件压缩与归档
1. gzip:压缩文件(.gz)
作用:压缩文件为.gz格式,压缩后会删除原文件。常用选项:
-d:解压文件(等价于gunzip)-r:递归压缩目录下所有文件-v:显示压缩过程-#:指定压缩级别(1-9,1 最快压缩率最低,9 最慢压缩率最高,默认 6)
例题:
# 1. 压缩文件
gzip test.txt
# 生成test.txt.gz,原文件删除
# 2. 解压文件
gzip -d test.txt.gz
# 或 gunzip test.txt.gz
# 3. 最高压缩率压缩
gzip -9 test.txt
2. gunzip:解压.gz 文件
作用:解压.gz格式的压缩包,等价于gzip -d。常用选项:
-r:递归解压目录下所有.gz 文件-v:显示解压过程
例题:
# 解压.gz文件
gunzip test.txt.gz
3. tar:打包 / 解包(tar.gz 等)
作用:Linux 最常用的归档工具,支持打包、压缩、解压,常见格式tar.gz、tar.bz2。核心选项(必须组合使用):
| 选项 | 作用 |
|---|---|
-c:创建新的归档文件(打包) |
|
-x:解压归档文件 |
|
-z:用 gzip 压缩 / 解压(对应.tar.gz) |
|
-j:用 bzip2 压缩 / 解压(对应.tar.bz2) |
|
-v:显示操作过程 |
|
-f:指定归档文件名(必须放在最后) |
|
-t:查看归档文件内容(不解压) |
|
-C:指定解压到的目录 |
常用命令模板:
- 打包压缩:
tar -zcvf 压缩包名.tar.gz 源文件/目录 - 解压:
tar -zxvf 压缩包名.tar.gz - 查看内容:
tar -ztvf 压缩包名.tar.gz - 解压到指定目录:
tar -zxvf 压缩包名.tar.gz -C 目标目录
例题:
# 1. 打包压缩目录为tar.gz
tar -zcvf project.tar.gz /home/user/project
# 2. 解压tar.gz文件
tar -zxvf project.tar.gz
# 3. 查看压缩包内容(不解压)
tar -ztvf project.tar.gz
# 4. 解压到指定目录
tar -zxvf project.tar.gz -C /home/user/backup/
# 5. 打包为tar.bz2(更高压缩率)
tar -jcvf project.tar.bz2 /home/user/project
五、链接文件
1. ln:创建硬链接 / 软链接
作用:创建文件的链接,分为硬链接和软链接(符号链接)。核心区别:
- 硬链接:相当于文件的多个入口,指向同一个 inode,删除原文件不影响硬链接,不能跨分区、不能链接目录
- 软链接:相当于 Windows 的快捷方式,指向原文件路径,删除原文件后软链接失效,可跨分区、可链接目录
常用选项:
-s:创建软链接(默认创建硬链接)
例题:
# 1. 创建硬链接
ln source.txt hard_link.txt
# 两个文件指向同一个inode,修改任意一个,另一个同步变化
# 2. 创建软链接(快捷方式)
ln -s source.txt soft_link.txt
# soft_link.txt仅保存source.txt的路径,删除source.txt后soft_link失效
# 3. 给目录创建软链接
ln -s /home/user/project /home/user/link_project
六、权限与归属管理
1. chmod:修改文件 / 目录权限
作用:修改文件 / 目录的读、写、执行权限,支持数字法和符号法两种格式。权限说明:
- 读
r=4,写w=2,执行x=1 - 权限分为三组:所有者 (u)、所属组 (g)、其他用户 (o)
- 数字法:
chmod 755 file(u=7=rwx,g=5=r-x,o=5=r-x) - 符号法:
chmod u+x file(给所有者加执行权限)
常用选项:
-R:递归修改目录下所有文件 / 目录的权限
例题:
# 1. 数字法设置权限(所有者rwx,组r-x,其他r-x)
chmod 755 test.sh
# 2. 符号法给所有者加执行权限
chmod u+x test.sh
# 3. 给所有用户加读权限
chmod a+r test.txt
# 4. 递归修改目录权限
chmod -R 755 /home/user/project
2. chown:修改所有者
作用:修改文件 / 目录的所有者和所属组。常用选项:
-R:递归修改目录下所有文件 / 目录的所有者- 格式:
chown 所有者:所属组 文件/目录
例题:
# 1. 修改文件所有者为user
chown user test.txt
# 2. 修改所有者和所属组
chown user:user_group test.txt
# 3. 递归修改目录所有者
chown -R user:user_group /home/user/project
3. chgrp:修改所属组
作用:仅修改文件 / 目录的所属组(chown可同时修改所有者和组,chgrp仅修改组)。常用选项:
-R:递归修改目录下所有文件 / 目录的所属组
例题:
# 1. 修改文件所属组
chgrp user_group test.txt
# 2. 递归修改目录所属组
chgrp -R user_group /home/user/project
4. setfacl:设置 ACL 访问控制列表
作用:传统权限(u/g/o)的补充,可针对单个用户 / 组设置精细权限,不受传统权限限制。常用选项:
-m:设置 ACL 权限-x:删除指定 ACL 权限-b:删除所有 ACL 权限-R:递归设置- 格式:
setfacl -m u:用户名:权限 文件或setfacl -m g:组名:权限 文件
例题:
# 1. 给用户tom设置文件的rwx权限
setfacl -m u:tom:rwx test.txt
# 2. 给组dev设置目录的r-x权限
setfacl -m g:dev:r-x project_dir
# 3. 递归给目录设置ACL
setfacl -R -m u:tom:rwx project_dir
# 4. 删除用户tom的ACL权限
setfacl -x u:tom test.txt
5. getfacl:查看 ACL 权限
作用:查看文件 / 目录的 ACL 访问控制列表,确认精细权限设置。例题:
# 查看文件的ACL权限
getfacl test.txt
# 输出会显示传统权限+ACL权限
七:高频组合命令(实用技巧)
- 查找并统计日志中 error 数量:
grep -c "error" /var/log/syslog - 实时监控日志中的 error:
tail -f /var/log/syslog | grep "error" - 打包压缩并排除指定目录:
tar -zcvf project.tar.gz --exclude=project/logs /home/user/project - 批量修改文件名:
rename 's/.txt/.md/' *.txt
八、Linux 命令速查手册
1.目录与文件基础
pwd
显示当前目录
pwd
pwd -P # 显示真实路径
cd
切换目录
cd # 回家
cd .. # 上级
cd - # 回到上一次目录
cd /path
ls
列出文件
ls
ls -l # 详细
ls -la # 含隐藏
ls -lh # 可读大小
ls -ltr # 按时间倒序
ls -d # 看目录本身
ls -R # 递归
mkdir
建目录
mkdir dir
mkdir -p a/b/c # 递归创建
mkdir -m 755 dir
rmdir
删空目录
rmdir dir
rmdir -p a/b/c
touch
建空文件 / 改时间
touch file.txt
touch file{1..5}.txt
touch -t 202604131200 file.txt
2.复制、移动、删除
cp
复制
cp file /dest
cp file newfile
cp -r dir /dest
cp -a dir /dest # 归档备份
cp -f file /dest # 强制覆盖
mv
移动 / 重命名
mv old new
mv file /dir
mv -f file /dir
rm
删除(慎用)
rm file
rm -f file
rm -r dir
rm -rf dir # 高危
3.查看文件内容
cat
查看小文件
cat file
cat -n file # 显示行号
cat a b > c
more / less
分页查看
more file
less file
head
看开头
head file
head -n 20 file
tail
看结尾 / 实时日志
tail file
tail -n 20 file
tail -f file # 实时监控
4.查找与检索
find
查找文件
find /path -name "*.log"
find / -type f -size +100M
find /path -mtime -7
find /path -name "*.log" -delete
grep
文本搜索
grep "key" file
grep -i "key" file # 忽略大小写
grep -n "key" file # 显示行号
grep -v "key" file # 反向
grep -r "key" /dir # 递归
grep -C2 "key" file# 上下2行
wc
统计
wc file
wc -l file # 行数
ls | wc -l # 文件数量
whereis
找命令位置
whereis ls
whereis -b ls
5.压缩与解压
gzip / gunzip
.gz 压缩
gzip file
gzip -d file.gz
gunzip file.gz
tar
打包解压(最常用)
# 压缩
tar -zcvf file.tar.gz dir
# 解压
tar -zxvf file.tar.gz
# 查看
tar -ztvf file.tar.gz
# 解压到指定目录
tar -zxvf file.tar.gz -C /path
6.链接
ln
硬链接 / 软链接
ln file hard # 硬链接
ln -s file soft # 软链接(快捷方式)
7.权限与归属
chmod
改权限
chmod 755 file
chmod u+x file
chmod -R 755 dir
chown
改所有者
chown user file
chown user:group file
chown -R user:group dir
chgrp
改组
chgrp group file
chgrp -R group dir
getfacl / setfacl
精细权限
getfacl file
setfacl -m u:user:rwx file
setfacl -R -m u:user:rwx dir
setfacl -x u:user file
8.高频实用组合
# 实时搜错误日志
tail -f log | grep error
# 统计错误行数
grep -c error log
# 查看占用大的文件
du -sh /* | sort -rh
# 查看进程
ps -ef | grep xxx
netstat -tulnp
# 解压并查看
tar -zxvf xxx.tar.gz -C /tmp
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)