來自公眾號:馬哥Linux運維
作者:馬哥企業(yè)教練團隊
1入篮、解釋下什么是GPL,GNU,自由軟件?
GPL:(通用公共許可證):一種授權(quán),任何人有權(quán)取得盹沈、修改、重新發(fā)布自由軟件的權(quán)力吃谣。
GNU:(革奴計劃):目標是創(chuàng)建一套完全自由乞封、開放的的操作系統(tǒng)。
自由軟件:是一種可以不受限制地自由使用岗憋、復(fù)制肃晚、研究、修改和分發(fā)的軟件仔戈。主要許可證有GPL和BSD許可證兩種关串。
2、Linux系統(tǒng)里杂穷,buffer和cache如何區(qū)分悍缠?
buffer和cache都是內(nèi)存中的一塊區(qū)域,
當CPU需要寫數(shù)據(jù)到磁盤時耐量,由于磁盤速度比較慢飞蚓,所以CPU先把數(shù)據(jù)存進buffer,
然后CPU去執(zhí)行其他任務(wù)廊蜒,buffer中的數(shù)據(jù)會定期寫入磁盤趴拧;
當CPU需要從磁盤讀入數(shù)據(jù)時,由于磁盤速度比較慢山叮,
可以把即將用到的數(shù)據(jù)提前存入cache著榴,CPU直接從Cache中拿數(shù)據(jù)要快的多。
3屁倔、描述Linux運行級別0-6的各自含義
0:關(guān)機模式
1:單用戶模式<==破解root密碼
2:無網(wǎng)絡(luò)支持的多用戶模式
3:有網(wǎng)絡(luò)支持的多用戶模式(文本模式脑又,工作中最常用的模式)
4:保留,未使用
5:有網(wǎng)絡(luò)支持的X-windows支持多用戶模式(桌面)
6: 重新引導(dǎo)系統(tǒng)锐借,即重啟
4问麸、描述Linux系統(tǒng)從開機到登陸界面的啟動過程
⑴開機BIOS自檢,加載硬盤钞翔。
⑵讀取MBR,MBR引導(dǎo)严卖。
⑶grub引導(dǎo)菜單(Boot Loader)。
⑷加載內(nèi)核kernel布轿。
⑸啟動init進程哮笆,依據(jù)inittab文件設(shè)定運行級別
⑹init進程来颤,執(zhí)行rc.sysinit文件。
⑺啟動內(nèi)核模塊稠肘,執(zhí)行不同級別的腳本程序福铅。
⑻執(zhí)行/etc/rc.d/rc.local
⑼啟動mingetty,進入系統(tǒng)登陸界面启具。
5本讥、描述Linux下軟鏈接和硬鏈接的區(qū)別
在Linux系統(tǒng)中,鏈接分為兩種鲁冯,一種是硬鏈接(Hard link),另一種稱為符號鏈接或軟鏈接(Symbolic Link)色查。
①默認不帶參數(shù)的情況下薯演,ln創(chuàng)建的是硬鏈接,帶-s參數(shù)的ln命令創(chuàng)建的是軟鏈接秧了。
②硬鏈接文件與源文件的inode節(jié)點號相同跨扮,而軟鏈接文件的inode節(jié)點號,與源文件不同验毡,
③ln命令不能對目錄創(chuàng)建硬鏈接衡创,但可以創(chuàng)建軟鏈接。對目錄的軟鏈接會經(jīng)常使用到晶通。
④刪除軟鏈接文件璃氢,對源文件和硬鏈接文件無任何影響。
⑤刪除文件的硬鏈接文件狮辽,對源文件及軟鏈接文件無任何影響一也。
⑥刪除鏈接文件的源文件,對硬鏈接文件無影響喉脖,會導(dǎo)致其軟鏈接失效(紅底白字閃爍狀)椰苟。
⑦同時刪除源文件及其硬鏈接文件,整個文件才會被真正的刪除树叽。
⑧很多硬件設(shè)備的快照功能舆蝴,使用的就是類似硬鏈接的原理。
⑨軟鏈接可以跨文件系統(tǒng)题诵,硬鏈接不可以跨文件系統(tǒng)洁仗。
6、shell腳本中“$?”標記的用途是什么?
在寫一個shell腳本時仇轻,如果你想要檢查前一命令是否執(zhí)行成功京痢,在if條件中使用“?
0
如果結(jié)束狀態(tài)是0篷店,說明前一個命令執(zhí)行成功祭椰。
root@localhost:~# ls /usr/bin/share
ls: cannot access /usr/bin/share: No such file or directory
root@localhost:~# echo $?
2
如果結(jié)束狀態(tài)不是0臭家,說明命令執(zhí)行失敗。
7方淤、如何讓history命令顯示具體時間钉赁?
$ HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S"
$ export HISTTIMEFORMAT
重新開機后會還原,可以寫/etc/profile
8携茂、用shell統(tǒng)計ip訪問情況你踩,要求分析nginx訪問日志,找出訪問頁面數(shù)量在前10位的IP數(shù)讳苦。以下是nginx的訪問日志節(jié)選
202.101.129.218- - [26/Mar/2006:23:59:55 +0800] "GET /online/stat_inst.php?pid=d065HTTP/1.1" 302 20-"-" "-" "Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1)"
請寫shell實現(xiàn)輸出top10的IP列表带膜。
1}' access.log |sort|uniq -c |head -n 10
31 202.101.129.218
21 123.93.29.11
11 13.92.19.31
9、將本地的80端口的請求轉(zhuǎn)發(fā)到8080端口鸳谜,本機地址10.0.0.254膝藕,寫出命令
$ iptables -t nat -A PREROUTING -d 10.0.0.254 -p tcp --dprot 80 -j DNAT --to-destination 10.0.0.254:8080
10、Load過高的可能性有哪些咐扭?
排查思路:
- 首先排查哪些進程cpu占用率高芭挽。通過命令 ps ux
2、假如通過第一步看到一個JAVA進程占有資源比較高蝗肪,查看對應(yīng)java進程的每個線程的CPU占用率袜爪。通過命令:ps -Lp 15047
3、追蹤線程內(nèi)部薛闪,查看load過高原因辛馆。通過命令:jstack 15047
其他經(jīng)驗:
cpu load的飆升,一方面可能和full gc的次數(shù)增大有關(guān)逛绵,一方面可能和死循環(huán)有關(guān)
11怀各、描述/etc/fstab 文件中每個字段的含義?
(1)第一列:將被加載的文件系統(tǒng)名术浪;
(2)第二列:該文件系統(tǒng)的安裝點瓢对;
(3)第三列:文件系統(tǒng)的類型;
(4)第四列:設(shè)置參數(shù)胰苏;
(5)第五列:供備份程序確定上次備份距現(xiàn)在的天數(shù)硕蛹;
(6)第六列:在系統(tǒng)引導(dǎo)時檢測文件系統(tǒng)的順序。
12硕并、 如何在打包時排除指定目錄?
$ tar --exclude=/home/dmtsai --exclude=.tar -zcvf myfile.tar.gz /home/ /etc
- 怎么生成隨機密碼?
mkpasswd -l 8 -C 2 -c 2 -d 4 -s 0
14法焰、如何統(tǒng)計tcp狀態(tài)?
netstat -an | grep '^tcp' | awk '{++s[$NF]} END{for(i in s) print i "\t"s[i]}'
15倔毙、mysql 忘記 root 密碼怎么辦
$ mysqld_safe --user=mysql --skip-grant-tables --skip-networking & use mysql;
mysql> update user set password=password('123123') where user='root';