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

【Linux】Linux系統(tǒng)編程——Linux命令解析器

這篇具有很好參考價(jià)值的文章主要介紹了【Linux】Linux系統(tǒng)編程——Linux命令解析器。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

【Linux】Linux系統(tǒng)編程——Linux命令解析器

什么是Linux 命令解析器?

Linux 命令解析器,通常被稱為 shell,是 Linux 操作系統(tǒng)中的一個(gè)關(guān)鍵組件。它充當(dāng)用戶和系統(tǒng)內(nèi)核之間的接口,允許用戶通過輸入命令來控制和管理操作系統(tǒng)和應(yīng)用程序。

命令解析器的作用與基本原理

Linux系統(tǒng)結(jié)構(gòu)簡(jiǎn)介

【Linux】Linux系統(tǒng)編程——Linux命令解析器,linux,運(yùn)維,服務(wù)器

這張圖是 Linux 系統(tǒng)結(jié)構(gòu)的一個(gè)簡(jiǎn)化表示,展示了不同組成部分之間的層次關(guān)系。從內(nèi)到外,各層次代表了系統(tǒng)的不同部分:

  1. 內(nèi)核:位于最中心的是 Linux 系統(tǒng)的核心。內(nèi)核是操作系統(tǒng)的心臟,負(fù)責(zé)管理硬件資源,以及進(jìn)程、內(nèi)存、文件系統(tǒng)的控制等。

  2. 內(nèi)核空間:緊接著內(nèi)核的是內(nèi)核空間,這是指那些直接運(yùn)行在內(nèi)核權(quán)限下的程序或內(nèi)核模塊的空間。在這個(gè)層次上,代碼能夠直接訪問硬件和內(nèi)存等資源。

  3. shell層:離內(nèi)核更遠(yuǎn)一些的是 shell 層。這個(gè)層次代表了系統(tǒng)中的命令解析器,也就是前面解釋過的 shell,它為用戶提供了一個(gè)與系統(tǒng)交互的界面。

  4. 應(yīng)用層:最外層是應(yīng)用層,代表運(yùn)行在用戶空間的各種應(yīng)用程序。這些程序通過系統(tǒng)調(diào)用與內(nèi)核進(jìn)行交云,并通過 shell 與用戶進(jìn)行交互。

  5. 用戶:在最外層,表示操作系統(tǒng)的用戶,他們通過應(yīng)用程序和 shell 與系統(tǒng)互動(dòng)。

整個(gè)圖表示了操作系統(tǒng)的“圈層模型”,其中最內(nèi)層是最底層的系統(tǒng)組件,負(fù)責(zé)直接與硬件交互,而向外層逐漸過渡到用戶空間和應(yīng)用程序。這種模型有助于保護(hù)系統(tǒng)的安全,因?yàn)樗拗屏藢?duì)核心系統(tǒng)組件的直接訪問。只有經(jīng)過適當(dāng)?shù)臋?quán)限和系統(tǒng)調(diào)用,外層的應(yīng)用程序和用戶才能與內(nèi)核層的組件交互。

作用

  1. 命令解釋器:用戶通過 shell 輸入命令,shell 解釋這些命令并將其轉(zhuǎn)換為內(nèi)核能理解的指令。例如,當(dāng)用戶輸入文件管理命令(如 ls, cp, mv)時(shí),shell 解釋這些命令并將它們傳遞給內(nèi)核執(zhí)行。

  2. 程序啟動(dòng)器:用戶可以通過 shell 啟動(dòng)應(yīng)用程序。用戶輸入程序名后,shell 會(huì)在系統(tǒng)中查找這個(gè)程序并啟動(dòng)它。

  3. 用戶界面:shell 提供了一個(gè)用戶與操作系統(tǒng)交互的界面,既可以是命令行界面(CLI),也可以是圖形界面(通過腳本實(shí)現(xiàn))。

  4. 腳本執(zhí)行:shell 腳本是一系列的命令集合,它們被保存在文件中以供以后執(zhí)行。shell 可以執(zhí)行這些腳本,使得自動(dòng)化復(fù)雜的任務(wù)變得可能。

  5. 環(huán)境管理:shell 管理著用戶的工作環(huán)境,包括環(huán)境變量、當(dāng)前工作目錄、用戶權(quán)限等。

  6. 輸入/輸出重定向:shell 允許用戶將命令的輸出重定向到文件中,或者從文件中讀取輸入。

基本原理

【Linux】Linux系統(tǒng)編程——Linux命令解析器,linux,運(yùn)維,服務(wù)器

