文章目錄
- 一、基本操作
- 1、查看目錄/檔案
- 2、路徑跳轉
- (1).路徑
- (2).跳轉
- 3、創建目錄
- 4、創建檔案
- 5、寫入檔案
- 6、讀取檔案
- 7、復制檔案
- 二、Linux命令列特殊符號
- 1、`~`、`~+`、`~-`
- 2、`&`
- 3、`>`、`>>`、`<`、`<<`
- 4、`|`
- 三、Linux常用命令
- 1、`cat`命令
- 2、`ls`命令
- 3、`find`命令
- 4、`grep`命令
- 5、`wc`命令
- 6、`cp`命令
一、基本操作
1、查看目錄/檔案
使用命令ls或者dir顯示當前目錄下的檔案/目錄(關于ls命令的詳細用法見本文 ls命令)
使用命令tree顯示當前目錄及其子目錄下檔案和目錄的樹狀結構(有的Linux系統需要安裝才能使用,Fedora中是可以直接使用的)
Tips:ls命令輸出的檔案會根據其型別標注顏色,dir默認全部白色
| 檔案型別 | 顏色 |
|---|---|
| 目錄 | 深藍色 |
| 普通檔案 | 白色 |
| 可執行檔案 | 綠色 |
| 圖形檔案 | 紫色 |
| 鏈接檔案 | 淺藍色 |
| 壓縮檔案 | 紅色 |
| FIFO檔案(命名管道) | 棕色 |
| 設備檔案 | 黃色 |
使用示例
使用命令dir,將顯示當前目錄下的檔案/目錄的資訊

使用命令ls,將高亮顯示當前目錄下的檔案/目錄的資訊

使用命令tree,將顯示當前目錄及其子目錄下的所有檔案/目錄的樹狀結構

