Linux基础命令是学习后端、运维、编程的必备技能,清晰掌握常用指令、用法与实操,才能高效玩转终端,从容应对日常开发与服务器操作。


一、目录与路径相关命令

1. ls —— 列出目录内容

   语法:ls [选项] [目录或文件]

   功能:列出目录下的子目录/文件,或文件本身信息

   常用选项:

选项 作用
-a  显示所有文件(包括 . 开头的隐藏文件) 
-l 显示详细信息(权限、大小、时间等) 
-h 以人类可读的单位显示文件大小(如 K、M) 
-t 按修改时间排序 
-r 反向排序
-R 递归列出所有子目录内容 

  示例:

ls -a -l  # 显示所有文件的详细信息
ls -l -h  # 人性化显示文件大小

2. pwd —— 显示当前路径

   语法:pwd

   功能:输出当前工作目录的绝对路径

   示例:

pwd  # 输出 /home/gxy/test

3. cd —— 切换工作目录

   语法:cd 目录名

   功能:改变当前工作目录

   常用用法:

命令 作用
cd .. 返回上级目录 
cd ~ 返回当前用户家目录 
cd - 回到上一次所在目录 
cd / 回到根目录 

  示例:

cd /home/gxy/test  # 绝对路径切换
cd ../temp/         # 相对路径切换

二、文件/目录操作命令

4. touch —— 创建文件/修改时间

   语法:touch [选项] 文件名

   功能:不存在则创建空文件,存在则修改文件的访问/修改时间

   常用选项:

选项 作用
-a  仅修改访问时间 
-m 仅修改修改时间 

   示例:

touch newFile.txt          # 创建空文件
touch -a newFile.txt       # 仅修改访问时间
stat newFile.txt           # 查看文件时间信息

5. mkdir —— 创建目录

   语法:mkdir [选项] 目录名

   功能:创建新目录

   常用选项:

选项 作用
-p 递归创建多级目录(父目录不存在时自动创建) 

   示例:

mkdir mydir                # 创建单级目录
mkdir -p path1/path2/path3  # 递归创建多级目录

6. rmdir —— 删除空目录

   语法:rmdir [选项] 目录名

   功能:仅删除空目录

   常用选项:

选项 作用
-p 递归删除空目录(子目录删完后父目录变空也一并删除) 

 示例:

rmdir mydir                # 删除空目录
rmdir -p path1/path2/path3  # 递归删除空目录链

7. rm —— 删除文件/目录

   语法:rm [选项] 文件/目录

   功能:删除文件或目录(可删非空)

   常用选项:

选项 作用
-r 递归删除目录及其所有内容 
-f 强制删除(不提示) 
-i 删除前逐一询问确认 

   示例:

rm file.txt                # 删除普通文件
rm -r dir/                 # 删除目录及内容
rm -rf dir/                # 强制递归删除(谨慎使用!)

8. cp —— 复制文件/目录

   语法:cp [选项] 源 目标

   功能:复制文件/目录

   常用选项:

选项 作用
-r 递归复制目录 
-f 强制覆盖已存在的目标 
-i 覆盖前询问确认 

   示例:

cp file.txt file-backup.txt  # 复制文件
cp -r test/ test-backup/     # 复制目录
cp *.txt dir/               # 批量复制 .txt 文件到 dir

9. mv —— 移动/重命名

   语法:mv [选项] 源 目标

   功能: 目标是目录:移动文件/目录;目标是文件:重命名

   常用选项:

选项 作用
-f 强制覆盖

-i

覆盖前询问

   示例:

mv myfile.txt yourfile.txt  # 重命名
mv myfile.txt temp/         # 移动文件到 temp 目录

三、文件查看与内容处理命令

10. cat —— 查看文件内容

   语法:cat [选项] 文件名

   功能:输出文件全部内容

   常用选项:

选项 作用
-b 对非空行编号 
-n 对所有行编号 
-s 压缩多行空行为一行 

 示例:

cat temp.txt                # 直接查看
cat -n temp.txt             # 显示行号
cat -s temp.txt             # 压缩空行

11. more —— 分页查看

   语法:more [选项] 文件名

   功能:分页显示文件内容(只能向下翻页)

   常用选项:

选项 作用
-n 指定每页显示行数 

 操作: 空格:下一页       q:退出

 示例:

more -10 temp.txt           # 每页显示10行

