2023年7月26日发(作者:)
linux查看⽇志的命令总结命令 less
1)反向查找 定位到⽂件的结尾:shift + G ?关键字 注:反向查找,按shift+n 键,把光标移动到下⼀个符合条件的 2)正向查找 定位到⽂件的开头: /关键字 注:正向查找,按n键把光标移动到下⼀个符合条件的地⽅
-e:⽂件内容显⽰完毕后,⾃动退出;-f:强制显⽰⽂件;-g:不加亮显⽰搜索到的所有关键词,仅显⽰当前显⽰的关键字,以提⾼显⽰速度;-l:搜索时忽略⼤⼩写的差异;-N:每⼀⾏⾏⾸显⽰⾏号;-s:将连续多个空⾏压缩成⼀⾏显⽰;-S:在单⾏显⽰较长的内容,⽽不换⾏显⽰;-x<数字>:将TAB字符显⽰为指定个数的空格字符。Linux查找/定位功能的相关命令:常⽤命令more简要中⽂说明分页显⽰⼀个⽂件或任何输出结果,按q键停⽌显⽰与more命令类似,不同的是less命令除了可以按空less格键向下显⽰⽂件外,还可以利⽤上下键来卷动⽂件,即⽀持反向查询catwhereisfindslocatelocategrepenvwhichapropos显⽰整个⽂件的内容没有翻页功能,因此常和more命令搭配使⽤在特定⽬录中查找符合条件的⽂件适合复杂查询条件的⽂件查找查找⽂档或⽬录通过⽂件名搜索⽂件的⼯具寻找某字串内容⼯具查看环境设置在环境变量$PATH设置的⽬录⾥查找符合条件的⽂件在whatis资料库中搜寻特定字串/bin/usr/bin/usr/bin/usr/bin/usr/bin/bin/usr/bin/bin/usr/bin/usr/bin程序所在⽬录/binmore [⽂件名]more命令的主要作⽤是把输出结果以分页的形式显⽰在屏幕上,⼀页停⽌⼀次,例如⽤ls命令去找⼀个x字母开头的⽂件时,如果ls x*仍列出太多⽂件(超过⼀屏),就可以配合管道符号和more命令:ls x* | more来分页显⽰输出到终端。more命令会⼀屏停⽌⼀下,按空⽩键才会继续显⽰下⼀屏的内容。more就犹如DOS的DIR命令/P选项。也可以⽤more命令分页显⽰⽂章的内容,例如more /etc/XF86Configcat /etc/XF86Config | more但是因为more先天缺陷,如果您看完了这页,想要回头看上⼀页是不⾏的,必须从第⼀页重来,即不⽀持向上翻页。这也是more命令很少被使⽤的原因,因此通常使⽤less命令代替more命令或直接⽤⽂本编辑器查看。less [⽂件名]分页显⽰⼀个⽂件并且可以反向查询less命令的取名很有意思,故意与more命令打对台,你叫”更多”,我就叫”更少”,就好像你叫⿊⼈⽛膏我就叫⽩⼈⽛膏⼀样。事实这些字⾯上是没有意义的。less命令改进的最主要⼀点,就是相对于more命令来说,less命令⽀持反向查看功能(按PgUp键)。typetype命令其实不能算查找命令,它是⽤来区分某个命令的类型是由shell⾃带的(内部命令),还是由shell外部的独⽴⼆进制⽂件(或shell等脚本程序)。如果是外部命令,那么当type命令使⽤-p参数时,输出就会显⽰该命令的路径,相当于which命令。type命令的使⽤实例:123456#
系统会提⽰,cd是shell的⾃带命令(build-in)type cd#
系统会提⽰,grep是⼀个外部命令,并显⽰该命令的路径type grep#
加上-p参数后,就相当于which命令type -p grepwhatis keyword …在whatis数据库中搜寻指定关键字指令。whatis数据库包含了所有系统指令的简单描述 , ⽽whatis指令会在此资料库中搜寻符合keyword的指令 , 并把结果显⽰于standard output(标准输出)。whatis数据库是⽤makewhatis这个指令建⽴的 。另外,whatis命令与apropos命令类似,都是基于whatis数据库查找关键字。whereis 命令/程序名whereis是⼀个⼩巧好⽤的⽂件寻找⼯具,它专门⽤来寻找可执⾏的程序、原始程序和使⽤⼿册。1112语法 :whereis [-bfmsu][-B <⽬录>...][-M <⽬录>...][-S <⽬录>...][⽂件...]补充说明:whereis指令会在特定⽬录中查找符合条件的⽂件。这些⽂件的烈性应属于原始代码,⼆进制⽂件,或是帮助⽂件。参 数: -b 只查找⼆进制⽂件。 -B<⽬录> 只在设置的⽬录下查找⼆进制⽂件。 -f 不显⽰⽂件名前的路径名称。 -m 只查找说明⽂件。 -M<⽬录> 只在设置的⽬录下查找说明⽂件。 -s 只查找源代码⽂件。 -S<⽬录> 只在设置的⽬录下查找原始代码⽂件。 -u 查找不包含指定类型的⽂件。如果省略参数,则返回所有信息。⽐如不知道fdisk命令的存储在哪⾥,就可以⽤whereis fdisk命令查找。如果确定需要查找的是程序,但⽤whereis⼜找不到的话,那就表⽰系统没有安装该程序,如whereis goic。即whereis只能⽤于命令/程序名的搜索,⽽不能搜索普通⽂件。12whereis which# output:which: /bin/which /usr/bin/which /usr/share/man/man1/e命令与whereis类似,但它不会搜索命令/程序的帮助⽂件。12345where which# output: which: shell built-in command /usr/bin/which /bin/whichwhichwhich命令和whatis/whereis命令很相似。123456789语法:which [⽂件...]说明:which命令的作⽤是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第⼀个搜索结果。 也就是说,使⽤which命令,就可以看到某个系统命令是否存在,以及执⾏的到底是哪⼀个位置的命令。⽽whereis列出所 有⼆进制命令和源代码包。参 数: -n<⽂件名长度> 指定⽂件名长度,指定的长度必须⼤于或等于所有⽂件中最长的⽂件名 -p<⽂件名长度> 与-n参数相同,但此处的<⽂件名长度>包括了⽂件的路径 -w 指定输出时栏位的宽度 -V 显⽰版本信息which命令只在$PATH环境变量所设置的查找路径中查找命令。⽐如:1234# which只在$PATH路径中查找并只列出第⼀个(即被执⾏的那个位置上的命令副本)which fdisk # /sbin/fdisk# whereis会查出所有的whereis fdisk # fdisk: /sbin/fdisk /usr/share/man/man8/find是最常见和最强⼤的查找命令,你可以⽤它找到任何你想找的⽂件。它的参数选项⾮常丰富,这也导致了它很难使⽤,但相信当你了解它,它就会成为你最得⼒的助⼿。find的使⽤格式如下: find <指定⽬录> <指定条件> <指定动作> - <指定⽬录>: 所要搜索的⽬录及其所有⼦⽬录。默认为当前⽬录。 - <指定条件>: 所要搜索的⽂件的特征。 - <指定动作>: 对搜索结果进⾏特定的处理。如果什么参数也不加,find默认搜索当前⽬录及其⼦⽬录,并且不过滤任何结果(也就是返回所有⽂件),将它们全都显⽰在屏幕上。使⽤范例如下:搜索当前⽬录(含⼦⽬录,以下同)中,所有⽂件名以my开头的⽂件find . -name 'my*'搜索根⽬录/(含⼦⽬录,以下同)中,所有⽂件名以my*开头的⽂件并打印find / -name my* -print搜索当前⽬录中,所有⽂件名以my开头的⽂件,并显⽰它们的详细信息find . -name 'my*' -ls搜索当前⽬录中,所有过去10分钟中更新过的普通⽂件。如果不加-type f参数,则搜索普通⽂件+特殊⽂件+⽬录find . -type f -mmin -10-print选项是打印输出到终端。它还有其它更复杂的应⽤。例如:12345678#
根据时间查找:从/usr⽬录中找出最近3天之内存取过的⽂件find /usr -atime 3 –print#
根据时间查找:从/usr⽬录中找出最近5天之内修改过的⽂件find /usr -ctime 5 –print
#
从/doc⽬录中找出属主是jacky的并且⽂件名以j开头的所有⽂件find /doc -user jacky -name 'j*' –print
如果只知道某个⽂件的⼤⼩,修改⽇期等特征也可以使⽤”find”命令查找出来,这和WINDOWS系统中的”搜索”功能是基本相同的。例如,⽤9#
从/doc⽬录中找出⽂件名以ja开头或者ma开头的⽂件户可以按名称、类型及⼤⼩搜索⽂件和⽂件夹。⽤户甚⾄可以搜索包含特定⽂本的⽂件。如果⽤户正使⽤ Active Directory,这时还可以搜索10find /doc ( -name 'ja*' -o- -name 'ma*' ) –print11
带有特定名称或位置的打印机。12#
删除/doc⽬录中凡是⽂件名结尾为bak的⽂件。例如有⼀个Linux⽂件⼤⼩为1,500bytes,那么我们可是使⽤如下命令来查询find / -size 1500c,字符c表明这个要查找的⽂件的⼤⼩是以1314# -exec 选项是执⾏的意思,rm 是删除命令,{ } 表⽰⽂件名,“;”是规定的命令结尾find /doc -name '*bak' -exec rm {} ;bytes为单位。如果我们连这个⽂件的具体⼤⼩都不知道,那么在Linux中还可以进⾏模糊查找⽅式来解决。例如我们输⼊find/-size+10000000c这个命令,则标明我们指定系统在根⽬录中查找出⼤于10000000字节的⽂件并显⽰出来。命令中的+是表⽰要求系统只列出⼤于指定⼤⼩的⽂件,⽽使⽤”-”则表⽰要求系统列出⼩于指定⼤⼩的⽂件。下⾯的列表就是在Linux使⽤不同 “find”命令后系统所要作出的查找动作,从中我们很容易看出在Linux中使⽤find命令的⽅式是很多的,find命令查找⽂件只要灵活应⽤,丝毫不⽐在WINDOWS中查找能⼒差。12345678find / -amin -10 #
查找在系统中最后10分钟访问的⽂件
find / -atime -2 #
查找在系统中最后48⼩时访问的⽂件
find / -empty #
查找在系统中为空的⽂件或者⽂件夹
find / -group cat #
查找在系统中属于groupcat的⽂件
find / -mmin -5 #
查找在系统中最后5分钟⾥修改过的⽂件
find / -mtime -1 #查找在系统中最后24⼩时⾥修改过的⽂件
find / -nouser #查找在系统中属于作废⽤户的⽂件
find / -user fred #查找在系统中属于FRED这个⽤户的⽂件下⾯的列表就是对find命令所可以指定⽂件的特征进⾏查找的部分条件。在这⾥并没有列举所有的查找条件,参考有关Linux有关书籍可以知道所有find命令的查找函数。123456789-amin n 查找系统中最后N分钟访问的⽂件
-atime n 查找系统中最后n*24⼩时访问的⽂件
-cmin n 查找系统中最后N分钟被改变状态的⽂件
-ctime n 查找系统中最后n*24⼩时被改变状态的⽂件
-empty 查找系统中空⽩的⽂件,或空⽩的⽂件⽬录,或⽬录中没有⼦⽬录的⽂件夹
-false 查找系统中总是错误的⽂件
-fstype type 查找系统中存在于指定⽂件系统的⽂件,例如:ext2 .
-gid n 查找系统中⽂件数字组 ID 为 n的⽂件
-group gname 查找系统中⽂件属于gnam⽂件组,并且指定组和ID的⽂件find命令的控制选项说明:find命令也提供给⽤户⼀些特有的选项来控制查找***作。下表就是我们总结出的最基本,最常⽤的find命令的控制选项及其⽤法。 选项及⽤途描述:12345678-daystart 测试系统从今天开始24⼩时以内的⽂件,⽤法类似-amin
-depth 使⽤深度级别的查找过程⽅式,在某层指定⽬录中优先查找⽂件内容
-follow 遵循通配符链接⽅式查找; 另外,也可忽略通配符链接⽅式查询
-help 显⽰命令摘要
-maxdepth levels 在某个层次的⽬录中按照递减⽅法查找
-mount 不在⽂件系统⽬录中查找, ⽤法类似 -xdev.
-noleaf 禁⽌在⾮UNUX⽂件系统,MS-DOS系统,CD-ROM⽂件系统中进⾏最优化查找
-version 打印版本数字使⽤-follow选项后,find命令则遵循通配符链接⽅式进⾏查找,除⾮你指定这个选项, 否则⼀般情况下find命令将忽略通配符链接⽅式进⾏⽂件查找。-maxdepth选项的作⽤就是限制find命令在⽬录中按照递减⽅式查找⽂件的时候搜索⽂件超过某个级别或者搜索过多的⽬录,这样导致查找速度变慢,查找花费的时间过多。例如,我们要在当前(.)⽬录及其⼦⽬录中查找⼀个名叫fred的⽂件,⽽不会深⼊到3级⼦⽬录中查找,就可以使⽤命令: find.-maxdepth 2 -namefred如果fred⽂件在./sub1/fred⽬录中,那么这个命令就会直接定位这个⽂件,查找很容易成功。如果这个⽂件在./sub1/sub2/fred⽬录中,那么这个命令就⽆法查找到。因为前⾯已经给find命令在⽬录中最⼤的查询⽬录级别为2,只能查找2层⽬录下的⽂件。这样做的⽬的就是为了让find命令更加精确的定位⽂件,如果你已经知道了某个⽂件⼤概所在的⽂件⽬录级数,那么加⼊-maxdepth n就很快的能在指定⽬录中查找成功。find混合条件查找⽅式find命令可以使⽤混合查找的⽅法,例如我们想在/tmp⽬录中查找⼤于100000000字节并且在48⼩时内修改的某个⽂件,我们可以使⽤-and来把两个查找选项链接起来组合成⼀个混合的查找⽅式:find /tmp -size +10000000c -and -mtime +2学习过计算机语⾔的朋友都知道,在计算机语⾔⾥,使⽤and ,or 分别表⽰”与”和”或”的关系。在Linux系统的查找命令中⼀样通⽤。 还有这样的例⼦, find / -user fred-or-usergeorge,可以解释为在/tmp⽬录中查找属于fred或者george这两个⽤户的⽂件。在find命令中还可以使⽤”⾮”的关系来查找⽂件,如果要在/tmp⽬录中查找所有不属于panda的⽂件,使⽤find /tmp ! -user panda命令就可以解决了。find查找并显⽰⽂件如果想知道查找到的⽂件的详细信息和属性,如果采取先查找⽂件,再使⽤ls命令来查看⽂件信息是相当繁琐的,可以把这两个命令结合起来使⽤:123find/-name""-ls# 系统在查找到⽂件后⽴即在屏幕上显⽰⽂件信息12063 34 -rw-r--r-- 1 root root 33545 Dec 30 15:36 /etc/httpd/conf/下⾯是⼀些常⽤的查找⽂件并显⽰⽂件信息的参数和使⽤⽅法 :1234567-exec command; 查找并执⾏命令
-fprint file 打印⽂件完整⽂件名
-fprint0 file 打印⽂件完整⽂件名包括空的⽂件
-fprintf file format 打印⽂件格式
-ok command; 给⽤户命令执⾏***作,根据⽤户的Y 确认输⼊执⾏
-printf format 打印⽂件格式
-ls 打印同种⽂件格式的⽂件.locate ⽂件名locate命令是通过⽂件名搜索⽂件的⼯具,它的⽤法也⽐较简单。locate命令其实是”find -name”的另⼀种写法,但是要⽐后者快得多,原因在于它不搜索具体⽬录,⽽是搜索⼀个数据库(/var/lib/locatedb),这个数据库中含有所有本地所有⽂件信息。Linux系统⾃动创建这个数据库,并且每天⾃动(cronjob)更新⼀次updatedb索引数据库,所以使⽤locate命令查不到最新变动过的⽂件。为了避免这种情况,可以在使⽤locate之前,先使⽤updatedb命令,⼿动更新数据库。如果新安装了软件或者存储了新⽂件,也要先运⾏updatedb命令,以⽣成最新索引库,然后⽤locate搜索才能反映真实的结果。123456#
⾸先运⾏updatedb建⽴或更新索引数据库updatedb#
要找⽂件都位于哪个位置;locate #
搜索etc⽬录下所有以sh开头的⽂件locate /etc/shslocate(secure locate)71829310456slocate本⾝具备⼀个数据库,⾥⾯存放了系统中⽂档和⽬录的相关信息。slocate命令使⽤该数据库查找⽂档或⽬录。#
搜索⽤户主⽬录下,所有以m开头的⽂件语法:slocate [-u][--help][--version][-d <⽬录>][查找的⽂档]locate ~/m参 数:#
搜索⽤户主⽬录下,所有以m开头的⽂件,并且忽略⼤⼩写 -d<⽬录>或--database=<⽬录> 指定数据库所在的⽬录locate -i ~/m -u 更新slocate数据库 --help 显⽰帮助 --version 显⽰版本信息apropos keyword …apropos会搜寻whatis资料库中符合keyword的描述 , 并把结果显⽰于standard output(终端) 。grep [-选项] [字串] [⽂件名]寻找包含某字串内容的⽂件的⼯具。例如,我们想在⼀个⽬录的200个⽂件⾥⾯,找出哪⼀个⽂件提到”lucky”这个词语:grep lucky *。其他常⽤的选项还有:123-n 同时列出该词语出现在⽂章的第⼏⾏。-c 计算⼀下该字串出现的次数。-i ⽐对的时候,不计较⼤⼩写的不同。下⾯是借助于grep命令写的查找⽂件内容的⼯具grep_for:8293031#!/bin/bash
if [ -z "$1" ]then echo 'Usage: grep_for CONTENT_PATTERN FILENAME_FILTER_PATTERN [OPTION_FOR_GREP]' exit 1fi
content=$1
if [ -z "$2" ]then shiftelse flag=`echo $2 | sed 's/^(.).*$/1/'` if [ "$flag" == "-" ] then shift else filter=$2 shift shift fifi
if [ -z "$filter" ]then find -print0 | grep -zv '.svn' | xargs -0 grep --color $content $@else find -print0 | grep -zv '.svn' | grep -z $filter | xargs -0 grep --color $content $@fi将该脚本移动到相应的⽬录就可以使⽤了,例如:cd /usr/local/binsudo mv ~/workspace/grep_for .sudo chmod 755 grep_for
#usagegrep_for rubyenv查看环境设置env命令⽤于设置系统的环境变量,如终端的类型(bash、sh、zsh等)、默认浏览器、⽤户主⽬录(Home Directory)等。最常⽤的就是查询PATH环境变量值了。PATH环境变量控制了在哪些⽬录中查找在终端输⼊命令,默认的命令查找顺序是:123456/usr/bin/sbin/usr/sbin/usr/local/bin/usr/X11R6/bin/root/bin你可以在~/.bashrc或~/.profile(当前⽤户)或/etc/profile(全局)⽬录中重新设置PATH变量,添加⾃定义查找路径:123export ANDROID=~/mobile-dev/android/toolsexport PATH=/usr/local/git/bin:/usr/local/git/libexec/git-core:$ANDROID:$ANT_HOME/bin:$PATHexport MANPATH=/usr/local/git/manual:$MANPATH也可以使⽤env命令重新设置PATH变量,如果想在查找命令的路径上增加/usr/local/myshell⽬录,⽽把/root/bin去掉:1env PATH=/usr/bin;/usr/sbin;/usr/local/bin;/usr/local/shell - Receive email and SMS alerts anytime your web site goes down
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1690360028a337642.html
评论列表(0条)