程序员必须掌握的Linux命令(超详细)
引言
无论你是开发者、测试人员还是运维工程师,Linux命令行都是你的必备工具。掌握常用的Linux命令,不仅能让你在日常工作中事半功倍,更能在面试中脱颖而出。本文将系统讲解常用Linux命令,从基础导航、文件管理到网络、进程、权限等各方面进行详细说明,并附上具体示例。赶快收藏,升级你的Linux技能吧!
目录
- 基础操作命令
1.1 目录导航:ls, cd, pwd
1.2 创建、删除和复制文件/目录:mkdir, rm, cp, mv - 文件查看与编辑
2.1 cat, more, less
2.2 grep 与正则表达式搜索
2.3 vim/nano 编辑器使用 - 文件权限与所有者管理
3.1 chmod, chown, chgrp - 系统信息与监控
4.1 top, htop, ps
4.2 free, df, du
4.3 uname, lsb_release - 网络管理命令
5.1 ping, ifconfig/ip, netstat
5.2 ssh, scp, wget, curl - 进程管理与任务调度
6.1 kill, pkill, nohup, &
6.2 cron 定时任务 - 其他常用命令与技巧
7.1 find, locate, xargs
7.2 tar, gzip, zip/unzip - 总结与提升
1. 基础操作命令
1.1 目录导航:ls, cd, pwd
-
pwd:显示当前工作目录
$ pwd /home/user/projects
-
ls:列出目录内容
- 列出详细信息:
$ ls -l total 12 drwxr-xr-x 2 user user 4096 May 10 10:20 src -rw-r--r-- 1 user user 234 May 10 09:30 README.md
- 显示隐藏文件(以 . 开头):
$ ls -a . .. .bashrc .git README.md src
- 列出详细信息:
-
cd:切换目录
- 进入目录:
$ cd src
- 返回上级目录:
$ cd ..
- 进入目录:
1.2 创建、删除和复制文件/目录:mkdir, rm, cp, mv
-
mkdir:创建目录
$ mkdir new_folder
-
rm:删除文件/目录
- 删除文件:
$ rm file.txt
- 递归删除目录及其内容:
$ rm -rf folder_name
- 删除文件:
-
cp:复制文件或目录
- 复制文件:
$ cp source.txt destination.txt
- 复制目录(-r 递归):
$ cp -r folder1 folder2
- 复制文件:
-
mv:移动或重命名文件/目录
$ mv old_name new_name $ mv file.txt /home/user/backup/
2. 文件查看与编辑
2.1 cat, more, less
- cat:查看文件内容
$ cat README.md
- more 和 less:分页显示长文件
$ more largefile.txt $ less largefile.txt
2.2 grep 与正则表达式搜索
- grep:搜索文件中的匹配字符串
$ grep "error" log.txt
- 搜索并显示行号:
$ grep -n "warning" log.txt
- 结合正则表达式:
$ grep -E "^[A-Z][a-z]+:" data.txt
2.3 vim/nano 编辑器使用
-
vim:强大且功能丰富
- 打开文件:
$ vim file.txt
- 进入插入模式:按
i
键 - 保存并退出:按
ESC
后输入:wq
- 打开文件:
-
nano:简单易用
$ nano file.txt
- 保存:按
Ctrl + O
,退出:按Ctrl + X
- 保存:按
3. 文件权限与所有者管理
3.1 chmod, chown, chgrp
-
chmod:修改文件权限
- 设置文件为可读、可写、可执行(所有人):
$ chmod 777 script.sh
- 仅让所有者可读写:
$ chmod 600 secret.txt
- 设置文件为可读、可写、可执行(所有人):
-
chown:更改文件所有者
$ chown user:group file.txt
-
chgrp:更改文件所属组
$ chgrp developers file.txt
4. 系统信息与监控
4.1 top, htop, ps
-
top:实时查看系统资源占用
$ top
-
htop:更友好的交互界面(需安装)
$ htop
-
ps:查看当前运行的进程
$ ps aux
4.2 free, df, du
-
free:查看内存使用情况
$ free -h
-
df:查看磁盘使用情况
$ df -h
-
du:统计文件/目录大小
$ du -sh folder_name
4.3 uname, lsb_release
-
uname:查看系统内核信息
$ uname -a
-
lsb_release:查看发行版信息(需安装)
$ lsb_release -a
5. 网络管理命令
5.1 ping, ifconfig/ip, netstat
-
ping:测试网络连通性
$ ping www.google.com
-
ifconfig/ip:查看或配置网络接口
$ ifconfig $ ip addr show
-
netstat:显示网络连接、路由表、接口统计
$ netstat -tulnp
5.2 ssh, scp, wget, curl
-
ssh:远程登录
$ ssh user@hostname
-
scp:文件安全复制
$ scp localfile.txt user@hostname:/path/to/destination
-
wget:下载文件
$ wget https://example.com/file.zip
-
curl:网络请求与文件下载
$ curl -O https://example.com/file.zip
6. 进程管理与任务调度
6.1 kill, pkill, nohup, &
-
kill:发送信号终止进程
$ kill 1234
-
pkill:按进程名终止进程
$ pkill -f process_name
-
nohup:在后台运行任务,即使退出终端也不终止
$ nohup ./long_running_script.sh &
-
使用 &:将命令放入后台运行
$ ./script.sh &
6.2 cron 定时任务
- cron:配置定时任务
编辑 crontab:$ crontab -e
7. 其他常用命令与技巧
7.1 find, locate, xargs
- find:查找文件
$ find /home/user -name "*.c"
- locate:快速查找(需更新数据库)
$ locate keyword
- xargs:将标准输入转换为命令参数
$ find . -name "*.log" | xargs rm -f
7.2 tar, gzip, zip/unzip
- tar:打包压缩
$ tar -czvf archive.tar.gz folder/
- gzip:压缩文件
$ gzip file.txt
- unzip:解压 zip 文件
$ unzip archive.zip
总结与提升
本文详细介绍了程序员必须掌握的Linux命令,从基础操作、文件编辑、权限管理、系统监控,到网络管理、进程调度及高级查找、打包等,涵盖了日常工作中可能遇到的各类场景。
- 实战技巧:每个命令后均附有示例,直观展示用法。
- 高效运用:多组合使用(如 find + xargs)能显著提升工作效率。
- 持续学习:Linux命令种类繁多,掌握基本命令后,可根据工作需要逐步深入学习脚本编写和系统自动化管理。
温馨提示:
每个命令都可以配合 man 命令查看更多帮助,例如:$ man ls
如果你觉得这篇文章对你有帮助,请点赞、收藏和分享,让更多程序员受益!
欢迎在评论区交流你最常用或最喜欢的Linux命令,共同进步,持续探索技术的无限可能!
关注我:在这里,我们一起分享最实用的编程技巧和经验,助你成为更高效、更专业的程序员!