12. less —— 更灵活的分页查看

   语法:less [选项] 文件名

   功能:比 more 更强大,可上下翻页、搜索

   常用选项/操作:

选项 作用
-N 显示行号
/字符串 向下搜索 
?字符串 向上搜索 
n 重复上一次搜索 
PageUp/PageDown 上下翻页 
q 退出

 示例:

less -N temp.txt            # 显示行号查看

13. head —— 查看文件开头

   语法:head [选项] 文件名

   功能:默认显示前 10 行

   常用选项:

选项

作用

-n 行数 指定显示前 N 行 

   示例:

head temp.txt               # 前10行
head -5 temp.txt            # 前5行

14. tail —— 查看文件结尾

   语法:tail [选项] 文件名

   功能:默认显示后 10 行,可实时监控日志

   常用选项:

选项 作用
-n 行数 指定显示后 N 行 
-f 实时刷新显示新增内容(常用于日志)

   示例:

tail temp.txt               # 后10行
tail -3 temp.txt            # 后3行
tail -f log.txt             # 实时监控日志

15. grep —— 文本搜索

   语法:grep [选项] "搜索词" 文件名

   功能:在文件中搜索匹配的行并输出

   常用选项:

选项 作用
- i 忽略大小写
-n 显示行号
-v 反向匹配(显示不包含搜索词的行) 

   示例:

grep "abcd" temp.txt        # 搜索包含 abcd 的行
grep -i "abcd" temp.txt     # 忽略大小写
grep -n "abcd" temp.txt     # 显示行号
grep -v "abcd" temp.txt     # 显示不包含 abcd 的行

四、时间/日历命令

16. date —— 显示/设置时间

   语法:date [选项] [+格式]

   功能:查看或设置系统时间

   常用格式符:

格式 含义
%Y 完整年份(如 2023) 
%m 月份(01-12) 
%d 日期(01-31) 
%H 小时(00-23) 
%M 分钟(00-59) 

%S

秒(00-61) 
%s Unix 时间戳(从 1970-01-01 起的秒数) 

    示例:

date                        # 显示当前时间
date +%Y/%m/%d-%H:%M:%S     # 自定义格式显示
date +%s                    # 显示时间戳
date -s "2023-01-11 18:23:20"  # 设置时间(需 root)

17. cal —— 显示日历

   语法:cal [参数] [年份]

   功能:显示日历

   常用选项:

选项 作用
-3 显示上月、本月、下月 
-y 显示整年日历 

   示例:

cal                         # 显示本月日历
cal 1949                    # 显示 1949 年日历
cal -3                      # 显示近三个月日历

五、查找/定位命令

18. find —— 查找文件

   语法:find 路径 -选项 条件

   功能:在目录树中搜索文件

   常用选项:

选项 作用
-name 文件名 按文件名查找 

   示例:

find ~ -name "test.c"       # 在家目录下查找 test.c

19. which —— 查找命令路径

   语法:which 命令名

   功能:查找系统命令的可执行文件路径

   示例:

which ls                    # 输出 /usr/bin/ls

20. whereis —— 查找命令的源/手册/二进制

   语法:whereis 命令名

   示例:

whereis ls                  # 输出 ls 的二进制、手册等路径

六、压缩/解压命令

21. zip/unzip —— ZIP 压缩/解压

   语法:压缩:zip [选项] 压缩包名.zip 目录/文件      解压:unzip 压缩包名.zip -d 目标目录

   常用选项:

选项 作用
-r 递归压缩目录

   示例:

zip -r test2.zip test2/     # 压缩目录
unzip test2.zip -d /tmp     # 解压到 /tmp

22. tar —— 打包/解压(重要)

   语法:tar [选项] 压缩包名 文件/目录

   核心选项:

选项 作用
-c 创建新包(打包)
-x 解压包
-t 查看包内文件
-z 配合 gzip 压缩(.tar.gz) 
-j 配合 bzip2 压缩(.tar.bz2) 
-v 显示过程 
-f 指定包名(必须放最后) 
-C 解压到指定目录 

   示例:

# 仅打包
tar -cvf /tmp/etc.tar /etc/
# 打包+gzip压缩
tar -zcvf /tmp/etc.tar.gz /etc/
# 查看包内容
tar -ztvf /tmp/etc.tar.gz
# 解压到指定目录
tar -zxvf /tmp/etc.tar.gz -C /usr/local/src

