天天看點

Linux Shell腳本的10個有用的“面試問題和解答”Linux Shell腳本的10個有用的“面試問題和解答”首先緻上每日問候。Linux的浩瀚無垠,使人總能每次都送出與衆不同的内容。我們“The-Tecmint-Team”的工作是給我們的讀者提供一些獨特的内容,這些内容不僅對他們的職業生涯很有用,同時也讓他們增長知識。在此,我們就嘗試這麼去做,至于能取得多大的成功,就由我們的讀者朋友們來判斷吧。

Linux Shell腳本的10個有用的“面試問題和解答”Linux Shell腳本的10個有用的“面試問題和解答”首先緻上每日問候。Linux的浩瀚無垠,使人總能每次都送出與衆不同的内容。我們“The-Tecmint-Team”的工作是給我們的讀者提供一些獨特的内容,這些内容不僅對他們的職業生涯很有用,同時也讓他們增長知識。在此,我們就嘗試這麼去做,至于能取得多大的成功,就由我們的讀者朋友們來判斷吧。

questions on shell scripting

我們為各類使用者提供了關于shell腳本語言和面試問題的很多教程,可以通路以下連結去閱讀這些文章。

<a href="http://www.tecmint.com/category/bash-shell/" target="_blank">shell腳本系列</a>

<a href="http://www.tecmint.com/category/interview-questions/" target="_blank">面試問題與解答系列</a>

在此,作為shell腳本的附加内容,在本文中我們将從面試的角度解讀與linux shell相關的問題。

<a target="_blank"></a>

解答:我們需要使用‘exit’指令來實作以上描述的情境。‘exit’指令被強制輸出非0值時,腳本會報錯并退出。在unix環境下的shell腳本中,0值表示成功執行。是以,在腳本終止前執行一個不帶引号的‘exit -1’指令将使腳本中止。

例如,建立以下一個名為“anything.sh”的腳本。

#!/bin/bash

echo "hello"

exit -1

echo "bye"

儲存檔案并執行。

# sh anything.sh

hello

exit.sh: 3: exit: illegal number: -1

從上面的腳本中可以清楚地看到,在exit -1指令前,腳本執行得很好。

解答:當我們需要删除檔案中的指定行時,‘sed’指令可以用來解決該問題。

這個是用來删除檔案頭(檔案的首行)的正确指令。

# sed '1 d' file.txt

上面指令的問題是,它會在标準輸出裝置上輸出不帶首行的檔案内容。為了儲存輸出到檔案,我們需要使用重定向操作符,它将幫助你将輸出重定向到檔案。

# sed '1 d' file.txt &gt; new_file.txt

好吧,其實sed指令内建的‘-i’開關就可以幹這活,就不需要重定向符了吧。

# sed -i '1 d' file.txt

解答:‘sed’指令也可以用來查找文本檔案中的某一行或者檢查其長度。

‘sed -n ‘n p’ file.txt’可以解決,這裡‘n’表示行号,‘p’列印出比對内容(到标準輸出),該指令通常與-n指令行選項連用。那麼,怎樣來擷取長度計數呢?很明顯,我們需要通過管道輸出給‘wc’指令來計算。

# sed –n 'n p' file.txt | wc –c

要得到文本檔案‘tecmint.txt’的第五行的長度,運作如下指令:

# sed -n '5 p' tecmint.txt | wc -c

解答:可以。可以在linux中檢視所有的非列印字元。要實作上面所講的方案,我們需要‘vi’編輯器的幫助。 怎樣在‘vi’編輯器中顯示非列印字元?

打開vi編輯器。

先按[esc]鍵,然後按‘:’進入到vi編輯器的指令模式。

最後,從‘vi’編輯器的指令界面輸入set list指令并執行。

注: 這種方式可以檢視文本檔案中的所有非列印字元,包括ctrl+m(^m)。

解答:這真是個有趣的工作方案。好吧,上面所講的方案,我們需要通過下面的步驟來實施,這簡直就是小菜一碟。

# mkdir dir_xyz

# chmod g+wx dir_xyz

# chmod +t dir_xyz

第一行指令建立了一個目錄(dir_xyz),上面的第二行指令讓組(g)具有‘寫’和‘執行’的權限,而上面的最後一行指令——權限位最後的‘+t’是‘粘滞位’,它用來替換‘x’,表明在這個目錄中,檔案隻能被它們的擁有者、目錄的擁有者或者是超級使用者root删除。

解答:一個linux程序在它的一生中,通常經曆了四個主要階段。

這裡是linux程序要經曆的四個階段。

等待:linux程序等待資源。

運作:linux程序目前正在執行中。

停止:linux程序在成功執行後或收到殺死程序信号後停止。

僵屍:如果該程序已經結束,但仍然留在程序表中,被稱為‘僵屍’。

解答:‘cut’是一個很有用的linux指令,當我們要截取檔案的指定部分并列印到标準輸出,當文本區域以及檔案本身很大時,這個指令很有用。

例如,截取‘txt_tecmint’檔案的前10列。

# cut -c1-10 txt_tecmint

要截取該檔案中的第二,第五和第七列。

# cut -d;-f2 -f5 -f7 txt_tecmint

解答:‘cmp’和‘diff’指令用來擷取相同的東西,但各有側重。

‘diff’指令輸出為了使兩個檔案一樣而應該做的修改。而‘cmp’指令則将兩個檔案逐位元組對比,并報告第一個不比對的項。

解答:可以的。‘ls’指令可以用‘echo’指令來替代。‘ls’指令列出目錄内容,從替換上述指令的角度講,我們可以使用‘echo *’,兩個指令的輸出完全一樣。
解答:‘inode’是一個‘資料結構’,在linux上用于檔案辨別。每個檔案在unix系統上有一個獨立的‘inode’和一個‘唯一的’inode号。

到此為止吧。在下一篇文章中,我們将讨論另外一些有趣味性而又有知識性的面試問題。到那時,别跑開,請上tecmint.com,别忘了在下面的評論部分給我們提供一些有價值的回報哦。

原文釋出時間:2014-05-27

本文來自雲栖合作夥伴“linux中國”

繼續閱讀