Java工程师常用Linux命令

本文所列的Linux常用命令包含:文件相关(目录操作,内容查看,查找与比较,压缩与解压),进程管理,网络操作,系统管理,性能监测与优化,Java常用工具多个方面概述。

文件目录基本操作

ls 命令用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。
常用选项:

ls(选项)(参数)

-a 显示所有档案及目录(ls默认不会列出隐藏文件);

-l 所有输出信息用单列格式输出,不输出为多列;

--color[=WHEN]:使用不同的颜色高亮显示不同类型的。

实际应用时,经常会使用ls -l --color=auto,并给它指定一个别名ll:

alias ll=‘ls -l --color=auto‘

cd 用来切换工作目录至dirname。 其中dirname表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的home directory。
常用选项:

cd   进入用户主目录

cd ~ 进入用户主目录

cd - 返回进入此目录之前所在的目录

cd .. 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思)

cd ../.. 返回上两级目录

cd !$ 把上个命令的参数作为cd参数使用

mkdir 创建目录。该命令创建由dirname命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。
常用选项:

-p 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录

rm 删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。
常用选项:

-f:强制删除文件或目录

-i:删除已有文件或目录之前先询问用户

-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理

注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。

cp 将一个或多个源文件或者目录复制到指定的目的文件或目录。
常用选项:

-f:强行复制文件或目录,不论目标文件或目录是否已存在

-i:覆盖既有文件之前先询问用户

-R/r:递归处理,将指定目录下的所有文件与子目录一并处理

cp /home/sre/tom.log .  
将文件/home/sre/tom.log复制到当前目录

cp -r katarina  /home/sre/logs/
将目录katarina复制到/home/sre/logs/目录下

mv 对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。
常用选项:

-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录

-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作

pwd 以绝对路径的方式显示用户当前工作目录

tree 以树状图列出目录的内容

touch 两个功能:一是创建新的空文件;二是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来。
示例:

touch /var/wd/logs/touch.txt 创建空文件/var/wd/logs/touch.txt

chmod 变更文件或目录的权限。在UNIX系统家族里,文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分,另有3种特殊权限可供运用。用户可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。
示例:

chmod +x what_cpu_do.sh 给脚本what_cpu_do.sh增加可执行权限

chmod u+x,g+w test  //为文件test设置自己可以执行,组员可以写入的权限

file 探测给定文件的类型。

文件内容查看

cat 连接文件并打印到标准输出设备上,cat经常用来显示文件的内容。
示例:

grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
常用选项:

-A<显示列数> (After)除了显示符合范本样式的那一行之外,并显示该行之后的内容

-B (Before)在显示符合范本样式的那一行之外,并显示该行之前的内容

-C<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前后的内容

-i 忽略字符大小写。

tail 输出文件中的尾部内容,默认在屏幕上显示指定文件的末尾10行。
常用选项:

-f:显示文件最新追加的内容(查看服务器上动态刷新的日志时经常使用)。

-n:输出文件的尾部N(N位数字)行内容

head 显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。
常用选项:

-n<数字>:指定显示头部内容的行数

-c<字符数>:指定显示头部内容的字符数

-v:总是显示文件名的头信息

-q:不显示文件名的头信息

more 一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。
常用选项:

Space键:显示文本的下一屏内容

Enter键:只显示文本的下一行内容

斜线符/:接着输入一个模式,可以在文本中寻找下一个相匹配的模式

h键:显示帮助屏,该屏上有相关的帮助信息

b键:显示上一屏内容

q键:退出rnore命令

less 与more十分相似,都可以用来浏览文字档案的内容,不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按q键。

wc 用来计算数字。利用wc指令我们可以计算文件的Byte数、字数或是列数。
常用选项:

-c:只显示Bytes数

-l:只显示列数

-w:只显示字数

tr 对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符,经常用来编写优美的单行命令,作用很强大。
常用选项:

-c:取代所有不属于第一字符集的字符

-d:删除所有属于第一字符集的字符

-s:把连续重复的字符以单独一个字符表示

sort 将文件进行排序,并将排序结果标准输出。它可以从特定的文件,也可以从stdin中获取输入。
常用选项:

-d:排序时,处理英文字母、数字及空格字符外,忽略其他的字符

-f:排序时,将小写字母视为大写字母

-k:  来指定列数

-r:以相反的顺序来排序来自

文件查找与比较

