Linux 基础命令与核心知识点

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


一、目录与路径相关命令

1. ls ------ 列出目录内容

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

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

常用选项:

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

示例:

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

2. pwd ------ 显示当前路径

语法:pwd

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

示例:

bash 复制代码
pwd  # 输出 /home/gxy/test

3. cd ------ 切换工作目录

语法:cd 目录名

功能:改变当前工作目录

常用用法:

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

示例:

bash 复制代码
cd /home/gxy/test  # 绝对路径切换
cd ../temp/         # 相对路径切换

二、文件/目录操作命令

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

语法:touch [选项] 文件名

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

常用选项:

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

示例:

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

5. mkdir ------ 创建目录

语法:mkdir [选项] 目录名

功能:创建新目录

常用选项:

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

示例:

bash 复制代码
mkdir mydir                # 创建单级目录
mkdir -p path1/path2/path3  # 递归创建多级目录

6. rmdir ------ 删除空目录

语法:rmdir [选项] 目录名

功能:仅删除空目录

常用选项:

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

示例:

bash 复制代码
rmdir mydir                # 删除空目录
rmdir -p path1/path2/path3  # 递归删除空目录链

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

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

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

常用选项:

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

示例:

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

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

语法:cp [选项] 源 目标

功能:复制文件/目录

常用选项:

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

示例:

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

9. mv ------ 移动/重命名

语法:mv [选项] 源 目标

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

常用选项:

|----|-------|
| 选项 | 作用 |
| -f | 强制覆盖 |
| -i | 覆盖前询问 |

示例:

bash 复制代码
mv myfile.txt yourfile.txt  # 重命名
mv myfile.txt temp/         # 移动文件到 temp 目录

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

10. cat ------ 查看文件内容

语法:cat [选项] 文件名

功能:输出文件全部内容

常用选项:

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

示例:

bash 复制代码
cat temp.txt                # 直接查看
cat -n temp.txt             # 显示行号
cat -s temp.txt             # 压缩空行

11. more ------ 分页查看

语法:more [选项] 文件名

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

常用选项:

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

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

示例:

bash 复制代码
more -10 temp.txt           # 每页显示10行

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

语法:less [选项] 文件名

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

常用选项/操作:

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

示例:

bash 复制代码
less -N temp.txt            # 显示行号查看

13. head ------ 查看文件开头

语法:head [选项] 文件名

功能:默认显示前 10 行

常用选项:

|-------|-----------|
| 选项 | 作用 |
| -n 行数 | 指定显示前 N 行 |

示例:

bash 复制代码
head temp.txt               # 前10行
head -5 temp.txt            # 前5行

14. tail ------ 查看文件结尾

语法:tail [选项] 文件名

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

常用选项:

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

示例:

bash 复制代码
tail temp.txt               # 后10行
tail -3 temp.txt            # 后3行
tail -f log.txt             # 实时监控日志

15. grep ------ 文本搜索

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

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

常用选项:

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

示例:

bash 复制代码
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 起的秒数) |

示例:

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

17. cal ------ 显示日历

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

功能:显示日历

常用选项:

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

示例:

bash 复制代码
cal                         # 显示本月日历
cal 1949                    # 显示 1949 年日历
cal -3                      # 显示近三个月日历

五、查找/定位命令

18. find ------ 查找文件

语法:find 路径 -选项 条件

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

常用选项:

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

示例:

bash 复制代码
find ~ -name "test.c"       # 在家目录下查找 test.c

19. which ------ 查找命令路径

语法:which 命令名

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

示例:

bash 复制代码
which ls                    # 输出 /usr/bin/ls

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

语法:whereis 命令名

示例:

bash 复制代码
whereis ls                  # 输出 ls 的二进制、手册等路径

六、压缩/解压命令

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

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

常用选项:

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

示例:

bash 复制代码
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 | 解压到指定目录 |

示例:

bash 复制代码
# 仅打包
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

示例:

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

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

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

常用选项:

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

示例:

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

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

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

示例:

bash 复制代码
chgrp users file.txt

26. umask ------ 权限掩码

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

默认文件权限:666 - umask

默认目录权限:777 - umask

示例:

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

27. su ------ 切换用户

语法:su [用户名]

示例:

bash 复制代码
su user1                   # 切换到 user1
su root                    # 切换到 root(需输入密码)

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

语法:sudo 命令

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

示例:

bash 复制代码
sudo useradd u2             # 以 root 权限创建用户

八、系统与进程命令

29. top ------ 实时监控进程

语法:top

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

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

示例:

bash 复制代码
top -d 1 -n 5               # 每秒刷新,共刷新5次

30. ps ------ 查看进程

常用示例:

bash 复制代码
ps aux                     # 查看所有进程

31. shutdown ------ 关机/重启

语法:shutdown [选项]

常用选项:

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

示例:

bash 复制代码
shutdown -h now            # 立即关机
shutdown -r now            # 立即重启

32. uname ------ 查看系统信息

语法:uname [选项]

常用选项:

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

示例:

bash 复制代码
uname -a                   # 查看内核、主机、版本等

九、其他实用命令

33. alias ------ 设置命令别名

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

示例:

bash 复制代码
alias hello='ls -a -l -n'  # 给 ls -a -l -n 起别名 hello
hello                      # 执行别名命令

34. man ------ 查看命令手册

语法:man [章节] 命令

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

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

示例:

bash 复制代码
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 行

bash 复制代码
head -200 temp.txt | tail -20

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

案例2:实时监控日志

bash 复制代码
tail -f log.txt

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

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

bash 复制代码
tar -zcvf /tmp/etc_$(date +%Y%m%d).tar.gz /etc/

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

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

bash 复制代码
chmod +t /home/

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

相关推荐
默|笙1 小时前
【Linux】进程间通信(5)_消息队列与信号量
linux
优化控制仿真模型1 小时前
【英二】考研英语二历年真题及答案解析PDF电子版(1980-2025年)
经验分享·考研·pdf
2401_879693871 小时前
C++跨平台开发实战
开发语言·c++·算法
第二只羽毛1 小时前
第四章 串
大数据·数据结构·c#
旺仔.2911 小时前
C++ String 详解
开发语言·c++·算法
默|笙1 小时前
【Linux】进程信号(2)_信号保存
linux·运维·服务器
2301_816651221 小时前
模板代码跨平台适配
开发语言·c++·算法
m0_743470371 小时前
C++代码静态检测
开发语言·c++·算法
m0_738098021 小时前
C++中的代理模式实战
开发语言·c++·算法