0805課堂筆記
基本權限
讀,寫,執行
對于文件的讀權限,能否查看文件內容.(文件內容需不需要看,如果是文本就需要看,如果是二進制就不需要看)
對于文件的寫權限,能否修改文件內容,不能修改文件名,不能刪除文件.(如果需要修改文件內容和文件名,必須在其父目錄增加寫權限和執行權限)
對于文件的執行權限,能否運行他.
對于目錄的讀權限,能否查看目錄中的文件列表,如果只有讀權限,也只能看到文件列表的名稱,如果沒有執行權限,將只能查看文件列表,而不能查看其內容,所以必須要配合執行權限
大寫X權限如果作用在目錄上,加上-R選項,將會遞歸在該目錄下的所有文件,這時候X就會判斷父目錄下的所有文件或目錄,如果是目錄就會帶x權限,如果是文件將會判斷其是否有X權限,如果有則會加,沒有則無X權限.(大X權限只能使用模式法,不能使用數字法)
數字法讀寫執行權限對應數字
讀read 4
寫write 2
執行executo 1
指定文件的所屬組所有者
更改所有者
chown
(chown同樣可以修改所屬組.如:chown :g1 file 偶然
dir 這種寫法就可以修改所屬組為g1)
更改所屬組
chgrp
修改權限命令
chmod
新建文件的權限由umask決定
root的umask 022
user:002
越大的umask值權限越小.
文件的默認權限
file default = 666-umask
奇數+1
如果是奇數將會屏蔽不掉x權限,而umask的作用就是為了屏蔽掉x權限.
目錄的默認權限
dir default = 777-umask
umask的定義可以在家目錄下的.bash_profile或.bashrc中
全局定義在/etc/bashrc或/etc/profile
chattr
+i 不能更改或刪除
+a 只能增加
+A Access訪問時間鎖定
lsattr
查看文件附加權限
特殊權限
suid 工作在二進制文件,必須是文件,不能是目錄(因為如果工作在目錄將沒有意義),普通用戶運行這個文件將會繼承文件所有者的身份,所以所有者身份必須帶有x權限.
sgid 可以作用與文件或者目錄,作用在文件上跟suid差不多,但是繼承的是文件所屬組的權限,作用在目錄上的話,
sticky可以作用與目錄上,其作用就是只有root和普通用戶才能刪除目錄中所有者是自己的文件.
(文件擁有Suid,Sgid,Skicky位時,必須擁有X權限,如果沒有,將會顯示大寫的SST,因為如果沒有那么suid和sgid,skicy將沒有意義)
文件權限的應用順序
所有者,自定義的ACL記錄(自定義用戶,自定義組),group(定義了ACL之后組就是mask),other
訪問控制列表(ACL)
getfacl file|directory 查看文件或目錄的ACL權限
setfacl –m u:wang:rwx file | directory 增加文件用戶wangACL權限
setfacl –Rm g:sales:rwX directory 遞歸ACL權限給sales組到這個目錄
setacl –M file.acl file|directory 通過文本模式增加ACL權限給文件或目錄
setfacl –m g:salegroup:rw file:directory 增加文件或目錄salegroup組的ACL權限
setfacl –m d:u:wang:rx directory 增加某個目錄下新建文件默認的ACL權限是rx
setfacl –x u:wang file |directory 根據指定ACL權限來刪除
setfacl –X file.acl directory 通過文本模式刪除acl權限
setfacl –b file|directory 清空所有acl權限和記錄
文本處理工具
抽取文本內容:less和cat
more:分頁查看文件
more [OPTIONS…]FILE…
-d 顯示翻頁及退出提示
less:一頁一頁地查看文件或STDIN輸出
查看時有用的命令包括
/文本 搜索 文本
n/N 跳到下一個 or 上一個匹配
less 命令是man命令使用的分頁器
文件查看命令:cat,tac,rev
-E 顯示行結束符$
-n 對顯示的每一行進行編號
-A 顯示所有控制符 是-vET的組合
-b 非空行編號
-s 壓縮的連續的空行成一行
-T 查看Tap符號^I
-v 查看windows下的回車^M
tac 按行來倒置顯示
rev 按行來反向顯示每一個字符
如: cat f1
1234
abcd
tac f1
abcd
1234
rev f1
4321
dcba
hexdump 查看文件十六進制編碼
文件截取:head和tail
head 查看文件內容前幾行
head –n 3 查看內容前3行
tail –n 3 查看內容后3行
不帶選項的默認查看前10行或后10行
tail –f 跟蹤顯示文件新追加的內容,常用日志監控(缺點無法在進行其他的工作)
在后面增加&可以在后臺執行
tail –n 0 var/message &
fg將后臺執行的命令放到前臺來關閉他
-c 顯示最后幾個字節
按列抽取:cut
cut [OPTION…] [FILE…]
-d DELIMITER:指明分隔符,默認tab
-f FILEDS:
#:第#個字段
#,#[,#]:離散的多個字段,例如1,3,6
#-#: 連續的多個字段,例如1-6
-c 按字符切割
–output-delimiter=STRING知道你跟輸出分隔符
顯示文件或STDIN數據的指定列
cut –d: -f1 /etc/passwd
取passwd文件中以:分隔符取第一列內容
cat /etc/passwd | cut –d: -f7
取passwd文件中以:分隔符第七列內容
cut –c2-5 /usr/share/dict/words
取words 文件中 字符2-5列的內容
paste 合并兩個文件同行號的列到一行
paste [OPTION]… [FILE]…
-d 分隔符:指定分隔符,默認用TAB
paste f1 f2
-s: 所有行合成一行顯示
paste –s f1 f2
文本數據的統計工具
wc(word count)
-m 統計字符
整理文本:sort
把整理過的文本顯示在STDOUT,不改變原始文件
sort [options] files
常用選項
-r 執行反方向(由上至下)整理
-n 執行按數字大小整理
-f 選項忽略(fold)字符串中的字符大小寫
-u 選項(獨特,unique)刪除輸出中的重復行
-t c 選項使用c作為字段界定符
-k X 選項按照使用c字符分隔的X列來整理能夠使用多次
uniq命令:從輸入中刪除重復的前后相接的行
uniq [OPTIONS]… [FILE]…
-c 顯示每行重復出現的次數
-d 僅顯示重復過的行
-u 僅顯示不曾重復的行
常和sort命令一起配合使用:
sort userlist.txt | uniq –c
比較文件:diff和patch
diff 命令的輸出被保存在一種叫做”補丁”的文件中
使用-u 選項來輸出”同意的(unifed)”diff格式文件,最適用于補丁文件
patch 命令復制在其他文件中進行的改變(要謹慎使用!)
適用-b 選項來自動備份改變了的文件
如
diff –u foo.conf-broken foo.conf-works > foo.patch
patch –b foo.conf-broken foo.patch
按關鍵字抽取:grep
linux上文本處理三劍客:grep,sed,awk
grep:文本過濾(pattern)工具;
gred,egrep,[fgrep(不支持正則表達式搜索)]
正則表達式
REGEXP:由一類特殊字符及文本字符所編寫的模式,其中有些字符(元字符)不表示字符字面意義.而表示控制或通配的功能
程序支持:grep,vim,less,nginx等
分兩類:
基本正則表達式: BRE
擴展正則表達式:ERE
grep –E,egrep
正則表達式引擎:
采用不同算法,檢查處理正則表達式的軟件模塊
PCRE(Perl Compatible Regular Expressions)
元字符分類:字符匹配,匹配字數,位置錨定,分組
man 7 regex
grep的工具名Global search Regular expression and Printout the line (全局搜索正則表達式并且打印出相印的行)
作用:文本搜索工具,根據用戶指定的”模式”對目標文本逐行進行匹配檢查:打印匹配到的行;
模式:由正則表達式字符及文本字符所編的過濾條件
如
grep [OPTIONS] PATTERN[FILE…]
grep rot /etc/passwd
grep “$USER”/etc/passwd
grep ‘$USER’/etc/passwd
grep `whoami` /etc/passwd
-v 顯示不能夠被patern匹配到的行
-I 忽略字符大小寫
-n 顯示匹配到的行號
-c 統計匹配的行數
-o 僅顯示匹配到的字符串
-q 靜默模式,不輸出任何信息
grep –q root /etc/passwd
找到找不到都不顯示,配合echo $? 使用,如果顯示0說明找到,如果顯示為1說明沒找到
-A #:after,后#行
-B #:before,前#行
-C #:context,前后各#行
-e 實現多個選項間的邏輯or關系
grep –e `cat` -e `dog` file
-w整行匹配整個單詞
-E 使用ERE
字符匹配:
. :匹配任意單個字符
[]:匹配指定范圍內的任意單個字符
[^]:匹配指定范圍外額任意單個字符
[:digit:][:lower:][:upper:][:alpha:][:alnum:][:punct:][:space:]
匹配次數:用在要指定次數的字符后面,用于指定前面的字符要出現的次數
*: 匹配前面的字符一次,包括0次
貪婪模式:盡可能長的匹配
.*:任意長度的任意字符
\?:匹配其前面的字符0或1次
\+:匹配其前面的字符至少1次
\{n\}:匹配前面的字符n次
\{m,n\}:匹配前面的字符至少m次,至多n次
\{,\n}:匹配前面的字符至多n次
\{n,\}:匹配前面的字符至少n次
sed:stream editor,文本編輯工具
awk: linux上的實現gawk,文本報告生成器
原創文章,作者:Kartik,如若轉載,請注明出處:http://www.www58058.com/31865