记录一些经常用到,但总也记不住用法的linux命令
列出当前目录下的所有文件&文件夹,大概是除了cd之外最常用的命令了
常用选项:
-R 递归地列出当前目录及子目录下的文件
-a 列出的文件中包括隐藏文件
另外还有一个方便的功能:列出文件名中包含特定字符串的文件,支持正则表达式
例如列出当前目录下文件名中包含’.txt’的文件:ls *.txt*
对文件中字符串进行筛选过滤linux命令,常用于筛选日志
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log
查找命令
在当前目录下查找名叫“haha”的文件:find . -name "haha"
常用选项:
-type: 根据文件类型来查找文件
-f 普通文件
-d 目录文件
-l 链接文件
-b 块设备文件
-c 字符设备文件
-p 管道文件
-s socket文件
查找命令
在当前目录下查找内容包含“haha”的文件:grep -r haha ./
压缩和解压的命令
将a.tar.gz解压到文件夹b中:tar -zxvf a.tar.gz -C /b
给其他命令传递参数的过滤器。用好了可以说是神器了,例如下面一条命令是用find查找/data目录下以.txt文件结尾的文件,并复制到/tmp下:
find /data/ -name "*.txt" | xargs cp -t /tmp
-t 指定粘贴的目标路径,xargs把find的结果作为参数传给cp命令。
常用选项:
-n1: 表示将参数一个一个传过去
-I: 使用-I指定一个替换字符串{},这个字符串在xargs扩展时会被替换掉,例如:
ls | xargs -I {} echo haha{}
这条命令会把在当前目录下所有文件和目录前加上“haha”打印出来,只是为了举例而举例orz
常用功能是查看文件或目录是否存在:
test -d xiajbxie && echo "found" || echo "not found"
查看文件夹xiajbxie是否存在,若存在打印found,不存在打印not found
查找当前目录下所有文件名包含’.txt’的文件,并统计数量
ls *.txt* | wc -l
rename支持利用perl正则语法重命名文件
rename "s/\(.*\)/_brack/" *(*
上面命令的作用是将目录下包含括号(的文件中的括号包括括号中的内容替换成_bracklinux命令,例如test(复件)替换为test_brack
我理解是用户可以自定义一个指令用于执行一个比较难敲的指令,相当于快捷键的感觉。