zoukankan      html  css  js  c++  java
  • linux 查看命令

    linux查找命令

    ls查看文件信息

    ​ 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)�查看目录信息等等

    ​ 常用参数搭配:

    ​ ls -a 列出目录所有文件,包含以.开始的隐藏文件

    ​ ls -A 列出除.及..的其它文件

    ​ ls -r 反序排列

    ​ ls -t 以文件修改时间排序

    ​ ls -S 以文件大小排序

    ​ ls -h 以易读大小显示

    ​ ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来

    ​ 实例:

    ​ (1) 按易读方式按时间反序排序,并显示文件详细信息

    ​ ls -lhrt

    ​ (2) 按大小反序显示文件详细信息

    ​ ls -lrS

    ​ (3)列出当前目录中所有以“t”开头的目录的详细内容

    ​ ls -l t*

    ​ (4) 列出文件绝对路径(不包含隐藏文件)

    ​ ls | sed "s:^:pwd/:"

    ​ (5) 列出文件绝对路径(包含隐藏文件)

    ​ find $pwd -maxdepth 1 | xargs ls -ld

    pwd查看当前工作目录

    ​ 查看当前工作目录路径

    ​ 实例:

    ​ (1)查看当前路径

    ​ pwd

    ​ (2)查看软链接的实际路径

    ​ pwd -P

    find 搜索文件

    用于在文件树中查找文件,并作出相应的处理

    ​ 命令格式:

    ​ find pathname -options [-print -exec -ok ...]

    ​ 命令参数:

    ​ pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。

    ​ -print: find命令将匹配的文件输出到标准输出。

    ​ -exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } ;,注意{ }和;之间的空格。

    ​ -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

    ​ 命令选项:

    ​ -name 按照文件名查找文件

    ​ -perm 按文件权限查找文件

    ​ -user 按文件属主查找文件

    ​ -group 按照文件所属的组来查找文件。

    ​ -type 查找某一类型的文件,诸如:

    ​ b - 块设备文件

    ​ d - 目录

    ​ c - 字符设备文件

    ​ l - 符号链接文件

    ​ p - 管道文件

    ​ f - 普通文件

    ​ -size n :[c] 查找文件长度为n块文件,带有c时表文件字节大小

    ​ -amin n 查找系统中最后N分钟访问的文件

    ​ -atime n 查找系统中最后n*24小时访问的文件

    ​ -cmin n 查找系统中最后N分钟被改变文件状态的文件

    ​ -ctime n 查找系统中最后n*24小时被改变文件状态的文件

    ​ -mmin n 查找系统中最后N分钟被改变文件数据的文件

    ​ -mtime n 查找系统中最后n*24小时被改变文件数据的文件

    ​ (用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。 )

    ​ -maxdepth n 最大查找目录深度

    ​ -prune选项来指出需要忽略的目录。在使用-prune选项时要当心,因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略

    ​ -newer 如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项

    ​ 实例:

    ​ (1)查找48小时内修改过的文件

    ​ find -atime -2

    ​ (2)在当前目录查找 以.log结尾的文件。 ". "代表当前目录

    ​ find ./ -name '*.log'

    ​ (3)查找/opt目录下 权限为 777的文件

    ​ find /opt -perm 777

    ​ (4)查找大于1K的文件

    ​ find -size +1000c

    ​ find -size 1000c 查找等于1000字符的文件

    ​ -exec 参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。{} 花括号代表前面find查找出来的文件名。

    ​ 实例:

    ​ (5)在当前目录中查找更改时间在10日以前的文件并删除它们(无提醒)

    ​ find . -type f -mtime +10 -exec rm -f {} ;

    ​ (6)当前目录中查找所有文件名以.log结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。 按y键删除文件,按n键不删除

    ​ find . -name '*.log' mtime +5 -ok -exec rm {} ;

    ​ (7)当前目录下查找文件名以passwd开头,内容包含"pkg"字符的文件

    ​ find . -f -name 'passwd*' -exec grep "pkg" {} ;

    ​ (8)用exec选项执行cp命令

    ​ find . -name '*.log' -exec cp {} test3 ;

    ​ -xargs find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。

    ​ 实例:

    ​ (9)查找当前目录下每个普通文件,然后使用xargs来判断文件类型

    ​ find . -type f -print | xargs file

    ​ (10)查找当前目录下所有以js结尾的并且其中包含'editor'字符的普通文件

    ​ find . -type f -name "*.js" -exec grep -lF 'ueditor' {} ;

    ​ find -type f -name '*.js' | xargs grep -lF 'editor'

    ​ (11)利用xargs执行mv命令

    ​ find . -name "*.log" | xargs -i mv {} test4

    ​ (12)用grep命令在当前目录下的所有普通文件中搜索hostnames这个词,并标出所在行

    ​ find . -name *(转义) -type f -print | xargs grep -n 'hostnames'

    ​ (13)查找当前目录中以一个小写字母开头,最后是4到9加上.log结束的文件

    ​ find . -name '[a-z]*[4-9].log' -print

    ​ (14)在test目录查找不在test4子目录查找

    ​ find test -path 'test/test4' -prune -o -print

    ​ (15)实例1:查找更改时间比文件log2012.log新但比文件log2017.log旧的文件

    ​ find -newer log2012.log ! -newer log2017.log

    ​ 使用depth选项:

    ​ depth选项可以使find命令向磁带上备份文件系统时,希望首先备份所有的文件,其次再备份子目录中的文件。

    ​ 实例:find命令从文件系统的根目录开始,查找一个名为CON.FILE的文件。 它将首先匹配所有的文件然后再进入子目录中查找

    ​ find / -name "CON.FILE" -depth -print

    grep 文本搜索命令

    ​ 强大的文本搜索命令,grep(Global Regular Expression Print)全局正则表达式搜索

    ​ grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。

    ​ 命令格式:

    ​ grep [option] pattern file|dir

    ​ 常用参数:

    ​ -A n --after-context显示匹配字符后n行

    ​ -B n --before-context显示匹配字符前n行

    ​ -C n --context 显示匹配字符前后n行

    ​ -c --count 计算符合样式的列数

    ​ -i 忽略大小写

    ​ -l 只列出文件内容符合指定的样式的文件名称

    ​ -f 从文件中读取关键词

    ​ -n 显示匹配内容的所在文件中行数

    ​ -R 递归查找文件夹

    ​ grep的规则表达式:

    ​ ^ #锚定行的开始 如:'^grep'匹配所有以grep开头的行。

    ​ $ #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。

    ​ . #匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。

    ​ * #匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。

    ​ .* #一起用代表任意字符。

    ​ [] #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。

    ​ [^] #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。

    ​ (..) #标记匹配字符,如'(love)',love被标记为1。

    ​ < #锚定单词的开始,如:'<grep'匹配包含以grep开头的单词的行。

    ​ > #锚定单词的结束,如'grep>'匹配包含以grep结尾的单词的行。

    ​ x{m} #重复字符x,m次,如:'0{5}'匹配包含5个o的行。

    ​ x{m,} #重复字符x,至少m次,如:'o{5,}'匹配至少有5个o的行。

    ​ x{m,n} #重复字符x,至少m次,不多于n次,如:'o{5,10}'匹配5--10个o的行。

    ​ w #匹配文字和数字字符,也就是[A-Za-z0-9],如:'Gw*p'匹配以G后跟零个或多个文字或数字字符,然后是p。

    ​ W #w的反置形式,匹配一个或多个非单词字符,如点号句号等。

    ​  #单词锁定符,如: 'grep'只匹配grep。

    ​ 实例:

    ​ (1)查找指定进程

    ​ ps -ef | grep svn

    ​ (2)查找指定进程个数

    ​ ps -ef | grep svn -c

    ​ (3)从文件中读取关键词

    ​ cat test1.txt | grep -f key.log

    ​ (4)从文件夹中递归查找以grep开头的行,并只列出文件

    ​ grep -lR '^grep' /tmp

    ​ (5)查找非x开关的行内容

    ​ grep '[x]' test.txt

    ​ (6)显示包含ed或者at字符的内容行

    ​ grep -E 'ed|at' test.txt

    cat命令 more less head tail

    1.cat

    ​ cat主要有三大功能:

    ​ 1.一次显示整个文件:cat filename

    ​ 2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.

    ​ 3.将几个文件合并为一个文件:cat file1 file2 > file

    ​ -b对非空输出行号

    ​ -n输出所有行号

    ​ 实例:

    ​ (1)把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里

    ​ cat -n log2012.log log2013.log

    ​ (2)把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里

    ​ cat -b log2012.log log2013.log log.log

    ​ (3)使用here doc生成新文件

    ​ cat >log.txt <<EOF

    ​ >Hello

    ​ >World

    ​ >PWD=$(pwd)

    ​ >EOF

    ​ ls -l log.txt

    ​ cat log.txt

    ​ Hello

    ​ World

    ​ PWD=/opt/soft/test

    ​ (4)反向列示

    ​ tac log.txt

    ​ PWD=/opt/soft/test

    ​ World

    ​ Hello

    2.more命令

    ​ 功能类似于cat, more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示

    ​ ->>命令参数:

    ​ +n 从笫n行开始显示

    ​ -n 定义屏幕大小为n行

    ​ +/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示

    ​ -c 从顶部清屏,然后显示

    ​ -d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能

    ​ -l 忽略Ctrl+l(换页)字符

    ​ -p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似

    ​ -s 把连续的多个空行显示为一行

    ​ -u 把文件内容中的下画线去掉

    ​ ->>常用操作命令:

    ​ Enter 向下n行,需要定义。默认为1行

    ​ Ctrl+F 向下滚动一屏

    ​ 空格键 向下滚动一屏

    ​ Ctrl+B 返回上一屏

    ​ = 输出当前行的行号

    ​ :f 输出文件名和当前行的行号

    ​ V 调用vi编辑器

    ​ !命令 调用Shell,并执行命令

    ​ q 退出more

    ​ 实例:

    ​ (1)显示文件中从第3行起的内容

    ​ more +3 text.txt

    ​ (2)在所列出文件目录详细信息,借助管道使每次显示5行

    ​ ls -l | more -5

    ​ 按空格显示下5行

    3.less

    less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

    ​ 常用命令参数

    ​ -i 忽略搜索时的大小写

    ​ -N 显示每行的行号

    ​ -o <文件名> 将less 输出的内容在指定文件中保存起来

    ​ -s 显示连续空行为一行

    ​ /字符串:向下搜索“字符串”的功能

    ​ ?字符串:向上搜索“字符串”的功能

    ​ n:重复前一个搜索(与 / 或 ? 有关)

    ​ N:反向重复前一个搜索(与 / 或 ? 有关)

    ​ -x <数字> 将“tab”键显示为规定的数字空格

    ​ b 向后翻一页

    ​ d 向后翻半页

    ​ h 显示帮助界面

    ​ Q 退出less 命令

    ​ u 向前滚动半页

    ​ y 向前滚动一行

    ​ 空格键 滚动一行

    ​ 回车键 滚动一页

    ​ [pagedown]: 向下翻动一页

    ​ [pageup]: 向上翻动一页

    ​ 实例:

    ​ (1)ps查看进程信息并通过less分页显示

    ​ ps -aux | less -N

    ​ (2)查看多个文件

    ​ less 1.log 2.log

    ​ 可以使用n查看下一个,使用p查看前一个

    4. head

    ​ head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

    ​ 常用参数:

    ​ -n<行数> 显示的行数(行数为复数表示从最后向前数)

    ​ 实例:

    ​ (1)显示1.log文件中前20行

    ​ head 1.log -n 20

    ​ (2)显示1.log文件前20字节

    ​ head -c 20 log2014.log

    ​ (3)显示t.log最后10行

    ​ head -n -10 t.log

    5.tail 显示指定文件末尾内容

    ​ 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

    ​ 常用参数:

    ​ -f 循环读取(常用于查看递增的日志文件)

    ​ -n<行数> 显示行数(从后向前)

    ​ (1)循环读取逐渐增加的文件内容

    ​ ping 127.0.0.1 > ping.log &(后台运行:可使用jobs -l查看,也可使用fg将其移到前台运行)

    ​ tail -f ping.log(查看日志)

    ps 查看进程

    ​ ps(process status),用来查看当前运行的进程状态,一次性查看,如果需要动态连续结果使用top

    ​ linux上进程有5种状态:

    ​ 1. 运行(正在运行或在运行队列中等待)

    ​ 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)

    ​ 3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)

    ​ 4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)

    ​ 5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

    ​ ps工具标识进程的5种状态码:

    ​ D 不可中断 uninterruptible sleep (usually IO)

    ​ R 运行 runnable (on run queue)

    ​ S 中断 sleeping

    ​ T 停止 traced or stopped

    ​ Z 僵死 a defunct (”zombie”) process

    ​ 命令参数:

    ​ -A 显示所有进程

    ​ a 显示所有进程

    ​ -a 显示同一终端下所有进程

    ​ c 显示进程真实名称

    ​ e 显示环境变量

    ​ f 显示进程间的关系

    ​ r 显示当前终端运行的进程

    ​ -aux 显示所有包含其它使用的进程

    ​ 实例:

    ​ (1)显示当前所有进程环境变量及进程间关系

    ​ ps -ef

    ​ (2)显示当前所有进程

    ​ ps -A

    ​ (3)与grep联用查找某进程

    ​ ps -aux | grep apache

    ​ (4)找出与 cron 与 syslog 这两个服务有关的 PID 号码

    ​ ps aux | grep '(cron|syslog)'

    22、du 查看使用空间

    ​ du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看

    ​ 命令格式:

    ​ du [选项][文件]

    ​ 常用参数:

    ​ -a 显示目录中所有文件大小

    ​ -k 以KB为单位显示文件大小

    ​ -m 以MB为单位显示文件大小

    ​ -g 以GB为单位显示文件大小

    ​ -h 以易读方式显示文件大小

    ​ -s 仅显示总计

    ​ -c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和

    ​ 实例:

    ​ (1)以易读方式显示文件夹内及子文件夹大小

    ​ du -h scf/

    ​ (2)以易读方式显示文件夹内所有文件大小

    ​ du -ah scf/

    ​ (3)显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和

    ​ du -hc test/ scf/

    ​ (4)输出当前目录下各个子目录所使用的空间

    ​ du -hc --max-depth=1 scf/

    df 显示磁盘空间

    ​ 显示磁盘空间使用情况。获取硬盘被占用了多少空间,目前还剩下多少空间等信息,如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以 1KB 为单位进行显示,除非环境变量 POSIXLY_CORRECT 被指定,那样将以512字节为单位进行显示

    ​ -a 全部文件系统列表

    ​ -h 以方便阅读的方式显示信息

    ​ -i 显示inode信息

    ​ -k 区块为1024字节

    ​ -l 只显示本地磁盘

    ​ -T 列出文件系统类型

    ​ 实例:

    ​ (1)显示磁盘使用情况

    ​ df -l

    ​ (2)以易读方式列出所有文件系统及其类型

    ​ df -haT

    top 正执行的进程

    ​ 显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等

    ​ 常用参数:

    ​ -c 显示完整的进程命令

    ​ -s 保密模式

    ​ -p <进程号> 指定进程显示

    ​ -n <次数>循环显示次数

    ​ 实例:

    ​ (1)

    ​ top - 14:06:23 up 70 days, 16:44, 2 users, load average: 1.25, 1.32, 1.35

    ​ Tasks: 206 total, 1 running, 205 sleeping, 0 stopped, 0 zombie

    ​ Cpu(s): 5.9%us, 3.4%sy, 0.0%ni, 90.4%id, 0.0%wa, 0.0%hi, 0.2%si, 0.0%st

    ​ Mem: 32949016k total, 14411180k used, 18537836k free, 169884k buffers

    ​ Swap: 32764556k total, 0k used, 32764556k free, 3612636k cached

    ​ PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

    ​ 28894 root 22 0 1501m 405m 10m S 52.2 1.3 2534:16 java

    ​ 前五行是当前系统情况整体的统计信息区,

    ​ 第一行,任务队列信息,同 uptime 命令的执行结果,具体参数说明情况如下:

    ​ 14:06:23 — 当前系统时间

    ​ up 70 days, 16:44 — 系统已经运行了70天16小时44分钟(在这期间系统没有重启过的吆!)

    ​ 2 users — 当前有2个用户登录系统

    ​ load average: 1.15, 1.42, 1.44 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。

    ​ load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

    ​ 第二行,Tasks — 任务(进程),具体信息说明如下:

    ​ 系统现在共有206个进程,其中处于运行中的有1个,205个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

    ​ 第三行,cpu状态信息,具体属性说明如下:

    ​ 5.9%us — 用户空间占用CPU的百分比。

    ​ 3.4% sy — 内核空间占用CPU的百分比。

    ​ 0.0% ni — 改变过优先级的进程占用CPU的百分比

    ​ 90.4% id — 空闲CPU百分比

    ​ 0.0% wa — IO等待占用CPU的百分比

    ​ 0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比

    ​ 0.2% si — 软中断(Software Interrupts)占用CPU的百分比

    ​ 备注:在这里CPU的使用比率和windows概念不同,需要理解linux系统用户空间和内核空间的相关知识!

    ​ 第四行,内存状态,具体信息如下:

    ​ 32949016k total — 物理内存总量(32GB)

    ​ 14411180k used — 使用中的内存总量(14GB)

    ​ 18537836k free — 空闲内存总量(18GB)

    ​ 169884k buffers — 缓存的内存量 (169M)

    ​ 第五行,swap交换分区信息,具体信息说明如下:

    ​ 32764556k total — 交换区总量(32GB)

    ​ 0k used — 使用的交换区总量(0K)

    ​ 32764556k free — 空闲交换区总量(32GB)

    ​ 3612636k cached — 缓冲的交换区总量(3.6GB)

    ​ 第六行,空行。

    ​ 第七行以下:各进程(任务)的状态监控,项目列信息说明如下:

    ​ PID — 进程id

    ​ USER — 进程所有者

    ​ PR — 进程优先级

    ​ NI — nice值。负值表示高优先级,正值表示低优先级

    ​ VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

    ​ RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

    ​ SHR — 共享内存大小,单位kb

    ​ S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

    ​ %CPU — 上次更新到现在的CPU时间占用百分比

    ​ %MEM — 进程使用的物理内存百分比

    ​ TIME+ — 进程使用的CPU时间总计,单位1/100秒

    ​ COMMAND — 进程名称(命令名/命令行)

    ​ top交互命令

    ​ h 显示top交互命令帮助信息

    ​ c 切换显示命令名称和完整命令行

    ​ m 以内存使用率排序

    ​ P 根据CPU使用百分比大小进行排序

    ​ T 根据时间/累计时间进行排序

    ​ W 将当前设置写入~/.toprc文件中

    ​ o或者O 改变显示项目的顺序

    free 显示内存使用情况

    ​ 显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。

    ​ 命令参数:

    ​ -b 以Byte显示内存使用情况

    ​ -k 以kb为单位显示内存使用情况

    ​ -m 以mb为单位显示内存使用情况

    ​ -g 以gb为单位显示内存使用情况

    ​ -s<间隔秒数> 持续显示内存

    ​ -t 显示内存使用总合

    ​ 实例:

    ​ (1)显示内存使用情况

    ​ free

    ​ free -k

    ​ free -m

    ​ (2)以总和的形式显示内存的使用信息

    ​ free -t

    ​ (3)周期性查询内存使用情况

    ​ free -s 10

  • 相关阅读:
    二分图最大匹配的K&#246;nig定理及其证明
    HDOJ 2389 Rain on your Parade
    HDOJ 1083 Courses
    HDOJ 2063 过山车
    POJ 1469 COURSES
    UESTC 1817 Complete Building the Houses
    POJ 3464 ACM Computer Factory
    POJ 1459 Power Network
    HDOJ 1532 Drainage Ditches
    HDU 1017 A Mathematical Curiosity
  • 原文地址:https://www.cnblogs.com/yuncong/p/10247579.html
Copyright © 2011-2022 走看看