1. 女朋友要和我學習shell

        共 2865字,需瀏覽 6分鐘

         ·

        2021-10-01 07:51





        看見女朋友三個字,我想都沒想,直接就啪,點進來了


        也不管博主寫的啥,反正我看見這三個字就給個面子,進來親切的問候一句:您禮貌嗎?


        女朋友像往常一樣洗好了澡,換上了睡衣,身上涂了些身體乳,噴了兩下香水,婀娜多姿的身材走到我面前,抓住我的脖領(lǐng),說了句,跟我進屋


        由于我的身體已經(jīng)麻木了,也沒啥感覺,雙腳似機器人是的跟著就進去了,進去了之后我的眼睛盯著女朋友的水汪汪的大眼睛


        她也深情的瞅著我,說了一句


        船長,給我講講shell,今晚我就上你的船


        假設我的女朋友叫小朝(跟我一起讀,之一奧zhao),別問我為什么要假設


        01

        shell的由來?


        小朝你的家里有電腦吧,你也使用過吧,你知道電腦Windows、Linux、Mac OS等系統(tǒng)吧


        小朝臉紅的點了點頭,你不是剛給我買的Mac嗎


        ... ...


        這些電腦都是帶有圖形界面的,我們比較常用的Mac和Windows,對于大家用起來都很方便,大家都可以直接通過點擊一個軟件的圖標去運行一個軟件,可以直接右鍵刪除,可以一鍵啟動


        然而在計算機的早起是沒有圖形界面的,那個時候操作電腦是通過一個個命令來控制計算機的,這些命令很多,分為很多類型,功能很強大



        而這個時候的電腦也只有相對來說的專業(yè)人士才可以使用,因為不像現(xiàn)在這么人性化


        點擊下方鏈接看西雅圖活電腦博物館

        https://zhuanlan.zhihu.com/p/21895357


        對于專業(yè)人士,需要一個命令啟動相應的程序,而現(xiàn)在我們可以直接使用操作圖標就可以啟動一個程序,換句話說,就是圖形界面和命令啟動的目的是一樣的,都是讓用戶控制計算機


        而兩者的運行過程也是類似的,都是查找到程序在硬盤上的安裝位置,然后將這個加載到內(nèi)存中去運行


        然而,真正能夠控制計算機硬件的只有操作系統(tǒng)內(nèi)核Kernel,而圖形界面和命令行都只是架設在用戶和內(nèi)核之間的一座橋梁而已


        02

        shell是什么?


        由于操作系統(tǒng)內(nèi)核是很繁瑣的,普通用戶直接接觸內(nèi)核是危險的,也是沒必要的,于是就出現(xiàn)了一層代理,讓用戶可以直接操作系統(tǒng),就是上面說的圖形界面和命令行


        這樣既能屏蔽其復雜性,又能夠保護計算機安全性,系統(tǒng)對命令進行簡單處理之后傳遞給內(nèi)核,這樣用戶和內(nèi)核之間就多了一層代理


        在Linux系統(tǒng)下,這層代理的命令行程序就是shell



        用一句大家都能聽懂的話叫:shell就是通過一些條件語句和循環(huán)語句,把一系列的Linux命令組合在一起,實現(xiàn)一些較為復雜的功能


        這里如果熟悉linux命令的小伙伴應該瞬間就懂了,腦海里可能立刻就浮現(xiàn)出了各種cd、pwd、tail命令


        shell除了能夠解釋用戶輸入的命令,將命令傳給內(nèi)核之外,還可以調(diào)用其它的程序,給其他程序傳遞參數(shù)并且獲取程序的處理結(jié)果


        shell本身也是可以被其它程序調(diào)用


        shell本身支持的命令不多,但是它是可以調(diào)用其它的程序,每個程序就是一個命令,shell命令的數(shù)量可以無限的擴展


        因此shell的功能十分強大,可以對linux進行日常管理工作,以及日常的文本、字符串的操作,文件的創(chuàng)建查找,大規(guī)模的軟件的自動部署,監(jiān)控系統(tǒng)性能這些


        03

        shell怎么用?



        shell是一種解釋性語言,就是將用戶的命令集合去解釋成計算機內(nèi)核能夠理解的語言


        shell其實不是簡單的疊加命令,我們其實可以在shell中編程,對于熟悉Python的人來說,shell應該是最不陌生的了,其實和java、C++在編寫語法上也類似


        雖然沒有這些語言這么強大,但是也支持了基本的編程語法,常見的邏輯判斷語句、循環(huán)語句、各種數(shù)據(jù)結(jié)構(gòu)、邏輯運算和數(shù)學運算等


        還有內(nèi)置函數(shù)和用戶自定義函數(shù)

        站在這個角度,shell也是屬于一種編程語言,它的解釋器就是shell這個程序,就類似于Python,有Python特定的解釋器


        shell在工作中主要用于一些自動化的小工具,顧名思義,shell腳本,屬于一個輔助性程序,不是用來開發(fā)具有復雜業(yè)務邏輯的中大型軟件


        04

        編譯和解釋


        任何代碼最終都要被“翻譯”成二進制的形式才能在計算機中執(zhí)行。

        有的編程語言,如 C/C++、Pascal、Go語言、匯編等,必須在程序運行之前將所有代碼都翻譯成二進制形式,也就是生成可執(zhí)行文件,用戶拿到的是最終生成的可執(zhí)行文件,看不到源碼。

        這個過程叫做
        編譯(Compile),這樣的編程語言叫做編譯型語言,完成編譯過程的軟件叫做編譯器(Compiler)

        而有的編程語言,如 Shell、JavaScript、Python、PHP等,需要一邊執(zhí)行一邊翻譯,不會生成任何可執(zhí)行文件,用戶必須拿到源碼才能運行程序。程序運行后會即時翻譯,翻譯完一部分執(zhí)行一部分,不用等到所有代碼都翻譯完。

        這個過程叫做
        解釋,這樣的編程語言叫做解釋型語言或者腳本語言(Script),完成解釋過程的軟件叫做解釋器。

        編譯型語言的優(yōu)點是執(zhí)行速度快、對硬件要求低、保密性好,適合開發(fā)操作系統(tǒng)、大型應用程序、數(shù)據(jù)庫等。

        腳本語言的優(yōu)點是使用靈活、部署容易、跨平臺性好,非常適合Web開發(fā)以及小工具的制作。

        Shell 就是一種腳本語言,我們編寫完源碼后不用編譯,直接運行源碼即可。


        05

        shell腳本實例


        看一個shell的例子:連續(xù)輸入五個100以內(nèi)的數(shù)字,統(tǒng)計和、最小和最大

        #!/bin/bashCOUNT=1SUM=0MIN=0MAX=100while [ $COUNT -le 5 ]; do    read -p "請輸入1-10個整數(shù):" INT    if [[ ! $INT =~ ^[0-9]+$ ]]; then        echo "輸入必須是整數(shù)!"        exit 1    elif [[ $INT -gt 100 ]]; then        echo "輸入必須是100以內(nèi)!"        exit 1    fi    SUM=$(($SUM+$INT))    [ $MIN -lt $INT ] && MIN=$INT    [ $MAX -gt $INT ] && MAX=$INT    let COUNT++doneecho "SUM: $SUM"echo "MIN: $MIN"echo "MAX: $MAX"


        06

        佛系求關(guān)注




        船長希望有一天能夠靠寫作養(yǎng)活自己,現(xiàn)在還在磨練,這個時間可能會持續(xù)很久,但是,請看我漂亮的堅持


        感謝大家能夠做我最初的讀者和傳播者,請大家相信,只要你給我一份愛,我終究會還你們一頁情的。


        船長會持續(xù)更新技術(shù)文章,和生活中的暴躁文章,歡迎大家關(guān)注【Java賊船】,成為船長的學習小伙伴,和船長一起乘千里風、破萬里浪


        哦對了,后續(xù)所有的遠程文章都會更新到這里


        https://github.com/DayuMM2021/Java



        瀏覽 63
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

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

        手機掃一掃分享

        分享
        舉報
          
          

            1. 天天操天天操天天操 | 日韩中文字幕第一页 | 免费看黄色国产视屏 | 久久青草网站 | a级情欲片在线观看 |