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

414 lines
10 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 常用命令
> 日常运维中最常用的 Linux 命令汇总
---
## 📦 软件包管理 (apt)
```bash
# 更新软件源
sudo apt-get update
# 升级所有可升级的软件包
sudo apt-get upgrade
# 安装软件包
sudo apt-get install <package>
# 卸载软件包(保留配置)
sudo apt-get remove <package>
# 卸载软件包(删除配置)
sudo apt-get purge <package>
# 自动修复依赖
sudo apt-get -f install
# 清理缓存
sudo apt-get clean
sudo apt-get autoclean
```
> **apt vs aptitude**aptitude 是 apt 的高级封装,功能更强大,但 apt 更常用。
---
## 📁 文件操作
### ls - 列出目录
```bash
ls # 列出当前目录文件
ls -l # 详细列表
ls -a # 显示隐藏文件
ls -lh # 人性化大小
ls -la # 详细+隐藏
ls -lt # 按时间排序
ls -lS # 按大小排序
```
### cd - 切换目录
```bash
cd /path # 切换到指定目录
cd .. # 返回上级目录
cd ~ # 返回家目录
cd - # 返回上一次目录
cd . # 当前目录(无意义)
pwd # 显示当前路径
```
### cp - 复制
```bash
cp file /dest/ # 复制文件
cp -r folder /dest/ # 递归复制目录
cp -a file /dest/ # 保留属性(权限、时间戳)
cp -p file /dest/ # 保留权限
cp -u file /dest/ # 仅源更新时复制
cp -v file /dest/ # 显示进度
```
### mv - 移动/重命名
```bash
mv file /dest/ # 移动文件
mv oldname newname # 重命名
mv -u file /dest/ # 源更新时才移动
mv -v file /dest/ # 显示进度
```
### rm - 删除
```bash
rm file # 删除文件
rm -f file # 强制删除
rm -r folder # 递归删除目录
rm -rf folder # 强制递归删除(危险!)
rm -v file # 显示删除动作
```
> ⚠️ **警告**`rm -rf /` 会删除整个系统!使用前务必确认路径。
### mkdir - 创建目录
```bash
mkdir dir # 创建目录
mkdir -p path/to/dir # 递归创建(父目录不存在时自动创建)
mkdir -m 755 dir # 指定权限
```
### touch - 创建文件/更新时间戳
```bash
touch file # 创建空文件
touch file1 file2 file3 # 批量创建
touch -t 202401011200 file # 指定时间
```
---
## 🔐 权限管理
### chmod - 变更权限
```bash
# 8进制方式最常用
chmod 755 file # rwxr-xr-x
chmod 644 file # rw-r--r--
chmod 600 file # rw-------
chmod 700 folder # rwx------
chmod 777 file # 所有人可读写执行(危险!)
# 符号方式
chmod u+x file # 给所有者添加执行权限
chmod g-w file # 给组移除写权限
chmod o+r file # 给其他人添加读权限
chmod a+x file # 所有人添加执行权限
# 选项
chmod -R 755 folder # 递归设置
chmod -v file # 显示动作
```
### chown - 变更所有者
```bash
chown user file # 变更所有者
chown user:group file # 变更所有者和组
chown -R user:group folder/ # 递归变更
```
---
## 🔍 查看文件
### cat - 显示文件内容
```bash
cat file # 显示全部内容
cat -n file # 显示行号
cat -b file # 非空行显示行号
tac file # 反向显示(最后一行在前)
```
### head/tail - 显示头部/尾部
```bash
head file # 默认显示前10行
head -n 20 file # 显示前20行
head -c 100 file # 显示前100字节
tail file # 默认显示后10行
tail -n 20 file # 显示后20行
tail -f file # 实时追踪日志Ctrl+C 退出)
tail -F file # 追踪重命名后的文件
```
### more/less - 分页查看
```bash
more file # 逐页查看(只能向下)
less file # 交互式查看(可上下翻页)
# less 中按键:
# j/k 或 方向键 上下滚动
# q 退出
# /keyword 搜索
# n 跳到下一个匹配
# g/G 跳到开头/结尾
```
---
## 🌐 网络命令
### ifconfig - 网卡配置
```bash
ifconfig # 显示所有网卡状态
ifconfig -a # 显示所有网卡(包括未激活)
ifconfig eth0 # 显示指定网卡
ifconfig eth0 up # 激活网卡
ifconfig eth0 down # 关闭网卡
ifconfig eth0 192.168.1.100 # 设置IP临时
```
### ping - 测试连通性
```bash
ping 192.168.1.1 # ping IP
ping www.google.com # ping 域名
ping -c 4 192.168.1.1 # 只ping 4次
ping -i 2 192.168.1.1 # 间隔2秒
```
### curl/wget - 下载
```bash
curl http://example.com/file.tar.gz -O # 下载文件
curl -L http://example.com # 跟随重定向
curl -o output.file http://... # 指定输出名
curl -I http://example.com # 只查Header
wget http://example.com/file.tar.gz # 下载文件
wget -c http://example.com/file # 断点续传
wget -r http://example.com/ # 递归下载
```
---
## ⚙️ 进程管理
### ps - 进程快照
```bash
ps # 当前终端进程
ps aux # 所有进程BSD格式
ps -ef # 所有进程(标准格式)
ps -ef | grep nginx # 查找nginx进程
ps -u user # 某用户的进程
ps --forest # 显示进程树
```
### top/htop - 动态监控
```bash
top # 动态监控(按 q 退出)
htop # 更友好的top需安装
# top 中按键:
# P 按CPU排序
# M 按内存排序
# N 按PID排序
# k 杀进程
# r 重设优先级
```
### kill - 终止进程
```bash
kill PID # 正常终止
kill -9 PID # 强制终止
kill -15 PID # 优雅终止(默认)
kill -l # 查看信号列表
killall nginx # 按名称终止所有进程
pkill nginx # 按名称终止(支持正则)
```
---
## 📦 压缩解压
### tar - 打包/解包
```bash
# 解压
tar -xvf file.tar.gz # 解压tar.gz
tar -xvf file.tar.bz2 # 解压tar.bz2
tar -xvf file.tar.xz # 解压tar.xz
tar -xvf file.tar -C /dest/ # 解压到指定目录
tar -tzf file.tar.gz # 查看压缩包内容
# 打包
tar -cvf file.tar.gz /path/ # 打包并压缩
tar -czvf file.tar.gz /path/ # 显示进度
tar -cvzf file.tar.gz /path/ # gzip压缩
tar -cvjf file.tar.bz2 /path/ # bzip2压缩
```
### zip/unzip
```bash
zip -r archive.zip folder/ # 压缩目录
zip -P password archive.zip file # 带密码
unzip archive.zip # 解压
unzip archive.zip -d /dest/ # 解压到目录
unzip -l archive.zip # 查看内容
```
---
## 🔧 系统命令
### df/du - 磁盘使用
```bash
df -h # 显示磁盘使用情况
df -i # 显示inode使用
du -sh folder/ # 目录总大小
du -h --max-depth=1 # 子目录大小
du -sh * | sort -h # 按大小排序显示
```
### free - 内存使用
```bash
free # 显示内存(字节)
free -h # 人性化显示
free -m # 以MB显示
free -s 5 # 每5秒刷新
```
### uname - 系统信息
```bash
uname -a # 全部信息
uname -r # 内核版本
uname -m # CPU架构
cat /etc/os-release # 发行版信息
```
### 系统时间
```bash
date # 显示当前时间
date -s "2024-01-01 12:00:00" # 设置时间
hwclock --systohc # 同步到硬件时钟
timedatectl # 时间管理systemd
```
---
## 📝 文本处理
### grep - 搜索
```bash
grep "keyword" file # 搜索文件中含有关键字的行
grep -i "keyword" file # 忽略大小写
grep -r "keyword" folder/ # 递归搜索
grep -n "keyword" file # 显示行号
grep -v "keyword" file # 显示不匹配的行
grep -c "keyword" file # 计数
grep -E "word1|word2" file # 多个关键词(正则)
```
### find - 查找文件
```bash
find / -name "file.txt" # 按名字查找
find / -type d -name "folder" # 查找目录
find / -size +100M # 查找大于100M的文件
find / -mtime -7 # 查找7天内修改的文件
find / -user username # 查找某用户的文件
find / -perm 755 # 按权限查找
```
### sed - 文本替换
```bash
sed 's/old/new/g' file # 替换所有
sed -i 's/old/new/g' file # 直接修改文件
sed '1,10s/old/new/g' file # 替换1-10行
sed '/keyword/d' file # 删除匹配行
```
---
## 🔗 链接
### ln - 创建链接
```bash
ln file hardlink # 创建硬链接
ln -s file symlink # 创建软链接(快捷方式)
ln -sf file newlink # 强制创建
```
---
## 💻 其他常用
### sudo/su - 切换用户
```bash
sudo command # 以root执行
sudo -u user command # 以指定用户执行
sudo -i # 切换到root shell
su - username # 切换用户
```
### reboot/shutdown - 重启关机
```bash
shutdown -h now # 立即关机
shutdown -h +10 # 10分钟后关机
shutdown -c # 取消关机
reboot # 重启
poweroff # 关机
```
### history - 命令历史
```bash
history # 显示历史命令
history -c # 清除历史
!n # 执行第n条命令
!! # 执行上一条命令
Ctrl+R # 搜索历史
```
---
> 参考:[Ubuntu 新手命令集合](http://www.ipc.me/ubuntu-useful-commands-collection-for-newbie.html)