七、权限与用户管理

23. chmod —— 修改文件权限

   语法:chmod [选项] 权限 文件名

   权限表示:

   1)符号法:u/g/o/a +/=/- r/w/x

       u:所有者,g:同组,o:其他,a:所有

       +:加权限,-:减权限,=:赋权限

   2)数字法:r=4, w=2, x=1,三位分别对应 u/g/o

   示例:

chmod u+x file.txt          # 给所有者加执行权限
chmod 664 file.txt          # 所有者/组:读写,其他:读

24. chown —— 修改文件所有者

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

   常用选项:

选项 作用
-R 递归修改目录及子文件 

   示例:

chown user1 file.txt        # 改所有者为 user1
chown -R user1:group1 dir/  # 递归改所有者和组

25. chgrp —— 修改文件所属组

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

   示例:

chgrp users file.txt

26. umask —— 权限掩码

   功能:控制新建文件/目录的默认权限

   默认文件权限:666 - umask

   默认目录权限:777 - umask

   示例:

umask                      # 查看当前掩码(普通用户默认 0002)
umask 044                  # 设置掩码

27. su —— 切换用户

   语法:su [用户名]

   示例:

su user1                   # 切换到 user1
su root                    # 切换到 root(需输入密码)

28. sudo —— 以管理员权限执行命令

   语法:sudo 命令

   功能:普通用户临时获得 root 权限执行命令

   示例:

sudo useradd u2             # 以 root 权限创建用户

八、系统与进程命令

29. top —— 实时监控进程

   语法:top

   功能:实时显示系统进程、资源占用

   操作:    q:退出       -d:指定刷新间隔

   示例:

top -d 1 -n 5               # 每秒刷新,共刷新5次

30. ps —— 查看进程

   常用示例:

ps aux                     # 查看所有进程

31. shutdown —— 关机/重启

   语法:shutdown [选项]

   常用选项:

选项 作用
-h 关机
-r 重启
-t 秒 指定秒数后执行 

   示例:

shutdown -h now            # 立即关机
shutdown -r now            # 立即重启

32. uname —— 查看系统信息

   语法:uname [选项]

   常用选项:

选项 作用
-a 显示所有系统信息 

   示例:

uname -a                   # 查看内核、主机、版本等

九、其他实用命令

33. alias —— 设置命令别名

  语法:alias 别名='原命令'

  示例:

alias hello='ls -a -l -n'  # 给 ls -a -l -n 起别名 hello
hello                      # 执行别名命令

34. man —— 查看命令手册

   语法:man [章节] 命令

   功能:查看命令/函数的详细帮助

   章节说明:1:普通命令,2:系统调用,3:库函数,5:文件格式,7:环境变量等

   示例:

man printf                 # 查看 printf 命令/函数手册
man 2 fork                 # 查看系统调用 fork

35. 快捷键

   Tab:命令/路径补全

   Ctrl + C:终止当前程序

   Ctrl + D:结束输入/退出 shell

   Ctrl + L:清屏

十、Linux 核心概念

1. 目录结构(树形)

   /:根目录

   /bin:基础命令二进制文件

   /etc:配置文件

   /home:普通用户家目录

   /root:root 用户家目录

   /usr:安装程序/软件

   /var:经常变化的文件(日志等)

   /tmp:临时文件

2. 权限模型

文件访问者:u(所有者)、g(同组)、o(其他)

文件类型:

   -:普通文件

   d:目录

   l:软链接

   b:块设备

   c:字符设备

   基本权限:r(读)、w(写)、x(执行)

   粘滞位:chmod +t 目录,目录下文件仅所有者/root 可删除

3. Shell 原理

   Shell 是命令行解释器,负责将用户命令翻译给内核执行,并返回结果

   常见 Shell:bash、zsh

十一、综合案例

案例1:显示文件第 180~200 行

head -200 temp.txt | tail -20

先取前 200 行,再取后 20 行,即得到 180~200 行

案例2:实时监控日志

tail -f log.txt

日志新增内容会实时显示在终端

案例3:打包备份 /etc 目录

tar -zcvf /tmp/etc_$(date +%Y%m%d).tar.gz /etc/

按日期命名备份包,方便管理

案例4:给目录加粘滞位防止误删

chmod +t /home/

/home 下文件仅所有者/root 可删除

Logo

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

更多推荐