1. 程式人生 > >echo的參數、date的參數、PATH、開關機、 vim快捷鍵

echo的參數、date的參數、PATH、開關機、 vim快捷鍵

linux vim echo


作者George

歸檔:學習筆記

2017/12/28



本章正題:了解硬鏈接數、 echo的參數、date的參數、PATH、開關機、 vim快捷鍵

1.1 第三關剩余練習題

1.1.1 取出ip地址,awk 指定多把分割符,用 |

[root@georgekai oldboy]# ifconfig eth0 | awk -F "addr:| Bc" 'NR==2{print $2}'

10.0.0.203

1.1.2 找出網卡配置文件中IPADDR的行

方法一:

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

IPADDR=10.0.0.203

註: -i #進行過濾不區分大小寫 == igone

方法二:

[root@georgekai oldboy]# sed -n '/^IPADDR/p' /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=10.0.0.203

方法三:

[root@georgekai oldboy]# awk '/IPADDR/' /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=10.0.0.203

方法四:

[george@georgekai ~]$ egrep '^I.*[0-9.]{1,3}' /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=10.0.0.203

方法五:

[george@georgekai ~]$ awk --re-interval '/^I.*[0-9]{1,3}/' /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=10.0.0.203

註:awk 默認不認識 {} , 需要--re-interval 參數的輔助

方法六:

[george@georgekai ~]$ sed -nr '/^IP.*[0-9]{1,3}/p' /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=10.0.0.203

註:sed 默認不認識擴展正則的符號,需要 -r 參數的輔助

1.1.3 linux下通過mkdir創建一個新目錄/oldboy/ettett的連接數是為多少,為什麽?

1:

[root@georgekai oldboy]# ls -ldi /oldboy/ett

261648 drwxr-xr-x. 2 root root 4096 Dec 28 08:58 /oldboy/ett

[root@georgekai oldboy]# ls -ldi /oldboy/ett/.

261648 drwxr-xr-x. 2 root root 4096 Dec 28 08:58 /oldboy/ett/.

註:1. . 表示當前目錄,所以他的Inode號和ett目錄本身一樣

2. ls -a 查看隱藏文件和目錄

2:

[root@georgekai oldboy]# ls -ldi /oldboy/

261636 drwxr-xr-x.3 root root 4096 Dec 28 08:58 /oldboy/

[root@georgekai oldboy]# ls -ldi /oldboy/ett/..

261636 drwxr-xr-x. 3 root root 4096 Dec 28 08:58 /oldboy/ett/..

註:他的子目錄裏面都包含一個.. 表示上一級沒有,也就是oldboy 所有Inode號一樣

技術分享圖片

1.1.4 請給出redhat默認情況eth0網卡配置文件的路徑及客戶端DNS的路徑

[root@georgekai oldboy]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 網卡配置文件

[root@georgekai oldboy]# vim /etc/resolv.conf DNS配置文件

1.1.5 【企業案例】:查找當前目錄下所有文件,並把文件中的www.etiamtian.org字符串替換換成www.oldboyedu.com

方法一:

[root@georgekai oldboy]# find -type f | sed 's#www.etiantian.org#www.oldboyedu.com#g' -i

方法二:

[george@georgekai ~]$ sed 's#www.etiantian.org#www.georgekai.com#g' $(find -type f) -i

1.1.6 企業案例:企業網站中病毒

從發現到解決的過程:
1、運營人員、網站用戶發現問題,網站有彈窗廣告。
2、運營人員報給開發人員,開發聯系運維人員。開發和運維共同解決。
3、開發發現的問題原因就是所有站點目錄被嵌入了一段JS代碼。
4、運維人員解決問題:
a) 備份原始出問題的原始文件。
b) 歷史備份覆蓋。
c) find+sed替換。
5、詳細查看日誌,尋找問題發生來源。
6、提供亡羊補牢解決方案

1.1.7 echo 常用的參數 -n \n \t

1; -n 表示取消了默認的回車,可以在一行顯示

[root@georgekai oldboy]# echo -n "oldboy"

oldboy[root@georgekai oldboy]#

2:\n 表示回車鍵(換行) , -e 表示使echo能識別轉義 符號系列(\n \t)

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

a

b

3: \t 表示加一個tab鍵

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

a

b c


1.1.8 問題:請給出如下格式的 date 命令

例:11-02-26。在給出實現按周輸出 比如:周六輸出為 6,請分別給出命令。

1:顯示年-月-日

[root@georgekai ~]# date +%F

2017-12-28

註:1. date + 表示按什麽格式來顯示,如date +%F ,表示年月日 == date +%Y-%m-%d

2. man date 一般格式都在最後面

2:顯示時:分:秒

[root@georgekai ~]# date +%T

10:14:56

註:1. date +%T === date +%H:%M:%S

3:顯示時-分-秒_星期

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

2017-12-28_4

; 1. man date 後面有顯示,0 代表周日

4:顯示當前日期的10天之前是哪一天

[root@georgekai ~]# date -d "-10day" +%F

Wed Dec 27 10:29:16 CST 2017

註:1. -d 安裝你的描述顯示日期

2. +%F 不能放到-d 和"-10day"中間

5:顯示3天前的日期,格式為:年-月-日_小時_星期

[root@georgekai ~]# date +%F_%H_%w -d "-3day"

