ls 查看文件和目錄列表
============
本小節介紹如何使用命令列出當前所在目錄中所有文件和目錄的列表,另外還介紹使用不同的命令參數篩選和限制展示出來的列表。
1\. 列出目錄列表
----------
顯示當前目錄下的文件目錄列表命令:
ls
執行結果如下:

> **Tips**:`ls`?命令列出來的目錄排序默認是按字母的列排序。
2\. 列出有標記的目錄列表
--------------
使用?`ls -F`?命令可以在列表出來的文件后面加上一個標識,這樣再使用 ls 命令列出文件列表時,能快速知道列出的文件類型和作用:
ls -F
如下圖所示:

> **Tips**:?`ls -F`?命令列出的文件名稱后面會加一個標識,其中?`*`?表示可執行文件,`/`?表示目錄,`=`?表示 socket 文件,`@`?表示 軟鏈接,`|`?表示 FIFOs 文件。
3\. 列出包含隱藏文件的列表
---------------
可以使用?`ls -a`?命令列出當前目錄包含隱藏文件的所有文件列表:
ls -a
執行結果如下:

4\. 使用多個參數列出文件列表
----------------
可以在 ls 命令后面跟上多個參數列出的文件列表篩選:
ls -F -R -a
或
ls -FRa
執行結果如下:

5\. 使用 ll 命令顯示文件列表詳細信息
----------------------
`ll`?命令是?`ls -l`?的簡寫,它可以顯示出文件的權限、屬主、大小、最后修改時間等等信息:
ll
或
ls -l
### 5.1 文件類型

最左側一列表示該文件的類型:
* **“-”**?表示普通文件;
* **“d”**?表示目錄;
* **“l”**?表示鏈接文件;
* **“p”**?表示管理文件;
* **“b”**?表示塊設備文件。
### 5.2 文件屬性

這里以?`boot`?目錄為例,`r-xr-xr-x`?可以分為三部分?`[r-x][r-x][r-x]`,其中的第一部分表示文件創建者/所有者對該文件所具有的的權限,第二部分表示創建者/所有者所在的組其他用戶的權限,第三部分表示其他組的用戶的權限。
* **r(Read,讀取權限)**:若是文件,則表示可以讀取文件內容,若是目錄,則表示可以瀏覽目錄;
* **w(Write,寫入權限)**:若是文件,則表示可以新增、修改內容,若是目錄,則表示可以刪除、移動目錄列表的權限;
* **x(Execute,執行權限)**:若是文件,則表示具有執行文件的權限,若是目錄,則表示該用戶擁有進入目錄的權限。
> **Tips**:關于權限相關的知識這里只是了解一下,后面小節或介紹權限相關的內容。
### 5.3 目錄/鏈接個數

* 如果是目錄那么這里的數量減 2 表示它下級目錄或者文件的個數。
* 如果是文件則表示指向它的鏈接文件的數量。
> **Tips**:每個目錄下面都包含有?`.`?和?`..`?目錄,其中?`.`?表示當前目錄,`..`?表示上級目錄。文件鏈接相當于?`windows`?里面的快捷方式。
### 5.4 文件所有者

其中?`root root`?可以分為兩部分,`[root] [root]`,前面的?`root`?表示該文件或目錄的所有者/創建者是?`root`?用戶,后面的?`root`?表示該文件或目錄所在的組是?`root`。
> **Tips**:關于用戶權限和用戶組的知識,后面小節會詳細介紹。
### 5.5 文件的大小

* 如果是則表示該文件的大小,單位是字節(byte)。
* 如果是目錄則表示該目錄所占的空間大小,并不是指該目錄下所有文件的大小。
> **Tips**:1 字節(byte) = 8 比特(bit), 1 kb = 1024 bit。
### 5.6 修改日期

表示最后修改的時間,以?`boot`?目錄為例,表示最后修改或者創建時間是?`4 月 19 日 12:27`。
### 5.7 文件名稱

表示文件名,其中?`bin->usr/bin`?表示軟鏈接。
### 5.8 字體顏色

