一、文件与目录管理
1.1 目录操作
| | |
|---|
pwd | | pwd |
ls | | ls -la |
cd | | cd /home |
mkdir | | mkdir -p a/b/c |
rmdir | | rmdir dir |
tree | | tree -L 2 |
# ls 常用选项ls -l # 详细列表ls -a # 显示所有文件(包括隐藏)ls -h # 人类可读格式ls -R # 递归显示子目录ls -lt # 按时间排序# cd 常用cd # 回到用户主目录cd ~ # 回到用户主目录cd - # 回到上一个目录cd .. # 上级目录
1.2 文件操作
| | |
|---|
touch | | touch file.txt |
cp | | cp -r src dst |
mv | | mv old new |
rm | | rm -rf dir |
ln | | ln -s target link |
# cp 常用cp file1 file2 # 复制文件cp -r dir1 dir2 # 复制目录cp -i file1 file2 # 覆盖前提示cp -p file1 file2 # 保留权限和时间cp -u file1 file2 # 只复制更新的文件# rm 常用rm file.txt # 删除文件rm -r dir # 删除目录rm -f file.txt # 强制删除(不提示)rm -rf dir # 强制删除目录(危险!)
1.3 查看文件内容
| | |
|---|
cat | | cat file.txt |
more | | more file.txt |
less | | less file.txt |
head | | head -n 20 file.txt |
tail | | tail -f file.txt |
grep | | grep "error" log.txt |
# grep 常用grep "pattern" file # 搜索grep -i "pattern" file # 忽略大小写grep -r "pattern" ./ # 递归搜索grep -v "pattern" file # 排除匹配行grep -n "pattern" file # 显示行号grep -E "a|b" file # 正则表达式# tail 常用tail -f app.log # 实时查看日志(最常用)tail -n 100 app.log # 显示最后100行
二、权限管理
2.1 查看权限
ls -l file.txt# 输出: -rw-r--r-- 1 user group 1024 Jan 1 12:00 file.txt# 权限格式: [类型][user][group][other]# r=读, w=写, x=执行# - = 文件, d = 目录
2.2 修改权限 (chmod)
# 数字方式chmod 755 file # rwxr-xr-xchmod 644 file # rw-r--r--chmod 600 file # rw-------chmod 755 -R dir # 递归修改# 符号方式chmod u+x file # 用户增加执行chmod g-w file # 组移除写chmod o=r file # 其他只读chmod a+rwx file # 所有用户增加读写执行# 权限数字对照# 4 = 读 (r)# 2 = 写 (w)# 1 = 执行 (x)# 7 = 4+2+1 (rwx)# 6 = 4+2 (rw-)# 5 = 4+1 (r-x)
2.3 修改所有者 (chown/chgrp)
# 修改文件所有者chown user:group file# 只修改所有者chown user file# 只修改所属组chown :group file# 递归修改chown -R user:group dir# 修改所属组chgrp group file
三、进程管理
3.1 查看进程
| | |
|---|
ps | | ps aux |
top | | top |
htop | | htop |
pstree | | pstree |
pgrep | | pgrep java |
# ps 常用ps aux # 所有进程ps aux | grep java # 查找 Java 进程ps -ef # 完整格式ps -ef --forest # 树形显示ps -eo pid,cmd,%cpu,%mem # 自定义输出# top 快捷键# P: 按 CPU 排序# M: 按内存排序# k: 杀死进程# q: 退出
3.2 控制进程
| | |
|---|
kill | | kill -9 PID |
pkill | | pkill java |
killall | | killall java |
nohup | | nohup java -jar app.jar & |
& | | java -jar app.jar & |
# kill 信号kill -15 PID # SIGTERM(正常终止,可捕获)kill -9 PID # SIGKILL(强制终止,不可捕获)kill -1 PID # SIGHUP(重新加载配置)# jobs 查看后台任务jobsfg %1 # 将后台任务调到前台bg %1 # 将暂停任务放到后台继续运行
3.3 系统监控
| | |
|---|
free | | free -h |
df | | df -h |
du | | du -sh /var |
uptime | | uptime |
netstat | | netstat -tlnp |
ss | | ss -tlnp |
lsof | | lsof -i:8080 |
dmesg | | dmesg | tail |
# free 常用free -h # 人类可读free -m # 以 MB 显示# df 常用df -h # 人类可读df -i # 查看 inode# du 常用du -sh * # 当前目录各文件夹大小du -sh /var/log # 日志目录大小# netstat 常用netstat -tlnp # 查看监听端口netstat -an # 所有连接netstat -r # 路由表# lsof 常用lsof -i :8080 # 查看端口占用lsof -p PID # 查看进程打开的文件
四、文本处理
4.1 常用文本工具
| | |
|---|
grep | | grep error app.log |
sed | | sed 's/old/new/g' file |
awk | | awk '{print $1}' file |
cut | | cut -d: -f1 /etc/passwd |
sort | | sort -rn |
uniq | | uniq -c |
wc | | wc -l file |
# sed 常用sed 's/foo/bar/g' file # 替换所有 foo 为 barsed -i 's/old/new/g' file # 直接修改文件sed '/pattern/d' file # 删除匹配行sed -n '10,20p' file # 打印第10-20行# awk 常用awk '{print $1, $3}' file # 打印第1和第3列awk '{sum+=$1} END {print sum}' # 求和awk -F: '{print $1}' /etc/passwd # 指定分隔符awk '/error/{print}' file # 打印包含 error 的行# wc 常用wc -l file # 行数wc -w file # 单词数wc -c file # 字节数# sort + uniq 组合sort file | uniq -c # 统计重复次数sort -rn file # 降序排序sort -k2 file # 按第二列排序
五、压缩与归档
| | |
|---|
tar | | tar -czvf archive.tar.gz dir |
gzip | | gzip file |
gunzip | | gunzip file.gz |
zip | | zip -r archive.zip dir |
unzip | | unzip archive.zip |
bzip2 | | bzip2 file |
# tar 常用tar -czvf archive.tar.gz dir/ # 创建 .tar.gztar -xzvf archive.tar.gz # 解压 .tar.gztar -cjvf archive.tar.bz2 dir/ # 创建 .tar.bz2tar -xjvf archive.tar.bz2 # 解压 .tar.bz2# 常用参数# c: create 创建# x: extract 解压# z: gzip 压缩# j: bzip2 压缩# v: verbose 显示过程# f: file 指定文件名# t: 查看内容
六、网络相关
| | |
|---|
ping | | ping google.com |
curl | | curl -X GET http://api.com |
wget | | wget https://file.com/file |
ssh | | ssh user@host |
scp | | scp file user@host:/path |
rsync | | rsync -av src/ dest/ |
telnet | | telnet host 80 |
nc | | nc -zv host 80 |
# curl 常用curl http://localhost:8080/health # GET 请求curl -X POST -d '{"key":"value"}' # POST 请求curl -H "Authorization: Bearer token" # 添加头部curl -o output.html http://site.com # 保存文件# scp 常用scp file.txt user@server:/path/ # 上传scp user@server:/path/file.txt ./ # 下载scp -r dir/ user@server:/path/ # 递归上传目录scp -P 2222 file.txt user@server:/ # 指定端口# rsync 常用rsync -av /source/ /dest/ # 同步本地目录rsync -av -e ssh /source/ user@host:/dest/ # 远程同步
七、用户与权限管理
| | |
|---|
whoami | | whoami |
who | | who |
id | | id |
useradd | | useradd -m user |
usermod | | usermod -aG group user |
userdel | | userdel -r user |
passwd | | passwd user |
su | | su - root |
sudo | | sudo command |
# 用户管理useradd -m -s /bin/bash user # 创建用户passwd user # 设置密码usermod -aG sudo user # 添加到 sudo 组userdel -r user # 删除用户# 组管理groupadd group # 添加组groupdel group # 删除组groups user # 查看用户所属组
八、常用快捷键
| |
|---|
Ctrl + C | |
Ctrl + Z | |
Ctrl + D | |
Ctrl + L | |
Ctrl + A | |
Ctrl + E | |
Ctrl + U | |
Ctrl + K | |
Ctrl + R | |
Tab | |
!! | |
!$ | |
九、常用命令速查表
| |
|---|
ls -la | |
pwd | |
cd ~ | |
mkdir -p | |
rm -rf | |
cp -r | |
mv | |
tail -f | |
grep -r | |
ps aux | |
kill -9 | |
netstat -tlnp | |
free -h | |
df -h | |
du -sh | |
tar -czvf | |
tar -xzvf | |
scp | |
ssh | |
chmod 755 | |
chown | |
总结
┌─────────────────────────────────────────────────────────────┐│ Linux 常用命令总结 │├─────────────────────────────────────────────────────────────┤│ 📁 文件管理:ls, cd, cp, mv, rm, mkdir ││ 👁 查看文件:cat, less, head, tail, grep ││ 🔐 权限管理:chmod, chown, chgrp ││ ⚙️ 进程管理:ps, top, kill, nohup ││ 📊 系统监控:free, df, du, netstat, lsof ││ 📝 文本处理:sed, awk, sort, uniq, wc ││ 📦 压缩归档:tar, gzip, zip ││ 🌐 网络工具:curl, wget, ssh, scp, ping ││ 👤 用户管理:useradd, passwd, usermod, su, sudo │└─────────────────────────────────────────────────────────────┘