☰
Java开发常用的Linux命令
2026/10/30 1:14:53 网站建设 项目流程

一、查找文件 find / -name filename.txt 根据名称查找/目录下的filename.txt文件

  1. find . -name "*.xml"递归查找所有的xml文件
  2. find . -name "*.xml" |xargs grep "hello world"递归查找所有文件内容中包含hello world的xml文件
  3. grep -v "String" filename文件中不匹配“String”的行;
  4. grep "String" filename文件中匹配“String”的行
  5. grep -H 'spring' *.xml查找所有的包含spring的xml文件
  6. find ./ -size 0 | xargs rm -f &删除文件大小为零的文件
  7. ls -l | grep '.jar'查找当前目录中的所有jar文件
  8. grep 'test' d*显示所有以d开头的文件中包含test的行。
  9. grep 'test' aa bb cc显示在aa,bb,cc文件中匹配test的行。
  10. grep '[a-z]\{5\}' aa显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
  11. grep [option] [pattern] [file1,file2]
    grep content show.txt查找show.txt里面包含content的行
  12. command | grep [option] [pattern]
    ps -ef | grep mongo查看某个服务信息
    cat show.txt | grep content查找show.txt里面包含content的行

二、查看一个程序是否运行

  1. ps -ef显示当前所有进程
  2. ps –ef|grep tomcat查看所有有关 tomcat 的进程
  3. ps aux|grep java查看 java 进程
  4. ps aux查看所有进程

三、启动/终止线程

  1. ./startup.sh启动进程
  2. kill -9 19979终止线程号为19979的线程

四、端口

1️⃣netstat -ano查看端口是否被占用

说明:

  1. cmd:先用命令提示符 “netstat -ano” 命令显示所有端口状态,找到目标端口对应的PID;
  2. 然后根据该 PID ,输入 “tasklist”命令程序,就可知道其程序名,进而查明程序的来源,采取适当的措施。

2️⃣lsof -i :8080查看端口属于哪个程序

3️⃣nc -zv ip port和nc -nvv ip port检查服务器端口是否通

4️⃣ping www.baidu.com查看网络是否连通

5️⃣ping www.baidu.com -p 80查看端口是否开启

6️⃣netstat -anp|grep 127.0.0.1查看端口

五、查看文件头10行/查看文件尾10行

1️⃣头:head -n 10 demo.txt和head -10 demo.txt

2️⃣尾:tail -n 10 demo.txt和tail -10 demo.txt

3️⃣tail -f demo.log
命令:tail -f
查看文件:demo.log
描述:这个命令会自动显示新增内容,屏幕只显示10行内容(可设置)。可以实时查看文件的最后内容,一般用来实时查看日志。

六、分页查看文件内容

more demo.txt
命令:more
查看文件:demo.txt
描述:分页查看demo.txt的内容

Enter(向下翻滚一行)
空格(向下滚动一屏)
Q(退出命令)
B(向上滚动一屏)

七、查看文件内容

cat demo.txt
命令:cat
查看文件:demo.txt
描述:查看 demo.txt 的内容

八、改变文件或目录的拥有者和组

  • chown user:user src
    变更文件夹src的拥有者为user,用户组为user【其目录下内容不做变更】
  • chown -R root:root src
    变更文件夹src及其目录下所有文件的拥有者为root,用户组为root【其目录下内容全部变更】

九、改变文件或目录的访问权限

权限范围:u(拥有者)、g(郡组)、o(其它用户)。
权限代号:r(读权限/4)、w(写权限/2)、x(执行权限/1)

  1. chmod u+x test.sh
    给文件拥有者增加 test.sh 的执行权限
  2. chmod u+x -R test
    给文件拥有者增加test目录及其下所有文件的执行权限

十、复制/备份文件

  1. cp source dest复制文件
    命令:cp
    源文件:source
    目标文件:dest
    描述:复制源文件(source)为目标文件(dest)
  2. cp -r sourceFolder targetFolder
    命令:cp -r
    源文件:sourceFolder
    目标位置:targetFolder
    递归复制整个文件夹(sourceFolder文件包括其子文件 )到指定目录(targetFolder)
  3. scp sourecFile romoteUserName@remoteIp:remoteAddr远程拷贝

