【Linux】文件、用戶管理命令


1 前言

Linux的哲學之一是一切皆文件,即計算機系統的所有設備(軟件和硬件)都可以用文件來表示,所以文件管理對於Linux系統來說就像是管家一樣,使Linux變得清晰、簡潔、高效、易用。

以我們平常使用的Windows系統的計算機爲例,其上不同類型的文件有很多,如常見的txt(文本)、jpg(圖片)、mp3(音頻),flv(視頻)格式等等。

而Linux系統上同樣也有很多不同類型的文件,常見的如

  • -:表示常規文件,即f,其他程序會表示爲f;
  • d:directory,目錄文件,完成路徑映射;
  • b:block device,塊設備文件,支持以block爲單位進行隨機訪問;
  • c:character device,字符設備文件,支持以character爲單位的線性訪問;
  • l:symbolic link,符號鏈接文件,可以找到文件的路徑,也叫軟鏈接;
  • p:pipe,命名管道;
  • s:socket,套接字文件,在兩個進程直接進行通信時進行套接,主要用於服務提供。

2 命令行接口

我們使用Linux,都是因爲其可以長期高效穩定的運作,特別是對於企業,穩定顯得尤爲重要,其次,Linux佔用系統內存很小,我們可以盡情的壓榨計算機的性能。最重要的是Linux的發行版有很多好用免費的版本。

雖然Linux也有圖形界面(GUI),但使用命令行(CLI)效率更高,且能節省更多系統資源。基本上所有企業配置的服務器都不需要圖形界面,試想,如果都安上了圖形界面,那得多有錢纔會那麼幹啊,況且也沒必要,服務器只需要在那邊跑就行了。


3 常用文件管理命令

類似於Windows系統,Linux系統中的文件也可以查看文件路徑、文件屬性、複製、粘貼、移動、創建、刪除等等。此外,Linux還有一些特殊的文件管理命令。

在此只列出基本的語法格式,想要查更具體的用法,可用manhelp命令:


3.1 文件查看:ls,file,tree,cat,tac,head,tail,more,less,stat,pwd

  • ls:list,列出指定目錄下的內容,類似於Wndows下的文件列表。
    ls [OPTION]... [FILE]...
    在這裏插入圖片描述

  • file:查看文件內容類型。
    file [FILE]...
    例子:
    file /etc/fstab:顯示etc目錄下的fstab文件。
    在這裏插入圖片描述

  • tree:層級顯示文件,這個賊他媽好用,誰用誰知道。

  • cat:concatenate,文本文件查看工具,查看文件內容,無法編輯,就看一下。
    cat [OPTION]... [FILE]...
    例子:
    cat -n /etc/fstab:查看/etc/fstab文件並顯示文件行數編號。
    在這裏插入圖片描述

  • tac:將文件反序輸出,與cat相反。

  • head:用於顯示文件的開頭的內容。在默認情況下,head命令顯示文件的頭10行內容。
    head [OPTION]... [FILE]...
    例子:
    head -n5 /etc/fstab:顯示/etc目錄下fstab文件的前5行內容。
    在這裏插入圖片描述

  • tail:與head相反。

  • more:是一個基於vi編輯器文本過濾器,選項可參照vi編輯器,只能向前瀏覽。該命令一次顯示一屏文本,滿屏後停下來,並且在屏幕的底部出現一個提示信息,給出至今己顯示的該文件的百分比。
    more [OPTIONS] FILE...

  • less:與more相反,允許用戶向前或向後瀏覽文件。按Q鍵退出less程序。

  • stat:顯示文件或文件系統狀態。
    stat [OPTIONS] FILE...
    例子:
    stat tmp...:顯示tmp目錄文件的狀態信息。在這裏插入圖片描述
    其中,值得注意的是Acess,Modify,Change這三個,它們分別代表時間戳裏的

    • access time:最近訪問時間
    • modify time:最近數據更改時間
    • change time:最近元數據更改時間。
      • 元數據即爲描述數據的數據(data about data),主要是描述數據屬性(property)的信息,用來支持如指示存儲位置、歷史數據、資源查找、文件記錄等功能。如上圖所示,對於Linux來說,元數據指File、Size、Blocks、IO Block、directory、Device、Inode(文件索引節點號)、Links(硬鏈接次數)、Context(文件所在環境)、Uid、Gid、Access、Modify、Change、Birth。
  • pwd:顯示當前文件路徑。


