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      定时任务
  • 相关阅读:
    C# winform 使用FastReport.Net自动打印一维码条码和二维码的解决方法
    C# winform 使用rdlc打印小票其中包含动态显示多条形码的解决方法
    我学习的LIS系统业务
    C# DataTable DataSet DataRow 转实体类集合,实体类和实体类集合转成DataTable 扩展方法分享
    我的自动化设备上位机软件开发设计(一)
    打开操作系统数据执行保护,关闭操作系统数据执行保护
    visualstudio2019 的报表技术rdlc在windows10上出现乱码的问题解决方法
    我带旅游ERP管理系统开发的经历
    C# web程序,winform程序,控制台程序配置log4net,使用log4net
    freemodbus modbus TCP 学习笔记
  • 原文地址:https://www.cnblogs.com/liujunjun/p/11969355.html
Copyright © 2011-2022 走看看