zoukankan      html  css  js  c++  java
  • sed与grep练习题

    第1章 练习题                

    第1题 取得/etc/hosts 文件的权限

    如何取得/etc/hosts 文件的权限对应的数字内容,如-rw-r--r--  为 644,要求使用命令取得644 这样的数字。

     方法一 awk 指定分隔符

    [root@node2 ~]# stat /etc/hosts |awk -F "[0/]" 'NR==4{print $2}'
    644

    方法二 stat  -c%a

    [root@node2 ~]# stat -c%a /etc/hosts
    644

    第2题 目录的硬链接数                  

    linux 下通过 mkdir 命令创建一个新目录/clsn/ett,它的硬链接数是多少,为什么?

    如果在/clsn/ett下面再创建一个目录 test。再问/clsn/ett 的硬链接数是多少?为什么。

    新目录的硬链接数为2

    [root@node2 ~]# mkdir /clsn/ett -p
    [root@node2 ett]# ls -ldi /clsn/ett/
    651845 drwxr-xr-x. 2 root root 6 12月  2 10:38 /clsn/ett/

    目录下的硬链接数为 2+下级目录数

    [root@node2 ett]# mkdir dir01/
    [root@node2 ett]# ls -ldi /clsn/ /clsn/. /clsn/ett/..
    50974252 drwxr-xr-x. 3 root root 17 12月  2 10:38 /clsn/
    50974252 drwxr-xr-x. 3 root root 17 12月  2 10:38 /clsn/.
    50974252 drwxr-xr-x. 3 root root 17 12月  2 10:38 /clsn/ett/..

    第3题 取出ip地址                      

    执行命令取出 linux中 eth0 的 IP地址。

    方法一 awk

    [root@node2 ett]# ifconfig ens33|awk -F "[ :]+" 'NR==2{print $3}'
    192.168.1.223

    方法二 grep

    [root@node2 ett]# ifconfig ens33|egrep  "([0-9]{1,3}.?){4}" -o |head -3|tail -1
    192.168.1.223

    内容在同一行输出                        

    在一个命令上加什么参数可以实现下面命令的内容在同一行输出。

    -n  不输出每行行尾的回车

    -e  让echo支持    转移字符系列

     换行

      tab键

    [root@node2 scprits]#  echo -n "123" ; echo "223"
    123223
    [root@node2 scprits]# echo -n "123"
    123[root@node2 scprits]# echo -e "123
    "
    123
    
    [root@node2 scprits]#  echo -ne "123
    "
    123

    date相关 时间同步                        

     请给出如下格式的 date 命令 例:19-12-02。在给出实现按周输出 比如:周六输出为 6,请分别给出命令。

     %F 与 %Y-%m-%d 相同

    [root@node2 scprits]# date +%F
    2019-12-02
    [root@node2 scprits]# date +%Y-%m-%d
    2019-12-02

    时间

     %H:%M:%S 与 %T相同

    [root@node2 scprits]# date +%T
    15:52:42
    [root@node2 scprits]# date +%H:%M:%S
    15:52:50

    时间和周数

     %w 表示周

    [root@node2 scprits]# date +%F_%w
    2019-12-02_1

    手动设置系统日期

    [root@node2 scprits]# date -s "20191202 15:55:00"
    2019年 12月 02日 星期一 15:55:00 CST

    自动同步系统时间

    [root@node2 scprits]# ntpdate  ntp1.aliyun.com
     2 Dec 15:53:46 ntpdate[5099]: step time server 120.25.115.20 offset -112.993154 sec

    环境变量问题                         

     当从root用户切到普通用户时,执行ifconfig会提示。

     -bash: command not found.

    运行目录的过程

     先去PATH找

    找到   运行命令解释器 shell

    找不到 提示 command not found

    永久修改 PATH

    PATH 内容放到/etc/profile 文件最后

    soucre  /etc/profile 让它生效

    打印三天前的日期格式                      

    -d "-3day" 表示三天前

    -d "3day"  表示三天后

    [root@node2 scprits]# date +%F
    2019-12-02
    [root@node2 scprits]# date -d "-3day" +%F
    2019-11-29
    [root@node2 scprits]# date -d "3day" +%F
    2019-12-05

    已知test.txt 文件内容为:

    [root@node2 scprits]# cat test.txt 
    clsn
    
    xizi
    
    xiaochao

    请问如何把文件中的空格过滤掉。

    方法一 grep

    [root@node2 scprits]# grep -v "^$" test.txt
    clsn
    xizi
    xiaochao
    -v 排除 ^$ (空行)

    方法二 awk

    [root@node2 scprits]# awk '!/^$/' test.txt
    clsn
    xizi
    xiaochao
    '!/^$/' 排除空行

    方法三 sed

    [root@node2 scprits]# sed '/^$/d' test.txt 
    clsn
    xizi
    xiaochao
    '/^$/d' 排除空行

    sed与awk

    awk '找谁{干啥}'
    
    sed '找谁干啥' 
    

      请使用 grep或 egrep 正则匹配的方式过滤文件test.txt出前两行内容

    + 表示前一个字符出现一次或一次以上。

    [root@node2 scprits]# cat test.txt 
    clsn
    
    clssssn
    
    test
    [root@node2 scprits]# egrep "c+l+s+n" test.txt 
    clsn
    clssssn

    排除以t开头的

    
    

    [root@node2 scprits]# grep -iv "^t" test.txt 

    clsn
    
    clssssn

    排除以t结尾的

    [root@node2 scprits]# grep -v "t$" test.txt 
    clsn
    
    clssssn

    请描述下列路径的内容是做什么的?

    /var/log/messages         系统普通日志
    
    /var/log/secure          用户登陆日志
    
    /etc/fstab                开机自动挂载
    
    /etc/profile              配置别名 环境变量
    
    /etc/spool/cron/root      定时任务
  • 相关阅读:
    九月腾讯,创新工场,淘宝等公司最新面试三十题
    java静态变量和实例变量的区别
    海量数据处理:十道面试题与十个海量数据处理方法总结
    持有对象(看think in java)
    在myeclipse9.0中安装插件SVN(掌握通用安装插件的方法)
    java的垃圾回收机制(think in java学习总结):
    CSS控制文本自动换行
    jquery获得select option的值 和对select option的操作
    JS操作table!js table行数
    jquery ui datepicker 只能选今天以后的日期
  • 原文地址:https://www.cnblogs.com/liujunjun/p/11969355.html
Copyright © 2011-2022 走看看