Files
chill_notes/Linux/常用命令2.md
2026-04-21 20:24:22 +08:00

12 KiB
Executable File
Raw Blame History

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 查看详细手册。