← 返回博客
·开发工具

Linux 常用命令大全:从入门到实战

Linux 是服务器和开发环境的主流操作系统。本文整理了日常开发最常用的 Linux 命令,从文件操作到进程管理,帮你快速查阅、提升效率。

#Linux#命令行#服务器#开发者工具

为什么需要这篇速查表

Linux 命令有两千多个,没人能全记住。这篇里列的是我实际每天在用的,不是 man 里抄出来的全量文档。

服务器运维、容器调试、日常开发——这几个场景覆盖之后,剩下的查文档就行。

文件与目录操作

最常用

ls -lah # -l 长格式 -a 含隐藏文件 -h 人类可读大小

cd - # 回到上一个目录(很实用)

pwd # 当前路径

mkdir -p a/b/c # -p 连父目录一起创建

cp -r dir1 dir2 # -r 递归复制目录

mv old.txt new.txt # 重命名也是 mv

rm -rf dist/ # 慎用 -rf,删前先 ls 确认一下

查找文件

# 在根目录找 nginx.conf,慢但全

find / -name "nginx.conf" 2>/dev/null

# 当前目录及子目录找 .log 文件

find . -name "*.log"

# 找最近 30 分钟改过的文件(排查问题时很有用)

find . -mmin -30

# 用 locate 更快(需要先 updatedb)

locate nginx.conf

查看文件内容

cat file.txt # 全部输出

less file.txt # 分页查看,支持搜索(/keyword)

head -n 50 file.txt # 看前 50 行

tail -n 50 file.txt # 看后 50 行

tail -f /var/log/nginx/error.log # 实时追踪日志,调试必备

权限管理

理解 rwx 和 755

# r=4, w=2, x=1

# 755 = owner:rwx group:r-x other:r-x

chmod 755 script.sh

chmod -R 644 public/ # -R 递归

# 给所有者加执行权限

chmod u+x script.sh

# 修改所有者

chown -R www-data:www-data /var/www

一个常见坑:chmod 777 解决权限问题最快,但也最危险——任何用户都能读写执行。生产环境别这么干。

进程管理

ps aux | grep node # 找 node 进程

top # 实时查看进程资源占用

htop # top 的加强版(需安装)

kill -9 12345 # -9 是强制杀死,慎用

kill -15 12345 # -15 是优雅终止(默认)

# 查看某进程占用的端口

lsof -i :3000

kill -9 不给进程留任何清理机会,可能导致数据丢失。优先用 kill -15(等价于 kill),不行再上 -9

网络相关

# 查看 IP

ip addr # 推荐(iproute2 套件)

ifconfig # 老命令,部分系统已废弃

# 测试连通性

ping -c 4 google.com # -c 指定次数

# 查看端口占用

ss -tlnp # 推荐(比 netstat 快)

netstat -tlnp # 老命令

# 下载文件

curl -O https://example.com/file.zip

wget https://example.com/file.zip

# 发 HTTP 请求(调试接口)

curl -X POST https://api.example.com/users \

-H "Content-Type: application/json" \

-d '{"name":"test"}'

压缩与解压

# .tar.gz

tar -czf archive.tar.gz dir/ # 压缩

tar -xzf archive.tar.gz # 解压

# .zip

zip -r archive.zip dir/

unzip archive.zip

# .gz

gzip file.txt # 压缩(会删除原文件)

gunzip file.txt.gz # 解压

参数记忆法:tar-czf 是 **c**reate **z**ip **f**ile,-xzf 是 e**x**tract **z**ip **f**ile。

管道与重定向

这是 Linux 最强大的部分,很多人用了好几年都没真正掌握。

# 管道:前一个命令的输出作为后一个的输入

cat access.log | grep "404" | wc -l # 统计 404 请求数量

# 重定向

echo "hello" > file.txt # 覆盖写入

echo "world" >> file.txt # 追加写入

command > output.log 2>&1 # 标准输出和错误都写入文件

command > /dev/null 2>&1 # 丢弃所有输出(静默执行)

# heredoc:向命令传入多行输入

mysql -u root -p << EOF

CREATE DATABASE myapp;

USE myapp;

CREATE TABLE users (id INT);

EOF

系统资源查看

df -h # 磁盘空间(人类可读)

du -sh * # 当前目录各文件/文件夹大小

free -h # 内存使用

# 查看 CPU 信息

lscpu

cat /proc/cpuinfo | grep "model name"

# 查看系统运行时间和负载

uptime # 输出:load average: 0.15, 0.25, 0.30

load average 三个数字分别代表 1分钟、5分钟、15分钟的平均负载。如果 1分钟远高于 15分钟,说明负载在升高;反过来说明在恢复。

SSH 相关

# 登录远程服务器

ssh user@192.168.1.100

# 指定端口

ssh -p 2222 user@host

# 用密钥登录(推荐,比密码安全)

ssh -i ~/.ssh/id_rsa user@host

# 把本地公钥加到服务器(只需执行一次)

ssh-copy-id user@host

# 本地端口转发(访问本地 3306 实际连到远程的 MySQL)

ssh -L 3306:localhost:3306 user@remote-host

实用技巧

历史命令搜索

Ctrl + r 然后输入关键词,能搜索历史命令。找到后按 Enter 执行,或 Ctrl + → 编辑后再执行。

快速回到上次的目录

cd - # 回到上一个目录

批量重命名

# 把所有 .txt 改成 .md

rename 's/\.txt$/.md/' *.txt

# 或者直接用 for 循环

for f in *.txt; do mv "$f" "${f%.txt}.md"; done

查看命令运行时间

time npm install # 输出实际时间、用户态 CPU、内核态 CPU


总结

上面的命令覆盖了日常 80% 的使用场景。剩下的 20% 遇到时查 man 或者 Google 就行——没人能把所有命令记在脑子里。

> **Pro Tip**: 在 ~/.bashrc~/.zshrc 里加 alias ll='ls -lah',敲两个字母就能代替八个,积少成多。