目录

一、文件与目录基本操作

1. pwd:显示当前工作目录

2. cd:切换目录

3. ls:列出目录内容

4. mkdir:创建目录

5. rmdir:删除空目录

6. touch:创建空文件 / 修改时间戳

7. cp:复制文件 / 目录

8. mv:移动 / 重命名文件或目录

9. rm:删除文件或目录

二、文件内容查看与编辑

1. cat:查看文件内容

2. more:分页查看文件

3. less:功能更强的分页查看

4. head:查看文件开头

5. tail:查看文件结尾

三、文件查找与检索

1. whereis:查找命令、源码、帮助文件位置

2. find:在文件系统中查找文件

3. grep:在文件中搜索字符串 / 正则

4. wc:统计行数、单词数、字节数

四、文件压缩与归档

1. gzip:压缩文件(.gz)

2. gunzip:解压.gz 文件

3. tar:打包 / 解包(tar.gz 等)

五、链接文件

1. ln:创建硬链接 / 软链接

六、权限与归属管理

1. chmod:修改文件 / 目录权限

2. chown:修改所有者

3. chgrp:修改所属组

4. setfacl:设置 ACL 访问控制列表

5. getfacl:查看 ACL 权限

七:高频组合命令(实用技巧)

八、Linux 命令速查手册

1.目录与文件基础

pwd

cd

ls

mkdir

rmdir

touch

2.复制、移动、删除

cp

mv

rm

3.查看文件内容

cat

more / less

head

tail

4.查找与检索

find

grep

wc

whereis

5.压缩与解压

gzip / gunzip

tar

6.链接

ln

7.权限与归属

chmod

chown

chgrp

getfacl / setfacl

8.高频实用组合




一、文件与目录基本操作

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:切换目录

作用:切换当前工作目录到指定路径。常用选项 / 特殊用法

  • cdcd ~:切换到当前用户的家目录
  • 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.gztar.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权限

七:高频组合命令(实用技巧)

  1. 查找并统计日志中 error 数量:
    grep -c "error" /var/log/syslog
    
  2. 实时监控日志中的 error:
    tail -f /var/log/syslog | grep "error"
    
  3. 打包压缩并排除指定目录:
    tar -zcvf project.tar.gz --exclude=project/logs /home/user/project
    
  4. 批量修改文件名:
    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 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
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