扣丁学堂为你提供Java程序员最常用的Linux命令

2018-08-14 17:10:22 750浏览

大家都知道,Linux系统提供了非常多非常多的命令或工具,这些命令都各有所长,都是系统需要的。但我们精力有限,要掌握全部的命令不太现实,所以只需要掌握其中部分常用的命令即可。这里,小编从一个Java程序员的角度,总结出常用的一些Linxu命令,供参加Linux培训的同学参考。文章很长,分为三篇发布哦。

 

 



文件目录基本操作

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

常用选项:

ls(选项)(参数)

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

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

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

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

aliasll='ls-l--color=auto'

效果如图1:

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

常用选项:

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-rkatarina/home/sre/logs/将目录katarina复制到/home/sre/logs/目录下

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

常用选项:

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

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

示例:

mvkatarina/*logs/将目录katarina下所有文件复制到目录logs下

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

示例:

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

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

示例:

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

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

file探测给定文件的类型。

示例:

[sre@CDVM-213017031~]$filewhat_cpu_do.sh

what_cpu_do.sh:Bourne-Againshellscripttextexecutable

[sre@CDVM-213017031~]$filelogs

logs:directory

[sre@CDVM-213017031~]$filenetwork_last.log

network_last.log:empty

[sre@CDVM-213017031~]$filefix

fix:directory

文件内容查看

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

示例:

[sre@CDVM-213017031~]$catflow_of_network.sh|grep"RX_next"

RX_next=$(cat/proc/net/dev|grep$ethn|sed's/://g'|awk'{print$2}')

RX=$((${RX_next}-${RX_pre}))

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

常用选项:

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

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

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

-i忽略字符大小写。

示例:

[sre@CDVM-213017031~]$catwhat_cpu_do.sh|grep"processof"-A5-B5(等效于catwhat_cpu_do.sh|grep"jstack"-C5)

echo"checkingpid($pid)"

fi

iftest-z"$(jps-l|cut-d''-f1|grep$pid)"

then

echo"processof$pidisnotexists"

exit

fi

lineNum=$2

iftest-z$lineNum

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

常用选项:

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

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

示例:

tail-100f/var/wd/logs/owl/owl.20170508.log显示文件/var/wd/logs/owl/owl.20170508.log中的后100行,并且当文件有更新显示最新的内容。

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:把连续重复的字符以单独一个字符表示

示例:

echo"HELLOWORLD"|tr'A-Z''a-z'helloworld将输入字符由大写转换为小写

helloworld

echo"hello123world456"|tr-d'0-9'helloworld使用tr删除字符

helloworld

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

常用选项:

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

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

-k:来指定列数

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

示例:

[sre@CDVM-213017031~]$ps-mp25211-oTHREAD,tid,time|sort-r-k2

USER%CPUPRISCNTWCHANUSERSYSTEMTIDTIME

sre8.8------4-04:00:56

sre5.419-futex_--254852-13:59:26

sre0.819-futex_--1675500:00:24

sre0.119-ep_pol--2566301:31:00

sre0.119-ep_pol--2548701:38:57

sre0.119-ep_pol--2548601:38:52

sre0.019-skb_re--2458600:00:00

sre0.019-poll_s--2567800:44:56

sre0.019-poll_s--2567600:00:00

sre0.019-poll_s--2521300:00:01

sre0.019-futex_--767900:00:00

sre0.019-futex_--595200:00:00

上述命令功能:查看进程(pid为25211)占用CPU资源最多的线程信息(根据CPU占用率倒序排列)。

文件查找与比较

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

示例:

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

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

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

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

示例:

[sre@CDVM-213017031~]$whichjava

/usr/java/default/bin/java

[sre@CDVM-213017031~]$whichpwd

/bin/pwd

[sre@CDVM-213017031~]$whichpython

/usr/bin/python

whereis用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。

和find相比,whereis查找的速度非常快,这是因为linux系统会将系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通过遍历硬盘来查找,效率自然会很高。

示例:

[sre@CDVM-213017031~]$whereispython

python:/usr/bin/python/usr/bin/python2.6/usr/lib/python2.6/usr/lib64/python2.6/usr/include/python2.6/usr/share/man/man1/python.1.gz

[sre@CDVM-213017031~]$whereislua

lua:/usr/bin/lua/usr/lib64/lua/usr/share/lua/usr/share/man/man1/lua.1.gz

[sre@CDVM-213017031~]$whereisjava

java:/usr/bin/java



以上就是扣丁学堂Linux培训小编给大家分享的文章,希望对小伙伴们有所帮助,想要了解更多关于Linux开发方面内容的小伙伴可以登录扣丁学堂官网咨询。扣丁学堂不仅有专业的Linux培训班供大家学习,还有与时俱进的课程体系和大量的Linux在线视频教程让学员免费观看学习,想要快速学习Linux开发就到由专业老师授课的扣丁学堂学习吧。扣丁学堂Linux技术交流群:422345477。



【关注微信公众号获取更多的学习资料】

 

 

查看更多关于“Linux培训资讯的相关文章>>

标签: Linux培训 Linux开发工程师 Linux视频教程

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号