歡迎光臨
每天分享高質量文章

39條常見的Linux系統簡單面試題

1

如何看當前Linux系統有幾顆物理CPU和每顆CPU的核數?

答:[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

檢視系統負載有兩個常用的命令,是哪兩個?這三個數值表示什麼含義呢?

答:[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

其中load average即系統負載,三個數值分別表示一分鐘、五分鐘、十五分鐘內系統的平均負載,即平均任務數。

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,表示正在跑的任務數

b即blocked,表示被阻塞的任務數

si表示有多少資料從交換分割槽讀入記憶體

so表示有多少資料從記憶體寫入交換分割槽

bi表示有多少資料從磁碟讀入記憶體

bo表示有多少資料從記憶體寫入磁碟

簡記:i –input,進入記憶體

o –output,從記憶體出去

s –swap,交換分割槽

b –block,塊裝置,磁碟

單位都是KB

4

linux系統裡,您知道buffer和cache如何區分嗎?

答:buffer和cache都是記憶體中的一塊區域,當CPU需要寫資料到磁碟時,由於磁碟速度比較慢,所以CPU先把資料存進buffer,然後CPU去執行其他任務,buffer中的資料會定期寫入磁碟;當CPU需要從磁碟讀入資料時,由於磁碟速度比較慢,可以把即將用到的資料提前存入cache,CPU直接從Cache中拿資料要快的多。

5

使用top檢視系統資源佔用情況時,哪一串列示記憶體佔用呢?

答: 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虛擬記憶體用量

RES物理記憶體用量

SHR共享記憶體用量

%MEM記憶體用量

6

如何實時檢視網絡卡流量為多少?如何檢視歷史網絡卡流量?

答:安裝sysstat包,使用sar命令檢視。

yum install -y sysstat#安裝sysstat包,獲得sar命令

sar -n DEV#檢視網絡卡流量,預設10分鐘更新一次

sar -n DEV 1 10#一秒顯示一次,一共顯示10次

sar -n DEV -f /var/log/sa/sa22#檢視指定日期的流量日誌

7

如何檢視當前系統都有哪些行程?

答: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 檢視系統行程時,有一列為STAT, 如果當前行程的stat為Ss 表示什麼含義?如果為Z表示什麼含義?

答:S表示正在休眠;s表示主行程;Z表示僵屍行程。

9

如何檢視系統都開啟了哪些埠?

答:[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

如何檢視網路連線狀況?

答:[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,需要編輯哪個配置檔案,修改完配置檔案後,如何重啟網絡卡,使配置生效?

答:使用vi或者vim編輯器編輯網絡卡配置檔案/etc/sysconfig/network-scripts/ifcft-eth0(如果是eth1檔案名為ifcft-eth1),內容如下:

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

修改網絡卡後,可以使用命令重啟網絡卡:

ifdown eth0

ifup eth0

也可以重啟網路服務:

service network restart

12

能否給一個網絡卡配置多個IP? 如果能,怎麼配置?

答:可以給一個網絡卡配置多個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)修改其內容如下: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)重啟網路服務:

service network restart

13

如何檢視某個網絡卡是否連線著交換機?

答:mii-tool eth0 或者 mii-tool eth1

14

如何檢視當前主機的主機名,如何修改主機名?要想重啟後依舊生效,需要修改哪個配 置檔案呢?

答:檢視主機名:hostname

centos6.5

修改主機名:hostname centos6.5-1

永久生效需要修改配置檔案:vim /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=centos6.5-1

15

設定DNS需要修改哪個配置檔案?

答:(1)在檔案 /etc/resolv.conf 中設定DNS

(2)在檔案 /etc/sysconfig/network-scripts/ifcfg-eth0 中設定DNS

16

使用iptables 寫一條規則:把來源IP為192.168.1.101訪問本機80埠的包直接拒絕

答:iptables -I INPUT -s 192.168.1.101 -p tcp –dport 80 -j REJECT

17

要想把iptable的規則儲存到一個檔案中如何做?如何恢復?

答:使用iptables-save重定向到檔案中:iptables-save > 1.ipt

使用iptables-restore反重定向回來:iptables-restore < 1.ipt

18

如何備份某個使用者的任務計劃?

答:將/var/spool/cron/目錄下指定使用者的任務計劃複製到備份目錄cron_bak/下即可

cp /var/spool/cron/rachy /tmp/bak/cron_bak/

19

任務計劃格式中,前面5個數字分表表示什麼含義?

答:依次表示:分、時、日、月、周

20

如何可以把系統中不用的服務關掉?

答:(1)使用視覺化工具:ntsysv

(2)使用命令:chkconfig servicename off

21

如何讓某個服務(假如服務名為 nginx)只在3,5兩個執行級別開啟,其他級別關閉?

答:先關閉所有執行級別: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服務的方式同步的

23

rsync 同步時,如果要同步的源中有軟連線,如何把軟連線的標的檔案或者目錄同步?

答:同步源檔案需要加-L選項

24

某個賬號登陸linux後,系統會在哪些日誌檔案中記錄相關資訊?

答:使用者身份驗證過程記錄在/var/log/secure中,登入成功的資訊記錄在/var/log/wtmp。

25

網絡卡或者硬碟有問題時,我們可以透過使用哪個命令檢視相關資訊?

答:使用命令dmesg

26

分別使用xargs和exec實現這樣的需求,把當前目錄下所有字尾名為.txt的檔案的許可權修改為777

答:(1)find ./ -type f -name “*.txt” |xargs chmod 777

(2)find ./ -type f -name “*.txt” -exec chmod 777 {} ;

27

有一個指令碼執行時間可能超過2天,如何做才能使其不間斷的執行,而且還可以隨時觀察指令碼執行時的輸出資訊?

答:使用screen工具

28

在Linux系統下如何按照下麵要求抓包:只過濾出訪問http服務的,標的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 同步資料時,如何過濾出所有.txt的檔案不同步?

答:加上–exclude選項:–exclude=“*.txt”

30

rsync同步資料時,如果標的檔案比源檔案還新,則忽略該檔案,如何做?

答:保留更新使用-u或者–update選項

31

想在Linux命令列下訪問某個網站,並且該網站域名還沒有解析,如何做?

答:在/etc/hosts檔案中增加一條從該網站域名到其IP的解析記錄即可,或者使用curl -x

32

自定義解析域名的時候,我們可以編輯哪個檔案?是否可以一個ip對應多個域名?是否一個域名對應多個ip?

答:編輯 /etc/hosts ,可以一個ip對應多個域名,不可以一個域名對多個ip

33

我們可以使用哪個命令檢視系統的歷史負載(比如說兩天前的)?

答:sar -q -f /var/log/sa/sa22  #檢視22號的系統負載

34

在Linux下如何指定dns伺服器,來解析某個域名?

答:使用dig命令:dig @DNSip  domain.com

如:dig @8.8.8.8 www.baidu.com#使用谷歌DNS解析百度

35

使用rsync同步資料時,假如我們採用的是ssh方式,並且標的機器的sshd埠並不是預設的22埠,那我們如何做?

答:rsync “–rsh=ssh -p 10022″或者rsync -e “ssh -p 10022”

36

rsync同步時,如何刪除標的資料多出來的資料,即源上不存在,但標的卻存在的檔案或者目錄?

答:加上–delete選項

37

使用free檢視記憶體使用情況時,哪個數值表示真正可用的記憶體量?

答:free列第二行的值

38

有一天你突然發現公司網站訪問速度變的很慢很慢,你該怎麼辦呢?

(伺服器可以登陸,提示:你可以從系統負載和網絡卡流量入手)

答:可以從兩個方面入手分析:分析系統負載,使用w命令或者uptime命令檢視系統負載,如果負載很高,則使用top命令檢視CPU,MEM等佔用情況,要麼是CPU繁忙,要麼是記憶體不夠,如果這二者都正常,再去使用sar命令分析網絡卡流量,分析是不是遭到了攻擊。一旦分析出問題的原因,採取對應的措施解決,如決定要不要殺死一些行程,或者禁止一些訪問等。

39

rsync使用服務樣式時,如果我們指定了一個密碼檔案,那麼這個密碼檔案的許可權應該設定成多少才可以?

答:600或400

本文轉載自部落格Rachy1989

http://rachy.blog.51cto.com



————廣告時間————

《馬哥Linux雲端計算及架構師》課程,由知名Linux佈道師馬哥創立,經歷了8年的發展,聯合阿裡巴巴、唯品會、大眾點評、騰訊、陸金所等大型網際網路一線公司的馬哥課程團隊的工程師進行深度定製開發,課程採用 Centos7.2系統教學,加入了大量實戰案例,授課案例均來自於一線的技術案例。

開課時間級地點:1月(28期鄭州面授班)

掃描二維碼領取學習資料

更多Linux好文請點選【閱讀原文】哦

↓↓↓

贊(0)

分享創造快樂