414 lines
10 KiB
Markdown
Executable File
414 lines
10 KiB
Markdown
Executable File
# 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)
|