1、不管是linux命令列,還是windows的dos,執行乙個命令,就會去path環境變數中找是否有這個變數。
pwd:print working directory
fdisk:檢視系統disk
ctrl+l:清屏
ctrl+u:刪除到行首
ctrl+a:游標到行首
ctrl+e:游標到行位『
ctrl+z
:把命令放到後台執行
ctrl+r
:歷史命令中搜尋
一、搜尋命令
1、locate:搜尋檔名,是在乙個資料庫中搜尋(一天更新一次),updatedb(強制更新)。
2、whereis:搜尋執行命令及其man文件位置。which不能檢視man文件。
3、find:搜尋檔案,功能強大,但也耗費資源。
4、grep:grep [options] 『pattern』 filename,在檔案中搜尋匹配字串。
一般來說:搜尋檔名採用萬用字元,完全匹配。在檔案中搜尋內容,採用正規表示式,搜尋符合條件的字串。
5、man相當於wahtis。ls --help
6、whoami:print effective userid
7、shell,殼,同gui一樣,是使用者與核心互動的入口。
8、遠端登入退出:logout
二、掛載
1、2、mount -a;把/etc/fstab這個檔案中的所有開機自動掛載上。不要把雜七雜八的都寫到這個檔案,如果開機找不到要掛載的裝置(比如說光碟,u盤),那麼就會開不起機了。
6
列:
# ① file system:要掛載的裝置或偽檔案系統:裝置名稱 or label or uuid or 偽檔案系統名稱
1、使用裝置名稱(/dev/sda)來掛載分割槽時是被固定死的,一旦磁碟的插槽順序發生了變化,就會出現名稱不對應的問題。因為這個名稱是會改變的。
2、使用label掛載就不用擔心插槽順序方面的問題。不過要隨時注意你的label name。
3、uuid,每個分割槽被格式化以後都會有乙個uuid作為唯一的標識號。使用uuid掛載的話就不用擔心會發生錯亂的問題了。
② mount point:掛載點(擴充套件為swap):就是你要掛載到哪個目錄下。
③ type:檔案系統型別(auto 尋找預設的),
普通裝置掛載:ext#/xfs 等檔案系統型別
交換分割槽 swap:swap
光碟 iso9660,檔案 cifs
④ options:掛載選項:defaults代表包含了選項rw,suid,dev,exec,auto,nouser,async。有需要的功能可以新增,不能為空,這裡用來填寫設定選項,各個選項用逗號隔開。
⑤ dump:轉儲頻率:備份 0:不做備份 1:每天轉儲 2:每隔一天轉儲
⑥ pass:開機時自檢(非0),自檢次序:(如果開機系統自檢不過,就無法正常開機)
如果這裡填0,則不檢查;掛載點為 / 的(即根分割槽),必須在這裡填寫1,其他的都不能填寫1。如果有分割槽填寫大於1的話,則在檢查完根分割槽後,接著按填寫的數字從小到大依次檢查下去。同數字的同時檢查。比如第一和第二個分割槽填寫2,第三和第四個分割槽填寫3,則系統在檢查完根分割槽後,接著同時檢查第一和第二個分割槽,然後再同時檢查第三和第四個分割槽。
三、shell
命令列直譯器。同時是乙個功能強大的程式語言,即shell指令碼。bash
/etc/shells
shell還可以呼叫子shell,孫shell。
echo :把指定內容輸出到螢幕上。
alias:別名,登出重登陸就失效。要想不失效,需要寫入環境變數配置檔案:~/.bashrc。 檔案中別名直接生效:source ~/.bashrc
linux命令分為兩類,具體為內部命令和外部命令
內部命令:指shell內部整合的命令,此類命令無需人為安裝,開機後自動執行在記憶體中,命令help檢視所有內部命令的詳情,如cd、type、echo、time、true等。
外部命令:指通過外部介質安裝的命令工具包,如通過yum、rpm等方式安裝,具體安裝路徑在
$path
下。注:所有的內部命令在外部命令中都有存在,只是為了提高優先順序而在shell中整合一部分
time is a shell keyword
[root@localhost ~]# type date
date is /bin/date
命令執行順序:
1、alias > shell > hash > path
alias別名命令、內部命令、hash快取命令、外部命令(path查詢順序中(冒號分隔的系統目錄)找到的第乙個)。
四、輸出重定向
標準輸入:0
標準輸出:1
輸出------------à stdout(螢幕)
輸出重定向-------------------------------à檔案
覆蓋:>
追加:>>
標準錯誤輸出(2)重定向:2> 2>>
正確錯誤都寫入檔案:命令
>>
檔案2>>&1
其等價於
命令&>> 檔案
正確錯誤分開存放:命令
>>
檔案1 2>>檔案2
輸入統計:wc
輸入重定向(幾乎不會用):命令 < 檔名 比如:wc < test.log
命令 << 識別符號
五、管道符
1、多命令順序執行
1.1 順序執行 命令1;命令1
1.2 邏輯與 命令1&&命令2 只有命令1執行正確,命令2才會執行。命令1執行不正確,命令2不會執行。前面的命令執行成功,才會執行後面的命令,前面的命令執行失敗,後面的命令不會執行
1.3 邏輯或 命令1||命令2 命令1執行正確,命令2不會執行。命令1執行不正確,命令2才會執行。當用此連線符連線多個命令時,前面的命令執行成功,則後面的命令不會執行。前面的命令執行失敗,後面的命令才會執行。
2、管道符 |
命令格式:命令a|命令b,即命令1的正確輸出作為命令b的操作物件
六、特殊符號
1、 #符號
# 注釋
行首以 # 開頭(除#!之外)的是注釋。#!是用於指定當前指令碼的直譯器。
2、引號
單引號、雙引號用於使用者把帶有空格的字串賦值給變數。如果沒有單引號或雙引號,shell會把空格後的字串解釋為命令。
str="today is monday"
echo $str
單引號和雙引號的區別:單引號告訴shell忽略所有特殊字元,而雙引號忽略大多數,但不包括$、\、`。
雙引號包圍的內容可以允許變數擴充套件,也允許轉義字元的存在。如果字串內出現雙引號本身,需要轉義,因此不一定雙引號是成對的。
單引號括住的內容,被視為單一字串,引號內的禁止變數擴充套件,所有字元均作為字元本身處理(除單引號本身之外),單引號必須成對出現。
3、斜線 反斜線
3.1.斜線
檔名路徑分隔符。分隔檔名不同的部分(如/home/bozo/projects/makefile)。也可以用來作為除法算術操作符
3.2.反斜線,轉義符號
一種對單字元的引用機制。\x 將會「轉義」字元x。這等價於"x",也等價於'x'。
4、反引號`
command 結構可以將命令的輸出賦值到乙個變數中去。
命令替換。這個引號包圍的為命令,可以執行包圍的命令,並將先執行的結果賦值給變數。如:a=`dirname '/tmp/x.log'` 。後面dirname返回的結果會賦值給a,注意,此處特地使用了反引號和單引號,注意區別。
5、美元符號 $
5.1.變數替換,作為變數的前導符,用作變數替換,即引用乙個變數的內容,比如:echo $path;a=5 $a 也是 5 其和$是等價的
5.2.命令替換 $(命令) 與反應號作用是一樣的,反引號實在是不容易分辨
6、小括號 ()
6.1.命令組
在括號中的命令列表,將會作為乙個子 shell 來執行。在括號中的變數,由於是在子shell中,所以對於指令碼剩下的部分是不可用的。父程序,也就是指令碼本身,將不能夠讀取在子程序中建立的變數,也就是在子shell 中建立的變數。
#!/bin/bash
a=123
( a=321;)
echo "a = $a" //輸出a=123,說明在子shell內修改了的變數,在父程序呼叫時是不會顯示修改後的
7、大括號
7.1.檔名擴充套件
cp t. 複製 txt 的內容到 back 中
7.2.**塊
**塊,又被稱為內部組,這個結構事實上建立了乙個匿名函式(乙個沒有名字的函式)。然而,與「標準」函式不同的是,在其中宣告的變數,對於指令碼其他部分的**來說還是可見的。
#!/bin/bash
a=123
( a=321; ) // 小括號裡的相當於區域性變數
echo"a=$a" //輸出a =123
//大括號裡的相當於全域性變數
echo"a=$a" //輸出a =321
8、中括號
8.1.條件
測試條件測試表示式放在[ ]中。
#!/bin/bash
a=5if [ $a -gt 10] //-gt great than大於 -lt less than小於
then
echo "a:$a"
else
echo"a>10"
8.2陣列元素
在乙個array結構的上下文中,中括號用來引用陣列中每個元素的編號。
Linux命令筆記 shell基礎及工具
uname a linux tedu 4.4.0 130 generic 156 ubuntu smp thu jun 14 08 53 28 utc 2018 x86 64 x86 64 x86 64 gnu linuxuname s kernel name 核心名稱 linux uname n ...
Linux基礎 shell命令
都知道linux下shell命令很重要,但無奈使慣了windows的使用者接觸命令是在不感冒,不過慢慢來吧,凡事都得有乙個過程。學linux命令最好先了解一下編輯器,因為會涉及到系統檔案的配置編輯,linux用的最多的當屬vi,現在vi的改進版是vim,在最新的linux的版本下vi命令已經是vim...
Linux基礎 shell命令
都知道linux下shell命令很重要,但無奈使慣了windows的使用者接觸命令是在不感冒,不過慢慢來吧,凡事都得有乙個過程。學linux命令最好先了解一下編輯器,因為會涉及到系統檔案的配置編輯,linux用的最多的當屬vi,現在vi的改進版是vim,在最新的linux的版本下vi命令已經是vim...