远程传输文件 scp。先保证服务器间,ssh间能互相跳转。

命令格式:scp -r源目录 用户名@ip:目标目录
-r参数的作用是递归复制源目录,及复制目录下的子目录和文件
【copy走】scp -r /souDirectory/souFile tarUser@tarIp:/tarDirectory
【copy来】scp -r souUser@souIp:/souDirectory/souFile /tarDirectory
scp -r ~/app hadoop@hadoop001:~/
scp -r ~/app hadoop@hadoop002:~/
分发环境变量
scp ~/.bash_profile hadoop@hadoop001:~/
scp ~/.bash_profile hadoop@hadoop002:~/

十一、目录/文件的创建与删除

1️⃣mkdir newfolder
命令:mkdir
创建目标:newfolder
描述:在当前目录下创建newfolder目录

ln -s /opt/test ./link2test
描述:创建目录/opt/test的符号链接

2️⃣touch demo.txt
命令:touch
创建目标:demo.txt
描述:在当前目录下创建文件demo.txt

3️⃣rmdir deleteEmptyFolder删除空目录
命令:rmdir
删除目标:deleteEmptyFolder
描述:该命令只能删除空目录

4️⃣删除文件包括其子文件

-r递归删除,-f强制删除。危险操作,务必小心,切记

  • rm -rf deleteFile
    命令:rm -rf
    删除目标:deleteFile
  • rm -rf deleteFile*
    命令:rm -rf
    删除目标:以’deleteFile’开始的所有文件

5️⃣带括号文件名的删除,需要用引号把文件名包起来,或者用反斜杠转义括号。
rm "file(name).txt"或者rm file\(name\).txt

十二、移动文件

mv /temp/movefile /targetFolder
命令:mv
源文件:/temp/movefile
目标位置:/targetFolder

十三、重命名

mv oldNameFile newNameFile
命令:mv
原名字:oldNameFile
新名字:newNameFile

十四、启动vim编辑器

  • vim三种模式:命令模式,插入模式,编辑模式。使用ESC 或 i 或 :来切换。
  • 命令模式下:
    :q退出;
    :q!强制退出;
    :wq保存退出;
    :set number显示行号
    n跳到下一关键词
  • 编辑desc.txt文件
    vim desc.txt

1️⃣cat和vi/vim和nano区别

  1. cat是 linux 系统下一个文本打印的命令,用于输出一个文本的信息到控制台上。该命令的输入类似于使用 word 打开一个文档,但是该文档不能编辑。

  2. vi/vim是 linux 系统下用于文本查看、编辑的命令,不仅仅可以查看,还可以编辑。

  3. nano类似于vim命令的功能,命令语句为:nano p(打开p文件)

2️⃣vi和vim区别

  1. vi 不需要安装,打开代码,颜色一样(黑色)
  2. vim 需要额外安装,打开代码,用颜色区分代码

十五、uniq

对内容去重,只把相邻且相同的去重,如果想要全局去重,需要先用sort排序

cat fileName | sort | uniq文件排序并去重
cat file | sort | uniq -c文件排序并去重,且输出每行出现的次数

十六、sort

cat fileName | sort对内容进行排序,数据按字典序排列,如果想按数值排,加-n选项

十七、wc

wc -l fileName文件里有多少行
wc -w fileName文件有多少个单词
wc -c fileName文件有多少个字节
wc -m fileName文件有多少个字符
cat fileName | wc -l可以和管道符结合使用

十八、服务启停

nohup java -jar java-service.jar当账户退出或终端关闭时,程序仍然运行。
java -jar java-service.jar > log.txt &命令结尾&,表示在当前ssh窗口,可按ctrl+c打断程序运行,或者关闭窗口时,程序直接退出。其中>指的是日志文件输出的地方。
nohup java -jar java-service.jar > log.txt &后台进程,可以用ctrl+c跳出刷屏。
setsid java -jar java-service.jar-----➕setsid 后台进程
docker start/stop/restart tomcat
docker start/stop/restart zookeeper
docker start/stop/restart redis
docker start/stop/restart rabbitmq
docker start/stop/restart mysql

