Linux 命令是运维、开发、云计算、网络管理中最基础也是最重要的技能。
掌握 Linux 基础命令,可以完成:
- 文件和目录管理
- 文本查看与编辑
- 权限管理
- 用户管理
- 进程管理
- 网络排查
- 磁盘和系统监控
- 软件安装
- 日志分析
一、命令基本格式
Linux 命令通常由三部分组成:
bash
命令 [选项] [参数]
例如:
bash
ls -l /etc
含义:
| 部分 | 说明 |
|---|---|
ls |
命令 |
-l |
选项 |
/etc |
参数 |
再比如:
bash
cp -r /data/a /backup/
含义:
| 部分 | 说明 |
|---|---|
cp |
复制命令 |
-r |
递归复制 |
/data/a |
源目录 |
/backup/ |
目标目录 |
二、目录切换与路径命令
1. pwd 查看当前目录
bash
pwd
示例输出:
bash
/home/user
说明:
pwd 表示 print working directory,用于显示当前所在目录。
2. cd 切换目录
bash
cd /etc
cd /home/user
cd ..
cd ~
cd -
常见用法:
| 命令 | 说明 |
|---|---|
cd /etc |
进入 /etc 目录 |
cd .. |
返回上一级目录 |
cd ~ |
返回当前用户家目录 |
cd - |
返回上一次所在目录 |
cd / |
返回根目录 |
3. 绝对路径与相对路径
绝对路径
从 / 根目录开始的路径:
bash
/etc/nginx/nginx.conf
/home/user/file.txt
相对路径
相对于当前目录的路径:
bash
./file.txt
../backup
logs/error.log
| 符号 | 含义 |
|---|---|
. |
当前目录 |
.. |
上一级目录 |
~ |
当前用户家目录 |
/ |
根目录 |
三、查看目录和文件
1. ls 查看目录内容
bash
ls
ls -l
ls -a
ls -lh
ls -la
常用选项:
| 选项 | 说明 |
|---|---|
-l |
长格式显示 |
-a |
显示隐藏文件 |
-h |
人类可读大小 |
-R |
递归显示 |
-t |
按修改时间排序 |
示例:
bash
ls -lah /var/log
2. tree 树形显示目录
bash
tree
tree /etc
tree -L 2
如果没有安装:
bash
sudo apt install tree
四、文件和目录操作
1. touch 创建空文件
bash
touch file.txt
touch a.txt b.txt c.txt
也可以更新文件修改时间。
2. mkdir 创建目录
bash
mkdir test
mkdir -p a/b/c
| 命令 | 说明 |
|---|---|
mkdir test |
创建单级目录 |
mkdir -p a/b/c |
创建多级目录 |
3. cp 复制文件或目录
复制文件:
bash
cp a.txt b.txt
复制到目录:
bash
cp a.txt /tmp/
复制目录:
bash
cp -r dir1 dir2
常用选项:
| 选项 | 说明 |
|---|---|
-r |
递归复制目录 |
-p |
保留权限和时间 |
-a |
归档模式,常用于备份 |
-v |
显示过程 |
-i |
覆盖前提示 |
示例:
bash
cp -av /data/project /backup/
4. mv 移动或重命名
重命名:
bash
mv old.txt new.txt
移动文件:
bash
mv file.txt /tmp/
移动目录:
bash
mv dir1 /opt/
5. rm 删除文件或目录
删除文件:
bash
rm file.txt
删除目录:
bash
rm -r dir
强制删除:
bash
rm -rf dir
常用选项:
| 选项 | 说明 |
|---|---|
-r |
递归删除 |
-f |
强制删除 |
-i |
删除前确认 |
危险命令示例:
bash
rm -rf /
rm -rf /*
不要执行这些命令,可能导致系统损坏。
五、查看文件内容
1. cat 查看完整文件
bash
cat file.txt
显示行号:
bash
cat -n file.txt
适合小文件。
2. less 分页查看文件
bash
less /var/log/syslog
常用操作:
| 按键 | 说明 |
|---|---|
| 空格 | 下一页 |
b |
上一页 |
/关键词 |
搜索 |
n |
下一个匹配 |
q |
退出 |
适合大文件。
3. head 查看文件开头
bash
head file.txt
head -n 20 file.txt
4. tail 查看文件末尾
bash
tail file.txt
tail -n 50 file.txt
tail -f /var/log/nginx/access.log
tail -f 常用于实时查看日志。
5. more
bash
more file.txt
分页查看文件,功能比 less 少。
六、文本搜索与处理
1. grep 搜索文本
bash
grep "error" file.log
grep -i "error" file.log
grep -rn "keyword" /etc
常用选项:
| 选项 | 说明 |
|---|---|
-i |
忽略大小写 |
-n |
显示行号 |
-r |
递归搜索 |
-v |
反向匹配 |
-E |
扩展正则 |
--color |
高亮显示 |
示例:
bash
grep -rn "listen" /etc/nginx/
2. find 查找文件
bash
find / -name "nginx.conf"
find /var/log -name "*.log"
find /tmp -type f -mtime +7
常用条件:
| 条件 | 说明 |
|---|---|
-name |
按名称查找 |
-type f |
普通文件 |
-type d |
目录 |
-size +100M |
大于 100M |
-mtime +7 |
7 天前修改 |
-user root |
属于某用户 |
示例:
bash
find /var/log -type f -name "*.log" -size +100M
删除查找到的文件:
bash
find /tmp -type f -mtime +7 -delete
3. which 查看命令路径
bash
which nginx
which python3
4. whereis
bash
whereis nginx
查找命令、源码、帮助文档路径。
5. awk 按列处理文本
bash
awk '{print $1}' file.txt
awk '{print $1,$3}' file.txt
示例:
bash
ps aux | awk '{print $1,$2,$11}'
6. sed 文本替换
bash
sed 's/old/new/' file.txt
sed -i 's/old/new/g' file.txt
说明:
| 命令 | 含义 |
|---|---|
s/old/new/ |
替换每行第一个 old |
s/old/new/g |
替换所有 old |
-i |
直接修改文件 |
七、文件压缩与解压
1. tar
打包:
bash
tar -cvf file.tar dir/
打包并 gzip 压缩:
bash
tar -czvf file.tar.gz dir/
解压:
bash
tar -xvf file.tar
tar -xzvf file.tar.gz
常用选项:
| 选项 | 说明 |
|---|---|
-c |
创建归档 |
-x |
解压 |
-v |
显示过程 |
-f |
指定文件 |
-z |
gzip 压缩 |
-j |
bzip2 压缩 |
-J |
xz 压缩 |
2. zip 和 unzip
bash
zip -r project.zip project/
unzip project.zip
3. gzip 和 gunzip
bash
gzip file.txt
gunzip file.txt.gz
八、权限管理命令
1. chmod 修改权限
bash
chmod 755 script.sh
chmod +x script.sh
chmod 644 file.txt
常见权限:
| 权限 | 含义 |
|---|---|
755 |
所有者读写执行,其他读执行 |
644 |
所有者读写,其他只读 |
600 |
仅所有者读写 |
700 |
仅所有者读写执行 |
2. chown 修改所有者
bash
sudo chown user file.txt
sudo chown user:group file.txt
sudo chown -R www-data:www-data /var/www/html
3. chgrp 修改所属组
bash
sudo chgrp dev file.txt
4. umask 查看默认权限
bash
umask
umask 022
九、用户和用户组命令
1. 查看当前用户
bash
whoami
id
groups
2. 查看登录用户
bash
who
w
3. 添加用户
bash
sudo useradd -m username
sudo passwd username
4. 删除用户
bash
sudo userdel username
sudo userdel -r username
5. 添加用户组
bash
sudo groupadd dev
6. 用户加入组
bash
sudo usermod -aG dev username
十、进程管理命令
1. ps 查看进程
bash
ps aux
ps -ef
ps aux | grep nginx
2. top 实时监控进程
bash
top
常用按键:
| 按键 | 说明 |
|---|---|
q |
退出 |
P |
按 CPU 排序 |
M |
按内存排序 |
k |
杀进程 |
3. htop
bash
htop
更友好的进程监控工具,可能需要安装。
4. kill 终止进程
bash
kill PID
kill -9 PID
| 信号 | 含义 |
|---|---|
15 |
正常终止,默认 |
9 |
强制终止 |
1 |
重新加载配置 |
5. killall
bash
killall nginx
按进程名终止。
十一、系统资源查看
1. CPU 信息
bash
lscpu
cat /proc/cpuinfo
2. 内存信息
bash
free -h
3. 磁盘空间
bash
df -h
4. 目录大小
bash
du -sh /var/log
du -sh *
5. 系统负载
bash
uptime
6. 系统版本
bash
uname -a
cat /etc/os-release
十二、网络基础命令
1. 查看 IP 地址
bash
ip addr
ip a
老系统也可能使用:
bash
ifconfig
2. 查看路由
bash
ip route
route -n
3. 测试连通性
bash
ping 8.8.8.8
ping www.baidu.com
4. 测试端口
bash
telnet host 80
nc -vz host 80
5. 查看监听端口
bash
ss -tulnp
netstat -tulnp
推荐使用:
bash
ss -tulnp
6. DNS 查询
bash
nslookup www.baidu.com
dig www.baidu.com
7. 下载文件
bash
wget https://example.com/file.tar.gz
curl -O https://example.com/file.tar.gz
测试接口:
bash
curl -I https://example.com
curl http://localhost:8080/api
十三、服务管理命令 systemctl
现代 Linux 通常使用 systemd 管理服务。
1. 查看服务状态
bash
systemctl status nginx
2. 启动服务
bash
sudo systemctl start nginx
3. 停止服务
bash
sudo systemctl stop nginx
4. 重启服务
bash
sudo systemctl restart nginx
5. 重载配置
bash
sudo systemctl reload nginx
6. 开机自启
bash
sudo systemctl enable nginx
取消开机自启:
bash
sudo systemctl disable nginx
7. 查看系统日志
bash
journalctl -u nginx
journalctl -u nginx -f
journalctl -xe
十四、软件包管理
1. Ubuntu / Debian:apt
bash
sudo apt update
sudo apt install nginx
sudo apt remove nginx
sudo apt upgrade
2. CentOS 7:yum
bash
sudo yum install nginx
sudo yum remove nginx
sudo yum update
3. CentOS 8+ / Fedora:dnf
bash
sudo dnf install nginx
sudo dnf remove nginx
sudo dnf update
4. Arch:pacman
bash
sudo pacman -S nginx
sudo pacman -R nginx
sudo pacman -Syu
十五、管道与重定向
1. 管道 |
把前一个命令的输出交给后一个命令。
bash
ps aux | grep nginx
cat file.log | grep error
2. 输出重定向 >
覆盖写入文件:
bash
echo "hello" > a.txt
3. 追加重定向 >>
追加到文件末尾:
bash
echo "world" >> a.txt
4. 错误重定向
bash
command 2> error.log
command > all.log 2>&1
十六、环境变量命令
1. 查看变量
bash
echo $PATH
echo $HOME
echo $SHELL
2. 设置临时变量
bash
export NAME="xiaozhou"
echo $NAME
3. 永久变量
写入:
bash
~/.bashrc
/etc/profile
然后执行:
bash
source ~/.bashrc
十七、关机与重启
bash
sudo reboot
sudo shutdown -h now
sudo shutdown -r now
sudo poweroff
说明:
| 命令 | 功能 |
|---|---|
reboot |
重启 |
shutdown -h now |
立即关机 |
shutdown -r now |
立即重启 |
poweroff |
关机 |
十八、帮助命令
1. man
bash
man ls
man chmod
退出按:
bash
q
2. --help
bash
ls --help
chmod --help
3. info
bash
info ls
十九、常用组合命令示例
1. 查找 Nginx 进程
bash
ps aux | grep nginx
2. 实时查看日志错误
bash
tail -f /var/log/nginx/error.log
3. 查找大文件
bash
find / -type f -size +1G 2>/dev/null
4. 查看端口占用
bash
ss -tulnp | grep 80
5. 查看磁盘占用最大的目录
bash
du -sh * | sort -hr | head
6. 统计日志中 IP 访问次数
bash
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head
7. 批量替换文本
bash
sed -i 's/old/new/g' file.txt
8. 查找包含关键字的文件
bash
grep -rn "keyword" /path
二十、Linux 基础命令学习建议
入门必须掌握
text
pwd cd ls mkdir touch cp mv rm cat less head tail grep find chmod chown ps top kill df du free ip ping systemctl
运维常用高频命令
text
tail -f
grep -rn
ps aux
ss -tulnp
df -h
du -sh
systemctl status
journalctl -u
docker ps
crontab -l
学习路线
| 阶段 | 内容 |
|---|---|
| 第 1 阶段 | 文件目录操作 |
| 第 2 阶段 | 权限、用户、进程 |
| 第 3 阶段 | 网络、磁盘、服务 |
| 第 4 阶段 | grep、awk、sed |
| 第 5 阶段 | Shell 脚本与自动化 |
总结
Linux 基础命令可以分为几大类:
text
目录命令:pwd、cd、ls
文件命令:touch、mkdir、cp、mv、rm
查看命令:cat、less、head、tail
搜索命令:grep、find
权限命令:chmod、chown、chgrp
进程命令:ps、top、kill
系统命令:df、du、free、uname
网络命令:ip、ping、ss、curl
服务命令:systemctl、journalctl
软件命令:apt、yum、dnf
掌握这些命令后,就可以完成大多数 Linux 日常管理、服务器运维和基础故障排查工作。