linux 文件操作及chmod權限

文件操作

文件及目錄

  • 相關命令
命令 說明
touch 創建文件,可以一次性創建多個文件
rm 刪除文件或目錄(需要加-r選項)
cp 拷貝文件或目錄(需要加-r選項)
mv 移動文件或目錄
mkdir 創建目錄
rmdir 刪除目錄,只能是空目錄

- 選項說明

  • -f:表示強制,默認刪除操作是給予提示,添加此選項就不再提示
  • *:表示模糊匹配任意
  • -r:刪除或拷貝目錄時的遞歸操作
  • -p:創建目錄時,需要創建中間目錄,例:mkdir -p 1/2/3

文件流操作(sed)

  • 格式

    sed [選項/參數] 指令 文件
    -n:結合p一起使用
    -i:修改原文件,默認只會將內容顯示到緩衝區
  • 指令

    a:新增
    d:刪除
    p:結合-n一起使用,用來顯示一行
    c:取代
    s:替換指定的內容
  • 實例

    sed '1a xxxxxx' 1.txt             #在第1行的下面添加內容‘xxxxx’,不會改變原文件
    sed -i '1a xxxxx' 1.txt           #在第1行的下面添加內容‘xxxxx’,直接改變原文件
    sed '1,3a xxxxx' 1.txt            #在第1行到第3行的下面添加內容‘xxxxx’,不會改變原文件
    sed -i '2d' 1.txt                   #刪除第2行的內容
    sed '2,$d' 1.txt               #刪除從第2行到末尾的所有內容
    sed -n '2p' 1.txt               #顯示第2行的內容
    sed -n '2,$p' 1.txt                #顯示從第2行到末尾的內容
    sed '1c XXX' 1.txt                  #用XXX取代第一行的內容
    sed '1,3c XXX' 1.txt            #用XXX整體取代1-3行的內容
    sed 's/潘瑋柏/pwb/g' 1.txt           #用'pwb'全局替換‘潘瑋柏’
    sed '4,5s/潘瑋柏/pwb/g' 1.txt        #用'pwb'替換4-5行的‘潘瑋柏’

查看文件

  • 相關命令
命令 說明
cat 從上到下,順序顯示全部內容
tac 從下到上,逆序顯示全部內容
head 顯示開頭的幾行,默認10行,使用‘-n’,n表示要顯示的行數,例:head -3 1.txt
tail 顯示末尾的幾行,用法同head
nl 功能同cat,額外顯示行號
wc 統計顯示,行數 | 單詞數 | 字節數 | 文件名
more 一點一點顯示內容
less 一點一點顯示內容

- more和less使用說明

  • 顯示一屏就會停止
  • q退出查看
  • 空格下翻一頁
  • 回車下翻一行
  • more查看完畢時會自動退出,而less不會
  • less比more多了上下按鍵單行的查看
  • 通常更多的情況是結合管道,如:ls -l /etc | more,將輸出的結果作爲more的參數

用戶和用戶組

  • 相關命令
命令 說明
whoami 查看當前登錄用戶
useradd 添加用戶,會在/home目錄創建一個與用戶名相同的文件夾
userdel 刪除用戶
su [-] 切換到指定用戶,默認root。帶’-‘會將shell環境也進行切換
sudo 以指定用戶(默認root)執行命令,但是並不會切換用戶,如:sudo 命令
passwd 設置指定用戶密碼,默認設置root用戶,只有root用戶纔有權限
groupadd 添加用戶組
groupdel 刪除用戶組
gpasswd 向羣組添加/刪除指定用戶,如:gpasswd -a/-d test hello
chown 修改文件擁有者[及所屬組],如:chown test[:test] 1.txt
chgrp 修改文件所屬組,如:chgrp root 1.txt
chsh 修改用戶的shell,chsh test -s /sbin/nologin

- 特殊文件

  • /etc/passwd,改文件存放了系統中所有的用戶信息,一行表示一個用戶,具體解釋:

    用戶名:密碼:用戶ID:用戶組ID:描述:家目錄:shell
  • /etc/group,改文件存放了系統中所有的用戶組信息,一行表示一個用戶組,具體解釋:

    羣組名:口令:組ID:組員               #口令處的x或空白都表示沒有密碼
  • /ect/shadow,用戶密碼文件,依附於/etc/passwd,但是並不是由該文件生成。

    • 使用說明
  • 用戶以及用戶組ID通常要大於500,小於500的系統已佔用

  • 創建用戶時
    • 禁止登陸:useradd test -s /sbin/nologin
    • 指定UID:useradd test -u 600
    • 指定家目錄:useradd test -d /xxx/yyy
  • 修改用戶shell,chsh test -s /sbin/nologin
  • 用戶身份標識:普通用戶$,超級用戶#
  • 修改所有者時加’-R’,會進行遞歸操作
  • 在使用用戶名和用戶組的地方通常可以使用UID和GID替代

文件權限

  • 說明:linux的權限有所有者、所屬組、其它的概念

  • 權限:所有文件都涉及,可讀(r)、可寫(w)、可執行(x),-表示沒有對應權限

  • 原理:在ls -l查看的結果集中,第一項表示權限,分爲3組,分別對應所有者、所屬組、其它

  • 修改文件權限,使用命令chmod,格式:chmod [身份] [修改] [權限]

選項 說明
身份
u 用有者
g 所屬組
o 其它
a 所有
修改
+ 添加
- 去掉
= 設置
權限
r 可讀
w 可寫
x 可執行

- chmod使用說明:-R表示遞歸操作

  • 本質:使用一組(3位)八進制的數來表示權限(421),如:0755,詳解如下:

    轉換爲二進制:0755 => 111        101     101
    對應三個身份:          擁有者    所屬組   其它
    每一組都有權限:  可讀、可寫、可執行
    權限描述:擁有者可讀可寫可執行,所屬組可讀可執行,其它可讀可執行
  • 簡寫:chmod 0755 1.txt

掩碼(umask)

  • 作用:限定了新建文件的默認權限,實際的權限與掩碼相反(普通文件減去可執行權限)

  • 命令:umask [value],查看或設置掩碼,不加value表示查看

  • 實例分析

    掩碼爲:0022 => 000 010 010
    新建目錄權限:   111 101 101
    新建文件權限:  110 100 100,因爲文件沒有必要默認就有可執行的權限
  • 命令的修改是臨時的,修改配置文件才能永久生效

    全局配置:/etc/profile 
    單個用戶:~/.profile 或者 ~/.bash_profile,優先級高於全局配置

特殊屬性

  • 有時候root都無法修改一個文件,多半是添加了特殊權限,可以使用lsattr查看,使用chattr修改,其中最重要的一個權限是保護權限,就是不能更改(immutable),方式誤刪除

  • 使用實例

    lsattr:查看特殊屬性
    chattr:修改特殊屬性,+表示添加,-表示去掉,i表示不可更改
    chattr -i file
    chattr +i file

鏈接文件

  • 命令:ln

  • 作用:創建一個文件或目錄的鏈接

  • 格式:ln [-s] 原文件 新名稱

  • 說明:使用ls -l查看時,文件類型爲’l’的就是軟鏈接

    硬鏈接:創建鏈接時不加-s參數,相當於一個文件有幾個名字,極少用到
    1.鏈接文件的用戶級組信息不變
    2.不能給目錄添加
    3.不能跨文件系統
    軟鏈接:創建鏈接時添加-s參數,一個文件保存了另一個文件的路徑,類似於windows的快捷方式
    1.軟鏈接文件的用戶及組信息爲當前用戶及組
    2.可以給目錄添加
    3.可以跨文件系統
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章