
image.png
一:簡答
1.1:centos6與7啟動流程 (4分)
前五步相同:
| Centos6 | Centos7 |
|---|---|
| 1.開機 | 1.開機 |
| 2.bios開機自檢 | 2.bios開機自檢 |
| 3.MBR引導 | 3.MBR引導 |
| 4.GRUB菜單 選擇不同內核 CentOS6進入單用戶模式 | 4.GRUB菜單 選擇不同內核 CentOS6進入單用戶模式 |
| 5.加載內核 /boot加載到內存 | 5.加載內核 /boot加載到內存 |
| 6.運行INIT進程 CentOS6第一個進程 | 6.運行systemd進程 讀取第一個運行程序 ps -ef |
| 7.讀取/etc/inittab | 7.讀取運行級別 /etc/systemd/system/ |
| 8.串行 讀取/etc/rc.sysinit 初始化系統(tǒng) 設置主機名 ip地址 | 8.并行 初始化系統(tǒng)/etc/systemd/system |
| 9.根據(jù)運行級別啟動相應腳本軟件(串行) | 9.啟動服務 |
| 10.啟動minggetty登錄界面 運行l(wèi)ogin | 10.啟動getty登錄界面 運行l(wèi)ogin |
1.2:centos6與7運行級別(4分)
| Centos 6 | Centos 7 | |
|---|---|---|
| 0 | 關機 | 關機 poweroff.target |
| 1 | 單用戶 | 救援模式 rescue.target |
| 2 | 沒有網(wǎng)絡的多用戶 | 多用戶模式 multi-user.target |
| 3 | 完全多用戶 | 多用戶模式 multi-user.target |
| 4 | 待開發(fā) 保留 | 多用戶模式 multi-user.target |
| 5 | 圖形界面模式 | 圖形界面模式 graphical.target |
| 6 | 重啟 | 重啟 reboot.target |
1.3:什么是inode,什么是block(2分)
含義:
inode (index node)
1.索引節(jié)點inode號碼
2.inode空間 存放文件屬性信息(大小 所有者 權限 文件類型 硬連接數(shù) 時間)和block的位置,但是文件名沒有存放在這里
block 數(shù)據(jù)塊
block 用來存放文件的內容
特點:
inode: (ls -i查看目錄inode號)
1.256字節(jié) (磁盤分區(qū)大于500MB)
2.inode在同一個分區(qū)(文件系統(tǒng))中是唯一的
3.創(chuàng)建1個非空的文件需要占用1個inode和至少一個block
block:
1.block大小是4K
2.文件比較小的,剩余的將無法使用
3.文件比較大的,占用多個block
查看整體情況:
block 一共有多 還剩多少(查看磁盤空間使用情況)
df -h 以人類可讀的形式
inode一共有多少 還剩多少
df -i inode剩余
1.4:寫出20個系統(tǒng)命令,并簡述作用(10分)
ls 全拼list,功能是列出目錄的內容及其內容屬性信息。
cd 全拼change directory,功能是從當前工作目錄切換到指定的工作目錄。
cp 全拼copy,其功能為復制文件或目錄。
find 查找的意思,用于查找目錄及目錄下的文件。
mkdir 全拼make directories,其功能是創(chuàng)建目錄。
mv 全拼move,其功能是移動或重命名文件。
pwd 全拼print working directory,其功能是顯示當前工作目錄的絕對路徑。
rm 全拼remove,其功能是刪除一個或多個文件或目錄。
touch 創(chuàng)建新的空文件,改變已有文件的時間戳屬性。
tree 功能是以樹形結構顯示目錄下的內容。
more 分頁顯示文件內容。
less 分頁顯示文件內容,more命令的相反用法。
head 顯示文件內容的頭部。
tail 顯示文件內容的尾部。
cut 將文件的每一行按指定分隔符分割并輸出。
uname 顯示操作系統(tǒng)相關信息的命令。
hostname 顯示或者設置當前系統(tǒng)的主機名。
chattr 改變文件的擴展屬性。
lsattr 查看文件擴展屬性。
file 顯示文件的類型。
1.5: 軟硬鏈接區(qū)別 (4分)
如何創(chuàng)建:
硬鏈接 ln
軟鏈接 ln -s
含義:
硬鏈接ln:
在同一分區(qū)中inode號碼相同的,節(jié)點相同的文件,超市前后門(多個入口)
軟鏈接:
相當于快捷方式,存放存放源文件的位置,inode節(jié)點號與源文件不同
特點:
1.不能對目錄創(chuàng)建硬鏈接,但可以創(chuàng)建軟鏈接,對目錄的軟鏈接會被經常用到
2.軟鏈接可以跨文件系統(tǒng),硬鏈接不可以跨文件系統(tǒng)
怎么沒的 (源文件 軟鏈接 硬鏈接 與刪除)
1.刪除軟鏈接文件,對源文件及硬鏈接文件沒有影響
2.刪除文件的硬鏈接文件,對源文及軟鏈接文件沒有影響
3.刪除鏈接文件的源文件,對硬鏈接文件無影響,會導致其軟鏈接失效(閃爍)
4.同時刪除源文及硬鏈接文件,整個文件才會被真正的刪除
1.6:raid0 raid1特點(4分)
| Raid級別 | 需要幾塊盤 | 存取速度 | 容量 | 冗余 | 安全性 | 使用場景 | 舉例 |
|---|---|---|---|---|---|---|---|
| Raid0 | 至少1快 | 讀寫都快 | 所有硬盤容量的總和 | 0 | 差,損失1塊全不能用 | 不要安全只求速度 | 數(shù)據(jù)塊從庫,存儲從庫 |
| Raid1 | 只能2塊 | 寫入慢,讀取正ok | 總量的一半 | 100% | 好,壞1塊還可以使用,有備份 | 只追求安全性,對速度無要求 | 系統(tǒng)盤,監(jiān)控服務器 |
| Raid5 | 最少3塊 | 寫入慢,讀取正常 | 損失一塊盤容量 | 有1塊盤 | 正常,最多壞1塊 | 對速度安全,對速度要求不高 | 普遍數(shù)據(jù)庫,存儲訪問量不高 |
| Raid10 | 最少4塊 | 讀寫都塊 | 總量的一半 | 可以損壞一半 | 好,壞1塊還可以使用,有備份 | 安全和性能都要 | 高并發(fā)或高訪問量,數(shù)據(jù)庫主庫 存儲 |
1.7:磁盤分區(qū)常見方案(6分)
| 企業(yè)磁盤分區(qū)規(guī)則 | /boot引導分區(qū) | swap交換分區(qū) | / 分區(qū) | /data分區(qū) |
|---|---|---|---|---|
| 通常情況 | 200M~1G | 小于8G給1.5倍,大于8G 最多給8G | 剩余多少給多少 | |
| 數(shù)據(jù)重要的情況 | 200M~1G | 小于8G給1.5倍,大于8G 最多給8G | 20~200G | 余下全部分給/data |
| 大網(wǎng)站數(shù)據(jù)重要的情況 | 200M~1G | 小于8G給1.5倍,大于8G 最多給8G | 20~200G | 剩余保留,誰用誰分 |
1.8: 單引號,雙引號,不加引號區(qū)別(3分)
| 區(qū)別 | |
|---|---|
| 單引號 | 所見即所得 |
| 雙引號 | 解析命令,但是需要與或$( )結合 |
| 不加引號 | 與雙引號類似,支持花括號(通配符) |
| 反引號 | == $( )與后者作用相同,與雙引號類似解析命令 |
二:填空
2.1:寫出一下特殊符號的含義(一種即可)(每個0.5分)
#
配置文件注釋
root用戶命令提示符
;
命令結束,連續(xù)不同命令的分隔符
!
邏輯運算中的“非”(not)
~ 當前用戶家目錄
.(點) 當前目錄
.. 上一級目錄
\- 切換上一次的目錄
\` ` 返回上一級目錄
\> 標準輸出重定向,先清空文件內容再寫入
\>> 標準輸出追加重定向,追加內容到文件尾部
2> 標準錯誤輸出重定向,先清空文件然后把錯誤信息寫入文件中
2>> 標準追加錯誤輸出重定向, 把錯誤信息追加到文件結尾
2.2:寫出一下正則表達式的含義(每個0.5分)
. 匹配任意字符 類似通配符的問號 不匹配空行
* 逐行匹配,前1個字符連續(xù)出現(xiàn)0次或0次以上
.* 表示所有內容
^ 以...開頭的行
$ 以...結尾的行
^$ 空行
[ ] 匹配[]集合內的任意一個字符
[^ ] 取反,不包含[]集合內的任意一個字符
2.3:寫出一下擴展正則表達式的含義(每個0.5分)
+ 匹配前一個字符1次或1次以上
? 匹配前一個字符0次或1次
| 或者
{ } 匹配字符最少幾次,最多幾次
三:命令
3.1:找出/etc/passwd文件中以root開頭,以bash結尾的行,并顯示行號(2分)
grep -n '^root.*bash$' /etc/passwd
3.2:匹配file文件中foo那行及上下5行、顯示foo及前5行、顯示foo及后5行(2分)
grep -C 5 'foo' file 上下五行
grep -B 5 'foo' file 上五行
grep -A 5 'foo' file 下五行
3.3:打印file.txt文件中的第10行(2分)
sed -n '10p' file.txt
3.4:查詢文件oldboy.txt的第4-6行(2分)
sed -n '4,6p' file.txt
3.5:刪除文件oldboy.txt中所有帶有數(shù)字的行(2分)
sed -i '/[0-9]/d' file.txt
3.6:將文件中的oldboy全部替換為oldgirl,同時將49000448改為31333741。(2分)
sed -e 's#oldboy#oldgirl#g;s#49000448#31333741#g' file.txt
3.7:把/目錄下所有以.txt結尾的文件中包含oldgirl的字符串全部替換為oldboy. (2分)
grep 'oldgirl' `find /-type f -name '*.txt'`|sed -i 's#oldgirl#oldboy#g'
3.8:使用awk取出/etc/passwd第一列數(shù)據(jù)也就是取出
用戶名。(2分)
awk -F: '{print $1}' /etc/passwd
請看下題:
cat reg.txt
Zhang Dandan 41117397 :250:100:175
Zhang Xiaoyu 390320151 :155:90:201
Meng Feixue 0042789 :250:60:50
Wu Waiwai 70271111 :250:80:75
Liu Bingbing 41117483 :250:100:175
Wang Xiaoai 3515064655 :50:95:135
3.9:用awk獲取reg.txt文件中第三行的倒數(shù)第二列字段(2分)
awk 'NR==3{print $(NF-1)}' reg.txt
3.10:顯示文件reg.txt所有以41開頭的ID號碼的人的全名和ID號碼(2分)
awk '$3~/^41/{print $1,$2,$3}' reg.txt
3.11:顯示小雨的姓名與id號(2分)
awk '$2~/Xiaoyu/{print $1,$2,$3}' reg.txt
3.12:顯示Xiaoyu的捐款.每個值時都有以$開頭.如$520$200$135 (2分)
awk '$NF{print $4}' reg.txt |tr ':' '$'
awk -F'[: ]+' -vOFS="$" '$2~/Xiaoyu/{print "$"$4,$5,$6}' reg.txt
awk -F'[: ]+' '$2~/Xiaoyu/{gsub(/:/,"$");print $NF}' reg.txt
3.13:計算第一次捐款的總額(2分)
awk -F: '{i=i+$2}END{print i}' reg.txt
3.14:使用awk計算0加到100(2分)
seq 100|awk '{i=i+$1}END{print i}'
3.15:計算/etc/ssh/sshd.config文件中所有以#開頭的行數(shù)(2分)
awk '$1~/^#/{i=i+1}END{print i}' /etc/ssh/sshd_config
3.16:取出/etc/fstab 權限(2分)
16777282 -rw-r--r--. 1 root root 501 Mar 26 13:52 /etc/fstab
ll -id /etc/fstab |awk -F'[ .]' '{print $2}'
3.17:查找/oldboy下最近7天修改過、大于10k,小于10M的文件復制到/tmp下(兩種方法)(4分)
find /tmp/ -type f -size +1k -size -10M -mtime -7 |xargs -i cp {} /tmp/
find /tmp/ -type f -size +1k -size -10M -mtime -7 -exec cp {} /tmp/ \;
\cp `find /tmp/ -type f -size +1k -size -10M -mtime -7` /tmp/
3.18:調換/etc/passwd 第一列和最后一列內容(至少2種方法)(4分)
abc:x:1010:1000::/home/abc:/bin/bash
awk -F: -vOFS=":" '{u=$1;$1=$NF;$NF=u;print $0}' /etc/passwd
sed -r 's#(^.*:)(.*)(/.*)#\3 \1#g' /etc/passwd
3.19:查找/etc下以.conf結尾的文件并以時間命名打包到/tmp下(兩種方法)(4分)
find /etc/ -type f -name '*.conf' -exec tar zcf /tmp/a.tar.gz {} +
find /etc/ -type f -name '*.conf'|xargs tar zcf /tmp/a.tar.gz {} +
tar zcf /tmp/.a.tar.gz `find /etc/ -type f -name '*.conf'`
3.20:取ip地址(三種方法)(6分)
inet 10.0.0.201/24 brd 10.0.0.255 scope global eth0
ip a s eth0|sed -nr '3s#^.*t (.*)/.*#\1#gp' #用sed
ip a s eth0|awk -F"[ /]+" 'NR==3{print $3}' #用awk
ip a s eth0|sed -n '3p'|awk -F'[ /]+' '{print$3}' #sed+awk
ip a s eth0|grep 'inet '|sed -r 's#^.*t (.*)/.*#\1#g' #grep+sed
ip a s eth0|grep 'inet '|awk -F'[ /]+' '{print $3}' #grep+awk
3.21:找出/oldboy下面以.txt結尾的文件把里面的oldboy替換為oldgirl(三種方法) (6分)
sed -i 's#oldboy#oldgirl#g' `find /oldboy/ -type f -name '*.txt'`
awk 'gsub(/oldboy/,"oldgirl"){print $0}' `find /oldboy/ -type f -name '*.txt'`
grep 'oldboy' `find /oldboy/ -type f -name '*.txt'`|sed 's#oldboy#oldgirl#g'
四:翻譯(每個2分)
You have mail in /var/spool/mail/root
你有一封來自此目錄的郵件
Can't open file for writing
不能打開文件修改
unexpected EOF while looking for matching `"'
找不到符號""
Name or service not known
找不到域名
user 'oldboy' already exists
oldboy用戶已存在