查看文件權(quán)限
# 進入指定目錄
cd /test
# 查看文件夾內(nèi)所有文件權(quán)限
ls -l
# 或者使用ll查看文件權(quán)限
ll
為某個文件賦權(quán)限
權(quán)限各字符在Linux中所代表的含義
參考上圖:
在bin文件夾對應(yīng)的第一個參數(shù)是d,d 在 Linux 中代表該文件是一個目錄文件。
- 在 Linux 中第一個字符代表這個文件是目錄、文件或鏈接文件等等。
說明:
當為 d 則是目錄;
當為 - 則是文件;
若是 l 則表示為鏈接文檔(link file);
若是 b 則表示為裝置文件里面的可供儲存的接口設(shè)備(可隨機存取裝置);
若是 c 則表示為裝置文件里面的串行端口設(shè)備,例如鍵盤、鼠標(一次性讀取裝置)。
- 接下來的字符中,以三個為一組,且均為 rwx 的三個參數(shù)的組合。其中, r 代表可讀(read)、 w 代表可寫(write)、 x 代表可執(zhí)行(execute)。這三個權(quán)限的位置不會改變,如果沒有權(quán)限,就會出現(xiàn)減號 - 。
其權(quán)限對應(yīng)關(guān)系:
chgrp 和 chown
在Linux系統(tǒng)中,用戶是按組分類的,一個用戶屬于一個或多個組。文件所有者以外的用戶又可以分為文件所屬組的同組用戶和其他用戶。
Linux系統(tǒng)按文件所有者、文件所有者同組用戶和其他用戶來規(guī)定了不同的文件訪問權(quán)限。
# chgrp:更改文件屬組
# -R:遞歸更改文件屬組,就是在更改某個目錄文件的屬組時,如果加上-R的參數(shù),那么該目錄下的所有文件的屬組都會更改。
chgrp [-R] 屬組名 文件名
# chown:更改文件屬主,也可以同時更改文件屬組
chown [–R] 屬主名 文件名
chown [-R] 屬主名:屬組名 文件名
# 舉例: 將文件夾中test.log文件的擁有者改為test這個賬號
chown test test.log
# 舉例: 將test.log的擁有者與群組改回為root
chown root:root test.log
chmod
Linux文件屬性有兩種設(shè)置方法,一種是數(shù)字,一種是符號。
使用數(shù)字來代表各個權(quán)限,各權(quán)限的分數(shù)對照如下:
- r:4
- w:2
- x:1
每種身份(owner/group/others)各自的三個權(quán)限(r/w/x)分數(shù)是需要累加的,例如當權(quán)限為: -rwxrwx— 分數(shù)則是: - owner = rwx = 4+2+1 = 7
- group = rwx = 4+2+1 = 7
- others= — = 0+0+0 = 0
所以設(shè)定權(quán)限的變更時,該文件的權(quán)限數(shù)字就是 770。
# 變更權(quán)限指令
# xyz : 就是剛剛提到的數(shù)字類型的權(quán)限屬性,為 rwx 屬性數(shù)值的相加。
# -R : 進行遞歸(recursive)的持續(xù)變更,以及連同次目錄下的所有文件都會變更
chmod [-R] xyz 文件或目錄
# 舉例: 為文件1賦所有權(quán)限
sudo chmod -R 777 /test/file1
符號類型改變文件權(quán)限
u, g, o 來代表三種身份的權(quán)限, a 則代表 all,即全部的身份。讀寫的權(quán)限可以寫成 r, w, x。
命令 | 角色 | 動作 | 可使用字符 | 作用對象 |
---|---|---|---|---|
chmod | u | +(加入)/-(除去)/=(設(shè)定) | r、w、x | 文件或目錄 |
chmod | g | +(加入)/-(除去)/=(設(shè)定) | r、w、x | 文件或目錄 |
chmod | o | +(加入)/-(除去)/=(設(shè)定) | r、w、x | 文件或目錄 |
chmod | a | +(加入)/-(除去)/=(設(shè)定)) | r、w、x | 文件或目錄 |
# 舉例 修改 test1 權(quán)限為-rwxr-xr--
chmod u=rwx,g=rx,o=r test1
# 舉例 給所有用戶賦讀寫權(quán)限,但不賦執(zhí)行權(quán)限
chmod a-x test1
批量替換文件中的內(nèi)容
vi/vim 替換(需打開文件)
- vi/vim 中可以使用 冒號( : ) ? 小寫字母( s )來替換字符串。
冒號( : ) ? 小寫字母( s )/well/good/g 替換當前行所有 well 為 good
直接替換文件中的字符串(不用打開文件,且可以批量替換多個文件)
perl命令替換,參數(shù)含義如下:文章來源:http://www.zghlxwxcb.cn/news/detail-775231.html
- -a 自動分隔模式,用空格分隔$_并保存到@F中。相當于@F = split ”。分隔符可以使用-F參數(shù)指定
- -F 指定-a的分隔符,可以使用正則表達式
- -e 執(zhí)行指定的腳本。
- -i<擴展名> 原地替換文件,并將舊文件用指定的擴展名備份。不指定擴展名則不備份。
- -l 對輸入內(nèi)容自動chomp,對輸出內(nèi)容自動添加換行
- -n 自動循環(huán),相當于 while(<>) { 腳本; }
- -p 自動循環(huán)+自動輸出,相當于 while(<>) { 腳本; print; }
# 用法示例:將所有C程序中的foo替換成bar,舊文件備份成.bak
perl -p -i.bak -e 's/\bfoo\b/bar/g' *.c
# 將當前文件夾下lishan.txt和lishan.txt.bak中的“shan”都替換為“hua”
perl -p -i -e "s/shan/hua/g" ./lishan.txt ./lishan.txt.bak
# 將每個文件中出現(xiàn)的數(shù)值都加一
perl -i.bak -pe 's/(\d+)/ 1 + $1 /ge' file1 file2
sed 替換
sed命令下批量替換文件內(nèi)容文章來源地址http://www.zghlxwxcb.cn/news/detail-775231.html
# 語法:
sed -i "s/查找字段/替換字段/g" `grep 查找字段 -rl 路徑` 文件名
# 例如:我要把mahuinan替換 為huinanma,執(zhí)行命令:
sed -i "s/mahuinan/huinanma/g" 'grep mahuinan -rl /www'
- -i 表示inplace edit,就地修改文件
- -r 表示搜索子目錄
- -l 表示輸出匹配的文件名
- s表示替換,d表示刪除
# 示例 把當前目錄下lishan.txt里的shan都替換為hua
sed -i "s/shan/hua/g" lishan.txt
# 使用變量替換(使用雙引號)
sed -e "s/$var1/$var2/g" filename
perl 語法
find -name '要查找的文件名' | xargs perl -pi -e 's|被替換的字符串|替換后的字符串|g'
到了這里,關(guān)于Linux文件編輯、替換的常用命令的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!