在线视频国产欧美另类,偷拍亚洲一区一区二区三区,日韩中文字幕在线视频,日本精品久久久久中文字幕

<small id="qpqhz"></small>
  • <legend id="qpqhz"></legend>

      <td id="qpqhz"><strong id="qpqhz"></strong></td>
      <small id="qpqhz"><menuitem id="qpqhz"></menuitem></small>
    1. linux學習日記

      時間:2021-07-02 16:35:57 日記 我要投稿

      linux學習日記范文

        只要能夠操作應(yīng)用程序的接口都能稱為shell。狹義的shell指的是命令行方面的軟件,包括bash。廣義的shell則包括圖形界面軟件,因為圖形界面其實也可以操作各種應(yīng)用程序來調(diào)用內(nèi)核工作,不過,在這里我們主要指的是bash。

      linux學習日記范文

        # type [-tpa] command –> 查看命令是否為bash的內(nèi)置命令或者是外部命令

        * 利用$var或者是${var}可獲取變量var的值

        * bash中的雙引號:特殊字符如$等,可以保有原本的特性

        * bash中的單引號:所有的字符均為普通的字符,沒有其他含義

        *可以用將特殊字符變成一般字符

        * 可用$(其他命令)來在命令中嵌套其他命令的返回值,也就是說:${var}取得變量var的值,$(command)取得命令返回值

        * 若變量需要在其他子進程中執(zhí)行,需要export var 來使變量成為環(huán)境變量

        * unset var 可取消變量var的定義

        ====環(huán)境變量====

        # env –> 查看當前系統(tǒng)的環(huán)境變量

        $本身也是一個變量,表示本shell的PID號,比如 # echo $$ 輸出本shell的PID

        ?本事也是一個變量,表示上一個執(zhí)行的命令的返回值,一般如果是0表示執(zhí)行成功,如果非0表示有問題。

        公共的語系編碼設(shè)置:/etc/sysconfig/i18n

        # read [-pt] variable –> 鍵盤讀取變量輸入值

        -p:后面可以跟提示符

        -t:后面可以接等待的秒數(shù),不會一直等待用戶輸入

        ====變量的聲明====

        # declare [-aixrp] var

        -a:將后面的var定義為數(shù)組類型

        -i:將后面的var定義為integer整數(shù)類型

        -x:用法與export一樣,就是將后面的var變成環(huán)境變量

        -r:將變量var設(shè)置成readonly狀態(tài),該變量不能被更改,也不能重設(shè)

        -p:單獨列出變量的類型

        如果把-改成+表示取消操作

        ====限制用戶的計算機資源使用====

        # ulimit [-SHacdfltu] [配額]

        -H:hardlimit,嚴格的限制,必定不能超過這個數(shù)值

        -S:softlimit,可以超過這個值,但有警告信息

        -a:后面不接任何參數(shù),列出所有的限制額度

        -c:某些進程發(fā)生錯誤的時候,系統(tǒng)會將該進程在內(nèi)存中的信息寫成文件,稱為內(nèi)核文件。限制每個內(nèi)核文件的最大容量

        -f:此shell可創(chuàng)建的最大單一文件容量,單位為KB

        -d:進程可以使用的最大內(nèi)存量

        -l:可用于lock的內(nèi)存量

        -t:最大的CPU時間(單位為秒)

        -u:單一用戶可使用的最大進程(process)數(shù)量

        ====變量內(nèi)容的刪除與替換====

        # echo ${path#/*:} –> 刪除path變量中最前面的那個以/開頭,以:結(jié)尾的

        # echo ${path##/*:} –> 刪除最長的那個,也就是說只保留了最后的一個路徑

        # –> 符合替換文字的最短的那個

        ## –> 符合替換文字的最長的那個

        如果想從后面開始刪,用%替換#即可

        接下來講替換功能:

        # echo ${path/sbin/SBIN} –> 將第一個sbin替換成SBIN

        # echo ${path//sbin/SBIN} –> 將所有的sbin替換成SBIN

        我們將這部分總結(jié)說明下一下:

        變量設(shè)定方式   說明       ${變量#關(guān)鍵字}

        ${變量##關(guān)鍵字}   若變量內(nèi)容從頭開始的數(shù)據(jù)符合『關(guān)鍵字』,則將符合的最短數(shù)據(jù)刪除

        若變量內(nèi)容從頭開始的數(shù)據(jù)符合『關(guān)鍵詞』,則將符合的最長數(shù)據(jù)刪除       ${變量%關(guān)鍵字}

        ${變量%%關(guān)鍵字}   若變量內(nèi)容從尾向前的數(shù)據(jù)符合『關(guān)鍵字』,則將符合的最短資料刪除

        若變量內(nèi)容從尾向前的數(shù)據(jù)符合『關(guān)鍵字』,則將符合的最長資料刪除       ${變量/舊字串/新字串}

        ${變量//舊字串/新字串}   若變量內(nèi)容符合『舊字串』則『第一個舊字串會被新字串取代』

        若變量內(nèi)容符合『舊字串』則『全部的舊字串會被新字串取代』

        # username=${username:-root} –> 如果username非空就取原值,如果沒有設(shè)置或者為空字符串就設(shè)置成root

        ====bash登錄界面與登錄成功后的歡迎界面====

        tips:最好是單一bash登陸,然后利用job control來切換不同的工作,這樣的話shell的history才能完全保存下來

        命令的執(zhí)行搜索路徑順序:先alias,再builtin,再$PATH

        bash的登陸界面配置文件:/etc/issue,遠處登陸界面配置文件:/etc/issue.net

        命令# man mingetty查看issue中各個代碼的意義

        登陸成功后顯示的信息配置文件:/etc/motd

        ====bash環(huán)境變量====

        login shell的配置文件:

        /etc/profile:系統(tǒng)全局配置文件,最好不要修改這個文件

        ~/.bash_profile或者~/.bash_login或者~/.profile:用戶自定義bash配置文件

        ~/.bashrc,這個配置文件login shell和non-login shell都會讀取

        ====bash中的通配符和特殊字符====

        符號   意義       *   代表『 0 個到無窮多個』任意字符       ?   代表『一定有一個』任意字元       [ ]   同樣代表『一定有一個在括號內(nèi)』的字元(非任意字元)。例如 [abcd] 代表『一定有一個字元, 可能是 a, b, c, d 這四個任何一個』       [ - ]   若有減號在中括號內(nèi)時,代表『在編碼順序內(nèi)的所有字元』。例如 [0-9] 代表 0 到 9 之間的'所有數(shù)字,因為數(shù)字的語系編碼是連續(xù)的!       [^ ]   若中括號內(nèi)的第一個字元為指數(shù)符號 (^) ,那表示『反向選擇』,例如 [^abc] 代表 一定有一個字元,只要是非 a, b, c 的其他字元就接受的意思。

        除了通配符之外,bash 環(huán)境中的特殊符號有哪些呢?底下我們先匯整一下:

        符號   內(nèi)容       #   注釋符號:這個最常被使用在 script 當中,視為說明#在后的語句均不執(zhí)行          跳脫符號:將『特殊字符或萬用字符』還原成一般字元       |   管道 (pipe):分隔兩個管道命令的界定(后兩節(jié)介紹);       ;   連續(xù)指令下達分隔符:連續(xù)性命令的界定 (注意!與管道命令不相同)       ~   使用者的家目錄       $   取用變量前置字元:亦即是變量之前需要加的變量取代值       &   工作控制 (job control):將指令變成背景下工作       !   邏輯運算意義上的『非』 not 的意思!       /   目錄符號,路徑分割符號       >, >>   數(shù)據(jù)流重導向:輸出導向,分別是『取代』與『累加』       <, <<   數(shù)據(jù)流重導向:輸入導向 (這兩個以后說明)       ‘ ‘   單引號,里面全是普通字符,不具備變量置換功能       ” “   具有變量置換的功能!       ` `   兩個『 ` 』中間為可以先執(zhí)行的指令,亦可使用 $( )       ( )   在中間為子 shell 的起始與結(jié)束       { }   在中間為命令區(qū)塊的組合!

        ====數(shù)據(jù)流重導向====

        1,標準輸入(stdin):代碼為0,使用<或者<<

        2,標準輸出(stdout):代號為1,使用>或者>>

        3,標準錯誤輸出(stderr):代號為2,使用2>或者2>>

        >表示清空后添加,>>表示累加添加,append的意思。了解?o(╯□╰)o

        <表示原本由鍵盤輸入的改由文件輸入,而<<則表示遇到后面的字符串的時候結(jié)束輸入。

        /dev/null:超級黑洞,它會吃掉任何導向到它的數(shù)據(jù)流,很強大的,不是麼。

        正確和錯誤輸出到同一個文件的語法格式:

        find /home -name .bashrc > list 2>&1

        ====管道命令====

        管道命令需要注意的是:

        1,管道命令僅能處理standard output,對于stderr會忽略掉

        2,管道命令必須要能夠接受來自前一個命令的數(shù)據(jù)成為standard input繼續(xù)處理才行

        ====選取命令cut和grep====

        # cut -d ‘分割字符’ -f fields <== 用于分割字符

        # cut -c 字符范圍 <== 用于排列整齊的信息

        -d:后面接分割字符,與-f一起使用

        -f:依據(jù)-d的分割字符將一段信息切割成為數(shù)段,用-f取出第幾段的意思(-f 3,5)

        -c:以字符的單位取出固定字符區(qū)間 (-c 12-34)

        grep以行為單位分析信息,如果該行符合條件,則把該行提出出來

        # grep [-acinv] [--color=auto] ’查找的字符串’ filename

        -a:將binary文件以text文件方式查找

        -c:計算找到’查找的字符串’的次數(shù)

        -i:忽略大小寫

        -n:順便輸出行號

        -v:反向選擇,即顯示出沒有 ‘字符串’內(nèi)容的那些行

        –color=auto : 關(guān)鍵字加上顏色

        ====排序命令sort,wc,uniq====

        # sort [-fbMnrtuk] [file or stdin]

        -f:忽略大小寫

        -b:忽略最前面的空格

        -M:以月份的名字排序

        -n:使用數(shù)字排序(默認是文字來排序)

        -r:反向排序

        -u:就是uniq,相同的數(shù)據(jù)中,僅出現(xiàn)一行代表

        -t:分隔符,默認以TAB分割

        -k:以那個區(qū)間進行排序

        # cat /etc/passwd | sort -t “:” -k 3 <== 以第三列進行排序

        # last | cut -d ‘ ‘ -f 1 | sort

        # uniq [-ic] <==排序完成后將重復的數(shù)據(jù)僅列出一個顯示

        -i:忽略大小寫

        -c:進行計數(shù)

        #last | cut -d ‘ ‘ -f1 | sort | uniq -ic

        # wc [-lwm] <== 行數(shù),字數(shù),字符數(shù)統(tǒng)計命令

        -l:僅列出行

        -w:僅列出多少字(英文單詞word)

        -m:多少字符(char)

        # cat /etc/man.config | wc

        ====雙向重定向tee====

        # tee [-a] file

        -a:以累加(append)方式,將數(shù)據(jù)加入到file中

        # ls -l /home | tee -a ~/homefile | more

        ====字符轉(zhuǎn)換命令:tr,col,join,paste,expand====

        # tr [-ds] SET1 …

        -d:刪除信息中的SET1這個字符串;

        -s:替換掉重復的字符

        # last | tr -s ‘[a-z]‘ ‘[A-Z]‘

        # cat /etc/passwd | tr -d “:”

        # col [-xb]

        -x:將tab鍵轉(zhuǎn)換成對等的空格鍵

        -b:如果在文字內(nèi)有反斜杠(),僅保留反斜杠最后接的字符

        # join [-ti12] file1 file2

        -t:join默認以空格符分割數(shù)據(jù),并且對比第一個字段的數(shù)據(jù),如果相同,合并到一行,且第一個字段放在第一個

        -i:忽略大小寫

        -1:代表第一個文件要用那個字段來分析

        -2:代表第二個文件要用哪個字段來分析

        # join -t “:” -1 4 /etc/passwd -2 3 /etc/group

        # paste [-d] file1 file2 …

        -d:后面可以接分割字符,默認以tab來分割

        -:如果-file寫成-,則表示來自stdin的數(shù)據(jù)

        # expand [-t] file

        -t :后面接數(shù)字,表示一個tab鍵可以轉(zhuǎn)換成幾個空格鍵

        # grep ‘^MANPATH’ /etc/man.config | head -n 3 | expand -t 6 – | cat -A

        ====切割命令split====

        # split [-bl] -file PREFIX

        -b:后面接欲切割成的文件的大小,可以加單位,如b,k,m,g等

        -l:以行數(shù)進行切割

        PREFIX:前導符,可作為切割文件的前導文字

        # split -b 300k /etc/termcap tercap

        ====參數(shù)代換xargs====

        # xargs [-0epn] command

        -0:如果輸入的stdin含有特殊字符,比如`,,空格鍵等,這個參數(shù)可以將其還原成一般字符

        -e:EOF,后面可以接一個字符串,當xargs遇到這個字符串的時候,就停止繼續(xù)工作

        -p:每次執(zhí)行命令的參數(shù)時,詢問用戶

        -n:后面接次數(shù),每次command執(zhí)行時,要使用幾個參數(shù)的意思

        # cut -d ‘:’ -f1 /etc/passwd | xargs -p -n 5 finger

        使用xargs的原因是:很多命令其實不支持管道命令,因此我們可以通過xargs來提供該命令引用stdin之用。

        # find /sbin -perm +7000 | xargs ls -l <== 找出/sbin下具有特殊權(quán)限的文件名

        

      【linux學習日記】相關(guān)文章:

      學習Linux的心得(精選6篇)05-24

      Linux學習總結(jié)報告10-04

      Linux的規(guī)劃與安裝基礎(chǔ)學習篇課后習題答案06-14

      《Linux》學習后劃重點用讀書筆記11-05

      學習的日記02-12

      學習畫畫的日記-小學日記06-20

      學習雷鋒的日記07-12

      常學習日記02-07

      學習游泳的日記04-10