Linux 的廣闊無邊,讓人總能每次都呈現出與眾不同的內容。這些內容不僅對他們的職涯發展很有益,同時也讓他們增加知識。在這裡,我們就試著這麼做,至於能達到多大的效果,就由我們的讀者朋友來評判吧。
在這裡,作為 shell 腳本的補充內容,在本文中我們將從面試的角度來解答與 Linux Shell 相關的問題。
1.在 shell 腳本成功執行前,如何中斷腳本執行?
解答:我們需要使用exit
指令來實作以上描述的場景。 exit
指令被強制輸出非0值時,腳本會報錯並退出。在 Unix 環境下的 shell 腳本中,0值表示成功執行。因此,在腳本結束前執行一個不帶引號的exit -1
命令將使腳本終止。
#!/bin/bash echo "Hello" exit -1 echo "bye"
儲存檔案並執行。
#!/bin/bash echo "Hello" exit -1 echo "bye"
從上面的腳本可以清楚地看到,在 exit -1
指令前,腳本執行得很好。
2.如何使用 Linux 指令來移除檔案頭?
解答:當我們需要刪除檔案中的指定行時,sed
指令可以用來解決這個問題。
這個是用來刪除檔案頭(檔案的首行)的正確命令。
# sed '1 d' file.txt
好吧,其實sed指令內建的-i
開關就可以乾這活,就不需要重定向符了吧。
# sed -i '1 d' file.txt
3. 你怎麼檢查一個文字檔案中某一行的長度?
解答:sed
指令也可以用來尋找文字檔案中的某一行或檢查其長度。
sed -n 'n p' file.txt
可以解決,這裡n
#表示行號,p
列印出符合內容(到標準輸出) ,該命令通常與-n
命令列選項連用。那麼,要怎麼來取得長度計數呢?很明顯,我們需要透過管道輸出給wc
指令來計算。
# sed –n 'n p' file.txt | wc –c
要得到文字檔案‘linuxmi.txt’的第五行的長度,執行如下指令:
# sed -n '5 p' linuxmi.txt | wc -c
4. 可以在 Linux 系統上查看到所有非列印字元嗎?你是怎麼做到的?
解答:可以。可以在 Linux 中查看所有的非列印字元。要實作上面所講的方案,我們需要vi
編輯器的幫助。怎樣在vi
編輯器中顯示非列印字元?
開啟vi編輯器。
先按[esc]鍵,再按:
進入到vi編輯器的指令模式。
最后,从 vi 编辑器的命令界面输入set list
命令并执行。
“
注: 这种方式可以查看文本文件中的所有非打印字符,包括 ctrl+m(^M)。
”
5. 假如你是一个员工组的团队领导,为xyz公司工作。公司要求你创建一个**dir_xyz
目录,让该组成员都能在该目录下创建或访问文件,但是除了文件创建者之外的其他人不能删除文件,你会怎么做?**
解答:这真是个有趣的工作方案。好吧,上面所讲的方案,我们需要通过下面的步骤来实施,这简直就是小菜一碟。
# mkdir dir_xyz # chmod g+wx dir_xyz # chmod +t dir_xyz
第一行命令创建了一个目录(dir_xyz),上面的第二行命令让组(g)具有‘写’和‘执行’的权限,而上面的最后一行命令——权限位最后的‘+t’是‘粘滞位’,它用来替换‘x’,表明在这个目录中,文件只能被它们的拥有者、目录的拥有者或者是超级用户root删除。
6. 你能告诉我一个Linux进程经历的各个阶段吗?
解答:一个 Linux 进程在它的一生中,通常经历了四个主要阶段。
这里是Linux进程要经历的四个阶段。
7. Linux中**cut
命令怎么用?**
解答:cut
是一个很有用的 Linux 命令,当我们要截取文件的指定部分并打印到标准输出,当文本区域以及文件本身很大时,这个命令很有用。
例如,截取txt_linuxmi
文件的前10列。
# cut -c1-10 txt_linuxmi
要截取该文件中的第二,第五和第七列。
# cut -d;-f2 -f5 -f7 txt_linuxmi
8. cmp
和diff
命令的区别是什么?
解答:cmp
和diff
命令用来获取相同的东西,但各有侧重。diff
命令输出为了使两个文件一样而应该做的修改。而‘cmp’命令则将两个文件逐字节对比,并报告第一个不匹配的项。
9. 可以用**echo
指令來取代ls
指令嗎? **
解答:可以的。 ‘ls’指令可以用‘echo’指令來取代。 ‘ls’指令列出目錄內容,從取代上述指令的角度講,我們可以使用‘echo *’,兩個指令的輸出完全一樣。
10. 你可能聽過 inode 吧。能簡單描述一下 inode 嗎?
解答:inode 是一個資料結構,在 Linux 上用於檔案標識。每個檔案在 Unix 系統上都有一個獨立的 inode 和一個唯一的 inode 號碼。
以上是10個有趣的 Linux Shell 腳本 '面試和解答”,老司機也可能 '翻車” ?的詳細內容。更多資訊請關注PHP中文網其他相關文章!