find 在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
示例:

find /home -name "*.txt"  在/home目录下查找以.txt结尾的文件名

find /home -iname "*.txt" 同上,但忽略大小写

find /home ! -name "*.txt"  找出/home下不是以.txt结尾的文件

which 查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

whereis 用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。
和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。
示例:

locate locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且自动更新,由于更新非实时,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
示例:

locate /etc/sh  搜索etc目录下所有以sh开头的文件

locate -i ~/m 搜索用户主目录下,所有以m开头的文件,并且忽略大小写

文件压缩与解压

tar tar命令可以为linux的文件和目录创建档案。
常用选项:

-c:建立新的备份文件

-z:通过gzip指令处理备份文件

-v:显示指令执行过程

-f:指定备份文件

-x:从备份文件中还原文件

zip 可以用来解压缩文件,或者对文件进行打包操作。

unzip 加压缩.zip包,不在详述。
另外,关于压缩、解压缩命令还有gzip、gunzip、bzip2、bunzip2等,读者如果感兴趣,可自行搜索了解。

进程管理

ps 用于报告当前系统的进程状态,是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
由于ps命令能够支持的系统类型相当的多,所以选项多的离谱!我主要使用:

kill 命令用来删除执行中的程序或工作。kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或job指令查看。
常用选项:

kill -9 强制终止进程

kill -15 正常终止进程

具有相似功能的命令,还有killall、pkill等。

watch 以周期性的方式执行给定的指令,指令输出以全屏方式显示。
常用选项:

-n:指定指令执行的间隔时间(秒)

-d:高亮显示指令输出信息不同之处

-t:不显示标题。

service service命令是Redhat Linux兼容的发行版中用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
服务名:自动要控制的服务名,即/etc/init.d目录下的脚本文件名
示例:

网络操作

curl curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。

wget wget命令用来从指定的URL下载文件。

ping 用来测试主机之间网络的连通性。

telnet 用于登录远程主机,对远程主机进行管理。我常用它来检测端口。

nslookup 常用域名查询工具,就是查DNS信息用的命令。

ss 用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
常用选项:

-n:不解析服务名称,以数字方式显示

-a:显示所有的套接字

-l:显示处于监听状态的套接字

-m:显示套接字的内存使用情况

-p:显示使用套接字的进程信息

-i:显示内部的TCP信息;

-t:只显示tcp套接字

-u:只显示udp套接字

nc nc是netcat命令的简称,都是用来设置路由器。我常用它来上传文件到服务器,具体可参考 如何优雅的实现文件上传或下载

ifconfig 用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。

ifconfig eth0 down 关闭网卡eth0

ifconfig eht0 up 启动网卡eth0

系统管理

su 用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。

sudo 以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。

du 查看使用空间。
常用选项:

-a 显示目录中个别文件的大小

-b 显示目录或文件大小时,以byte为单位

-c 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和

-k 以KB(1024bytes)为单位输出

-m 以MB为单位输出

-s 仅显示总计,只列出最后加总的值

-h 以K,M,G为单位,提高信息的可读性

性能监测与优化

top 可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。
常用选项:

-d:屏幕刷新间隔时间

-u<用户名>:指定用户名

-p<进程号>:指定进程

-n<次数>:循环显示的次数

交互命令:

1:显示全部CPU信息

k:终止一个进程

i:忽略闲置和僵死进程,这是一个开关式命令

q:退出程序

o或者O:改变显示项目的顺序

m:切换显示内存信息

t:切换显示进程和CPU状态信息

c:切换显示命令名称和完整命令行

M:根据驻留内存大小进行排序

P:根据CPU使用百分比大小进行排序

T:根据时间/累计时间进行排序

free 显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。
常用选项:

-b:以Byte为单位显示内存使用情况

-k:以KB为单位显示内存使用情况

-m:以MB为单位显示内存使用情况

-t:显示内存总和列

sar Linux下系统运行状态统计工具,它将指定的操作系统状态计数器显示到标准输出设备。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。我常用它查看网卡流量,具体请参考
Linux查看实时网卡流量的几种方式

lsof lsof命令用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。
常用选项:

-a:列出打开文件存在的进程

-c<进程名>:列出指定进程所打开的文件

-p<进程号>:列出指定进程号所打开的文件

