#把常用的指令和不常用的写出来,收藏后当做笔记来使用#
一、文件和目录管理
常用命令
bash
# 目录操作
pwd # 显示当前目录
cd [目录] # 切换目录
cd ~ # 返回家目录
cd - # 返回上一个目录
ls [选项] [目录] # 列出目录内容
mkdir [目录] # 创建目录
rmdir [目录] # 删除空目录
rm -r [目录] # 递归删除目录
tree [目录] # 树状显示目录结构
# 文件操作
touch [文件名] # 创建空文件或更新时间戳
cp [源] [目标] # 复制文件/目录
mv [源] [目标] # 移动/重命名文件
rm [文件] # 删除文件
ln -s [源] [目标] # 创建软链接
详细选项
bash
# ls 详细选项
ls -l # 长格式显示(详细信息)
ls -a # 显示所有文件(包括隐藏文件)
ls -h # 人性化显示文件大小
ls -t # 按修改时间排序
ls -r # 反向排序
ls -R # 递归显示子目录
ls -la # 组合选项:显示所有文件的详细信息
ls -lth # 按时间排序并人性化显示大小
# cp/mv/rm 详细选项
cp -r [目录] [目标] # 递归复制目录
cp -a [源] [目标] # 归档模式,保留所有属性
cp -i # 覆盖前提示
mv -i # 移动前提示
mv -f # 强制覆盖
rm -i # 删除前提示
rm -f # 强制删除
rm -rf [目录] # 递归强制删除(危险!)
# find 查找文件
find [路径] -name "文件名" # 按文件名查找
find [路径] -type f # 查找文件
find [路径] -type d # 查找目录
find [路径] -size +10M # 查找大于10M的文件
find [路径] -mtime -7 # 查找7天内修改的文件
find [路径] -user root # 按用户查找
find [路径] -perm 755 # 按权限查找
find [路径] -name "*.txt" -exec rm {} \; # 查找并删除
二、文件查看和编辑
查看命令
bash
# 基本查看
cat [文件] # 显示整个文件
tac [文件] # 反向显示文件
more [文件] # 分页查看(只能向下)
less [文件] # 分页查看(可上下翻页)
head [-n] [文件] # 查看文件开头n行
tail [-n] [文件] # 查看文件末尾n行
tail -f [文件] # 实时追踪文件变化
# 高级查看
wc [文件] # 统计行数、单词数、字节数
file [文件] # 显示文件类型
stat [文件] # 显示文件详细信息
diff [文件1] [文件2] # 比较文件差异
cmp [文件1] [文件2] # 逐字节比较文件
md5sum [文件] # 计算MD5校验和
sha256sum [文件] # 计算SHA256校验和
编辑命令
bash
# vi/vim 常用命令
vi [文件] # 打开文件
i # 进入插入模式
ESC # 退出插入模式
:w # 保存
:wq # 保存并退出
:q! # 不保存强制退出
:set nu # 显示行号
:/关键词 # 搜索关键词
:n # 跳转到第n行
dd # 删除整行
yy # 复制整行
p # 粘贴
u # 撤销
# nano 编辑器
nano [文件] # 打开文件
Ctrl+O # 保存
Ctrl+X # 退出
Ctrl+K # 剪切行
Ctrl+U # 粘贴
三、权限管理
用户和组
bash
# 用户管理
whoami # 显示当前用户
id [用户名] # 显示用户信息
who # 显示已登录用户
w # 显示已登录用户及活动
last # 显示登录历史
useradd [用户名] # 添加用户
usermod [选项] [用户] # 修改用户
userdel [用户名] # 删除用户
passwd [用户名] # 修改密码
su [用户名] # 切换用户
sudo [命令] # 以root权限执行
# 组管理
groups [用户] # 显示用户所属组
groupadd [组名] # 添加组
groupdel [组名] # 删除组
gpasswd -a [用户] [组] # 添加用户到组
gpasswd -d [用户] [组] # 从组中移除用户
文件权限
bash
# 权限修改
chmod [权限] [文件] # 修改文件权限
chown [用户]:[组] [文件] # 修改文件所有者和组
chgrp [组] [文件] # 修改文件所属组
# 权限表示法
chmod 755 [文件] # rwxr-xr-x
chmod 644 [文件] # rw-r--r--
chmod 777 [文件] # rwxrwxrwx
chmod u+x [文件] # 给所有者添加执行权限
chmod g-w [文件] # 移除组的写权限
chmod o=r [文件] # 给其他用户只读权限
chmod a+x [文件] # 给所有用户添加执行权限
四、系统信息
系统状态
bash
# 系统信息
uname -a # 显示所有系统信息
uname -r # 显示内核版本
hostname # 显示主机名
hostnamectl # 显示主机名详细信息
uptime # 显示系统运行时间
date # 显示日期时间
cal # 显示日历
timedatectl # 显示和设置时间
# 硬件信息
lscpu # 显示CPU信息
free -h # 显示内存使用(人性化)
df -h # 显示磁盘空间(人性化)
du -sh [目录] # 显示目录大小
lsblk # 显示块设备信息
lspci # 显示PCI设备
lsusb # 显示USB设备
dmidecode # 显示DMI信息
进程管理
bash
# 进程查看
ps # 显示当前进程
ps aux # 显示所有进程详细信息
ps -ef # 显示完整格式的进程信息
top # 动态显示进程
htop # 增强版top(需安装)
pstree # 树状显示进程
pgrep [进程名] # 查找进程PID
pkill [进程名] # 终止进程
pidof [进程名] # 查找进程PID
# 进程控制
kill [PID] # 终止进程
kill -9 [PID] # 强制终止进程
killall [进程名] # 终止所有同名进程
nice -n [优先级] [命令] # 指定进程优先级
renice [优先级] [PID] # 修改进程优先级
jobs # 显示后台作业
fg [作业号] # 将后台作业调到前台
bg [作业号] # 将作业放到后台运行
五、网络管理
网络配置
bash
# 网络状态
ifconfig # 显示网络接口配置
ip addr # 显示IP地址(推荐)
ip link # 显示网络接口
ip route # 显示路由表
netstat -tulnp # 显示网络连接和监听端口
ss -tulnp # 更快的netstat替代
route -n # 显示路由表
arp -a # 显示ARP缓存
# 网络测试
ping [主机] # 测试网络连通性
traceroute [主机] # 追踪路由路径
mtr [主机] # 增强版traceroute
nslookup [域名] # DNS查询
dig [域名] # 详细DNS查询
host [域名] # 域名解析
curl [URL] # 传输数据
wget [URL] # 下载文件
防火墙
bash
# iptables
iptables -L # 列出规则
iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许SSH
iptables -A INPUT -j DROP # 默认拒绝
# firewalld(CentOS/RHEL)
firewall-cmd --state # 查看状态
firewall-cmd --list-all # 列出所有规则
firewall-cmd --add-port=80/tcp --permanent # 开放端口
firewall-cmd --reload # 重新加载
# ufw(Ubuntu)
ufw status # 查看状态
ufw enable # 启用
ufw disable # 禁用
ufw allow 22/tcp # 开放端口
ufw deny 22/tcp # 拒绝端口
六、软件包管理
包管理器
bash
# Debian/Ubuntu (APT)
apt update # 更新软件包列表
apt upgrade # 升级已安装的包
apt install [包名] # 安装软件包
apt remove [包名] # 删除软件包
apt purge [包名] # 彻底删除(包括配置)
apt search [关键词] # 搜索软件包
apt show [包名] # 显示包信息
apt list --installed # 列出已安装的包
apt autoremove # 自动删除不需要的包
apt clean # 清理缓存
# RedHat/CentOS (YUM/DNF)
yum install [包名] # 安装
yum remove [包名] # 删除
yum update # 更新
yum search [关键词] # 搜索
yum list installed # 列出已安装
dnf [命令] # DNF(YUM的替代)
# Arch Linux (Pacman)
pacman -S [包名] # 安装
pacman -R [包名] # 删除
pacman -Syu # 更新系统
pacman -Ss [关键词] # 搜索
pacman -Q # 查询已安装
# 通用编译安装
./configure # 配置
make # 编译
make install # 安装
make clean # 清理
七、磁盘管理
磁盘操作
bash
# 磁盘信息
fdisk -l # 列出磁盘分区
lsblk # 列出块设备
blkid # 显示块设备UUID
parted -l # 显示分区表
df -h # 显示磁盘使用情况
du -sh * # 显示当前目录各文件大小
# 磁盘分区
fdisk /dev/sda # 分区工具
parted /dev/sda # 高级分区工具
gdisk /dev/sda # GPT分区工具
# 文件系统
mkfs.ext4 /dev/sda1 # 创建ext4文件系统
mkfs.xfs /dev/sda1 # 创建XFS文件系统
fsck /dev/sda1 # 检查文件系统
mount /dev/sda1 /mnt # 挂载
umount /mnt # 卸载
mount -a # 挂载/etc/fstab中的所有设备
# LVM管理
pvcreate /dev/sdb # 创建物理卷
vgcreate vg0 /dev/sdb # 创建卷组
lvcreate -L 10G -n lv0 vg0 # 创建逻辑卷
lvextend -L +5G /dev/vg0/lv0 # 扩展逻辑卷
八、系统管理
服务管理
bash
# systemd(现代Linux)
systemctl start [服务] # 启动服务
systemctl stop [服务] # 停止服务
systemctl restart [服务] # 重启服务
systemctl status [服务] # 查看服务状态
systemctl enable [服务] # 设置开机启动
systemctl disable [服务] # 禁用开机启动
systemctl daemon-reload # 重新加载配置
systemctl list-units --type=service # 列出所有服务
journalctl -u [服务] # 查看服务日志
journalctl -f # 实时查看日志
# SysV init(旧系统)
service [服务] start # 启动
service [服务] stop # 停止
service [服务] restart # 重启
service [服务] status # 状态
chkconfig [服务] on # 开机启动
chkconfig [服务] off # 关闭开机启动
任务调度
bash
# crontab
crontab -e # 编辑当前用户的crontab
crontab -l # 列出当前用户的crontab
crontab -r # 删除当前用户的crontab
# cron格式
* * * * * [命令] # 分 时 日 月 周
# 示例
0 2 * * * /backup.sh # 每天2:00执行
*/5 * * * * /check.sh # 每5分钟执行
0 0 1 * * /monthly.sh # 每月1日执行
# at命令
at 14:30 # 在指定时间执行
at now + 1 hour # 1小时后执行
atq # 查看待执行任务
atrm [任务号] # 删除任务
九、性能监控
监控工具
bash
# 实时监控
top # 进程监控
htop # 增强版top
iotop # I/O监控
iftop # 网络流量监控
nethogs # 按进程的网络流量
vmstat 1 # 虚拟内存统计
iostat 1 # I/O统计
mpstat 1 # CPU统计
sar # 系统活动报告
# 内存监控
free -m # 内存使用(MB)
vmstat -s # 内存统计
slabtop # 内核slab缓存信息
# 磁盘监控
df -h # 磁盘空间
du -sh [目录] # 目录大小
iotop # 磁盘I/O
iostat -x 1 # 详细磁盘I/O
# 网络监控
netstat -s # 网络统计
ss -s # 套接字统计
tcpdump -i eth0 # 抓包分析
nload # 实时网络流量
十、搜索和过滤
文本处理
bash
# grep 文本搜索
grep "模式" [文件] # 搜索文本
grep -i "模式" [文件] # 忽略大小写
grep -r "模式" [目录] # 递归搜索
grep -v "模式" [文件] # 反向搜索(不匹配的)
grep -n "模式" [文件] # 显示行号
grep -c "模式" [文件] # 统计匹配行数
grep -E "模式" [文件] # 使用扩展正则表达式
egrep "模式" [文件] # 同grep -E
grep -o "模式" [文件] # 只输出匹配的部分
# sed 流编辑器
sed 's/旧/新/g' [文件] # 替换文本
sed -n '5,10p' [文件] # 打印5-10行
sed '/模式/d' [文件] # 删除匹配行
sed -i 's/旧/新/g' [文件] # 直接修改文件
# awk 文本处理
awk '{print $1}' [文件] # 打印第一列
awk -F: '{print $1}' [文件] # 以:为分隔符
awk '/模式/ {print $0}' [文件] # 打印匹配行
awk 'NR==5' [文件] # 打印第5行
awk '{sum+=$1} END {print sum}' [文件] # 求和
排序和去重
bash
# sort 排序
sort [文件] # 排序
sort -r [文件] # 反向排序
sort -n [文件] # 按数字排序
sort -u [文件] # 去重排序
sort -k 2 [文件] # 按第二列排序
sort -t: -k 3 [文件] # 以:分隔,按第三列排序
# uniq 去重
uniq [文件] # 去除相邻重复行
uniq -c [文件] # 统计重复次数
uniq -d [文件] # 只显示重复行
uniq -u [文件] # 只显示不重复行
# 其他文本处理
cut -d: -f1 [文件] # 以:分隔,取第一列
cut -c1-5 [文件] # 取1-5字符
tr 'a-z' 'A-Z' # 小写转大写
tr -d '\n' # 删除换行符
paste [文件1] [文件2] # 合并文件列
join [文件1] [文件2] # 连接两个文件
十一、安全相关
SSH
bash
# SSH客户端
ssh [用户]@[主机] # SSH连接
ssh -p [端口] [用户]@[主机] # 指定端口
ssh -i [密钥文件] [用户]@[主机] # 使用密钥
ssh -v [用户]@[主机] # 详细模式
ssh -L 8080:localhost:80 [用户]@[主机] # 本地端口转发
ssh -R 8080:localhost:80 [用户]@[主机] # 远程端口转发
# SSH服务器
sshd # SSH服务器
ssh-keygen # 生成密钥对
ssh-copy-id [用户]@[主机] # 复制公钥到远程主机
/etc/ssh/sshd_config # SSH服务器配置文件
加密和压缩
bash
# 加密解密
gpg -c [文件] # 加密文件
gpg -d [文件.gpg] # 解密文件
openssl enc -aes-256-cbc -salt -in [文件] -out [文件.enc] # AES加密
openssl enc -d -aes-256-cbc -in [文件.enc] -out [文件] # AES解密
# 压缩解压
# tar
tar -czvf archive.tar.gz [目录] # 创建gzip压缩包
tar -xzvf archive.tar.gz # 解压gzip压缩包
tar -cjvf archive.tar.bz2 [目录] # 创建bzip2压缩包
tar -xjvf archive.tar.bz2 # 解压bzip2压缩包
tar -cJvf archive.tar.xz [目录] # 创建xz压缩包
tar -xJvf archive.tar.xz # 解压xz压缩包
# 其他压缩
gzip [文件] # 压缩文件
gunzip [文件.gz] # 解压gzip
bzip2 [文件] # 压缩文件
bunzip2 [文件.bz2] # 解压bzip2
zip archive.zip [文件] # 创建zip压缩包
unzip archive.zip # 解压zip
7z a archive.7z [文件] # 创建7z压缩包
7z x archive.7z # 解压7z
十二、Shell相关
Shell内置命令
bash
# 变量
echo $变量名 # 输出变量
export 变量名=值 # 设置环境变量
unset 变量名 # 删除变量
readonly 变量名=值 # 设置只读变量
# 别名和历史
alias # 显示所有别名
alias 别名='命令' # 设置别名
unalias 别名 # 删除别名
history # 显示命令历史
!! # 上一条命令
!n # 执行历史中第n条命令
!字符串 # 执行最近以字符串开头的命令
Ctrl+R # 搜索历史命令
# 作业控制
jobs # 显示后台作业
fg %n # 将作业n调到前台
bg %n # 将作业n放到后台
Ctrl+Z # 暂停当前作业
Ctrl+C # 终止当前命令
Ctrl+D # 退出shell
重定向和管道
bash
# 输入输出重定向
命令 > 文件 # 输出重定向(覆盖)
命令 >> 文件 # 输出重定向(追加)
命令 < 文件 # 输入重定向
命令 2> 文件 # 错误输出重定向
命令 &> 文件 # 所有输出重定向
命令 2>&1 # 错误输出重定向到标准输出
# 管道
命令1 | 命令2 # 管道,将命令1的输出作为命令2的输入
命令1 | tee 文件 # 同时输出到屏幕和文件
十三、实用技巧
快捷键
bash
# 终端快捷键
Ctrl+A # 移动到行首
Ctrl+E # 移动到行尾
Ctrl+U # 删除到行首
Ctrl+K # 删除到行尾
Ctrl+W # 删除前一个单词
Alt+Backspace # 删除前一个单词
Ctrl+L # 清屏
Ctrl+R # 搜索历史命令
Tab # 自动补全
Ctrl+D # 退出shell/发送EOF
Ctrl+Z # 暂停进程
Ctrl+C # 终止进程
组合命令
bash
# 常用组合
command1 && command2 # command1成功则执行command2
command1 || command2 # command1失败则执行command2
command1 ; command2 # 顺序执行
(command1; command2) # 在子shell中执行
{ command1; command2; } # 在当前shell中执行
# 后台和重定向组合
nohup command & # 后台运行,忽略挂起信号
command > /dev/null 2>&1 & # 后台运行,丢弃所有输出
十四、系统日志
日志文件位置
bash
/var/log/messages # 系统主日志文件(CentOS/RHEL)
/var/log/syslog # 系统主日志文件(Ubuntu/Debian)
/var/log/auth.log # 认证日志
/var/log/secure # 安全日志(CentOS/RHEL)
/var/log/boot.log # 启动日志
/var/log/dmesg # 内核日志
/var/log/cron # 计划任务日志
/var/log/maillog # 邮件日志
/var/log/httpd/ # Apache日志
/var/log/nginx/ # Nginx日志
/var/log/mysql/ # MySQL日志
日志查看命令
bash
# journalctl(systemd系统)
journalctl # 查看所有日志
journalctl -f # 实时查看日志
journalctl -u [服务] # 查看指定服务日志
journalctl --since "1 hour ago" # 查看1小时内的日志
journalctl --until "2024-01-01" # 查看直到某时间的日志
journalctl -p err # 查看错误级别日志
journalctl -k # 查看内核日志
# 传统日志查看
dmesg # 查看内核消息
dmesg | grep -i error # 过滤错误信息
tail -f /var/log/syslog # 实时查看系统日志
grep "error" /var/log/syslog # 搜索错误信息
十五、高级命令
性能调优
bash
# 系统调优
sysctl -a # 显示所有内核参数
sysctl -w 参数=值 # 临时修改内核参数
tuned-adm active # 显示当前调优方案
tuned-adm profile [方案] # 切换调优方案
# 进程调优
nice -n 10 command # 低优先级运行
renice 10 -p [PID] # 修改进程优先级
ionice -c 3 command # 空闲I/O优先级
taskset -c 0,1 command # 绑定到CPU 0和1
虚拟化和容器
bash
# Docker
docker ps # 查看运行中的容器
docker ps -a # 查看所有容器
docker images # 查看镜像
docker run [镜像] # 运行容器
docker exec -it [容器] bash # 进入容器
docker stop [容器] # 停止容器
docker rm [容器] # 删除容器
docker rmi [镜像] # 删除镜像
# Podman(无守护进程Docker替代)
podman ps
podman run
podman exec
# 虚拟机管理
virsh list # 列出虚拟机
virsh start [VM] # 启动虚拟机
virsh shutdown [VM] # 关闭虚拟机
virsh destroy [VM] # 强制关闭
十六、帮助和文档
帮助系统
bash
# 命令帮助
man [命令] # 查看手册页
man -k [关键词] # 搜索手册页
info [命令] # 查看info文档
[命令] --help # 查看命令帮助
whatis [命令] # 显示命令简短描述
which [命令] # 显示命令路径
whereis [命令] # 显示命令位置
type [命令] # 显示命令类型
# 文档查看
apropos [关键词] # 搜索相关命令
help [内置命令] # 查看shell内置命令帮助
pinfo [命令] # 更好的info浏览器
tldr [命令] # 简化版man(需安装)
💡 使用技巧
-
命令补全:按Tab键可自动补全命令、文件名、路径
-
历史命令 :使用
!加前缀可快速执行历史命令 -
别名:将常用长命令设置为简短别名
-
脚本:将常用操作写成脚本提高效率
-
管道:组合多个命令完成复杂任务
-
重定向:灵活控制输入输出
-
通配符 :使用
*、?、[]匹配多个文件 -
后台运行 :在命令后加
&可在后台运行 -
命令替换 :使用
$(命令)将命令输出作为参数
注意 :使用rm -rf、fdisk、dd等危险命令时务必小心,避免误操作导致数据丢失!