12.28 node
第三關練習題(下)linux
內容:shell
1. 默認awk不認識{} 加上--re-interval選項數據庫
2. grep -i 忽略大小寫vim
3. 經常使用的DNS服務器c#
4. 企業案例:企業網站中病毒從發現到解決過程(6個步驟)bash
方法一:服務器
[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
grep -i 忽略大小寫
[root@oldboy oldboy]# grep -i 'ipaddr' /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=10.0.0.201
1.awk 找出這一行(‘NR’) 找出某一列 -F 「[]」 ‘{print $}’
sed 找出這一行-n ’//p’ 替換’s###g’
2.awk sed 過濾 查找文件內容 格式 '//' ,其他功能看具體狀況 好比sed 替換 awk 顯示行號等等 不用
硬連接數 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 /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/.. 下面第二級子目錄的 ..
[root@oldboy /]# ls -ld /etc
drwxr-xr-x. 79 root root 4096 Dec 22 2017 /etc
eth0網卡配置文件:
/etc/sysconfig/network-scripts/ifcfg-eth0
DNS路徑
/etc/resolv.conf
/etc/sysconfig/network-scripts/ifcfg-eth0
1. 阿里雲
223.5.5.5 223.6.6.6
2.114
114.114.114.114 114.114.115.115
3.供應商提供
從發現到解決的過程:
1、運營人員、網站用戶發現問題,網站有彈窗廣告。
2、運營人員報給開發人員,開發聯繫運維人員。開發和運維共同解決。
3、開發發現的問題緣由就是全部站點目錄被嵌入了一段JS代碼。
4、運維人員解決問題:
a) 備份原始出問題的原始文件。
b) 歷史備份覆蓋。
c) find+sed替換。
5、詳細查看日誌,尋找問題發生來源。
6、提供亡羊補牢解決方案
假設你在/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' {} \;
方法一:
chmod 645 oldboy
方法二:
chmod u=rw,g=r,o=rx oldboy
[test@oldboy ~]$ sudo su - oldboy
oldboy用戶
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
[root@oldboy oldboy]# date +%y-%m-%d
17-12-28
注意:嚴格區分大小寫
按照要求顯示日期
%F 年-月-日 === %Y-%m-%d
[root@oldboy /]# date +%Y-%m-%d ==== [root@oldboy /]# date +%F
2017-05-22 2017-05-22
+%w 星期
顯示當前時間 按照 年-月-日_周幾
[root@oldboy /]# date +%F_%w
2017-05-22_1
顯示前一天日期 而且按照規定格式
[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
[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
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. 自動同步時間
[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
[oldboy@student ~]$ ifconfig
-bash: ifconfig: command not found
提示:c58 會遇到,c64 沒有此問題。
請問這是爲何?如何解決,請給出詳細解決過程。
去掉/sbin
#export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
1. 輸入命令
2. shell會在PATH裏面查找命令
3. 找到執行
4. 找不到提示
command not found
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin root用戶
tail -1 /etc/profile
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin root用戶
~/bin 普通用戶
source
/bin /sbin
/usr/bin /usr/sbin
/usr/local/bin /usr/local/sbin
[root@oldboy oldboy]# date -d "-3day" +%F
2017-12-26
/var/log/messages 系統默認日誌
/var/log/secure 用戶登陸信息
/etc/fstab 開機自動掛載列表
/etc/profile 環境變量(PS1 PATH) 別名
/etc/hosts 解析主機名
/var/spool/cron/root 定時任務配置文件
[root@oldboy /]# which ifconfig
/sbin/ifconfig
find / -type f -name 「ifconfig」
[gao@oldboy ~]$ whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
updatedb 更新數據庫
[gao@oldboy ~]$ locate oldboy.txt
/data/oldboy.txt
/data/oldboy.txt.bak
/data/oldboyedu/oldboy.txt
/oldboy/oldboy.txt
30 9 * * 7 /bin/sh /oldboy.sh >/dev/null 2>&1
shutdown -h now(分鐘) 能夠設定幾分鐘後關機/重啓 shutdown -c 取消
halt 關閉系統 不會關閉電源(物理機 雲服務器沒有影響)
poweroff
init 0 不會把數據寫進磁盤裏,容易形成數據丟失
shutdown -r now
reboot
init 6
命令行快捷鍵
移動光標
把光標移動到這一行的開頭 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
[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
echo et-$(date +%F.tar.gz)|xargs tar zcv ett -f
tar zcvf e-$(date +%F).tar.gz ett
[root@oldboy oldboy]# ls e-$(date +%F).tar.gz
e-2017-12-28.tar.gz
[root@oldboy oldboy]# tar zcv ett -f g-$(date +%F).tar.gz
1. 根據方法三知 不止echo命令能夠執行 '' "" $() 大部分命令均可以
2. tar 命令 -f 參數能夠在任意位置指定壓縮文件包
總結:
1. 第三波命令
2. 查看修改系統時間 (建立文件並跟上時間) 做業:
3. 修改PATH
4. linux快捷鍵和vim快捷鍵
5. 目錄硬連接數
6. 回顧linux重要的配置文件