Linux面试——常用指令

1、find指令

详见:https://man.linuxde.net/find

  • 查找指定文件名的文件(不区分大小写):find -iname "MyProgram.c"
  • 对找到的文件执行某个命令:find -iname "MyProgram.c" -exec md5sum {} \;
  • 查找 home 目录下的所有空文件:find ~ -empty

? 【常用】如何在 /usr 目录下找出大小超过 10MB 的文件?

  • 输入命令 find /usr -type f -size +10240k 命令。

  • 输出结果如下:

    /usr/lib/locale/locale-archive
    /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/jre/lib/amd64/server/classes.jsa
    /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/jre/lib/amd64/server/libjvm.so
    /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/jre/lib/rt.jar
    
    // ... 省略
    
    

? 如何在 /var 目录下找出 90 天之内未被访问过的文件?

  • 输入命令:find /var \! -atime -90

? 如何在 /home 目录下找出 120 天之前被修改过的文件?

  • 输入命令:find /home -mtime +120

? 在整个目录树下查找文件 “core” ,如发现则无需提示直接删除它们?

  • 输入命令:find / -name core -exec rm {} \;

2、du指令

    显示文件或目录所占用的磁盘空间。

     命令格式:

     du [option] 文件/目录

     -h 输出文件系统分区使用的情况,例如:10KB,10MB,10GB等

      -s 显示文件或整个目录的大小,默认单位是KB

      显示当前目录的大小:

      

       显示某个目录或文件的大小:

      

      显示当前目录下所有文件的大小:

      

      包括当前目录下的文件和子目录。

      写法的区别:

       du -sh xxx  显示总目录的大小,但是不会列出目录中的每一个文件

       du -sh xxx/*  列出xxx下每个目录和文件所占的容量

       查找Linux系统中的占用磁盘空间最大的前10个文件或文件夹  

du -hsx * | sort -rh | head -10

 3、ls指令

《Linux 命令大全 —— ls 命令》

  • 以易读的方式显示文件大小(显示为 MB,GB…):ls -lh
  • 以最后修改时间升序列出文件:ls -ltr
  • 在文件名后面显示文件类型:ls -F

4、Linux下查看系统中占用内存和CPU最多的进程

1)linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合:

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head

2)linux下获取占用内存资源最多的10个进程,可以使用如下命令组合:

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head

或者top (然后按下M,注意这里是大写)(内存)

或者top (然后按下P,注意这里是大写)(CPU)

其中第一句主要是为了获取标题(USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND)

接下来的grep -v PID是将ps aux命令得到的标题去掉,即grep不包含PID这三个字母组合的行,再将其中结果使用sort排序。

sort -rn -k +3该命令中的-rn的r表示是结果倒序排列,n为以数值大小排序,而-k +3则是针对第3列的内容进行排序,再使用head命令获取默认前10行数据。(其中的|表示管道操作)  

补充:内容解释

  • PID:进程的ID
  • USER:进程所有者
  • PR:进程的优先级别,越小越优先被执行
  • NInice:值
  • VIRT:进程占用的虚拟内存
  • RES:进程占用的物理内存
  • SHR:进程使用的共享内存
  • S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
  • %CPU:进程占用CPU的使用率
  • %MEM:进程使用的物理内存和总内存的百分比
  • TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
  • COMMAND:进程启动命令名称

5、less 命令

《Linux 命令大全 —— less 命令》

  • 这个命名可以在不加载整个文件的前提下显示文件内容,在查看大型日志文件的时候这个命令会非常有用:less huge-log-file.log

  • 当你用 less 命令打开某个文件时,下面两个按键会给你带来很多帮助,他们用于向前和向后滚屏:

    CTRL+F – forward one window
    CTRL+B – backward one window
    
    

通用命令

1、grep

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

       grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。

        grep 可用于 shell 脚本,因为 grep 通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回 0,如果搜索不成功,则返回 1,如果搜索的文件不存在,则返回 2。我们利用这些返回值就可进行一些自动化的文本处理工作。

(1)命令格式

         grep [选项] pattern [file]

(2)常用参数
参数     描述
-c     计算找到 '搜寻字符串'(即 pattern) 的次数
-i     忽略大小写的不同,所以大小写视为相同
-n     输出行号
-v     反向选择,打印不匹配的行
-r     递归搜索
--color=auto     将找到的关键词部分加上颜色显示

pattern正则表达式主要参数:
    \: 忽略正则表达式中特殊字符的原有含义。
    ^:匹配正则表达式的开始行。
    $: 匹配正则表达式的结束行。
    \<:从匹配正则表达 式的行开始。
    \>:到匹配正则表达式的行结束。

    [ ]:单个字符,如[A]即A符合要求 。
    [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
    .:所有的单个字符。
    *:所有字符,长度可以为0。

  • 在文件中查找字符串(不区分大小写):grep -i "the" demo_file
  • 输出成功匹配的行,以及该行之后的三行:grep -A 3 -i "example" demo_text
  • 在一个文件夹中递归查询包含指定字符串的文件:grep -r "ramesh" *
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值