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 個(gè)有用的“面試問題和解答”

        共 2527字,需瀏覽 6分鐘

         ·

        2020-07-07 12:13

        點(diǎn)擊關(guān)注上方“杰哥的IT之旅”,

        后臺(tái)回復(fù)“Python自動(dòng)化”獲取精心整理的PDF。


        來自:Linux公社

        Linux的浩瀚無垠,使人總能每次都提交與眾不同的內(nèi)容。這些內(nèi)容不僅對(duì)他們的職業(yè)生涯很有用,同時(shí)也讓他們?cè)鲩L(zhǎng)知識(shí)。在此,我們就嘗試這么去做,至于能取得多大的成功,就由我們的讀者朋友們來判斷吧。
        在此,作為shell腳本的附加內(nèi)容,在本文中我們將從面試的角度解讀與Linux Shell相關(guān)的問題。


        1. 在shell腳本成功執(zhí)行前,如何中斷腳本執(zhí)行?

        解答:我們需要使用‘exit’命令來實(shí)現(xiàn)以上描述的情境。‘exit’命令被強(qiáng)制輸出非0值時(shí),腳本會(huì)報(bào)錯(cuò)并退出。在Unix環(huán)境下的shell腳本中,0值表示成功執(zhí)行。因此,在腳本終止前執(zhí)行一個(gè)不帶引號(hào)的‘exit -1’命令將使腳本中止。


        例如,創(chuàng)建以下一個(gè)名為“linuxmi.sh”的腳本。
        #!/bin/bashecho "Hello"exit -1echo "bye"
        保存文件并執(zhí)行。
        # sh linuxmi.shHellolinuxmi.sh:行3: exit-1: 未找到命令bye
        c709957bb5e9706a02cf8bc61cb75ab0.webp從上面的腳本中可以清楚地看到,在exit -1命令前,腳本執(zhí)行得很好。


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

        解答:當(dāng)我們需要?jiǎng)h除文件中的指定行時(shí),‘sed’命令可以用來解決該問題。


        這個(gè)是用來刪除文件頭(文件的首行)的正確命令。
        # sed '1 d' file.txt
        上面命令的問題是,它會(huì)在標(biāo)準(zhǔn)輸出設(shè)備上輸出不帶首行的文件內(nèi)容。為了保存輸出到文件,我們需要使用重定向操作符,它將幫助你將輸出重定向到文件。
        # sed '1 d' file.txt > new_file.txt
        好吧,其實(shí)sed命令內(nèi)建的‘-i’開關(guān)就可以干這活,就不需要重定向符了吧。
        # sed -i '1 d' file.txt

        3. 你怎么檢查一個(gè)文本文件中某一行的長(zhǎng)度?

        解答:‘sed’命令也可以用來查找文本文件中的某一行或者檢查其長(zhǎng)度。


        sed -n ‘n p’ file.txt’可以解決,這里‘n’表示行號(hào),‘p’打印出匹配內(nèi)容(到標(biāo)準(zhǔn)輸出),該命令通常與-n命令行選項(xiàng)連用。那么,怎樣來獲取長(zhǎng)度計(jì)數(shù)呢?很明顯,我們需要通過管道輸出給‘wc’命令來計(jì)算。
        # sed –n 'n p' file.txt | wc –c
        要得到文本文件‘linuxmi.txt’的第五行的長(zhǎng)度,運(yùn)行如下命令:
        # sed -n '5 p' linuxmi.txt | wc -c
        0ff4867e81837d89e1d486606d67f0f4.webp


        4. 可以在Linux系統(tǒng)上查看到所有非打印字符嗎?你是怎么做到的?

        解答:可以。可以在Linux中查看所有的非打印字符。要實(shí)現(xiàn)上面所講的方案,我們需要‘vi’編輯器的幫助。怎樣在‘vi’編輯器中顯示非打印字符?
        • 打開vi編輯器。
        • 先按[esc]鍵,然后按‘:’進(jìn)入到vi編輯器的命令模式。
        • 最后,從‘vi’編輯器的命令界面輸入set list命令并執(zhí)行。
        : 這種方式可以查看文本文件中的所有非打印字符,包括ctrl+m(^M)

        5. 假如你是一個(gè)員工組的團(tuán)隊(duì)領(lǐng)導(dǎo),為xyz公司工作。公司要求你創(chuàng)建一個(gè)‘dir_xyz’目錄,讓該組成員都能在該目錄下創(chuàng)建或訪問文件,但是除了文件創(chuàng)建者之外的其他人不能刪除文件,你會(huì)怎么做?

        解答:這真是個(gè)有趣的工作方案。好吧,上面所講的方案,我們需要通過下面的步驟來實(shí)施,這簡(jiǎn)直就是小菜一碟。
        # mkdir dir_xyz# chmod g+wx dir_xyz# chmod +t dir_xyz
        第一行命令創(chuàng)建了一個(gè)目錄(dir_xyz),上面的第二行命令讓組(g)具有‘寫’和‘執(zhí)行’的權(quán)限,而上面的最后一行命令——權(quán)限位最后的‘+t’是‘粘滯位’,它用來替換‘x’,表明在這個(gè)目錄中,文件只能被它們的擁有者、目錄的擁有者或者是超級(jí)用戶root刪除。


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

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


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


        • 等待:Linux進(jìn)程等待資源。
        • 運(yùn)行:Linux進(jìn)程當(dāng)前正在執(zhí)行中。
        • 停止:Linux進(jìn)程在成功執(zhí)行后或收到殺死進(jìn)程信號(hào)后停止。
        • 僵尸:如果該進(jìn)程已經(jīng)結(jié)束,但仍然留在進(jìn)程表中,被稱為‘僵尸’。

        7. Linux中cut命令怎么用?

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


        例如,截取‘txt_linuxmi’文件的前10列。
        # cut -c1-10 txt_linuxmi
        要截取該文件中的第二,第五和第七列。
        # cut -d;-f2 -f5 -f7 txt_linuxmi

        8. ‘cmp’和‘diff’命令的區(qū)別是什么?

        解答:‘cmp’和‘diff’命令用來獲取相同的東西,但各有側(cè)重。


        diff’命令輸出為了使兩個(gè)文件一樣而應(yīng)該做的修改。而‘cmp’命令則將兩個(gè)文件逐字節(jié)對(duì)比,并報(bào)告第一個(gè)不匹配的項(xiàng)。

        9. 可以用‘echo’命令來替換‘ls’命令嗎?

        解答:可以的?!甽s’命令可以用‘echo’命令來替代?!甽s’命令列出目錄內(nèi)容,從替換上述命令的角度講,我們可以使用‘echo *’,兩個(gè)命令的輸出完全一樣。


        10. 你可能聽過inode吧。你能簡(jiǎn)要描述一下inode嗎?

        解答:‘inode’是一個(gè)‘?dāng)?shù)據(jù)結(jié)構(gòu)’,在Linux上用于文件標(biāo)識(shí)。每個(gè)文件在Unix系統(tǒng)上有一個(gè)獨(dú)立的‘inode’和一個(gè)‘唯一的’inode號(hào)。

        - End -
        本公眾號(hào)全部博文已整理成一個(gè)目錄,請(qǐng)?jiān)诠娞?hào)后臺(tái)回復(fù)「m」獲??!
        推薦閱讀:1、Shell編程-條件測(cè)試 | 基礎(chǔ)篇
        2、Shell編程-控制結(jié)構(gòu) | 基礎(chǔ)篇
        3、Shell編程 | 腳本參數(shù)與交互及常見問題
        4、Shell 腳本中 '$' 符號(hào)的多種用法
        5、提升系統(tǒng) 10 倍性能的 10 個(gè)建議!
        6、摸魚神器:在 Linux 命令行下玩斗地主!關(guān)注微信公眾號(hào)『杰哥的IT之旅』,后臺(tái)回復(fù)“1024”查看更多內(nèi)容,回復(fù)“微信”添加我微信即可加入讀者交流群。

        點(diǎn)個(gè)[在看],是對(duì)杰哥最大的支持!
        瀏覽 66
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        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>
            亚洲精品一区二区三区早餐绿帽社 | 日本黄色电影在线观看 | 美女网站18 | 超碰操一操 | 最新黄色在线网站 | 国产一级a毛一级a毛视频在线网站) | 国产男女乱淫视频高清免费 | 少妇性受XXXX黑人XYX性爽 | 天堂网一区 | 日韩成人在线免费观看 |