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