Linux 作为一款广泛使用的操作系统,其强大的命令行工具为开发者和管理员提供了高效的操作方式,对于 Java 开发者而言,熟练掌握 Linux 常用命令并结合 Java 开发需求,能够显著提升工作效率,本文将详细介绍 Linux 环境下与 Java 开发相关的常用命令,并结合实际场景说明其应用。

文件与目录操作命令
文件和目录是 Linux 系统的基础操作对象,Java 开发中经常需要处理项目文件、配置文件等,以下命令是日常开发的高频工具:
-
ls命令:列出目录内容。- 常用选项:
-l:以长格式显示(包含权限、所有者、大小、修改时间等)。-a:显示所有文件,包括隐藏文件(以 开头)。-h:以人类可读格式显示文件大小(如K、M、G)。
- 示例:
ls -lah查看当前目录所有文件的详细信息,包括隐藏文件。
- 常用选项:
-
cd命令:切换目录。cd ~:切换到当前用户主目录。cd -:切换到上一个工作目录。cd ..:返回上一级目录。- 示例:
cd /opt/java进入 Java 安装目录。
-
cp命令:复制文件或目录。
(图片来源网络,侵删)-r:递归复制目录(用于复制整个目录树)。-p:保留文件权限、时间戳等属性。- 示例:
cp -r project_backup/ /opt/backup/备份整个项目目录。
-
mv命令:移动或重命名文件/目录。- 示例:
mv old_name.java new_name.java重命名文件;mv src/ target/将src目录移动到target下。
- 示例:
-
rm命令:删除文件或目录。-r:递归删除目录(谨慎使用)。-f:强制删除,不提示确认。- 示例:
rm -rf temp/删除temp目录及其所有内容(需谨慎操作)。
-
mkdir命令:创建目录。-p:递归创建多级目录(若父目录不存在则一并创建)。- 示例:
mkdir -p project/src/main/java创建多级项目目录结构。
-
find命令:在目录树中搜索文件。- 示例:
find /home -name "*.java"在/home目录下搜索所有.java文件;find . -type f -mtime -7查找当前目录下 7 天内修改过的文件。
- 示例:
文本处理命令
Java 开发中常需查看、编辑或分析日志文件、源代码等,Linux 文本处理命令能高效完成这些任务:
-
cat命令:查看文件内容(适合小文件)。- 示例:
cat config.properties查看配置文件内容。
- 示例:
-
less命令:分页查看文件内容(适合大文件,支持上下翻页、搜索)。- 示例:
less server.log查看server.log,可通过/keyword搜索关键词。
- 示例:
-
grep命令:文本搜索工具。-i:忽略大小写。-r:递归搜索目录。-n:显示匹配行号。- 示例:
grep -r "Exception" src/在src目录下搜索包含Exception的代码行。
-
sed命令:流编辑器,用于文本替换、删除等。- 示例:
sed -i 's/old_value/new_value/g' config.properties全局替换文件中的old_value为new_value。
- 示例:
-
awk命令:文本分析工具,按列处理数据。- 示例:
cat access.log | awk '{print $1, $NF}'提取每行的第 1 列(IP)和最后一列(状态码)。
- 示例:
Java 开发相关命令
Java 开发依赖 JDK 环境,需结合 Linux 命令完成编译、运行、调试等操作:
-
java命令:运行 Java 程序。-jar:执行 JAR 包。-cp:指定类路径(多个路径用 分隔)。- 示例:
java -jar target/app.jar运行 JAR 包;java -cp "lib/*:." Main指定类路径运行Main类。
-
javac命令:编译 Java 源文件。-d:指定编译输出目录。- 示例:
javac -d build src/*.java编译src目录下所有.java文件,输出到build目录。
-
jar命令:创建或操作 JAR 包。cvf:创建 JAR 包(c创建、v显示详情、f指定文件名)。xf:解压 JAR 包。- 示例:
jar cvf app.jar -C build .将build目录下的所有文件打包为app.jar。
-
jps命令:查看当前运行的 Java 进程(需 JDK 安装)。-l:显示主类完整名称。-v:显示 JVM 参数。- 示例:
jps -l查看所有 Java 进程的 ID 和主类。
-
jstat命令:监控 JVM 性能(如堆内存、GC 情况)。- 示例:
jstat -gcutil 12345 1s每秒打印 ID 为12345的 Java 进程的 GC 使用率。
- 示例:
-
ps命令:查看系统进程,结合 Java 开发可定位进程。- 示例:
ps -ef | grep java查找所有 Java 进程。
- 示例:
系统与进程管理命令
Java 应用常以服务形式运行,需掌握系统监控和进程管理命令:
-
top/htop命令:实时监控系统进程和资源占用。htop是top的增强版(需安装),支持交互式操作(如杀死进程)。- 示例:
htop查看 CPU 和内存占用,按F9可选中进程并终止。
-
kill/killall命令:终止进程。-9:强制终止(不可中断信号)。killall通过进程名终止(如killall java终止所有 Java 进程)。- 示例:
kill -9 12345强制终止 PID 为12345的进程。
-
chmod命令:修改文件权限(如给 Shell 脚本执行权限)。- 示例:
chmod +x start.sh给start.sh脚本添加执行权限。
- 示例:
-
tar命令:打包或解压文件(常用于项目备份)。-czf:打包并 gzip 压缩(.tar.gz)。-xzf:解压.tar.gz文件。- 示例:
tar -czf project_backup.tar.gz project/备份项目目录。
开发环境辅助命令
-
ssh命令:远程登录服务器,常用于部署 Java 应用。- 示例:
ssh user@192.168.1.100登录远程服务器。
- 示例:
-
scp命令:远程复制文件(如上传 JAR 包到服务器)。- 示例:
scp target/app.jar user@192.168.1.100:/opt/app/本地文件复制到远程服务器。
- 示例:
-
wget/curl命令:下载文件(如下载 JDK 或依赖包)。- 示例:
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz下载 JDK。
- 示例:
相关问答 FAQs
Q1: 如何查看 Java 程序的内存占用情况?
A1: 可使用 jps 命令找到 Java 进程的 PID,再通过 jstat -gcutil <PID> 查看 GC 相关内存使用情况,或使用 top -p <PID> 实时监控进程内存占用,若需更详细分析,可结合 jmap 命令生成堆内存快照(如 jmap -dump:format=b,file=heap.hprof <PID>)。
Q2: Linux 下如何批量查找并替换文件中的内容?
A2: 可使用 grep 配合 xargs 或 sed 命令实现。
- 方法1(
grep+xargs+sed):grep -r "old_text" /path/to/dir --include="*.java" | xargs sed -i 's/old_text/new_text/g' - 方法2(
sed直接递归替换):find /path/to/dir -name "*.java" -type f -exec sed -i 's/old_text/new_text/g' {} +
两种方法均可递归查找指定扩展名文件并替换内容,后者效率更高。
