Linux 基础指令详解 —— 从入门到熟练

Linux 基础指令详解 ------ 从入门到熟练

📌 本文适合 Linux 初学者,涵盖最常用的 20+ 条指令,配合示例帮助快速上手。


1. ls

作用: 列出目录中的文件和子目录信息。

cpp 复制代码
ls [选项] [目录]
选项 作用
-l 显示详细信息(权限、大小、时间等)
-a 显示所有文件,包括隐藏文件(. 开头)
-h 文件大小以 KB/MB 显示,更易读
-t 按修改时间排序,最新优先
-R 递归显示子目录内容

常用示例:

cpp 复制代码
ls -l          # 详细列表
ls -a          # 显示隐藏文件
ls -lh         # 详细 + 易读大小
ls -lhS        # 按文件大小排序(大→小)
ls *.txt        # 只列出 .txt 文件

ls -l 输出解读:

cpp 复制代码
-rw-r--r-- 1 user group 4096 Jun 10 10:00 file.txt
字段 含义
-rw-r--r-- 文件类型 + 权限(所有者/组/其他)
1 硬链接数
user / group 所有者 / 所属组
4096 文件大小(字节)
Jun 10 10:00 最后修改时间
file.txt 文件名

💡 小技巧: .(当前目录)和 ..(父目录)是文件系统的标准组成部分,ls -a 时会显示。


2. pwd

作用: 显示当前所在的完整路径。

cpp 复制代码
pwd
# 输出示例:/home/user/projects

3. cd

作用: 切换工作目录。

复制代码
cd [目录]
命令 效果
cd .. 返回上一级目录
cd ~ 进入当前用户家目录
cd - 返回上次所在目录
cd /home/user/ 绝对路径跳转
cd ../day02/ 相对路径跳转

💡 Linux 目录结构是一棵倒置的树,根节点为 /,所有文件和目录都挂载在其下。


4. touch

作用: 创建空文件,或更新已有文件的时间戳。

复制代码
touch [选项] 文件名
cpp 复制代码
touch file.txt              # 创建空文件(已存在则更新时间戳)
touch a.txt b.txt c.txt     # 同时创建多个文件
touch -a file.txt           # 只更新访问时间
touch -m file.txt           # 只更新修改时间

5. mkdir

作用: 创建目录(文件夹)。

复制代码
mkdir [选项] 目录名
选项 作用
-p 递归创建多级目录(不存在则自动创建父目录)
-m 创建时指定权限
-v 显示创建过程
复制代码
mkdir new_folder                    # 创建单个目录
mkdir dir1 dir2 dir3                # 同时创建多个目录
mkdir -p a/b/c                      # 递归创建多级目录
mkdir -p project/{src,doc,test}     # 一次创建多个子目录

⚠️ 直接 mkdir a/b/ca 不存在会报错,加上 -p 即可解决。


6. rmdir / rm

rmdir ------ 删除空目录

复制代码
rmdir 目录名         # 删除空目录
rmdir -p dir1/dir2   # 递归删除(若父目录也为空则一起删)

rm ------ 删除文件或目录

复制代码
rm [选项] 文件或目录
选项 作用
-r 递归删除目录及其内容
-f 强制删除,不提示
-i 删除前逐一询问确认
复制代码
rm file.txt          # 删除文件
rm -r dir1           # 删除目录(含子文件)
rm -i *.txt          # 交互式删除所有 .txt 文件

严禁执行: rm -rf /,这会删除系统所有文件,造成灾难性后果!

对比 rmdir rm
操作对象 仅空目录 文件或目录
安全性 低(需谨慎)

7. cp

作用: 复制文件或目录。

复制代码
cp [选项] 源 目标
选项 作用
-r 递归复制目录(复制目录必须加)
-i 覆盖前询问确认
-v 显示复制过程
-p 保留原文件权限、时间戳等属性
-u 仅复制比目标更新的文件(增量备份)
复制代码
cp file.txt backup.txt              # 复制并重命名
cp notes.txt ~/Documents/           # 复制到指定目录
cp -r project/ project_backup/      # 递归复制整个目录
cp *.jpg /photos/                   # 复制所有 jpg 文件
cp -p -r website/ /var/www/         # 保留权限和时间戳

8. mv

作用: 移动文件/目录,或重命名。

复制代码
mv [选项] 源 目标
选项 作用
-i 覆盖前提示确认
-v 显示操作过程
-n 禁止覆盖已有文件
-b 覆盖前自动备份(追加 ~ 后缀)
复制代码
mv file.txt /target_dir/         # 移动文件
mv old_name.txt new_name.txt     # 重命名文件
mv old_dir/ new_dir/             # 重命名目录
mv *.png ~/images/               # 批量移动文件

