linux基礎命令詳解
Linux的基本指令
一、指令與選項
什麼是Linux的指令?
指在Linux終端(命令列)中輸入的內容就稱之為指令。
一個完整的指令的標準格式:Linux通用的格式
#指令主體(空格) [選項](空格) [操作物件]
一個指令可以包含多個選項
操作物件也可以是多個
例如:需要讓張三同學幫忙去樓下小賣鋪買一瓶農夫山泉水和清風餐巾紙,在這個指令中“買東西”是指令的主體,買的水和餐巾紙是操作的物件,農夫山泉、清風是操作的選項。
二、基礎指令(重點)
1、ls指令
含義:ls (list)
用法1:#ls
含義:列出當前工作目錄下的所有檔案/資料夾的名稱
用法2:#ls 路徑
含義:列出指定路徑下的所有檔案/資料夾的名稱
關於路徑(重要):
路徑可以分為兩種:相對路徑、絕對路徑。
相對路徑:相對首先得有一個參照物(一般就是當前的工作路徑);
相對路徑的寫法:在相對路徑中通常會用到2個符號“./”【表示當前目錄下】、“../”【上一級目錄下】。
絕對路徑:絕對路徑不需要參照物,直接從根“/”開始尋找對應路徑;
用法3:#ls 選項 路徑
含義:在列出指定路徑下的檔案/資料夾的名稱,並以指定的格式進行顯示。
常見的語法:
#ls -l 路徑
#ls -la 路徑
選項解釋:
-l:表示list,表示以詳細列表的形式進行展示
-a:表示顯示所有的檔案/資料夾(包含了隱藏檔案/資料夾)
上述列表中的第一列字元表示文件的型別,其中“-”表示改行對應的文件型別為檔案,“d”表示文件型別為資料夾。
在Linux中隱藏文件一般都是以“.”開頭。
用法4:#ls -lh 路徑
含義:列出指定路徑下的所有檔案/資料夾的名稱,以列表的形式並且在顯示文件大小的時候以可讀性較高的形式顯示
引數含義:
用法5:#ls -lah 路徑
以合適的形式顯示檔案大小並且顯示所有被包含的檔案與資料夾
2、pwd指令
用法:#pwd (print working directory,列印當前工作目錄)
3、cd指令
命令:#cd (change directory,改變目錄)
作用:用於切換當前的工作目錄的
語法:#cd 路徑
案例:當前在“/”下,需要使用絕對路徑切換到/usr/local。
案例:當前在/usr/local下,需要使用相對路徑切換目錄到home目錄下的Linux123使用者家目錄中去。
補充:
在Linux中有一個特殊的符號“~”,表示當前使用者的家目錄。
切換的方式:#cd ~
4、mkdir指令
指令:mkdir (make directory,建立目錄)
語法1:#mkdir 路徑 【路徑,可以是資料夾名稱也可以是包含名稱的一個完整路徑】
案例:在當前路徑下創建出目錄“yunweihenniux”
注意:ls列出的結果顏色說明,其中藍色的名稱表示資料夾,黑色的表示檔案,綠色的其許可權為擁有所有許可權。
案例:在指定路徑下創建出一個資料夾“yunweihenniux”
語法2:#mkdir -p 路徑
含義:當一次性建立多層不存在的目錄的時候,新增-p引數,否則會報錯
語法3:#mkdir 路徑1 路徑2 路徑3 …. 【表示一次性建立多個目錄】
5、touch指令
指令:touch
作用:建立檔案
語法:#touch 檔案路徑 【路徑可以是直接的檔名也可以是路徑】
案例:使用touch來在當前路徑下建立一個檔案,命名為Linux.txt
案例:使用touch來同時建立多個檔案
案例:使用touch來在“Linux123”使用者的家目錄中建立檔案,Linux.txt
6、cp指令
指令:cp (copy,複製)
作用:複製檔案/資料夾到指定的位置
語法:#cp 被複制的文件路徑 文件被複制到的路徑
案例:使用cp命令來複制一個檔案
注意:Linux在複製過程中是可以重新對新位置的檔案進行重新命名的,但是如果不是必須的需要,則建議保持前後名稱一致。
案例:使用cp命令來複制一個資料夾
注意:當使用cp命令進行資料夾複製操作的時候需要新增選項“-r”【-r表示遞迴複製】,否則目錄將被忽略
7、mv指令
指令:mv (move,移動,剪下)
作用:移動文件到新的位置
語法:#mv 需要移動的文件路徑 需要儲存的位置路徑
確認:移動之後原始的檔案還在不在原來的位置?原始檔案是不在原始位置的
案例:使用mv命令移動一個檔案
案例:使用mv命令移動一個資料夾
補充:在Linux中重新命名的命令也是mv,語法和移動語法一樣。
8、rm指令
指令:rm (remove,移除、刪除)
作用:移除/刪除文件
語法:#rm 選項 需要移除的文件路徑
選項:
-f:force,強制刪除,不提示是否刪除
-r:表示遞迴
案例:刪除一個檔案
在刪除的時候如果不帶選項,會提示是否刪除,如果需要確認則輸入“y/yes”,否則輸入“n/no”按下回車。
注意:如果在刪除的時候不想頻繁的確認,則可以在指令中新增選項“-f”,表示force(強制)。
案例:刪除一個資料夾
注意:刪除一個目錄的時候需要做遞迴刪除,並且一般也不需要進行刪除確認詢問,所以移除目錄的時候一般需要使用-rf選項。
案例:刪除多個文件
案例:要刪除一個目錄下有公共特性的文件,例如都以Linux開頭
其中*稱之為萬用字元,意思表示任意的字元,Linux*,則表示只要檔案以Linux開頭,後續字元則不管。
9、vim指令
指令:vim (vim是一款文字編輯器)
語法:#vim 檔案的路徑
作用:開啟一個檔案(可以不存在,也可以存在)
案例:使用vim來開啟檔案
退出開啟的檔案:在沒有按下其他命令的時候,按下shift+英文冒號,輸入q,按下回車即可
10、輸出重定向
一般命令的輸出都會顯示在終端中,有些時候需要將一些命令的執行結果想要儲存到檔案中進行後續的分析/統計,則這時候需要使用到的輸出重定向技術。
>:覆蓋輸出,會覆蓋掉原先的檔案內容
>>:追加輸出,不會覆蓋原始檔案內容,會在原始內容末尾繼續新增
語法:#正常執行的指令 > / >> 檔案的路徑
注意:檔案可以不存在,不存在則新建
案例:使用覆蓋重定向,儲存ls -la 的執行結果,儲存到當前目錄下的ls.txt
案例:使用追加重定向,儲存ls -la的執行結果到ls.txt中
11、cat指令
作用1:cat有直接開啟一個檔案的功能。
語法1:#cat 檔案的路徑
作用2:cat還可以對檔案進行合併
語法2:#cat 待合併的檔案路徑1 待合併的檔案路徑2 …. 檔案路徑n > 合併之後的檔案路徑
例如,合併3個檔案,並存到一個檔案中【配合輸出重定向使用】
三、進階指令(重點)
1、df指令
作用:檢視磁碟的空間
語法:#df -h -h表示以可讀性較高的形式展示大小
2、free指令
作用:檢視記憶體使用情況
語法:#free -m -m表示以mb為單位檢視
剩餘的真實可以用的記憶體為1665mb。
Swap:用於臨時記憶體,當系統真實記憶體不夠用的時候可以臨時使用磁碟空間來充當記憶體。
3、head指令
作用:檢視一個檔案的前n行,如果不指定n,則預設顯示前10行。
語法:#head -n 檔案路徑 【n表示數字】
4、tail指令
作用1:檢視一個檔案的未n行,如果n不指定預設顯示後10行
語法:#tail -n 檔案的路徑 n同樣表示數字
作用2:可以通過tail指令來檢視一個檔案的動態變化內容【變化的內容不能是使用者手動增加的】
語法:#tail -f 檔案路徑
該命令一般用於檢視系統的日誌比較多。
5、less指令
作用:檢視檔案,以較少的內容進行輸出,按下輔助功能鍵(數字+回車、空格鍵+上下方向鍵)檢視更多
語法:#less 需要檢視的檔案路徑
在退出的只需要按下q鍵即可。
6、wc指令
作用:統計檔案內容資訊(包含行數、單詞數、位元組數)
語法:#wc -lwc 需要統計的檔案路徑
-l:表示lines,行數
-w:表示words,單詞數 依照空格來判斷單詞數量
-c:表示bytes,位元組數
7、date指令(重點)
作用:表示操作時間日期(讀取、設定)
語法1:#date 輸出的形式:2018年 3月 24日 星期六 15:54:28
語法2:#date +%F (等價於#date “+%Y-%m-%d” ) 輸出形式:2018-03-24
語法3:#date “+%F %T” 引號表示讓“年月日與時分秒”成為一個不可分割的整體
等價操作#date “+%Y-%m-%d %H:%M:%S”
輸出的形式:2018-03-24 16:01:00
語法4:獲取之前或者之後的某個時間(備份)
#date -d “-1 day” “+%Y-%m-%d %H:%M:%S”
符號的可選值:+(之後) 或者 - (之前)
單位的可選值:day(天)、month(月份)、year(年)
%F:表示完整的年月日
%T:表示完整的時分秒
%Y:表示四位年份
%m:表示兩位月份(帶前導0)
%d:表示日期(帶前導0)
%H:表示小時(帶前導0)
%M:表示分鐘(帶前導0)
%S:表示秒數(帶前導0)
8、cal指令
作用:用來操作日曆的
語法1:#cal 等價於 #cal -1 直接輸出當前月份的日曆
語法2:#cal -3 表示輸出上一個月+本月+下個月的日曆
語法3:#cal -y 年份 表示輸出某一個年份的日曆
9、clear/ctrl + L指令
作用:清除終端中已經存在的命令和結果(資訊)。
語法:clear 或者快捷鍵:ctrl + L
需要注意的是,該命令並不是真的清除了之前的資訊,而是把之前的資訊的隱藏到了最上面,通過滾動條繼續檢視以前的資訊。
10、管道(重要)
管道符:|
作用:管道一般可以用於“過濾”,“特殊”,“擴充套件處理”。
語法:管道不能單獨使用,必須需要配合前面所講的一些指令來一起使用,其作用主要是輔助作用。
①過濾案例(100%使用):需要通過管道查詢出根目錄下包含“y”字母的文件名稱。
#ls / | grep y
針對上面這個命令說明:
①以管道作為分界線,前面的命令有個輸出,後面需要先輸入,然後再過濾,最後再輸出,通俗的講就是管道前面的輸出就是後面指令的輸入;
②grep指令:主要用於過濾
②特殊用法案例:通過管道的操作方法來實現less的等價效果(瞭解)
之前通過less檢視一個檔案,可以#less 路徑
現在通過管道還可以這麼:#cat 路徑|less
③擴充套件處理:請使用學過的命令,來統計某個目錄下的文件的總個數?
答:#ls / | wc -l