记录一些经常用到,但总也记不住用法的linux命令
快捷键
linux命令行打出制表符:ctrl+v+i
split
将一个文件分割成数个,用法:split -${行数}
split -1000 log.txt
就是将log.txt每1000行分割成一个小文件
ls
列出当前目录下的所有文件&文件夹,大概是除了cd之外最常用的命令了
常用选项:
-R 递归地列出当前目录及子目录下的文件
-a 列出的文件中包括隐藏文件
另外还有一个方便的功能:列出文件名中包含特定字符串的文件,支持正则表达式
例如列出当前目录下文件名中包含’.txt’的文件:ls *.txt*
sed
对文件中字符串进行筛选过滤,常用于筛选日志
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log
find
查找命令
在当前目录下查找名叫“haha”的文件:find . -name "haha"
常用选项:
-type: 根据文件类型来查找文件
-f 普通文件
-d 目录文件
-l 链接文件
-b 块设备文件
-c 字符设备文件
-p 管道文件
-s socket文件
grep
查找命令
在当前目录下查找内容包含“haha”的文件:grep -r haha ./
tar
压缩和解压的命令
将a.tar.gz解压到文件夹b中:tar -zxvf a.tar.gz -C /b
xargs
给其他命令传递参数的过滤器。用好了可以说是神器了,例如下面一条命令是用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
常用功能是查看文件或目录是否存在:
test -d xiajbxie && echo "found" || echo "not found"
查看文件夹xiajbxie是否存在,若存在打印found,不存在打印not found
ls组合套路:查找并统计文件数
查找当前目录下所有文件名包含’.txt’的文件,并统计数量
ls *.txt* | wc -l
rename:重命名文件
rename支持利用perl正则语法重命名文件
rename "s/\(.*\)/_brack/" *(*
上面命令的作用是将目录下包含括号(
的文件中的括号包括括号中的内容替换成_brack
,例如test(复件)
替换为test_brack
alias:设置指令别名
我理解是用户可以自定义一个指令用于执行一个比较难敲的指令,相当于快捷键的感觉。
例如自定义一个指令writelog
来编辑存在某处的日志文件:
alias writelog='vim /home/yy/xiajbxie/log.txt'
以后只需在终端敲writelog
,就可以直接编辑这个log.txt了。
alias命令只对当次登入有效,如果想让指令一直生效则需写入相应配置文件中。
清除DNS缓存
sudo /etc/init.d/nscd restart
或者:service nscd restart
或者:service nscd reload
如果nscd无法执行,先安装nscd
修改用户密码
sudo passwd usrname
其中usrname为用户名,之后按提示操作即可。