2017-05-23 第二周第一天任務(wù)

第二周第一天任務(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í)行歷史命令里面編號命令

查看歷史命令使用 history
上下鍵也可以查看歷史命令
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容