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 可删除