管道符:cmd1 輸出
cmd2 輸入
cmd1 | cmd2
如果想將錯誤信息傳給cmd2
cmd1 |& cmd2 或 cmd1 2>&1| cmd2
加上 >
2>
<
&>
就是重定向
<< key
與用戶名和組相關的
/etc/passwd
/etc/shadow 放用戶口令的
/etc/group
/etc/gshadow
以上可以用cat查看也可以用
getent passwd|shadow|group|gshadow
前提是必須是root尤其是 shadow ,gshadow
上一節課講到用戶賬號和組賬號可以同名
也就是 UID=GID ,一般用戶創建賬號時是默認創建一個和他同名的組作為主組,即uid和主組相同
在Linux中默認一個uid=0的號即root ,并且gid=0的也叫root的組
如果把liang號 UID設為0 就可以獲得和root一樣的權限
準確的說ID為0的就是管理員
我們把用戶加到組里面就會繼承組的權限
工作中 一般先建一個賬號
useradd -s /sbin/nologin -r -d /data/mysql -m -u1234 mysql
-s shell類型 nologin給某個服務用的,一般都是系統賬號 -d指定家目錄,后面跟指定目錄。 -r 一旦加上就不會建家目錄,郵箱也不會生成,如果想建家目錄加上-m 后面跟指定用戶名 -u指定UID如果在多臺服務器上建賬號不指定UID 系統會隨機分配,管理麻煩
usermem
userdel 帶-r選項會把郵箱一起刪
2文件的權限
read r 讀
write w 寫
excute x 執行
讀文件 要確保文件可讀才行 如果是二進制文件讀取后會把系統弄亂碼 ,
解決辦法exit logout 或CTRL+D 或敲命令reset(重置字符)
讀寫文件一般針對文本說的
執行列外 執行:當程序運行
改所有者 chown wang f1 更改f1的所有者為wang
查組的列表 getent group
改所有組 chgrp rpc f1 更改f1的所有組為rpc
建兩個組 #groupadd g1
#groupadd g2
把wang用戶加到g1組里 有三種方法
#groupmems -a wang -g g1
#usermod -aG g2 wang 給wang建一個叫g2的附加組 如果沒有a 將會把上一個附加組g1覆蓋抹去
列如
[root@liang data 21:00:42]#id wang
uid=502(wang) gid=504(wang) groups=504(wang)
[root@liang data 21:08:11]#groupmems -a wang -g g1
[root@liang data 21:16:11]#id wang
uid=502(wa
ng) gid=504(wang) groups=504(wang),501(g1)
[root@liang data 21:16:18]#usermod -aG g2 wang
[root@liang data 21:16:50]#id wang
uid=502(wang) gid=504(wang) groups=504(wang),501(g1),502(g2)
普通賬號無法改變UID
列如
[root@liang data 21:19:10]#su wang
[wang@liang data 21:19:25]$ll
total 16
-rw-r–r–. 1 wang root 0 Apr 4 20:53 f1
drwx——. 2 root root 16384 Apr 2 19:54 lost+found
[wang@liang data 21:19:30]$chown mage f1
chown: changing ownership of `f1′: Operation not permitted
可以改變GID 前提是文件是所有者的,并且必須要在這個組里
例如
[wang@liang data 21:20:08]$chgrp g1 f1
[wang@liang data 21:24:17]$ll f1
-rw-r–r–. 1 wang g1 0 Apr 4 20:53 f1
繼承的組權限是一樣的
相對于普通用戶 。
通過這 我們把將要訪問f1文件的 人 分成 三類人
第一類 文件的所有者 權限最大
第二類 所加入的 所屬于的組 權限相對小
第三類 other 權限最嚴
如何對三類人 授權
1 chmod change mode
方法 :mode 法
chmod who opt per file chmod跟上對誰操作who 做什么操作opt 針對他授予什么權限per 跟上文件file
who :u g o a(all)
opt : + – =
per :r w x X X特殊權限
chmod u+x,file
chmod u+x,g-w,o= file
例如
[wang@liang data 21:54:06]$ll f1
-rw-r—–. 1 wang g1 0 Apr 4 20:53 f1
[wang@liang data 21:54:35]$chmod u= f1
[wang@liang data 21:54:44]$ll f1
—-r—–. 1 wang g1 0 Apr 4 20:53 f1
普通用戶讀寫執行 有限制
刪除文件不是對文件的權限 而是對目錄的
方法2: 數字法
u g o
rwx rw- r–
111 110 100
421 42 4
7 6 4
chmod 421 f1
chmod -R 422 dir1 更改dir1下的所有文件的權限為422
umask 取消對應的權限 mask 掩碼
設為多少
新建的文件的權限就是666-umask值剩下的數,但是 如果是奇數+1 偶數不變
新建的文件夾的權限是777-umask值剩下的數。
例如
[root@liang data ]#umask 251
[root@liang data ]#mkdir dir2
[root@liang data ]#ll
total 0
drwxrwxrwx. 2 liang liang 27 Apr 5 16:29 dir1
dr-x-w-rw-. 2 root root 6 Apr 5 17:05 dir2
[root@liang data ]#touch f1
[root@liang data ]#ll
total 0
drwxrwxrwx. 2 liang liang 27 Apr 5 16:29 dir1
dr-x-w-rw-. 2 root root 6 Apr 5 17:05 dir2
-r—w-rw-. 1 root root 0 Apr 5 17:05 f1
在Linux中要想存的住就要放在文件里
所以umask值可以存在 .bashrc 中
-p
#umask -p >>.bashrc
-s
#umask -s
u=rwx g=rw o=r
可以直接看到設置的 不用算 我們也可以這樣
#umsak u=rwx g=r o=rw 這樣設置也可以
文本處理工具 cat
cat [OPTION] …[FILE]
-E:顯示行結束符$
-n:對顯示出的每一行進行編號
-A:顯示所有控制符
-b:非空行編號
-s:壓縮連續的空行成一行
tac
豎著反寫功能
rev
橫著反寫
more 相當于空格 用于翻頁
less 也用于翻頁
head 顯示文件的頭
head -n2 前兩行
head -c12 前12個字符
tail
tail -n2 后兩行
tail -f /etc/ss 跟蹤/etc/ss 的頁面
-F
tailf 相當于tail -f
cut 取列
cut -d: -f 1 取以:為分隔符的第一列
cut -c4-6 取4-6列的字符
paste 將兩個文件的內容橫著合并 同一行的合到一起
paste f1 f2 把f1和f2橫著合并一起
cat f1 f2 把f1和f2 豎著合并一起
paste -s f1 f2 把f1的內容合成一行做成第一行再把f2的內容合成一行作為第二行 ,把兩個合成一起顯示出來
wc 顯示文件內容有幾行 多少個字節 多少個單詞
一般 ls -l | wc
wc -w file file 中有多少個單詞
-c 字節
-m 字符
-L 顯示最長的行的字節符
-l 有多少行
sort 取出列 并排序
sort -t: k 1 /etc/passwd 對/etc/passwd 以:為分隔符第1列 的字符 排序
sort -t: k 1 -n /etc/passwd 對 /etc/passwd 以:為分隔符第1列 的數字 排序
sort -t: k 1 -nr /etc/passwd 對/etc/passwd 以:為分隔符第1列 的數字 倒序排序
-n 數字排序 排序后可以跟 | head -n1 取第一行 就是取最大值
-u 把重復的刪除留下單個的
-n
-f 忽略大小寫
uniq 刪除相鄰的相同的行
uniq -c 顯示幾行合并到一起
-u 僅顯示不重復的行
-d 僅顯示重復的行
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95112