linux命令三剑客等重要命令汇编.docx
- 文档编号:10773370
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:30
- 大小:173.76KB
linux命令三剑客等重要命令汇编.docx
《linux命令三剑客等重要命令汇编.docx》由会员分享,可在线阅读,更多相关《linux命令三剑客等重要命令汇编.docx(30页珍藏版)》请在冰豆网上搜索。
linux命令三剑客等重要命令汇编
Linux命令之find
概述
find命令用来在指定目录下查找文件。
任何位于参数之前的字符串都将被视为欲查找的目录名。
如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。
并且将查找到的子目录和文件全部进行显示。
语法格式
find选项参数
选项
-a:
就是and-o:
就是or-not:
就是相反
-amin<分钟>:
查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
-anewer<参考文件或目录>:
查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录;
-atime<24小时数>:
查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
-cmin<分钟>:
查找在指定时间之时被更改过的文件或目录;
-cnewer<参考文件或目录>查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-ctime<24小时数>:
查找在指定时间之时被更改的文件或目录,单位以24小时计算;
-daystart:
从本日开始计算时间;
-depth:
从指定目录下最深层的子目录开始查找;
-expty:
寻找文件大小为0Byte的文件,或目录下没有任何子目录或文件的空目录;-exec<执行指令>:
假设find指令的回传值为True,就执行该指令;
-false:
将find指令的回传值皆设为False;
-fls<列表文件>:
此参数的效果和指定“-ls”参数类似,但会把结果保存为指定的列表文件;-follow:
排除符号连接;
-fprint<列表文件>:
此参数的效果和指定“-print”参数类似,但会把结果保存成指定的列表文件;
-fprint0<列表文件>:
此参数的效果和指定“-print0”参数类似,但会把结果保存成指定的列表文件;
-fprintf<列表文件><输出格式>:
此参数的效果和指定“
-printf”参数类似,但会把结果保存成指定的列表文件;
-fstype<文件系统类型>:
只寻找该文件系统类型下的文件或目录;
-gid<群组识别码>:
查找符合指定之群组识别码的文件或目录;-group<群组名称>:
查找符合指定之群组名称的文件或目录;
-help或——help:
在线帮助;
-ilname<范本样式>:
此参数的效果和指定“-lname”参数类似,但忽略字符大小写的差别;
-iname<范本样式>:
此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;-inum:
查找符合指定的inode编号的文件或目录;
-ipath<范本样式>:
此参数的效果和指定“-path”参数类似,但忽略字符大小写的差别;
-iregex<范本样式>:
此参数的效果和指定“-regexe”参数类似,但忽略字符大小写的差别;
-links<连接数目>:
查找符合指定的硬连接数目的文件或目录;
-iname<范本样式>:
指定字符串作为寻找符号连接的范本样式;
-ls:
假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出;
-maxdepth<目录层级>:
设置最大目录层级;
-mindepth<目录层级>:
设置最小目录层级;
-mmin<分钟>:
查找在指定时间曾被更改过的文件或目录,单位以分钟计算;-mount:
此参数的效果和指定“-xdev”相同;
-mtime<24小时数>:
查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
-name<范本样式>:
指定字符串作为寻找文件或目录的范本样式;
-newer<参考文件或目录>:
查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;-nogroup:
找出不属于本地主机群组识别码的文件或目录;
-noleaf:
不去考虑目录至少需拥有两个硬连接存在;
-nouser:
找出不属于本地主机用户识别码的文件或目录;
-ok<执行指令>:
此参数的效果和指定“-exec”类似,但在执行指令之前会先询问用户,若回答“y”或“Y”,则放弃执行命令;
-path<范本样式>:
指定字符串作为寻找目录的范本样式;
-perm<权限数值>:
查找符合指定的权限数值的文件或目录;
-print:
假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。
格式为每列一个名称,每个名称前皆有“./”字符串;
-print0:
假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。
格式为全部的名称皆在同一行;
-printf<输出格式>:
假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。
格式可以自行指定;
-prune:
不寻找字符串作为寻找文件或目录的范本样式;
-regex<范本样式>:
指定字符串作为寻找文件或目录的范本样式;
-size<文件大小>:
查找符合指定的文件大小的文件;
-true:
将find指令的回传值皆设为True;
-type<文件类型>:
只寻找符合指定的文件类型的文件;
-uid<用户识别码>:
查找符合指定的用户识别码的文件或目录;
-used<日数>:
查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算;
-user<拥有者名称>:
查找符和指定的拥有者名称的文件或目录;
-version或——version:
显示版本信息;
-xdev:
将范围局限在先行的文件系统中;
-xtype<文件类型>:
此参数的效果和指定“-type”参数类似,差别在于它针对符号连接检查。
以上红色选项为经常使用
常用实例:
find/home-name“*.txt”###查找/home目录下以.txt结尾的文件
find/home-iname“*.txt”###同上,但是忽略大小写
find.-name“*.txt”-o-name“*.pdf”###查找存在多匹配的时候,需要用-o参数连接
find.-regex“.*\(\.txt\|\.pdf\)$”###匹配正则表达式
find/home!
-name“*.txt”###找出不是以.txt结尾的文件,!
的作用就是取反
find.-type类型参数###f是普通文件,l是链接文件,d是目录文件,c是字符设备文件,b是块设备文件,s是套接字文件,p是管道文件
find.-typef时间戳###访问时间(-atime/天,-amin/分钟):
用户最近一次访问时间。
###修改时间(-mtime/天,-mmin/分钟):
文件最后一次修改时间。
###变化时间(-ctime/天,-cmin/分钟):
文件数据元(例如权限等)最后一次修改时间。
find.-typef-atime-7###找出7天内被访问过的文件
find.-typef-atime7###找出恰好是7天前那一天访问过的文件
find.-typef-mtime+7###找出超过7天前修改过的文件
find.-typef-size文件大小###b—块(512字节),c—字节,w—字(2字节),k—千字节,M—兆字节,G—吉字节
find.-typef-size+10k###搜索大于10k的文件
find.-typef-size-10k###搜索小于10k的文件
find.-typef-size10k###搜索等于10k的文件
find.-typef-perm777###搜索当前目录下权限为777的文件
find.-typef-name“*.php”!
-perm644###找出目录下权限不是644的php文件
find.-typef-usertom###找出当前目录下用户tom所拥有的文件
find$HOME/.-name“*.txt”-execrm{}\;###找出自己家目录下所有.txt文件并删除
find.-typef-mtime+30-name“*.log”-execcp{}old\;###将30天前修改的.log文件拷贝到old目录下
{}代表find命令所找到的结果集,-exec必须以\;结束
Find.–typef-name“*.txt”-execprintf“File:
%s\n”{}\;###找出当前目录下所有.txt文件,并以“File:
文件名”的形式打印出来
Linux命令之sed
概述:
sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。
处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(patternspace),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。
接着处理下一行,这样不断重复,直到文件末尾。
文件内容并没有改变,除非你使用重定向存储输出。
Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
命令格式:
sed[options]'command'file(s)
sed[options]-fscriptfilefile(s)
sed命令:
a\在当前行下面插入文本。
i\在当前行上面插入文本。
c\把选定的行改为新的文本。
d删除,删除选择的行。
D删除模板块的第一行。
s替换指定字符
h拷贝模板块的内容到内存中的缓冲区。
H追加模板块的内容到内存中的缓冲区。
g获得内存缓冲区的内容,并替代当前模板块中的文本。
G获得内存缓冲区的内容,并追加到当前模板块文本的后面。
l列表不能打印字符的清单。
n读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。
N追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。
p打印模板块的行。
P(大写)打印模板块的第一行。
q退出Sed。
blable分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。
rfile从file中读行。
tlabelif分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。
Tlabel错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。
wfile写并追加模板块到file末尾。
Wfile写并追加模板块的第一行到file末尾。
!
表示后面的命令对所有没有被选定的行发生作用。
=打印当前行号码。
#把注释扩展到下一个换行符以前
sed替换标记:
g表示行内全面替换。
p表示打印行。
w表示把行写入一个文件。
x表示互换模板块中的文本和缓冲区中的文本。
y表示把一个字符翻译为另外的字符(但是不用于正则表达式)
\1子串匹配标记
&已匹配字符串标记
sed元字符集:
^匹配行开始,如:
/^sed/匹配所有以sed开头的行。
$匹配行结束,如:
/sed$/匹配所有以sed结尾的行。
.匹配一个非换行符的任意字符,如:
/s.d/匹配s后接一个任意字符,最后是d。
*匹配0个或多个字符,如:
/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。
[]匹配一个指定范围内的字符,如/[ss]ed/匹配sed和Sed。
[^]匹配一个不在指定范围内的字符,如:
/[^A-RT-Z]ed/匹配不包含A-R和T-Z的一个字母开头,紧跟ed的行。
\(..\)匹配子串,保存匹配的字符,如s/\(love\)able/\1rs,loveable被替换成lovers。
&保存搜索字符用来替换其他字符,如s/love/**&**/,love这成**love**。
\<匹配单词的开始,如:
/\ \>匹配单词的结束,如/love\>/匹配包含以love结尾的单词的行。 x\{m\}重复字符x,m次,如: /0\{5\}/匹配包含5个0的行。 x\{m,\}重复字符x,至少m次,如: /0\{5,\}/匹配至少有5个0的行。 x\{m,n\}重复字符x,至少m次,不多于n次,如: /0\{5,10\}/匹配5~10个0的行。 sed常用实例: sed-n‘s/book/books/gp’file###-n选项表示只输出受影响的行,p是打印,g是全局,s是替换 sed-i‘s/book/books/g’file###-i选项是直接对文件做修改,不会输出结果 sed‘s: test: TEXT: g’###通常定界符用/,也可以使用其它的任意定界符比如: 或者|等等,不建议用过于复杂且不好记的符号 sed‘s|test|TEXT|g’###这里用的是|为定界符 sed‘s/\/bin/\/usr\/local\/bin/g’###当定界符用在样式内部时,需要转义 sed‘/^$/d’file###删除文件file里面的空白行 sed‘2d’file###删除文件第2行 sed‘2,$d’file###删除第二行到最后一行 sed‘$d’file###删除文件最后一行 sed‘/^test/d’file###删除文件所有开头是test的行 echothisisatestline|sed‘s/\w\+/[&]/g’###正则表达式\w\+匹配每一个单词,使用[&]替换每一个匹配到的单词,&对应之前匹配到的单词。 命令结果: [this][is][a][test][line] sed‘s/^192.168.0.1/&-localhost/’file###文件里所有行头的192.168.0.1都会被替换成192.168.0.1-localhost。 echothisisdigit7inanumber|sed‘s/digit\([0-9]\)/\1/g’###输出结果: thisis7inanumber。 \(..\)是匹配子串,如果匹配到会被标记成\1,以此类推第二个字串如果匹配到,就标记为\2。 sed‘表达式;表达式’###组合多个表达式,用;号隔开 sed-n‘5,/^test/p’fiel###打印从第5行开始到第一个包含以test开始的行之间的所有行 sed‘/test/,/west/s/$/aaabbb/’###对于模板test和west之间的行,每行的末尾用字符串aaabbb替换 sed‘/^test/a\shisisatestline’file###在开头是test的行下插入内容为thisisatestline的一行,\a是在行下追加新的一行 sed-i‘2a\thisisatestline’file###在第二行下面添加新的一行thisisatestline, sed-i‘5i\thisisatestline’file###在第五行上面插入一个thisisatestline的新行,\i是行上插入新的一行 sed‘/test/{n;s/aa/bb/}’file###如果匹配到有test的行,则游标往下移动一行,并将这行里的aa替换成bb, sed-n‘p;n’file###打印奇数行,原理: 通过p命令先打印第一行,在通过n命令往下移动一行(第二行),sed是按行处理,下次会读取下一行处理(第三行),以此类推。 Sed-n‘n;p’file###打印偶数行,原理同上 Linux命令之grep 概述: grep(globalsearchregularexpression(RE)andprintouttheline,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 选项: -a不要忽略二进制数据。 -A<显示列数>除了显示符合范本样式的那一行之外,并显示该行之后的内容。 -b在显示符合范本样式的那一行之外,并显示该行之前的内容。 -c计算符合范本样式的列数。 -C<显示列数>或-<显示列数>除了显示符合范本样式的那一列之外,并显示该列之前后的内容。 -d<进行动作>当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。 -e<范本样式>指定字符串作为查找文件内容的范本样式。 -E将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。 -f<范本文件>指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。 -F将范本样式视为固定字符串的列表。 -G将范本样式视为普通的表示法来使用。 -h在显示符合范本样式的那一列之前,不标示该列所属的文件名称。 -H在显示符合范本样式的那一列之前,标示该列的文件名称。 -i忽略字符大小写的差别。 -l列出文件内容符合指定的范本样式的文件名称。 -L列出文件内容不符合指定的范本样式的文件名称。 -n在显示符合范本样式的那一列之前,标示出该列的编号。 -q不显示任何信息。 -R/-r此参数的效果和指定“-drecurse”参数相同。 -s不显示错误信息。 -v反转查找。 -w只显示全字符合的列。 -x只显示全列符合的列。 -y此参数效果跟“-i”相同。 -o只输出文件中匹配到的部分。 grep常用实例: grep“test”file###找出file文件中包含test的行,并打印 grep“test”file1file2file3###多文件查找 grep-v“test”file###加-v选项后,找出没有包含test的行,并打印 grep“hello”file--color=auto###标记匹配颜色 grep-E“[1-9]+”###-E使用正则表达式,与egrep“[1-9]+”相同 echothisisatestline.|grep-E-o“[a-z]+\.”###-o选项只输出匹配的字符串。 输出结果: line. grep“test”-nfile###-n选项输出行号,多文件时会在输出加文件名 grep-c“text”file###-c选项输出匹配的总行数 grep“text”.–r-n###-r递归搜索目录及子目录下的文件内容,.表示当前目录。 输出内容为文件路径名: 匹配内容行号: 匹配内容 echo“helloworld”|grep-i“HELLO”###-i选项会忽略匹配样式中字符串大小写 echothisisatextline|grep-e“is”-e“text”-o###-e用来指定多个匹配样式 grep“main()”.-r--include*.{php,html}###递归搜索当前目录下的.php和.html文件中包含main()的行 grep“main()”.-r--exclude“README”###搜索排除所有的README文件 grep"main()".-r--exclude-fromfilelist###在搜索结果中排除filelist文件列表里的文件 #显示匹配某个结果之后的3行,使用-A选项: seq10|grep"5"-A3 5 6 7 8 #显示匹配某个结果之前的3行,使用-B选项: seq10|grep"5"-B3 2 3 4 5 #显示匹配某个结果的前三行和后三行,使用-C选项: seq10|grep"5"-C3 2 3 4 5 6 7 8 Linux命令之awk 概述: awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。 数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。 它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。 它在命令行中使用,但更多是作为脚本来使用。 awk有很多内建的功能,比如数组、函数等,这是它和C语言的相同之处,灵活性是awk做大的优势。 awk模式和操作: 模式 模式可以是以下任意一个: ●/正则表达式/: 使用通配符的扩展集。 ●关系表达式: 使用运算符进行操作,可以是字符串或数字的比较测试。 ●模式匹配表达式: 用运算符~(匹配)和~! (不匹配)。 ●BEGIN语句块、pattern语句块、END语句块: 参见awk的工作原理 操作 操作由一个或多个命令、函数、表达式组成,之间由换行符或分号隔开,并位于大括号内,主要部分是: ●变量或数组赋值 ●输出命令 ●内置函数 ●控制流语句 awk脚本基本结构: awk'BEGIN{print"start"}pattern{commands}END{print"end"}'file 一个awk脚本通常由: BEGIN语句块、能够使用模式匹配的通用语句块、END语句块3部分组成,这三个部分是可选的。 任意一个部分都可以不出现在脚本中,脚本通常是被单引号或双引号中。 例如: awk'BEGIN{i=0}{i++}END{printi}'filename awk"BEGIN{i=0}{i++}END{printi}"filename awk工作原理: awk'BEGIN{commands}pattern{commands}END{commands}' ●第一步: 执行BEGIN{commands}语句块中的语句; ●第二步: 从文件或标准输入(stdin)读取一行,然后执行pattern{commands}语句块,它逐行扫描文件,从第一行到最后一行重复这个过程,直到文件全部被读取完毕。 ●第三步: 当读至输入流末尾时,执行END{commands}语句块。 BEGIN语句块在awk开始从输入流中读取行之前被执行,这是一个可选的语句块,比如变量初始化、打印输出表格的表头等语句通常可以写在BEGIN语句块中。 END语句块在awk从输入流中读取完所有的行之后即被执行,比如打印所有行的分析结果这类信息汇总都是在END语句块中完成,它也是一个可选语句块。 pattern语句块中的通用命令是最重要的部分,它也是可选的。 如果没有提供pattern语句块,则默认执行{print},即打印每一个读取到的行,awk读取的每一行都会执行该语句块。 示例: echo-e“Aline1\nAline2”|awk‘BEGIN{print“start”}{print}{
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 命令 剑客 重要 汇编