💡 mv vs cp+rm: 在同一文件系统内,mv 只修改路径指向,不复制数据,速度更快;跨文件系统时等同于 cp + rm


9. cat

作用: 查看文件内容(适合短文件)。

复制代码
cat [选项] 文件
选项 作用
-n 对所有行显示行号
-b 只对非空行显示行号
-s 合并连续空行为一行
复制代码
cat file.txt         # 查看文件
cat -n file.txt      # 显示行号

10. more / less

more ------ 基础分页查看

复制代码
more 文件名
按键 功能
空格 向下翻一页
Enter 向下翻一行
q 退出

less ------ 增强版分页查看(推荐)

复制代码
less [选项] 文件名
选项 作用
-N 显示行号
-i 搜索时忽略大小写
-S 禁止自动换行
+F 实时追踪文件末尾(类似 tail -f

交互操作:

按键 功能
空格 / PageDown 向下翻页
b / PageUp 向上翻页
/keyword 向下搜索关键词
?keyword 向上搜索关键词
G 跳到文件末尾
gg 跳到文件开头
q 退出

💡 推荐用 less 替代 more,因为 less 支持上下翻页和文本搜索,功能更完整。


11. head / tail

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

复制代码
head [选项] 文件

head file.txt          # 默认显示前 10 行
head -n 5 file.txt     # 显示前 5 行
head -c 100 file.txt   # 显示前 100 字节

tail ------ 查看文件末尾

复制代码
tail [选项] 文件
选项 作用
-n 指定显示行数
-f 实时跟踪文件更新(监控日志必备)
-c 指定显示字节数
复制代码
tail file.txt             # 默认显示最后 10 行
tail -n 20 file.log       # 显示最后 20 行
tail -f /var/log/nginx/error.log   # 实时监控日志(Ctrl+C 退出)

组合技巧 ------ 提取文件中间部分:

复制代码
head -n 20 file.log | tail -n 10   # 提取第 11~20 行
命令 查看位置 典型用途
head 文件开头 预览文件结构、CSV 表头
tail 文件末尾 监控日志、查看最新记录

12. date / cal

date ------ 显示或设置系统时间

复制代码
date                        # 显示当前时间
date +"%Y-%m-%d"            # 格式化输出:2024-06-11
date +"%Y-%m-%d %H:%M:%S"   # 完整日期时间
date -d "3 days ago"        # 计算 3 天前的日期
date +%s                    # 输出 Unix 时间戳

常用格式符:

符号 含义 示例
%Y 四位年份 2024
%m 月份 06
%d 日期 11
%H:%M:%S 时分秒 14:30:45
%A 星期全称 Tuesday

cal ------ 查看日历

复制代码
cal           # 显示当月日历
cal 2025      # 显示 2025 年全年日历
cal -3        # 显示上月、本月、下月
cal -y        # 显示当年日历

13. find

作用: 在目录中递归搜索文件,支持按名称、大小、时间、权限等多种条件过滤。

复制代码
find [路径] [条件] [操作]

按名称搜索:

复制代码
find /etc -name "*.conf"       # 搜索 .conf 文件(区分大小写)
find . -iname "readme*"        # 搜索(不区分大小写)

按类型/大小/时间搜索:

复制代码
find ~ -type f -size +1M       # 家目录下大于 1MB 的文件
find /tmp -size -100k          # /tmp 下小于 100KB 的文件
find /backup -mtime +30        # 30 天前修改过的文件

限制搜索深度:

复制代码
find . -maxdepth 2 -name "*.conf"   # 仅搜索当前目录和一级子目录

14. grep

作用: 在文件或输入流中搜索匹配指定模式的文本行,支持正则表达式。

复制代码
grep [选项] "搜索模式" [文件]
选项 作用
-i 忽略大小写
-v 反向匹配(显示不含该模式的行)
-n 显示行号
-r 递归搜索子目录
-c 统计匹配行数
-A NUM 显示匹配行及后 N 行
-w 全词匹配
复制代码
grep -i "error" /var/log/syslog             # 忽略大小写搜索
grep -n "main()" program.c                  # 显示行号
grep -r "TODO" ~/projects/                  # 递归搜索目录
grep -v "^#" /etc/nginx/nginx.conf          # 过滤注释行
grep -i -A 2 "error" error.log             # 显示错误及后 2 行
ps aux | grep -v "grep" | grep "nginx"      # 查找 nginx 进程

常用正则:

模式 含义
^ 行首
$ 行尾
. 任意单个字符
* 前一字符 0 次或多次
[abc] 匹配 a、b 或 c

15. zip / unzip / tar

zip ------ 创建压缩包

复制代码
zip [选项] 压缩包.zip 文件或目录

zip notes.zip notes.txt              # 压缩单个文件
zip -r website.zip /var/www/html/    # 递归压缩目录
zip -e secure.zip private.txt        # 加密压缩(会提示输入密码)
zip -r project.zip src/ -x "*.tmp"  # 排除 .tmp 文件

unzip ------ 解压文件

复制代码
unzip archive.zip                    # 解压到当前目录
unzip project.zip -d ~/projects/     # 解压到指定目录
unzip -l backup.zip                  # 查看压缩包内容(不解压)
unzip -P mypassword secure.zip       # 解压加密文件

tar ------ 打包 / 解包(Linux 首选)

复制代码
tar [选项] 归档文件名 [文件或目录]

常用操作:

复制代码
# 打包并压缩(gzip)
tar -czvf backup.tar.gz /data/

# 解压到当前目录
tar -xzvf backup.tar.gz

# 解压到指定目录
tar -xzvf backup.tar.gz -C /backup/

# 查看归档内容
tar -tzvf backup.tar.gz

选项含义:

选项 作用
-c 创建归档
-x 解压归档
-t 查看归档内容
-z 使用 gzip 压缩
-j 使用 bzip2 压缩
-v 显示过程
-f 指定归档文件名

压缩格式对比:

格式 选项 压缩率 速度
.tar -cf 无压缩 最快
.tar.gz -czf 中等 较快
.tar.bz2 -cjf
.tar.xz -cJf 最高 最慢

💡 选哪个? Linux 系统管理优先用 tar;需要跨平台(Windows/macOS 兼容)用 zip


16. 常用快捷键

快捷键 功能 使用场景
Tab 自动补全命令/路径 输入 ls /et 按 Tab 自动补全为 ls /etc/
Ctrl+C 强制终止当前进程 停止卡住或不想等的命令
Ctrl+D 退出终端或结束输入 相当于输入 exit

其他常用命令:

复制代码
uname -a          # 查看系统信息(内核版本、主机名等)
man ls            # 查看 ls 命令的详细手册
sudo reboot       # 重启系统
sudo shutdown -h now    # 立即关机
sudo shutdown -r +10    # 10 分钟后重启
sudo shutdown -c        # 取消计划的关机

17. Shell 运行原理

Shell 是什么?

Shell 是用户与 Linux 内核之间的桥梁,本质是一个命令行解释器。

用户无法直接操作内核(太底层、太危险),Shell 负责:

  1. 解析用户输入的命令
  2. 转交给内核执行
  3. 返回执行结果给用户

📌 类比理解: 内核像汽车发动机,用户是驾驶员,Shell 就是方向盘和油门------把你的简单动作翻译成发动机能执行的指令。

ls 命令的执行流程

复制代码
用户输入 ls -l
    ↓
Shell 解析命令参数
    ↓
Shell 调用 execve() 系统调用启动 ls 程序
    ↓
内核执行 ls,访问文件系统
    ↓
内核返回文件列表
    ↓
Shell 格式化输出到终端

输出重定向

符号 作用
> 覆盖写入文件
>> 追加写入文件
2> 错误信息覆盖写入
2>> 错误信息追加写入
/dev/null 丢弃输出(黑洞)
复制代码
echo "hello" > file.txt         # 覆盖写入
echo "world" >> file.txt        # 追加写入
ls /no_exist 2>/dev/null        # 错误信息不显示

管道符 |

管道将前一个命令的输出 作为后一个命令的输入,实现命令的串联协作。

复制代码
ls -l /usr/bin | more              # 分页查看目录列表
tail -f app.log | grep "ERROR"     # 实时过滤日志中的错误
ps aux | grep "nginx"              # 查找 nginx 进程

总结: 掌握本文中的命令,已经能应对绝大多数 Linux 日常操作。建议在虚拟机或云服务器中逐一练习,熟能生巧。


如有问题欢迎评论区留言交流!觉得有帮助的话点个赞 👍

相关推荐
A小辣椒2 天前
TShark:Wireshark CLI 功能
linux
A小辣椒2 天前
TShark:基础知识
linux
AlfredZhao2 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao3 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334663 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪3 天前
linux 拷贝文件或目录到指定的位置
linux
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush44 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5204 天前
Linux 11 动态监控指令top
linux