39條常見的Linux系統(tǒng)簡單面試題
1、如何看當(dāng)前Linux系統(tǒng)有幾顆物理CPU和每顆CPU的核數(shù)?
答:[root@centos6 ~ 10:55 #35]# cat /proc/cpuinfo|grep -c 'physical id'
4
[root@centos6 ~ 10:56 #36]# cat /proc/cpuinfo|grep -c 'processor'
4
2、查看系統(tǒng)負載有兩個常用的命令,是哪兩個?這三個數(shù)值表示什么含義呢?
答:[root@centos6 ~ 10:56 #37]# w
10:57:38 up 14 min, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.147.1 18:44 0.00s 0.10s 0.00s w
[root@centos6 ~ 10:57 #38]# uptime
10:57:47 up 14 min, 1 user, load average: 0.00, 0.00, 0.00
其中l(wèi)oad average即系統(tǒng)負載,三個數(shù)值分別表示一分鐘、五分鐘、十五分鐘內(nèi)系統(tǒng)的平均負載,即平均任務(wù)數(shù)。
3、vmstat r, b, si, so, bi, bo 這幾列表示什么含義呢?
答:[root@centos6 ~ 10:57 #39]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 1783964 13172 106056 0 0 29 7 15 11 0 0 99 0 0
r即running,表示正在跑的任務(wù)數(shù)
b即blocked,表示被阻塞的任務(wù)數(shù)
si表示有多少數(shù)據(jù)從交換分區(qū)讀入內(nèi)存
so表示有多少數(shù)據(jù)從內(nèi)存寫入交換分區(qū)
bi表示有多少數(shù)據(jù)從磁盤讀入內(nèi)存
bo表示有多少數(shù)據(jù)從內(nèi)存寫入磁盤
簡記:i --input,進入內(nèi)存
o --output,從內(nèi)存出去
s --swap,交換分區(qū)
b --block,塊設(shè)備,磁盤
單位都是KB
4、linux系統(tǒng)里,您知道buffer和cache如何區(qū)分嗎?
答:buffer和cache都是內(nèi)存中的一塊區(qū)域,當(dāng)CPU需要寫數(shù)據(jù)到磁盤時,由于磁盤速度比較慢,所以CPU先把數(shù)據(jù)存進buffer,然后CPU去執(zhí)行其他任務(wù),buffer中的數(shù)據(jù)會定期寫入磁盤;當(dāng)CPU需要從磁盤讀入數(shù)據(jù)時,由于磁盤速度比較慢,可以把即將用到的數(shù)據(jù)提前存入cache,CPU直接從Cache中拿數(shù)據(jù)要快的多。
5、使用top查看系統(tǒng)資源占用情況時,哪一列表示內(nèi)存占用呢?
答: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
301 root 20 0 0 0 0 S 0.3 0.0 0:00.08 jbd2/sda3-8
1 root 20 0 2900 1428 1216 S 0.0 0.1 0:01.28 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
VIRT虛擬內(nèi)存用量
RES物理內(nèi)存用量
SHR共享內(nèi)存用量
%MEM內(nèi)存用量
6、如何實時查看網(wǎng)卡流量為多少?如何查看歷史網(wǎng)卡流量?
答:安裝sysstat包,使用sar命令查看。
yum install -y sysstat#安裝sysstat包,獲得sar命令
sar -n DEV#查看網(wǎng)卡流量,默認10分鐘更新一次
sar -n DEV 1 10#一秒顯示一次,一共顯示10次
sar -n DEV -f /var/log/sa/sa22#查看指定日期的流量日志
7、如何查看當(dāng)前系統(tǒng)都有哪些進程?
答:ps -aux 或者ps -elf
[root@centos6 ~ 13:20 #56]# ps -aux
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 2900 1428 ? Ss 10:43 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 10:43 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 10:43 0:00 [migration/0]
root 4 0.0 0.0 0 0 ? S 10:43 0:00 [ksoftirqd/0]
……
[root@centos6 ~ 13:21 #57]# ps -elf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 1 0 0 80 0 - 725 - 10:43 ? 00:00:01 /sbin/init
1 S root 2 0 0 80 0 - 0 - 10:43 ? 00:00:00 [kthreadd]
1 S root 3 2 0 -40 - - 0 - 10:43 ? 00:00:00 [migration/0]
1 S root 4 2 0 80 0 - 0 - 10:43 ? 00:00:00 [ksoftirqd/0]
1 S root 5 2 0 -40 - - 0 - 10:43 ? 00:00:00 [migration/0]
8、ps 查看系統(tǒng)進程時,有一列為STAT, 如果當(dāng)前進程的stat為Ss 表示什么含義?如果為Z表示什么含義?
答:S表示正在休眠;s表示主進程;Z表示僵尸進程。
9、如何查看系統(tǒng)都開啟了哪些端口?
答:[root@centos6 ~ 13:20 #55]# netstat -lnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1035/sshd
tcp 0 0 :::22 :::* LISTEN 1035/sshd
udp 0 0 0.0.0.0:68 0.0.0.0:* 931/dhclient
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ACC ] STREAM LISTENING 6825 1/init @/com/ubuntu/upstart
unix 2 [ ACC ] STREAM LISTENING 8429 1003/dbus-daemon /var/run/dbus/system_bus_socket
10、如何查看網(wǎng)絡(luò)連接狀況?
答:[root@centos6 ~ 13:22 #58]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 192.168.147.130:22 192.168.147.1:23893 ESTABLISHED
tcp 0 0 :::22 :::* LISTEN
udp 0 0 0.0.0.0:68 0.0.0.0:*
……
11、想修改ip,需要編輯哪個配置文件,修改完配置文件后,如何重啟網(wǎng)卡,使配置生效?
答:使用vi或者vim編輯器編輯網(wǎng)卡配置文件/etc/sysconfig/network-scripts/ifcft-eth0(如果是eth1文件名為ifcft-eth1),內(nèi)容如下:
DEVICE=eth0
HWADDR=00:0C:29:06:37:BA
TYPE=Ethernet
UUID=0eea1820-1fe8-4a80-a6f0-39b3d314f8da
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.147.130
NETMASK=255.255.255.0
GATEWAY=192.168.147.2
DNS1=192.168.147.2
DNS2=8.8.8.8
修改網(wǎng)卡后,可以使用命令重啟網(wǎng)卡:
ifdown eth0
ifup eth0
也可以重啟網(wǎng)絡(luò)服務(wù):
service network restart
12、能否給一個網(wǎng)卡配置多個IP? 如果能,怎么配置?
答:可以給一個網(wǎng)卡配置多個IP,配置步驟如下:
cat /etc/sysconfig/network-scripts/ifcfg-eth0#查看eth0的配置
DEVICE=eth0
HWADDR=00:0C:29:06:37:BA
TYPE=Ethernet
UUID=0eea1820-1fe8-4a80-a6f0-39b3d314f8da
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.147.130
NETMASK=255.255.255.0
GATEWAY=192.168.147.2
DNS1=192.168.147.2
DNS2=8.8.8.8
(1)新建一個ifcfg-eth0:1文件
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:1
(2)修改其內(nèi)容如下:vim /etc/sysconfig/network-scripts/ifcfg-eth0:1
DEVICE=eth0:1
HWADDR=00:0C:29:06:37:BA
TYPE=Ethernet
UUID=0eea1820-1fe8-4a80-a6f0-39b3d314f8da
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.147.133
NETMASK=255.255.255.0
GATEWAY=192.168.147.2
DNS1=192.168.147.2
DNS2=8.8.8.8
(3)重啟網(wǎng)絡(luò)服務(wù):
service network restart
13、如何查看某個網(wǎng)卡是否連接著交換機?
答:mii-tool eth0 或者 mii-tool eth1
14、如何查看當(dāng)前主機的主機名,如何修改主機名?要想重啟后依舊生效,需要修改哪個配 置文件呢?
答:查看主機名:hostname
centos6.5
修改主機名:hostname centos6.5-1
永久生效需要修改配置文件:vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=centos6.5-1
15、設(shè)置DNS需要修改哪個配置文件?
答:(1)在文件 /etc/resolv.conf 中設(shè)置DNS
(2)在文件 /etc/sysconfig/network-scripts/ifcfg-eth0 中設(shè)置DNS
16、使用iptables 寫一條規(guī)則:把來源IP為192.168.1.101訪問本機80端口的包直接拒絕
答:iptables -I INPUT -s 192.168.1.101 -p tcp --dport 80 -j REJECT
17、要想把iptable的規(guī)則保存到一個文件中如何做?如何恢復(fù)?
答:使用iptables-save重定向到文件中:iptables-save > 1.ipt
使用iptables-restore反重定向回來:iptables-restore < 1.ipt
18、如何備份某個用戶的任務(wù)計劃?
答:將/var/spool/cron/目錄下指定用戶的任務(wù)計劃拷貝到備份目錄cron_bak/下即可
cp /var/spool/cron/rachy /tmp/bak/cron_bak/
19、任務(wù)計劃格式中,前面5個數(shù)字分表表示什么含義?
答:依次表示:分、時、日、月、周
20、如何可以把系統(tǒng)中不用的服務(wù)關(guān)掉?
答:(1)使用可視化工具:ntsysv
(2)使用命令:chkconfig servicename off
21、如何讓某個服務(wù)(假如服務(wù)名為 nginx)只在3,5兩個運行級別開啟,其他級別關(guān)閉?
答:先關(guān)閉所有運行級別:chkconfig nginx off
然后打開35運行級別:chkconfig --level 35 nginx on
22、rsync 同步命令中,下面兩種方式有什么不同呢?
(1) rsync -av /dira/ ip:/dirb/
(2) rsync -av /dira/ ip::dirb
答:(1)前者是通過ssh方式同步的
(2)后者是通過rsync服務(wù)的方式同步的
23、rsync 同步時,如果要同步的源中有軟連接,如何把軟連接的目標(biāo)文件或者目錄同步?
答:同步源文件需要加-L選項
24、某個賬號登陸linux后,系統(tǒng)會在哪些日志文件中記錄相關(guān)信息?
答:用戶身份驗證過程記錄在/var/log/secure中,登錄成功的信息記錄在/var/log/wtmp。
25、網(wǎng)卡或者硬盤有問題時,我們可以通過使用哪個命令查看相關(guān)信息?
答:使用命令dmesg
26、分別使用xargs和exec實現(xiàn)這樣的需求,把當(dāng)前目錄下所有后綴名為.txt的文件的權(quán)限修改為777
答:(1)find ./ -type f -name "*.txt" |xargs chmod 777
(2)find ./ -type f -name "*.txt" -exec chmod 777 {} ;
27、有一個腳本運行時間可能超過2天,如何做才能使其不間斷的運行,而且還可以隨時觀察腳本運行時的輸出信息?
答:使用screen工具
28、在Linux系統(tǒng)下如何按照下面要求抓包:只過濾出訪問http服務(wù)的,目標(biāo)ip為192.168.0.111,一共抓1000個包,并且保存到1.cap文件中?
答:tcpdump -nn -s0 host 192.168.0.111 and port 80 -c 1000 -w 1.cap
29、rsync 同步數(shù)據(jù)時,如何過濾出所有.txt的文件不同步?
答:加上--exclude選項:--exclude=“*.txt”
30、rsync同步數(shù)據(jù)時,如果目標(biāo)文件比源文件還新,則忽略該文件,如何做?
答:保留更新使用-u或者--update選項
31、想在Linux命令行下訪問某個網(wǎng)站,并且該網(wǎng)站域名還沒有解析,如何做?
答:在/etc/hosts文件中增加一條從該網(wǎng)站域名到其IP的解析記錄即可,或者使用curl -x
32、自定義解析域名的時候,我們可以編輯哪個文件?是否可以一個ip對應(yīng)多個域名?是否一個域名對應(yīng)多個ip?
答:編輯 /etc/hosts ,可以一個ip對應(yīng)多個域名,不可以一個域名對多個ip
33、我們可以使用哪個命令查看系統(tǒng)的歷史負載(比如說兩天前的)?
答:sar -q -f /var/log/sa/sa22 #查看22號的系統(tǒng)負載
34、在Linux下如何指定dns服務(wù)器,來解析某個域名?
答:使用dig命令:dig @DNSip domain.com
如:dig @8.8.8.8 www.baidu.com#使用谷歌DNS解析百度
35、使用rsync同步數(shù)據(jù)時,假如我們采用的是ssh方式,并且目標(biāo)機器的sshd端口并不是默認的22端口,那我們?nèi)绾巫觯?/strong>
答:rsync "--rsh=ssh -p 10022"或者rsync -e "ssh -p 10022"
36、rsync同步時,如何刪除目標(biāo)數(shù)據(jù)多出來的數(shù)據(jù),即源上不存在,但目標(biāo)卻存在的文件或者目錄?
答:加上--delete選項
37、使用free查看內(nèi)存使用情況時,哪個數(shù)值表示真正可用的內(nèi)存量?
答:free列第二行的值
38、有一天你突然發(fā)現(xiàn)公司網(wǎng)站訪問速度變的很慢很慢,你該怎么辦呢?
(服務(wù)器可以登陸,提示:你可以從系統(tǒng)負載和網(wǎng)卡流量入手)
答:可以從兩個方面入手分析:分析系統(tǒng)負載,使用w命令或者uptime命令查看系統(tǒng)負載,如果負載很高,則使用top命令查看CPU,MEM等占用情況,要么是CPU繁忙,要么是內(nèi)存不夠,如果這二者都正常,再去使用sar命令分析網(wǎng)卡流量,分析是不是遭到了攻擊。一旦分析出問題的原因,采取對應(yīng)的措施解決,如決定要不要殺死一些進程,或者禁止一些訪問等。
39、rsync使用服務(wù)模式時,如果我們指定了一個密碼文件,那么這個密碼文件的權(quán)限應(yīng)該設(shè)置成多少才可以?
答:600或400