1. 程式人生 > >12.28 第三關練習題(下)

12.28 第三關練習題(下)

sco 環境變量 strong 修改環境變量 默認 bak top rep 區別

12.28

第三關練習題()

內容:

1. 默認awk不認識{} 加上--re-interval選項

2. grep -i 忽略大小寫

3. 常用的DNS服務器

4. 企業案例:企業網站中病毒從發現到解決過程(6個步驟)

第1章 找出網卡配置文件中IPADDR的行

方法一:

[root@oldboy oldboy]# egrep '^IP.*[0-9]{2,}' /etc/sysconfig/network-scripts/ifcfg-eth0 -o

IPADDR=10.0.0.201

方法二:

[root@oldboy oldboy]# awk --re-interval '/^IP.*[0-9]{2,}

/' /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=10.0.0.201

默認awk不認識{} 加上--re-interval選項

方法三 :awk 也可以過濾文件內容 搭配’//’

[root@oldboy oldboy]# awk --re-interval '/([0-9]+\.+){3}[0-9]{3}/' /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=10.0.0.201

方法四:egrep

[root@oldboy oldboy]# egrep '([0-9]+\.+){3}[0-9]{3}' /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=10.0.0.201

方法五:sed

[root@oldboy oldboy]# sed -rn '/([0-9]+\.+){3}[0-9]{3}/p' /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=10.0.0.201

1.1 補充:

grep -i 忽略大小寫

[root@oldboy oldboy]# grep -i 'ipaddr' /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=10.0.0.201

1.2 awk sed 用法區別

1.awk 找出這一行(‘NR’) 找出某一列

-F “[]” ‘{print $}’

sed 找出這一行-n ’//p’ 替換’s###g’

2.awk sed 過濾 查找文件內容 格式 '//' ,其余功能看具體情況 比如sed 替換 awk 顯示行號等等 不用

第2章 linux 下通過 mkdir 命令創建一個新目錄/oldboy/ett,它的硬鏈接數是多少,為什麽?

硬鏈接數 2 /ett /ett/. inode相同

[root@oldboy oldboy]# ls -ild ett ett/.

405152 drwxr-xr-x. 2 root root 4096 May 22 03:42 ett 目錄本身

405152 drwxr-xr-x. 2 root root 4096 May 22 03:42 ett/. 下面第一級子目錄的 .

第3章 如果在/oldboy/ett 下面再創建一個目錄 test。再問/oldboy/ett 的硬鏈接數是多少?為什麽。

硬鏈接數 3 /ett /ett/. /ett2/..

[root@oldboy oldboy]# mkdir ett/ett2

[root@oldboy oldboy]# ls -ild ett ett/. ett/ett2/..

405152 drwxr-xr-x. 3 root root 4096 May 22 03:43 ett 目錄本身

405152 drwxr-xr-x. 3 root root 4096 May 22 03:43 ett/. 下面第一級子目錄的 .

405152 drwxr-xr-x. 3 root root 4096 May 22 03:43 ett/ett2/.. 下面第二級子目錄的 ..

3.1 知識點 /etc下有77個一級目錄(不包含子目錄下的子目錄)

[root@oldboy /]# ls -ld /etc

drwxr-xr-x. 79 root root 4096 Dec 22 2017 /etc

第4章 請給出默認情況 eth0 網卡配置文件的路徑及客戶端 DNS 的路徑。

eth0網卡配置文件:

/etc/sysconfig/network-scripts/ifcfg-eth0

DNS路徑

/etc/resolv.conf

/etc/sysconfig/network-scripts/ifcfg-eth0

4.1 補充:常用的DNS服務器

1. 阿裏雲

223.5.5.5 223.6.6.6

2.114

114.114.114.114 114.114.115.115

3.供應商提供

4.2 企業案例:企業網站中病毒 √√√√√√√

從發現到解決的過程:

1、運營人員、網站用戶發現問題,網站有彈窗廣告。

2、運營人員報給開發人員,開發聯系運維人員。開發和運維共同解決。

3、開發發現的問題原因就是所有站點目錄被嵌入了一段JS代碼。

4、運維人員解決問題:

a) 備份原始出問題的原始文件。

b) 歷史備份覆蓋。

c) find+sed替換。

5、詳細查看日誌,尋找問題發生來源。

6、提供亡羊補牢解決方案

