26 個必讀的 Shell 腳本面試問題和答案 [適合新手和有經驗者]
已發表: 2020-12-17Shell 是命令行解釋器或設計用於運行命令、shell 腳本和程序的完整環境。 將命令輸入 shell 後,它將根據您的輸入執行程序。
本質上,它翻譯輸入命令並將它們轉換為與內核兼容的語言。 Shell 腳本是指由 Unix Shell 運行的程序中的命令列表。 該腳本包括按執行順序定義命令的註釋。
如果介紹讓您想了解更多關於 Shell Scripting 的信息,請繼續滾動到最後——我們編制了 Shell Scripting 面試問題和答案列表,以幫助啟動您的學習過程! 如果您想了解有關數據科學的更多信息,請查看我們的數據科學課程。
目錄
Shell 腳本面試問題和答案
- Shell 腳本的優點是什麼?
Shell 腳本的最大好處是:
- 它允許您創建自定義操作系統以最適合您的要求。
- 它使您可以根據所使用的平台設計軟件應用程序。
- 它節省時間,因為它有助於自動化系統管理任務。
2.什麼是Shell變量?
Shell 變量構成了 Shell 程序或腳本的核心部分。 這些變量允許Shell 在Shell 程序中存儲和操作信息。 Shell 變量通常存儲為字符串變量。
3. 列出Shell Scripting 中使用的變量類型。
通常,Shell 腳本有兩種類型的變量:
- 系統定義的變量——它們由操作系統(Linux)創建並以大寫字母定義。 您可以使用 Set 命令查看它們。
- 用戶定義的變量——這些是由系統用戶創建和定義的。 您可以使用 Echo 命令查看變量值。
- 如何使變量不可更改?
您可以使用只讀方式使變量不可更改。 假設您希望變量“a”的值保持為 5 並保持不變,因此您可以像這樣使用 readonly:
$ a=5
$只讀一個
- 命名不同類型的殼。
Shell有四種核心類型,即:
- 伯恩殼牌 (sh)
- C 外殼 (csh)
- Korn 殼牌 (ksh)
- Bourne Again Shell (bash)
- 解釋“位置參數”。
位置參數是由 Shell 定義的變量。 它們用於通過在命令行中指定參數來將信息傳遞給程序。
- UNIX 環境中有多少個 Shell 和內核可用?
通常,UNIX 環境只有一個內核。 但是,有多個可用的 Shell。
- 您是否需要單獨的編譯器來執行 Shell 程序?
不,您不需要單獨的編譯器來執行 Shell 程序。 由於 Shell 本身是 shell 程序中的命令行並執行它們。
- 如何在 Shell Scripting 中修改文件權限?
您可以通過 umask 修改文件權限。
- 什麼是“。” (點)開頭的文件名表示?
以“.”開頭的文件名是一個隱藏文件。 通常,當您嘗試列出 Shell 中的文件時,它會列出除隱藏文件之外的所有文件。 但是,隱藏文件存在於目錄中。 如果您想查看隱藏文件,您必須運行帶有“-a”標誌的 Is 命令。
- 如何在 Linux 中創建快捷方式?
您可以通過兩個鏈接在 Linux 中創建快捷方式:
硬鏈接——這些鏈接鏈接到文件的 inode。 它們始終與文件存在於同一文件系統中。 即使您刪除了原始文件,硬鏈接也不會受到影響。
軟鏈接——這些鏈接鏈接到文件名。 它們可能與文件駐留在同一文件系統上,也可能不駐留在同一文件系統上。 如果刪除原始文件,軟鏈接將變為非活動狀態。
12. 命名 Linux 進程的不同階段。
通常,Linux 進程會遍歷四個階段:
- 等待——在這個階段,Linux 進程必須等待必要的資源。
- 運行——在這個階段,進程被執行。
- 已停止 – 成功執行後,Linux 進程停止。
- Zombie – 在最後一步,即使進程不再運行,它在進程表中仍然處於活動狀態。
- “迴聲”是否有替代命令?
是的, tput 是 echo 命令的替代品。 tput 命令允許您控制輸出在屏幕上的顯示方式。
- 一個文件系統包含多少塊?
一個文件系統有四個塊:
- 超級塊——該塊提供有關文件系統狀態的信息,例如塊大小、塊組大小、使用信息、空/填充塊及其各自的計數、inode 表的大小和位置等。
- Bootblock – 該塊包含引導加載程序,該程序在用戶引導主機時執行。
- 數據塊——這個塊包括文件系統的文件內容。
- 索引節點表——UNIX 將所有元素都視為文件,所有與文件相關的信息都存儲在索引節點表中。
必讀:Python 面試題
- 命名vi編輯器的三種操作模式。
三種操作模式是:
- 命令模式 - 此模式將用戶按下的任何鍵視為編輯器命令並將其解釋為編輯器命令。
- 插入模式 - 您可以使用此模式插入新文本、編輯現有文本等。
- Ex-command 模式——用戶可以在命令行中輸入所有命令。
- 定義“控制指令”。 Shell 中有多少種控制指令可用?
控制指令是允許您指定腳本中的不同指令應如何執行的命令。 因此,它們的主要目的是確定 Shell 程序中的控制流。
Shell 有四種類型的控制指令:
- 順序控制指令強制指令按照它們在程序中的相同順序執行。
- 使計算機能夠確定接下來應該執行哪條指令的選擇/決定控制指令。
- 允許計算機重複運行一組語句的重複/循環控制指令。
- 當您需要從一系列替代方案中進行選擇時,使用案例控制說明。
- 定義“IFS”。
IFS 是指內部字段分隔符。 它是一個系統變量,其默認值為空格、製表符,後跟一個新行。 IFS 表示一個字段或單詞在一行中的結束位置和另一個開始的位置。
- 定義“元字符”。
Shell 由元字符組成,元字符是數據字段或程序中的特殊字符,提供有關其他字符的信息。 例如,Shell 中的“ls s*”命令列出所有以字符“s”開頭的文件。
- 區分 $* 和 $@。
$* 將一組完整的位置參數視為單個字符串,而 $@ 將每個帶引號的參數視為單獨的參數。
另請閱讀:印度的 Python 開發人員薪水
21.在Shell Scripting中編寫while循環的語法。

