📁 一、文件与目录操作
| | |
|---|
pwd | | pwd |
ls | | ls -la |
cd | | cd /home |
mkdir | | mkdir -p a/b/c |
rmdir | | rmdir dir1 |
rm | | rm -rf dir/ |
cp | | cp -r dir1/ dir2/ |
mv | | mv old.txt new.txt |
touch | | touch file.txt |
find | | find / -name "*.log" -mtime +7 |
tree | | tree -L 2 /home |
ln | | ln -s /path/target link_name |
stat | | stat file.txt |
file | | file unknown_file |
du | | du -sh * |
df | | df -h |
📄 二、文件查看与编辑
| | |
|---|
cat | | cat file.txt |
less | | less /var/log/syslog |
head | | head -n 20 file.txt |
tail | | tail -f /var/log/syslog |
tac | | tac file.txt |
nl | | nl file.txt |
wc | | wc -l file.txt |
sort | | sort -n -k2 file.txt |
uniq | | sort file.txt | uniq -c |
diff | | diff file1.txt file2.txt |
tee | | ls | tee list.txt |
📝 nano 快捷操作
nano file.txt # 打开编辑
Ctrl+O 保存 Ctrl+X 退出
Ctrl+K 剪切行 Ctrl+U 粘贴行
Ctrl+W 搜索
📝 vim 基础操作
vim file.txt # 打开
i / a # 进入编辑模式
Esc # 回到命令模式
:wq 或 ZZ # 保存退出
:q! # 不保存强制退出
/pattern # 向下搜索
n # 下一个匹配
:%s/old/new/g # 全局替换
dd # 删除一行
yy # 复制一行
p # 粘贴
u # 撤销
🔐 三、用户与权限
权限数字表示
r=4 w=2 x=1
7=rwx 6=rw- 5=r-x 4=r-- 0=---
| | |
|---|
chmod | | chmod 755 script.sh |
chown | | chown user:group file.txt |
chgrp | | chgrp devops project/ |
useradd | | useradd -m -s /bin/bash newuser |
userdel | | userdel -r olduser |
passwd | | passwd username |
su | | su - username |
sudo | | sudo apt update |
whoami | | whoami |
id | | id username |
groups | | groups username |
umask | | umask 022 |
⚙️ 四、进程管理
| | |
|---|
ps | | ps aux |
top | | top -p 1234 |
htop | | htop |
kill | | kill -9 1234 |
killall | | killall nginx |
pkill | | pkill -f "python app.py" |
bg | | bg %1 |
fg | | fg %1 |
jobs | | jobs -l |
nohup | | nohup ./server & |
& | | command & |
nice | | nice -n 10 ./task |
renice | | renice -n 5 -p 1234 |
pstree | | pstree -p |
常用信号
SIGHUP(1) 重新加载配置
SIGINT(2) 中断 (Ctrl+C)
SIGKILL(9) 强制终止
SIGTERM(15) 正常终止(默认)
SIGTSTP(20) 暂停 (Ctrl+Z)
🌐 五、网络命令
| | |
|---|
ping | | ping -c 4 google.com |
ip | | ip addr show |
ifconfig | | ifconfig eth0 |
ss | | ss -tulnp |
netstat | | netstat -tulnp |
curl | | curl -sL url -o file |
wget | | wget -c url |
ssh | | ssh user@host -p 22 |
scp | | scp file user@host:/path/ |
dig | | dig google.com A |
nslookup | | nslookup google.com |
traceroute | | traceroute google.com |
ufw | | ufw allow 80/tcp |
📦 六、压缩与解压
| | |
|---|
.tar.gz | tar -czvf a.tar.gz dir/ | tar -xzvf a.tar.gz |
.tar.bz2 | tar -cjvf a.tar.bz2 dir/ | tar -xjvf a.tar.bz2 |
.tar.xz | tar -cJvf a.tar.xz dir/ | tar -xJvf a.tar.xz |
.tar | tar -cvf a.tar dir/ | tar -xvf a.tar |
.gz | gzip file | gunzip file.gz |
.bz2 | bzip2 file | bzip2 -d file.bz2 |
.zip | zip -r a.zip dir/ | unzip a.zip |
.xz | xz file | xz -d file.xz |
💡 tar参数记忆:create / extract / test(list) / z(gzip) / j(bzip2) / J(xz) / verbose / file
💾 七、系统信息
| | |
|---|
uname | | uname -a |
lsb_release | | lsb_release -a |
hostname | | hostname |
uptime | | uptime |
free | | free -h |
lscpu | | lscpu |
lsblk | | lsblk -f |
blkid | | blkid |
mount | | mount /dev/sdb1 /mnt/usb |
umount | | umount /mnt/usb |
dmesg | | dmesg | tail -20 |
journalctl | | journalctl -u nginx --since today |
💿 八、磁盘管理
| | |
|---|
df | | df -hT |
du | | du -sh /home/* |
fdisk | | fdisk -l (查看) / fdisk /dev/sdb (操作) |
mkfs | | mkfs.ext4 /dev/sdb1 |
fsck | | fsck -y /dev/sdb1 |
dd | | dd if=/dev/sda of=disk.img bs=4M |
lsblk | | lsblk -f |
parted | | parted /dev/sdb print |
📚 九、软件包管理
Ubuntu/Debian (APT)
sudo apt update # 更新软件源索引
sudo apt upgrade # 升级已安装包
sudo apt install pkg # 安装
sudo apt remove pkg # 卸载(保留配置)
sudo apt purge pkg # 卸载(含配置)
sudo apt autoremove # 清理无用依赖
sudo apt search keyword # 搜索
sudo apt show pkg # 查看包详情
dpkg -l # 列出所有已安装包
dpkg -i package.deb # 安装本地deb包
CentOS/RHEL (DNF/YUM)
sudo dnf install pkg
sudo dnf remove pkg
sudo dnf update
sudo dnf search keyword
dnf list installed
🔧 十、管道与重定向
| | |
|---|
| | | ps aux | grep nginx |
> | | echo "hello" > file.txt |
>> | | echo "world" >> file.txt |
2> | | cmd 2> error.log |
&> | | cmd &> all.log |
< | | sort < list.txt |
tee | | cmd | tee log.txt |
xargs | | find . -name "*.log" | xargs rm |
🗡️ 十一、文本处理三剑客
grep — 文本过滤
grep "error" /var/log/syslog # 搜索关键字
grep -i "error" file # 忽略大小写
grep -rn "TODO" ./src/ # 递归+行号
grep -E "err|warn|fail" file # 正则(扩展)
grep -v "^#" config.conf # 排除注释行
grep -c "pattern" file # 统计匹配行数
awk — 列处理
awk '{print $1, $3}' file # 打印第1、3列
awk -F: '{print $1}' /etc/passwd # 指定冒号分隔
awk '$3 > 100 {print $1, $3}' file # 条件过滤
awk '{sum+=$1} END{print sum}' file # 求和
awk 'NR==1 || NR==5' file # 打印第1和5行
sed — 流编辑
sed 's/old/new/g' file # 全局替换(不修改原文件)
sed -i 's/old/new/g' file # 直接修改原文件 ⚠️
sed -n '10,20p' file # 打印第10-20行
sed '/^#/d' file # 删除注释行
sed -i '1i\# Header' file # 在第1行前插入
sed '2d' file # 删除第2行
⏰ 十二、定时任务
crontab 语法
分 时 日 月 周 命令
* * * * * command
┬ ┬ ┬ ┬ ┬
│ │ │ │ └── 周几(0-7, 0和7都是周日)
│ │ │ └────── 月份(1-12)
│ │ └────────── 日期(1-31)
│ └────────────── 小时(0-23)
└────────────────── 分钟(0-59)
常用示例
crontab -e # 编辑定时任务
crontab -l # 查看当前任务
crontab -r # 删除所有任务
# 每5分钟执行
*/5 * * * * /home/user/check.sh
# 每天凌晨3点备份
0 3 * * * /home/user/backup.sh
# 每周一上午9点
0 9 * * 1 /home/user/report.sh
# 每月1号0点
0 0 1 * * /home/user/monthly.sh
at — 一次性定时任务
at 10:00 AM # 今天10点执行
at now + 1 hour # 1小时后执行
atq # 查看待执行任务
atrm 1 # 删除任务1
🔌 十三、系统服务管理 (systemctl)
systemctl start nginx # 启动服务
systemctl stop nginx # 停止服务
systemctl restart nginx # 重启服务
systemctl reload nginx # 重新加载配置(不中断)
systemctl status nginx # 查看状态
systemctl enable nginx # 开机自启
systemctl disable nginx # 取消自启
systemctl is-active nginx # 是否运行中
systemctl is-enabled nginx # 是否自启
systemctl list-units --type=service # 列出所有服务
systemctl list-units --state=failed # 列出失败服务
⌨️ 十四、常用快捷键
| |
|---|
Ctrl+C | |
Ctrl+Z | |
Ctrl+D | |
Ctrl+L | |
Ctrl+R | |
Ctrl+A | |
Ctrl+E | |
Ctrl+U | |
Ctrl+K | |
Ctrl+W | |
Tab | |
Tab Tab | |
↑/↓ | |
!! | |
sudo !! | |
🚪 十五、各种退出方式速查
| |
|---|
| :wq |
| Ctrl+X |
| q |
| q |
| q |
| exit() |
| exit |
| exit |
| exit |
| Ctrl+C |
📌 温馨提示:rm -rf / 是Linux最危险命令,永远不要执行!删除前先用 ls 确认目标。关键操作加 -i 交互确认参数。