国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

shell進(jìn)程,終端的概念,以及它們之間有什么區(qū)別與聯(lián)系?

這篇具有很好參考價(jià)值的文章主要介紹了shell進(jìn)程,終端的概念,以及它們之間有什么區(qū)別與聯(lián)系?。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

前言

這個(gè)系列的文章有四篇,其目的是為了搞清楚

  • 進(jìn)程,shell,shell進(jìn)程,終端,控制終端,前臺(tái)進(jìn)程,后臺(tái)進(jìn)程,控制進(jìn)程,前臺(tái)進(jìn)程組,后臺(tái)進(jìn)程組,會(huì)話,守護(hù)進(jìn)程,init進(jìn)程,用戶進(jìn)程,系統(tǒng)進(jìn)程 它們之間的聯(lián)系與區(qū)別
  • 系列文章第二篇傳送門:全面理解進(jìn)程組,會(huì)話的基礎(chǔ)概念,以及進(jìn)程組,會(huì)話,控制終端,前臺(tái)進(jìn)程組與后臺(tái)進(jìn)程組之間的聯(lián)系(系列文章第二篇)
  • 系列文章第三篇傳送門: 全面理解守護(hù)進(jìn)程的基礎(chǔ)概念,以及如何創(chuàng)建一個(gè)守護(hù)進(jìn)程(系列文章第三篇)
  • 系列文章第四篇傳送門:全面理解前臺(tái)進(jìn)程,后臺(tái)進(jìn)程的概念,以及之間如何切換,init進(jìn)程與系列文章大總結(jié)(系列文章第四篇)

那么接下來(lái),就請(qǐng)我一點(diǎn)一點(diǎn)為大家解開(kāi),這里的廬山真面目

shell進(jìn)程與終端的基礎(chǔ)概念

什么是Shell

Shell 是操作系統(tǒng)的一個(gè)接口,提供了一個(gè)命令行界面,用戶可以通過(guò)這個(gè)界面與操作系統(tǒng)交互。在 Unix/Linux 系統(tǒng)中,Shell 是一個(gè)命令行解釋器,它解釋用戶輸入的命令并調(diào)用相應(yīng)的程序執(zhí)行。Shell 還是一個(gè)編程環(huán)境,可以編寫復(fù)雜的 shell 腳本。

什么是進(jìn)程

進(jìn)程是計(jì)算機(jī)中的程序關(guān)于某數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),是系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位。進(jìn)程之間是相互獨(dú)立的,每個(gè)進(jìn)程均運(yùn)行在其專用且受保護(hù)的內(nèi)存空間內(nèi)。

更多的具體的關(guān)于進(jìn)程的基礎(chǔ)概念大家可以看我的這篇文章:

  • 進(jìn)程的基礎(chǔ)概念
  • 進(jìn)程的多種狀態(tài),狀態(tài)間如何轉(zhuǎn)換,以及進(jìn)程相關(guān)的命令

什么是終端

  • 終端(Terminal)最初是指物理設(shè)備,如鍵盤和顯示器。在 Unix/Linux 系統(tǒng)中,終端成為了一種抽象概念,指的是通過(guò)某種方式(物理或網(wǎng)絡(luò))與系統(tǒng)交互的一個(gè)接口。
  • 現(xiàn)在的終端更多的是指一種設(shè)備或者是一個(gè)應(yīng)用程序(如你在使用的ssh終端或圖形界面下的終端模擬器),它為用戶與操作系統(tǒng)交互提供了環(huán)境。在Unix/Linux中,每個(gè)終端都會(huì)對(duì)應(yīng)一個(gè)設(shè)備文件,例如/dev/tty1,/dev/tty2等。

shell進(jìn)程與終端之間的關(guān)系

