【Linux入门学习笔记】Linux命令查阅方法及文件操作命令简介
文章目錄
- 一、指令構成
- 1. `man`幫助命令
- 1.1 如何閱讀`SYNOPSIS`
- 1.2 如何閱讀`DESCRIPTION`[^2]
- 2. 其他幫助命令
- 二、具體指令
- 1. `ls`(查看文件或文件夾)
- 1.1 基本使用
- 1.2 配合通配符使用
- 2. `pwd`(顯示當前工作路徑)
- 3. `cd`(切換工作目錄)
- 3.1 基本使用
- 3.2 其他使用
- 4. `mkdir`(創建文件夾)
- 5. `touch`(創建文件)
- 6. `tree`
- 7. `cp`(復制文件或文件夾)
- 8. `mv`(移動或重命名)
- 9. `rm`(刪除文件或文件夾)
- 10. 重定向
- 12. `echo`(文字內容)
- 13. `cat`(合并且打印文件)
- 14. `head`(輸出文件的第一部分)
- 15. `more`(顯示文件)
- 16. `find`(查找文件或目錄)
- 17. `ln`(建立文件鏈接)
- 軟/硬鏈接概念
- 建立鏈接命令
- 18. `tar`(文件打包)
- 18. `gzip/bzip2`(文件解壓縮)
最近,公司需要將一臺運行著CentOS(Linux的一個發行版本,通常用于企業服務器)的服務器上的數據遷移到另一臺新設備上,雖然以前也基本系統學過Linux的指令,但當時并沒有系統的記錄和梳理,所以,借著這次機會,好好把常用的指令記錄、梳理一下。
一、指令構成
一條典型的Linux指令組成為:command [-option] [parameter]。需要指出的是,[]表示指令后的選項和操作對象均可選。
1. man幫助命令
由于Linux的命令繁多,每個命令又有很多選項,因此Linux自帶了man命令,可以很方便地查詢每個命令的對應選項和被操作對象的說明。
| manual | Linux系統提供的參考手冊 | 其他Linux命令,如:ls、cd等 |
一般通過man命令查出來的指令幫助大致可分為:
- NAME:命令名稱;
- SYNOPSIS:命令格式;
- DESCRIPTION:命令描述,選項和對象的詳細使用方法在此部分介紹;
- AUTHOR:作者;
- REPORTING BUGS:報告bug;
- COPYRIGHT:版本;
- SEE ALSO:另見。
最重要的兩部分分別為SYNOPSIS和DESCRIPTION。
1.1 如何閱讀SYNOPSIS
下面以命令ls的SYNOPSIS為例,即:
ls [OPTION]... [FILE]...
再結合下面的具體命令:
root@ubuntu64:/usr# ls -ahsS --format=verbose /usr /home /home: total 12K 4.0K drwxr-xr-x 3 root root 4.0K Mar 2 23:17 . 4.0K drwxr-xr-x 18 root root 4.0K Mar 3 00:17 .. 4.0K drwxr-xr-x 2 william developer 4.0K Mar 2 23:17 william/usr: total 100K40K drwxr-xr-x 2 root root 36K Mar 2 22:48 bin16K drwxr-xr-x 2 root root 16K Mar 2 22:47 sbin 4.0K drwxr-xr-x 13 root root 4.0K Jan 28 14:58 . 4.0K drwxr-xr-x 18 root root 4.0K Mar 3 00:17 .. 4.0K drwxr-xr-x 2 root root 4.0K Apr 15 2020 games 4.0K drwxr-xr-x 35 root root 4.0K Jan 28 15:07 include 4.0K drwxr-xr-x 73 root root 4.0K Mar 2 22:46 lib 4.0K drwxr-xr-x 2 root root 4.0K Apr 23 2020 lib32 4.0K drwxr-xr-x 2 root root 4.0K Jan 28 15:06 lib64 4.0K drwxr-xr-x 2 root root 4.0K Apr 23 2020 libx32 4.0K drwxr-xr-x 11 root root 4.0K Jan 28 15:11 local 4.0K drwxr-xr-x 116 root root 4.0K Jan 28 15:07 share 4.0K drwxr-xr-x 8 root root 4.0K Mar 2 22:47 src其中:
- ls:命令縮寫;
- -ahs --format=single-column均為選項:
- -a: 等價于--all,表示列出所有文件,包括隱藏文件;
- -h:等價于--human-readable,表示以較為可讀的方式列出文件的大小;
- -s:等價于--size,表示打印出文件大小;
- -S:按文件大小排序,從大到小;
- --format:指定打印顯示的格式。
- /usr:命令操作對象,這里是根目錄的/下的usr文件夾。
命令ls的SYNOPSIS含義如下:
| 粗體 | 原樣輸入終端 | 如上述命令中ls直接輸入 |
| 斜體1 | 用合適參數代替 | 如上述命令中分別用選項-ahsS --format=verbose和文件路徑代/usr替OPTION和FILE |
| [-abc] | []中的參數均可選 | 如上述命令中,選項均可省略,文件路徑也可以省略(此時默認為當前路徑) |
| -a|-b | |兩邊的選項不能同時指定 | 無 |
| argument ... | 可指定多個參數 | 如上述命令中,選項和對象均為多個 |
| [expression] ... | []中的整個部分均可為多個 | 無 |
1.2 如何閱讀DESCRIPTION2
命令選項的指定一般有三種方式:
- 短選項:也叫UNIX格式選項,使用方法是-后面加單個字符,如上述-a、-h、-s和-S,需要注意的是選項的兩種寫法:-ahsS和-a -h -s -S是等價的;
- 長選項:也叫GNU格式長選項,使用方法是--后面加字面詞,如:--format=verbose、--all、--human-readable、--size;
- BSD格式選項:命令后面加上單個字符。
值得注意的是,基本在所有情況下,長選項、短選項、BSD選項三者可以相互替換與混用,如:
- -a等價于--all;
- -h等價于--human-readable;
- -s等價于--size
- --format=verbose等價于-l。
2. 其他幫助命令
除了man以外,還可以用help通過如下兩種方式來查看命令的幫助文檔;
- 內部命令3:help command ,如:cd命令;
- 外部命令:command --help,如:ls命令。
如果需要區分某條命令是否為內部命令,可以使用type命令來確定,如:
root@ubuntu64:~# type cd cd is a shell builtin root@ubuntu64:~# type ls ls is aliased to `ls --color=auto'二、具體指令
1. ls(查看文件或文件夾)
1.1 基本使用
| list | 以列表形式顯示路徑下的文件(夾) | -l:以列表形式顯示 -a:顯示隱藏文件 -h:以可讀性較高的方式顯示 | 路徑 |
需要注意的是:
- 如選項-a所暗示的,Linux中也有隱藏文件(夾),實際上,Linux中的隱藏文件均是以.開頭;
- 所有路徑下都包含兩個默認目錄,即.表示當前目錄,..表示上一級目錄。
另外,當使用ls -lh時,會以更可讀的方式顯示文件(夾)列表,所謂更可讀是指:當文件(夾)大小超過1024KB時,用MB表示;超過1024MB時,用GB表示,以此類推。此外,計算機中其他表示文件大小的單位還有:
| 兆字節 | MegaByte | 1MB = 1024KB,百萬字節 |
| 千兆字節 | GigaByte | 1GB = 1024MB,十億字節 |
| 太字節 | TeraByte | 1TB = 1024GB,萬億字節 |
| 拍字節 | PetaByte | 1PB = 1024TB,千萬億字節 |
| 艾字節 | ExaByte | 1EB = 1024PB,百億億字節 |
| 澤字節 | ZettaByte | 1ZB = 1024EB,十萬億億字節 |
| 堯字節 | YottaByte | 1YB = 1024ZB,一億億億字節 |
1.2 配合通配符使用
ls支持的常用通配符包括:
| * | 代表任意個數個字符 |
| ? | 代表任意一個字符 |
| [] | 表示匹配字符組中的任意一個 |
| [abc] | 代表匹配a、b、c中的任意一個 |
| [a-f] | 代表匹配從a到f范圍內的任意一個字符 |
如:
- ls 1*表示查找顯示當前路徑下所有以1開頭的文件
- ls *1.txt表示查找顯示當前路徑下所有以1結尾的txt文件
- ls ?1?.txt表示查找顯示當前路徑下所有文件名為三個字符的txt文件,且該文件的文件名第二個字符是1
- ls [12345]23.txt表示查找顯示當前路徑下(如果存在)123.txt、223.txt、323.txt、423.txt、523.txt
2. pwd(顯示當前工作路徑)
| print working directory | 顯示當前工作目錄的路徑 |
3. cd(切換工作目錄)
3.1 基本使用
| change directory | 切換當前工作目錄 | 文件夾路徑 |
3.2 其他使用
| cd ~ | 切換到當前用戶的主目錄(/home/用戶目錄) |
| cd . | 保持在當前目錄不變 |
| cd . . | 切換到上級目錄 |
| cd - | 在最近兩次工作目錄之間切換 |
4. mkdir(創建文件夾)
| make directory | 創建目錄 | -p:一次性創建多層不存在的文件夾 | 文件夾路徑 |
需要注意的是,在Linux中的當前工作目錄下,新建目錄的名稱不能與當前目錄中已有的目錄或文件同名。
5. touch(創建文件)
| touch | 在制定位置創建文件 | 文件路徑 |
需要注意的是,當計劃創建的文件已經存在,可以修改文件的末次修改時間。
6. tree
| tree | 以樹形結構顯示當前路徑的文件(夾) | -d:僅顯示文件夾(目錄) |
7. cp(復制文件或文件夾)
| copy | 復制文件(夾) | 1. -r:以遞歸方式復制指定目錄下的所有子目錄和文件,目標文件必須為一個目錄名 2. -i:覆蓋文件前進行提示 | 源文件(夾)路徑 目標文件(夾)路徑 |
8. mv(移動或重命名)
| move | 1.剪切、粘貼文件(夾) 2.文件(夾)重命名 | -i:覆蓋前提示 | 源文件(夾)路徑 目標文件(夾)路徑 | 當使用該命令是,既指定了源文件路徑,又指定了目標文件路徑一致時,該命令等同于剪切、粘貼、重命名或同路徑重命名 |
9. rm(刪除文件或文件夾)
| remove | 刪除文件(夾) | 1. -r:以遞歸方式刪除文件(夾) 2. -f:強制刪除,忽略不存在的文件(夾),無需提示 | 文件(夾) |
值得注意的是, rm 命令也支持類似如2.1.2所示的通配符操作。
如果想要刪除某目錄下除了指定文件以外的所有文件,可以使用類似如下的語法:
# 刪除當前目錄下除了$file1和$file2的所有文件 rm -rf !($file1|$file2)10. 重定向
一個進程默認會打開標準輸入、標準輸出、錯誤輸出三個文件描述符,通過重定向可以改變進程默認輸入和輸出的文件:
| < | 針對標準輸入進行重定向 | 文件 |
| > | 針對標準輸出進行覆蓋重定向 | 文件 |
| >> | 針對標準輸出進行追加重定向 | 文件 |
| 2> | 針對標準錯誤輸出盡心重定向 | 文件 |
| &> | 針對標準輸出或錯誤輸出進行重定向 | 文件 |
12. echo(文字內容)
echo會在終端中顯示參數指定的文字,通常會和重定向命令一起使用。
13. cat(合并且打印文件)
| catenate | 1.直接在終端打開一個文件; 2.合并多個文件 | -b:對非空輸出行編號 -n:對所有輸出行進行編號 | 1.文件路徑 2.待合并文件1路徑 待合并文件2路徑 … | 一般cat命令用來合并文件時和重定向命令結合使用 |
14. head(輸出文件的第一部分)
| head | head [OPTION]... [FILE]... | 將每一個FILE的前10行打印至標準輸出,當FILE不止一個時,在每一個前面添加其名稱作為標題。長選項的必需參數對于短選項也是必需的。 |
[OPTION]典型取值:
- -n,等價于--lines=[-]NUM:打印前NUM行而非前10行;當選擇指定-時,打印每一個文件中除最后NUM行的所有內容。
下面通過一個案例解釋長選項的必需參數對于短選項也是必需的這句話的含義:
- 首先,通過長選項--lines僅打印/etc/ucf.conf文件的前8行命令如下:
- 其次,由于此時使用長選項--lines時NUM必須指定為8,因此使用對應短選項-n時,也必須指定,如下:
15. more(顯示文件)
| more | 在終端直接顯示文件 | 文件路徑 |
可以看出命令cat和more均可以直接在終端查看文件內容,但:
- more命令可以用于分屏顯示文件內容,每次顯示一頁內容,因而適合于查看內容較多的文本文件;
- cat命令會一次顯示所有的內容,適合查看內容較少的文本文件;
- 另外,使用more命令后還支持下列操作鍵:
| 空格鍵 | 顯示下一屏 |
| Enter | 一次滾動一行 |
| b | 回滾一屏 |
| f | 前滾一屏 |
| q | 退出 |
16. find(查找文件或目錄)
| find | 用于查找文件 | 1. -name:根據名稱搜索 2. -type:根據類型搜索 | 路徑 | 當使用-type選項時,其后只能指定f(ile)或d(irectory) |
如:find / -name "*.conf" | wc -l表示統計根目錄下.conf文件的總數量。
如:find / -type d | wc -l表示統計根目錄下所有文件夾的總數量。
17. ln(建立文件鏈接)
軟/硬鏈接概念
在Linux中存在軟/硬鏈接的概念,為了理解二者的含義,需要明確的是:
- 首先,在Linux中,文件名和文件的數據是分開存儲的;
- 其次,文件名是地址的別名(便于人記憶);
- 最后,在計算機中,地址是以十六進制0x形式開頭。
基于這三點,結合下圖,可知:
對于軟鏈接:
- 軟鏈接文件名是地址0x1004的別名;
- 該地址處存儲的數據是軟鏈接文件數據的地址0x1003;
- 該地址存儲了被鏈接文件名所代表的地址0x1002;
- 而這一地址處又保存了文件數據的存儲地址0x1001;
- 最后通過該地址即可找到被鏈接文件的數據。
由此可知:
軟鏈接通過文件名間接訪問文件數據,如果將文件名刪除,該訪問鏈條將被切斷,則無法再訪問到文件數據。另外,可以將軟鏈接簡單理解為Windows操作系統中的快捷方式。
對于硬鏈接,其和文件名平起平坐,即使刪除文件名,由于硬鏈接文件名所代表的的地址處存儲了文件數據的地址,因此還是可以訪問文件數據。
建立鏈接命令
| link | 建立文件鏈接 | -s:建立被鏈接文件的軟鏈接 不指定選項時,創建的是硬鏈接 | 以絕對路徑方式(使用相對路徑創建的軟鏈接在被移動至別的目錄后,將失效)給出的源文件 待制定的軟鏈接名 |
18. tar(文件打包)
| tape archive | 文件打包 | -z:調用gzip命令,等價于--gzip,--gunzip,--ungzip; -j:調用bzip2命令,等價于--bzip2; -c:生成檔案文件,等價于--create; -v:列出歸檔/解檔的詳細過程,顯示進度,等價于--verbose; -x:解開檔案文件,等價于--extract,--get; -f:指定打包檔案名稱,f后面一定是.tar文件,該選項必須放最后,其他選項順序無要求,等價于--file=ARCHIVE; -C:等價于--directory=DIR。 | 打包文件.tar被打包的文件(夾)路徑 |
打包命令舉例:
- tar -cvf etc.tar /etc表示將根目錄/下的etc中的所有文件打包為一個etc.tar文件。
- 更進一步地,如果希望打包的同時壓縮文件,可以使用命令:
- tar -zcvf etc.tar.gz /etc,或者:
- tar -jcvf etc.tar.bz2 /etc。
解包命令舉例:
- tar -xvf etc.tar表示將etc.tar文件解包至當前目錄;
- 同樣更進一步地,如果希望解壓縮文件后解包,可以使用命令:
- tar -zxvf etc.tar.gz
- 再進一步,如果希望解壓縮文件后,在解包的同時制定解包路徑,可以使用命令:
- tar -zxvf etc.tar.gz -C path,或者:
- tar -jxvf etc.tar.bz2 -C path。
18. gzip/bzip2(文件解壓縮)
| GNU zip | 壓縮/解壓縮文件 | -z:壓縮/解壓縮文件 | 打包文件.tar.gz被壓縮的打包文件路徑 |
| bzip2 | 壓縮/解壓縮文件 | -j:壓縮/解壓縮文件 | 打包文件.tar.bz2被壓縮的打包文件路徑 |
具體的顯示取決于輸出設備,通常在終端中,斜體無法顯示,取而代之的是,使用下劃線表示斜體。 ??
基本所有命令的DESCRIPTION部分都有這樣一句話Mandatory arguments to long options are mandatory for short options too.其字面意思是“長選項的必需參數對于短選項也是必需的。”具體含義請見本文后續部分。 ??
所謂內部命令是指shell(命令解釋器)自帶的命令,其他的則是外部命令: ??
總結
以上是生活随笔為你收集整理的【Linux入门学习笔记】Linux命令查阅方法及文件操作命令简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android dumpsys常用命令
- 下一篇: ADS1.2 Error:(Fatal)