Java开发常用的Linux命令

一、查找文件 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的线程

四、查看文件,包含隐藏文件

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

五、查看当前工作目录

pwd

六、复制文件

  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参数的作用是递归复制源目录,及复制目录下的子目录和文件

scp -r ~/app hadoop@hadoop001:~/
scp -r ~/app hadoop@hadoop002:~/
分发环境变量
scp ~/.bash_profile hadoop@hadoop001:~/
scp ~/.bash_profile hadoop@hadoop002:~/

七、创建目录

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

八、创建空文件

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

九、删除目录

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

十、删除文件包括其子文件

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

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

十一、移动文件

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

十二、重命名

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

十三、查看文件头10行/查看文件尾10行

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

2️⃣尾:tail -n 10 demo.txttail -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 的内容

十六、启动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可以和管道符结合使用

二十、网络

ping www.baidu.com查看网络是否连通
ping www.baidu.com -p 80查看端口是否开启
wget 文件地址下载文件

二十一、netstat -ano 是查看端口是否被占用

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

二十二、查看端口属于哪个程序

lsof -i :8080

二十三、显示系统当前进程信息/查看内存的使用情况该用什么命令

free 或者 top

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

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

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

tree a ps: Mac下使用tree命令

二十五、文件下载

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

二十六、网络检测

ping www.just-ping.com

二十七、远程登录

ssh userName@ip

二十八、打印信息

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

二十九、关机或重启

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

三十、创建链接文件

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

三十一、查看目录使用情况

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

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

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

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

  • chown nginx:nginx desc.txt
    变更文件desc.txt的拥有者为nginx,用户组为nginx
  • chown -R nginx:nginx test
    变更test及目录下所有文件的拥有者为nginx,用户组为nginx

三十四、改变文件或目录的访问权限

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

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

三十五、服务启停

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

三十六、使用超级管理员身份执行命令

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 命令的帮助文档

三十八、在列出文件的同时查看文件的大小

ls -lh如果某个文件的大小大于或者接近于 1G,那么就会以 GB 为单位显示。如果文件接近 Mb,则会按照 Mb 为单位显示,以此类推。

三十九、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

你可能感兴趣的:(Java开发常用的Linux命令)