3.2 文件管理:mkdir,rmdir,cp,mv,rm,install,mktemp

  • mkdir:make directory,創建目錄。也可用touch來創建文件。
    mkdir [OPTION]... DIRECTORY

例子:

  1. 使用命令行展開功能,在/tmp目錄下創建目錄:x_y, x_z, q_y, q_z和/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b。
    mkdir -p /tmp/{x_{y,z},q_{y,z}} /tmp/{a1/{a,b},a2}
    在這裏插入圖片描述
  2. 在/tmp目錄下創建以tfile開頭,後跟當前日期和時間的文件,文件名形如:tfile-2018-05-27-09-32-22。
    mkdir -p /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
    在這裏插入圖片描述
  • rmdir:remove directory,用來刪除空目錄。
    rmdir [OPTION]... DIRECTORY
     注意:子目錄被刪除之前應該是空目錄。就是說,該目錄中的所有文件必須用rm命令全部,另外,當前工作目錄必須在被刪除目錄之上,不能是被刪除目錄本身,也不能是被刪除目錄的子目錄。雖然還可以用帶有-r選項的rm命令遞歸刪除一個目錄中的所有文件和該目錄本身,但是這樣做存在很大的危險性。

  • cp:複製文件和目錄。

	單源複製 cp [OPTION]... [-T] SOURCE DEST
	多源複製 cp [OPTION]... SOURCE... DIRECTORY
	    	cp [OPTION]... -t DIRECTORY SOURCE...
  • mv:move,用來移動或重命名文件。
     注意:如果目標文件是到某一目錄文件的路徑,源文件會被移到此目錄下,且文件名不變;如果目標文件不是目錄文件,則源文件名(只能有一個)會變爲此目標文件名,並覆蓋己存在的同名文件。如果源文件和目標文件在同一個目錄下,mv的作用就是改文件名。當目標文件是目錄文件時,源文件或目錄參數可以有多個,則所有的源文件都會被移至目標文件中。所有移到該目錄下的文件都將保留以前的文件名。
	mv [OPTION]... [-T] SOURCE DEST
	mv [OPTION]... SOURCE... DIRECTORY
	mv [OPTION]... -t DIRECTORY SOURCE...
  • rm:remove,刪除文件。
     注意:所有不用的文件建議不要直接刪除,而是移動到某個專用目錄,用來模擬回收站。
    rm [OPTION]... FILE...

  • install:複製文件並設置文件屬性。

  • mktemp:創建臨時文件。
     注意:mktemp會將創建的臨時文件名直接返回,因此,可直接通過命令引用保存起來。


3.3 文件壓縮:gzip/gunzip,bzip2/bunzip2,xz/unxz,zip/unzip,tar

  • gzip/gunzip:以.gz結尾的壓縮格式文件
gzip [OPTIONS] /PATH/TO/SOMEFILE...

	-#:指明壓縮比1-9,默認爲6,數字越大,壓縮比就越大
	-d:decompress,解壓縮,相當於gunzip
	-c:將壓縮後的數據輸出至標準輸出(默認爲顯示屏)
	-r:遞歸至目錄中對每個文件進行壓縮

zcat /PATH/TO/SOMEFILE.GZ:無需顯示解壓縮便可查看壓縮文件的內容
  • bzip2/bunzip2:以.bz2結尾的壓縮格式文件
bzip [OPTIONS] /PATH/TO/SOMEFILE...

	-#:指明壓縮比1-9,默認爲6,數字越大,壓縮比就越大
	-d:decompress,解壓縮,相當於bunzip2
	-k:壓縮後保留原文件

bzcat /PATH/TO/SOMEFILE.BZ2:無需顯示解壓縮便可查看壓縮文件的內容
  • xz/unxz:以.xz結尾的壓縮格式文件
xz [OPTIONS] /PATH/TO/SOMEFILE...

	-#:指明壓縮比1-9,默認爲6,數字越大,壓縮比就越大
	-d:decompress,解壓縮,相當於bunzip2
	-k:壓縮後保留原文件

