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

  • 相关阅读:
    Json对象与Json字符串互转(4种转换方式)
    Web.config配置文件详解
    jQuery BlockUI Plugin Demo 6(Options)
    jQuery BlockUI Plugin Demo 5(Simple Modal Dialog Example)
    jQuery BlockUI Plugin Demo 4(Element Blocking Examples)
    jQuery BlockUI Plugin Demo 3(Page Blocking Examples)
    jQuery BlockUI Plugin Demo 2
    <configSections> 位置引起的错误
    关于jQuery的cookies插件2.2.0版设置过期时间的说明
    jQuery插件—获取URL参数
  • 原文地址:https://www.cnblogs.com/clsn/p/7639879.html
Copyright © 2011-2022 走看看