首頁 運維 linux運維 linux ll指令是什麼

linux ll指令是什麼

Mar 09, 2022 pm 03:51 PM
linux

在linux中,「ll」指令指的是「ls -l」指令,它是「ls -l」指令的別名,用來以長格式顯示目錄下的內容清單;輸出的資訊從左到右依序包含檔案名,檔案類型、權限模式、硬連線數、擁有者、群組、檔案大小和檔案的最後修改時間等。

linux ll指令是什麼

本教學操作環境:linux5.9.8系統、Dell G3電腦。

ll並不是linux下一個基本的指令,它其實是ls -l的一個別名。

「ls -l」的意義

  以長格式顯示目錄下的內容清單。輸出的資訊從左到右依序包含檔案名,檔案類型、權限模式、硬連線數、擁有者、群組、檔案大小和檔案的最後修改時間等。

linux ll指令是什麼

可以看到,用ls -l指令查看某一個目錄會得到一個7個欄位的清單。

第1行:總計(total)

Total後面的數字是指目前目錄下所有檔案所佔用的空間總和。可以使用ls –lh查看,也可使用ls –alh查看。

第1欄位: 檔案屬性欄位

-rw-r--r-- 1 root root 762 07-29 18:19 exit

檔案屬性欄位總共有10個字母組成;第一個字元代表檔案的類型。

  • 字母“-”表示該檔案是一個普通檔案

  • #字母“d”表示該檔案是目錄,字母"d" ,是dirtectory(目錄)的縮寫

    注意:目錄或是特殊文件,這個特殊文件存放其他文件或目錄的相關資訊

  • ##字母「l」表示該文件是一個連結檔。字母"l"是link(連結)的縮寫,類似windows下的捷徑

  • 字母「b」的表示區塊裝置檔案(block),一般置於/dev目錄下,設備文件是普通文件和程式存取硬體設備的入口,是很特殊的文件。沒有檔案大小,只有一個主設備號碼和一個輔設備號。一次傳輸資料為一整塊的稱為區塊設備,如硬碟、光碟等。最小資料傳輸單位為一個資料區塊(通常一個資料區塊的大小為512位元組)

  • 字母為「c」表示該檔案為字元裝置檔案(character),一般置於/dev目錄下,一次傳輸一個位元組的設備稱為字元設備,如鍵盤、字元終端機等,傳輸資料的最小單位為一個位元組。

  • 字母為「p」表示該檔案為指令管道檔案。與shell編程有關的檔案。

  • 字母「s」表示該檔案為sock檔。與shell編程有關的檔案。

在此重申下檔案連結這個重要概念:

連結檔案的概念類似於windows裡的捷徑。多個連結檔案同時指向一個「來源檔案」。連結檔案分為硬連結或符號連結兩種。

在Linux的檔案系統中,儲存在磁碟分割區中的檔案不管是什麼型別都會給它指派一個編號,稱為索引節點號inode 。軟連接,其實就是新建立一個文件,這個文件就是專門用來指向別的文件的(那就和windows 下的快捷方式的那個文件有很接近的意味)。軟連接產生的是一個新的文件,但這個文件的作用就是專門指向某個文件的,刪了這個軟連接文件,那就等於不需要這個連接,和原來的存在的實體原文件沒有任何關係,但刪除原來的文件,則相應的軟連接不可用(cat那個軟鏈接文件,則提示“沒有該文件或目錄“)


硬連接是不會建立inode的,他只是在檔案原來的inode link count域再增加1而已,也因此硬連結是不可以跨越檔案系統的。相反都是軟連線會重新建立一個inode,當然inode的結構跟其他的不一樣,他只是一個指明原始檔的字串資訊。一旦刪除來源文件,那麼軟連接將變得毫無意義。而硬連結刪除來源檔案的時候,系統呼叫會檢查inode link count的數值,如果他大於等於1,那麼inode不會被回收,因此檔案的內容不會被刪除,相當於刪除了一個索引。

硬連結其實是為檔案建立一個別名,連結檔案和原始檔案其實是同一個檔案。可以透過ls -i來查看一下,這兩個檔案的inode號是同一個,說明它們是同一個檔案;而軟連結建立的是一個指向,即連結檔案內的內容是指向原始檔案的指針,它們是兩個文件。


软链接可以跨文件系统,硬链接不可以;软链接可以对一个不存在的文件名(filename)进行链接(当然此时如果你vi这个软链接文件,linux会自动新建一个文件名为filename的文件),硬链接不可以(其文件必须存在,inode必须存在);软链接可以对目录进行连接,硬链接不可以。两种链接都可以通过命令 ln 来创建。ln 默认创建的是硬链接。使用 -s 开关可以创建软链接

第1字符的后面9个字母表示该文件或目录的权限位。

r表是读 (Read) 、w表示写 (Write) 、x表示执行 (eXecute)

其中前三个表示文件拥有者的权限,中间三个表示文件所属组拥有的权限,最后三个表示其他用户拥有的权限。

比如:

-rw-r--r-- 1 root root 762 07-29 18:19 exit
登入後複製

表示文件的拥有者root对文件有读写权限,其他人(同组用户和其他用户只有读的权限)

另外,权限组还有一些特殊的表示法:

[root@localhost ~]# ll /usr/X11R6/bin/XFree86
-rws--x--x 1 root root 1960262 2003-02-28 /usr/X11R6/bin/XFree86
登入後複製

s表示这个是网络接口程序"s"是socket的缩写。该程序在运行过程中会打开一个网络接口。