在 Shell Scripting 中,當您想要多次重複其命令塊時使用 while 循環。 “while”循環的語法是:
while [測試條件]
做
命令…
完畢
- break 和 continue 命令有何不同?
break 命令用於在執行中退出循環。 您可以使用 break 命令退出任何循環命令,包括 until 和 while 循環。 另一方面, continue 命令用於退出循環的當前迭代而不離開完整的循環。
23. 為什麼我們在Shell Scripting 中使用Shebang 行?
Shebang 行位於 Shell 腳本/程序的頂部。 它通知用戶執行腳本的引擎的位置。
這是 Shebang 線的示例:
#!/bin/sh
克拉 1 美元
- 你可以在一個 Shell 中執行多個腳本嗎?
是的,可以在一個 Shell 中執行多個腳本。 多個腳本的執行允許您從另一個腳本調用一個腳本。 為此,您必須在希望調用它時提及要調用的腳本名稱。
- 您應該使用哪個命令來了解系統運行了多長時間?
您需要使用 uptime 命令來了解系統運行了多長時間。 以下是 uptime 命令的示例:
u/user1/Shell_Scripts_2018> 正常運行時間
- 您應該使用哪個命令來檢查磁盤使用情況?
您可以使用以下三個命令來檢查磁盤使用情況:
- df - 用於檢查可用磁盤空間。
- du - 用於檢查目錄磁盤使用情況。
- dfspace – 它檢查以兆字節 (MB) 為單位的可用磁盤空間。
27. Crontab 是什麼意思?
Crontab 是 cron table 的縮寫,其中 Cron 是一個執行任務的作業調度器。 Crontab 是您要按計劃運行的命令列表,以及您要用於管理該列表的命令。
28. 什麼時候不應該使用 Shell Scripting?
我們不應該在這些情況下使用 Shell Scripting:
- 如果任務非常複雜,例如編寫完整的工資單處理解決方案,我們不應該使用 Shell Scripting。
- 如果工作需要高水平的生產力,我們不應該使用 Shell Scripting。
- 如果工作需要多個軟件解決方案,我們不應該使用 Shell Scripting。
29. 如何比較 Shell 腳本中的字符串?
我們使用 test 命令來比較文本字符串。 它通過比較每個字符串中存在的每個字符來比較文本字符串。
閱讀:數據工程師面試問題
30. 文件系統是什麼意思?
文件系統是文件的集合以及與這些文件相關的信息。 它控制如何檢索和存儲數據。 如果沒有文件系統,存儲中的數據將只是大量數據,無法判斷一個數據在哪裡結束,另一個數據從哪裡開始。
31. 你能區分單引號和雙引號嗎?
是的。 我們在不想執行變量對值的評估時使用單引號。 另一方面,我們使用雙引號來執行變量對值的評估。
32. GUI 腳本是什麼意思?
我們使用 GUI 來控制計算機及其應用程序。 通過 GUI 腳本,我們可以根據操作系統處理各種應用程序。
33. 你對 Shell 腳本中的 Super Block 了解多少?
超級塊是具有特定文件系統記錄的程序。 它包含的特徵包括塊大小、填充塊和空塊及其各自的計數、inode 表的位置和大小、使用信息、磁盤塊映射等。
34、社幫線的重要性是什麼?
Shebang 行仍位於腳本的頂部。 它提供有關執行腳本的引擎所在位置的信息。
35. 提供一些最流行的 UNIX 命令。
以下是一些最流行的 UNIX 命令:
- cd – cd 命令在用作 $ cd 時將目錄更改為用戶的主目錄。 您可以使用它來更改目錄以通過 $ cd test 進行測試。
- ls – ls 命令在用作 $ ls 時列出當前目錄中的文件。 您可以將其用作 $ ls -lrt 來以長格式記錄文件。
- rm – rm 命令將在您將其用作 $ rm fileA 時刪除名為 fileA 的文件。
- cat – 當您將文件用作 $ cat 文件名時,此命令將顯示文件中存在的內容。
- mv – mv 命令可以重命名或移動文件。 例如,$ mv fileA fileB 命令將移動名為 fileA 和 fileB 的文件。
- date – date 命令顯示當前時間和日期。
- grep – grep 命令可以搜索文件中的特定信息。 例如,$ grep Hello fileA 命令將搜索出現單詞“Hello”的行。
- finger – finger 命令顯示有關用戶的信息。
- ps – ps 命令顯示當前在您的機器上運行的進程。
- man – man 命令顯示有關指定命令的聯機幫助或手冊。 例如,$ ms rm 命令將顯示 rm 命令的在線手冊。
- pwd – pwd 命令顯示當前工作目錄。
- wc – wc 命令計算文件中存在的字符、單詞和行數。
- 歷史 - 歷史命令顯示您最近使用的所有命令的列表。
- gzip – gzip 命令壓縮指定的文件。 例如,$ gzip fileA 命令將壓縮 fileA 並將其更改為 fileA.gz。
- logname – logname 命令將打印用戶的日誌名稱。
- head – head 命令顯示文件中存在的第一行。 例如,$ head -15 fileA 命令將顯示 fileA 的前 15 行。
附加說明:這是最關鍵的 Shell 腳本面試問題之一。 我們建議準備一份更詳盡的 UNIX 命令列表,因為在面試中會問到這個問題的許多版本。
必讀:數據科學面試題
36. C Shell 比 Bourne Shell 好在哪裡?
C Shell 優於 Bourne Shell,原因如下:
- C Shell 允許您為命令設置別名。 這意味著用戶可以為命令提供任何所需的名稱。 當用戶必須多次使用冗長的命令時,這是非常有益的。 用戶可以鍵入指定的名稱,而不是多次鍵入命令的長名稱。 它節省了大量的時間和精力,使過程更加高效。
- C Shell 具有命令歷史功能,其中 C Shell 會記住所有以前使用的命令。 您可以使用此功能來避免多次鍵入相同的命令。 它大大提高了效率。
由於以上兩個原因,使用 C Shell 比 Bourne Shell 更有優勢。
37. 編寫Shell Scripts 有什麼必要?
Shell 腳本有許多優點,使其變得至關重要。 它從用戶那裡獲取輸入,將其歸檔並顯示在屏幕上。 此外,它還允許您製作自己的命令並自動執行簡單的日常任務。 您還可以使用 Shell 腳本自動執行系統管理任務。 Shell 腳本可以為您節省大量精力和時間,從而使您的流程更加高效。 因此,它非常重要並被廣泛使用。
結論
我們希望這 26 個 Shell Scripting 面試問題和答案能幫助您打破 Shell Scripting 的僵局,為您的下一次面試做好準備!
如果您想了解數據科學,請查看 IIIT-B 和 upGrad 的數據科學執行 PG 計劃,該計劃是為在職專業人士創建的,提供 10 多個案例研究和項目、實用的實踐研討會、行業專家的指導、1與行業導師一對一,400 多個小時的學習和頂級公司的工作協助。
什麼是 shell 腳本?
Shell 腳本是編寫腳本/代碼以自動執行單調任務的過程。 您可以構建一個腳本來自動執行一系列依次運行的指令,而不是一個接一個地輸入命令 n 次。 shell 腳本的基本階段是編寫腳本,使其可被 shell 訪問,並授予 shell 執行權限。 Shell 腳本以 ASCII 文本編寫並包含 ASCII 文本。 它們是使用文本編輯器、文字處理器或圖形用戶界面 (GUI) 創建的。 腳本的內容由一系列以 shell 可以理解的語言編寫的命令組成。 完成後,該文件將使用擴展名保存在外殼可訪問的位置。
shell腳本有哪些應用?
Shell 腳本編寫簡單而有效。 它在腳本中使用與在 shell 命令行中相同的語法,從而消除了任何歧義。 對於一次輸入一行需要很長時間才能完成的重複性活動,shell 腳本非常方便。 用戶可以將 shell 腳本用於多種目的,例如自動編譯代碼、運行程序或建立編程環境、完成批處理和操作文件,以及連接現有程序、執行例行備份和監控系統。
shell腳本是個好職業嗎?
Shell 腳本用於自動化、編程、系統管理雜務、應用程序自動化、包設置、驗證自動化、系統中的數據備份和恢復等各個領域。因此,Shell 腳本是每個公司 IT 部門的重要組成部分. 此外,它對個人的整個 IT 職業生涯都有幫助。 Shell 腳本編寫的平均年薪為 6,39,000 盧比,是一個很好的職業,其學習者前景廣闊。 大多數 IT 專業人員每天都將它用於適度的自動化雜務,因為它可以節省大量時間。