[超全整理] Java 程序员必备的 100 条 Linux 命令大全
liuian 2025-07-14 18:22 1 浏览
一、基础操作(10条)
# 1. ls - 查看目录内容
ls -l # 长格式显示文件和目录
ls -a # 显示隐藏文件
ls -lh # 带单位显示文件大小
# 2. cd - 切换目录
cd /opt # 进入/opt目录
cd .. # 返回上级目录
cd ~ # 回到用户家目录
# 3. pwd - 显示当前路径
pwd # 输出:/home/user
# 4. mkdir - 创建目录
mkdir project # 创建project目录
mkdir -p a/b/c # 递归创建多级目录
# 5. rm - 删除文件/目录
rm file.txt # 删除文件
rm -rf dir # 强制递归删除目录
# 6. cp - 复制文件/目录
cp src.txt dst/ # 复制文件到目录
cp -r src/ dst/ # 递归复制目录
# 7. mv - 移动/重命名文件
mv file.txt new.txt # 重命名文件
mv src/ dir/ # 移动目录
# 8. touch - 创建空文件或更新时间戳
touch log.txt # 创建空文件
# 9. cat - 查看文件内容
cat config.properties # 显示文件全部内容
# 10. echo - 输出内容或变量
echo "Hello World" # 输出文本
echo $JAVA_HOME # 输出环境变量值
二、文件编辑(8条)
# 11. vim - 文本编辑器
vim app.java # 编辑Java文件
# 进入后按i进入编辑模式,编辑完成后按Esc,输入:wq保存并退出
# 12. nano - 简易编辑器
nano readme.txt # 编辑文本文件
# 13. more/less - 分页查看大文件
less log.txt # 分页查看日志文件
# 按/搜索关键词,n下一个,N上一个,q退出
# 14. head/tail - 查看文件首尾内容
head -n 10 log.txt # 显示前10行
tail -f app.log # 实时监控文件追加内容
# 15. grep - 文本搜索
grep "ERROR" log.txt # 搜索包含ERROR的行
grep -i "java" file.txt # 忽略大小写搜索
# 16. sed - 文本替换
sed -i 's/old/new/g' file.txt # 将文件中所有old替换为new
# 17. awk - 文本处理
awk '{print $1}' file.txt # 打印每行第一列
# 18. diff - 比较文件差异
diff file1.txt file2.txt # 显示两个文件的不同之处
三、权限与用户管理(8条)
# 19. chmod - 修改文件权限
chmod +x script.sh # 添加执行权限
chmod 755 app.jar # 精确设置权限(rwxr-xr-x)
# 20. chown - 修改文件所有者
chown user:group file.txt # 修改所有者和组
# 21. useradd/userdel - 管理用户
useradd dev # 创建新用户
userdel -r dev # 删除用户及其家目录
# 22. passwd - 修改密码
passwd root # 修改root用户密码
# 23. su/sudo - 切换用户/以管理员执行
su - user # 切换到user用户
sudo yum install java # 以root权限安装Java
# 24. id - 查看用户信息
id user # 显示用户ID、组ID等信息
# 25. groups - 查看用户所属组
groups user # 列出用户所属的所有组
# 26. whoami - 显示当前用户
whoami # 输出当前登录的用户名
四、进程管理(10条)
# 27. ps - 查看进程状态
ps -ef # 显示所有进程
ps aux | grep java # 过滤Java进程
# 28. top - 实时监控进程资源
top # 动态显示系统进程资源占用
# 按q退出,按M按内存排序,按P按CPU排序
# 29. htop - 交互式进程监控
htop # 比top更直观的进程监控工具(需安装)
# 30. kill/killall - 终止进程
kill 1234 # 终止进程ID为1234的进程
kill -9 1234 # 强制终止进程
killall java # 终止所有Java进程
# 31. pkill - 按名称终止进程
pkill -f "java -jar app.jar" # 终止包含指定字符串的进程
# 32. nice/renice - 调整进程优先级
nice -n 10 java -jar app.jar # 以较低优先级启动进程
renice 10 1234 # 将进程ID为1234的进程优先级调整为10
# 33. jps - 查看Java进程
jps -l # 显示Java进程ID和主类名
# 34. jstat - 监控JVM统计信息
jstat -gc 1234 # 查看进程1234的GC情况
# 35. jstack - 打印JVM线程堆栈
jstack 1234 > stack.txt # 将线程堆栈导出到文件
# 36. jmap - 生成JVM堆转储
jmap -dump:format=b,file=heap.hprof 1234 # 生成堆转储文件
五、网络操作(12条)
# 37. ping - 测试网络连通性
ping www.google.com # 测试与Google的连接
# 38. traceroute - 追踪网络路径
traceroute www.example.com # 显示到目标的路由路径
# 39. ifconfig/ip - 查看网络接口
ifconfig eth0 # 查看eth0接口信息
ip addr show # 显示所有网络接口信息
# 40. netstat/ss - 查看网络连接和端口
netstat -tulpn # 显示所有监听端口和连接
ss -tulpn # 更高效的网络连接查看工具
# 41. curl - 发送HTTP请求
curl https://api.example.com # 发送GET请求
curl -X POST -d 'data=123' https://api.example.com # 发送POST请求
# 42. wget - 下载文件
wget https://example.com/file.zip # 下载文件
# 43. ssh - 远程登录
ssh user@host # 登录远程主机
ssh -i key.pem user@host # 使用密钥登录
# 44. scp - 远程文件传输
scp local.txt user@host:/path/ # 上传文件
scp user@host:/path/remote.txt . # 下载文件
# 45. sftp - 安全文件传输协议
sftp user@host # 连接到远程主机
# 进入后使用put上传,get下载
# 46. nslookup/dig - DNS查询
nslookup google.com # 查询域名对应的IP
dig +short google.com # 只显示IP结果
# 47. telnet - 测试端口连通性
telnet host 8080 # 测试主机的8080端口是否开放
# 48. nc - 网络工具
nc -z host 8080 # 扫描端口
nc -l 8080 # 监听8080端口
六、系统信息(8条)
# 49. uname - 查看系统信息
uname -a # 显示完整系统信息
# 50. hostname - 查看/设置主机名
hostname # 显示当前主机名
hostnamectl set-hostname newname # 设置新主机名
# 51. date - 显示/设置系统时间
date # 显示当前时间
date -s "2023-01-01 12:00:00" # 设置系统时间
# 52. uptime - 查看系统运行时间和负载
uptime # 显示系统运行时间和负载情况
# 53. df - 查看磁盘空间
df -h # 以人类可读格式显示磁盘空间使用情况
# 54. du - 查看目录大小
du -sh /opt # 显示/opt目录的总大小
du -h --max-depth=1 /opt # 显示/opt下一级目录的大小
# 55. free - 查看内存使用
free -h # 以人类可读格式显示内存使用情况
# 56. vmstat - 查看系统内存、CPU状态
vmstat 1 10 # 每秒采样1次,共采样10次
七、压缩与归档(6条)
# 57. tar - 打包/压缩文件
tar -zcvf archive.tar.gz dir/ # 创建gz压缩包
tar -zxvf archive.tar.gz -C /tmp # 解压到/tmp目录
# 58. zip/unzip - ZIP格式压缩/解压
zip -r archive.zip dir/ # 压缩目录为ZIP
unzip archive.zip -d /tmp # 解压ZIP到/tmp
# 59. gzip/gunzip - GZIP压缩/解压
gzip file.txt # 压缩文件
gunzip file.txt.gz # 解压文件
# 60. bzip2/bzcat - BZIP2压缩/查看
bzip2 file.txt # 压缩文件
bzcat file.txt.bz2 # 查看压缩文件内容
# 61. xz - XZ压缩
xz file.txt # 压缩文件为xz格式
# 62. unrar - 解压RAR文件
unrar x archive.rar # 解压RAR文件
八、软件包管理(8条)
基于RPM(CentOS/RHEL)
# 63. yum - 包管理器
yum install java-11-openjdk # 安装Java 11
yum update # 更新所有软件包
# 64. rpm - 管理RPM包
rpm -ivh package.rpm # 安装RPM包
rpm -e package # 卸载RPM包
基于DEB(Ubuntu/Debian)
# 65. apt-get/apt - 包管理器
apt install openjdk-11-jdk # 安装Java 11
apt update && apt upgrade # 更新软件包
# 66. dpkg - 管理DEB包
dpkg -i package.deb # 安装DEB包
dpkg -r package # 卸载DEB包
通用
# 67. wget/curl安装脚本
curl -sSL https://get.docker.com | sh # 安装Docker
# 68. snap - 软件包管理
snap install postman # 安装Postman
# 69. make/configure - 编译安装源码
./configure # 配置编译选项
make # 编译源码
make install # 安装程序
# 70. pip - Python包管理
pip install requests # 安装Python请求库
九、服务与定时任务(6条)
# 71. systemctl - 管理系统服务
systemctl start nginx # 启动Nginx服务
systemctl enable nginx # 设置Nginx开机自启
systemctl status nginx # 查看Nginx状态
# 72. service - 管理服务(旧系统)
service httpd restart # 重启Apache服务
# 73. chkconfig - 管理服务启动项(旧系统)
chkconfig httpd on # 设置Apache开机自启
# 74. crontab - 设置定时任务
crontab -e # 编辑定时任务
# 添加类似下面的行:0 0 * * * /backup/script.sh (每天0点执行备份)
# 75. at - 一次性定时任务
at 23:00 today # 设置今天23点执行命令
# 输入命令后按Ctrl+D保存
# 76. journalctl - 查看系统日志
journalctl -u nginx.service # 查看Nginx服务日志
journalctl -f # 实时监控日志
十、高级操作(10条)
# 77. find - 文件搜索
find / -name "*.jar" 2>/dev/null # 搜索所有.jar文件
find . -type f -mtime -1 # 查找一天内修改的文件
# 78. xargs - 处理命令输出作为参数
find . -name "*.txt" | xargs rm # 删除所有txt文件
# 79. 管道(|) - 连接多个命令
ps aux | grep java | awk '{print $2}' # 获取Java进程ID
# 80. 重定向(>, >>) - 输出重定向
echo "hello" > file.txt # 覆盖文件内容
echo "world" >> file.txt # 追加内容到文件
# 81. alias - 创建命令别名
alias ll='ls -l' # 创建ll别名
alias grep='grep --color=auto' # 带颜色的grep
# 82. export - 设置环境变量
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk # 设置Java_HOME
# 83. source - 重新加载配置文件
source ~/.bashrc # 重新加载bash配置
# 84. time - 测量命令执行时间
time java -jar app.jar # 测量Java程序执行时间
# 85. watch - 定时执行命令并显示结果
watch -n 1 'ps aux | grep java' # 每秒刷新一次Java进程
# 86. tee - 同时输出到屏幕和文件
ls -l | tee files.txt # 同时显示和保存目录列表
十一、快捷键与技巧(8条)
# 87. Ctrl+C - 终止当前命令
# 在运行命令时按Ctrl+C终止执行
# 88. Ctrl+Z - 暂停当前命令
# 在运行命令时按Ctrl+Z暂停,可用fg恢复
# 89. Ctrl+D - 退出Shell会话
# 在终端中按Ctrl+D退出当前会话
# 90. Tab - 命令/文件名自动补全
# 输入命令或文件名时按Tab自动补全
# 91. ↑/↓ - 浏览历史命令
# 按上/下箭头浏览之前输入的命令
# 92. !! - 执行上一条命令
!! # 执行上一条命令
# 93. history - 查看命令历史
history # 显示所有历史命令
!123 # 执行历史中第123条命令
# 94. man - 查看命令手册
man ls # 查看ls命令的手册页
十二、Java开发专用(4条)
# 95. java - 运行Java程序
java -jar app.jar # 运行JAR包
java -Xmx512m MainClass # 指定最大堆内存为512M
# 96. javac - 编译Java源文件
javac HelloWorld.java # 编译Java文件
# 97. javadoc - 生成Java文档
javadoc -d docs src/*.java # 生成Java文档到docs目录
# 98. jar - 创建/操作JAR包
jar cvf app.jar *.class # 创建JAR包
jar tf app.jar # 查看JAR包内容
十三、Docker相关(6条)
# 99. docker run - 运行容器
docker run -d -p 8080:8080 tomcat:9.0 # 后台运行Tomcat容器
# 100. docker ps - 查看运行中的容器
docker ps # 查看正在运行的容器
docker ps -a # 查看所有容器(包括已停止的)
总结
- 基础命令:先掌握ls、cd、mkdir、rm、grep等日常高频命令
- Java开发:重点熟悉jps、jstat、jstack、java等JDK工具
- 运维必备:掌握ps、top、netstat、systemctl等系统管理命令
- 实践为主:通过实际项目练习,遇到问题时查阅对应命令参数
相关推荐
- Optional是个好东西,如果用错了就太可惜了
-
原文出处:https://xie.infoq.cn/article/e3d1f0f4f095397c44812a5be我们都知道,在Java8新增了一个类-Optional,主要是用来解决程...
- IDEA建议:不要在字段上使用@Autowire了!
-
在使用IDEA写Spring相关的项目的时候,在字段上使用@Autowired注解时,总是会有一个波浪线提示:Fieldinjectionisnotrecommended.纳尼?我天天用,咋...
- Spring源码|Spring实例Bean的方法
-
Spring实例Bean的方法,在AbstractAutowireCapableBeanFactory中的protectedBeanWrappercreateBeanInstance(String...
- Spring技巧:深入研究Java 14和SpringBoot
-
在本期文章中,我们将介绍Java14中的新特性及其在构建基于SpringBoot的应用程序中的应用。开始,我们需要使用Java的最新版本,也是最棒的版本,Java14,它现在还没有发布。预计将于2...
- Java开发200+个学习知识路线-史上最全(框架篇)
-
1.Spring框架深入SpringIOC容器:BeanFactory与ApplicationContextBean生命周期:实例化、属性填充、初始化、销毁依赖注入方式:构造器注入、Setter注...
- 年末将至,Java 开发者必须了解的 15 个Java 顶级开源项目
-
专注于Java领域优质技术,欢迎关注作者:SnailClimbStar的数量统计于2019-12-29。1.JavaGuideGuide哥大三开始维护的,目前算是纯Java类型项目中Sta...
- 字节跨平台框架 Lynx 开源:一个 Web 开发者的原生体验
-
最近各大厂都在开源自己的跨平台框架,前脚腾讯刚宣布计划四月开源基于Kotlin的跨平台框架「Kuikly」,后脚字节跳动旧开源了他们的跨平台框架「Lynx」,如果说Kuikly是一个面向...
- 我要狠狠的反驳“公司禁止使用Lombok”的观点
-
经常在其它各个地方在说公司禁止使用Lombok,我一直不明白为什么不让用,今天看到一篇文章列举了一下“缺点”,这里我只想狠狠地反驳,看到列举的理由我竟无言以对。原文如下:下面,结合我自己使用Lomb...
- SpringBoot Lombok使用详解:从入门到精通(注解最全)
-
一、Lombok概述与基础使用1.1Lombok是什么Lombok是一个Java库,它通过注解的方式自动生成Java代码(如getter、setter、toString等),从而减少样板代码的编写,...
- Java 8之后的那些新特性(六):记录类 Record Class
-
Java是一门面向对象的语言,而对于面向对象的语言中,一个众所周知的概念就是,对象是包含属性与行为的。比如HR系统中都会有雇员的概念,那雇员会有姓名,ID身份,性别等,这些我们称之为属性;而雇员同时肯...
- 为什么大厂要求安卓开发者掌握Kotlin和Jetpack?优雅草卓伊凡
-
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡一、Kotlin:Android开发的现代语言选择1.1Kotlin是什么?Kotlin是由...
- Kotlin这5招太绝了!码农秒变优雅艺术家!
-
Kotlin因其简洁性、空安全性和与Java的无缝互操作性而备受喜爱。虽然许多开发者熟悉协程、扩展函数和数据类等特性,但还有一些鲜为人知的特性可以让你的代码从仅仅能用变得真正优雅且异常简洁。让我们来看...
- 自行部署一款免费高颜值的IT资产管理系统-咖啡壶chemex
-
在运维时,ICT资产太多怎么办,还是用excel表格来管理?效率太低,也不好多人使用。在几个IT资产管理系统中选择比较中,最终在Snipe-IT和chemex间选择了chemex咖啡壶。Snip...
- PHP对接百度语音识别技术(php对接百度语音识别技术实验报告)
-
引言在目前的各种应用场景中,语音识别技术已经越来越常用,并且其应用场景正在不断扩大。百度提供的语音识别服务允许用户通过简单的接口调用,将语音内容转换为文本。本文将通过PHP语言集成百度的语音识别服务,...
- 知识付费系统功能全解析(知识付费项目怎么样)
-
开发知识付费系统需包含核心功能模块,确保内容变现、用户体验及运营管理需求。以下是完整功能架构:一、用户端功能注册登录:手机号/邮箱注册,第三方登录(微信、QQ)内容浏览:分类展示课程、文章、音频等付费...
- 一周热门
-
-
Python实现人事自动打卡,再也不会被批评
-
【验证码逆向专栏】vaptcha 手势验证码逆向分析
-
Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控
-
一个解决支持HTML/CSS/JS网页转PDF(高质量)的终极解决方案
-
再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
-
网页转成pdf文件的经验分享 网页转成pdf文件的经验分享怎么弄
-
C++ std::vector 简介
-
系统C盘清理:微信PC端文件清理,扩大C盘可用空间步骤
-
10款高性能NAS丨双十一必看,轻松搞定虚拟机、Docker、软路由
-
python使用fitz模块提取pdf中的图片
-
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- table.render (33)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)