精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

嵌入式Linux入門(二、Linux文件系統、文件類型及權限管理)

矜辰所致 ? 來源:矜辰所致 ? 作者:矜辰所致 ? 2023-06-20 11:44 ? 次閱讀
嵌入式 Linux入 門第二課, linux 文件系統、文件類型及權限管理。  ...... 矜辰所致

前言

在上文我們說過:在Linux中一切接文件。 既然所有東西都是文件,那么如何區分不同的東西?

本文我們就來學習說明一下 Linux 文件系統 以及對文件的權限管理 。

在文章中我們會使用一些 shell 命令進行操作,雖然系列文章還沒有講到 Shell 命令,但是作為嵌入式工程師,多多少少也得知道是什么一個東西,就像 Windows 有 CMD 命令一樣,玩 RT-Thread 的時候也會使用到 Shell 命令,即便這些你都不知道,在下一篇 Linux 入門會記錄說明一些常用的 Linux Shell 命令,本文的命令也可以作為學習了解。

嵌入式 Linux 入門系列博文:

嵌入式 Linux 入門(一、Linux 基本介紹及文件結構)

.

我是矜辰所致,全網同名,盡量用心寫好每一系列文章,不浮夸,不將就,認真對待學知識的我們,矜辰所致,金石為開!

一、Linux 文件屬性

我們進入到 ubuntu 系統,打開終端,默認是進入到我們自己的用戶目錄下面,我們使用 ls -l (查看該目錄下所有文件的詳細信息)命令,查看文件詳情,如下圖:

圖片.png

在上面圖片中的目錄詳情,我們先整體來說明一下各部分的含義:

圖片.png

我們主要需要了解文件權限的含義:

文件類型后面的9個字符以3個為一組,第一組表示“文件所有者的權限”,第二組表示“用戶組的權限”,第三組表示“其他非本用戶組的權限”。(用戶和用戶組的知識,本文后面會有對應的說明。)

每組都是 rwx 的組合,其中 r 代表可讀,w 代表可寫,x 代表可執行,- 代表沒有這個權限。

圖片.png

1.1 Linux 文件類型

在Linux 中,一共有7種文件類型,如下表格:

字母 類型 說明
- 普通文件 普通文件包括 文檔圖片音樂等;純文本文件(ASCII)、二進制文件(binary)、數據格式的文件(data)、各種壓縮文件
d 目錄文件 目錄,可用 cd 命令進入
c 字符設備文件 linux 驅動里面的字符設備驅動,比如 串行設備,音頻設備,鍵盤、鼠標等等
b 塊設備文件 存儲設備驅動,比如硬盤,U盤等
p 管道文件 FIFO也是一種特殊的文件類型,它主要目的是解決多個程序同時存取一個文件所造成的錯誤
l 鏈接文件 類似Windows下面的快捷方式
s 套接字文件 這類文件通常用在網絡數據連接。可以啟動一個程序來監聽客戶端的要求,客戶端就可以通過套接字來進行數據通信

我們在上面文章的一些圖片中已經看到過 普通文件,和目錄文件。

那么我們通過上一篇文章嵌入式 Linux 入門(一、Linux 基本介紹及文件結構)應該可以知道,在目錄 /dev 中應該有很多與設備有關的文件,如下圖:

圖片.png

字符設備,塊設備,還有連接文件都看到了。

還有一點可以說明一下, 我們后面學習 Linux 驅動開發基本都是與 字符設備文件 和塊設備文件 打交道。

文件類型這個基本的知識,也好理解,沒有什么復雜的,我們知道了就可以。

1.2 Linux 文件權限及修改

在上面我們講過文件的 3 種讀寫權限:讀(r)、寫(w)和執行(x)。

除了用 r、w 和 x 表示以外,我們也可以使用二進制數表示,三種權限就可以使用 3 位二進制數來表示,一種權限對應一個二進制位,如果該位為1就表示具備此權限,如果該位為 0就表示沒不具備此權限:

圖片.png

那么組合一下,所有的文件共有 8 種不同的權限組合:

圖片.png

在Linux 系統中,使用命令“chmod”修改一個文件的權限。

我們經常看到前輩們使用的一條指令為 : chmod 777 xxxx(文件名字),意思就是把這個文件的權限全面開放,對于初學者來說,首先記住這條指令就可以了。

但是要記住,系統本身的文件,千萬不要瞎修改,可以在自己的賬戶下隨便新建一個文件作為測試,自己修改看看。

比如,我們做個簡單的測試,如下圖:

圖片.png

在我們以后使用 Linux 的時候,經常會遇到權限不夠的問題,我們一般都會在命令前加上一個 sudo ,比如下圖測試:

