1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Shell 腳本的 10 個有用的面試問題和解答

        共 2869字,需瀏覽 6分鐘

         ·

        2023-09-04 10:08

        Linux 的浩瀚無垠,使人總能每次都提交與眾不同的內(nèi)容。這些內(nèi)容不僅對他們的職業(yè)生涯很有用,同時也讓他們增長知識。在此,我們就嘗試這么去做,至于能取得多大的成功,就由我們的讀者朋友們來判斷吧。
        在此,作為 shell 腳本的附加內(nèi)容,在本文中我們將從面試的角度解讀與 Linux Shell 相關(guān)的問題。
        1.在 shell 腳本成功執(zhí)行前,如何中斷腳本執(zhí)行?
        解答:我們需要使用exit命令來實現(xiàn)以上描述的情境。exit命令被強(qiáng)制輸出非0值時,腳本會報錯并退出。在 Unix 環(huán)境下的 shell 腳本中,0值表示成功執(zhí)行。因此,在腳本終止前執(zhí)行一個不帶引號的exit -1命令將使腳本中止。
        #!/bin/bashecho "Hello"exit -1echo "bye"
        保存文件并執(zhí)行。
        # sh linuxmi.shHellolinuxmi.sh:行3: exit-1: 未找到命令bye

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

        2.如何使用 Linux 命令來移除文件頭?

        解答:當(dāng)我們需要刪除文件中的指定行時,sed命令可以用來解決該問題。

        這個是用來刪除文件頭(文件的首行)的正確命令。

        # sed '1 d' file.txt

        好吧,其實sed命令內(nèi)建的-i開關(guān)就可以干這活,就不需要重定向符了吧。

           
           
        # sed -i '1 d' file.txt


        3. 你怎么檢查一個文本文件中某一行的長度?
        解答:sed命令也可以用來查找文本文件中的某一行或者檢查其長度。
        sed -n ‘n p’ file.txt可以解決,這里n表示行號,p打印出匹配內(nèi)容(到標(biāo)準(zhǔn)輸出),該命令通常與-n命令行選項連用。那么,怎樣來獲取長度計數(shù)呢?很明顯,我們需要通過管道輸出給wc命令來計算。
        # sed –n 'n p' file.txt | wc –c

        要得到文本文件‘linuxmi.txt’的第五行的長度,運行如下命令:

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

        4. 可以在 Linux 系統(tǒng)上查看到所有非打印字符嗎?你是怎么做到的?
        解答:可以。可以在 Linux 中查看所有的非打印字符。要實現(xiàn)上面所講的方案,我們需要vi編輯器的幫助。怎樣在vi編輯器中顯示非打印字符?
        打開vi編輯器。
        先按[esc]鍵,然后按進(jìn)入到vi編輯器的命令模式。
        最后,從 vi 編輯器的命令界面輸入set list命令并執(zhí)行。

        注: 這種方式可以查看文本文件中的所有非打印字符,包括 ctrl+m(^M)。

        5. 假如你是一個員工組的團(tuán)隊領(lǐng)導(dǎo),為xyz公司工作。公司要求你創(chuàng)建一個dir_xyz目錄,讓該組成員都能在該目錄下創(chuàng)建或訪問文件,但是除了文件創(chuàng)建者之外的其他人不能刪除文件,你會怎么做?
        解答:這真是個有趣的工作方案。好吧,上面所講的方案,我們需要通過下面的步驟來實施,這簡直就是小菜一碟。
        # mkdir dir_xyz# chmod g+wx dir_xyz# chmod +t dir_xyz

        第一行命令創(chuàng)建了一個目錄(dir_xyz),上面的第二行命令讓組(g)具有‘寫’和‘執(zhí)行’的權(quán)限,而上面的最后一行命令——權(quán)限位最后的‘+t’是‘粘滯位’,它用來替換‘x’,表明在這個目錄中,文件只能被它們的擁有者、目錄的擁有者或者是超級用戶root刪除。

        6. 你能告訴我一個Linux進(jìn)程經(jīng)歷的各個階段嗎?

        解答:一個 Linux 進(jìn)程在它的一生中,通常經(jīng)歷了四個主要階段。

        這里是Linux進(jìn)程要經(jīng)歷的四個階段。

        • 等待:Linux進(jìn)程等待資源。

        • 運行:Linux進(jìn)程當(dāng)前正在執(zhí)行中。

        • 停止:Linux進(jìn)程在成功執(zhí)行后或收到殺死進(jìn)程信號后停止。

        • 僵尸:如果該進(jìn)程已經(jīng)結(jié)束,但仍然留在進(jìn)程表中,被稱為‘僵尸’。

        7. Linux中cut命令怎么用?

        解答cut是一個很有用的 Linux 命令,當(dāng)我們要截取文件的指定部分并打印到標(biāo)準(zhǔn)輸出,當(dāng)文本區(qū)域以及文件本身很大時,這個命令很有用。

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

           
           
        # cut -c1-10 txt_linuxmi

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

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


        8. cmpdiff命令的區(qū)別是什么?
        解答cmpdiff命令用來獲取相同的東西,但各有側(cè)重。
        diff命令輸出為了使兩個文件一樣而應(yīng)該做的修改。而‘cmp’命令則將兩個文件逐字節(jié)對比,并報告第一個不匹配的項。
        9. 可以用echo命令來替換ls命令嗎?
        解答:可以的?!甽s’命令可以用‘echo’命令來替代?!甽s’命令列出目錄內(nèi)容,從替換上述命令的角度講,我們可以使用‘echo *’,兩個命令的輸出完全一樣。
        10. 你可能聽過 inode 吧。你能簡要描述一下 inode 嗎?
        解答:inode 是一個數(shù)據(jù)結(jié)構(gòu),在 Linux 上用于文件標(biāo)識。每個文件在 Unix 系統(tǒng)上有一個獨立的 inode 和一個唯一的 inode 號。

        來源:鏈接:https://www.linuxmi.com




        10T 技術(shù)資源大放送!包括但不限于:Linux、虛擬化、容器、云計算、網(wǎng)絡(luò)、Python、Go 等。在 開源Linux 公眾號內(nèi)回復(fù) 10T,即可免費獲??!

        有收獲,點個在看 

        瀏覽 743
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            91丝袜制服 | 骚年老头囗交瘦老头激情 | 蜜臀久久99精品久久久酒店 | 精品国产99久久久久久www | 成人网站免费大全日韩国产 | 官场少妇伺候局长舒服了 | 国产免费无遮挡免费视频在线看 | 大乳boobs巨大吃奶乳水电影 | www日逼 | 狼人久久|