第5章 查找當前目錄下所有文件,並把文件中的 www.etiantian.org 字符串替換成 www.oldboy.cc

假設你在/oldboy目錄中 --find的三種寫法

#find /oldboy/ -type f |xargs sed 's#www.etiantian.org#www.oldboy.cc#g'

#sed 's#www.etiantian.org#www.oldboy.cc#g'$(find /oldboy/ -type f)

find /oldboy/ -type -exec sed 's#www.etiantian.org#www.oldboy.cc#g' {} \;

第6章 問題:如何賦予 oldboy 文件 -rw-r--r-x 權限屬性

方法一:

chmod 645 oldboy

方法二:

chmod u=rw,g=r,o=rx oldboy

第7章 執行下面命令時發現提示需要輸入密碼,請問提示輸入的密碼是哪個用戶的密碼。

[test@oldboy ~]$ sudo su - oldboy

oldboy用戶

第8章 請問在一個命令上加什麽參數可以實現下面命令的內容在同一行輸出。

echo "oldboy";echo "oldboy"

echo -n 不執行回車,echo命令默認在結束時執行回車

echo -e “\n” -e支持轉義

echo -t 執行tab

[root@oldboy oldboy]# echo -e "a\nb\tc"

a

b c

第9章 請給出如下格式的 date 命令 例:11-02-26。在給出實現按周輸出 比如:周六輸出為 6,請分別給出命令。

[root@oldboy oldboy]# date +%y-%m-%d

17-12-28

註意:嚴格區分大小寫

按照要求顯示日期

9.1 date +%F +按照規定格式顯示

%F -- === %Y-%m-%d

[root@oldboy /]# date +%Y-%m-%d ==== [root@oldboy /]# date +%F

2017-05-22 2017-05-22

9.2 date +%T + %T :: ====+%H:%M:%S

+%w 星期

顯示當前時間 按照 --_周幾

[root@oldboy /]# date +%F_%w

2017-05-22_1

9.3 date -d 按照你的描述顯示日期

顯示前一天日期 並且按照規定格式

[root@oldboy /]# date -d "1 day ago"

Sun May 21 05:08:03 CST 2017

[root@oldboy /]# date -d "-1day"

Sun May 21 05:08:40 CST 2017

[root@oldboy /]# date -d "-10day" +%F

2017-05-12

9.4 date -s 修改時間

[root@oldboy oldboy]# #date -s "20171314 12:12:12" 年月日 時:分:秒

[root@oldboy oldboy]# date -s "100year" 修改年份

Tue Dec 28 16:56:18 CST 2117

[root@oldboy oldboy]# date

Tue Dec 28 16:56:38 CST 2117

9.5 ntpdate自動同步系統時間

ntpdate 根據時間服務器自動修改當前系統的時間

自動同步時間

ntpdate ntp1.aliyun.com 網絡同步時間 虛擬機必須連通外網

ntp2.aliyun.com

pool.ntp.org

[root@oldboy /]# ntpdate ntp1.aliyun.com

28 Dec 10:44:47 ntpdate[97545]: step time server 182.92.12.11 offset 19027175.922945 sec

[root@oldboy /]# date

Thu Dec 28 10:45:12 CST 2017

小結:

1. 按照指定格式顯示日期

2. 按照描述和指定的格式顯示日期

3. 自動同步時間

9.6 修改時區(了解)