xzcat /PATH/TO/SOMEFILE.BZ2:無需顯示解壓縮便可查看壓縮文件的內容
  • zip/unzip:以.zip結尾的壓縮格式文件,可以將多個文件壓縮歸檔指單個文件
    zip ZIP_FILE.zip /PATH/TO/SOMEFILE

  • tar:可進行歸檔和壓縮文件,歸檔就是將多個文件打包爲單個文件以便於管理,默認的歸檔不會執行壓縮,歸檔不會刪除原文件

tar [OPTIONS] -c -f /PATH/TO/TARFILE.tar /PATH/TO/FILE...
	-cf:歸檔並壓縮
	-xf:展開歸檔,可直接使用,不用指定對應的壓縮工具
	
	-z:對應於gzip,壓縮後的文件後綴名爲.tar.gz
	-j:對應於bzip2,壓縮後的文件後綴名爲.tar.bz2
	-J:對應於xz,壓縮後的文件後綴名爲.tar.xz

4 常用文本處理命令:wc,cut,sort,uniq

  • wc:字符統計
  • cut:文本內容切割
  • sort:排序
  • uniq:顯示重複的行

5 常用用戶、組管理命令

Linux操作系統是多任務(Multi-tasks)、多用戶(Multi-users)的分時操作系統。不管是Linux系統還是WIndows系統,爲了保證用戶系統和數據資料的安全,需要對每個登陸的用戶進行驗證,即賬戶密碼,又對每個用戶對應的權限有所限制,而一旦擁有相同權限的人多了,就可以把那些用戶分在一起,所以有了組,可以理解爲權限狗系統用戶。

查看用戶信息
Linux系統中用戶的登錄信息存儲在**/etc/passwd** 中,其顯示格式爲:

name:password:UID:GID:GECOS:directory:shell

name:用戶登錄的名字
password:爲用戶加密的密碼,如果顯示爲字符x,則表示密碼存儲在/etc/shadow文件中
UID:用戶標識
GID:用戶所屬基本組的組標識
GECOS:備註信息
directory:用戶的家目錄
shell:用戶的默認shell

查看組信息
與Linux用戶組信息相關的文件包括:/etc/group,/etc/gshadow
用戶存儲在/etc/group裏面的信息格式爲:

group_name:password:GID:user_list

group_name:用戶組的名字;
password:加密的用戶組密碼;
GID:用戶組標識;
user_list:以此組爲附加組的用戶列表;


4.1 用戶管理:useradd,usermod,userdel,passwd,change,id

在Linux系統中,每個使用該系統的人稱之爲用戶(User),而用戶標識(UID) 則是每個用戶的唯一標識,每個用戶的登錄名(UserID)和用戶標識(UID)在Linux系統中一一對應,通過名稱解析庫來轉換。

用戶類別
  管理員:root,其用戶標識(UID)爲0。
  普通用戶
   系統用戶:爲了讓後臺進程和服務類進程能夠以非管理員身份運行,通常需要爲此創建多個普通用戶,此類用戶不需要登錄到系統中。
   登錄用戶:正常登錄及訪問系統時需要登錄的用戶賬號。

用戶標識:UserID,UID
 16bits:二進制數字:0-65535
  管理員:0
  普通用戶:1-65535
   系統用戶:1-499(CentOS6),1-999(CentOS7)
   登錄用戶:500-60000(CentOS6),1000-60000(CentOS7)

名稱解析:名稱轉換
 UserID<- ->UID
  根據名稱解析庫進行轉換:/etc/passwd

  • useradd:創建用戶
  • usermod:修改用戶屬性
  • userdel:刪除用戶
  • passwd:設置用戶的認證信息,包括用戶密碼、過期時間等。
  • change:更改用戶密碼過期信息
  • id: 顯示用戶的真實有效ID
  • chmod:可以更改用戶權限
  • chown:可以更改用戶屬主和屬組
  • chgrp:更改屬組
  • umask::文件的權限反向掩碼,遮罩碼;新建文件或目錄的權限是減去umask所得

4.2 組管理:groupadd,groupmod,groupdel,gpasswd,newgrp

  • groupadd:添加組
  • groupmod:修改組屬性
  • groupdel:刪除組
  • gpasswd:管理組
  • newgrp:臨時切換指定的組爲基本組

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章