<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      計算機工具基礎(chǔ)(二)——Shell概念、常用POSIX命令

      Shell概念

      本系列博客為MIT的《Missing in CS Class(2020)》的課程筆記。

      注:<>^在本文中指Ctrl,如c^cCtrl-c

      終端(命令行,CLI)

      • <Alt+T>:打開終端

      • <L>:清空終端內(nèi)容

      流的概念

      文件被視為連續(xù)的字節(jié)流進行處理。文件分為普通文件與設(shè)備文件。

      • 普通文件:分為文本文件、二進制文件

      • 設(shè)備文件:在Linux上,一切皆文件。操作系統(tǒng)有一組預(yù)定義的設(shè)備文件:標(biāo)準(zhǔn)設(shè)備文件。當(dāng)進程運行時,操作系統(tǒng)會為每個進程自動打開標(biāo)準(zhǔn)設(shè)備文件。常見的標(biāo)準(zhǔn)設(shè)備文件:

        • 標(biāo)準(zhǔn)輸入流(stdin),通常為鍵盤,文件描述符為0

        • 標(biāo)準(zhǔn)輸出流(stdout),通常為顯示器,文件描述符為1

        • 標(biāo)準(zhǔn)錯誤流(stderr),文件描述符為2

      路徑

      • 路徑分隔符:\(Windows) /(Linux)
      • 根目錄:最頂層的目錄。Windows:盤符:\;Linux:/
      • 絕對路徑:以根目錄起始的路徑
      • 相對路徑:以當(dāng)前工作目錄起始的路徑
        • .:當(dāng)前工作目錄
        • ..:父目錄
      • ~:當(dāng)前用戶的根工作目錄
      • -:上次所在目錄

      通配符

      • *:匹配任意長度\(\ge 0\)的字符
      • ?:匹配任意單個字符
      • {}:表示某種集合,用于解釋器的自動展開。如*{.c,.py}表示任意擴展名為cpy的文件

      環(huán)境變量

      • Linux:$PATH。不同路徑采用:分隔
      • Windows:%PATH%。不同路徑下采用;分隔。
      • 當(dāng)輸入命令時,操作系統(tǒng)首先進入環(huán)境變量中順序遍歷尋找命令中使用的程序。

      權(quán)限模型

      在Linux下的權(quán)限模型中,每個文件/目錄都具有權(quán)限控制。權(quán)限屬于元信息,存儲在對象的inode節(jié)點內(nèi)。權(quán)限分為三種:

      • r:讀。對于文件,代表可讀取其中內(nèi)容;對于目錄,代表可查看目錄中的內(nèi)容
      • w:寫。對于文件,代表可修改其中內(nèi)容;對于目錄,代表能修改該目錄的內(nèi)容,包括新建、刪除、移動/重命名其中的文件或該目錄本身。若僅對該目錄中的文件可寫,但對該目錄不可寫,則只能修改文件本身的內(nèi)容,但無法刪除文件。
      • x:執(zhí)行。對于文件,代表可執(zhí)行此文件;對于目錄,代表能否進入該目錄。注意與r權(quán)限區(qū)分,進入目錄與查看目錄內(nèi)容是不同的,進入目錄是最基本的權(quán)限。僅當(dāng)對目錄擁有x權(quán)限,才能對目錄進行其他權(quán)限的操作。

      Shell提示符(PS1)

      Shell解釋器配置文件位于用戶主目錄下以rc為后綴的隱藏文件。如bash則為~/.bashrc

      下面以bash為例,進入終端后:Username@Hostname:dir type

      • Username:當(dāng)前賬戶名,可使用whoami程序查看

      • Hostname:當(dāng)前主機名,可使用hostname程序查看

      • dir:當(dāng)前工作目錄。

        • 可使用pwd程序查看當(dāng)前工作目錄。
        • 若要切換工作目錄,可使用cd dir(Change Dir)。當(dāng)對dir有執(zhí)行權(quán)限(x)時,更改當(dāng)前工作目錄至dir
      • type:當(dāng)前賬戶的類型。$:非超級管理員(superadmin)賬戶;#superadmin賬戶,默認唯一的superadmin賬戶為root,uid=0

        • sudo command:在非superadmin賬戶下,以root身份進行執(zhí)行命令。不切換$PATHsudo需要輸入當(dāng)前賬戶密碼

        • su [username=root]:切換其他賬戶,需要輸入對方賬戶密碼。不切換pwd$PATH
          su -username:切換其他賬戶。切換pwd$PATH

      命令、程序及常用程序

      • 命令:由若干個可能帶有選項參數(shù)的程序組合而成的一組指令。在命令中使用后綴&使其在后臺運行。

      程序

      • 程序選項:以---開頭,位于程序之后。-后的選項為選項的簡寫,--后的選項為其完整寫法。

      • 程序的返回值:0表示正常返回,非0代表出現(xiàn)錯誤。如C中main函數(shù)的return,實質(zhì)上是在向操作系統(tǒng)返回程序運行結(jié)果。布爾型程序true永遠返回0,false永遠返回1。

      • 邏輯運算:程序返回值的可參與邏輯運算,也被稱為短路運算

        • &&:和運算符。對于一條含有該運算符的命令,僅當(dāng)先前程序均執(zhí)行成功(返回值均為0)時,才繼續(xù)執(zhí)行之后的程序;當(dāng)某個程序執(zhí)行失敗(返回值非0)時,停止執(zhí)行該命令。

        • ||:或運算符,對于一條含有該運算符的命令,只要有程序執(zhí)行成功(返回值為0),停止執(zhí)行該命令。

      常用程序

      • man program:程序幫助手冊。

      • which program:打印程序所在的絕對路徑

      • date:輸出系統(tǒng)日期

      • echo string:打印,將string打印至stdout

      • ls dir:查看某一目錄下包含的文件/目錄。若不指定dir,則默認為當(dāng)前工作目錄。
        選項:-l:查看某一目錄下文件/目錄的詳細元信息

        例:typepermission_string link_number owner groups number update_time name

        • type-dd代表其為一個目錄,-表示其為一個普通文件。
        • permission_string:長度為9的權(quán)限字符串,每3個一組。每組順次代表為該對象的所有者(Owner)、用戶組(Groups)、其他人(Others)的權(quán)限。若有權(quán)限則用權(quán)限名表示;-表示無該權(quán)限。可用chmod命令修改權(quán)限。chmod +name表示授予權(quán)限,chmod -name表示移除權(quán)限
        • number:對于普通文件,表示文件的字節(jié)數(shù);對于目錄,表示目錄項的數(shù)量。某一目錄的目錄項=普通文件數(shù)量+\(\sum\)子目錄的目錄項數(shù)+1(表示..,父目錄)
        • update_time:表示最后的修改時間。使用touch name修改文件/目錄的更新時間,使用選項-t YYYYMMDDhhmm.ss修改為指定時間YYYY-MM-DD hh:mm:ss。若操作對象不存在,則新建空白文件
      • findfind dir options expression:從dir開始進行查找。

        • 選項:-name "string":以對象名進行查找,可查找文件名、路徑名。可使用通配符。
        • -type typetypefd
      • diffDifference,將兩對象差異輸出至stdout

        • diff file1 file2:輸出兩文件差異。僅在file1中的內(nèi)容前用表示,僅在`file2`中的內(nèi)容前用表示。
        • 選項:-r dir1 dir2:遞歸輸出兩目錄差異。
        • 選項:-u file1 file2:以人類友好的方式輸出差異。
        • 選項:-q file1 file2:只判斷是否有差異,不輸出差異內(nèi)容。
      • grep:文本的模式匹配 grep "pattern" filefile可使用通配符。

        • 選項:-i:忽略模式串大小寫
        • -r:遞歸搜索目錄下所有文件
      • mvMove,移動文件/目錄

        • mv file newdir:移動文件file至新目錄newdirfile數(shù)量可不固定,且可使用通配符。若newdir不存在,則操作失敗。如:將所有擴展名為.cpp的文件移動到目錄./1中:mv *.cpp ./1

        • mv oldname newname:若newname不存在,則對操作對象重命名;若newname存在:對于文件,則操作對象會替換newname,對于目錄,則操作對象會被移動并成為newname的子目錄。

      • cpCopy,復(fù)制文件/目錄

        • cp file1 file2 :復(fù)制文件。若file2已存在,則其將被替換

        • 選項:-r dir1 dir2:遞歸復(fù)制文件夾內(nèi)所有文件。若dir2已存在,則dir1被復(fù)制成為dir2的子目錄。

      • mkdir dirMake Dir,新建空文件夾

        • 選項:-p:逐級創(chuàng)建目錄,若不存在就創(chuàng)建它
      • rmRemove,刪除操作對象

        • rm file:刪除文件
        • 選項:-r dir:遞歸刪除文件夾下的所有內(nèi)容
      • rmdir dir:當(dāng)該文件夾為空時,則刪除

      • cat file:打印文件全部內(nèi)容至stdout

      • tail file:打印文件末尾內(nèi)容。默認查看最后\(10\)
        選項:-n number:打印文件末尾number

      • tee file:將stdin同時寫入stdoutfile

      • journalctl:打印系統(tǒng)日志

      • alias newname="oldname":為命令設(shè)置別名

      • jobs:工作管理指令

      • ssh Username@RemoteHost:ssh登錄主機RemoteHost,默認端口22。默認以密碼登錄。

        • 選項:
          -p port:指定主機端口
      • scp options SourceFile TargetPath:主機間復(fù)制文件。僅支持本地與遠程,不支持遠程與遠程。

        • 接受遠程地址:Username@RemoteHost:Path
        • 選項:
          -r:遞歸復(fù)制文件夾內(nèi)所有文件
          -P port:指定主機端口
      • ftp:文件傳輸協(xié)議(File Transport Protool)

        • ftp RemoteHost:連接到遠程主機,默認端口21。若支持匿名則直接登錄,否則以交互式詢問賬戶密碼。
        • ls:列出遠程目錄
        • pwd:打印遠程所在目錄 lpwd:打印本地所在目錄
        • cd:切換遠程目錄 lcd:切換本地目錄
        • mkdir:在遠程新建文件夾 rmdir:在遠程刪除文件夾
        • delete:刪除遠程單個文件 mdelete:刪除遠程多個文件
        • rename:重命名遠程文件
        • chmod:設(shè)置遠程文件權(quán)限
        • asciibinary:設(shè)置傳輸模式為ACSII或二進制。
        • get:下載文件 mget:批量下載文件,常與通配符結(jié)合使用。
        • put:上傳文件 mput:批量上傳文件,常與通配符結(jié)合使用。
        • bye/quit:退出
        • 不支持移動和復(fù)制文件。
      • sftp:基于SSH的文件傳輸協(xié)議,為SSH的子系統(tǒng),與FTP是兩種截然不同的協(xié)議。下面僅列出與ftp不同的命令:

        • sftp Username@RemoteHost:連接到遠程主機,默認端口22。需顯式指定用戶名。
        • rm:刪除文件。
        • get:下載單個文件,可使用-r選項遞歸下載文件。不支持mget
        • put:上傳單個文件,使用-r選項遞歸上傳文件。不支持mput
        • bye/exit:退出
        • 不支持移動和復(fù)制文件。

      流的重定向、連接

      • 重定向輸出流:>>>

        • <command> > file覆蓋地重定向輸出流至文件
        • <command> >> file追加地重定向輸出流至文件
          例:echo命令通過重定向輸出流的方式,可將字符串打印進文件中:echo string > file
        • n > file:將文件描述符為n的文件覆蓋地重定向到文件。
          1 > file:將stdout重定向到file
        • n >> file:將文件描述符為n的文件追加地重定向到文件。
        • n >& m :將文件描述符 n 的輸出重定向到文件描述符 m。如command 2>&1:將stderr重定向到stdout
      • 重定向輸入流:<

        • < file:重定向輸入流自文件,輸入來自文件。
          例:cat file命令的本質(zhì)即為cat < file,通過重定向輸入流以讀取某文件內(nèi)容并打印。
        • n <& m:將文件描述符 m 的輸入重定向到文件描述符 n
      • 例:使用cat命令實現(xiàn)文件復(fù)制:cat < file1 > file2cat起到作為中轉(zhuǎn)站的作用。

        • cat的輸入流被重定向至file1,其內(nèi)容被讀入cat

        • cat的輸出流被重定向自file2,其內(nèi)容被打印進file2

      • 管道符:|,位于兩程序之間,用于連接它們的流。用法:program1 | program2,將program1stdout作為program2stdin

      進程通信

      進程間通過信號進行通信。信號從1開始編號。

      信號可由進程發(fā)出,也可用戶手動發(fā)出:kill -SIGid PID

      常用信號:

      信號編號 信號名稱 信號含義
      1 SIGHUP 終端掛起/控制進程結(jié)束br/若要忽略該信號,在運行程序的命令前使用nohup,或?qū)σ堰\行的程序使用disown
      2 SIGINT 中斷(Ctrl-C)
      3 SIGQUIT 終止(Ctrl-\)
      9 SIGKILL 強制終止
      11 SIGSEGV 段錯誤
      15 SIGTERM 終止信號,通常為kill命令發(fā)送的信號
      18 SIGCONT 繼續(xù)執(zhí)行暫停進程
      19 SIGSTOP 暫停進程
      20 SIGTSTP 終端掛起(Terminal Stop,CTRL-Z)br/之后可通過fgbg分別在前臺/后臺繼續(xù)進程
      posted @ 2025-01-23 20:31  椰蘿Yerosius  閱讀(24)  評論(0)    收藏  舉報  來源
      主站蜘蛛池模板: 九色国产精品一区二区久久 | 国产69精品久久久久99尤物| 91精品国产免费人成网站| 久久亚洲精品成人av秋霞| 鸡西市| 亚洲高清国产拍精品熟女| 丹寨县| 国产精品一区在线蜜臀| 在线a级毛片无码免费真人| 日韩av中文字幕有码| 无码囯产精品一区二区免费| 国产精品一码二码三码| 无码国产偷倩在线播放| 精品999日本久久久影院| 五月婷婷久久中文字幕| 亚洲第一极品精品无码久久| 昌平区| 在线日韩日本国产亚洲| 白嫩少妇激情无码| 国产普通话对白刺激| 狠狠色噜噜狠狠狠狠2021| 国产成年码av片在线观看| 亚欧美闷骚院| 屁屁影院ccyy备用地址| 亚洲午夜精品毛片成人播放| 国产对白老熟女正在播放| 激情综合色综合啪啪开心| 国产一级小视频| 亚洲欧美日韩国产四季一区二区三区| 国产av综合色高清自拍| 亚洲AV无码一二区三区在线播放| 欧美性猛交xxxx免费看| 巨胸喷奶水视频www免费网站| 在线观看人成视频免费| 日韩a无v码在线播放| 亚洲欧洲一区二区精品| 亚洲国产日韩欧美一区二区三区 | 久久精品国产99精品亚洲| 特黄少妇60分钟在线观看播放| 中文字幕人妻丝袜美腿乱| 涟源市|