其他UNIX类系统如FreeBSD中还有t权限,表示一个临时(temporary)文件

#ls -l /tmp可以看到这样的权限:drwxrwxrwt 它的最后一位是字母"t"

第2字段:文件硬链接数

-rw-r--r-- 1 root root 762 07-29 18:19 exit

如果一个文件不是目录,此时这一字段表示这个文件所具有的硬链接数,

第2字段的值为1,说明这个文件只有exit这一个文件名。即只有一个指向该链接的硬链接。。

如果使用ln,做一个指向该文件的硬链接再查看该文件,该文件的第2字段就会变成2

linux ll指令是什麼

此时exit 和aexit称为互为硬链接。他们指向同一个文件,无论是修改哪一个文件,另一个里也做相应的变化,因为实际上他们指向同一个文件(即同一文件的不同文件名)

互为硬链接的文件具有相同的文件节点。

linux ll指令是什麼

可以看出,这两个文件具有相同的文件节点号:162302

可以设置符号链接(软链接),格式如下

Ln –s 源文件 目标链接文件

linux ll指令是什麼

注意:软链接时文件节点号不一样;

linux ll指令是什麼

如果知道一个文件有多个文件名(链接文件)如何查找他的其他文件名分布在什么地方呢?

可以先用ls -i 获得它的节点号,然后用find查找,如/etc/sysconfig/networking/ifcfg-eth0就具有多个文件名,要查找与它互为硬链接的文件

linux ll指令是什麼

得到它的节点号为 452946

再用find查找:

linux ll指令是什麼

这样就得到了同一个文件的不同文件名的位置。

第3字段:文件(目录)拥有者

lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit

该字段表示此文件是属于哪个用户。linux类系统都是多用户系统,每个文件都有它的拥有者。只有文件的拥有者才具有改动文件属性的权利。当然, root用户具有改动任何文件属性的权利。对于一个目录来说,只有拥有该目录的用户,或者具有写权限的用户才有在目录下创建文件的权利

如果某一个用户因为某种原因,被删除,而该用户的文件还存在,那么用ls -l 查看该文件将显示一个代表用户存在前ID号的数字。

先创建一个用户test,将其加入wang用户组,并用su切换,使用ls –l查看文件拥有者,随即删除用户test,用root进入test家目录,查看刚刚创建的文件testing。

linux ll指令是什麼

可以看到,第三字段成了一个数字,这个数字是原test用户的ID号。因为文件系统对每个文件记录文件所有者的ID,而非用户名。

第4字段:文件(目录)拥有者所在的组

lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit

一个用户可以加入很多个组,但是其中有一个是主组,就是显示在第4字段的名称。

可以在useradd的时候用-g指定该用户所在的主组,用-G指定其他组

格式如下:Useradd –g 组名 用户名

第5字段: 文件所占用的空间(以字节为单位)

lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit

第5字段表示文件大小,如果是一个文件夹(目录),则表示该文件夹的大小。请注意是文件夹本身的大小,而不是文件夹以及它下面的文件的总大小。

很多人不能理解文件夹是一个特殊的文件的含义,这样的话理解文件夹大小的含义就比较困难了。

第6字段:文件(目录)最近访问(修改)时间

lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit

文件创建的时间可以通过touch命令来修改。如:

[root@localhost ~]# touch exit

可以把exit的创建时间修改为当前时间,另外,一个文件还有最后访问时间,最后修改时间等属性。

这些属性可以用ls 的其它参数显示出来。

第7字段:文件名

lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit

如果是一个符号链接,那么会有一个 “->" 箭头符号,后面根一个它指向的文件名

相关推荐:《Linux视频教程

以上是linux ll指令是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

vscode需要什麼電腦配置 vscode需要什麼電腦配置 Apr 15, 2025 pm 09:48 PM

VS Code 系統要求:操作系統:Windows 10 及以上、macOS 10.12 及以上、Linux 發行版處理器:最低 1.6 GHz,推薦 2.0 GHz 及以上內存:最低 512 MB,推薦 4 GB 及以上存儲空間:最低 250 MB,推薦 1 GB 及以上其他要求:穩定網絡連接,Xorg/Wayland(Linux)

notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

vscode終端使用教程 vscode終端使用教程 Apr 15, 2025 pm 10:09 PM

vscode 內置終端是一個開發工具,允許在編輯器內運行命令和腳本,以簡化開發流程。如何使用 vscode 終端:通過快捷鍵 (Ctrl/Cmd ) 打開終端。輸入命令或運行腳本。使用熱鍵 (如 Ctrl L 清除終端)。更改工作目錄 (如 cd 命令)。高級功能包括調試模式、代碼片段自動補全和交互式命令歷史。

git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

Linux的主要目的是什麼? Linux的主要目的是什麼? Apr 16, 2025 am 12:19 AM

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

vscode終端命令不能用 vscode終端命令不能用 Apr 15, 2025 pm 10:03 PM

VS Code 終端命令無法使用的原因及解決辦法:未安裝必要的工具(Windows:WSL;macOS:Xcode 命令行工具)路徑配置錯誤(添加可執行文件到 PATH 環境變量中)權限問題(以管理員身份運行 VS Code)防火牆或代理限制(檢查設置,解除限制)終端設置不正確(啟用使用外部終端)VS Code 安裝損壞(重新安裝或更新)終端配置不兼容(嘗試不同的終端類型或命令)特定環境變量缺失(設置必要的環境變量)

See all articles