2、路徑跳轉
(1).路徑
一個路徑可以理解為一個目錄/檔案的位置,比如/home/excious/lcmd,這個路徑表示根目錄/下有一個home目錄,home目錄下有一個excious目錄,excious目錄下有一個lcmd目錄,這個路徑/home/excious/lcmd代表的就是這個lcmd目錄
終端命令列中能跳轉到的路徑都是一個目錄的路徑
在終端(命令列)中,有一個當前路徑,代表你當前所在的目錄,比如/home/excious/lcmd
像/home/excious/lcmd這樣的路徑,稱為絕對路徑,以根目錄符號/開頭
像./cptest、../new這樣的路徑,稱為相對路徑,以當前目錄符號.開頭或以父目錄符號..開頭,這種相對是相對于當前目錄來說的,比如當前路徑為/home/excious/lcmd,那么路徑./cptest就相當于/home/excious/lcmd/cptest,路徑../new就相當于/home/excious/new
當然,相對路徑中當前目錄.和父目錄..都可以理解為目錄中的一個子目錄,任何一個目錄中都有隱含的這兩個目錄,.代表該目錄本身,..代表回傳上一級目錄(特殊地,根目錄的父目錄..仍為自己本身)
因此,根據這種理解,就有另一種不太常用的路徑寫法,像/home/excious/lcmd/../new/my/././././bash,理解的時候先把絕對路徑的部分讀完作為一個臨時路徑,讀到了相對路徑的部分則相對于剛才的臨時路徑解讀為絕對路徑,
要解讀 /home/excious/lcmd/../new/bash/././././my
從前往后讀,讀到下一個相對路徑 .. 或 . 出現的地方之前
/home/excious/lcmd (臨時路徑1)
讀取到父目錄 .. 后,將臨時路徑1變換為其父目錄的絕對路徑
/home/excious(臨時路徑2)
繼續往后讀,讀到下一個相對路徑 .. 或 . 出現的地方之前
/home/excious/new/bash(臨時路徑3)
讀到當前目錄 . 后,將臨時路徑3變換為其當前目錄(自己本身)的路徑
/home/excious/new/bash(臨時路徑4)
后面還有三個 ./ 同樣如此解讀
/home/excious/new/bash(臨時路徑5)
繼續往后讀取,直到結束
/home/excious/new/bash/my(最終路徑)
從上面的分析程序中,可以知道,/home/excious/lcmd/../new/my/././././bash就相當于/home/excious/new/bash/my
(2).跳轉
終端(命令列)的當前目錄指示了終端當前所在的目錄,使用命令pwd可以查看當前目錄完整的絕對路徑
pwd
# 輸出:/home/excious/new/bash/my
很多時候,與檔案相關操作時,直接指明檔案名會在當前目錄下搜尋,而不需要指明檔案的具體路徑
比如當前路徑為/home/excious/lcmd,想要查看該目錄下一個02.txt的檔案,可以不用cat /home/excious/lcmd/02.txt,也不用cat ./02.txt,只需要cat 02.txt即可(如果直接要直接執行該檔案,還是要加上./的——./02.txt)
(※):使用cat命令可以查看檔案內容,后面會說明——可見本文 讀取檔案
因此,為了方便操作某一目錄下的檔案/目錄,我們需要跳轉到那個目錄,也就是把那個目錄作為終端的當前目錄
使用cd命令可以實作目錄跳轉,格式為cd 目錄路徑
比如當前路徑為/home/excious/lcmd,想跳轉進入到/home/excious/lcmd/cptest/cpdir,以下三種方式都可以實作
cd /home/excious/lcmd/cptest/cpdir
cd ./cptest/cpdir
cd cptest/cpdir
為什么有必要這樣跳轉呢,就比如/home/excious/lcmd/cptest/cpdir這個目錄下有兩個檔案01.txt、02.txt,你想用cat命令分別查看它們的內容,但你當前目錄是/home/excious/lcmd,不跳轉就得這么寫
cat cptest/cpdir/01.txt
cat cptest/cpdir/02.txt
但是如果跳轉了目錄,使用cat命令的時候就可以簡化一點
cd cptest/cpdir
cat 01.txt
cat 02.txt
Tips:命令列輸入時,按Tab鍵可以快速補齊檔案名、路徑、命令,便于快速操作
技巧示例
目錄/home/excious/new下,有如下檔案/目錄(也可用命令ls觀察)
輸入cd,加上空格,按下Tab,將提示當前目錄下有哪些目錄可以跳轉(如果唯一,則會自動補全;如果不唯一,多次按下Tab將提示可選輸入)
$ cd
bash/ dir/ dir2/ gcc/ learn/
$ cd
輸入cd b,按下Tab,將自動補全路徑bash/
$ cd b
# 按下Tab鍵
$ cd bash/
3、創建目錄
使用mkdir命令創建目錄
使用mkdir 新建目錄名在當前目錄下創建目錄
使用mkdir 某存在的目錄路徑/新建目錄名在指定目錄下創建目錄
使用mkdir -p 某存在的目錄路徑/不存在的目錄1/不存在的目錄2/新建目錄名在指定目錄下創建不存在的目錄及其子目錄
使用示例
目錄/home/excious/lcmd下,有如下檔案/目錄,終端(命令列)的當前目錄為/home/excious/lcmd
使用命令mkdir mkdirtest,將在當前目錄下創建一個新的空目錄mkdirtest

使用命令mkdir mkdirtest/newtest,將在剛剛創建的目錄mkdirtest下創建一個新的空目錄newtest

使用命令mkdir -p new1/new2/new3,將在當前目錄下創建一個新的空目錄new1,在目錄new1下創建新目錄new2,在目錄new2下創建新目錄new3

