Linux 常用指令速查手册

目录

  1. 文件和目录操作
  2. 文件查看和编辑
  3. 文件搜索
  4. 权限管理
  5. 进程管理
  6. 系统信息
  7. 网络相关
  8. 软件包管理
  9. 服务管理
  10. 压缩解压
  11. 用户管理
  12. 磁盘管理
  13. 日志查看
  14. 数据库操作
  15. Git 操作
  16. 附录:项目部署常用指令

一、文件和目录操作

1.1 目录导航

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 显示当前目录
pwd

# 切换目录
cd /path/to/directory # 切换到指定目录
cd ~ # 切换到用户主目录
cd .. # 返回上级目录
cd - # 返回上次所在目录

# 列出文件和目录
ls # 列出当前目录内容
ls -l # 详细列表格式
ls -la # 显示隐藏文件
ls -lh # 人类可读的文件大小
ls -lt # 按修改时间排序
ls -lS # 按文件大小排序

1.2 创建和删除

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 创建目录
mkdir dirname # 创建目录
mkdir -p dir1/dir2/dir3 # 递归创建多级目录

# 创建文件
touch filename # 创建空文件或更新时间戳

# 删除文件和目录
rm filename # 删除文件
rm -f filename # 强制删除文件
rm -r dirname # 递归删除目录
rm -rf dirname # 强制递归删除目录(危险!)

# 删除空目录
rmdir dirname

1.3 复制和移动

1
2
3
4
5
6
7
8
9
10
# 复制文件
cp source dest # 复制文件
cp -r source dest # 递归复制目录
cp -p source dest # 保留文件属性
cp -i source dest # 交互式复制(覆盖前询问)

# 移动/重命名
mv source dest # 移动或重命名文件
mv -i source dest # 交互式移动
mv file1 file2 dir/ # 移动多个文件到目录

1.4 链接

1
2
3
4
5
6
7
8
9
# 创建软链接(符号链接)
ln -s /path/to/file linkname

# 创建硬链接
ln /path/to/file linkname

# 查看链接
ls -l linkname
readlink linkname

二、文件查看和编辑

2.1 查看文件内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看整个文件
cat filename # 显示文件内容
cat -n filename # 显示行号

# 分页查看
more filename # 分页查看(只能向下)
less filename # 分页查看(可上下翻页)

# 查看文件头尾
head filename # 显示前 10 行
head -n 20 filename # 显示前 20 行
tail filename # 显示后 10 行
tail -n 20 filename # 显示后 20 行
tail -f filename # 实时查看文件更新(常用于日志)

2.2 文本编辑器

1
2
3
4
5
6
7
8
9
10
11
# Nano 编辑器(简单易用)
nano filename
# Ctrl+O 保存,Ctrl+X 退出

# Vim 编辑器(强大但复杂)
vim filename
# i 进入插入模式,Esc 退出插入模式
# :w 保存,:q 退出,:wq 保存并退出,:q! 强制退出不保存

# Gedit 图形化编辑器(Ubuntu 桌面版)
gedit filename

2.3 文件比较

1
2
3
4
5
6
7
8
# 比较两个文件
diff file1 file2

# 并排比较
diff -y file1 file2

# 比较目录
diff -r dir1 dir2

三、文件搜索

3.1 查找文件

1
2
3
4
5
6
7
8
9
10
11
# find 命令(按名称查找)
find /path -name "filename" # 查找指定文件
find /path -name "*.txt" # 查找所有 txt 文件
find /path -type f -name "*.py" # 查找所有 Python 文件
find /path -type d -name "dirname" # 查找目录
find /path -mtime -7 # 查找 7 天内修改的文件
find /path -size +100M # 查找大于 100MB 的文件

# locate 命令(快速查找,需要更新数据库)
locate filename
sudo updatedb # 更新 locate 数据库

3.2 搜索文件内容

1
2
3
4
5
6
7
8
9
10
11
# grep 命令(搜索文本)
grep "pattern" filename # 在文件中搜索
grep -r "pattern" /path # 递归搜索目录
grep -i "pattern" filename # 忽略大小写
grep -n "pattern" filename # 显示行号
grep -v "pattern" filename # 反向匹配(不包含)
grep -c "pattern" filename # 统计匹配行数

