当前位置: 首页 > 科技观察

shell常用的18条命令整理了

时间:2023-03-13 21:56:22 科技观察

1。ls:与dos下的dir命令类似,ls最常用的参数是三个:-a-l-F。ls–aLinux上以.开头的文件。被系统视为隐藏文件,只用ls命令是看不到的,但是用ls-a,除了显示一般文件名外,连隐藏文件也会显示出来。ls-l该参数显示更详细的文件信息。ls-F使用这个参数在文件后面增加更多代表文件类型的符号,比如*表示可执行文件,/表示目录,@表示链接文件,都是因为使用了-F参数。但是现在基本上所有的linux发行版的ls都内置了一个-F参数,也就是说我们不用输入这个参数就可以看到各种区分符号。2.cd:用于切换用户当前工作目录cdaaa。进入aaa目录后,cd命令不指定目录,会切换到当前用户的主目录。后面带减号的命令会回到切换前的目录cd..回到当前目录下的上一个目录3、pwd:用来显示用户当前的工作目录4、mkdir和rmdirmidir:创建目录rmdir:删除目录这两个命令都支持-p参数。对于mkdir命令,如果指定路径的父目录不存在,则一并创建。对于rmdir命令,将删除指定路径下的所有层次目录。如果文件夹中有内容,则不能使用rmdir命令,如下:mkdir-p1/2/3rmdir-p1/2/35,cp:copy命令将文件复制到另一个目录:cp1.txt。./test2复制一个文件到这个目录并重命名:cp1.txt2.txt复制一个文件夹a并重命名为b:cp-rab6,mv:move命令将文件移动到另一个目录:mv1.txt../test1重命名本目录下的一个文件:mv1.txt2.txt移动一个文件到另一个目录下并重命名:mv1.txt../test1/2.txt7、rm命令rm命令用于删除文件,类似于dos下的del/erase命令,常用的rm命令有三个参数:-i、-r、-f。-i:系统在删除文件前会要求确认,直到用户回车后才会删除文件。需要注意的是,linux下删除的文件是无法恢复的,删除前一定要仔细确认。-r:该参数支持目录删除,作用与rmdir命令类似。-f:与-i参数相反,-f表示强制删除8、du、df命令du命令可以显示当前目录占用的磁盘空间,df命令可以显示当前剩余的磁盘空间。如果du命令不加任何参数,那么返回的是整个磁盘的使用情况。如果后面增加了一个目录,就是这个目录在磁盘上的使用情况。du-hs指定目录查看指定目录的总大小du-hs./*查看当前目录下所有文件夹和文件的大小这两个命令支持-k、-m和-h参数,-k和-m同理,两者都代表显示单位,一个是k字节,一个是兆字节,-h代表human-readable,即友好易读的显示方式。9.cat命令cat命令的作用是显示或链接一般的ascii文本文件。cat是concatenate的缩写,类似于dos下的type命令。用法如下:catfile1显示file1的内容catfile1file2依次显示file1和file2的内容catfile1file2>file3合并file1和file2的内容,然后“重定向(>)”到file3。“>”是右重定向符,表示将左边命令的结果作为右边命令的输入。注意:如果右边的文件是一个已经存在的文件,它原来的内容会被清空,成为左边命令的输出。如果要以附加方式写入,请改用“>>”重定向字符。如果“>”左边没有指定文件,如:cat>file1,会等待用户输入,然后在输入后按[Ctrl]+[c]或[Ctrl]+[d]输入完成,用户的输入会写成Enterfile1。10.echo命令echo命令的使用频率不亚于ls和cat,尤其是在shell脚本中。语法:echo[-ne][string]功能:echo将输入的字符串发送到标准输出,输出的字符串之间用空白字符分隔,并在***后面加一个换行符。参数:-n显示字符串时在***处自动换行-e支持以下格式的转义字符,-E不支持以下格式的转义字符/a发出警告音;/b删除前一个字符;/c***不加换行符;/f换行但光标停留在原位置;/n换行并将光标移动到行首;/r移动光标到行首行,但不改变行;/t插入制表符;/v和/f相同;//插入/字符;/nnn插入由nnn(八进制)表示的ASCII字符;示例:Oracle@hjtest:~/hgd>echo"123""456"123456oracle@hjtest:~/hgd>echo"123/n456"123/n456oracle@hjtest:~/hgd>echo-e"123/n456"123456oracle@hjtest:~/hgd>echo-E"123/n456"123/n456oracle@hjtest:~/hgd>echo-E"123///456"123//456oracle@hjtest:~/hgd>echo-e"123///456"123/456oracle@hjtest:~/hgd>echo-e"123/100456"123@456注意:在Linux使用的bash下,单引号''和双引号是有区别的。单引号忽略所有转义,双引号不忽略以下特殊字符:符号($)、反引号(`)、反斜杠(/)、叹号(!)示例如下:oracle@hjtest:~>echo"`TEST`"-bash:TEST:commandnotfoundoracle@hjtest:~>echo'`TEST`'`TEST`oracle@hjtest:~>echo"$TEST"oracle@hjtest:~>echo'$TEST'$TESToracle@hjtest:~>echo"//TEST"/TESToracle@hjtest:~>echo'//TEST'//TESToracle@hjtest:~>echo"你好!"echo"你好"Hellooracle@hjtest:~>echo'你好!'你好!11、more、less、clearmore、less命令用于查看文件。如果文件过长,显示的内容超过一屏,用cat命令只能看到***内容,使用more和less命令可以分页查看。more命令可以暂停显示pages中多页的文件内容,用户按键后继续显示下一页。除了less的more功能外,还可以使用方向键上下滚动文件,浏览阅读更方便。less常用动作命令:回车键下移一行;y向上移动一行;空格键向下滚动一个屏幕;b向上滚动一屏;d向下滚动半屏;h少的帮助;u将屏幕向上移动一半;w可以指定从哪一行开始显示,从指定序号的下一行开始显示;例如指定6,则从第7行开始显示;g跳转到***行;G跳转到***行;pn%跳转到n%,比如10%,也就是说从整个文件内容的10%开始显示;/pattern搜索模式,例如/MAIL表示在文件中搜索单词MAIL;v调用vi编辑器;qexitless!command调用SHELL来运行命令;例如,!ls显示当前目录下的所有文件;nclear命令clear命令用于清除当前屏幕显示,不带任何参数,与dos下的cls命令功能相同。12.head、tailnhead和tail命令都是用来查看文本文件的,区别在于:head显示文件的前n行,tail显示文件的后n行,默认n为10线。行数可以用-n指定,例如:head-100file和tail-100file分别表示显示文件前100行和tail后100行的内容。ntail-f命令可以实时查看文件的新内容。13、wc命令用于统计指定文件的字节数、字数、行数。该命令各选项含义如下:-l统计行数-w统计字数-c统计字节数这些选项可以组合使用。输出列的顺序和数量不受选项顺序和数量的影响。它们总是按照下面描述的顺序显示,并且每个项目最多有一列。Lines,Words,Bytes,Filename如果命令行上没有文件名,则文件名不会出现在输出中。例如:oracle@hjtest:~>wc1.txt2.txt4601679163531.txt3001095106652.txt760277427018totalusageoracle@hjtest:~>wc-l1.txt4601.txt默认参数为-lcw,即wcfile1file2命令的执行结果同上。14、grep命令grep是(globalsearchregularexpression(RE)andprintouttheline)的缩写,用于从文件表面搜索包含指定模式的行并打印出来,是一个强大的文本搜索支持使用正则表达式的工具一个表达式来搜索文本。grep的工作方式是在一个或多个文件中搜索字符串模板。如果模板包含空格,则必须用“”引号,后面的所有字符串模板被认为是文件名。搜索结果被发送到屏幕而不影响原始文件的内容。grep可以在shell脚本中使用,因为grep返回一个状态值来指示搜索的状态,如果模板搜索是成功,则返回0,如果搜索不成功,则返回1,如果搜索到的文件不存在,则返回2。我们可以利用这些返回值进行一些自动化的文本处理。例子:$ls-l|grep'^a'通过管道过滤ls-l的输出,只显示以$开头的内容grep'test'd*显示以d开头的文件中所有包含test的行。$grep'test'aabbcc显示aa、bb、cc文件中匹配测试的行。$grep'[a-z]/{5/}'aa显示所有包含字符串且每个字符串中至少有5个连续小写字符的行。$grep'w/(es/)t.*/1'aa如果匹配到west,则将es存入内存并标记为1,然后搜索任意字符(.*),这些字符后跟另一个es(/1),如果找到该行,将显示该行。如果用egrep或者grep-E,不要用“/”转义,直接写'w(es)t.*/1'即可。15、man、logout命令man命令是manual的缩写,相当于Unix/Linux的联机帮助。每个系统命令和调用都有非常详细的描述,大部分是英文的。例如:manls就是查看ls命令的使用说明。一般还有另外一种查看帮助的方式,比如:ls–help,大多数命令都支持这种方式。logout命令用于退出系统,对应login命令。16、pipeline和xargs管道:使用管道符“|”Linux提供的用来分隔两个命令,管道符左边的命令的输出将作为管道符右边的命令的输入。连续使用管道意味着第一个命令的输出成为第二个命令的输入,第二个命令的输出成为第三个命令的输入,依此类推。注意:管道左侧命令的输入作为管道右侧命令的输入(命令的输入是一定的),不是参数,也不是所有命令都支持管道的例子:ls|grepa查看当前目录下名称中包含a的文件或文件夹xargs:大多数Linux命令输出:文件列表、字符串列表等。但是如果你想使用其他命令并获取前面的输出怎么办命令作为参数?例如,文件命令显示文件类型(可执行文件、ascii文本等);您可以操纵输出,使其仅显示文件名,目前您希望将这些名称传递给ls-l命令以查看时间戳。xargs命令用于完成这项工作。注意:find命令将匹配到的文件传递给xargs命令,与-exec选项不同,xargs命令一次只获取一部分文件而不是全部。这样就可以先处理***得到的一部分文件,再处理下一批,这样继续例:1.在整个系统中找到内存信息转储文件(coredump),然后保存结果到/tmp/的core.log文件中:$find/-name"core"-print|xargsecho"">/tmp/core.log2.当目录下的文件过多时,rm*命令的参数会过长。使用下面的方法可以删除所有的$ls|xargsrm17、基本名称和目录名称。basename用于查看不带路径的文件名,dirname用于查看文件路径。我们来测试一下效果:>basename/home/hj/1.txt1.txt>dirname/home/hj/1.txt/home/hj>basename1.txt1.txt>dirname1.txt.18。不带任何参数的set命令将显示shell的所有变量