Linux里必须掌握的命令
Linux里必须掌握的命令 --------------------grep------------------------工作方式:在一个或多个文件中搜索字符串模板,若模板包括空格,则必须被引用模板后的所有字符串被看作文件名,不影响原文件内容常用参数:-a:将二进制文件以text文件的形式查找数据-c:计算找到的字符串模板的次数,不会输出与字符串模板符合的那一行内容,仅输出次数-i:忽略大小写-n:输出时将行号一起输出-v:反向选择,将没有字符串模板的那一行输出--color=auto:将搜索到的字符串模板部分加上颜色(一般为默认,无需设置)精确查找: 在字符串模板后面加上"\>"就可以让字符串的查找更精确,如:要查找"546",如果还存在"5462"、"5468",那么执行命令grep "546"就会将"5462"和"5468"都找出来,但是我们只想要"546",这个时候就可以这样grep "546\>"。 -----------------sed---------------------------工作方式:以行为单位,对数据的每一行进行替换、删除、新增、选取等操作,不能对单行进行操作常用参数:-n:安静模式,当要求把选取的特定行打印出来时,就会使用这个参数,保证不会重复输出特定行,如果不加这个参数,一般是将每行重复输出两次再输出下一特定行-f:直接将sed的动作写入一个文件内,加上-f filename时就可以执行filename中的sed动作,注意:filename中不能加单引号或双引号,如果动作本来是'2a Hello',则在filename中应该只写上2a Hello,什么都不要加-r:可以让sed的操作支持扩展正则表达式(sed默认是基础正则表达式)-i:直接修改读取的文件内容,不会由屏幕输出(危险!!!虽然貌似sed可以做vim的一些动作了) -----------------awk------------------------------工作方式:相比于sed处理一行一行的数据,awk处理的是一行中的各个字段的处理,它的每一个动作用"{}"包含,同样所有动作都要放在一对单引号中,这样的话它的动作里不允许再出现单引号,只能用双引号代替,它的默认字段分隔符为空格或制表键注意它与grep、sed的比较!!!常用功能:NF:每一行拥有的字段总数,可用print直接打印NR:当前处理的行号,也可用print直接打印FS:当前的分隔符,默认为空格或制表键,设置方法"BEGIN {FS=":"}",这样就可以以冒号为字段分隔符了,分为$1,$2,$3......,在/etc/passwd文件中比较有用awk支持条件判断 -----------------sort------------------------工作方式:根据选定的排序方式对整个文件数据进行排序输出,可以字母、数字、一定区间内的排序输出,还可以反向输出常用参数:-f:忽视大小写(和grep的-i参数功能一样,为什么同样的功能,参数要整得不一样唉)-b:忽视每行开头的空格符,b可以记为blank,-b就减掉blank-M:以月份的名字来排序,在浏览文件的时候就可以用这个参数来按时间排序输出-n:以数字排序(默认为文字类型排序),n可以记为number-r:反序并输出,r可以记为reverse-u:uniq命令的功能,将重复行输出一行即可-t:分隔符(默认为tab键),修改方法-t ':',这样就可以改为以冒号来分隔了,在/etc/passwd有用,和awk的FS设置类似-k:以哪一个区间来进行排序,通常结合-t,当需要被排序的内容是以tab键来分隔的就不提了,若是想/etc/passwd以冒号分隔的话,就需要用-t来修改分隔符,然后-k再加要被作为排序标准的字段符 -----------------wc-------------------------工作方式:将整个文件的字数、行数、字符数进行统计,当然也可以用grep或sed提出特定行来统计特定行的字数等常用参数:-l:仅列出行数,line-w:仅列出字数(单词数),word-m:仅列出字符数(是不是该用-c,和wc、characterize对应嘛。。。)如果只是执行wc而不加上任何参数,那么将会列出所有信息,依次为:行数、字数、字符数 ----------------find-----------------------工作方式:在整个磁盘中直接查找符合条件的文件,如果磁盘过大的话,会耗费很多时间,还有一种查找文件的命令:whereis,它会在系统提供的数据库中查找文件,速度很快,但是系统数据库一般是不会及时更新的,所以要查找最新的文件时,要先执行updatedb,否则将不会找到文件(不过更新数据库应该会很耗时吧。。。)常用参数:『-atime:按照文件被读取的时间来查找-mtime:按照文件内容被修改的时间来查找-ctime:按照文件权限和属性白修改的时间按来查找上面三个参数为时间参数,后面加上数字才行,如:-atime n:在n天之前“一天内”被读取过的文件,第n天前到第n+1天的一天的时间-atime -n:在n天之内(含n天)被读取过的文件,从现在到第n天前的所有时间-atime +n:在n天之前(不含n天)被读取过的文件,就是减去上面两个时间段的剩下的时间还有一个时间参数:-newer file:file为一个已存在的文件,顾名思义,查找比file要新的文件』『和用户/用户组有关的参数:-uid n:用户ID为n的文件-gid n:用户组ID为n的文件-user name:用户帐号为name的文件-group name:用户组帐号为name的文件-nouser:所有者不再/etc/passwd中的文件,可以找到一些异常文件-nogroup:所属用户组不存在的文件』『和文件权限及名称有关的参数:-name filename:名为filename的文件-size [+-]SIZE:查找比SIZE要大(+)或小(-)的文件,单位有c(字节)、k(1024字节)-type TYPE:查找TYPE类型的文件,类型就是表示权限的第一个字符,常见的有d,-,l...-perm [+-]mode:利用权限来查找,mode表示权限必须刚好相等,+mode表示包含任一(3个一组)权限即可,-mode表示必须全部包含mode的权限(貌似不怎么好记。。)』『扩展参数:-exec command:exec后面接命令,这个命令可以对find到的结果进行处理,听着有点儿类似于管道命令啊,但是它后面接的命令的形式比较固定,假如我们找到了名为file的文件,我们想要利用exec来浏览这个文件内容,这个时候必须这么写命令:[html]$ find -name file -exec cat {} \; {}表示查找到的内容,\是用来消除;在命令中的特殊意义的,它代表exec执行到;结束-print:默认的操作,不用加上。。。』『 等等,find还有一个特殊功能,就是通过inode号码查找文件,这个功能可以解决一个文件名里带来空格的文件的删除,如Hello World文件名,如果用rm的话,它会将这个文件误认为两个文件而不停的报错,这个时候就需要找到这个文件的inode号码,利用find的扩展参数来删除它,命令如下:[html] $ ls -i | grep 'Hello World' 假如查到inode为142542的话,进行下一个命令:[html]$ find -inum 142542 -exec rm {} \; 带有空格的文件名的文件就会被删除了。』 ----------------------tar---------------------------工作方式:对文件或目录进行压缩,查看压缩包内容,对压缩包的一个或全部的文件进行解压,这个完全可以和winRAR对照理解。这只是一个最常用的压缩命令之一,通常,以这个命令进行压缩的文件命名为*.tar.bz2最好,利于区别于其他其他压缩命令产生的压缩包常用参数:-c:新建压缩文件-t:查看压缩文件中的文件名-x:解压文件,搭配-C在特定的目录中解压-j:通过bzip2进行压缩/解压,最好命名为*.tar.bz2-z:通过gzip进行压缩/解压,最好命名为*.tar.gz-v:压缩/解压中显示正在压缩的文件名-f filename:filename为要被处理的文件(每个tar命令都要加上这个参数才行的!!!)-C direction:前面提过,可在特定的direction中解压-p:允许备份数据中含有根目录(小写)-P:保留文件权限和属性(大写)注意:tar有三个功能:解压、压缩、查看压缩文件,这三个功能不能同时进行,也就是说-c、-t、-x不同一起出现在同一个命令参数中(利用这个删除命令可以将练习的压缩包、解压的目录等删除:rm -r filename,当然也可以删除目录,由于解压文件中含有目录时,可能用rmdir不好使,因为目录应该还会有东西) --------------chmod----------------------------工作方式:修改文件或目录的权限(在Linux中极其重要滴!!)常用参数:-R:递归性的持续修改,当你想要把一个目录下的所有目录或文件一起修改权限时,这个参数就很有用了(这个参数在chown、chgrp中也有类似的功能,chmod与这两个在系统安全上很重要)具体修改权限的方法:(1)利用rwx直接修改:"u=rwx,g=rx,o=rx"或"a+x".......(2)利用数字修改:"777"或"644"等等 ---------------netstat--------------------工作方式:用于网络监控,输出网络和系统自己的进程两部分常用参数:-a:all的意思,也就是把所有的连接、监听、socket数据都列出来-t:列出tcp网络数据包的数据-u:列出udp网络数据包的数据-n:以端口号代替进程的服务名称显示-l:列出目前正在网络监听的服务-p:列出该网络服务的进程PID --------------ln----------------工作方式:建立与已有文件或目录的连接,分软连接和硬连接两种,软连接类似于Windows下的快捷方式,只保存一个源文件的指向,占用空间小,硬连接是通过文件系统的inode连接来产生新文件名,不会产生新文件,两个文件同步,权限、属性神马的全一样。常用参数:-s:创建软连接(默认为硬连接)-f:如果目标文件存在时,就主动将目标文件直接删除后再创建 ----------------kill----------------工作方式:杀掉后台进程,先执行jobs命令,根据第一列显示的数字来杀掉进程,如:kill -9 %2,就会强制终止第二个进程。常用参数: -l:字母l,显示可以使用的信号,和下面的数字参数有关-2:与[ctrl+c]等效-9:立刻强制删除一个工作-15:以正常的程序方式终止一项工作,是正常终止,与-9不同滴 ----------------ps-------------------工作方式:查询系统正在运行的进程,比jobs命令显示得更全面常用查询:ps -l:查看与自己相关的bash的进程ps aux:查看所有系统运行的程序作者 fengxiaoke_fxk