文件操作
文件及目錄
- 相關命令
命令 | 說明 |
---|---|
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.可以跨文件系統