本文简单记录个人常用的几个命令。
设置别名
经常在多个长路径分支间进行cd切换,通过命名别名快速切换目录1)先跳转到个人用户目录下面,直接在shell下敲cd命名即可
2)打开.bash_profile文件 :vim .bash_profile
3)在文档末尾添加类似如下
alias cd_test='cd ~/data/work/work2/work3/wustzjf/test'
alias ..="cd .."
alias ..2="cd ../.."
alias ..3="cd ../../.."
alias ..4="cd ../../../.."
alias ..5="cd ../../../../.."
4)保存文档退出 ,并使其生效 : source .bashrc
5)之后只需在shell任何目录情况下输入 cd_test 即可跳转到指定目录
其他常用的命名也可以这么操作,如
alias sm='svn status -v | grep -E "^M|^D|^A"' # 查看当前目录下改动、新增、删除的文件
grep
作用:在指定文件中搜索字符串格式:grep [选项] [查找内容] [查找范围]
选项如下:
-i:比较时不区分大小写
-n:显示行号
-l:只显示包含匹配项的文件名
-r:递归查询
-o:只打印匹配的字符(同行出现相同匹配的字符会分开打印)
-c:显示匹配行的数量
-v:显示不匹配的行
例子:
1、精确匹配
grep -nr '\<pattern>\' filename
2、计算出现匹配字符的个数
grep -o '\<pattern>\' filename1 filename2 | wc -l
3、查找以1开头9结尾的内容行
grep -nr '^1*9$' ./*
4、显示当前的目录个数
ls -l | grep '^d' | wc -l
5、查找包含asdf或qwer的字符串
grep -n -E 'asdf|qwer'
wc
作用:打印指定文件或输入流中的行、字、字节的数量格式:wc [选项] [文件]
选项如下:
-c:打印字符个数
-w:打印字的个数
-l:打印行数
例子:
1、打印test.txt文本中的字符个数
cat test.txt | wc -c
2、打印 test.txt文本中的行数
wc -l test.txt
find
作用:用于查找某一文件的位置格式:find [查找路径] [选项] [查找内容]
选项如下:
-name:查找匹配所给字符串的所有文件名
-type:查找指定类型的文件。d(目录文件)、f(普通文件)、l(符号连接文件)、s(socket文件)、p(管道文件)、c(字符设备文件)、b(块设备文件)
-o:逻辑或
-a:逻辑与,默认启用
!:不满足
例子
1、查找当前目录下,包含abc的普通文件
find -type f -name ‘*abc*’
2、对查找到的文件,进行查找字符串操作
find /path -type f -name '*.c' | xargs grep -in 'pattern'
3、在当前目录下查找文件名为zjf1或zjf2的文件
find -name 'zjf1' -o -name 'zjf2'
xargs
以下内容摘至网络,但忘记了出处...
xargs的作用一般等同于大多数Unix shell中的反引号,但更加灵活易用,并可以正确处理输入中有空格等特殊字符的情况。对于经常产生大量输出的命令如find、locate和grep来说非常有用。
在使用find命令的-exec选项处理匹配到的文件时,find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。
find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;而使用xargs命令则只有一个进程。另外,在使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。