如果当前系统 jdk 版本不是所需,可指定 jdk 版本执行,也可以指定端口以替换默认端口:
/home/jdk1.8/bin/java -jar java-service.jar --server.port=8888

十九、查看文件,包含隐藏文件

ls -al和ls -la
显示当前目录下所有文件的详细信息

二十、ls -lrth

  1. ls -lrth【-lrth 实际上是代表了 “-l -r -t -h” 这四个选项集合】
    按修改时间正序列出当前工作目录下的所有文件的详细信息。
    ls -lth
    按修改时间倒序列出当前工作目录下的所有文件的详细信息。

  2. ls -lh【按文件名首字母正序排列,同时显示文件的大小】
    ls -lrh【按文件名首字母倒序排列,同时显示文件的大小】
    如果文件大小大于或者接近于 1G,那么就会以 GB 为单位显示。如果大小接近 Mb,则会按照 Mb 为单位显示,以此类推。

ls demo* -lrt【列出当前目录下 demo开头的文件】

常用参数:

二十一、显示系统当前进程信息/查看内存的使用情况

free 或者 top

free命令可以看到内存以及缓存的使用情况,如下:
total 总内存
used 已用内存
free 空闲内存
buff/cache 已使用的缓存
avaiable 可用内存

已使用的缓存(buff/cache)的命令:sync; echo 3 > /proc/sys/vm/drop_caches
线上执行这条命令不好!!!

二十二、查看磁盘空间使用情况

  • df -h查看磁盘空间使用情况

  • du -h /opt/test查看/opt/test目录的磁盘使用情况

二十三、文件下载

wget http://file.tgz mac下安装wget命令 curl http://file.tgz

wget 文件地址下载文件

二十四、远程登录

ssh userName@ip

二十五、打印信息

echo $JAVA_HOME打印 java home 环境变量的值

二十六、关机或重启

  • shutdown -h now
    立刻关机
  • shutdown -r -t 60
    60秒后重启

二十七、以树状图列出目录的内容

tree a ps: Mac下使用tree命令

二十八、使用超级管理员身份执行命令

sudo rm a.txt 使用管理员身份删除文件

1️⃣sudo 表示superuser do。 它允许已验证的用户以其他用户的身份来运行命令。其他用户可以是普通用户或者超级用户。大部分时候用它来以提升的权限来运行命令。

2️⃣在 linux 中通过 su 可以在用户之间切换。超级权限用户 root 向普通或虚拟用户切换不需要密码,而普通用户切换到其它任何用户都需要密码验证。su 为switch user,即切换用户的简写。格式为两种:

  1. su -l USERNAME(-l 为 login,即登录的简写)
  2. su USERNAME

如果不指定 USERNAME(用户名),默认为 root,所以切换到 root 身份的命令即为:su -root 或 su root 或 su - 或 su。

3️⃣su USERNAME,与su - USERNAME的区别

  1. su -USERNAME切换用户后,同时切换到新用户的工作环境中。
  2. su USERNAME切换用户后,不改变原用户的工作目录,及其他环境变量目录。

二十九、帮助命令

  1. man ls查看 ls 命令的帮助文档
  2. man java查看 java 命令的帮助文档
  3. man git查看 git 命令的帮助文档

三十、java 常用命令

java javac jps , jstat , jmap , jstack

三十一、jps

jps(Java Virtual Machine Process Status Tool)是 java 提供的一个显示当前所有 java 进程 pid 的命令,适合在 linux/unix 平台上简单查看当前 java 进程的一些简单情况。

使用 jps 要先安装 jdk(jps 是 jdk 自带的命令)。jps 类似 linux 的 ps 命令,不同的是 ps 是用来显示进程,而 jps 只显示 java 进程,准确的说是当前用户已启动的部分 java 进程信息,信息包括进程号和简短的进程 command。