圖片.png

上圖中,我用自己的 qzh 賬戶嘗試在根目錄 “/” 創建文件 test,給出權限不夠的提示。只有 root用戶才能在根目錄“/”下創建文件 , 所以使用了 sudo 命令暫時獲取管理員用戶權限。

當然接下來的刪除,也是需要 sudo 命令的:

圖片.png

上面sudo 這個命令以后需要經常使用,需要記住。

二、Linux 用戶系統

在上文說明 Linux 文件的設備類型的時候,有提到用戶權限,用戶組權限,和其他用戶權限。

那么我們需要明白什么是用戶? 什么是用戶組?

2.1 Linux 的用戶

Linux系統是一個多用戶多任務的分時操作系統,任何一個要使用系統資源的用戶,
都必須首先向系統管理員申請一個賬號,然后以這個賬號的身份進入系統。

用戶的賬號一方面可以幫助系統管理員對使用系統的用戶進行跟蹤,并控制他們對系統資源的訪問;
另一方面也可以幫助用戶組織文件,并為用戶提供安全性保護。

每個用戶賬號都擁有一個唯一的用戶名和各自的口令。

用戶在登錄時鍵入正確的用戶名和口令后,就能夠進入系統和自己的主目錄。

其實在我們使用 Windows 系統的時候,也有用戶的概念,只是日常應用很少創建多個用戶,切換來切換去,可能相對多的時候,也只是右鍵 “以管理員身份運行” 某個程序。

在安裝 Ubuntu系統的時候被要求創建一個賬戶,當我們創建好賬號以后,系統會在目錄/home 下以該用戶名創建一個文件夾,所有與該用戶有關的文件都會被存儲在這個文件文件夾中。同樣的,創建其它用戶賬號的時候也會在目錄/home 下生成一個文件夾來存儲該用戶的文件,如下圖:

圖片.png

Linux 的用戶分類:

Linux 用戶類型分為以下 3類:

  • 管理員:root 用戶,系統管理員,具有所有權限。
  • 系統用戶:管理系統運行服務,系統中系統服務由不同用戶運行,更加安全,默認被限制登錄系統。
  • 普通用戶:用于日常工作而不能管理系統的普通用戶,只有一部分權限。

在我們使用的 Ubuntu 中,上面的 qzh 用戶屬于普通用戶,但是他是按照系統時候創建的用戶,其權限比后面創建的用戶大一點,但是沒有 root 用戶權限大。

這個地方初次創建的用戶,比后面創建的普通用戶的區別暫時沒有必要研究,因為后期我們在使用過程中基本都是在初次創建的用戶下面,遇到權限問題可以臨時獲取管理員,這里做個了解即可。

UID

每個用戶都有一個 ID 號,稱為 UID,操作系統通過 UID 來識別是哪個用戶,用戶相關信息可以在文件 /etc/passwd 查看到 :

圖片.png

每行用戶信息都以 “:” 作為分隔符,劃分為7個字段,每個字段所表示的含義如下:

用戶名:密碼:UID:GID:描述性信息:主目錄:默認Shell

每一行都是一個用戶的信息,意思如下圖解釋:

圖片.png

上面第二個密碼“x” ,在以前版本的 linux 系統中存放著加密后的用戶口令,雖然這個字段存放的只是用戶口令的加密串,但是由于 /etc/passwd 文件對所有用戶都可讀,所以這仍是一個安全隱患。因此,現在許多Linux 版本都使用了shadow技術,把真正加密后的用戶口令存放到 /etc/shadow 文件中,而在 /etc/passwd 文件的口令字段中只存放一個特殊的字符,例如用“x”或者“*”來表示。

那么結合這個文件,我們可以再次說明一下 Linux 系統中的幾個用戶 UID:

超級用戶 UID 0 :

圖片.png

系統用戶 UID 1-999 :

圖片.png

普通用戶 UID 1000以上:

圖片.png

特殊的來賓賬號:

圖片.png

nobody這個的帳號UID為65534,這個用戶的權限會進一步的受到限制,一般用于實現來賓帳號。

系統是根據 UID 來認定用戶的權限而不是名字。如果把自己創建的用戶 UID 改成 0 ,那么系統登錄會把用戶視為管理員用戶。

2.2 Linux 的用戶組

什么是用戶組?

用戶組是具有相同特征用戶的邏輯集合, 有時我們需要讓多個用戶具有相同的權限,比如查看、修改某一個文件的權限,一種方法是分別對多個用戶進行文件訪問授權。

如果有10個用戶的話,就需要授權10次,顯然這種方法不太合理;另一種方法是 建立一個組,讓這個組具有查看、修改此文件的權限,然后將所有需要訪問此文件的用戶放入這個組中,那么所有用戶就具有了和組一樣的權限,這就是用戶組。

