第二周第一天任務(wù)
*日期:2017-05-23
1.5 文件查看命令
1.6 文件和目錄屬性
1.7 chmod命令
1.8 chown命令
權(quán)限部分是難點(diǎn)蟹地,多多練習(xí)箱季,學(xué)會(huì)如何根據(jù)umask推算默認(rèn)權(quán)限玄柏。
如果學(xué)過兼呵,要復(fù)習(xí)一下畸写,加深印象驮瞧。晚上主動(dòng)匯報(bào)專貼,表示自己學(xué)了枯芬。
[TOC]
02.1.5 文件查看命令
cat 直接讀取文件內(nèi)容论笔,從前向后查看;
? cat -A 主要讀取特殊文件千所,后面會(huì)一個(gè)$
符號起便,意思是這行的結(jié)束抖部;注意:這里必須是大寫 -A挖藏。
例如:
[root@bogon ~]#
[root@bogon ~]# ls
111 222 anaconda-ks.cfg install.log.syslog
123.txt 234 install.log
[root@bogon ~]# cat install.log
cat --help
[root@bogon ~]# cat --help
用法:cat [選項(xiàng)]... [文件]...
將[文件]或標(biāo)準(zhǔn)輸入組合輸出到標(biāo)準(zhǔn)輸出循衰。
-A, --show-all 等于-vET
-b, --number-nonblank 對非空輸出行編號
-e 等于-vE
-E, --show-ends 在每行結(jié)束處顯示"$"
-n, --number 對輸出的所有行編號
-s, --squeeze-blank 不輸出多行空行
-t 與-vT 等價(jià)
-T, --show-tabs 將跳格字符顯示為^I
-u (被忽略)
-v, --show-nonprinting 使用^ 和M- 引用,除了LFD和 TAB 之外
--help 顯示此幫助信息并退出
--version 顯示版本信息并退出
如果沒有指定文件待错,或者文件為"-"籽孙,則從標(biāo)準(zhǔn)輸入讀取。
示例:
cat f - g 先輸出f 的內(nèi)容火俄,然后輸出標(biāo)準(zhǔn)輸入的內(nèi)容犯建,最后輸出g 的內(nèi)容。
cat 將標(biāo)準(zhǔn)輸入的內(nèi)容復(fù)制到標(biāo)準(zhǔn)輸出瓜客。
請向bug-coreutils@gnu.org 報(bào)告cat 的錯(cuò)誤
GNU coreutils 項(xiàng)目主頁:<http://www.gnu.org/software/coreutils/>
GNU 軟件一般性幫助:<http://www.gnu.org/gethelp/>
請向<http://translationproject.org/team/zh_CN.html> 報(bào)告cat 的翻譯錯(cuò)誤
要獲取完整文檔适瓦,請運(yùn)行:info coreutils 'cat invocation'
[root@bogon ~]#
tac 直接讀取文件內(nèi)容沟启,從后向前查看;
對比:
[root@bogon ~]# cat install.log
[root@bogon ~]# tac install.log
兩個(gè)的顯示順序是相反的犹菇;
tac --help
[root@bogon ~]# tac --help
用法:tac [選項(xiàng)]... [文件]...
將每個(gè)指定文件按行倒置并寫到標(biāo)準(zhǔn)輸出。
如果不指定文件芽卿,或文件為"-"揭芍,則從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù)。
長選項(xiàng)必須使用的參數(shù)對于短選項(xiàng)時(shí)也是必需使用的卸例。
-b, --before 在行前而非行尾添加分隔標(biāo)志
-r, --regex 將分隔標(biāo)志視作正則表達(dá)式來解析
-s, --separator=字符串 使用指定字符串代替換行作為分隔標(biāo)志
--help 顯示此幫助信息并退出
--version 顯示版本信息并退出
請向bug-coreutils@gnu.org 報(bào)告tac 的錯(cuò)誤
GNU coreutils 項(xiàng)目主頁:<http://www.gnu.org/software/coreutils/>
GNU 軟件一般性幫助:<http://www.gnu.org/gethelp/>
請向<http://translationproject.org/team/zh_CN.html> 報(bào)告tac 的翻譯錯(cuò)誤
要獲取完整文檔称杨,請運(yùn)行:info coreutils 'tac invocation'
[root@bogon ~]#
more 只能向下翻,
空格可以一屏一屏翻筷转,
回車是一行一行翻姑原,
b向上翻頁和f向下翻頁
q鍵退出
例如:
[root@bogon ~]# cp /etc/init.d/iptables 1.txt
[root@bogon ~]# cat 1.txt
less
空格可以一屏一屏翻,
回車是一行一行翻呜舒,
j可以往下一行锭汛,
k可以向上一行,
Ctrl B 向上 一屏幕袭蝗,
Ctrl F 向下 一屏幕
g 跳到最前面一行
G 跳到最后面一行
還可以搜索關(guān)鍵字唤殴,使用/內(nèi)容 就可以高亮顯示, n 向后 N向上 還可以到腥?搜索 與/相反 退出使用q 或者exit b和f翻頁
例如:
[root@bogon ~]# cat 1.txt
輸入:/關(guān)鍵字
或者使用:“shift+朵逝?”
這兩個(gè)的區(qū)別在與查找的方向不一樣,
head 最前面的幾行
Ctrl C 退出
例如:默認(rèn)查看前10行:
[root@bogon ~]# head 1.txt
#!/bin/sh
#
# iptables Start iptables firewall
#
# chkconfig: 2345 08 92
# description: Starts, stops and saves iptables firewall
#
# config: /etc/sysconfig/iptables
# config: /etc/sysconfig/iptables-config
#
[root@bogon ~]# head -3 1.txt
#!/bin/sh
#
# iptables Start iptables firewall
[root@bogon ~]#
tail 最后面的幾行
Ctrl C 退出
例如:查看后5行
[root@bogon ~]# tail 1.txt
save
RETVAL=$?
;;
*)
echo $"Usage: ${IPTABLES} {start|stop|reload|restart|condrestart|status|panic|save}"
RETVAL=2
;;
esac
exit $RETVAL
[root@bogon ~]# tail -5 1.txt
RETVAL=2
;;
esac
exit $RETVAL
[root@bogon ~]#
tail -f可以動(dòng)態(tài)的查看一個(gè)內(nèi)容乡范。CTRL + C 就可以退出了
例如:需要兩個(gè)終端配名;
使用一個(gè)終端查看1.txt文檔執(zhí)行命令:tail -f 1.txt
另一終端不斷執(zhí)行追加重定向執(zhí)行命令:echo "Holle World!" >> 1.txt
02.1.6 文件和目錄屬性
例如:
[root@bogon ~]# ls -l
總用量 88
drwxr-xr-x 2 root root 4096 5月 20 03:26 111
-rw-r--r-- 1 root root 21845 5月 20 03:25 123.txt
-rwxr-xr-x 1 root root 10688 5月 20 04:12 1.txt
drwxr-xr-x 2 root root 4096 5月 20 03:26 222
drwxr-xr-x 2 root root 4096 5月 20 03:26 234
-rw-------. 1 root root 1161 2月 21 21:44 anaconda-ks.cfg
-rw-r--r--. 1 root root 21845 2月 21 21:44 install.log
-rw-r--r--. 1 root root 5079 2月 21 21:44 install.log.syslog
[root@bogon ~]#
第一列 共十一位
第一個(gè) 表示文件類型;
第一列共有十一位晋辆。
第一位是:
c表示字符設(shè)備
b表示是塊設(shè)備
l 表示軟連接文件
s表示一種特有文件渠脉,本地通信文件
d表示目錄文件
-表示普通文件
p 表示管道文件,也是通信文件
第二位到第十個(gè)是文件的權(quán)限 r讀 w寫 x執(zhí)行 -無
前三個(gè)是表示文件(user)本身的權(quán)限 rwx 順序不變栈拖。
中間三個(gè)表示文件(group)所屬組的權(quán)限 连舍。
后面三個(gè)表示文件(others)除屬組以外的權(quán)限。
第十一位 是 . 平時(shí)很少使用涩哟。
第二列
表示用多少個(gè)目錄或者文件占用的節(jié)點(diǎn)數(shù)(inode)
一般情況文件都是1 索赏;
目錄和下面的子目錄數(shù)有關(guān)。
文件的話顯示有幾文件使用了同一個(gè)inode號贴彼;
使用ls -li
可以像是inode號
第三列 表示該文件的所有者
第四列 表示該文件的所屬組
第五列 表示該文件的大小
第六潜腻、七、八列 為該文件的創(chuàng)建時(shí)間或者修改時(shí)間器仗。
那么如何分別是創(chuàng)建的時(shí)間還是修改的時(shí)間呢融涣!可以根據(jù)創(chuàng)建或修改的時(shí)間查找文件嗎童番?
第九列 表示文件名稱。
02.1.7 chmod命令
chmod 更改權(quán)限
chmod --help
[root@bogon ~]# chmod --help
用法:chmod [選項(xiàng)]... 模式[,模式]... 文件...
或:chmod [選項(xiàng)]... 八進(jìn)制模式 文件...
或:chmod [選項(xiàng)]... --reference=參考文件 文件...
將每個(gè)文件的模式更改為指定值威鹿。
-c, --changes 類似 --verbose剃斧,但只在有更改時(shí)才顯示結(jié)果
--no-preserve-root 不特殊對待根目錄(默認(rèn))
--preserve-root 禁止對根目錄進(jìn)行遞歸操作
-f, --silent, --quiet 去除大部份的錯(cuò)誤信息
-v, --verbose 為處理的所有文件顯示診斷信息
--reference=參考文件 使用指定參考文件的模式,而非自行指定權(quán)限模式
-R, --recursive 以遞歸方式更改所有的文件及子目錄
--help 顯示此幫助信息并退出
--version 顯示版本信息并退出
每種 MODE 都應(yīng)屬于這類形式"[ugoa]*([-+=]([rwxXst]*|[ugo]))+"忽你。
請向bug-coreutils@gnu.org 報(bào)告chmod 的錯(cuò)誤
GNU coreutils 項(xiàng)目主頁:<http://www.gnu.org/software/coreutils/>
GNU 軟件一般性幫助:<http://www.gnu.org/gethelp/>
請向<http://translationproject.org/team/zh_CN.html> 報(bào)告chmod 的翻譯錯(cuò)誤
要獲取完整文檔幼东,請運(yùn)行:info coreutils 'chmod invocation'
[root@bogon ~]#
r為4,w為2科雳,x為1根蟹,-為0
組合:
- rwx 表示 7
- rw- 表示 6
- r-x 表示 5
- r-- 表示 4
- -wx 表示 3
- -w- 表示 2
- --x 表示 1
- --- 表示 0
例如:
[root@bogon ~]# ls -l 1.txt
-rwxr-xr-x 1 root root 10688 5月 20 04:12 1.txt
[root@bogon ~]# chmod 744 1.txt
[root@bogon ~]# ls -l 1.txt
-rwxr--r-- 1 root root 10688 5月 20 04:12 1.txt
[root@bogon ~]#
也可以這樣寫:
[root@bogon ~]# chmod u=rwx,g=r--,o=r-- 1.txt
[root@bogon ~]# chmod u-x 1.txt
[root@bogon ~]# chmod u+x,g+w,g-r 1.txt
[root@bogon ~]# chmod a+r 1.txt
這里第一行表示指定屬主可讀可寫可執(zhí)行,屬組可讀糟秘,其他可讀简逮;第二行表示給屬主取消可執(zhí)行權(quán)限;第三行表示給屬主增加可執(zhí)行權(quán)限尿赚,給屬組增加可讀權(quán)限散庶,給其他用戶取消可讀權(quán)限;第四行表示給所有人都增加可讀權(quán)限凌净;
-R 權(quán)限的繼承選項(xiàng)
例如:
[root@bogon ~]# tree 111
111
├── 123.txt
└── 234
└── 22.txt
1 directory, 2 files
[root@bogon ~]# ls -l 111
總用量 28
-rw-r--r-- 1 root root 21845 5月 20 03:26 123.txt
drwxr-xr-x 2 root root 4096 5月 20 05:26 234
[root@bogon ~]# ls -l 111/234
總用量 24
-rw-r--r-- 1 root root 21845 5月 20 03:26 22.txt
[root@bogon ~]# chmod -R 700 111
[root@bogon ~]# ls -l 111
總用量 28
-rwx------ 1 root root 21845 5月 20 03:26 123.txt
drwx------ 2 root root 4096 5月 20 05:26 234
[root@bogon ~]# ls -l 111/234
總用量 24
-rwx------ 1 root root 21845 5月 20 03:26 22.txt
[root@bogon ~]#
chmod -R 權(quán)限 文件夾 可以讓文件夾內(nèi)的文件及子文件夾都繼承指定權(quán)限督赤;
umask 用戶默認(rèn)目錄和文件的權(quán)限
用來規(guī)定默認(rèn)情況下的目錄和權(quán)限,一般情況目錄權(quán)限值為755泻蚊,普通文件權(quán)限值為644躲舌,
例如:
[root@bogon ~]# whoami
root
[root@bogon ~]# umask
0022
[root@bogon ~]# mkdir 1112
[root@bogon ~]# ls -ld
dr-xr-x---. 6 root root 4096 5月 20 05:34 .
[root@bogon ~]# touch 12.txt
[root@bogon ~]# ls -l 12.txt
-rw-r--r-- 1 root root 0 5月 20 05:35 12.txt
[root@bogon ~]#
修改umask的語法:
umask xxx (這里的xxx代表三個(gè)數(shù)字)
例如:
[root@bogon ~]# umask
0022
[root@bogon ~]# umask 011
[root@bogon ~]# umask
0011
[root@bogon ~]#
(1)若用戶建立為普通文件,則預(yù)設(shè)沒有可執(zhí)行權(quán)限性雄,只有rw兩個(gè)權(quán)限没卸。最大為666(-rw-rw-rw)。
(2)若用戶建立為目錄秒旋,則預(yù)設(shè)所有權(quán)限均開放约计,即777(drwxrwxrwx)。
注意:umask可以在/etch/bashrc里面更改迁筛,預(yù)設(shè)情況下煤蚌,root的umask為022,而一般使用者則為002细卧,因?yàn)榭蓪憴?quán)限非常重要尉桩,因此預(yù)設(shè)會(huì)去掉寫權(quán)限。
當(dāng)umask=033是目錄權(quán)限是777-033為744贪庙;文件權(quán)限是666-033蜘犁。這樣是錯(cuò)誤的,實(shí)際上目錄權(quán)限是"rwxrwxrwx"-"----wx-wx"=“rwxr--r--”為744止邮。文件權(quán)限是"rw-rw-rw-"-"----wx-wx"=“rw-r--r--”為644这橙。
02.1.8 chown命令
修改文件的屬主和屬組
chown --help
[root@bogon ~]# chown --help
用法:chown [選項(xiàng)]... [所有者][:[組]] 文件...
或:chown [選項(xiàng)]... --reference=參考文件 文件...
更改每個(gè)文件的所有者和/或所屬組奏窑。
當(dāng)使用 --referebce 參數(shù)時(shí),將文件的所有者和所屬組更改為與指定參考文件相同屈扎。
-c, --changes 類似 verbose埃唯,但只在有更改時(shí)才顯示結(jié)果
--dereference 受影響的是符號鏈接所指示的對象,而非符號鏈接本身
-h, --no-dereference 會(huì)影響符號鏈接本身鹰晨,而非符號鏈接所指示的目的地
(當(dāng)系統(tǒng)支持更改符號鏈接的所有者時(shí)筑凫,此選項(xiàng)才有用)
--from=當(dāng)前所有者:當(dāng)前所屬組
只當(dāng)每個(gè)文件的所有者和組符合選項(xiàng)所指定時(shí)才更改所
有者和組。其中一個(gè)可以省略并村,這時(shí)已省略的屬性就不
需要符合原有的屬性。
--no-preserve-root 不特殊對待"/"(默認(rèn)值)
--preserve-root 不允許在"/"上遞歸操作
-f, --silent, --quiet 去除大部份的錯(cuò)誤信息
--reference=參考文件 使用參考文件的所屬組滓技,而非指定值
-R, --recursive 遞歸處理所有的文件及子目錄
-v, --verbose 為處理的所有文件顯示診斷信息
以下選項(xiàng)是在指定了 -R 選項(xiàng)時(shí)被用于設(shè)置如何穿越目錄結(jié)構(gòu)體系哩牍。
如果您指定了多于一個(gè)選項(xiàng),那么只有最后一個(gè)會(huì)生效令漂。
-H 如果命令行參數(shù)是一個(gè)通到目錄的符號鏈接膝昆,則遍歷符號鏈接
-L 遍歷每一個(gè)遇到的通到目錄的符號鏈接
-P 不遍歷任何符號鏈接(默認(rèn))
--help 顯示此幫助信息并退出
--version 顯示版本信息并退出
如果沒有指定所有者,則不會(huì)更改叠必。 所屬組若沒有指定也不會(huì)更改荚孵,但當(dāng)加上
":"時(shí) GROUP 會(huì)更改為指定所有者的主要組。所有者和所屬組可以是數(shù)字或名稱纬朝。
示例:
chown root /u 將 /u 的屬主更改為"root"收叶。
chown root:staff /u 和上面類似,但同時(shí)也將其屬組更改為"staff"共苛。
chown -hR root /u 將 /u 及其子目錄下所有文件的屬主更改為"root"判没。
請向bug-coreutils@gnu.org 報(bào)告chown 的錯(cuò)誤
GNU coreutils 項(xiàng)目主頁:<http://www.gnu.org/software/coreutils/>
GNU 軟件一般性幫助:<http://www.gnu.org/gethelp/>
請向<http://translationproject.org/team/zh_CN.html> 報(bào)告chown 的翻譯錯(cuò)誤
要獲取完整文檔,請運(yùn)行:info coreutils 'chown invocation'
[root@bogon ~]#
具體使用方法:
[root@bogon ~]# useradd byk
[root@bogon ~]# ls -l 12.txt
-rw-r--r-- 1 root root 0 5月 20 05:35 12.txt
[root@bogon ~]# chown byk 12.txt
[root@bogon ~]# ls -l 12.txt
-rw-r--r-- 1 byk root 0 5月 20 05:35 12.txt
[root@bogon ~]# groupadd byk
groupadd: group 'byk' already exists
[root@bogon ~]# chown :byk 12.txt
[root@bogon ~]# ls -l 12.txt
-rw-r--r-- 1 byk byk 0 5月 20 05:35 12.txt
[root@bogon ~]# chown root:root 12.txt
[root@bogon ~]# ls -l 12.txt
-rw-r--r-- 1 root root 0 5月 20 05:35 12.txt
[root@bogon ~]# chown byk.byk 12.txt
[root@bogon ~]# ls -l 12.txt
-rw-r--r-- 1 byk byk 0 5月 20 05:35 12.txt
[root@bogon ~]#
chown 文件的所有者以及所屬組
例如:
#useradd yyy (字符) 創(chuàng)建用戶
#chown yyy (字符) 更改文件擁有者
#groupadd xxx (字符) 創(chuàng)建屬組
#chown :xxx (字符) 更改文件所屬組
#chown yyy:xxx (yyy是字符隅茎,xxx是字符) 同時(shí)更改文件擁有者yyy和文件所屬組xxx
或者使用
#chown yyy.xxx (yyy是字符澄峰,xxx是字符) 同時(shí)更改文件擁有者yyy和文件所屬組xxx
chown -R 表示更改目錄下所有文件及目錄的所有者和所屬組。
同時(shí)更改所屬組也可以使用chgrp
語法: chgrp [參數(shù)][組名] [文件名]
參數(shù)有-R 選項(xiàng)只作用于目錄辟犀,作用是級聯(lián)更改俏竞,即不僅更改當(dāng)前目錄,連目錄或者文件全部更改堂竟。
chown -R 參數(shù)有-R 選項(xiàng)只作用于目錄魂毁,作用是級聯(lián)更改,即不僅更改當(dāng)前目錄出嘹,連目錄或者文件全部更改漱牵。
歷史命令
!ls
表示執(zhí)行歷史命令里面離本次最近的命令以ls開頭的歷史命令疚漆。
酣胀!數(shù)字
表示執(zhí)行歷史命令里面編號命令