12 KiB
Executable File
12 KiB
Executable File
Linux 常用命令续
常用命令的补充,包含更多进阶操作
🖥️ 系统信息
# 查看系统架构
arch # 显示机器处理器架构
uname -m # 显示CPU架构
uname -r # 显示内核版本
uname -a # 显示全部系统信息
# 查看硬件信息
cat /proc/cpuinfo # CPU详细信息
cat /proc/meminfo # 内存详细信息
cat /proc/interrupts # 中断信息
cat /proc/version # 内核版本
cat /proc/uptime # 运行时间
# 查看PCI/USB设备
lspci -tv # PCI设备列表
lsusb -tv # USB设备列表
# 日期时间
date # 显示当前日期时间
cal 2024 # 显示2024年日历
date -s "2024-01-01 12:00:00" # 设置时间
clock -w # 保存时间到BIOS
timedatectl # systemd时间管理
🔌 关机与重启
# 关机
shutdown -h now # 立即关机
halt # 关机(等效)
poweroff # 关机
init 0 # 切换到运行级别0
# 定时关机
shutdown -h +30 # 30分钟后关机
shutdown -h 23:00 # 23:00关机
shutdown -c # 取消定时关机
# 重启
reboot # 重启
shutdown -r now # 立即重启
init 6 # 切换到运行级别6
# 注销
logout # 注销当前用户
exit # 退出当前shell
📁 文件与目录操作
# 目录操作
cd /home # 进入目录
cd .. # 返回上级目录
cd ../.. # 返回上两级
cd ~ # 进入家目录
cd ~user # 进入某人家目录
cd - # 返回上次所在目录
pwd # 显示当前路径
# 创建
mkdir dir1 # 创建目录
mkdir dir1 dir2 # 同时创建两个
mkdir -p /tmp/a/b/c # 递归创建目录树
# 删除
rm file1 # 删除文件
rm -f file1 # 强制删除
rmdir dir1 # 删除空目录
rm -rf dir1 # 强制删除目录及内容
# 复制
cp file1 file2 # 复制文件
cp -a dir1 dir2 # 递归复制目录
cp -r dir/* . # 复制目录下所有文件
# 移动/重命名
mv file1 file2 # 重命名
mv file1 /path/ # 移动文件
# 链接
ln file1 lnk1 # 创建硬链接
ln -s file1 lnk1 # 创建软链接(快捷方式)
# 时间戳
touch -t 0712250000 file1 # 修改文件时间 (YYMMDDhhmm)
🔍 文件搜索
# find - 强力搜索
find / -name file1 # 按名字搜索
find / -user user1 # 搜索某用户的文件
find / -type d -name dir # 搜索目录
find / -size +100M # 搜索大于100M的文件
find / -mtime -7 # 搜索7天内修改的文件
find / -atime +30 # 搜索30天未访问的文件
find / -perm 755 # 按权限搜索
# locate - 快速搜索(需updatedb)
locate *.ps # 搜索.ps文件
updatedb # 更新locate数据库
# whereis/which - 查找命令
whereis command # 查找命令位置和手册
which command # 查找命令所在路径
💾 磁盘管理
# 查看磁盘使用
df -h # 显示挂载分区
df -i # 显示inode使用
ls -lSr | more # 按大小列出文件
# 查看目录大小
du -sh dir1 # 目录总大小
du -sk * | sort -rn # 按大小排序
du -h --max-depth=1 # 子目录大小
# 磁盘命令
fdisk -l # 显示分区表
mount /dev/sda1 /mnt # 挂载分区
umount /dev/sda1 # 卸载分区
📦 RPM/DEB 包管理
# RPM (CentOS/RHEL)
rpm -ivh package.rpm # 安装包
rpm -Uvh package.rpm # 升级包
rpm -e package # 卸载包
rpm -qa # 列出所有已安装包
rpm -qi package # 包信息
rpm -ql package # 包文件列表
rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n # 按大小排序
# DEB (Debian/Ubuntu)
dpkg -i package.deb # 安装包
dpkg -r package # 卸载包
dpkg -l # 列出已安装包
dpkg -L package # 包文件列表
dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n # 按大小排序
# APT (Debian/Ubuntu)
apt install package # 安装
apt remove package # 卸载
apt update # 更新源
apt upgrade # 升级
apt search keyword # 搜索包
apt list --installed # 列出已安装
🌐 网络命令
# 网络配置
ifconfig # 查看IP
ifconfig eth0 192.168.1.100 # 临时设置IP
route -n # 查看路由表
netstat -tlnp # 查看监听端口
netstat -anu # 查看所有UDP连接
netstat -anp # 查看所有连接及进程
# 网络测试
ping -c 4 192.168.1.1 # ping 4次
traceroute 目标IP # 路由追踪
tracepath 目标IP # 路由追踪(无需root)
mtr 目标IP # 实时路由追踪
# DNS
nslookup example.com # DNS查询
dig example.com # 详细DNS信息
host example.com # DNS反向查询
# 端口转发
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
👥 用户与用户组
# 用户管理
useradd user1 # 创建用户
userdel user1 # 删除用户
usermod -aG group1 user1 # 添加到组
passwd user1 # 设置密码
# 用户组管理
groupadd group1 # 创建组
groupdel group1 # 删除组
groups user1 # 查看用户所属组
# 查看用户
who # 当前登录用户
whoami # 当前用户名
w # 详细登录信息
last # 登录历史
lastlog # 所有用户最后登录
# 文件所有者
chown user1 file1 # 更改所有者
chown user1:group1 file1 # 更改所有者和组
chgrp group1 file1 # 更改所属组
📝 文本处理
# grep - 搜索
grep "pattern" file # 搜索
grep -r "pattern" dir/ # 递归搜索
grep -i "pattern" file # 忽略大小写
grep -n "pattern" file # 显示行号
grep -v "pattern" file # 显示不匹配的行
grep -E "p1|p2" file # 正则匹配
# sed - 替换
sed 's/old/new/g' file # 全局替换
sed -i 's/old/new/g' file # 直接修改文件
sed '1,10s/old/new/' file # 替换指定行
sed '/pattern/d' file # 删除匹配行
# awk - 文本分析
awk '{print $1}' file # 打印第一列
awk -F: '{print $1}' file # 指定分隔符
awk 'NR==5' file # 打印第5行
# sort/uniq - 排序去重
sort file # 排序
sort -u file # 去重排序
uniq file # 去重
sort file | uniq -c # 统计重复次数
# wc - 统计
wc -l file # 行数
wc -w file # 词数
wc -c file # 字符数
🔧 进程管理
# 查看进程
ps aux # 所有进程
ps -ef # 标准格式
pstree # 进程树
top # 动态监控
htop # 更友好的top
# 查找进程
pgrep -l name # 按名称查找PID
pidof process_name # 查找进程PID
# 终止进程
kill PID # 正常终止
kill -9 PID # 强制终止
killall name # 按名称终止
pkill name # 按名称终止(支持正则)
# 进程优先级
nice -n 10 process # 以低优先级启动
renice 5 PID # 修改运行中进程优先级
📋 计划任务
# cron 服务
systemctl start cron # 启动
systemctl enable cron # 开机启动
# 编辑 crontab
crontab -e # 编辑当前用户计划任务
crontab -l # 查看计划任务
crontab -r # 删除计划任务
# 格式:分 时 日 月 周 命令
# 示例:
# */5 * * * * /script.sh # 每5分钟
# 0 */2 * * * /script.sh # 每2小时
# 0 3 * * * /script.sh # 每天3点
# 0 0 * * 0 /script.sh # 每周日
🔒 SSH/远程连接
# 连接
ssh user@host # SSH连接
ssh -p 2222 user@host # 指定端口
ssh -i key.pem user@host # 密钥连接
# SSH 密钥
ssh-keygen -t rsa # 生成密钥
ssh-copy-id user@host # 复制公钥到服务器
# SCP 文件传输
scp file user@host:/path # 上传
scp user@host:/file /path # 下载
scp -r dir user@host:/path # 递归传输
# 其他远程工具
rsync -avz src/ user@host:/dest/ # 同步(增量)
telnet host port # 测试端口
nc -zv host port # 测试端口(无回显)
🛠️ 系统服务 (systemd)
# 服务管理
systemctl start service # 启动
systemctl stop service # 停止
systemctl restart service # 重启
systemctl status service # 状态
systemctl enable service # 开机启动
systemctl disable service # 禁止开机启动
systemctl is-enabled service # 检查是否开机启动
# 查看服务
systemctl list-units --type=service --all # 列出所有服务
systemctl list-dependencies service # 服务依赖
# 日志
journalctl -u service # 查看服务日志
journalctl -f # 实时查看日志
journalctl --since "1 hour ago" # 最近1小时日志
📊 性能监控
# CPU/内存
top # 动态监控
htop # 增强版top
vmstat 1 5 # 每1秒采样5次
mpstat 1 # CPU详细统计
# I/O
iostat # I/O统计
iotop # 交互式I/O监控(需安装)
df -h # 磁盘使用
# 网络
iftop # 网络流量监控(需安装)
nethogs # 按进程显示流量
sar -n DEV 1 5 # 网卡流量统计
🔧 实用技巧
# 命令替换
$(command) # 命令替换
`command` # 同上(老式)
# 管道组合
cat file | grep pattern | sort | uniq -c | sort -rn
# 后台运行
nohup command & # 后台运行(忽略挂起)
command & # 后台运行
screen # 终端复用
tmux # 终端复用(更现代)
# 快速补全
Tab # 补全命令/路径
Tab*2 # 显示所有可能选项
# 历史命令
!! # 执行上一条命令
!n # 执行第n条
!$ # 上一条命令的最后一个参数
!?keyword # 执行包含keyword的最新命令
💡 提示:大部分命令支持
--help查看帮助,或使用man command查看详细手册。