Linux命令简介
《Linux 命令简介》深度学习版 🧠
🎉 欢迎来到 Linux 系统中最重要的基础模块之一 —— 命令行操作。无论你是系统管理员、开发人员还是运维工程师,掌握 Linux 常用命令是高效使用系统的“必修课”。
本章将带你从零开始,逐步了解 Linux 命令的分类、结构、执行机制,并通过实际案例帮助你快速上手。
🎯 学习目标
- 理解 Linux 命令的基本构成与执行原理
- 掌握最常用的 30+ 条核心命令及其用途
- 能够在 Ubuntu 系统中熟练使用命令完成日常任务
- 了解命令分类(内置、外部、别名、函数)
- 理解命令参数、选项、管道等高级用法
- 避免常见误操作,提升命令使用的安全性和效率
⭐ 核心重点(知识点速览)
分类 | 内容 | 示例 |
---|---|---|
内置命令 | Shell 自带的功能 | cd , echo , export |
外部命令 | 系统安装的独立程序 | ls , grep , tar |
别名命令 | 用户自定义简写 | ll='ls -l' |
函数命令 | 自定义组合逻辑 | myfunc() { echo "Hello"; } |
参数类型 | 短选项 -a 、长选项 --all |
ls -l --time-style=long-iso |
管道机制 | 将前一个命令输出作为后一个输入 | ps aux | grep nginx |
命令历史 | 查看和重复执行历史命令 | history , !5 |
📖 详细讲解
一、Linux 命令的组成结构 🔧
一个完整的 Linux 命令通常由以下几个部分组成:
command [options] [arguments]
command
:命令本身(如ls
,grep
)[options]
:可选参数,控制命令行为(如-l
,--help
)[arguments]
:传给命令的具体内容(如文件名、路径)
✅ 示例:
grep -r "error" /var/log/
解释:
grep
:命令-r
:递归搜索(选项)"error"
:查找的关键字(参数)/var/log/
:搜索的目录(参数)
二、命令的四大类型 🧩
类型 | 描述 | 示例 |
---|---|---|
内置命令 | Shell 解释器内部实现的命令 | cd , alias , source |
外部命令 | 系统上的独立可执行程序 | ls , cat , find |
别名命令 | 用户自定义的命令缩写 | ll='ls -l' |
函数命令 | 用户自定义的命令组合 | myfunc() { echo "Hello"; } |
✅ 如何判断命令类型?
使用 type
命令查看命令来源:
type ls # 外部命令
type cd # 内置命令
type ll # 如果有别名,则显示 alias
三、常用命令大全 🛠️(按功能分类)
📁 文件与目录操作
命令 | 功能 | 示例 |
---|---|---|
ls |
列出目录内容 | ls -la |
cd |
切换当前目录 | cd /home/user |
pwd |
显示当前工作目录 | pwd |
mkdir |
创建目录 | mkdir new_folder |
rmdir |
删除空目录 | rmdir old_dir |
rm |
删除文件或目录 | rm -rf folder |
cp |
拷贝文件 | cp file1.txt file2.txt |
mv |
移动或重命名文件 | mv old.txt new.txt |
touch |
创建空文件或更新时间戳 | touch log.txt |
📄 文本处理
命令 | 功能 | 示例 |
---|---|---|
cat |
查看文件内容 | cat file.txt |
head |
查看文件开头几行 | head -n 20 file.txt |
tail |
查看文件末尾几行 | tail -f /var/log/syslog |
grep |
文本搜索 | grep "error" file.txt |
awk |
强大的文本分析工具 | awk '{print $1}' file.txt |
sed |
流编辑器,用于替换、删除等 | sed 's/old/new/g' file.txt |
wc |
统计字符数、单词数、行数 | wc -l file.txt |
🧰 系统管理
命令 | 功能 | 示例 |
---|---|---|
ps |
查看进程信息 | ps aux |
top |
实时监控系统资源 | top |
htop |
更友好的 top 工具(需安装) | htop |
kill |
终止进程 | kill 1234 |
df |
查看磁盘空间 | df -h |
du |
查看目录占用大小 | du -sh /home |
uptime |
查看系统运行时间 | uptime |
whoami |
显示当前用户 | whoami |
id |
显示用户 UID/GID | id |
date |
显示或设置时间 | date +"%Y-%m-%d %T" |
🔒 权限管理
命令 | 功能 | 示例 |
---|---|---|
chmod |
修改文件权限 | chmod 755 script.sh |
chown |
修改文件拥有者 | chown user:group file.txt |
su |
切换用户 | su root |
sudo |
以管理员身份执行 | sudo apt update |
🌐 网络相关
命令 | 功能 | 示例 |
---|---|---|
ping |
测试网络连通性 | ping google.com |
traceroute |
显示路由路径 | traceroute google.com |
curl |
下载网页或 API 数据 | curl https://example.com |
wget |
下载文件 | wget http://example.com/file.zip |
ssh |
安全远程连接 | ssh user@remote_ip |
scp |
远程复制文件 | scp local.txt user@remote:/tmp/ |
ifconfig |
查看网卡信息(已弃用) | ifconfig |
ip |
新一代网络配置命令 | ip addr show |
📦 软件包管理(Ubuntu)
命令 | 功能 | 示例 |
---|---|---|
apt update |
更新软件源列表 | apt update |
apt install |
安装软件 | apt install curl |
apt remove |
卸载软件 | apt remove nginx |
dpkg -i |
安装本地 .deb 包 | dpkg -i package.deb |
四、命令执行流程详解 🔄
当你在终端输入一个命令并按下回车键时,Shell 会按照以下顺序来解析和执行命令:
-
检查是否为别名
- 如
ll
可能是一个别名:alias ll='ls -l'
- 如
-
检查是否为函数
- 用户或脚本中定义的函数优先于外部命令
-
检查是否为 Shell 内置命令
- 如
cd
,echo
,source
- 如
-
检查 PATH 环境变量中的路径
- 在
/bin
,/usr/bin
,/sbin
等目录下查找可执行文件
- 在
五、命令参数格式规范 📏
✅ 短选项(Single-letter options)
- 使用
-
加单个字母表示 - 可合并多个选项,如
-lr
ls -l -r # 等价于 ls -lr
✅ 长选项(Long options)
- 使用
--
加完整单词表示 - 更易读,适合复杂参数
ls --reverse --time-style=long-iso
六、管道与组合命令 🔗
✅ 管道符 |
将前一个命令的输出作为后一个命令的输入
ps aux | grep nginx
✅ 后台执行 &
让命令在后台运行
sleep 10 &
✅ 命令组合 ;
和 &&
;
:依次执行两个命令&&
:前一个成功才执行下一个
echo "Start"; echo "End"
mkdir test && touch test/file.txt
七、不同系统的差异与注意事项 ⚠️
项目 | Bash | Dash (Ubuntu 默认) | zsh |
---|---|---|---|
支持别名 | ✅ | ❌(默认不启用) | ✅ |
支持 [[ ]] |
✅ | ❌ | ✅ |
支持数组 | ✅ | ✅ | ✅ |
推荐脚本开头 | #!/bin/bash |
#!/bin/sh |
#!/bin/zsh |
注意子 shell 变量作用域 | 是 | 是 | 是 |
📝 小贴士:
- 在 Ubuntu 中默认
/bin/sh
是dash
,建议使用bash
编写脚本。 - 不同发行版预装的命令可能略有不同,可通过
which
或command -v
查看是否存在。 - 使用双引号包裹变量,防止路径含空格出错。
八、实战案例分析 🧪
🎯 场景一:批量查找日志中的错误信息 🔍
grep -r "error" /var/log/ | tee error_log.txt
解释:
grep -r
:递归查找所有日志文件中的 "error"tee
:同时输出到屏幕和文件error_log.txt
🎯 场景二:实时监控 CPU 占用最高的进程 📊
ps aux --sort=-%cpu | head -n 10
解释:
--sort=-%cpu
:按 CPU 使用率降序排序head -n 10
:只显示前 10 行
🎯 场景三:定时清理临时文件 🗑️
find /tmp -type f -mtime +7 -exec rm {} \;
解释:
- 查找
/tmp
目录下修改时间超过 7 天的文件并删除
🎯 场景四:一键下载并解压文件 📦
wget https://example.com/archive.tar.gz && tar zxvf archive.tar.gz
解释:
wget
:下载文件tar zxvf
:解压.tar.gz
文件
九、常见陷阱与解决方案 ❗
问题 | 原因 | 解决方法 |
---|---|---|
command not found |
命令未安装或不在 PATH 中 | 使用 which 或 apt install |
Permission denied |
权限不足 | 使用 sudo |
ambiguous redirect |
文件名含有空格 | 使用双引号包裹变量 |
No such file or directory |
文件不存在 | 使用 ls 或 test -f 检查 |
Argument list too long |
文件太多导致命令行超限 | 使用 find 替代 rm * |
Too many arguments |
参数过多 | 使用 xargs 或循环处理 |
十、总结一句话 🧠
Linux 命令是操作系统的核心交互方式,掌握其结构、分类、执行机制以及常用命令的使用,是你成为合格 Linux 用户的第一步。
如果你已经准备好进入下一阶段的学习(比如 Shell 编程、正则表达式、系统调优等),欢迎继续告诉我 😊