博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常用的shell命令整理
阅读量:4351 次
发布时间:2019-06-07

本文共 5217 字,大约阅读时间需要 17 分钟。

转:http://blog.chinaunix.net/uid-23659649-id-3902267.html

 

工作快一年了,shell命令也玩了一年了。还是有点积累的,下面是本人常用的。1、pwd | xargs -i basename {}   获取当前所在目录的名称2、ps -ef|grep -w  indexd_admin_mcd.pid|grep -v grep|wc -lps -ef 查找进程    grep -v  查找不存在  grep -w 强制 PATTERN 仅匹配整个词查找进程中为 indexd_admin_mcd.pid的进程,并且排除掉grep的进程。最后计数,这样进程的个数。3、if [ $cn -lt 1 ]   如果cn的值< 14、ulimit  -c   最大的core文件的大小,以blocks为单位。    ulimit -c  unlimited  对生成的core文件大小不进行限制。5、killkill -9 pid,是不顾后果的强制终止(如果的你的速度够快,有时候是和ctrl+c是一样的)kill -15 pid,是先关闭和其有关的程序,再将其关闭6、crontabcrontab -l    显示crontab中的所有的内容crontab filename     用新的文件代替crontab里的所有的内容。所有想在crontab中添加新的自动运行的进程,则先用crontab -l >temp,先将crontab中所有的内容全部重定向到一个新的文件中,然后在这个temp文件后>>追加内容。最后用crontab temp,用temp的文件内容替代crontab的所有的内容。crontab文件的格式:分  时  日  月  星期7、$()与‘’的意思相同,获取shell执行后的值,但是用$()会更加的直观。  ${},{}中经常放的是变量,这样在${}就可以精确后面的变量的范围了。${
file#*/}:拿掉第一条/及其左边的字符串: dir1/dir2/dir3/my.file.txt${
file##*/}:拿掉最后一条/及其左边的字符串:my.file.txt${
file#*.}:拿掉第一个.及其左边的字符串:file.txt${
file##*.}:拿掉最后一个.及其左边的字符串:txt${
file%/*}:拿掉最后条/及其右边的字符串:/dir1/dir2/dir3${file%%/*}:拿掉第一条 / 及其右边的字符串:(空值)${file%.*}:拿掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file${file%%.*}:拿掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my8、运算(( A )) 做运算的,A是任何的运算的表达式 A中的变量可用$来替换,也可以不用。 9、if 判断条件中 $# 和$? 是什么意思?$# 获取参数的数目my.sh p1 "p2 p3" 为例 $#可得到2$@ 与 $* 均可获得所有的参数 my.sh p1 "p2 p3" p4 $@ 与 $* 得到p1 p2 p3 p4但是,如果置于 soft quote 中的话:"$@" 则可得到 "p1" "p2 p3" "p4" 这三个不同的词段(word)"$*" 则可得到 "p1 p2 p3 p4" 这一整串单一的词段。10、在 shell command line 中可用 $? 这个变量得到最新的一个 return value ,也就是刚结束的那个行程传回的值。* 若在 script 里,用 exit RV 来指定其值,若没指定,在结束时以最后一道命令之 RV 为值。* 若在 function 里,则用 return RV 来代替 exit RV 即可。11、重定向输出* 2>&1 就是将 stderr 并进 stdout 作输出* 1>&2 或 >&2 就是将 stdout 并进 stderr 作输出ls my.file no.such.file 2>/dev/null* 若将 FD1 跟 FD2 转到 /dev/null 去,就可将 stdout 与 stderr 弄不见掉。* 若将 FD0 接到 /dev/null 来,那就是读进 nothing 。>/dev/null 2>&1 单纯只跑程序,不想看到任何输出结果 除了用 >/dev/null 2>&1 之外,你还可以&>/dev/null12、tee复制所谓 tee 命令是在不影响原本 I/O 的情况下,将 stdout 复制一份到档案去。cm1 | cm2 | tee file | cm3在预设上, tee 会改写目标档案,若你要改为增加内容的话,那可用 -a 参数达成。凡举 cat, more, head, tail, wc, expand, tr, grep, sed, awk, ... 等等文字处理工具,搭配起 pipe line 来使用13、shell程序的参数 $0 当前程序的执行名字 $n 当前程序的第n个参数值,n=1..9 $* 当前程序的所有参数 $# 当前程序的参数个数 $$ 当前程序的PID $! 执行上一个指令的PID $? 执行上一个指令的返回值14、date显示时间date '+%F %T' 2012-08-27 15:52:54 等同于date +"%Y-%m-%d %T"date -d '-1 days' +"%Y%m%d" 获取前一天的时间15、if添加的判断的另一个方式判断参数的个数01 if (( $# < 1 ))02 then03 echo "Usage: $0 worker_id"04 exit 105 fi06 if (( $# == 1 ))07 then08 WORKER_ID=$109 MAX_WORKER_ID=$WORKER_ID10 elif (( $# > 1 ))11 then12 echo "Usage: $0 [worker_id]"13 exit 114 else15 echo "worker count $WORKER_CNT"16 fi这样写if的条件的判断就和c语言的一样了,条件运算16、ipcs 查看共享内存的使用的情况ipcrm -M shmid 关闭共享内存17、make -p即使data这个文件夹不存在,也可以创建他的子目录,当然同同时,他也被创建。mkdir -p /data/coredump18、head tailhead 是显示一个文件的内容的前多少行;head -n 行数值 文件名;比如我们显示/etc/profile的前10行内容,应该是:[root@localhost ~]# head -n 10 /etc/profiletail 工具,显示文件内容的最后几行,用法比较简单;tail -n 行数值 文件名;比如我们显示/etc/profile的最后5行内容,应该是:[root@localhost ~]# tail -n 5 /etc/profile更多:http://blog.csdn.net/carzyer/article/details/475959319、创建软链接ln -sf a b b链向a20、export 执行的路径export LD_LIBRARY_PATH=./21、if [ expr ]; then … fi-n str 字符串 str 是否不为空-z str 字符串是否为空str1 = str2 str1是否与 str2 相同str1 != str2 str1是否与 str2 不同int1 -eq int2 等于 int1 -le int2 小于等于int1 -ge int2 大于等于 int1 -lt int2 小于int1 -gt int2 大于 int1 -ne int2 不等于-b 是否块文件 -p 文件是否为一个命名管道-c 是否字符文件 -r 文件是否可读-d 是否一个目录 * -s 文件的长度是否不为零-e 文件是否存在 * -S 是否为套接字文件-f 是否普通文件 * -x 文件是否可执行,则为真-g 是否设置了文件的 SGID 位 -u 是否设置了文件的 SUID 位-G 文件是否存在且归该组所有 -w 文件是否可写,则为真-k 文件是否设置了的粘贴位 -t fd fd 是否是一个与终端相连的打开的文件描述符(fd 默认为 1)-O 文件是否存在且归该用户所有22、for循环1 for((i=1;i<=100;++i))2 do3 echo $i4 done23、对一行的第一列进行排重,只保留最新的数据。awk的内置的数组进行排重,排重之后在sort01 filename=$102 awk '03 {04 cont[$1] = $0;05 }06 END {07 for (key in cont)08 {09 print cont[key];10 }11 }' $filename | sort -k124、显示上次文件的创建的时间stat -c %Y $file25、while循环http://www.linuxidc.com/Linux/2011-02/32239p2.htmhttp://www.cnblogs.com/chengmo/archive/2010/10/14/1851434.html26、查看当前目录下的文件的大小du -h --max-depth=127、# nohup ./pso > pso.file 2>&1 &解释:nohup就是不挂起的意思,将pso直接放在后台运行,并把终端输出存放在当前目录下的pso.file文件中。当客户端关机后重新登陆服务器后,直接查看pso.file文件就可看执行结果(命令:#cat pso.file )。http://www.cnblogs.com/xianghang123/archive/2011/08/02/2125511.html28、将大文件分割为指定大小的文件http://huangyandong.blog.51cto.com/1396940/690276split -b 1m 20121018_quey.txt29、对windows上传的文件进行处理,处理特殊字符dos2unix over_wap_query_seed.20121023.txt30、将window的^M回车符号换成linux的tr -s "[\r]" "[\n]" < log.gettr -s "[\015]" "\n" < log.get31、在securecrt软件上显示用户名和ipecho -ne "\e]2;${USER}@$(/sbin/ifconfig eth1 | awk -F"[ :]+" '/inet addr/{print $4}')\a"如果你是root用户,把下面上面的那句命令行追加到 /etc/profile如果你是个人账户,在自己的家目录新建一个 .profile 文件,把命令行追加到.profile文件32、shell保留两位小数echo "scale=2; 1*100/3" | bc33、去掉变量的最后一个字符AA=abcdecho $AA | cut -c 1-$(expr ${#AA} - 1)34、linux下如何查询已知进程运行目录 ls -l /proc/PID/cwd最后为大家分享两个pdf文档,这是我入门学习shell时候用的。

 

转载于:https://www.cnblogs.com/pengdonglin137/p/3341225.html

你可能感兴趣的文章
关情纸尾-----UIKit基础-UITableView
查看>>
python之反射
查看>>
公共类
查看>>
linux系统常用命令
查看>>
python实现购物车程序
查看>>
微信小程序UI------实现携程首页顶部的界面(弹性布局)
查看>>
Android事件传递机制(dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent)
查看>>
centos 由2.7 升级为3.7
查看>>
Vim使用手册
查看>>
Leetcode 30.与所有单词相关联的子串
查看>>
【转】 java中HashMap详解
查看>>
linux 进程 进程组 作业 会话 控制终端
查看>>
缺陷描述是这样提高的
查看>>
UVA 1442 Cav
查看>>
网络爬虫作业
查看>>
java语言的科学与艺术-编程练习10.4(改进)
查看>>
WebServices介绍
查看>>
Oracle查询语句中指定索引时优化器及指定索引不好使的处理方法
查看>>
webpack2.0 基本使用
查看>>
vue axios全攻略
查看>>