# 组合使用
ps aux | grep python # 查找 Python 进程
ls -l | grep ".txt" # 查找 txt 文件

四、权限管理

4.1 查看权限

1
2
3
4
5
6
7
8
9
# 查看文件权限
ls -l filename

# 权限说明:
# -rwxr-xr-x
# - 文件类型(- 文件,d 目录,l 链接)
# rwx 所有者权限(读、写、执行)
# r-x 组权限
# r-x 其他用户权限

4.2 修改权限

1
2
3
4
5
6
7
8
9
10
11
12
13
# chmod 命令(数字方式)
chmod 755 filename # rwxr-xr-x
chmod 644 filename # rw-r--r--
chmod 777 filename # rwxrwxrwx(所有人可读写执行)

# chmod 命令(符号方式)
chmod u+x filename # 所有者添加执行权限
chmod g-w filename # 组去除写权限
chmod o+r filename # 其他用户添加读权限
chmod a+x filename # 所有人添加执行权限

# 递归修改
chmod -R 755 dirname # 递归修改目录权限

4.3 修改所有者

1
2
3
4
5
6
7
# chown 命令
chown user filename # 修改所有者
chown user:group filename # 修改所有者和组
chown -R user:group dirname # 递归修改

# chgrp 命令
chgrp group filename # 修改所属组

五、进程管理

5.1 查看进程

1
2
3
4
5
6
7
8
9
10
11
# 查看所有进程
ps aux # 显示所有进程
ps aux | grep python # 查找 Python 进程

# 实时查看进程
top # 动态显示进程(按 q 退出)
htop # 更友好的 top(需要安装)

# 查看进程树
pstree
pstree -p # 显示 PID

5.2 管理进程

1
2
3
4
5
6
7
8
9
10
11
12
13
# 杀死进程
kill PID # 正常终止进程
kill -9 PID # 强制终止进程
killall process_name # 杀死所有同名进程

# 后台运行
command & # 后台运行命令
nohup command & # 后台运行,忽略挂断信号

# 查看后台任务
jobs
fg %1 # 将后台任务调到前台
bg %1 # 继续后台任务

5.3 查看端口占用

1
2
3
4
# 查看端口占用
netstat -tlnp | grep :8000 # 查看 8000 端口
lsof -i :8000 # 查看 8000 端口占用
ss -tlnp | grep :8000 # 更快的端口查看

六、系统信息

6.1 系统信息

1
2
3
4
5
6
7
8
9
10
11
12
# 查看系统版本
uname -a # 系统信息
cat /etc/os-release # 发行版信息
lsb_release -a # Ubuntu 版本信息

# 查看主机名
hostname
hostnamectl # 详细主机信息

# 查看系统时间
date
timedatectl # 时区和时间信息

6.2 硬件信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# CPU 信息
lscpu
cat /proc/cpuinfo

# 内存信息
free -h # 人类可读格式
cat /proc/meminfo

# 磁盘信息
df -h # 磁盘使用情况
du -sh /path # 目录大小
du -h --max-depth=1 # 当前目录各子目录大小

# 硬件信息
lshw # 详细硬件信息
lsblk # 块设备信息
lspci # PCI 设备
lsusb # USB 设备

6.3 系统负载

1
2
3
4
# 查看系统负载
uptime # 系统运行时间和负载
w # 当前登录用户和负载
top # 实时系统状态

七、网络相关

7.1 网络配置

1
2
3
4
5
6
7
8
9
10
11
# 查看网络接口
ip addr show # 显示所有网络接口
ip addr show eth0 # 显示指定接口
ifconfig # 旧版命令(可能需要安装)

# 查看路由
ip route show
route -n

# 查看 DNS
cat /etc/resolv.conf

7.2 网络测试

1
2
3
4
5
6
7
8
9
10
11
# 测试连通性
ping google.com # 测试网络连通性
ping -c 4 google.com # 发送 4 个包后停止

# 测试端口
telnet host port # 测试端口是否开放
nc -zv host port # 使用 netcat 测试