將用戶分組是Linux 系統中對用戶進行管理及控制訪問權限的一種手段,通過定義用戶組,在很大程度上簡化了管理工作。

每個用戶都有一個用戶組,系統可以對一個用戶組中的所有用戶進行集中管理。不同Linux 系統對用戶組的規定有所不同,如Linux下的用戶屬于與它同名的用戶組,這個用戶組在創建用戶時同時創建。每個用戶在被創建時均會創建一個默認組(其GID與UID相同,叫作基本組或初始組),而后加入的組叫作擴展組或附加組。

GID

GID 是用戶組的編號,可以將多個用戶加入到某個組中,方便指派任務或工作。 和 UID 一樣也是有一個對應的文件保存信息,用戶組名和GID相關信息可以在文件 /etc/group 查看到:

圖片.png

每行的用戶組的信息都以 “:” 作為分割符,劃分為4個字段,每個字段所表示的含義如下:

組名:密碼:GID:該用戶組中的用戶列表

每一行都是一個用戶組的信息,組中的用戶列表只包括附加用戶,如果該組是某個用戶的初始組,則這個用戶不會出現在這個用戶列表中,如下圖:

圖片.png

2.3 文件歸屬者修改命令

相對于修改權限來說,修改歸屬者沒那么常用,簡單了解一下。

使用命令“chown”修改一個文件的所屬者和所屬:

chown  [參數]  [用戶名.< 組名 >]  [文件名/目錄] 
chown [-cfhvR] [--help] [--version] user[:group] file...

簡單測試如圖:

圖片.png

一些常用的指令我們下一篇講 Shell 命令的時候都會有說明。

三、Linux 文件系統簡介

實際上,還需要說明一個文件系統的概念可以說明,文件系統用來組織計算機的文件和資料的系統。

此部分對于初學者,了解一下就好,后面如果真的遇到文件類型的問題再看一篇才好理解。

操作系統就是處理各種數據的,這些數據在硬盤上就是二進制,我們想要看懂這些數據,要有一個翻譯器,將這些二進制的數據還原為人類能看懂的文件形式,這個工作就是由文件系統來完成的,文件系統的目的就是實現數據的查詢和存儲。

由于使用場合、使用環境的不同,Linux有多種文件系統,不同的文件系統支持不同的體系。文件系統是管理數據的,而可以存儲數據的物理設備有硬盤、U 盤、SD卡、NAND FLASH、NOR FLASH、網絡存儲設備等。不同的存儲設備其物理結構不同,不同的物理結構就需要不同的文件系統去管理,比如管理 NAND FLASH 的話使用 YAFFS 文件系統,管理硬盤、SD 卡的話就是 ext 文件系統等等。

比如在我們使用 windows 的時候,格式化一個 U 盤,就需要選擇文件系統,如下圖:

圖片.png

3.1 Linux文件系統類型

和 Windows 類似,在 Windows 下有 FAT32、NTFS 和exFAT 這樣的文件系統,在Linux下又有哪些文件系統呢,Linux 下的文件系統主要有 ext2、ext3、ext4 等文件系統。

Linux 還支持其他的 UNIX文件系統,比如XFS、JFS、UFS 等,也支持Windows的 FAT文件系統和網絡文件系統 NFS等。

  • ext2

    具有極快的速度和極小的CPU占用率,可用于硬盤和移動存儲設備,ext2是Linux早期的文件系統,但是隨著技術的發展 ext2文件系統已經不推薦使用了。

  • ext3

    增加日志功能,可回溯追蹤,完全兼容 ext2文件系統,ext3支持大文件;

  • ext4

    ext4 相比與ext3提供了更佳的性能和可靠性,并且功能更豐富,ext4 向下兼容 ext3 和 ext2,因此可以將 ext2 和 ext3 掛載為 ext4。

    日志式文件系統,支持1EB(1024*1024TB),最大單文件16TB,支持連續寫入可減少文件碎片。

在終端中輸入如下命令可查詢當前磁盤掛載的文件系統:

df   -T –h

比如查詢我安裝的 Ubuntu 使用的哪個版本的文件系統如下圖:

圖片.png

上圖中最后一個項目是“掛載點”,在 Linux 下創建一個分區并且格式化好以后我們要將其“掛載”到一個目錄下才能訪問這個分區,這個我們后期會有對應介紹。

結語

本文我們認識了 Linux 的 7 種文件類型,知道如何查看文件類型,以及對文件的權限管理方式。

然后還任何了一下 Linux 的用戶系統,知道了 用戶 與 用戶組的概念,記住兩個概念 UID 和 GID: 用戶ID 和 用戶組 ID。

然后知道了通過兩個文件 /etc/passwd 和 /etc/group 可以查看當前系統下所有用戶 和用戶組的信息。

最后還簡單的介紹了一下 Linux 的文件系統。

這些都是 Linux 的基礎知識,內容簡單不難理解,但是是學習嵌入式 Linux 入門的必須要知道了解的內容,在下一篇文章,我們開始學習常用的 Shell 命令。

本文就到這里,謝謝大家!

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5068

    文章

    19014

    瀏覽量

    303228
  • Linux
    +關注

    關注

    87

    文章

    11225

    瀏覽量

    208911
  • 文件系統
    +關注

    關注

    0

    文章

    284

    瀏覽量

    19883
  • Shell
    +關注

    關注

    1

    文章

    363

    瀏覽量

    23292
收藏 人收藏

    評論

    相關推薦

    嵌入式Linux文件系統管理

      嵌入式 Linux 開發人員可以使用平臺映像生成器等工具獲得對構建復雜文件系統的更多控制,這使得組裝、調整和創建文件系統映像更容易完成。
    發表于 08-12 09:23 ?708次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b><b class='flag-5'>文件系統管理</b>

    嵌入式文件系統概述

    的組織形式。·文件系統為操作系統提供了必要的用于創建文件、刪除文件、讀文件和寫文件相應的
    發表于 11-05 06:29

    Linux快速入門文件類型文件屬性

    嵌入式Linux應用程序開發詳解》第一章 Linux 快速入門1.3.1 文件類型文件屬性1
    發表于 12-17 07:58

    適合嵌入式Linux應用的文件系統—— JFFS

    介紹一種適合嵌入式Linux應用的文件系統—— JFFS。JFFS是一種在開源模式下開發的文件系統, 為嵌入式
    發表于 04-16 11:07 ?4次下載

    適合嵌入式Linux應用的文件系統—— JFFS

    介紹一種適合嵌入式Linux應用的文件系統—— JFFS。JFFS是一種在開源模式下開發的文件系統, 為嵌入式
    發表于 05-14 15:27 ?12次下載

    構造嵌入式Linux文件系統

    文件系統Linux 系統最基本的資源。本文介紹了一種嵌入式Linux 文件系統的構造過程,較為
    發表于 08-07 09:11 ?10次下載

    嵌入式Linux文件系統的研究與應用

    隨著嵌入式系統的發展,使用Linux操作系統搭建的嵌入式平臺得到了越來越廣泛的應用。文件系統
    發表于 08-13 08:59 ?16次下載

    詳解嵌入式linux文件類型

    學習嵌入式linux系統開發,對于linux文件類型需要有很深的理解。Linux
    發表于 06-11 16:29 ?996次閱讀
    詳解<b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b><b class='flag-5'>文件類型</b>

    學習嵌入式linux系統開發,文件類型一定要分清

    學習嵌入式linux系統開發,對于linux文件類型需要有很深的理解。Linux
    發表于 07-05 07:01 ?864次閱讀

    嵌入式linux系統開發幾大文件類型

      同學們學習嵌入式linux系統開發的熱情日益旺盛,而對于linux文件類型需要有很深的理解。Linu
    發表于 08-06 16:28 ?335次閱讀

    嵌入式linux系統開發文件類型

      隨著計算機嵌入式系統開發的不斷普及,越來越多的人開始學習計算機嵌入式系統開發,學習嵌入式linux
    發表于 08-27 11:31 ?401次閱讀

    你知道嵌入式linux文件類型

    學習嵌入式linux系統開發,對于linux文件類型需要有很深的理解。Linux
    發表于 05-04 17:09 ?731次閱讀
    你知道<b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b><b class='flag-5'>文件類型</b>?

    Linux嵌入式文件系統如何構建

    Linux支持多種文件系統,同樣,嵌入式Linux也支持多種文件系統。雖然在嵌入式
    發表于 06-18 09:23 ?984次閱讀

    嵌入式Linux系統移植-(Linux文件系統

    的組織形式。·文件系統為操作系統提供了必要的用于創建文件、刪除文件、讀文件和寫文件相應的
    發表于 11-02 12:51 ?16次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b><b class='flag-5'>系統</b>移植-(<b class='flag-5'>Linux</b><b class='flag-5'>文件系統</b>)

    Linux 下的make 工具和 Makefile

    文件結構) 嵌入式 Linux 入門Linux 文件
    的頭像 發表于 06-22 10:45 ?1056次閱讀
    <b class='flag-5'>Linux</b> 下的make 工具和 Makefile