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

422 lines
12 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Linux 常用命令续
> 常用命令的补充,包含更多进阶操作
---
## 🖥️ 系统信息
```bash
# 查看系统架构
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时间管理
```
---
## 🔌 关机与重启
```bash
# 关机
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
```
---
## 📁 文件与目录操作
```bash
# 目录操作
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)
```
---
## 🔍 文件搜索
```bash
# 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 # 查找命令所在路径
```
---
## 💾 磁盘管理
```bash
# 查看磁盘使用
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 包管理
```bash
# 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 # 列出已安装
```
---
## 🌐 网络命令
```bash
# 网络配置
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
```
---
## 👥 用户与用户组
```bash
# 用户管理
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 # 更改所属组
```
---
## 📝 文本处理
```bash
# 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 # 字符数
```
---
## 🔧 进程管理
```bash
# 查看进程
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 # 修改运行中进程优先级
```
---
## 📋 计划任务
```bash
# 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/远程连接
```bash
# 连接
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)
```bash
# 服务管理
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小时日志
```
---
## 📊 性能监控
```bash
# 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 # 网卡流量统计
```
---
## 🔧 实用技巧
```bash
# 命令替换
$(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` 查看详细手册。