硬鏈接inode
1.inode table索引節點表
2.每個文件有一個獨立的編號指向數據,在分區中inode
編號是唯一的
3.一個節點號對應多個文件的名字
4.硬鏈接不能根據目錄來創建
5.用ll -i可以查看inode編號
6.命令:
ln 鏈接源文件 鏈接文件名
7.每個硬鏈接都不是依附關系
軟鏈接
相當於文件的快捷方式,軟鏈接的文件數據內容記錄的是源文件的路徑
1.一個符號鏈接指向另一個文件
命令:
ln -s 鏈接源文件 鏈接文件名
注意:鏈接源文件的路徑是相對於鏈接文件名的,可以寫相對路徑也可以寫絕對路徑,寫相對路徑時一定是相對於鏈接文件的
標准I/O
linux的三種i/o
1.標准輸入 stdin 0
2.標准輸出 stdout 1
3.標准錯誤 stderr 2
I/O重定向
>,>>,&>
>表示覆蓋重定向
>>表示追加重定向
&>將標准輸出和錯誤輸出共同重定向
將多條命令一起重定向用()將多條命令擴起來
例1:
ls > /tmp/ls.log
例2
ls >> /tmp/ls.log
例3
(pwd;ls) > /tmp/all.log
<:表示從哪個文件讀取
例1
cat < /tmp/ls.log
也可以將輸入輸出重定向組合使用
例2
cat < /tmp/ls.log > /tmp/ls2.log
運用實例:mail
給其他用戶發送mail
命令:mail -s 郵件標題 用戶
連續輸入 用<<自定義字母 一般用EOF表示
例:
mail -s hello user << EOF
a
b
c
EOF――――以哪個自定義字母開頭就要以哪個自定義字母結束
管道符 |
將前一個命令的輸出當做後面命令的輸入
tr命令:用於替換某個字符,包括數字,特殊字符和字母
tr '要替換的字符' '替換後的字符'
-d: 刪除某個字符
-c: 字符的補集(除了那些字符之外)
可以與管道|配合使用
例1:
ls | tr 'a-z' 'A-Z'
將小寫字母轉換成大寫字母,通配符也適用
例2:
ls | tr -d 'abc'
刪除abc的全部字符
例3:
ls | tr -c 'abc'
除了abc字符外的字符全部刪除
tee:
雙重輸出
例1:
ls | tee /tmp/f1
將ls命令即輸出到/tmp/f1又輸出到屏幕上
注意:重定向後的文件對於源文件沒有什麼修改,只是將輸出的內容重定向
擴展:
/dev/null:將文件重定向到這個文件中,將不會有任何輸出
例:
echo 12345 | passwd --stdin user > /dev/null
修改密碼的過程需要隱藏,重定向到/dev/null後將不會有任何提示
用戶:
用戶分類
1. 系統用戶 centos6 uid 0-499
centos7 uid 0-999
守護進程權限
2. 登陸用戶centos6 uid 500+
centos7 uid 1000+
3. 管理員: root uid 0
安全上下文:
以發起者的權限運行程序
組:
分類:
1. 主組:只有一個,與用戶名相同
2. 附加組; 可以有多個附加組
在/etc/group下最後一個域記錄附加組信息
附加組繼承了組內的權限
主要配置文件:
/etc/passwd
用戶名:密碼(存放於shadow文件中):屬主:屬組:描述信息:家目錄:shell
/etc/shadow
用戶名:密碼:最近一次修改時間:最短修改時間:最長修改時間:警告時間:寬限時間:失效時間:保留
/etc/group
組名:密碼:組id:用戶列表
/etc/gshadow
組名:密碼:組管理員的賬號:組成員
如果沒有組管理員,那麼root行使權限
擴展1:更改用戶shell
chsh:
chsh -s /bin/csh user
擴展2:切換組newgrp
newgrp 組名
切換時需要輸入組的密碼
組更改口令:
gpasswd + 組名
或者getent gshadow 組名
文件的操作:
vipw = vi /etc/passwd
vigr = vi /etc/group
用於修改文件
pwck:用於檢查用戶文件格式
grpck: 用於檢查組文件格式
命令:
useradd:添加用戶
-u:指定uid
-o:配合-u使用同一uid不同用戶,實際用戶權限一樣
-g:指定gid主組 useradd -g 組名 用戶名
-G:指定附加組
-d:指定家目錄路徑
-m:新建家目錄
-M:不創建家目錄
-s:指定shell類型
-r:創建系統用戶
-N:不創建主組,自動屬於users組
創建用戶的過程,實際上就是把/etc/skel文件為默認模板進行修改創建
useradd -D可以修改默認模板