現(xiàn)在我們來(lái)看一下 Shell 進(jìn)程 和 終端 之間的關(guān)系。

  • 當(dāng)你打開(kāi)一個(gè)終端窗口(例如,通過(guò) ssh 登錄,或者在 GUI 下打開(kāi)一個(gè)控制臺(tái)窗口)時(shí),會(huì)創(chuàng)建一個(gè) Shell 進(jìn)程。這個(gè) Shell 進(jìn)程會(huì)在終端接收你的輸入,解析這些輸入,然后執(zhí)行相應(yīng)的命令。因此,Shell 進(jìn)程就像是終端(用戶)和操作系統(tǒng)之間的媒介。

  • 為了更好地理解,我們可以想象這樣一種場(chǎng)景:你在終端窗口中鍵入命令 “l(fā)s”,然后按回車。此時(shí),Shell 進(jìn)程接收到 “l(fā)s” 命令,解析它,并調(diào)用 “l(fā)s” 程序。 “l(fā)s” 程序運(yùn)行后,將輸出發(fā)送回 Shell 進(jìn)程,Shell 進(jìn)程再將這些輸出顯示在終端窗口中。這就是 Shell 進(jìn)程與終端之間的基本交互方式。

再一次的,更進(jìn)一步的深入了解進(jìn)程與終端之間的關(guān)系

  • 在 UNIX 系統(tǒng)中,當(dāng)用戶通過(guò)終端登錄系統(tǒng)后,的確會(huì)得到一個(gè) shell 進(jìn)程,這個(gè)終端成為 shell 進(jìn)程的控制終端。這里的 "控制終端" 是指能夠接收用戶輸入并顯示程序輸出的設(shè)備或虛擬設(shè)備。

  • 對(duì)于每一個(gè)進(jìn)程,它的控制終端信息保存在它的進(jìn)程控制塊(Process Control Block,PCB的。當(dāng) shell 進(jìn)程使用 fork() 創(chuàng)建新的進(jìn)程時(shí),新的進(jìn)程會(huì)繼承 shell 進(jìn)程的 PCB 信息,包括控制終端的信息,因此新的進(jìn)程的控制終端也是同一個(gè)終端。

  • 在 UNIX 系統(tǒng)中,每個(gè)進(jìn)程都有三個(gè)默認(rèn)的文件描述符:標(biāo)準(zhǔn)輸入(stdin,文件描述符為 0),標(biāo)準(zhǔn)輸出(stdout,文件描述符為 1),以及標(biāo)準(zhǔn)錯(cuò)誤輸出(stderr,文件描述符為 2)。

    • 默認(rèn)情況下(沒(méi)有重定向),這些文件描述符都指向控制終端。因此,進(jìn)程從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù),就是讀取用戶在終端的鍵盤輸入;進(jìn)程向標(biāo)準(zhǔn)輸出或標(biāo)準(zhǔn)錯(cuò)誤輸出寫數(shù)據(jù),就是向終端的顯示器輸出
  • 控制終端還有一個(gè)重要的功能,就是能夠向前臺(tái)進(jìn)程發(fā)送信號(hào)。在 UNIX 系統(tǒng)中,有一些特殊的鍵盤輸入可以產(chǎn)生信號(hào)。例如:

    • Ctrl + C 會(huì)產(chǎn)生 SIGINT 信號(hào),這是一個(gè)中斷信號(hào),用來(lái)請(qǐng)求進(jìn)程終止運(yùn)行;
    • Ctrl + \ 會(huì)產(chǎn)生 SIGQUIT 信號(hào),這也是一個(gè)請(qǐng)求進(jìn)程終止運(yùn)行的信號(hào),但與 SIGINT 不同,SIGQUIT 還會(huì)產(chǎn)生 core dump 文件,用來(lái)保存進(jìn)程終止時(shí)的狀態(tài),以供后續(xù)分析。

