常用LINUX命令及shell脚本说明:本文档介绍的命令只说明比较有用的参数,要查看命令详情请‘MAN‘第一部分常用LINUX命令 (1)1,基础命令 (1)2,系统性能情况查看命令 (5)3,网络命令 (6)4,日志处理 (7)5,其它命令 (9)第二部分ftp命令说明 (9)第三部分shell脚本 (10)1批量创建目录 (10)2,过滤出日志中昨天产生的线程挂起日志及详情代码 (11)第一部分常用LINUX命令1,基础命令who用于查看当前在线上的用户情况参数:-m 显示当前用户名及详情-q 显示用户的登陆帐号和登陆用户的数量w显示目前登入系统的用户信息参数:-f 开启显示用户从何处登入系统范例:was@linux-was:/tmp> w -f00:55:11 up 48 min, 1 user, load average: 0.00, 0.02, 1.86USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATwas pts/0 192.168.10.2 00:30 0.00s 0.84s 0.00s w –fJCPU指的是与该tty终端连接的所由进程占用的时间,不包括过去的后台作业时间;PCPU 指的是当前进程(即w项中显示的)所占用的时间id查看显示目前登陆账户的uid和gid及所属分组及用户名linux-was:~ # iduid=0(root) gid=0(root) groups=0(root)was@linux-was:/tmp> iduid=1000(was) gid=100(users) groups=16(dialout),33(video),100(users)hostname显示当前主机名ls显示当前文件和目录参数:-l 列出文件的详细信息-a 列出目录下的所有文件,包括以 . 开头的隐含文件-t 以时间排序-r 对目录反向排序-S 按文件大小排序同时此命令也可查看文件或目录权限pwd查看”当前工作目录“的完整路径当你在终端进行操作时,你都会有一个当前工作目录。
在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置参数:-P 输出物理路径,针对链接的参数cd进入特定的目录参数:/指定目录进入指定的目录.. 返回上一级目录touch创建文件mkdir创建目录参数:-p 此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录cp复制文件或目录说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。
若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息参数:-a 通常在拷贝目录时使用并且保留文件所有原有属性(链接、文件属性且递归地拷贝目录)-r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。
此时目标文件必须为一个目录名cp -r dir1 dir2rm删除档案及目录参数:-i 删除前逐一询问确认.-f 直接删除,不确认。
-r 将目录及此目录下的档案逐一删除。
注:此rm命令慎用,一不小心误操作可能会删除系统的/根目录mv文件或目录改名或将文件由一个目录移入另一个目录中参数:-i 交互方式操作。
如果目标文件存在询问是否覆盖原文件,要求用户回答”y”或”n”,这样可以避免误覆盖文件。
-f 禁止交互操作find命令格式:find pathname -options [-print -exec -ok]pathname 查找路径options主要常用参数:-name:按照文档名称查找find / -name test find ./ -name test-perm:按照文档权限查找find / -perm 775-user:按照文档属主查找find / -user root-group:按照文档属组查找find / -group was-nouser:查找无效属主文档find /home -no0 find-nogroup:查找无效属组文档-print:将匹配的文档输出到标准输出-type:查找某一类型文档b:块设备文档d:目录c:字符设备文档P:管道文档l:符号链接文档f:普通文档find /dir –type f-mtime -n +n:按照文档更改时间查找。
-n 指距离现在时间n天以内;+n n天以外–mtime -3 –mtime +3find ./ -mtime -3 –print3天内更改的文档-size n[c]查找文档长度为n块的文档有[c]表示文档长度以字节计find ./ -size +1000000c -print 大于1Mb的文档-exec:对匹配的文档执行所给的shell命令。
形式为:command { } \;注意{ }和\;之间的空格find ./ -mtime -1 -type f -exec ls -l {} \; 查询当天修改过的文档mmin-ok:和-exec作用相同。
只但是以一种更安全的模式执行该参数所给的shell命令。
在执行每个命令之前,都会给出提示,让用户确定是否执行find logs -type f -mtime +5 -ok rm {} \; 在/ l o g s目录中查找更改时间在5日以前的文档并删除他们kill杀进程kill pidkill -9 pid 强制中止2,系统性能情况查看命令uptime查询系统负载linux-was:~ # uptime2:15am up 2:08, 1 user, load average: 0.00, 0.00, 0.001.当前时间 2:15am2.系统已运行的时间2:083.前在线用户 1 user4.平均负载:0.00, 0.00, 0.00最近1分钟、5分钟、15分钟系统的负载系统负载说明:一般来说,每个CPU内核当前活动进程数不大于3,则系统运行表现良好, 即假如你的主机是四核双cpu的话,那么只要uptime最后输出的一串字符数值小于24即表示系统负载不是很严重.df检查文件系统的磁盘空间使用情况参数:-k 以k字节为单位显示-h 以容易理解的格式打印出文件系统大小,例如23KB、5MB、20GB,部分系统不支持此参数du查看文件或文件夹的大小参数:-s 为所有指定文件显示整个磁盘使用情况,或者为一个目录中的所有文件显示总的磁盘使用情况-h 以容易理解的格式打印出文件系统大小,例如23KB、5MB、20GB,部分系统不支持此free内存使用total used free shared buffers cached Mem: 1012 126 885 0 20 81 -/+ buffers/cache: 23 988Swap: 1137 0 1137第二行(可以理解为从操作系统的角度来看内存分配)可以不用关注,只参考total的值total:总物理内存大小used:已分配的大小,free:末被分配的物理内存大小第二行(可以理解为从应用程序的角度来看内存分配)重点关注-/+ buffers/cache: 23 988这里的-/+ 实际上分别指的是- buffers/cached 和+ buffers/cached 两个部分- buffers/cached= used(第二行)- buffers - cached实际上是程序当前"真实使用"的"物理内存"的大小。
+ buffers/cached= buffers + cached两个加起来可以理解为"暂时借给"系统作为"缓冲区"使用的内存大小。
从应用多角度来说,实际上系统还可以分配给他的内存有这么多:885(free)+ 20(buffers)+ 81(cached)= 988(free)而系统所拥有的总的物理内存大小1012 = 23(- buffers/cached)+ 988 (+ buffers/cached)也就是此时系统仍然有988M的内存可给应用程序使用当最后一行中Swap: 1137 0 1137free很少时,才是内存瓶颈,要添加物理内存top实时显示系统中各个进程的资源占用状况此时按P 键会以CPU使用率降序排序此时按M键会以内存使用率降序排序按q键退出。
ps查看当前进程运行情况参数:-aux 显示所有包含其他使用者的行程或-ef3,网络命令ping网络测试是否连通-t 永久探测tracroute路由跟踪,排查网络链路情况netstat显示各种网络相关信息,如网络连接,路由表等-a (all)显示所有选项,默认不显示LISTEN相关-t (tcp)仅显示tcp相关选项-u (udp)仅显示udp相关选项-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在Listen (监听) 的服務状态-p 显示建立相关链接的程序名-r 显示路由信息,路由表4,日志处理cat显示整个文件参数:-n 由1 开始对所有输出的行数编号more一般用于显示内容超过一屏的文件参数:空格显示下一整屏回车显示下一行-q 退出lessless命令的用法与more命令类似,也可以用来浏览超过一页的文件,less 的用法比起 more 更加的有弹性。
在 more 的时候,我们并没有办法向前面翻,只能往后面看,但若使用了less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容.grep文本搜索主要参数:-c:只输出匹配行的计数。
-I:不区分大小写(只适用于单字符)。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-v:显示不包含匹配文本的所有行。
. 单个字符。
* 所有字符,长度也可以为0sort排序参数:-u 去除重复行-r 降序排序-n 以数值来排序uniq检查及删除文本文件中重复出现的行cut提取文件特定字段主要参数:-d用来定义分隔符,默认为tab键,-f表示需要取得哪个字段–c按字符提取cut –d“|:”–f1,3-5cut –d“|:”-c1,5,8wc统计指定文件中的字节数、字数、行数主要参数:-l 统计行数awk主要参数:-F 指定域分隔符,默认为空格分隔符NR 行数NF 列数sed主要参数:-e 进行多项编辑,即对输入行应用多条sed命令时使用-n 取消默认的输出-p 打印行-d 删除行-Itar打包/解压文件或打包目录主要参数:-c :建立一个压缩文件的参数指令(create 的意思)-x :解开一个压缩文件的参数指令-z :是否同时具有gzip 的属性? 亦即是否需要用gzip 压缩?-j :是否同时具有bzip2 的属性?亦即是否需要用bzip2 压缩?-v :压缩的过程中显示文件,这个常用,但不建议用在背景执行过程-f :使用档名解压:tar xvf ufile.tar.gz压缩:tar cvf test.tar.gz ufile1 ufile2 dir15,其它命令chmod文件文件夹权限设定u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限r 表示可读取,w 表示可写入,x 表示可执行chown将File 参数指定的文件的所有者更改为Owner 参数指定的用户file检测文件类型lsof列出当前系统打开文件的工具主要参数lsof -u username 显示所属user进程打开的文件lsof -i 用以显示符合条件的进程情况lsof -p 指定进程打开的文件last所有用户登录,重启操作记录查询root权限下reboot系统重启第二部分 ftp说明常用参数:cd 远端目录切换lcd 本地目录切换pwd 显示远端当前工作目录!命令执行本地系统命令比如!ls !pwdget 下载文件put 上传文件mget 多文件下载mget 1.txt 2.txtmput 多文件上传mput 1.txt 2.txtprompt 交互提示在进行多文件上传下载时,必须设置关闭此交互提示文件传输模式:asc(ASCII) 文字模式,文件的行结束符从来源的机器所用的行结束符转换成接收机器所用的行结束符bin(Binary) 二进制模式,什么也不会改变,按照源文件传输ftp在不同操作系统平台间进行文件上传时,必须设置传输模式。