[root@localhost ~]# cp /usr/share/zoneinfo/Asia/S
Saigon Samarkand Shanghai Srednekolymsk
Sakhalin Seoul Singapore
[root@localhost ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
cp: overwrite `/etc/localtime'? y
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# hwclock

第10章 當從 root 用戶切到普通用戶時,執行 ifconfig 會提示。

[oldboy@student ~]$ ifconfig

-bash: ifconfig: command not found

提示:c58 會遇到,c64 沒有此問題。

請問這是為什麽?如何解決,請給出詳細解決過程

10.1 模擬環境:

去掉/sbin

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

10.2 原因:(系統執行命令的過程)

1. 輸入命令

2. shell會在PATH裏面查找命令

3. 找到執行

4. 找不到提示

command not found

10.3 解決:修改環境變量

10.3.1 臨時

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin root用戶

10.3.2 永久 ~/bin 普通用戶(可手動添加)

tail -1 /etc/profile

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin root用戶

~/bin 普通用戶

10.3.3 生效

source

10.4 補充:PATH命令路徑分類

/bin /sbin

/usr/bin /usr/sbin

/usr/local/bin /usr/local/sbin

第11章 擴展問題:打印三天前的日期格式如:2011-02-26

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

2017-12-26

第12章 請描述下列路徑的內容是做什麽的?

/var/log/messages 系統默認日誌

/var/log/secure 用戶登錄信息

/etc/fstab 開機自動掛載列表

/etc/profile 環境變量(PS1 PATH) 別名

/etc/hosts 解析主機名

/var/spool/cron/root 定時任務配置文件

第13章 如何快速查到 ifconfig 的全路徑(假如你不知道其路徑),請給出命令。

13.1 which

[root@oldboy /]# which ifconfig

/sbin/ifconfig

13.2 find

find / -type f -name “ifconfig”

13.3 whereis 找出與這個命令相關的文件的位置

[gao@oldboy ~]$ whereis ifconfig

ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz

13.4 locate 根據一個數據庫進行查找 (缺點:數據庫需要更新,數據多時相當慢; 消耗系統性能)(幾乎不用)

updatedb 更新數據庫

[gao@oldboy ~]$ locate oldboy.txt

/data/oldboy.txt

/data/oldboy.txt.bak

/data/oldboyedu/oldboy.txt

/oldboy/oldboy.txt

第14章 每周日上午 930 來老男孩 linux 培訓上課(用/oldboy.sh 代替),請用 linux 定時任務命令表示。

30 9 * * 7 /bin/sh /oldboy.sh >/dev/null 2>&1

第15章 請給出查看當前哪些用戶在線的 linux 命令。

第16章 公司一開發人員申請對某一服務器 10 天的普通用戶權限,請問你如何操作?

第17章 請給出正確的關機和重起服務器的命令。

17.1 關機命令

shutdown -h now(分鐘) 可以設定幾分鐘後關機/重啟 shutdown -c 取消

halt 關閉系統 不會關閉電源(物理機 雲服務器沒有影響)

poweroff

init 0 不會把數據寫進磁盤裏,容易造成數據丟失

17.2 重啟命令

shutdown -r now

reboot

init 6

第18章 請寫出下面 linux SecureCRT 命令行快捷鍵命令的功能?

命令行快捷鍵

移動光標

把光標移動到這一行的開頭 Ctrl + a

把光標移動到這一行的結尾 Ctrl+e

把光標向右移動一個單詞 Ctrl+右

刪除(剪切)光標所在位置到行首的內容 Ctrl + u

刪除(剪切)光標所在位置到行尾的內容 Ctrl + k

粘貼 ctrl + y

其他功能(命令行)

取消當前操作 ctrl + c (cancel)

清屏 cerl + l ===clear

退出當前用戶 ctrl + d ===logout

使用上個命令最後的東西 esc + .(點)

鎖定屏幕 ctrl + s

解鎖 ctrl + q

查找之前敲過的命令 history |grep

查找你使用過的命令 ctrl + r

自動補全路徑或命令 tab

第19章 創建一個/etc壓縮包名字etc-2017-11-11.tar.gz √√√√

19.1 方法一:

[root@oldboy oldboy]# tar zcvf $(echo etc-"$(date +%F.tar.gz)") ett

ett/

ett/ett2/

ett/ett2/1.txt

[root@oldboy oldboy]# ls |grep 'etc.*tar.gz'

etc-2017-12-28.tar.gz

19.2 方法二:

echo et-$(date +%F.tar.gz)|xargs tar zcv ett -f

19.3 方法三:√√√√√√√√√√√√

tar zcvf e-$(date +%F).tar.gz ett

[root@oldboy oldboy]# ls e-$(date +%F).tar.gz

e-2017-12-28.tar.gz

19.4 方法四:

[root@oldboy oldboy]# tar zcv ett -f g-$(date +%F).tar.gz

19.5 註意:

1. 根據方法三知 不止echo命令可以執行 '' "" $() 大部分命令都可以

2. tar 命令 -f 參數可以在任意位置指定壓縮文件包





總結:

1. 第三波命令

2. 查看修改系統時間 (創建文件並跟上時間) 作業:

3. 修改PATH

4. linux快捷鍵和vim快捷鍵

5. 目錄硬鏈接數

6. 回顧linux重要的配置文件


12.28 第三關練習題(下)