首頁 >系統教程 >Linux >Linux Shell 腳本的 10 個有用的'面試問題和答案”

Linux Shell 腳本的 10 個有用的'面試問題和答案”

WBOY
WBOY轉載
2024-02-12 10:00:18560瀏覽

Linux 的廣闊無垠,讓人們總是能提交獨特的內容。這些內容不僅對他們的職業生涯有益,同時也能增長他們的知識。在這裡,我們將嘗試這樣做,至於能取得多大的成功,就由我們的讀者朋友們來評判。

作為 shell 腳本的補充內容,在本文中我們將從面試的角度來解讀與 Linux Shell 相關的問題。

1、如何在 shell 腳本成功執行前中斷腳本執行?

答案:我們需要使用 exit 指令來實作上述情況。當 exit 指令被強制輸出非 0 值時,腳本會報錯並退出。在 Unix 環境下的 shell 腳本中,0 值表示成功執行。因此,在腳本終止之前執行一個不帶引號的 exit -1 命令將使腳本中止。

#!/bin/bash
echo "Hello"
exit -1
echo "bye"

儲存檔案並執行。

# sh linuxmi.sh
Hello
linuxmi.sh:行3: exit-1: 未找到命令
bye
Linux Shell 脚本的 10 个有用的“面试问题和解答”

從上面的腳本可以清楚地看到,在 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
Linux Shell 脚本的 10 个有用的“面试问题和解答”

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进程要经历的四个阶段。

  • 等待:Linux进程等待资源。
  • 运行:Linux进程当前正在执行中。
  • 停止:Linux进程在成功执行后或收到杀死进程信号后停止。
  • 僵尸:如果该进程已经结束,但仍然留在进程表中,被称为‘僵尸’。

7、Linux中**cut命令怎么用?**

解答cut是一个很有用的 Linux 命令,当我们要截取文件的指定部分并打印到标准输出,当文本区域以及文件本身很大时,这个命令很有用。

例如,取txt_linuxmi文件的前10列。

# cut -c1-10 txt_linuxmi

要截取该文件中的第二,第五和第七列。

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

8、**cmpdiff命令的区别是什么?**

解答cmpdiff命令用来获取相同的东西,但各有侧重。
diff命令输出为了使两个文件一样而应该做的修改。而‘cmp’命令则将两个文件逐字节对比,并报告第一个不匹配的项。

9、可以用**echo指令來取代ls#指令嗎? **

解答:可以的。 ‘ls’指令可以用‘echo’指令來取代。 ‘ls’指令列出目錄內容,從取代上述指令的角度講,我們可以使用‘echo *’,兩個指令的輸出完全一樣。

10、你可能聽過 inode 吧。能簡單描述一下 inode 嗎?

解答:inode 是一個資料結構,在 Linux 上用於檔案標識。每個檔案在 Unix 系統上都有一個獨立的 inode 和一個唯一的 inode 號碼。

以上是Linux Shell 腳本的 10 個有用的'面試問題和答案”的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:lxlinux.net。如有侵權,請聯絡admin@php.cn刪除