# 路由追踪
traceroute google.com
mtr google.com # 更好的路由追踪工具

7.3 网络工具

1
2
3
4
5
6
7
8
9
10
# 下载文件
wget url # 下载文件
wget -c url # 断点续传
curl url # 获取网页内容
curl -O url # 下载文件

# 查看网络连接
netstat -an # 所有网络连接
netstat -tlnp # TCP 监听端口
ss -tlnp # 更快的 netstat

八、软件包管理

8.1 Ubuntu/Debian (apt)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 更新软件源
sudo apt update

# 升级软件包
sudo apt upgrade # 升级所有软件包
sudo apt upgrade package # 升级指定软件包

# 安装软件
sudo apt install package
sudo apt install -y package # 自动确认

# 卸载软件
sudo apt remove package # 卸载软件
sudo apt purge package # 卸载软件和配置文件
sudo apt autoremove # 删除不需要的依赖

# 搜索软件
apt search keyword
apt show package # 显示软件包信息

# 清理缓存
sudo apt clean
sudo apt autoclean

8.2 CentOS/RHEL (yum)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 更新软件源
sudo yum update

# 安装软件
sudo yum install package
sudo yum install -y package

# 卸载软件
sudo yum remove package

# 搜索软件
yum search keyword
yum info package

# 清理缓存
sudo yum clean all

8.3 Python 包管理 (pip)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 安装包
pip install package
pip install package==1.0.0 # 安装指定版本
pip install -r requirements.txt # 从文件安装

# 卸载包
pip uninstall package

# 查看已安装包
pip list
pip freeze # 输出格式适合 requirements.txt

# 升级包
pip install --upgrade package
pip install --upgrade pip # 升级 pip 自身

# 搜索包
pip search keyword

九、服务管理

9.1 systemd 服务管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 启动服务
sudo systemctl start service_name

# 停止服务
sudo systemctl stop service_name

# 重启服务
sudo systemctl restart service_name

# 重新加载配置
sudo systemctl reload service_name

# 查看服务状态
sudo systemctl status service_name

# 开机自启
sudo systemctl enable service_name

# 禁用开机自启
sudo systemctl disable service_name

# 查看所有服务
systemctl list-units --type=service

# 查看失败的服务
systemctl --failed

9.2 常用服务

1
2
3
4
5
6
7
8
9
10
11
12
13
# Nginx
sudo systemctl start nginx
sudo systemctl status nginx
sudo systemctl restart nginx

# MySQL
sudo systemctl start mysql
sudo systemctl status mysql
sudo systemctl restart mysql

# SSH
sudo systemctl start ssh
sudo systemctl status ssh

十、压缩解压

10.1 tar 归档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 打包压缩
tar -czf archive.tar.gz /path # 打包并 gzip 压缩
tar -cjf archive.tar.bz2 /path # 打包并 bzip2 压缩
tar -cJf archive.tar.xz /path # 打包并 xz 压缩

# 解压
tar -xzf archive.tar.gz # 解压 gzip
tar -xjf archive.tar.bz2 # 解压 bzip2
tar -xJf archive.tar.xz # 解压 xz

# 查看压缩包内容
tar -tzf archive.tar.gz
tar -tjf archive.tar.bz2

# 解压到指定目录
tar -xzf archive.tar.gz -C /path

10.2 zip 压缩

1
2
3
4
5
6
7
8
9
10
# 压缩
zip archive.zip file1 file2
zip -r archive.zip directory # 递归压缩目录

# 解压
unzip archive.zip
unzip archive.zip -d /path # 解压到指定目录

# 查看压缩包内容
unzip -l archive.zip

10.3 其他压缩格式

1
2
3
4
5
6
7
8
9
10
11
# gzip
gzip file # 压缩文件
gunzip file.gz # 解压文件

# bzip2
bzip2 file
bunzip2 file.bz2

# xz
xz file
unxz file.xz

十一、用户管理

11.1 用户操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 查看当前用户
whoami
id # 显示用户 ID 和组 ID

# 查看所有用户
cat /etc/passwd
cut -d: -f1 /etc/passwd # 只显示用户名