4、創建檔案
方法一:touch命令
使用示例
touch 01.txt
方法二:重定向符>
重定向符的一些知識可以將參考 輸入/輸出重定向符
使用示例
> 02.txt
方法三:echo命令+重定向符>(創建并寫入)
使用示例
echo "內容" > 03.txt
方法四:cat命令+重定向符>(創建并寫入)
使用示例
cat > 04.txt
內容
內容內容
^C # (按Ctrl + C)
思考與理解:
\qquad
其實,簡單理解吧,cat命令和echo命令都能得到一個字串
\qquad
cat命令和echo命令都能得到一個字串
\qquad\qquad
cat命令根據引數檔案名讀取檔案的內容生成字串
\qquad\qquad
echo命令根據引數字串得到一個字串
\qquad
如果命令列最終得到了這個字串會在命令列中直接顯示
\qquad
如果這個字串順著重定向符>將會流向指定的檔案
\qquad
如果這個字串遇到管道|將會作為引數傳入下一條命令
方法五:gedit命令(文本編輯器創建,需要有GNOME桌面,即可視化界面)
使用示例
gedit 05.txt
Tips:按下 Ctrl + C 結束命令、終止輸入
5、寫入檔案
和創建檔案時類似,可以配合cat命令、echo命令和重定向符>或>>寫入檔案
使用示例
cat > 01.txt
1
2
3
safs
略
^C # (按Ctrl + C)
6、讀取檔案
方法一:cat命令(詳細的cat命令使用可見本文 cat命令 )
使用示例
cat 02.txt
方法二:tac命令(從最后一行開始,往上按行讀取)
使用示例
tac 02.txt
方法三:less命令(命令列文本閱讀器,按q退出)
使用示例
less 02.txt
方法四:nl命令(行號顯示,相當于cat -n)
使用示例
nl 02.txt
方法五:head命令(引數-n 5讀取開頭5行)
使用示例
head 02.txt
方法六:tail命令(引數-n 5讀取末尾5行)
使用示例
tail 02.txt
7、復制檔案
使用cp命令復制檔案
使用cp 源檔案路徑 目標目錄路徑在目標目錄路徑下復制一個同名檔案
使用cp 源檔案路徑 目標檔案路徑在目標目錄路徑下復制一個對應的重命名的檔案
使用示例
目錄/home/excious/lcmd/new1下,有如下檔案/目錄,終端(命令列)的當前目錄為/home/excious/lcmd/new1
使用命令cp 1.txt new1.txt,將把當前目錄下的檔案1.txt復制一份并重命名為new1.txt放到當前目錄下

使用命令cp 1.txt cpcp,將把當前目錄下的檔案1.txt復制一份放到目錄cpcp下

使用命令cp 1.txt cpcp/2.txt,將把當前目錄下的檔案1.txt復制一份并重命名為2.txt放到目錄cpcp下

二、Linux命令列特殊符號
要想看比較全面的,可以參考這篇博文 https://blog.csdn.net/liaowenxiong/article/details/113768770
1、~、~+、~-
~符號代表用戶主目錄
比如我的用戶為excious,我的用戶主目錄為/home/excious,這一目錄可以用~代替
~+符號代表當前目錄,可以相當于.
~-符號代表上一次的目錄
比如終端(命令列)的當前目錄為/home/excious,輸入了命令cd new跳轉到/home/excious/new后,~-就代表了跳轉前的目錄/home/excious,ls ~-就相當于ls /home/excious
2、&
在命令的最后加上&符號——命令 &,代表將該命令放到后臺中作業
特性:關閉當前終端視窗,程式仍在運行
3、>、>>、<、<<
>、>>、<、<<這些是輸入/輸出重定向符
有三種輸入/輸出,分別如下:
| 符號 | 含義 |
|---|---|
0 | 代表標準輸入(stdin),配合<、<<使用 |
1 | 代表標準輸出(stdout),配合>、>>使用 |
2 | 代表標準錯誤(stderr),配合>、>>使用 |
輸入重定向符<、<<
| 符號 | 含義 |
|---|---|
標準輸入重定向符< | 也可寫成0<,
文
件
→
數
據
命
令
檔案 \xrightarrow[]{資料} 命令
文件數據
?命令 |
追加輸入重定向符<< | 也可寫成0<<,需要后接自定義開始符,再次輸入自定義開始符標識輸入結束 |
使用示例
# 將a2.txt的內容作為grep命令的輸入引數,查找檔案內容中包含2的地方
grep -E "*2*" < a2.txt
# 以EOF作為輸入的開始符和結束符,輸入一系列內容作為grep命令的引數,查找這段內容中包含2的地方
grep -E "*2*" << EOF
12
124
afsa
EOF
命令執行的截圖如下:

