九、為了OFFER而戰,那些日子在牛客網刷Linux面試題(下)
@Author:Runsen
@Date:2020/9/11
文章是Runsen在Gitchat付費文章分享:Linux 常用 Shell 命令,控制臺的快捷鍵以及 Shell 編程
順便同步到CSDN中,八月份寫的,有些時間了。
下面的Linux面試題都是來自牛客網,都是本人覺得挺重要的題目,然后記錄下。
文章目錄
1、死鎖
2、命令
3、路由
4、讀寫權限
5、時間日期
6、shell環境變量配置
7、輸入/輸出重定向
8、Linux文件目錄
9、網關
1、死鎖
在()情況下,系統出現死鎖。
正確答案: A 你的答案: A (正確)
A、若干進程因競爭資源而無休止地相互等待對方釋放已占有的資源 B、有多個封鎖的進程同時存在 C、計算機系統發生重大故障 D、資源數大大小于進程數或進程同時申請的資源數大大超過資源總數
1
2
3
4
死鎖 (deallocks): 是指兩個或兩個以上的進程(線程)在執行過程中,因爭奪資源而造成的一種互相等待的現象,若無外力作用,它們都將無法推進下去。
2、命令
寫出完成gdb查看線程信息功能的gdb命令
正確答案: B 你的答案: C (錯誤)
A、bt B、info thread C、set scheduler-locking off D、info break
1
2
3
4
backtrace bt 打印當前的函數調用棧的所有信息。
info threads 顯示當前可調試的所有線程,每個線程會有一個GDB為其分配的ID,后面操作線程的時候會用到這個ID。 前面有*的是當前調試的線程。
set scheduler-locking 線程調試 顯示線程狀態,off 不鎖定任何線程
info break 可列出所有斷點信息,info break 后也可設置要查看的break num
linux查看cpu占用的命令是什么?
正確答案: A 你的答案: A (正確)
A、top B、netstat C、free D、df
1
2
3
4
top查看CPU、netstat顯示網絡連接、路由表、網絡接口信息、free查看內存使用情況、df檢查文件系統的磁盤空間的占用情況
Linux的非root用戶,在自己的目錄中,不可以刪除非空目錄dirs的方法是:
正確答案: A C D 你的答案: A、C、D(正確)
rm dir dirs rm -r dirs mv dirs /dev/null destroy dirs
1
2
3
4
很常用的命令rm -rf /directory -r表示遞歸刪除(文件夾刪除)。-f表示強制刪除 。本題只能這么刪除文件夾,mv是移動命令,/dev/null就是一個黑洞,移進去的文件就會消失,但非root用戶沒有執行權限。
下面哪個命令可以統計一個文件中"牛客"出現的行數?
正確答案: B 你的答案: B (正確)
A、vim "牛客" 文件名 | wc -l B、grep "牛客" 文件名 | wc -l C、ls "牛客" | wc D、vim "牛客" 文件名 | wc
1
2
3
4
grep “牛客” 文件名:輸出文件中所有含有牛客的信息
|將上面輸出的信息通過管道作為wc的輸入源
wc -l統計行數
補充wc(Word Count)命令:
-c 統計字節數。
-l 統計行數。
-m 統計字符數。這個標志不能與 -c 標志一起使用。
-w 統計字數。一個字被定義為由空白、跳格或換行字符分隔的字符串。
-L 打印最長行的長度。
-help 顯示幫助信息
-version 顯示版本信息
假如你需要找出/etc/my.conf文件屬于哪個包(package),你可以執行:()
正確答案: D 你的答案: D (正確)
A、rpm -requires/etc/my.conf B、rpm -q/etc/my.conf C、rpm -q|grep /etc/my.conf D、rpm -qf /etc/my.conf
1
2
3
4
不同Linux發行版用的是不同軟件包系統,分為Debian的.deb技術(Debian,Ubuntu)和Red Hat的.rpm技術(Fedora,CentOS,redHat).
其中rpm是低級的RedHat軟件包管理工具:
-i package_name 安裝軟件包
-U packagefile 更新軟件包
-qa 列出已安裝的軟件包列表
-q package-name 判斷軟件包是否安裝
-qf file_name 判斷某個特定文件是由哪個軟件包負責安裝的
批量刪除當前目錄下后綴名為.c的文件。如a.c、b.c。
正確答案: A B 你的答案: A B (正確)
A、rm *.c B、find . -name "*.c" -maxdepth 1 | xargs rm C、find . -name "*.c" | xargs rm D、以上都不正確
1
2
3
4
A沒有問題。B:題目中是說刪除當前目錄下 后綴名為.c的文件,需要加上-maxdepth 1,表示是當前目錄,不包括其子目錄。所以C這樣是不對的
3、路由
局域網的網絡地址192.168.1.0/24,局域網絡連接其它網絡的網關地址是192.168.1.1。主機192.168.1.20訪問172.16.1.0/24網絡時,其路由設置正確的是?
正確答案: B 你的答案: B (正確)
A、route add –net 192.168.1.0 gw 192.168.1.1 netmask 255.255.255.0 metric 1 B、route add –net 172.16.1.0 gw 192.168.1.1 netmask 255.255.255.0 metric 1 C、route add –net 172.16.1.0 gw 172.16.1.1 netmask 255.255.255.0 metric 1 D、route add default 192.168.1.0 netmask 172.168.1.1 metric 1
1
2
3
4
route -net 后面跟的是目標網絡,gw就是gateway(網關入口)就是你從哪個網關去到那個目標網絡。明白這兩項這題就能選了。
補充:Linux中的route命令
route print--本命令用于顯示路由表中的當前項目,由于用IP地址配置了網卡,因此所有的這些項目都是自動添加的。
route add--使用本命令,可以將新路由項目添加給路由表。例如,如果要設定一個到目的網絡209.98.32.33的路由,其間要經過5個路由器網段,首先要經過本地網絡上的一個路由器,其IP為202.96.123.5,子網掩碼為255.255.255.224,那么你應該輸入以下命令:
route add 209.98.32.33 mask 255.255.255.224 202.96.123.5 metric 5
1
route change--你可以使用本命令來修改數據的傳輸路由,不過,你不能使用本命令來改變數據的目的地。下面這個例子可以將數據的路由改到另一個路由器,它采用一條包含3個網段的更直的路徑:
route change 209.98.32.33 mask 255.255.255.224 202.96.123.250 metric 3
1
route delete--使用本命令可以從路由表中刪除路由。例如:route delete 209.98.32.33
4、讀寫權限
在linux文件系統權限中(rwx),只讀權限對應的數值為()
正確答案: A 你的答案: A (正確)
A、4 B、2 C、1 D、選項均不正確
1
2
3
4
用二進制表示rwx(r:可讀,w:可寫,x:可執行)文件權限的時候,rwx對應000的位置
比如可讀的,不可寫,不可執行的時候就應該二進制表示是100;
不可讀的,可寫,不可執行的時候就應該二進制表示是010;
不可讀的,不可寫,可執行的時候就應該二進制表示是001;
可讀的,可寫,可執行的時候就應該二進制表示是111;
題目中是只可讀,所以二進制是100,二進制100轉為十進制就是4
Linux下,為某個腳本賦予可執行權限()
正確答案: A 你的答案: A (正確)
A、chmod +x filename.sh B、chown +x filename.sh C、chmod +r filename.sh D、chown +r filename.sh
1
2
3
4
chmod命令修改權限 +x表示增加執行權限,+r表示增加讀取權限,+w表示增加寫權限。
chown將指定文件的擁有者改為指定的用戶或組
在Linux中,file.sh文件的權限為-rw-r–r-x,其對應權限用數值形式表示為()
正確答案: C 你的答案: C(正確)
A、775 B、745 C、645 D、643
1
2
3
4
linux下給文件start.sh設置權限為自己可讀可修改可執行,組內用戶為可讀可執行不可修改,其余用戶沒有任何權限,那么設置該文件權限的命令為()
正確答案: B 你的答案: B (正確)
A、chmod start.sh 706 B、chmod start.sh 750 C、chmod start.sh 705 D、chmod start.sh 777
1
2
3
4
linux中權限有九位二進制數表示XXX YYY ZZZ,前一個XXX表示owner的權限,YYY表示group的權限(也就是同組用戶的權限),ZZZ表示other的權限(非同組用戶的權限)。根據本題要求,XXX=111=7,YYY=101=5,ZZZ=000=0,所以是750
Linux文件權限一共10位長度,分成四段,第三段表示的內容是_() __ 。
正確答案: C 你的答案: C (正確)
A、文件類型 B、文件所有者的權限 C、文件所有者所在組的權限 D、其他用戶的權限
1
2
3
4
1,代表文件類型,一般有三類,- 代表普通的二進制文件,l 代表符號鏈接文件(軟鏈接),d 代表目錄文件
2-4,代表文件所有者的權限表示情況,分別對應 可讀? 可寫(w) 可執行(w),- 代表沒有該項權限
5-7,代表文件所有這所屬組的權限表示情況。分別對應 可讀? 可寫(w) 可執行(w),- 代表沒有該項權限
8-10,代表除文件所有者和所屬組的其他人所擁有的權限表示情況。分別對應 可讀? 可寫(w) 可執行(w),- 代表沒有該項權限
如;umask 的值為022
創建一個文件的默認權限應該就是777-022=755。
由于 執行權限(x) 比較危險,Linux默認不會賦予此權限,所以實際創建文件的默認權限是 755-111=644
如果此時創建的是一個軟鏈接文件,則權限位為lrx-r--r-;如果此時創建的是一個普通文件,則權限位為 -rx-r--r--;如果此時創建的是一個目錄文件,則權限位為 drx-r--r--
5、時間日期
以下命令的執行時間為:01 07 * * 5 /usr/bash /usr/local/run.sh
正確答案: C 你的答案: C(正確)
A、每周一5:07分 B、每周一07:05分 C、每周五07:01分 D、每周周五01:07
1
2
3
4
對應: 分 時 日 月 周。min hour day(幾號) month week(周幾),也就是每周五07:01分執行run.sh
每5分鐘運行一次crond任務exam,下面哪項正確?
正確答案: D 你的答案: D(正確)
A、*/12 * * * * exam B、5/* * * * * exam C、* * */12 * * exam D、*/5 * * * * exam
1
2
3
4
6、shell環境變量配置
在RHEL5系統中,下面關于shell環境變量配置文件的描述,正確的是( )
正確答案: A 你的答案: D (錯誤)
A、用戶登錄系統時,bash首先執行/etc/profile配置文件和/etc/profile.d/目錄下的配置文件,這些配置文件對所有用戶都有效 B、用戶登錄系統時,bash首先執行.bash_profile文件和.bashrc文件,這些配置文件對所有用戶都有效 C、用戶主目錄下的.bashrc設置為每次登錄時執行,而.bash_profile則為每次打開新的終端時執行 D、執行用戶主目錄下的環境變量配置文件時,不可以重復設置用戶登錄時配置文件中已經設置的選項
1
2
3
4
A、/ect/profile:此文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行。并從 /etc/profile.d 目錄的配置文件中搜集shell的設置。因此A正確
B、/etc/bashrc:為每一個 運行bash shell 的用戶執行此文件.(只有當bash shell被打開時,該文件被讀取,并不是用戶登錄時候自動執行,因此B錯誤)
C、~/.bash_profile:(用戶主目錄下的bash_profile)每個用戶都可使用該文件輸入 專用于 自己使用的shell信息, 當用戶登錄時,該文件僅僅執行一次(因此C錯誤) !默認情況下,他設置一些環境變量,執行~/.bashrc文件。~/.bashrc該文件包含專用于用戶的bash shell的bash信息 ,當登錄時以及每次打開新的shell時,該該文件被讀取 .,因此C錯誤
D、~/.bash_logout當每次退出系統(退出bash shell)時,執行該文件.
總結:/etc下的profile和profile.d是為所有的用戶設置的環境變量等信息
用戶主目錄下的 .bash_profile、 .bashrc、和. bash_logout只對某一個用戶有效
7、輸入/輸出重定向
bash中,需要將腳本demo.sh的標準輸出和標準錯誤輸出重定向至文件demo.log,以下哪些用法是正確的()
正確答案: A C 你的答案: A (錯誤)
A、bash demo.sh &>demo.log B、bash demo.sh < demo.log C、bash demo.sh >demo.log 2>&1 D、bash demo.sh 2>demo.log 1>demo.log
1
2
3
4
該題考察Linux下的輸入/輸出重定向。在Linux中,每個打開的文件被賦予一個文件描述符(file descriptor),包括標準輸入(stdin),標準輸出(stdout)和標準錯誤輸出(stderr),由0,1,2分別描述。
A選項,command &> file 表示將標準輸出(stdout)和標準錯誤輸出(stderr)重定向至指定的文件file中。
B選項,語法錯誤。正確的語法是M >& N,M和N都是文件描述符,M在不指定的情況下默認是文件描述符1。
C選項,command > file 2>&1,是由兩部分組成。首先command>file表示將標準輸出(stdout)重定向到文件file中。接下來的2>&1表示將標準錯誤輸出(stderr)輸出到文件描述符1指定的位置,即標準輸出(stdout)的位置,由于標準輸出已經沖定向到文件file中,所以標準錯誤輸出也會重定向到文件file中。
D選項,command 2> file 1> file,也可看成是由兩部分組成。首先command 2> file,表示將標準錯誤輸出(stderr)重定向到文件file中;1> file,表示將標準輸出(stdout)重定向到文件file中。 最終的file中不會包含標準錯誤輸出(stderr)的信息,因為會被之后的標準輸出(stdout)覆蓋。
8、Linux文件目錄
linux系統下有多個文件目錄,每個文件目錄都有其獨特的功能和作用,以下描述正確的是:
正確答案: C 你的答案: C (正確)
A、/bin: 必要的用戶二進制可執行文件(部分用戶使用) B、/usr: 是文件系統的第二個主要部分. /usr是不可共享的只讀數據 C、/etc: 主機特定的系統配置 D、/boot: 系統啟動時要用到的所有文件
1
2
3
4
/bin 存放普通用戶可以使用的指令。
/usr 這個目錄中包含了命令庫文件和在通常操作中不會修改的文件,其地位類似Windows上面的”Program Files”目錄(安裝程序的時候,默認就是安裝在此文件內部某個子文件夾內。輸入命令后系統默認執行/usr/bin下的程序。
/etc 全局的配置文件存放目錄。存放系統和軟件的配置。
/boot 引導程序,內核等存放的目錄。
Linux執行ls,會引起哪些系統調用()
正確答案: B C D 你的答案: C、D (錯誤)
A、nmap B、read C、execve D、fork
1
2
3
4
任何shell都會執行 exec 和 fork。而 ls會執行read,三個加起來。
9、網關
在Linux系統中搭建DHCP服務器時,若需要給客戶機指定默認網關地址為192.168.1.1,可以在dhcpd.conf配置文件中進行( )設置
正確答案: C 你的答案: C (正確)
A、option default-gate-way 192.168.1.1; B、option gateways 192.168.1.1; C、option routers 192.168.1.1; D、option router-servers 192.168.1.1;
1
2
3
4
option routers 192.168.0.1;配置默認網關
option subnet-mask 255.255.255.0;配置子網掩碼
option domain-name-servers 192.168.1.1;指定DNS服務器
option domain-name-servers 配置多個DNS服務器
其實上面Linux知識都是基礎中的基礎,如果想深入linux運維,下面是我做的關于Linux運維的思維導圖,作為本次GitChat的結尾。
本次 GitChat 思維導圖由自己繪制,文字內容參考以下鏈接:
菜鳥 Linux 教程
牛客網 Linux 專題以及牛友解答
控制臺的快捷鍵來自 Linux 公社
HTTP Linux
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。