提示:曾经遇到一个这样的问题:一个 nagios 插件用 jps 监控 java 进程。结果得不到 java 进程信息。这是由于 jps 只能显示当前用户的 java 进程,而执行插件的用户是 nagios,所以显示不了其他用户的 java 进程。

jps 的作用是显示当前系统的 java 进程情况及其 pid 号。可以通过它来查看到底启动了哪些 java 进程(因为每一个 java 程序都会独占一个 java 虚拟机实例)以及进程 PID。并可通过 opt 来查看这些进程的详细启动参数。

命令格式:jps [options] [hostid]

[options]选项 :

  1. -q:仅输出 VM 标识符,不包括classname、jar name、arguments in main method
  2. -m:输出 main method 的参数。
  3. -l:输出完全的包名,应用主类名,jar的完全路径名。
  4. -v:输出 jvm 参数。
  5. -V:输出通过 flag 文件传递到 JVM 中的参数(.hotspotrc文件或-XX:Flags=所指定的文件)。
  6. -J:传递参数到 vm。例如:-J-Xms512m

三十二、jar/war/zip 包的生成与解压

  1. 将源文件source打成jar包jar cf target.jar source

  2. 将源文件source打成jar包并显示打包过程jar cvf target.jar source

  3. 将源文件source打成war包jar -cvf target.war ./source

  4. 将源文件source打成zip包zip -r target.zip source

  5. 解压jar包文件tar -zxvf source.jar

  6. 将war包文件解压到文件夹targetFile下unzip source.war -d targetFile

  7. 解压zip文件unzip source.zip

三十三、修改jar包内容

先确认 JAR 包的类型,这决定了后续目录结构:

jar tf app.jar | findstr /B "BOOT-INF META-INF MANIFEST"

如果只是改 .properties、.yml、.xml 等文本资源,有两种做法:
  1. jar 命令直接更新
    jar -xvf app.jar BOOT-INF/classes/application.yml先提取出要改的文件
    jar -uvf app.jar BOOT-INF/classes/application.yml编辑该文件,再更新回 jar
  2. 解压全包后重打包
    mkdir tmp && cd tmp
    jar -xvf ../app.jar解压
    jar -cfM0 ../app-new.jar编辑文件,重新打包
    -0 很关键:它表示"仅存储、不压缩"。Spring Boot 的 Fat Jar 内部 BOOT-INF/lib/*.jar 必须是存储模式,二次压缩会导致启动报错

三十四、查看jar中文件内容

  1. JAR包本质是ZIP格式的压缩文件,JDK自带的jar工具可直接操作
    jar tf target.jar列出JAR内所有文件路径
    jar xf target.jar解压全部文件到当前目录
    适用场景:需要精确操作JAR内容(如提取特定文件)时推荐使用。
  2. 使用unzip命令​。通用解压工具,兼容性更强
    unzip -l target.jar仅查看文件列表(不解压)
    unzip -p target.jar META-INF/MANIFEST.MF直接查看特定文件内容
    优势:支持管道操作和文件内容直接预览,适合快速检索。
  3. 通过vim的压缩文件浏览功能
    vim target.jar进入压缩包导航界面
    操作说明:
    按回车进入子目录/文件
    按v键解压当前文件到临时位置并编辑
    输入:q退出
    注意事项:修改后需手动替换原JAR内文件(不推荐直接编辑)。
  4. 其他工具补充​
    less/zcat:查看文本类文件(如unzip -p target.jar file.txt | less)
    图形工具:如ark(KDE)、file-roller(GNOME)支持可视化浏览。
    根据需求选择合适方法:快速预览用unzip -l,编辑文件用vim,批量处理用jar命令。

三十五、清空但保留文件本身

  1. > filename直接用重定向符,最简单粗暴,会把文件截断为 0 字节。
  2. truncate -s 0 filename“把文件大小设为 0”,可读性好,适合写在脚本里
  3. cp /dev/null filename经典的 Unix 技巧,把“黑洞”设备复制给文件,兼容性极好

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询