shell就是用戶與系統(tǒng)內(nèi)核之間的一個(gè)橋梁,基本原理是用戶在終端輸入命令, 由shell命令解析器對(duì)命令進(jìn)行解析(按照$PATH環(huán)境變量搜索命令), 解析成內(nèi)核能夠識(shí)別的指令, 然后由內(nèi)核執(zhí)行命令, 最后由終端顯示命令執(zhí)行的結(jié)果給用戶。

注意:shell在尋找命令的時(shí)候是按照$PATH環(huán)境變量去查找的,如果找到了就執(zhí)行對(duì)應(yīng)的命令,若找不到就報(bào)錯(cuò), 執(zhí)行echo $PATH可以查看PATH環(huán)境變量的值.

以下是 shell 工作的基本步驟和機(jī)制:

  1. 命令輸入

    • 用戶在命令行界面輸入命令。
    • 這些命令可以是簡(jiǎn)單的單個(gè)命令、一連串的命令(使用管道 | 連接)、或者是復(fù)雜的腳本。
  2. 命令解析

    • Shell 讀取輸入的命令并進(jìn)行解析。
    • 它會(huì)檢查語法并將命令分解為基本的組成部分,如命令名、選項(xiàng)和參數(shù)。
  3. 變量和文件名展開

    • Shell 會(huì)展開命令行中的變量到它們的值。
    • 它還會(huì)對(duì)文件名進(jìn)行通配符匹配,如將 *.txt 展開為當(dāng)前目錄下所有以 .txt 結(jié)尾的文件名。
  4. 命令執(zhí)行

    • 解析后的命令被傳遞給操作系統(tǒng)。
    • Shell 會(huì)查找命令的可執(zhí)行文件,并啟動(dòng)一個(gè)新的進(jìn)程來運(yùn)行該命令。
    • 如果命令是內(nèi)建命令(shell 內(nèi)部提供的命令,如 cd),shell 會(huì)直接執(zhí)行而不是啟動(dòng)新的進(jìn)程。
  5. 輸入/輸出重定向

    • 在執(zhí)行命令之前,shell 可以根據(jù)需要重新分配標(biāo)準(zhǔn)輸入、輸出和錯(cuò)誤流。
    • 用戶可以使用重定向操作符,如 >、<>>,來指定輸出應(yīng)該被寫入到文件或從文件讀取輸入。
  6. 管道

    • Shell 允許使用管道將多個(gè)命令鏈接起來。
    • 管道操作符 | 用于將一個(gè)命令的輸出作為下一個(gè)命令的輸入。
  7. 命令執(zhí)行反饋

    • 一旦命令執(zhí)行完成,shell 會(huì)返回狀態(tài)碼給用戶。
    • 狀態(tài)碼通常表示命令是否成功執(zhí)行(通常用 0 表示成功,非 0 值表示錯(cuò)誤或異常)。
  8. 控制流

    • Shell 腳本可以包含控制流結(jié)構(gòu),比如循環(huán)(for, while)、條件判斷(if, case)和函數(shù)。
    • 這些結(jié)構(gòu)控制腳本的執(zhí)行流程。
  9. 信號(hào)處理

    • Shell 能夠處理來自操作系統(tǒng)的信號(hào),比如用戶按下 Ctrl+C 發(fā)出的中斷信號(hào)。
    • 它可以根據(jù)信號(hào)執(zhí)行特定的操作,例如終止當(dāng)前運(yùn)行的命令。
  10. 環(huán)境管理

    • Shell 管理著一個(gè)環(huán)境,這個(gè)環(huán)境包括了定義了用戶工作環(huán)境的環(huán)境變量。
    • 環(huán)境變量可以被腳本和程序用來獲取有關(guān)系統(tǒng)的信息。

常用的命令解析器

