天天看點

Linux運維學習-5——2016年7月29日五 标準輸入和輸出使用者、組和權限

格式說明:

操作

概念

指令      
說明及舉例

五 

索引節點

原資料儲存在inode table表中

每個檔案或目錄都有一個獨立的inode number(節點編号在一個分區中是唯一的,每個分區都有自己的inode table)

ls -i 檢視節點編号      

硬連結

ln f1 dir/f11 為f1檔案建立硬連結并放到dir檔案夾下,名稱為f11.跨裝置跨分區不能建立。      

連結數=檔案名字的數量,為一個檔案建立多個硬連結相當于給一個檔案取了多個名字,修改任何一個檔案都等于全部修改,删除其中一個硬連結,隻相當于删除了這檔案的名字之一

目錄不能建立硬連結

軟連接配接(符号連結)

ln -s f2 f2kuaijiefangshi 為f2檔案建立軟連接配接f2kuaijiefangsh      

給檔案建立軟連接配接,相當于給檔案建立快捷方式,寫軟連結的時候,檔案的路徑必須寫清楚(相對于軟連接配接的路徑,而不是目前工作目錄的路徑),軟連接配接的路徑無所謂

inode表結構

前12個是資料塊,每個存4k,第13個是指針快,不直接指向資料塊,可存4kx1024=4M檔案;第14個是二重指針塊,後面跟兩個指針塊,可存4kx1024x024=4G檔案,以此類推.

df -i 查詢每個分區最大節點數及已用節點數量      

節點号消耗完也會提示磁盤空間滿了

練習:解釋cp rm mv指令的系統背景動作

file指令

flie -f +文檔 把想檢視的檔案目錄寫到文檔裡,可以都檢視      

标準輸入和輸出

标準輸出、錯誤

标準預設輸出在目前視窗,标準輸出錯誤也在目前視窗

重定向

ls > /dev/pts/0 在pts0視窗上顯示
ls > /testdir/ls.log 讓輸出内容重定向到ls.log檔案中(沒有這個檔案會建立,如果存在會覆寫)
ls >> /testdir/ls.log 将資訊寫到ls.log檔案中,保留原有内容      

>是重定向标準輸出的正确結果的; >=1>

2>是重定向錯誤資訊的

ls /dev /ddd > /tesedir/dui.log 2> /testdir/cuo.log 将指令中正确資訊寫到dui.log ,錯誤資訊寫到cuo.log

ls /dev /ddd &> /tesedir/all.log 把指令中所有标準輸出都寫到all.log裡

以上指令是覆寫

以下指令是累加

ls /dev /ddd >> /tesedir/dui.log 2>> /testdir/cuo.log 将指令中正确資訊寫到dui.log ,錯誤資訊寫到cuo.log

ls /dev /ddd &>> /tesedir/all.log 把指令中所有标準輸出都寫到all.log裡

多條指令重定向:用括号把多條指令括起來

标注輸入重定向

cat < f1 将f1裡的資訊輸出
cat < f1 > f2 将f1裡的資訊輸出到f2裡
cat f1 f2 > f3 将f1 f2的内容輸出到f3裡

mail -s hello wang 回車後寫内容,結束按.
wang 使用者 輸入mail
mail -s hello wang < f1.txt  将f1.txt中内容作為正文發送

多行重定向
cat <<E >f1 直到打結束的E 才重定向到f1中 (<<+關鍵字開始。再出現獨立的一行關鍵字結束)      

tr指令

轉換和删除字元

tr 'a-z' 'A-Z' 将所有輸入的小寫字母轉換成大寫字母    
tr 'a-z' 'A-Z' < f1 将f1 檔案中所有小寫字母轉換為大寫
r 'a-z' 'A-Z' < f1 > f2 将f1 檔案中所有小寫字母轉換為大寫并存到f2中(f1中内容不變)      

tr 'abc' 'xyz'

tr 'abc' 'xy'

tr 'ab' 'xyz'

tr -c 'a-z' 取反
tr -d 'abc' 有a/b/c的都幹掉
tr -d -c 'abc'  'xxx' < f1 将檔案f1 中的除了abc以外的字元都換成xxx

tr -s  ‘x’  合并重複的x為1個      

tr -d '\n' < f1 将f1檔案中的換行都幹掉

tr ' ' '\n' <f1 将f1檔案中的空格轉換城換行

mail -s help root <<end

Hello,I am 

whoami

the system version is here,please help me to check it,thanks!

< /etc/issue

end

管道

管道接收的是标準輸出,不能是标準錯誤

練習用管道讀文檔發郵件
ls /err |& tr 'a-z' 'A-Z' 不管前面是否是錯誤,都處理(|&=2>&1)
ls |tee f2  将ls輸出内容存到f2檔案,但是前台也顯示
重定向輸出資訊不想看的話最後加 /dev/null      

使用者、組和權限

組的類别

使用者的主要組-主組

使用者必須屬于一個且隻有一個主組

組名同使用者名,且僅包含,,, 

Linux中預設建立一個使用者wang,就會建立一個wang組,組裡隻有wang一個

檢視指令 id      

Linux使用者群組的配置檔案

/etc/passwd 

/etc/shadow 

例:m:$6$8BhKzFY7Pl02tuZK$M9ppDJCf6Y8sSx/kFGbmG6Mat/Z2JE.OJ6Mao.izesjpwW0t5MiFxxrtzwLrAwfP6/xvlZ7MG8Y4LeGIAd6Me0:17001:0:99999:7:::

$6=sha512加密算法 $1=md5加密算法 後面兩個$中間的玩意($8BhKzFY7Pl02tuZK$)是加的延,目的是即使相同密碼加密後也看不出來是相同 ;17001代表時間,後面的0表示随時可以改密碼,改成3就是3天以後才能改。後面難道99999代表有效期,7代表提前7天通知;倒數第二個可以填個數,代表此賬号的有效期,到時間自動鎖定,格式也是類似17001天。

轉載于:https://blog.51cto.com/11907399/1832974

繼續閱讀