再再再次的深入了解到底什么是控制終端,從產(chǎn)生到作用

  • 當(dāng)我們通過(guò)SSH等遠(yuǎn)程登錄工具連接到Linux主機(jī)時(shí),遠(yuǎn)程登錄服務(wù)會(huì)啟動(dòng)一個(gè)shell進(jìn)程來(lái)處理你的命令請(qǐng)求,這個(gè)新啟動(dòng)的shell進(jìn)程會(huì)創(chuàng)建一個(gè)新的會(huì)話,并將你的遠(yuǎn)程終端設(shè)置為這個(gè)會(huì)話的控制終端。
    • 也就是說(shuō),Linux主機(jī)同意與我們的終端建立連接的時(shí)候:
      • 第一步:系統(tǒng)會(huì)啟動(dòng)一個(gè)shell進(jìn)程
      • 第二步:shell進(jìn)程會(huì)創(chuàng)建一個(gè)新的會(huì)話,并自己成為該會(huì)話的領(lǐng)頭進(jìn)程
      • 第三步:shell進(jìn)程將我們的遠(yuǎn)程終端設(shè)置成為這個(gè)會(huì)話的控制終端。
  • 控制終端的作用是
    • 輸入輸出設(shè)備:控制終端通常用作會(huì)話中所有進(jìn)程的默認(rèn)輸入和輸出設(shè)備。
    • 信號(hào)發(fā)送:控制終端可以用來(lái)向前臺(tái)進(jìn)程組中的進(jìn)程發(fā)送信號(hào)。
    • 作業(yè)控制:控制終端也用于實(shí)現(xiàn) Unix 的作業(yè)控制功能。
    • 終端設(shè)備的參數(shù)控制:通過(guò)控制終端,可以對(duì)終端設(shè)備的各種參數(shù)進(jìn)行控制,比如字符的顯示方式、輸入輸出速度等。
    • 會(huì)話的劃分:控制終端是劃分不同會(huì)話的一個(gè)重要標(biāo)志。每個(gè)會(huì)話都有一個(gè)與之關(guān)聯(lián)的控制終端,通過(guò)這個(gè)控制終端,用戶可以與會(huì)話中的進(jìn)程進(jìn)行交互。

總之,當(dāng)我們的那個(gè)登錄終端,成為了一個(gè)會(huì)話的控制終端后,才會(huì)具有以上的這些功能,擁有了這些功能,我們才能在Linux系統(tǒng)上展開(kāi)一些工作。這也就是我對(duì)控制終端的理解。

總結(jié)

  • Shell 進(jìn)程:當(dāng)你打開(kāi)一個(gè)終端窗口時(shí),會(huì)啟動(dòng)一個(gè) Shell 進(jìn)程。這個(gè) Shell 進(jìn)程提供一個(gè)命令行界面,用于接收用戶的輸入,解析這些輸入,然后執(zhí)行相應(yīng)的命令。

  • 終端:終端是用戶與操作系統(tǒng)交互的接口。用戶在終端輸入命令,這些命令由 Shell 進(jìn)程接收并執(zhí)行。執(zhí)行的結(jié)果再通過(guò) Shell 進(jìn)程返回到終端顯示。

  • 交互方式:用戶在終端輸入命令,Shell 進(jìn)程接收并解析這些命令,然后調(diào)用相應(yīng)的程序執(zhí)行。執(zhí)行的結(jié)果再通過(guò) Shell 進(jìn)程返回到終端,顯示給用戶。

  • 關(guān)系:Shell 進(jìn)程和終端之間的關(guān)系非常密切。Shell 進(jìn)程就像是終端(用戶)和操作系統(tǒng)之間的橋梁,它接收用戶在終端的輸入,解析并執(zhí)行這些輸入,然后將執(zhí)行結(jié)果返回到終端顯示給用戶。

簡(jiǎn)而言之,Shell 進(jìn)程與終端之間的關(guān)系就像是一個(gè)傳聲筒和人們之間的關(guān)系:人們通過(guò)傳聲筒(Shell 進(jìn)程)說(shuō)話,傳聲筒將聲音(命令)傳遞出去,并將回聲(執(zhí)行結(jié)果)傳回給人們(用戶)。

  • 系列文章第二篇:進(jìn)程組,會(huì)話的基礎(chǔ)概念,以及進(jìn)程組,會(huì)話,控制終端,前臺(tái)后臺(tái)之間的聯(lián)系