常用的命令解析器主要有以下幾種:

  1. Bash:Bash是Linux上最常用的命令解析器,它是Bourne-Again SHell的縮寫。支持命令行歷史記錄、自動(dòng)補(bǔ)全、別名、管道等。

  2. Bourne Shell:Bourne Shell是Linux系統(tǒng)默認(rèn)的shell,它是最早的一種shell,也是最基礎(chǔ)的一種。在Linux系統(tǒng)中,當(dāng)我們輸入用戶名和密碼登陸之后,我們就開始執(zhí)行一個(gè)shell解釋器程序,通常是/bin/bash,當(dāng)然也可以是別的,比如/bin/sh。

  3. C Shell (csh):C Shell是另一種常用的Unix shell,它是由Bill Joy在Bourne Shell的基礎(chǔ)上開發(fā)的,提供了一些Bourne Shell沒有的特性,如命令補(bǔ)全、歷史命令、作業(yè)控制等。

  4. Korn Shell (ksh):Korn Shell是在Bourne Shell的基礎(chǔ)上發(fā)展起來的,它的設(shè)計(jì)目標(biāo)是提供Bourne Shell的所有功能,并增加一些新的特性,如命令補(bǔ)全、歷史命令、作業(yè)控制等。它是一種非常流行的Unix shell,廣泛應(yīng)用于各種Unix系統(tǒng)中。

  5. Tcsh:Tcsh是在Korn Shell的基礎(chǔ)上發(fā)展起來的,它的設(shè)計(jì)目標(biāo)是提供Bourne Shell和Korn Shell的所有功能,并增加一些新的特性,如命令補(bǔ)全、歷史命令、作業(yè)控制等。它是一種非常流行的Unix shell,廣泛應(yīng)用于各種Unix系統(tǒng)中。

  6. Windows PowerShell:Windows PowerShell是微軟的.NET Framework技術(shù)的Windows NT系統(tǒng)中的一種命令解析器,它提供了強(qiáng)大的命令行操作功能,支持.NET Framework技術(shù),可以方便地進(jìn)行腳本編程[3]。

    【Linux】Linux系統(tǒng)編程——Linux命令解析器,linux,運(yùn)維,服務(wù)器文章來源地址http://www.zghlxwxcb.cn/news/detail-784576.html

