97骚碰,毛片大片免费看,亚洲第一天堂,99re思思,色好看在线视频播放,久久成人免费大片,国产又爽又色在线观看

linux學(xué)習日記

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

linux學(xué)習日記范文

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

linux學(xué)習日記范文

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

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

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

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

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

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

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

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

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

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

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

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

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

  # read [-pt] variable –> 鍵盤(pán)讀取變量輸入值

  -p:后面可以跟提示符

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

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

  # declare [-aixrp] var

  -a:將后面的var定義為數組類(lèi)型

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

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

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

  -p:?jiǎn)为毩谐鲎兞康念?lèi)型

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

  ====限制用戶(hù)的計算機資源使用====

  # ulimit [-SHacdfltu] [配額]

  -H:hardlimit,嚴格的限制,必定不能超過(guò)這個(gè)數值

  -S:softlimit,可以超過(guò)這個(gè)值,但有警告信息

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

  -c:某些進(jìn)程發(fā)生錯誤的時(shí)候,系統會(huì )將該進(jìn)程在內存中的信息寫(xiě)成文件,稱(chēng)為內核文件。限制每個(gè)內核文件的最大容量

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

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

  -l:可用于lock的內存量

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

  -u:?jiǎn)我挥脩?hù)可使用的最大進(jìn)程(process)數量

  ====變量?jì)热莸膭h除與替換====

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

  # echo ${path##/*:} –> 刪除最長(cháng)的那個(gè),也就是說(shuō)只保留了最后的一個(gè)路徑

  # –> 符合替換文字的最短的那個(gè)

  ## –> 符合替換文字的最長(cháng)的那個(gè)

  如果想從后面開(kāi)始刪,用%替換#即可

  接下來(lái)講替換功能:

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

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

  我們將這部分總結說(shuō)明下一下:

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

  ${變量##關(guān)鍵字}   若變量?jì)热輳念^開(kāi)始的數據符合『關(guān)鍵字』,則將符合的最短數據刪除

  若變量?jì)热輳念^開(kāi)始的數據符合『關(guān)鍵詞』,則將符合的最長(cháng)數據刪除       ${變量%關(guān)鍵字}

  ${變量%%關(guān)鍵字}   若變量?jì)热輳奈蚕蚯暗臄祿稀宏P(guān)鍵字』,則將符合的最短資料刪除

  若變量?jì)热輳奈蚕蚯暗臄祿稀宏P(guān)鍵字』,則將符合的最長(cháng)資料刪除       ${變量/舊字串/新字串}

  ${變量//舊字串/新字串}   若變量?jì)热莘稀号f字串』則『第一個(gè)舊字串會(huì )被新字串取代』

  若變量?jì)热莘稀号f字串』則『全部的舊字串會(huì )被新字串取代』

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

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

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

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

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

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

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

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

  login shell的配置文件:

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

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

  ~/.bashrc,這個(gè)配置文件login shell和non-login shell都會(huì )讀取

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

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

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

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

  ====數據流重導向====

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

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

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

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

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

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

  正確和錯誤輸出到同一個(gè)文件的語(yǔ)法格式:

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

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

  管道命令需要注意的是:

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

  2,管道命令必須要能夠接受來(lái)自前一個(gè)命令的數據成為standard input繼續處理才行

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

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

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

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

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

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

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

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

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

  -c:計算找到’查找的字符串’的次數

  -i:忽略大小寫(xiě)

  -n:順便輸出行號

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

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

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

  # sort [-fbMnrtuk] [file or stdin]

  -f:忽略大小寫(xiě)

  -b:忽略最前面的空格

  -M:以月份的名字排序

  -n:使用數字排序(默認是文字來(lái)排序)

  -r:反向排序

  -u:就是uniq,相同的數據中,僅出現一行代表

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

  -k:以那個(gè)區間進(jìn)行排序

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

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

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

  -i:忽略大小寫(xiě)

  -c:進(jìn)行計數

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

  # wc [-lwm] <== 行數,字數,字符數統計命令

  -l:僅列出行

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

  -m:多少字符(char)

  # cat /etc/man.config | wc

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

  # tee [-a] file

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

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

  ====字符轉換命令:tr,col,join,paste,expand====

  # tr [-ds] SET1 …

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

  -s:替換掉重復的字符

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

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

  # col [-xb]

  -x:將tab鍵轉換成對等的空格鍵

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

  # join [-ti12] file1 file2

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

  -i:忽略大小寫(xiě)

  -1:代表第一個(gè)文件要用那個(gè)字段來(lái)分析

  -2:代表第二個(gè)文件要用哪個(gè)字段來(lái)分析

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

  # paste [-d] file1 file2 …

  -d:后面可以接分割字符,默認以tab來(lái)分割

  -:如果-file寫(xiě)成-,則表示來(lái)自stdin的數據

  # expand [-t] file

  -t :后面接數字,表示一個(gè)tab鍵可以轉換成幾個(gè)空格鍵

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

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

  # split [-bl] -file PREFIX

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

  -l:以行數進(jìn)行切割

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

  # split -b 300k /etc/termcap tercap

  ====參數代換xargs====

  # xargs [-0epn] command

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

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

  -p:每次執行命令的參數時(shí),詢(xún)問(wèn)用戶(hù)

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

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

  使用xargs的原因是:很多命令其實(shí)不支持管道命令,因此我們可以通過(guò)xargs來(lái)提供該命令引用stdin之用。

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

  

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

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

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

Linux的規劃與安裝基礎學(xué)習篇課后習題答案06-14

《Linux》學(xué)習后劃重點(diǎn)用讀書(shū)筆記11-05

學(xué)習的日記02-12

學(xué)習畫(huà)畫(huà)的日記-小學(xué)日記06-20

學(xué)習雷鋒的日記07-12

常學(xué)習日記02-07

學(xué)習游泳的日記04-10