輸出重定向符>、>>
| 符號 | 含義 |
|---|---|
標準輸出重定向符> | 也可寫成0>,
內
容
→
數
據
文
件
內容 \xrightarrow[]{資料} 檔案
內容數據
?文件,會清空檔案已有內容再輸出到檔案 |
追加輸出重定向符>> | 也可寫成0>>,不會清空檔案,而會在檔案的末尾追加輸出內容 |
錯誤輸出重定向符2> | 錯 誤 內 容 → 數 據 文 件 錯誤內容 \xrightarrow[]{資料} 檔案 錯誤內容數據 ?文件,會清空文件已有內容再輸出到檔案 |
追加錯誤輸出重定向符2>> | 不會清空檔案,而會在檔案的末尾追加輸出內容 |
使用示例
# 將檔案1.txt清空,并向其中添加內容
echo -e "123\nabc\n11111" > 1.txt
# 在檔案1.txt后添加內容
echo -e "abc\n666" >> 1.txt
命令執行的截圖如下:

4、|
|代表管道,管道命令使用|作為界定符,詳細的管道介紹可參考 https://www.jianshu.com/p/9c0c2b57cb73
管道的作用是把上一條命令的輸出結果作為下一條命令的輸入引數,形如命令1 | 命令2 | 命令3
-
使用示例
-
當前在目錄
/home/excious/lcmd下,輸入以下腳本 -
ls ls | grep "1" ls | grep "1" | wc -l - 可以觀察到以下輸出:
-
解釋一下
-
第一個命令
ls,我們可以看到有01.txt 02.txt 03.txt 04.txt cptest examples new1 testsort.txt,這其實就是ls命令的輸出 -
第二個命令
ls | grep "1",其實就是把上一個命令ls的輸出作為grep命令用來匹配的輸入引數,grep命令對前面的輸出結果01.txt 02.txt 03.txt 04.txt cptest examples new1 testsort.txt進行查找匹配,匹配路徑中含有1的內容 - 輸出結果如下:
-
01.txt new1 -
從輸出結果來看,他匹配到了兩行資料
01.txt和new1,將其作為輸出 -
第三個命令
ls | grep "1" | wc -l,其實就是把上一個命令ls | grep "1"的輸出作為wc命令用來統計的輸入引數,wc命令對前面的輸出結果進行統計,統計共有多少行,輸出了2
三、Linux常用命令
1、cat命令
cat命令
- 加入引數
-n顯示行號
加入引數-b計算行號跳過空白行 - 加入引數
-s將兩行以上的空行顯示為1行 - 加入引數
-E用$顯示行尾(-e? ? ?-vE)
加入引數-T用^I顯示Tab符(-e? ? ?-vT)
加入引數-v顯示^M符號
加入引數-A來show all,相當于-vET
使用示例
當前目錄為/home/excious/lcmd/examples/cat,該目錄下僅有一個1.txt檔案,其內容如下圖所示:

使用命令cat 1.txt,顯示1.txt的內容

使用命令cat -n 1.txt,顯示1.txt的內容,并標注行號

使用命令cat -b 1.txt,顯示1.txt的內容,并標注行號(標注時跳過空行,但會顯示出空行)

使用命令cat -ns 1.txt,顯示1.txt的內容,并標注行號(將多行空行顯示為1行空行)
Tips:多個簡單的引數可以合并起來寫——-n -s相當于-ns
使用命令cat -nET 1.txt,顯示1.txt的內容,并標注行號(在行尾顯示$、將Tab符顯示為^I)

2、ls命令
ls命令
- 加入引數
-a增加.和..的目錄顯示
加入引數-A不顯示.和..的目錄(默認) - 加入引數
-l顯示詳細資訊 - 加入引數
-r反序顯示
加入引數-t按時序顯示 - 加入引數
-R顯示當前目錄中所有檔案、子目錄、子目錄下的全部檔案 - 加入引數
-F在目錄后加/、在可執行檔案后加*
使用示例
當前目錄為/home/excious/lcmd
使用命令ls,查看當前目錄下的檔案/目錄

使用命令ls -a,查看當前目錄下的檔案/目錄(包括當前目錄.和父目錄..)

使用命令ls -l,查看當前目錄下的檔案/目錄的詳細資訊

使用命令ls -r,查看當前目錄下的檔案/目錄,并反序顯示

