三劍客之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支持 \n \t  轉移字符系列

\n  換行

\t   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\n"

123

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

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM