今日學習內容為:管道符、重定向與環境變數
1、輸入、輸出重定向
簡而言之,輸入重定向是指把檔案匯入到命令中,而輸出重定向則是指把原本要輸出到螢幕的資料資訊寫入到指定檔案中。在日常的學習和工作中,相較於輸入重定向,我們使用輸出重定向的頻率更高,所以又將輸出重定向分為了標準輸出重定向和錯誤輸出重定向兩種不同的技術,以及清空寫入與追加寫入兩種模式。
標準輸入重定向(stdin,檔案描述符為0):預設從鍵盤輸入,也可從其他檔案或命令中輸入。
標準輸出重定向(stdout,檔案描述符為1):預設輸出到螢幕。
錯誤輸出重定向(stderr,檔案描述符為2):預設輸出到螢幕。
輸入、輸出重定向符:
輸入: <
輸出: 標準輸出 覆蓋 > 追加 >>
錯誤輸出 覆蓋 > 追加 >>
輸出重定向符:將我們的命令原本要輸出到螢幕的資訊重定向輸出到檔案。
輸入重定向符:將檔案重定向到命令處理,先讀取檔案的資訊流。
重定向是命令與檔案合在一起使用。
2、管道符(任意門)
定義:將命令a的結果通過管道符進行二次篩選交給命令2去處理。管道命令符的作用也可以用一句話來概括「把前乙個命令原本要輸出到螢幕的標準正常資料當作是後乙個命令的標準輸入」
linux系統共有兩種使用者終端型別,為別為:/bin/bash(正常) /sbin/nologin(禁止狀態,無登入許可權)
3、命令萬用字元
*:代表空值符(null)或無窮多的資訊
?:代表單個字元,但不能匹配空值(no null)
[0-9]:代表單個數字
[a-z]:代表單個小寫字母
[a-z]:代表單個大寫字母
[1,3,5,7]:代表精準匹配某個數字
[a,f,h]:代表精準匹配某個字母
4、常用轉義字元
反斜槓(\):使反斜槓後面的乙個變數變為單純的字串。(單個轉義為字元)
單引號(』』):轉義其中所有的變數為單純的字串。(全域性轉義為字串)
雙引號(""):保留其中的變數屬性,不進行轉義處理。(習慣)
反引號(``):把其中的命令執行後返回結果。
5、環境變數
在linux系統中,變數名稱一般都是大寫的。
命令在linux系統中執行為4個步驟:
第1步:判斷使用者是否以絕對路徑或相對路徑的方式輸入命令(如/bin/ls),如果是的話則直接執行。(路徑+命令)
第2步:linux系統檢查使用者輸入的命令是否為「別名命令」,即用乙個自定義的命令名稱來替換原本的命令名稱。(別名)
定義別名命令: alias=別名命令="命令」,取消別名:unalias 別名命令
第3步:bash直譯器判斷使用者輸入的是內部命令還是外部命令。內部命令是直譯器內部的指令,會被直接執行;而使用者在絕大部分時間輸入的是外部命令,這些命令交由步驟4繼續處理。可以使用「type命令名稱」來判斷使用者輸入的命令是內部命令還是外部命令。
在linux系統中內部命令非常少,只占用命令總量的0.01%,外部命令占用命令總量的99%
第4步:系統在多個路徑中查詢使用者輸入的命令檔案,而定義這些路徑的變數叫作path,可以簡單地把它理解成是「直譯器的小助手」,作用是告訴bash直譯器待執行的命令可能存放的位置,然後bash直譯器就會乖乖地在這些位置中逐個查詢。path是由多個路徑值組成的變數,每個路徑值之間用冒號間隔,對這些路徑的增加和刪除操作將影響到bash直譯器對linux命令的查詢。path是指命令存放的位置
一般可以用type 命令名或whereis 命令名進行檢視命令的位置
定義變數名命令為:***=命令或值
將環境變數公升級為全域性變數: export 變數名 (公升級全域性變數只對當前系統有效,系統重啟後將失效)
重要的環境變數有:
變數名稱 作用
home 使用者的主目錄(即家目錄)
shell 使用者在使用的shell直譯器名稱
histsize 輸出的歷史命令記錄條數
histfilesize 儲存的歷史命令記錄條數
mail 郵件儲存路徑
lang 系統語言、語系名稱
random 生成乙個隨機數字
ps1 bash直譯器的提示符
path 定**釋器搜尋使用者執行命令的路徑
editor 使用者預設的文字編輯器
6、vim編輯器
在linux系統中一切都是檔案,而配置乙個服務就是在修改其配置檔案的引數,所以vim編輯器的使用非常重要
首先vim編輯器為了三種模式:
命令模式:控制游標移動,可對文字進行複製、貼上、刪除和查詢等工作。
輸入模式:正常的文字錄入或修改編輯。
末行模式:儲存或退出文件,以及設定編輯環境。
在命令模式下可以分別使用a、i、o三個鍵從命令模式切換到輸入模式。其中,a鍵與i鍵分別是在游標後面一位和游標當前位置切換到輸入模式,而o鍵則是在游標的下面再建立乙個空行。按esc鍵可退回到命令模式,按:進入到末行模式,其常用命令分別如下:
vim中常用的命令(命令模式下使用)
命令 作用
dd 刪除(剪下)游標所在整行
5dd 刪除(剪下)從游標處開始的5行
yy 複製游標所在整行
5yy 複製從游標處開始的5行
n 顯示搜尋命令定位到的下乙個字串
n 顯示搜尋命令定位到的上乙個字串
u 撤銷上一步的操作
p 將之前刪除(dd)或複製(yy)過的資料貼上到游標後面
末行模式中可用的命令
命令 作用
:w 儲存
:q 退出
:q! 強制退出(放棄對文件的修改內容)
:wq! 強制儲存退出
:set nu 顯示行號
:set nonu 不顯示行號
:命令 執行該命令
:整數 跳轉到該行
?/one/two 將當前游標所在行的第乙個one替換成two
?/one/two/g 將當前游標所在行的所有one替換成two
:%s/one/two/g 將全文中的所有one替換成two
?字串 在文字中從下至上搜尋該字串
/字串 在文字中從上至下搜尋該字串
7、配置主機名:
利用vim編輯器修改/etc/hostname檔案,將其內容修改為:linuxprobe.com
修改後按esc,:wq儲存退出
8、配置網絡卡資訊:
利用vim編輯器修改/etc/sysconfig/network-spripts/ifcfg-eno******x
修改後按esc,:wq儲存退出
9、配置yum軟體倉庫
利用vim編輯器修改或建立/etc/yum.repos.d/***.repo
[test]
name=test
baseurl=file:///media/cdrom 提供的方式包括ftp(ftp://…)、http(http://…)、本地(file:///…)
enabled=1 設定此源是否可用;1為可用,0為禁用。
gpgcheck=0 設定此源是否校驗檔案;1為校驗,0為不校驗
LINUX學記筆記5
今日主要學習內容為如何編寫shell指令碼和流程控制語句 1 編寫簡單的指令碼 shell指令碼命令的工作方式有兩種,分別是 互動式和批處理 互動式 與人進行互動輸入操作的方式執行命令 批處理 輸入命令後,不用人為進行操作一次性將命令執行得出結果 shell指令碼主要分為三部分,分別是 指令碼宣告 ...
angular 學用標記 筆記
npm install g angular cli ng serve open ng serve命令會構建本應用 啟動開發伺服器 監聽原始檔,並且當那些檔案發生變化時重新構建本應用。open標誌會開啟瀏覽器 ng update 你還可以使用 cli 命令ng update發現 angular 的最新...
記筆記記筆記 RMQ ST演算法
1.概述 rmq range minimum maximum query 即區間最值查詢,是指這樣乙個問題 對於長度為n的數列a,回答若干詢問rmq a,i,j i,j n 返回數列a中下標在i,j之間的最小 大值。這兩個問題是在實際應用中經常遇到的問題,下面介紹一下解決這兩種問題的比較高效的演算法...