linux经常使用命令简介

linux命令总结:
cut切分字段
cut -c list [file...]
cut -f [-d delim] list [file...]
-c list 以字符为主,剪切,list为字符编号或一段范围的列表,以逗号隔开
-d delim 与-f选项一块儿使用,指定定界符,默认定界符为制表符
-f以字段为主,剪切,list为字段编号或一段范围列表,以逗号隔开
输入为文件或标准输入
cut -d : -f 1,5 /etc/passwdnode

sed文本替换
sed [-n] 'editing command' [file...]
sed [-n] -e 'editing command'... [file...]
sed [-n] -f script-file... [file...]
-e 'editing command'当有多个命令须要应用时,以-e链接
-f script-file从文件中读取命令
-n不是显示修改后的结果,而是显示指定行
editing command是
sed 's/:.*//' /etc/passwd将:之后的替换成空,命令以s开头,/表明分界符,能够是任意的,而后是匹配正则,而后是替换文本linux


grep文本查找
grep [options] pattern [file...]
-E使用扩展正则表达式匹配
-F使用固定字符串匹配
-f file从文件里读取匹配表达式
-i忽略大小写匹配
who | grep -F 'zhanghuan'正则表达式

grep -C 5 foo file  显示file文件中匹配foo字串那行以及上下5行
grep -B 5 foo file  显示foo及前5行
grep -A 5 foo file  显示foo及后5行数组

join文本链接
join [options...] file1 file2
-1 filed
-2 filed
标明链接的键值,-1是从文件1中读出的,-2是从文件2中读出的
-o file.filed
指定每一个文件要输出的字段,使用多个-o输出多个字段
-t separator
指定文件分隔符,也做为输出字段的分隔符
-a FILENUM
除了显示匹配好的行另外将指定序号(1或2)文件里不匹配的行显示出来
-e EMPTY
将需要显示但是文件里不存在的域用此选项指定的字符取代
-i 
忽略大写和小写
join -o 1.1 -o 1.2 -o 1.3 -o 2.1 -o 2.2 -o 2.3 -e 'empty' -a 1 file1.txt file2.txt 函数

sort排序
sort [options...] [file]
-b忽略开头的空白
-c检查是否已排序,未排序则输出非零值,不然输出为空
-d字典顺序
-g浮点数比较
-f忽略大小写
-k指定排序键,紧跟在k后面
-n整数比较
-o file指定输出文件
-r反序输出,默认是由小到大
-t使用单个字符为分隔符,默认为空白字符
-u去除具备相同键的行
sort -k2 -n -r deomo3.txt
sort -n -k 2.2,3.1 facebook.txt
以第二个域的第二个字符开始到第三个域的第一个字符结束的部分进行排序。日志

read读取一个或多个数据
read [-r] variable...
-r原始读取,不作任何处理,不将结尾的反斜杠解释为续航字节
以IFS分割输入数据
while IFS=: read name num sex
do
...
done排序

日志输出重定向索引

>/dev/null 输出到空设备,表示丢掉输出信息
2 > &1 将输出到标准错误的信息输出到标准输出设备(一般是屏幕) 有3个默认的i/o
0 是标准输入,通常是键盘 
1 是标准输出,通常是屏幕了 
2 是标准错误,有时候屏幕上能够看到,可是重定向的文件中看不到的就是它了
将标准输出和标准错误信息记录下来,咱们经过以下形式办到:somescript.sh > log 2>&1 ip

find查找文件
find [file-or-directories] [options...]
-name 'pattern'
选定名称与匹配模式匹配的
-type t
指定类型,t可使d或f,d为目录,f为文件
-user u
选定用户u的文件
find test -name 'demo*'字符串

df显示文件系统使用状况
df [options...] [file-or-directories]
-i显示inode计数,而非空间
-k显示空间时以KB为单位
-l仅显示本地文件系统
-h显示空间,比较友好

du显示一个或多个目录的空间使用率
-k空间显示,以KB为单位
-s为每一个参数仅显示单行摘要

awk处理数据
awk pattern {action} 若是模式匹配则执行操做
awk pattern 若是模式匹配则打印记录
awk  {action} 针对每条记录执行操做
awk 'BEGIN{ commands } pattern{ commands } END{ commands }'
第一步:执行BEGIN{ commands }语句块中的语句; 
第二步:从文件或标准输入(stdin)读取一行,而后执行pattern{ commands }语句块,它逐行扫描文件,从第一行到最后一行重复这个过程,直到文件所有被读取完毕。 
第三步:当读至输入流末尾时,执行END{ commands }语句块。 
BEGIN语句块在awk开始从输入流中读取行以前被执行,这是一个可选的语句块,好比变量初始化、打印输出表格的表头等语句一般能够写在BEGIN语句块中。 
END语句块在awk从输入流中读取完全部的行以后即被执行,好比打印全部行的分析结果这类信息汇总都是在END语句块中完成,它也是一个可选语句块。 
pattern语句块中的通用命令是最重要的部分,它也是可选的。若是没有提供pattern语句块,则默认执行{ print },即打印每个读取到的行,awk读取的每一行都会执行该语句块。
-F fs fs指定输入分隔符,fs能够是字符串或正则表达式,如-F: 
-v var=value   赋值一个用户定义变量,将外部变量传递给awk 
-f scripfile  从脚本文件中读取awk命令
awk 'BEGIN{a=11;if(a >= 9){print "ok";}}'
awk 'NR%2==1{next}{print NR,$0;}' text.txt
echo | awk '{printf("hello word!n") > "datafile"}'
awk -F: '{ print $NF }' /etc/passwd 或 awk 'BEGIN{ FS=":" } { print $NF }' /etc/passwd

awk中的字符串函数 length(string)返回字符串的长度 substr(string,start,length)子字符串提取,字符编号从1开始 tolower/toupper(string)字符串大小转换 index(string,find)查找string中是否有字符串find,返回string里find字符串的起始位置,找不到则返回0 match(string,regex)将string与正则表达式regex匹配,若是匹配,则返回匹配string的索引,不匹配则返回0 sub(regex,replacement,target)字符串替换功能,gsub函数替换全部 split(string,array,regex)将字符串按regex切分,若是省略regex,则按FS切分,切分结果存到数组array里

相关文章
相关标签/搜索