zoukankan      html  css  js  c++  java
  • 三剑客之sed&grep

    第1章 练习题

    1.1 1 取得/etc/hosts 文件的权限

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

    1.1.1 方法一 awk 指定分隔符

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

    644

    1.1.2 方法二 stat  -c%a

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

    644

    1.2 2 目录的硬链接数

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

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

    1.2.1 新目录的硬链接数为2

    [root@znix clsn]# ls -ldi ett/ ett/.

    151313 drwxr-xr-x 2 root root 4096 Sep  4 10:09 ett/

    151313 drwxr-xr-x 2 root root 4096 Sep  4 10:09 ett/.

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

    [root@znix clsn]# mkdir -p ett/dir01

    [root@znix clsn]# ls -ldi ett/ ett/. ett/dir01/..

    151313 drwxr-xr-x 3 root root 4096 Sep  4 10:11 ett/

    151313 drwxr-xr-x 3 root root 4096 Sep  4 10:11 ett/.

    151313 drwxr-xr-x 3 root root 4096 Sep  4 10:11 ett/dir01/..

    1.3 3 取出ip地址

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

    1.3.1 方法一 awk

    [root@znix ~]# ifconfig eth0|awk -F "[ :]+" 'NR==2{print $4}'

    10.0.0.201

    1.3.2 方法二 grep

    [root@znix ~]# ifconfig eth0|egrep  "([0-9]{1,3}.?){4}" -o |head -1

    10.0.0.201

    1.3.3 方法三 sed 反向引用

    [root@znix ~]# ifconfig eth0|sed -nr '2s#^.*dr:(.*)  Bc.*$#1#gp'

    10.0.0.201

    1.4 4 网卡配置文件的路径DNS的路径

    请给出默认情况 eth0 网卡配置文件的路径及客户端 DNS的路径。

    eth0 网卡

    /etc/sysconfig/network-scripts/eth0

    DNS配置

    /etc/resolv.conf

    1.5 5

    查找当前目录下所有文件,并把文件中的 www.etiantian.org 字符串替换成 www.clsn.cc

    [root@znix ~]# find /* |sed 's#www.etiantian.org#www.clsn.cc#g'

    1.5.1 运维职责

    1.数据不能丢

    2.网站7*24运行

    3.用户体验好 尽量让用户从内存 /

    1.5.2 网站有关的问题从发现到解决的过程

    1、运营人员、网站用户发现问题,网站有弹窗广告。

    2、运营人员报给开发人员,开发联系运维人员。开发和运维共同解决。

    3、开发发现的问题原因就是所有站点目录被嵌入了一段JS代码。

    4、运维人员解决问题:

    a)  备份原始出问题的原始文件。

    b)  find+sed替换。

    5、详细查看日志,寻找问题发生来源。

    6、提供亡羊补牢解决方案

    1.6 8 内容在同一行输出

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

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

    -e  echo支持   转移字符系列

     换行

      tab

    [root@znix etc]# echo -n "123" ; echo "223"

    123223

    [root@znix etc]# echo -n "123"

    123[root@znix etc]#

    [root@znix etc]# echo -e "123 "

    123

    [root@znix etc]# echo -ne "123 "

    123

    1.7 9 date相关 时间同步

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

    1.7.1 日期

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

    [root@znix etc]# date +%F

    2017-09-04

    [root@znix etc]# date +%Y-%m-%d

    2017-09-04

    1.7.2 时间

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

    [root@znix etc]# date +%T

    10:57:48

    [root@znix etc]# date +%H:%M:%S

    10:58:53

    1.7.3 时间和周数

    %w 表示周

    [root@znix ~]# date +%F_%w

    2017-09-04_1

    1.7.4 手动设置系统日期

    使用date -s 命令,手动设置命令,但是很少使用。

    [root@znix ~]# date -s "20170101 11:41:00"

    Sun Jan  1 11:41:00 CST 2017

    1.7.5 自动同步系统时间

    ntpdate 联网同步主机时间。

    [root@znix ~]# ntpdate  ntp1.aliyun.com

     4 Sep 15:17:22 ntpdate[11593]: step time server 182.92.12.11 offset 27.049824 sec

    1.8 10 环境变量问题

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

    -bash: command not found.

    1.8.1 运行目录的过程

    先去PATH

    找到   运行命令解释器 shell

    找不到 提示 command not found

    1.8.2 临时修改 PATH

    export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/tmp

    1.8.3 永久修改 PATH

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

    soucre  /etc/profile 让它生效

    1.9 11 打印三天前的日期格式

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

    -d "3day"  表示三天后

    [root@znix ~]# date +%F

    2017-09-04

    [root@znix ~]# date -d "-3day" +%F

    2017-09-01

    [root@znix ~]# date -d "3day" +%F

    2017-09-07

    1.10 12 已知/clsn/test.txt 文件内容为:

    clsn

    xizi

    xiaochao

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

    1.10.1 方法一 grep

    -v 排除 ^$ (空行)

    [root@znix ~]# grep -v "^$" test.txt

    clsn

    xizi

    xiaochao

    1.10.2 方法二 awk

    '!/^$/' 排除空行

    [root@znix ~]# awk '!/^$/' test.txt

    clsn

    xizi

    xiaochao

    1.10.3 方法三 sed

    '/^$/d' 排除空行

    [root@znix ~]# sed '/^$/d' test.txt

    clsn

    xizi

    xiaochao

    1.10.4 sedawk

    awk '找谁{干啥}'

    sed '找谁干啥

    1.11 13 已知/clsn/ett.txt 文件内容为

    clsn

    clssssn

    test

    请使用 grep egrep 正则匹配的方式过滤出前两行内容

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

    [root@znix ~]# egrep "c+l+n" test.txt

    clsn

    clssssn

    1.11.2 排除以t开头的

    [root@znix ~]# grep -v "^t" test.txt

    clsn

    clssssn

    1.11.3 排除以t结尾的

    [root@znix ~]# grep "^[^t]" test.txt

    clsn

    clssssn

    1.12 14

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

    /var/log/messages         系统普通日志

    /var/log/secure          用户登陆日志

    /etc/fstab                开机自动挂载

    /etc/profile              配置别名 环境变量

    /etc/spool/cron/root      定时任务




     

    第2章 回顾

    2.1 linux启动过程

    1、接通电源

    2、进入BIOS自检

    3、进入mbr引导

    4、进入grub选择内核

    5、加载内核

    6、运行init进程

    7、读取运行级别

    8、配置主机名ip地址/etc/rc.sysinit

    9、根据不同的运行级别运行不同的软件或服务/etc/rc3.d

    10、显示登录界面

    2.2 软硬链接区别

    2.2.1 创建方式

    软连接 ln -s

    硬链接 ln   两个文件inode号相同互为硬链接

    2.2.2 区别

    目录不能创建硬链接

    硬链接不能跨文件相同(分区)

    软连接可以跨文件相同,可以对目录创建软连接。

    2.3 文件删除原理

    1、inode数为0

    2、进程调用数为0

  • 相关阅读:
    oracle安装
    Jmeter入门篇
    DOS常用命令
    SpringBoot中使用JNnit4(一)之Mockito的使用
    SpringBoot中使用JNnit4(入门篇)
    SpringBoot搭建
    SpringBoot中集成Swagger2
    jpa使用过程中出现问题记录[持续更新]
    Python逆向(五)—— Python字节码解读
    Python逆向(四)—— Python内置模块dis.py源码详解
  • 原文地址:https://www.cnblogs.com/clsn/p/7639879.html
Copyright © 2011-2022 走看看