到了這里,關(guān)于【Linux】Linux系統(tǒng)編程——Linux命令解析器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(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)文章

  • Linux系統(tǒng)編程,使用C語言實(shí)現(xiàn)簡(jiǎn)單的FTP(服務(wù)器/客戶端)

    Linux系統(tǒng)編程,使用C語言實(shí)現(xiàn)簡(jiǎn)單的FTP(服務(wù)器/客戶端)

    前言 跟著上官社長(zhǎng) 陳哥花了一個(gè)月的時(shí)間終于把Linux系統(tǒng)編程學(xué)的差不多了,這一個(gè)月真的是頭疼啊,各種bug,調(diào)的真心心累,不過好在問題都解決掉了,在此也感謝一下答疑老師,給我提供了很多的思路,本文章是對(duì)前段時(shí)間學(xué)習(xí)Linux,做一個(gè)小小的總結(jié),才疏學(xué)淺,只學(xué)

    2024年02月12日
    瀏覽(21)
  • 運(yùn)維 | 查看 Linux 服務(wù)器 IP 地址

    大多數(shù)在操作 Linux 系統(tǒng)時(shí),我們經(jīng)常需要知道服務(wù)器的 IP 比便于后續(xù)的一系列操作,這時(shí)候有快速查看主機(jī) IP 的命令行操作,能夠有效的幫助我們 本章節(jié)主要記錄一些常用查看服務(wù)器 IP 的命令,希望對(duì)大家有所幫助。 查看 Linux 服務(wù)器的 IP 地址的命令大體上有以下幾種。

    2024年04月27日
    瀏覽(100)
  • WSL win11下 Linux 子系統(tǒng)安裝 無法解析服務(wù)器的名稱或地址

    WSL win11下 Linux 子系統(tǒng)安裝 無法解析服務(wù)器的名稱或地址

    想在win11上部署docker于是乎找到wsl,可是在powershell上安裝總是報(bào) 無法解析服務(wù)器的名稱或地址 的錯(cuò)誤 網(wǎng)上沖浪一般解決方案為手動(dòng)修改DNS 114.114.114.114 8.8.8.8,可我改完之后依舊報(bào)錯(cuò)。 在某次沖浪中,發(fā)現(xiàn)上述錯(cuò)誤是由于 raw.githubusercontent.com 無法訪問,于是手動(dòng)添加hosts,問

    2024年02月11日
    瀏覽(20)
  • 【運(yùn)維】Linux 跨服務(wù)器復(fù)制文件文件夾

    如果是云服務(wù) 建議用內(nèi)網(wǎng)ip scp是secure copy的簡(jiǎn)寫,用于在Linux下進(jìn)行遠(yuǎn)程拷貝文件的命令,和它類似的命令有cp,不過cp只是在本機(jī)進(jìn)行拷貝不能跨服務(wù)器,而且scp傳輸是加密的。可能會(huì)稍微影響一下速度。當(dāng)你服務(wù)器硬盤變?yōu)橹蛔x read only system時(shí),用scp可以幫你把文件移出來

    2024年02月08日
    瀏覽(106)
  • Linux | Ubuntu20.04系統(tǒng)使用命令從移動(dòng)硬盤/U盤拷貝文件到服務(wù)器上

    *確認(rèn)自己移動(dòng)硬盤、U盤的格式,本文為exfat格式 查看disk默認(rèn)位置 查看最后的位置,我的顯示為 Device, 位置為 /dev/sdb1 ,2048, (后面省略) *注意:此時(shí)無法直接查看硬盤內(nèi)容 進(jìn)入Linux系統(tǒng)主界面,如果是user的話,獲取管理員權(quán)限 掛載移動(dòng)硬盤/U盤 命令如下,其中/dev/sdb1為disk默

    2024年02月14日
    瀏覽(27)
  • 【Linux 服務(wù)器運(yùn)維】定時(shí)任務(wù) crontab 詳解 | 文末送書

    【Linux 服務(wù)器運(yùn)維】定時(shí)任務(wù) crontab 詳解 | 文末送書

    本文思維導(dǎo)圖概述的主要內(nèi)容: 1.1 什么是 crontab Crontab 是一個(gè)在 Unix 和 Linux 操作系統(tǒng)上 用于定時(shí)執(zhí)行任務(wù) 的工具。它允許用戶創(chuàng)建和管理計(jì)劃任務(wù),以便在特定的時(shí)間間隔或時(shí)間點(diǎn)自動(dòng)運(yùn)行命令或腳本。Crontab 是 cron table 的縮寫, cron 指的是 Unix 系統(tǒng)中的一個(gè)后臺(tái)進(jìn)程,它

    2024年02月08日
    瀏覽(126)
  • win11 使用 WSL2 安裝 linux 子系統(tǒng) ubuntu 出現(xiàn)錯(cuò)誤:無法解析服務(wù)器的名稱或地址

    win11 使用 WSL2 安裝 linux 子系統(tǒng) ubuntu 出現(xiàn)錯(cuò)誤:無法解析服務(wù)器的名稱或地址

    解決方法: 記事本打開 C:WindowsSystem32driversetchosts 文件, 添加如下解析地址 #raw.githubusercontent.com 185.199.108.133 raw.githubusercontent.com 185.199.109.133 raw.githubusercontent.com 185.199.110.133 raw.githubusercontent.com 185.199.111.133 raw.githubusercontent.com ifconfig /flushdns 查看可安裝的 WSL wsl --list --onlin

    2024年04月27日
    瀏覽(30)
  • 【Linux運(yùn)維】shell腳本檢查服務(wù)器內(nèi)存和CPU利用率

    在管理服務(wù)器時(shí)候?qū)懥艘粋€(gè) shell腳本,在服務(wù)上實(shí)現(xiàn)每天凌晨3點(diǎn)查系統(tǒng)的指定文件夾下的容量大小,如果超過10G就要?jiǎng)h除3天前的內(nèi)容,還要時(shí)刻查詢內(nèi)存和cpu利用率,如果超過80%就要提示用戶出現(xiàn)過載 將以上代碼保存為一個(gè).sh文件,然后通過crontab在每天凌晨3點(diǎn)運(yùn)行即可:

    2024年02月09日
    瀏覽(32)
  • Linux本地部署1Panel服務(wù)器運(yùn)維管理面板并實(shí)現(xiàn)公網(wǎng)訪問

    Linux本地部署1Panel服務(wù)器運(yùn)維管理面板并實(shí)現(xiàn)公網(wǎng)訪問

    1Panel 是一個(gè)現(xiàn)代化、開源的 Linux 服務(wù)器運(yùn)維管理面板。高效管理,通過 Web 端輕松管理 Linux 服務(wù)器,包括主機(jī)監(jiān)控、文件管理、數(shù)據(jù)庫(kù)管理、容器管理等 下面我們介紹在Linux 本地安裝1Panel 并結(jié)合cpolar 內(nèi)網(wǎng)穿透工具實(shí)現(xiàn)遠(yuǎn)程訪問1Panel 管理界面 執(zhí)行如下命令一鍵安裝 1Panel: 安

    2024年02月04日
    瀏覽(103)
  • Linux服務(wù)器常見運(yùn)維性能測(cè)試(1)綜合跑分unixbench、superbench

    Linux服務(wù)器常見運(yùn)維性能測(cè)試(1)綜合跑分unixbench、superbench

    最近需要測(cè)試一批服務(wù)器的相關(guān)硬件性能,以及在常規(guī)環(huán)境下的硬件運(yùn)行穩(wěn)定情況,需要持續(xù)拷機(jī)測(cè)試穩(wěn)定性。所以找了一些測(cè)試用例。本次測(cè)試包括在服務(wù)器的高低溫下性能記錄及壓力測(cè)試,高低電壓下性能記錄及壓力測(cè)試,常規(guī)環(huán)境下CPU滿載穩(wěn)定運(yùn)行的功率記錄。 這個(gè)系

    2024年02月04日
    瀏覽(102)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包