* 亮黃色表示設備文件;
* 亮藍色表示鏈接文件;
* 灰藍色表示目錄;
* 亮紅色表示壓縮文件;
* 亮綠色表示可執行文件;
* 灰白色表示普通文件。
6\. ls 命令參數介紹
-------------
下面列出比較常見的 ls 相關的參數僅供參考:
| ls 命令參數名稱 | 功能與作用描述 |
| :-- | :-- |
| \-a | 表示?`–all`, 列出目錄下的所有文件,包括以?`.`?開頭的隱藏文件。 |
| \-A | 表示?`-a`,但不列出?`.`(表示當前目錄) 和?`..`?(表示當前目錄的上級目錄)。 |
| \-c | 表示按照最后更改時間排序,可以使用?`-l`?顯示出時間。 |
| \-f | 對輸出的文件不進行排序。 |
| \-g | 類似?`-l`,列出目錄信息。 |
| \-G | 表示?`–no-group`,不列出任何有關組的信息。 |
| \-h | 表示?`–human-readable`,與?`-l`?配合使用,如?`ls -lh`以容易理解的格式列出文件大小,如 10k、20M、100G。 |
| \-i | 表示?`–inode`,打印出每個文件的?`inode`?號。 |
| \-l | 除了文件名之外,還將文件的權限、所有者、文件大小等信息詳細列出來,`ls -l`?可以簡寫為?`ll`。 |
| \-L | 表示?`–dereference`,當顯示符號鏈接的文件信息時,顯示符號鏈接所指示的對象而并非符號鏈接本身的信息。 |
| \-m | 所有文件或目錄以?`,`?分隔,并填滿整行行寬。 |
| \-o | 類似?`-l`,顯示文件的除組信息外的詳細信息。 |
| \-r | 表示?`–reverse`,按照當前排序順序相反的順序排列。 |
| \-R | 表示?`–recursive`,遞歸出所有子目錄層。 |
| \-s | 表示?`–size`,以塊大小為單位列出所有文件的大小。 |
| \-S | 根據文件大小排序。 |
7.小結
----
本小節介紹了如何使用?`ls`?命令顯示出目錄或文件列表,還介紹了如何在?`ls`?命令后面跟上一個或多個參數對顯示出的列表限制和篩選,另外還對?`ls -l 或 ll`?命令顯示出來的文件信息做了詳細的介紹,熟練掌握這些命令參數會幫助讀者快速獲取到目錄或文件的信息,實際工作中需要根據具體的需要選擇合適的參數幫助快速獲取到文件相關信息,從而提升自己使用 Linux 系統的效率。
- Linux簡介
- 安裝Linux系統
- 虛擬機網絡配置
- ssh終端軟件介紹
- sshd服務詳解
- ls命令查看文件和目錄
- cd命令路徑操作
- 創建文件和目錄
- rm刪除文件和目錄
- cp命令:復制文件或目錄
- mv移動文件和目錄
- 文件壓縮與解壓
- 文件和目錄重命名
- find查找文件和目錄
- 查看文件內容
- grep命令:文本搜索
- curl命令:文件傳輸工具
- wget命令:下載網絡文件
- scp命令:文件上傳下載
- rsync命令:遠程數據同步工具
- top命令:系統運行狀態
- ifconfig命令:網絡相關
- yum命令-紅帽系統軟件包管理
- apt命令:debian系統軟件包管理
- vim編輯器
- nano編輯器
- Linux查看進程
- Linux 結束進程
- Linux磁盤空間
- Linux中的環境變量
- 查看環境變量
- 配置環境變量
- Linux用戶介紹
- Linux添加用戶
- Linux刪除用戶
- Linux修改用戶
- 用戶組介紹
- 添加用戶組
- 修改用戶組
- 刪除用戶組
- Linux文件權限介紹
- 修改文件權限
- 修改文件所屬關系
- 文件系統介紹
- 日志文件系統
- 修改服務器時間
- crontab詳解
- shell編程-shell介紹
- shell編程-變量和字符串
- shell編程-shell腳本的參數
- shell編程-流程控制
- shell編程-循環
- shell編程-數組
- shell編程-運算符
- shell編程-echo命令
- shell編程-printf命令
- shell編程-test命令
- shell編程-函數
- shell編程-輸出重定向
- shell編程-文件包含
- shell編程-sed
- shell編程-awk
- shell編程-常用命令補充
- shell編程實戰-拉git代碼
- 源碼安裝Nginx
- 安裝Apache
- 安裝Redis
- Docker介紹
- Docker基礎
- Docker鏡像
- Docker容器
- Docker容器互聯
- Docker 安裝 Nginx
- 阿里云域名介紹
- 阿里云域名解析
- 阿里云域名備案
- 阿里云服務器ECS上
- 阿里云服務器ECS下
- 阿里云之域名ssl證書
- AWS服務介紹
- AWS之EC2
- AWS之VPC
- AWS之Route53
- AWS之RDS
- AWS之S3
- AWS之SSL
- AWS之CloudWatch
- AWS之IAM
- AWS之WAF
- AWS之Lambda
- AWS之安全策略
- AWS認證證書