第1章 階段總結 1.1 一、請詳細描述linux系統從打開主機電源到進入登錄界面整個過程的流程。 1.2 二、我想在/data/oldboyedu目錄下麵創建 一個oldboy.txt文件 [root@oldboyedu ~]# cd /data/oldboyedu -bash: cd: /dat ...
第1章 階段總結
1.1 一、請詳細描述linux系統從打開主機電源到進入登錄界面整個過程的流程。
BIOS開機自檢 mbr引導 grub菜單 載入內核 init進程 /etc/inittab /etc/rc.d/rc.sysinit /etc/re.d/rc 啟動mingetty進程 登錄界面
1.2 二、我想在/data/oldboyedu目錄下麵創建 一個oldboy.txt文件
[root@oldboyedu ~]# cd /data/oldboyedu
-bash: cd: /data/oldboyedu: No such file or directory
1.為何出現這樣的錯誤
這個目錄不存在
2.如何解決這個錯誤呢?
創建目錄
給出命令:mkdir -p /data/oldboyedu
1.3 三、接上題,向oldboy.txt加入內容 "I love studying Linux." (不少於2種方法)
方法1
vi或vim修改
方法2
echo ' I love studying Linux.' >/data/oldboyedu/oldboy.txt
1.3.1 說說這些特殊符號含義: \ > >> 2> 2>> #(井號) .(點) ..(兩個點) ~ * $ |
\ 轉義字元 撬棍 脫掉馬甲打回原形(或類似含義) > 重定向符號 先清空文件內容,然後追加內容(或類似含義) >> 追加重定向 追加到文件結尾(或類似含義) 2> 錯誤輸出重定向 2>> 錯誤輸出追加重定向 # 井號 註釋或root用戶命令提示符或sed分隔符(sed 's###g') . 當前目錄 或 正則任何一個字元 或 用於生效 . /etc/profile === source /etc/profile #這個可以不講解 .. 當前目錄的上級目錄 ~ 當前用戶家目錄或awk中表示匹配(awk '$1~/oldboy/' xxx)#這個可以不講解 * 所有字元或任意字元或正則表達式表示前一個字元連續出現0次或0次以上 $ 取變數內容 或 正則以...結尾 | 管道 或 正則表示或者
1.4 test.txt內容為:
trainning
fanbingbing
lidao
1.4.1 四、請給出輸出test.txt文件內容時,不包含trainning字元串的命令。
方法1
grep -v 'trainning' test.txt #不加引號也行
方法2
tail -2 test.txt
方法3
sed '/trainning/d' test.txt
方法4
awk '!/trainning/' test.txt
方法5
grep '^[^t]' test.txt
1.5 五、入職新公司,老大讓你在伺服器上限制rm命令,當用戶輸入rm 命令時候提示”rm command is not allowed to use.” 請問實現的步驟是?。
1)命令行測試 alias rm='echo command is not allowd to use' 2)永久生效 寫入/etc/profile 3)生效 source /etc/profile
1.6 六、取出文件ett.txt 的第30到40行的內容。
註:ett.txt由seq 20 120>ett.txt創建
方法1
sed -n '30,40p' ett.txt
方法2
awk 'NR==30,NR==40' ett.txt
方法3
head -40 ett.txt|tail -11
方法4
awk 'NR>=30&&NR<=40' ett.txt
1.7 七、通過修改文件( /etc/fstab或fstab ),可以設定開機時自動掛載文件系統。
1.8 八、在linux系統中,當LAN(區域網)內沒有條件記案例DNS伺服器,但又想讓區域網內的用戶可以使用電腦名互相訪問時,應配置( /etc/hosts)文件(請寫全路徑)
1.9 九、linux系統啟動載入完成後,內核將啟動名為(init)的程式,這也是引導過程完成後,內核運行的第一個程式。我們可以修改預設的啟動級別為( 3),使得系統重啟後自動採用命令行模式登錄。
1.10 十、說出下麵幾個文件的作用
/var/log/messages 系統預設日誌(系統日誌也行) /var/log/secure 系統安全日誌或用戶的登錄情況 /etc/hosts ip地址與主機名(功能變數名稱)對應關係 或 用於解析主機名 /etc/fstab 開機自動掛載 /var/spool/cron/root 定時任務配置文件 /etc/rc.local 開機自啟動配置
1.11 十一、統計/var/log下文件個數
ls /var/log|wc -l
find /var/log|wc -l
1.12 十二、描述buffer和cache的區別
寫buffer讀cache
1.13 十三、如何把/data目錄下所有包含oldboy的目錄(可能目錄的目錄的目錄里還有oldboy目錄) 目錄都打包出來。要求:解壓打包後的目錄結構不能改變 。
方法1
find /data -type d -name "oldboy" |xargs tar zcf /tmp/oldboy.tar.gz
方法2
find /data -type d -name "oldboy" -exec tar zcf /tmp/oldboy.tar.gz {} \;
方法3
tar zcf /tmp/oldboy.tar.gz `find /data -type d -name "oldboy"` tar zcf /tmp/oldboy.tar.gz $(find /data -type d -name "oldboy")
1.14 十四、請列出linux下麵常用的打包工具並寫出相應的壓縮解壓參數。
tar zcf 創建壓縮包 或zcvf xf 解壓 或 zxvf tf 查看 或 ztf -C 解壓到指定目錄 --exclude 排除 --exclude-from或-X 根據文件內容排除文件 zip -r 壓縮目錄
1.15 十五、如何查看是否開啟22埠,及查看sshd進程是否存在?
查看埠22是否開啟
ss -lntup |grep 22 netstat -lntup|grep 22 telnet ip地址 22 nc ip地址 22 nmap -p22 ip地址 lsof -i:22
查看進程是否存在
ps -ef |grep sshd
1.16 十六、將/data目錄下的修改時間是7天以前,並且大於100k的文件複製到/tmp目錄下。
方法1
find /data -type f -mtime +7 -size +100k -exec cp {} /tmp \;
方法2
cp ` find /data -type f -mtime +7 -size +100k ` /tmp
cp $( find /data -type f -mtime +7 -size +100k ) /tmp
方法3
find /data -type f -mtime +7 -size +100k |xargs cp -t /tmp
方法4
find /data -type f -mtime +7 -size +100k |xargs -i cp {} /tmp
1.17 十七、現將文件b.txt中的所有123替換成def,請問如何實現?
sed 's#123#def#g' b.txt
1.18 十八、寫出redhat中,配置網卡及dns的配置文件是什麼?
網卡: /etc/sysconfig/network-scripts/ifcfg-eth0
DNS: /etc/resolv.conf
1.19 十九、什麼是linux的運行級別,請描述linux的運行級別不同數字的含義?
Linux的運行級別就是linux運行狀態
0 關機 1 單用戶模式 2 多用戶模式沒有NFS 3 命令行模式 文本模式 多用戶模式 4 沒有使用 5 圖形化界面模式 桌面模式 6 重啟
1.20 二十、簡述linux無法上網的排查流程 ;
1.ping baidu.com 檢查是否能上網
2.ping 223.5.5.5 檢查是否DNS問題
3.ping 網關 檢查是否配置或其他問題
故障原因:
1.檢查配置文件
2.虛擬網路編輯器
3.vmware服務
4.vmware虛擬網卡問題
1.21 二十一、軟連接與硬鏈接區別
【硬連接】
硬連接指通過索引節點來進行連接。在Linux的文件系統中,保存在磁碟分區中的文件不管是什麼類型都給它分配一個編號,稱為索引節點號(Inode Index)。在Linux中,多個文件名指向同一索引節點是存在的。一般這種連接就是硬連接。硬連接的作用是允許一個文件擁有多個有效路徑名,這樣用戶就可以建立硬連接到重要文件,以防止“誤刪”的功能。其原因如上所述,因為對應該目錄的索引節點有一個以上的連接。只刪除一個連接並不影響索引節點本身和其它的連接,只有當最後一個連接被刪除後,文件的數據塊及目錄的連接才會被釋放。也就是說,文件真正刪除的條件是與之相關的所有硬連接文件均被刪除。
【軟連接】
另外一種連接稱之為符號連接(Symbolic Link),也叫軟連接。軟鏈接文件有類似於Windows的快捷方式。它實際上是一個特殊的文件。在符號連接中,文件實際上是一個文本文件,其中包含的有另一文件的位置信息。
1.22 二十二、刪除/etc/inittab中的空行或以#開頭的行;
方法1
egrep -v '^$|^#' /etc/inittab
方法2
sed -r '/^$|^#/d' /etc/inittab
方法3
awk '!/^$|^#/' /etc/inittab
1.23 二十三、顯示/etc/passwd中第1,3,5列
awk -F ":" '{print $1,$3,$5}' /etc/passwd
1.24 二十四、寫出你熟悉的8個VIM的快捷鍵
移動游標 ↑k ←h →l ↓j 把游標移動到文件的第1行 gg 1G :1 把游標移動到文件的最後一行 G :$ 把游標移動到文件的第100行 100gg 100G :100 0(數字0) ^ 把游標移動到這一行的結尾 $ 測試文件 cat /etc/services /etc/sysconfig/network-scripts/ifcfg-eth0 >>/tmp/vim.log 編輯(移動並編輯) 在當行下麵插入一個空行併進入編輯模式 o(小寫字母o) 在當行上面插入一個空行併進入編輯模式 O(大寫字母O) 刪除游標所在位置到行尾的內容併進入編輯模式 C(大寫字母C) 刪除游標所在位置到行尾的內容 D d$ 快速到達行尾併進入編輯模式 A 複製 刪除 粘貼 複製游標所在行 yy 粘貼 p 多次粘貼 3p 刪除/剪切 dd 刪除當前行到文件結尾的內容 dG 其他 顯示行號 :set nu 取消顯示行號 :set nonu 查找 /你要找的內容 預設向下搜索 繼續向下查找 n 繼續向上查找 N 你要找的內容 預設向上搜索 撤銷當前操作 u undo 恢復剛纔的操作 ctrl + r vim查詢幫助 :help G :help :wq :h G nu===number
1.25 二十五、創建文件提示no space left on device 但是df -h還有空間這是什麼原因?如何排查和解決。
inode滿了
找出系統中大於1M的目錄,確認後再刪除
1.26 二十六、通過df -h發現磁碟空間不足但是du -sh發現沒有滿,說出原因和排查解決過程。
原因:
文件沒有徹底刪除導致的(硬鏈接數為0,進程調用數不為零)
排查:
lsof |grep delete
解決:
重啟對應的服務
1.27 二十七、顯示當前系統日期為年月日~周幾~小時
data +%F_%w_%H_%M_%S
1.28 二十八、當前目錄/etc/rc.d目錄 cd ../../../tmp 請問當前所在目錄是哪裡
/tmp
1.29 二十九、查找出系統中大於50k且小於100k的文件,把文件中的oldboy替換為oldgirl。
find -type -size +50k -size -100k |xargssed -i ‘s#oldboy#oldgirl#g‘
1.30 三十、把/etc/hosts 文件備份為hosts.bak
cp /etc/hosts /etc/hosts.bak
1.31 三十一、把/oldboy 改名為/lidao
mv /oldboy lidao
1.32 三十二、顯示/etc/services 文件中包含3306或1521的行(三種方法)
1.32.1 方法一:grep -n
grep -n "3306\|1521" /etc/services
1.32.2 方法二:egrep -n
egrep -n "3306\|1521" /etc/services grep -E "3306|1521" /etc/services
1.33 三十三、如何設置grep別名,讓grep預設過濾時永久顯示顏色
alias grep=’grep --color’
把這句同時寫進/root/.bashrc裡面,並且執行一下source /root/.bashrc
1.34 三十四、查找/oldboy 目錄下的所有文件結尾為*.txt的文件,並將文件內容輸出。
方法1:
cat /oldboy/*.txt
方法2:
find /oldboy -type f -name “*.txt” | xargs cat
方法3:
find /oldboy/ -type f -name "*.txt" -exec cat {} \;
1.35 三十六、描述通配符與正則表達式的區別
基本上解釋就是通配符是系統命令使用,一般用來匹配文件名或者什麼的用在系統命令中。而正則表達式是操作字元串,以行尾單位來匹配字元串使用的。
還有一點需要註意的是:*在通配符和正則表達式中有其不一樣的地方,在通配符中*可以匹配任意的0個或多個字元,而在正則表達式中他是重覆之前的一個或者多個字元,不能獨立使用的。比如通配符可以用*來匹配任意字元,而正則表達式不行,他只匹配任意長度的前面的字元。
1.36 三十七、使用ifconfig eth0 命令查看IP地址,請寫出取出IP地址的方法,至少使用兩種方法
方法1:
ifconfig eth0 | grep “10.0.0” | awk -F “:” ‘{print $2}’ | awk -F “ ” ‘{print $1}’
方法2:
ifconfig eth0 |awk 'NR==2' |awk -F"addr:|Bcast:" '{print $2}'
1.37 三十八、使用grep過濾不包含oldboy字元串的行
grep -v “oldboy”
1.38 四十、已知/oldboy/test.txt 文件內容為:
oldboy
xizi
xiaochao
請問如何把文件中的空格過濾掉(要求命令行實現)。
egrep -v “^$” /oldboy/test.txt
第2章 錯誤總結
2.1 No such file or directory
沒有此文件或目錄
2.2 command not found
找不到此命令
2.3 rm: cannot remove `/oldboy/data/': Is a directory
要刪除的是個非空目錄
2.4 find: Arguments to -type should contain only one letter
查找:-type的參數應該只包含一個字母
2.5 Firewall is not running.
防火牆沒啟動
2.6 ping: unknown host baidu.com
網不通
未知主機baidu.com
2.7 Package tree-1.5.3-3.el6.x86_64 already installed and latest version
安裝了這個軟體最新版本的包
2.8 Couldn't resolve host www.oldboyedu.com
DNS不可達
無法解析主機www.oldboyedu.com
2.9 This account is currently not available
該帳戶目前不可用
2.10 Sorry, passwords do not match
對不起,密碼不匹配