使用命令ls -t,查看當前目錄下的檔案/目錄,并按創建時間排序(最新修改的的優先)

使用命令ls -tr,查看當前目錄下的檔案/目錄,并按創建時間排序(最新修改的的最后)

使用命令ls -F,查看當前目錄下的檔案/目錄,并分別用*和/標識可執行檔案和目錄

使用命令ls -R,查看當前目錄及其子目錄下的檔案/目錄

3、find命令
find命令
- 使用引數
-name可以當前目錄及其子目錄下名稱匹配的檔案/目錄 - 通過在最前面加入全域引數
-maxdepth 1指定只在當前目錄下查找 - 使用引數
-type指定檔案型別
型別標識 說明 d目錄 c字型裝置檔案 b區塊裝置檔案 p具名貯列 f一般檔案 l符號連結 ssocket
使用示例
當前目錄為/home/excious/lcmd
使用命令tree,觀察當前目錄及其子目錄下檔案/目錄的樹形結構

使用命令find -name "*.txt"(省略了要查找的目錄.,實際上是find . -name "*.txt"),查找當前目錄及其子目錄下檔案名滿足*.txt的檔案/目錄(*代表任意個任意字符,*.txt代表任意以.txt結尾的檔案/目錄)

使用命令find /home/excious/lcmd -name "*.txt",查找目錄/home/excious/lcmd及其子目錄下檔案名以.txt結尾的檔案/目錄

上面兩例其實查找的是同一個目錄,一個的結果顯示形式是相對路徑,一個的結果顯示形式是絕對路徑,這是因為指定的查找路徑形式不一樣,因此可知find命令輸出的形式取決于查找路徑的形式
但是有時候,我們只想在某目錄下查找,而不想在該目錄的所有子目錄下查找,因此我們可以加上引數-maxdepth 1限定向下查找的深度為1
使用命令find -maxdepth 1 -name "*.txt",查找當前目錄.下檔案名滿足*.txt的檔案/目錄

使用命令find -maxdepth 1 -type d,查找當前目錄.下所有目錄檔案(會把自己本身.算入)

4、grep命令
grep命令
- 一般使用格式
grep 要查找的檔案內容 要匹配的檔案名格式 - 加入引數
-c統計所有查找的各個檔案中,每個檔案出現要查找內容的次數 - 加入引數
-B n顯示檔案中匹配到要查找內容的前n行的內容
加入引數-A n顯示檔案中匹配到要查找內容的后n行的內容 - 加入引數
-v反向查找,顯示出所有查找檔案中不包含要查找內容的行 - 加入引數
-r在對應目錄及其子目錄下進行查找(將要匹配的檔案名格式換成要查找的目錄) - 加入引數
-E 正則運算式可以用正則運算式去匹配 - 加入引數
-l輸出能夠匹配要查找內容的檔案的檔案名
加入引數-L輸出不能夠匹配要查找內容的檔案的檔案名 - 加入引數
-n顯示找到內容在檔案中對應的行號 - 加入引數
-i查找時忽略大小寫
使用示例
當前目錄為/home/excious/lcmd
使用命令grep 12 *.txt,查找當前目錄.下所有.txt檔案內容中包含12的部分

使用命令grep -c 12 *.txt,查找當前目錄.下所有.txt檔案內容中12出現的次數

5、wc命令
wc命令
wc 檔案名顯示檔案的行數、單詞數、位元組數wc命令輸入多個檔案引數可以多個組合統計- 加入引數
-l顯示行數(默認) - 加入引數
-c顯示位元組數(默認) - 加入引數
-w顯示字數(默認)
6、cp命令
cp命令
- 加入引數
-r才可以復制目錄及目錄下的所有檔案 - 加入引數
-p復制訪問權限和修改時間 - 加入引數
-l,不復制檔案,只生成鏈接(硬鏈接,不像Windows中的快捷方式) - 加入引數
-d,生成鏈接(軟鏈接,不過洗掉了源檔案后鏈接檔案似乎也能打開) - 加入引數
-f,覆寫檔案不提示(默認情況) - 加入引數
-i,覆寫檔案要提示
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/271623.html
標籤:區塊鏈
下一篇:通過HTML5構建Web頁
