[超全整理] Java 程序员必备的 100 条 Linux 命令大全
liuian 2025-07-14 18:22 17 浏览
一、基础操作(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等系统管理命令
- 实践为主:通过实际项目练习,遇到问题时查阅对应命令参数
相关推荐
- 教你把多个视频合并成一个视频的方法
-
一.情况介绍当你有一个m3u8文件和一个目录,目录中有连续的视频片段,这些片段可以连成一段完整的视频。m3u8文件打开后像这样:m3u8文件,可以理解为播放列表,里面是播放视频片段的顺序。视频片段像这...
- 零代码编程:用kimichat合并一个文件夹下的多个文件
-
一个文件夹里面有很多个srt字幕文件,如何借助kimichat来自动批量合并呢?在kimichat对话框中输入提示词:你是一个Python编程专家,完成如下的编程任务:这个文件夹:D:\downloa...
- Java APT_java APT 生成代码
-
JavaAPT(AnnotationProcessingTool)是一种在Java编译阶段处理注解的工具。APT会在编译阶段扫描源代码中的注解,并根据这些注解生成代码、资源文件或其他输出,...
- Unit Runtime:一键运行 AI 生成的代码,或许将成为你的复制 + 粘贴神器
-
在我们构建了UnitMesh架构之后,以及对应的demo之后,便着手于实现UnitMesh架构。于是,我们就继续开始UnitRuntime,以用于直接运行AI生成的代码。PS:...
- 挣脱臃肿的枷锁:为什么说Vert.x是Java开发者手中的一柄利剑?
-
如果你是一名Java开发者,那么你的职业生涯几乎无法避开Spring。它如同一位德高望重的老国王,统治着企业级应用开发的大片疆土。SpringBoot的约定大于配置、SpringCloud的微服务...
- 五年后,谷歌还在全力以赴发展 Kotlin
-
作者|FredericLardinois译者|Sambodhi策划|Tina自2017年谷歌I/O全球开发者大会上,谷歌首次宣布将Kotlin(JetBrains开发的Ja...
- kotlin和java开发哪个好,优缺点对比
-
Kotlin和Java都是常见的编程语言,它们有各自的优缺点。Kotlin的优点:简洁:Kotlin程序相对于Java程序更简洁,可以减少代码量。安全:Kotlin在类型系统和空值安全...
- 移动端架构模式全景解析:从MVC到MVVM,如何选择最佳设计方案?
-
掌握不同架构模式的精髓,是构建可维护、可测试且高效移动应用的关键。在移动应用开发中,选择合适的软件架构模式对项目的可维护性、可测试性和团队协作效率至关重要。随着应用复杂度的增加,一个良好的架构能够帮助...
- 颜值非常高的XShell替代工具Termora,不一样的使用体验!
-
Termora是一款面向开发者和运维人员的跨平台SSH终端与文件管理工具,支持Windows、macOS及Linux系统,通过一体化界面简化远程服务器管理流程。其核心定位是解决多平台环境下远程连接、文...
- 预处理的底层原理和预处理编译运行异常的解决方案
-
若文章对您有帮助,欢迎关注程序员小迷。助您在编程路上越走越好![Mac-10.7.1LionIntel-based]Q:预处理到底干了什么事情?A:预处理,顾名思义,预先做的处理。源代码中...
- 为“架构”再建个模:如何用代码描述软件架构?
-
在架构治理平台ArchGuard中,为了实现对架构的治理,我们需要代码+模型描述所要处理的内容和数据。所以,在ArchGuard中,我们有了代码的模型、依赖的模型、变更的模型等,剩下的两个...
- 深度解析:Google Gemma 3n —— 移动优先的轻量多模态大模型
-
2025年6月,Google正式发布了Gemma3n,这是一款能够在2GB内存环境下运行的轻量级多模态大模型。它延续了Gemma家族的开源基因,同时在架构设计上大幅优化,目标是让...
- 比分网开发技术栈与功能详解_比分网有哪些
-
一、核心功能模块一个基本的比分网通常包含以下模块:首页/总览实时比分看板:滚动展示所有正在进行的比赛,包含比分、比赛时间、红黄牌等关键信息。热门赛事/焦点战:突出显示重要的、关注度高的比赛。赛事导航...
- 设计模式之-生成器_一键生成设计
-
一、【概念定义】——“分步构建复杂对象,隐藏创建细节”生成器模式(BuilderPattern):一种“分步构建型”创建型设计模式,它将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建...
- 构建第一个 Kotlin Android 应用_kotlin简介
-
第一步:安装AndroidStudio(推荐IDE)AndroidStudio是官方推荐的Android开发集成开发环境(IDE),内置对Kotlin的完整支持。1.下载And...
- 一周热门
-
-
【验证码逆向专栏】vaptcha 手势验证码逆向分析
-
Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控
-
一个解决支持HTML/CSS/JS网页转PDF(高质量)的终极解决方案
-
再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
-
网页转成pdf文件的经验分享 网页转成pdf文件的经验分享怎么弄
-
C++ std::vector 简介
-
飞牛OS入门安装遇到问题,如何解决?
-
系统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)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)