# 添加用户
sudo adduser username
sudo useradd username

# 删除用户
sudo deluser username
sudo userdel username
sudo userdel -r username # 删除用户和主目录

# 修改密码
passwd # 修改当前用户密码
sudo passwd username # 修改指定用户密码

11.2 用户组

1
2
3
4
5
6
7
8
9
10
11
12
# 查看用户所属组
groups
groups username

# 添加用户到组
sudo usermod -aG groupname username

# 创建组
sudo groupadd groupname

# 删除组
sudo groupdel groupname

11.3 切换用户

1
2
3
4
5
6
7
# 切换用户
su username # 切换用户
su - username # 切换用户并加载环境

# 以 root 身份执行命令
sudo command
sudo -i # 切换到 root 用户

十二、磁盘管理

12.1 磁盘使用

1
2
3
4
5
6
7
8
# 查看磁盘使用情况
df -h # 人类可读格式
df -i # 查看 inode 使用情况

# 查看目录大小
du -sh /path # 目录总大小
du -h --max-depth=1 /path # 子目录大小
du -h /path | sort -h # 按大小排序

12.2 磁盘分区

1
2
3
4
5
6
7
8
9
10
11
# 查看分区
lsblk
fdisk -l

# 挂载和卸载
sudo mount /dev/sdb1 /mnt
sudo umount /mnt

# 查看挂载点
mount
cat /etc/fstab # 开机自动挂载配置

十三、日志查看

13.1 系统日志

1
2
3
4
5
6
7
8
9
10
11
12
# 查看系统日志
sudo journalctl # 所有日志
sudo journalctl -f # 实时查看日志
sudo journalctl -u service_name # 查看指定服务日志
sudo journalctl -n 50 # 查看最近 50 条
sudo journalctl --since "1 hour ago" # 查看最近 1 小时

# 传统日志文件
sudo tail -f /var/log/syslog # 系统日志
sudo tail -f /var/log/auth.log # 认证日志
sudo tail -f /var/log/nginx/access.log # Nginx 访问日志
sudo tail -f /var/log/nginx/error.log # Nginx 错误日志

13.2 日志分析

1
2
3
4
5
6
7
8
9
10
# 查看登录日志
last # 最近登录记录
lastlog # 所有用户最后登录时间

# 查看失败登录
sudo lastb

# 查看当前登录用户
who
w

十四、数据库操作

14.1 MySQL 命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 连接数据库
mysql -u root -p
mysql -u root -p -h localhost
mysql -u root -p database_name

# 导出数据库
mysqldump -u root -p database_name > backup.sql
mysqldump -u root -p --all-databases > all_backup.sql

# 导入数据库
mysql -u root -p database_name < backup.sql

# 执行 SQL 命令
mysql -u root -p -e "SHOW DATABASES;"
mysql -u root -p -e "USE database; SELECT * FROM table;"

14.2 MySQL 内部命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-- 显示数据库
SHOW DATABASES;

-- 使用数据库
USE database_name;

-- 显示表
SHOW TABLES;

-- 显示表结构
DESC table_name;

-- 查询数据
SELECT * FROM table_name;
SELECT COUNT(*) FROM table_name;

-- 退出
EXIT;

十五、Git 操作

15.1 基本操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 克隆仓库
git clone url

# 查看状态
git status

# 添加文件
git add filename
git add . # 添加所有文件

# 提交
git commit -m "commit message"

# 推送
git push origin main

# 拉取
git pull origin main

15.2 分支操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 查看分支
git branch
git branch -a # 查看所有分支

# 创建分支
git branch branch_name

# 切换分支
git checkout branch_name
git switch branch_name # 新版命令

# 创建并切换分支
git checkout -b branch_name

# 合并分支
git merge branch_name

# 删除分支
git branch -d branch_name

15.3 其他操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看日志
git log
git log --oneline # 简洁格式

# 查看差异
git diff

# 撤销修改
git checkout -- filename
git restore filename # 新版命令

# 重置
git reset --hard HEAD # 重置到最新提交
git reset --hard commit_id # 重置到指定提交