Linux 常用命令入门——开发者必会的 30 个命令

Linux 常用命令入门——开发者必会的 30 个命令

作者: CaoZH
日期: 2022-08-15
本文为原创教程


无论是后端开发、运维还是前端开发者,Linux 命令都是绕不开的基本功。本文整理了日常开发中最常用的 30 个 Linux 命令,按功能分类,搭配示例,帮你快速上手。

一、文件管理

1. ls — 列出文件和目录

1
2
3
4
5
ls                    # 列出当前目录文件
ls -l # 详细列表(权限、大小、日期)
ls -a # 显示隐藏文件(以 . 开头)
ls -lh # 人类可读的大小显示
ls -lt # 按修改时间排序

2. cd — 切换目录

1
2
3
4
cd /home              # 进入 /home 目录
cd ~ # 进入 home 目录
cd - # 返回上一个目录
cd .. # 返回上一级目录

3. pwd — 显示当前路径

1
pwd                   # 输出:/home/user/projects

4. mkdir — 创建目录

1
2
mkdir mydir           # 创建单个目录
mkdir -p a/b/c # 递归创建多级目录

5. cp — 复制文件/目录

1
2
3
cp file.txt backup/           # 复制文件到目录
cp -r src/ dest/ # 递归复制整个目录
cp -a /data /data_backup # 保留权限和属性复制

6. mv — 移动/重命名

1
2
3
mv file.txt /tmp/             # 移动文件
mv old.txt new.txt # 重命名文件
mv -i file.txt dest/ # 交互式(覆盖前确认)

7. rm — 删除

1
2
3
4
rm file.txt                   # 删除文件
rm -r dir/ # 递归删除目录
rm -f file.txt # 强制删除(不提示)
rm -rf dir/ # ⚠️ 小心使用!

8. find — 查找文件

1
2
3
find . -name "*.log"          # 按文件名查找
find /var -size +100M # 按大小查找(大于100MB)
find . -mtime -7 # 7天内修改过的文件

9. grep — 搜索文件内容

1
2
3
4
5
6
grep "error" app.log                    # 搜索关键字
grep -r "TODO" src/ # 递归搜索目录
grep -i "warning" log.txt # 忽略大小写
grep -n "exception" app.log # 显示行号
grep -c "ERROR" app.log # 统计匹配行数
grep "error" app.log | grep -v "timeout" # 排除含有 timeout 的行

二、文本处理

10. cat — 查看文件内容

1
2
cat file.txt                  # 显示全部内容
cat -n file.txt # 带行号显示

11. tail/head — 查看文件开头/结尾

1
2
3
tail -f app.log               # 实时跟踪日志(最常用)
tail -n 100 app.log # 显示最后100行
head -n 20 app.log # 显示前20行

12. less — 分页查看

1
2
less app.log                  # 分页查看(q 退出,/ 搜索)
less -N app.log # 带行号分页

13. vim/nano — 文本编辑

1
2
nano config.yml               # 简单编辑(新手友好)
vim config.yml # 强大编辑器(需要学习)

三、系统管理

14. ps — 查看进程

1
2
3
ps aux                        # 查看所有进程
ps aux | grep nginx # 查找 nginx 进程
ps -ef # 完整格式显示

15. top — 实时系统监控

1
2
top                           # 按 CPU 排序的进程列表
htop # 更漂亮的 top(需要安装)

16. df/du — 磁盘管理

1
2
3
df -h                         # 查看磁盘使用情况
du -sh /home # 查看目录大小
du -h --max-depth=1 # 查看各子目录大小

17. systemctl — 服务管理

1
2
3
4
5
6
systemctl start nginx         # 启动服务
systemctl stop nginx # 停止服务
systemctl restart nginx # 重启服务
systemctl status nginx # 查看服务状态
systemctl enable nginx # 设置开机自启
systemctl disable nginx # 取消开机自启

18. chmod — 修改权限

1
2
3
chmod 755 script.sh           # rwxr-xr-x
chmod +x script.sh # 添加可执行权限
chmod -R 644 /var/www # 递归设置权限

四、网络相关

19. curl — HTTP 请求

1
2
3
4
5
6
curl https://api.example.com           # GET 请求
curl -X POST -d '{"key":"value"}' \ # POST 请求
-H "Content-Type: application/json" \
https://api.example.com/create
curl -I https://example.com # 查看响应头
curl -o file.zip https://example.com/file.zip # 下载文件

20. wget — 下载文件

1
2
wget https://example.com/file.zip      # 下载文件
wget -c https://example.com/big.zip # 断点续传

21. netstat/ss — 查看网络连接

1
2
ss -tlnp                      # 查看 TCP 监听端口
netstat -tulpn # 查看所有监听端口(需安装 net-tools)

22. ping — 网络连通性测试

1
ping -c 4 google.com          # 发送4个包后停止

五、压缩与归档

23. tar — 打包压缩

1
2
3
4
tar -czf archive.tar.gz /path     # 创建 tar.gz 压缩包
tar -xzf archive.tar.gz # 解压 tar.gz
tar -cjf archive.tar.bz2 /path # 创建 tar.bz2 压缩包
tar -xf archive.tar.gz -C /dest # 解压到指定目录

24. zip/unzip — ZIP 操作

1
2
3
zip -r archive.zip dir/        # 创建 ZIP
unzip archive.zip # 解压 ZIP
unzip archive.zip -d /dest # 解压到指定目录

六、实用工具

25. ssh — 远程连接

1
2
3
4
ssh user@192.168.1.100        # SSH 登录
ssh -p 2222 user@host # 指定端口
ssh-keygen -t rsa -b 4096 # 生成 SSH 密钥
ssh-copy-id user@host # 复制公钥到服务器

26. scp — 远程复制

1
2
3
scp file.txt user@host:/path/       # 本地传到远程
scp user@host:/path/file.txt ./ # 远程拉到本地
scp -r user@host:/remote/dir ./ # 递归复制目录

27. alias — 命令别名

1
2
3
4
alias ll='ls -lah'
alias gs='git status'
alias gc='git commit -m'
# 永久生效:写入 ~/.bashrc 或 ~/.zshrc

28. history — 命令历史

1
2
3
4
history                       # 查看历史命令
history | grep docker # 查找 docker 相关历史命令
!! # 重复执行上一条命令
!100 # 执行历史中第100条命令

七、高频组合用法

1
2
3
4
5
6
7
8
9
10
11
# 实时监控日志并过滤
tail -f app.log | grep ERROR

# 查找最大的10个文件
find / -type f -exec du -h {} + 2>/dev/null | sort -rh | head -10

# 批量重命名 .txt 为 .md
for f in *.txt; do mv "$f" "${f%.txt}.md"; done

# 统计 Java 代码行数
find . -name "*.java" | xargs wc -l | tail -1

总结

记住这些命令不需要死记硬背,多用几次就熟悉了。建议把常用的 alias 写入 ~/.bashrc,效率翻倍。

下一步: 学习 Shell 脚本编程,把重复操作自动化。


首发于 CaoZH 的笔记