2017-12-25_10_1

註:建議使用%H顯示小時就可以了,%T會顯示冒號,避免與其他特殊字符沖突

1.1.9 修改當前時間

1:臨時修改時間

[root@georgekai ~]# date -s "20171212 12:12:12"

Tue Dec 12 12:12:12 CST 2017

2:自動向時間服務器更新時間

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

28 Dec 10:44:39 ntpdate[5955]: step time server 182.92.12.11 offset 1377013.589035 sec

註:1. ntp1.aliyun.com 是阿裏雲的時間服務器

2. pool.ntp.org 國外的官方時間服務器

3. 如果時區不對,時間也是不一樣的, PTS 世界標準時間,CUT 中央標準時間

3:如果時間不對,使用下面倆條命令查看/etc/service

修改時區的配置, sz rz 將其他虛擬機的配置文件替換一份。

[root@georgekai ~]# file /etc/services

/etc/services: ASCII English text

[root@georgekai ~]# ls -lh /etc/services

-rw-r--r--. 1 root root 626K Mar 22 2017 /etc/services

date命令總結:

1. 按照制定格式顯示時間

#%F 年月日

#%T 時分秒

#%w 星期

2. 按照你說的說明顯示日期 -d

3. 臨時修改時間,自動同步時間,修改時區

1.2 問題:當從 root 用戶切到普通用戶時,執行 ifconfig 會提示。

1.2.1 臨時——修改PATH環境變量

[root@georgekai ~]# export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin

註:1. 這些只是外部命令,內置命令還可以使用

2. 有些命令即屬於外部命令,也屬於內部命令。如echo

1.2.2 永久——修改PATH環境變量

註:將臨時修改的命令放在最後面,然後用source /etc/profile 使配置文件生效即可

[root@georgekai ~]# vim /etc/profile

export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin

1.3 下列路徑的內容是做什麽的?

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

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

/etc/fstab 開機自動掛載 (在開機的時候設備對應什麽入口)

/etc/hosts 解析主機名 ip地址與主機名的對應關系)

註:man hosts 還可以查看系統的配置文件使用方法

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

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

1.4 用命令找出ifconfig的全路徑。

1:which

[root@georgekai ~]# which ifconfig

/sbin/ifconfig

2:find

[root@georgekai ~]# find / -type f -name "ifconfig"

/sbin/ifconfig

3:whereis 可以找出命令的位置和相關信息

[root@georgekai ~]# whereis ifconfig

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

4:locate 根據名字找出文件所在的位置,會根據數據庫查找,所以很慢

[root@georgekai ~]# locate ifconfig

/sbin/ifconfig

/usr/sbin/pifconfig

/usr/share/man/de/man8/ifconfig.8.gz

註:uodatedb 更新數據庫 (不常用,因為很慢,消耗比較大)

1.5 關機和重啟服務器的命令

1.5.1 重啟

1:shudown -r now

[root@georgekai ~]# shutdown -r now

註:1. -r 重啟

2. now 立刻,馬上

3. 建議使用,不會立馬重啟

4. -r 後面加10 ,表示10分鐘後重啟

2:reboot

[root@georgekai ~]# reboot

3:init 6

[root@georgekai ~]# init 6

註:有可能丟失數據

1.5.2 關機

1:shutdown -h now

[root@georgekai ~]# shudown -h now

註:1. -h 關機

2. now 立刻,馬上

3. -h 後面加 10 ,表示10分鐘後關機

4. 建議使用,不會立馬關機

2:poweroff

[root@georgekai ~]# poweroff

3:init 0

[root@georgekai ~]# init 0

註:有可能丟失數據

4:halt

[root@georgekai ~]# halt

註:關閉系統,不會關閉電源,風扇還會轉

1.6 linux命令行的快捷鍵

Ctrl + a 把光標移動到行首

Ctrl + e 把光標制動到行尾

Ctrl + c 中斷當前命令的執行, 特殊情況yum install 中,需要連續多按幾次

Ctrl + d 退出當前用戶 / 刪除光標所在位置後一個字符

Ctrl + l 清屏

Ctrl + u 把光標所在位置到行首的內容剪切

Ctrl + k 把光標所在位置到行尾的內容剪切

Ctrl + y 粘貼

Ctrl + r 查找歷史命令,相當於 history | grep

Ctrl + s 鎖屏

Ctrl + q 解鎖

Ctrl + → 向右移動單詞的寬度

Ctrl + ← 向右移動單詞的寬度

1.7 vi /vim 快捷鍵

移動:

G 移動到文件的最後一行

gg 移動到文件的第一行

$ 把光標移動到行尾

0或^ 把光標移動到行首

編輯:

o 在當前行一行插入空行並進入編輯模式

O 在行前行一行插入空行並進入編輯模式

C 把光標所在位置到行尾的內容刪除並進入編輯模式

復制剪切粘貼:

yy 復制當前行的內容

p 粘貼 paste

dd 刪除當前整行內容

100gg 移動100行

操作:

u 撤銷

ctrl+ r 恢復

特殊符號:

:set nu 顯示行號

:set nonu 取消顯示行號

/george 默認向下搜索,繼續往下搜索 n 繼續向上搜索 N

george 默認向上搜索

:noh 取消高亮顯示


echo的參數、date的參數、PATH、開關機、 vim快捷鍵