最后的最后,如果你覺(jué)得我的這篇文章寫的不錯(cuò)的話,請(qǐng)給我一個(gè)贊與收藏,關(guān)注我,我會(huì)繼續(xù)給大家?guī)?lái)更多更優(yōu)質(zhì)的干貨內(nèi)容文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-440053.html

到了這里,關(guān)于shell進(jìn)程,終端的概念,以及它們之間有什么區(qū)別與聯(lián)系?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • java中操作字符串都有哪些類?它們之間有什么區(qū)別?

    Java中常用的字符串操作類有: String類是Java中最常用的字符串類,它是不可變的字符串,即創(chuàng)建后不能被修改。 StringBuilder類也是一個(gè)字符串操作類,但它是可變的,即可以修改已經(jīng)創(chuàng)建的字符串對(duì)象。StringBuilder比String更適合在程序中進(jìn)行字符串拼接操作。 StringBuffer類與St

    2023年04月21日
    瀏覽(22)
  • J9數(shù)字論:什么是公鏈、聯(lián)盟鏈、私有鏈?它們之間區(qū)別在哪?

    J9數(shù)字論:什么是公鏈、聯(lián)盟鏈、私有鏈?它們之間區(qū)別在哪?

    公有鏈?zhǔn)侨魏稳硕寄軈⑴c讀取、交易、寫入的區(qū)塊鏈,完全去中心化,賬本信息公開(kāi)透明,不受任何機(jī)構(gòu)控制。公有鏈一般都需要挖礦來(lái)達(dá)成共識(shí),因此帶來(lái)了交易延時(shí)高、成本高和效率低等缺點(diǎn)。公有鏈的典型代表有比特幣、以太坊、EOS等。私有鏈?zhǔn)侵赣涃~權(quán)由單獨(dú)的個(gè)人

    2024年02月12日
    瀏覽(16)
  • 485、CAN、單總線、SPI、I2C的概念,特點(diǎn),協(xié)議,使用方法及通信方式,還有它們之間的區(qū)別

    1. 485:485(一般稱作 RS485/EIA-485)是隸屬于 OSI 模型物理層的電氣特性規(guī)定為 2 線,半雙工,多點(diǎn)通信的標(biāo)準(zhǔn)。它的電氣特性和 RS-232 大不一樣。用纜線兩端的電壓差值來(lái)表示傳遞信號(hào)。 2. CAN:CAN,全稱為“Controller Area Network”,即控制器局域網(wǎng),是一種多主方式的串行通訊總

    2024年02月10日
    瀏覽(21)
  • 06 為什么需要多線程;多線程的優(yōu)缺點(diǎn);程序 進(jìn)程 線程之間的關(guān)系;進(jìn)程和線程之間的區(qū)別

    06 為什么需要多線程;多線程的優(yōu)缺點(diǎn);程序 進(jìn)程 線程之間的關(guān)系;進(jìn)程和線程之間的區(qū)別

    CPU、內(nèi)存、IO之間的性能差異巨大 多核心CPU的發(fā)展 線程的本質(zhì)是增加一個(gè)可以執(zhí)行代碼工人 多線程的優(yōu)點(diǎn) 多個(gè)執(zhí)行流,并行執(zhí)行。(多個(gè)工人,干不一樣的活) 多線程的缺點(diǎn) 上下文切換慢,切換上下文典型值1us vs 0.3ns/cycle CPU在執(zhí)行A任務(wù)(A沒(méi)有執(zhí)行完)時(shí),切換到任務(wù)B,需

    2024年02月14日
    瀏覽(17)
  • 在Qt中List View和List Widget的區(qū)別是什么,以及如何使用它們

    在Qt中List View和List Widget的區(qū)別是什么,以及如何使用它們

    2023年10月29日,周日晚上 目錄 List View和List Widget的區(qū)別 如何使用QListView 如何使用QListWidget 在Qt中,QListView 和 QListWidget 是用于顯示列表數(shù)據(jù)的兩個(gè)常用控件,它們有一些區(qū)別和特點(diǎn)。 1. 數(shù)據(jù)模型: ????????QListView 使用 QAbstractItemModel 數(shù)據(jù)模型來(lái)管理和顯示列表數(shù)據(jù),而

    2024年02月08日
    瀏覽(16)
  • css中預(yù)編譯理解,它們之間區(qū)別

    css預(yù)編譯器用一種專門的編程語(yǔ)言,它可以對(duì)web頁(yè)面樣式然后再編譯成正常css文件,可以更加方便和高效的編寫css代表。主要作用就是為css提供了變量,函數(shù),嵌套,繼承,混合等功能,以及更加易于維護(hù)和組織代碼的結(jié)構(gòu)。 常見(jiàn)的css預(yù)編譯語(yǔ)言有:sass,less和stylus等等 區(qū)別

    2024年02月15日
    瀏覽(19)
  • NLP和LLMs: 理解它們之間的區(qū)別

    NLP(自然語(yǔ)言處理)和LLMs(大型語(yǔ)言模型)都與處理自然語(yǔ)言相關(guān),但它們的重點(diǎn)和范圍略有不同。 自然語(yǔ)言處理(NLP): 定義 : 自然語(yǔ)言處理(NLP)是人工智能領(lǐng)域的一個(gè)子領(lǐng)域,專注于研究和開(kāi)發(fā)使計(jì)算機(jī)能夠理解、處理、生成自然語(yǔ)言文本的技術(shù)和方法。 目標(biāo) :

    2024年04月17日
    瀏覽(27)
  • Buildroot,Ubuntu,Debian,Yocto 它們分別是什么,它們之間的具體關(guān)系是什么

    1. Buildroot 定義: Buildroot是一個(gè)簡(jiǎn)化和加速嵌入式Linux系統(tǒng)開(kāi)發(fā)過(guò)程的工具,提供一種容易、高效的方式來(lái)生成交叉編譯工具鏈、根文件系統(tǒng)、內(nèi)核映像和引導(dǎo)加載程序。Buildroot使用makefile和kconfig(和Linux內(nèi)核使用的相同系統(tǒng))來(lái)配置和構(gòu)建整個(gè)嵌入式系統(tǒng)。 適用場(chǎng)景: 對(duì)于

    2024年04月25日
    瀏覽(25)
  • Elasticsearch:Text vs. Keyword - 它們之間的差異以及它們的行為方式

    Elasticsearch:Text vs. Keyword - 它們之間的差異以及它們的行為方式

    很多剛開(kāi)始學(xué)習(xí) Elasticsearch 的人經(jīng)常會(huì)混淆 text 和 keyword 字段數(shù)據(jù)類型。 它們之間的區(qū)別很簡(jiǎn)單,但非常關(guān)鍵。 在本文中,我將討論兩者之間的區(qū)別、如何使用它們、它們的行為方式以及使用哪一種。 它們之間的關(guān)鍵區(qū)別在于,Elasticsearch 會(huì)在將 text 存儲(chǔ)到倒排索引之前對(duì)

    2024年02月03日
    瀏覽(16)
  • 什么是Docker的容器編排工具,它們之間有何不同?

    隨著Docker容器技術(shù)的廣泛應(yīng)用,容器編排工具成為了自動(dòng)化部署、擴(kuò)展和管理容器化應(yīng)用程序的關(guān)鍵組件。這些工具提供了一種抽象層,幫助開(kāi)發(fā)者和管理員更高效地管理大量的Docker容器,確保它們?cè)诓煌闹鳈C(jī)和環(huán)境中能夠可靠地運(yùn)行。目前,市場(chǎng)上流行的Docker容器編排工

    2024年02月19日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包