当程序报too many open files 异常时,可以使用它查看是什么进程打开了太多的文件,主要查看是不是文件(包括网络链接)打开后是不是没有关闭,我之前的一个项目,就遇到了这种问题。

ulimit 用来限制系统用户对shell资源的访问。支持以下各种类型的限制:所创建的内核文件的大小、进程数据块的大小、Shell 进程创建文件的大小、内存锁住的大小、常驻内存集的大小、打开文件描述符的数量、分配堆栈的最大大小、CPU 时间、单个用户的最大线程数、Shell 进程所能使用的最大虚拟内存。同时,它支持硬资源和软资源的限制。
常用选项:

-a:显示目前资源限制的设定

-n <文件数目>:指定同一时间最多可开启的文件数

-u <程序数目>:用户最多可开启的程序数目

vmstat 显示虚拟内存状态(“Viryual Memor Statics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。
常用选项:

-a:显示活动内页

-f:显示启动后创建的进程总数

-m:显示slab信息

-n:头信息仅显示一次

-s:以表格方式显示事件计数器和内存状态

-d:报告磁盘状态

-p:显示指定的硬盘分区状态

-S:输出信息的单位。

iostat 监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
常用选项:

-c:仅显示CPU使用情况

-d:仅显示设备利用率

-k:显示状态以千字节每秒为单位,而不使用块每秒

-m:显示状态以兆字节每秒为单位

-x:显示扩展状态

Java常用工具

java 可用来执行jar包。

java -jar test.jar

jps jps是jdk提供的一个查看当前Java进程的小工具, 可以看做是JavaVirtual Machine Process Status Tool的缩写。非常简单实用。
常用选项:

-l:输出完全的包名,应用主类名,jar的完全路径名

-v:输出jvm参数

jmap 打印出某个java进程内存中所有‘对象’的情况。
常用选项:

-dump:[live,]format=b,file=<filename> 使用hprof二进制形式,输出jvm的heap内容到文件=. live子选项是可选的,假如指定live选项,那么只输出活的对象到文件.

-heap 打印heap的概要信息,GC使用的算法,heap的配置及wise
heap的使用情况.

-histo[:live] 打印每个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*”. 如果live子参数加上后,只统计活的对象数量.

jstat Jstat用于监控基于HotSpot的JVM,对其堆的使用情况进行实时的命令行的统计,使用jstat我们可以对指定的JVM做如下监控:
类的加载及卸载情况,查看新生代、老生代及持久代的容量及使用情况,查看新生代、老生代及持久代的垃圾收集情况,包括垃圾回收的次数及垃圾回收所占用的时间,查看新生代中Eden区及Survior区中容量及分配情况等。
常用选项:

-gcutil 用于查看新生代、老生代及持代垃圾收集的情况

-class 用于查看类加载情况的统计

说明:

S0  Heap上的 Survivor space 0 区已使用空间的百分比

S1  Heap上的 Survivor space 1 区已使用空间的百分比

E   Heap上的 Eden space 区已使用空间的百分比

O   Heap上的 Old space 区已使用空间的百分比

P   Perm space 区已使用空间的百分比

YGC 从应用程序启动到采样时发生
Young GC 的次数

YGCT    从应用程序启动到采样时 Young GC 所用的时间(单位秒)

FGC 从应用程序启动到采样时发生
Full GC 的次数

FGCT    从应用程序启动到采样时 Full GC 所用的时间(单位秒)

GCT 从应用程序启动到采样时用于垃圾回收的总时间(单位秒),它的值等于YGC+FGC

jstack 用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息。

jstack 25211 > 25211.txt  将当前堆栈信息输出到文件。

参考:https://www.jianshu.com/p/341bc031ea2b

原文地址:https://www.cnblogs.com/Jashinck/p/10549810.html

时间: 2024-10-10 03:30:35

Java工程师常用Linux命令的相关文章

大数据基础之常用Linux命令

大数据实验环境一般为Linux,熟悉Linux操作非常有必要,总结常用Linux命令如下. 1.cd命令 进入文件夹: cd dirname 进入多级文件夹: cd /usr/local/Cellar 返回上层目录: cd ../ 返回上层的上层: cd ../../ 回到主文件夹 cd 2.ls命令 ls命令用于列出当前文件和目录,加上参数之后可以做更多的事情. 不带参数运行ls会列出文件和目录 ls 使用-l参数切换到长清单模式,会显示当前目录内容的长列表: ls -l 加上-lh参数显示文

[转载]开发人员需要熟知的常用Linux命令之二:Crontab

上面说了那么多的常用命令,还有一个功能我们也经常用到,就是定时器.日程表,一般通过crontab来运行:crontab 指定在固定时间或固定间隔执行特定的脚本:crontab的常用参数有如下3个: -e :执行文字编辑器来设定日程表,一般默认的编辑器是VI: -r :删除目前所有的日程表: -l :列出目前所有的日程表: 设置日程表时,需要有固定的格式,共6部分,各部分间用空格间隔:其中第6个部分是要执行的命令,前5个部分是设置执行时间或者时间间隔的,具体取值范围和意义如下: 分钟[0-59]

常用Linux命令笔记

任何脱离业务的架构都是耍流氓 只记录实际常用的Linux命令 常用Linux命令 查找安装路径: whereis nginx 查询nginx进程: ps aux|grep nginx 查看 CentOS 内核版本: # 查看内核版本 uname -r 卸载 Docker: # 查看 yum list installed | grep docker # 卸载 yum -y remove docker.xxx.x86_64 # 删除 rm -ef /var/lib/docker #查看ip信息 ip

网络服务器搭建、配置与管理(2)常用linux命令

常用linux命令 用root用户登录,用passwd命令修改root用户密码,并修改一个普通用户密码.用一个普通用户登录,用passwd命令修改用户密码.("#"是超级用户的系统提示符:"$"是普通用户的系统提示符) 通过help显示所有可以通过help提供信息显示的命令列表,并且分页显示.(若想中途退出帮助文档,则按"Q"键) 通过man命令显示ls命令的帮助.(显示指定命令的手册页帮助信息,man显示信息多余一页时会自动分页,用户可以通过空

77个常用Linux命令和工具

77个常用Linux命令和工具 Linux管理员不能单靠GUI图形界面吃饭.这就是我们编辑这篇最实用Linux命令手册的原因.这个指南是特别为Linux管理员和系统管理员 设计的,汇集了最有用的一些工具做为他们日常维护的参考手册.通过学习这些简单的工具,那些原本害怕命令行的人也可以变成一个脚本高手,从而通过执行 kernal命令和shell命令来最大限度的发挥linux的作用.请善用我们的指南,有任何Linux方面的问 题或者需要寻找相关答案请务必到我们 的TechTarget中国服务器论坛来发

常用linux 命令和.bashrc

ssh [email protected] bashrc 先修改全局的/etc/bashrc, 再考虑修改.bashrc alias ll='ls -alF' alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' alias list='svn st -q' alias svnmeld="svn diff --diff-cmd=meld" (有些版本某些选项没有)export GREP_OPTIONS="--exclude=*.

【Linux基础】常用Linux命令

常用Linux命令:cd, cp, ls, mv, rm cd命令:切换当前工作目录至 dirName(目录参数) 其中 dirName 可为绝对路径或相对路径.若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录). 另外,"~" 也表示为 home 目录的意思,"." 则是表示目前所在的目录,".." 则表示目前目录位置的上一层目录. cd [dirName] 参数: dirName:要切换的目标目录. 实例

# 常用linux 命令和相关问题解决

最近试着自己部署了服务器,在unbantu的环境下 学习了很多新知识 也遇到了很多问题,现在腾出手了,总结一下 常用Linux命令 目录操作 pwd: 查看当前路径 cd: 移动 cd .. : 返回上一级目录 cd /xx/xx/ : 移动到指定目录 cd ~ /cd -L: 回到用户的主目录 ls : 显示当前目录的文件 ls -a: 显示所有文件 ls -l:列表显示 ls -t:按时间顺序排序 最新的在最前面 ls -s:按size排序 最大的在最前面 mkdir /rmdir :创建/

开发中必知必会的常用Linux命令

开发中必知必会的常用Linux命令导语在日常的开发中,Linux操作系统是经常要接触到的,所以关于Linux的常用命令,我们一定要熟悉,在这里,我把平时经常用到的命令总结了一下. 1,基本命令(熟记于心)# 切换目录cd 目录# 退出到上一级cd ..# 输出当前绝对路径pwd# 列出当前目录下所有的文件或目录ls # 创建文件目录mkdir# [强制]杀死进程kill [-9]# -r递归复制 cp [-r] a b# 移动或者重命名mv a b# 删除文件 小心使用rm -rf /rm [-