0316文件和目錄管理(一)

2.1/2.2 系統目錄結構
2.3 ls命令
2.4 文件類型
2.5 alias命令
2.6 相對和絕對路徑
2.7 cd命令
2.8 建立和刪除目錄mkdir/rmdir
2.9 rm命令
2.10 環境變量PATH
2.11 cp命令
2.12 mv命令
2.13 文檔查看cat/more/less/head/tail
2.14 文件和目錄權限chmod
2.15 更改全部者和所屬組chown
2.16 umasknode

目錄結構樹:http://www.apelearn.com/study_v2/linux_dir_tree.jpglinux

 

1、系統目錄結構算法

ls /安全

/root/ root用戶的家目錄,存放配置文件bash

建立普通用戶 : useradd 後跟用戶名less

/home/user1/ 是普通用戶user1的家目錄ssh

 

tree 樹形的形式顯示目錄和文件翻譯

若是沒有找到命令,須要先安裝:yum install -y tree3d

tree --hep 能夠查看經常使用選項日誌

或man 顯示一個文件的幫助文檔:man tree

tree -L 2 / 最大目錄爲2層

 

/bin/ /sbin/ /usr/bin/ usr/sbin/ 存放經常使用命令

 

/sbin 存放 root 用戶使用的命令,普通用戶沒法實用

/bin 存放普通用戶的命令,root用戶也能夠實用

/boot/ 系統啓動相關的文件,若是刪掉裏面的文件,系統將沒法啓動

/dev linux中的設備文件

/etc 系統的配置文件所在目錄

/home 用戶的家目錄

/lib 存系統的庫文件

/lib64 存系統的庫文件,大部分命令會依賴一些庫,查看命令依賴關係:ldd

/media 媒介目錄,默認是空的

/mnt 掛在目錄,默認是空的

/opt 空目錄

/proc 系統啓動的進程

/run 進程產生的臨時文件,重啓或關機會消失

/srv 是空的,存服務產生的文件

/sys 存系統內核相關的文件

/tmp 系統的臨時目錄

/usr 存放用戶的文件 /usr/local/ 存放服務

/var 存放系統日誌,重要目錄

/usr/bin/、usr/sbin/、 /bin、 /sbin、/etc、/var、/usr/local 經常使用的目錄

從centOS7系統之後,就再也不區分32位和64位版本,只有64位系統。(32和64識別的內存不一樣)

2、ls 命令:

ls -l 列出文件的詳細信息

第一列:權限

第二列:表示有多少文件使用了相同的inode,目錄下面有幾個子目錄,數字就是幾

第三列root,表示全部者是誰

第四列:所屬組,root用戶組

第五列:文件大小(單位可以使用ls -lh查看)

第六列:文件建立時間

第七列:文件名

使用ls -i anaconda-ks.cfg 列取anaconda-ks.cfg文件的inode,前面的33582978數字是inode號,inode號是儲存除了文件名之外的全部文件信息

 

ls -lh 更直觀的顯文件大小

 

ls -la 查看目錄下全部隱藏的文件 '.' 點開頭的就是隱藏文件或目錄 (ls -a)

. 當前目錄 .. 上級目錄

 

ls -lta t是時間的意思,按時間順序排序

 

ls -d 顯示目錄自己。 若是不加-d,會把目錄下的子目錄和子文件列出來,若是加-d只顯示目錄自己

可使用man 查看更多命令

ls -ld 只列出文件夾

3、文件類型

幾個經常使用的ls選項 -l -i -a -t -h -d

文件屬性前面第一排就是文件類型,在權限前面

常見:

開頭: ' - ' 是普通文件

開頭: ' d ' 文件夾

開頭: ' c ' 字符串設備,鼠標鍵盤

開頭: ' l ' 軟鏈接文件

開頭: ' b ' 塊設備,(光盤或磁盤)

開頭: ' s ' 通訊文件

find 查看指定文件

 

4、alias 命令

alias就是命令的別名,是命令加選項的組合。能夠理解給一個很長的命令設置一個簡單外號, 這樣能夠方便操做。
alias的做用就是,能夠簡寫命令

能夠經過which查看命令別名

alias 命令的別名,查看有別名的命令,永久生效寫到proflie中

自定義一個命令: alias tobe ='ls -lha'

取消自定義別名: unalias tobe

which命令:

which命令能夠查看一個或多個命令、可執行文件的絕對路徑。而且會顯示命令的別名
which命令是經過遍歷PATH環境變量路徑的方式來查找文件的,
若是一個命令不存在於PATH中的任何一個路徑下,使用which命令是查找不到的。

 

5、相對和絕對路徑

絕對路徑是從根開始的 ( /etc/sysconfig/network-scripts/ifcfg-ens33)

相對路徑:相對當前我所在位置的路徑(.ssh/authorized_keys相對路徑,相對root)

查看當前目錄:pwd

6、cd 命令 man cd 查看(可經過有道詞典(或其餘翻譯軟件)翻譯)

change directory --> cd 切換所在目錄

cd - 進入上次操做目錄

cd      回到登陸用戶家目錄

cd ~ ~就是用戶的家目錄

cd .. 進入上一級目錄

7、建立和刪除目錄mkdir rmdir

創建目錄: mkdir  目錄名

遞歸創建目錄: mkdir -p /root/tobe1/1/2

可視化建立目錄可以看到建立過程: mkdir -pv /root/tobe1/2/3/4

 

刪除目錄:rmdir 只能刪除非空目錄

建立空文件: touch  文件名

8、rm命令

rm 能夠刪除非空的文件,不能刪除目錄

rm -rf  文件/目錄

-r  刪除目錄

-f 強制

!tree (!) 在命令裏找最近一次使用過的tree命令

history 查看歷史用過的命令

rm -rfv /root/tobe1/2/3/      v能夠看到過程

 

9、環境變量PATH

添加環境變量

PATH=$PATH:/tmp/

設置永久的額環境變量

vi /etc/profile 設置開機都會去加載該命令,在文件最後一行加上該命令

去掉環境變量/tmp

從新賦值:PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

10、cp 複製

cp  源文件 目標文件

cp /etc/passwd /tmp/1.txt

-r  複製目錄

cp -r /root/tobe1/ /tmp/abc

若是當目標目錄已經存在時,會把源目錄放到目標目錄下,若是不存在,會把源目錄拷貝過來並更名字

 

tree !$ (!$表示上一個命令的最後一個參數,以空額或tab鍵分割)

 

cp -i (-i 安全選項,提示做用,若是不想出現提示,/usr/bin/cp /etc/passwd /tmp/1.txt直接使用cp命令是帶-i 參數的)

 

-a 全部(包括文件屬性一塊兒複製)

 

11、mv命令

mv 剪切或更名

把1.txt更名成123.txt

 

mv  源文件  目標位置

把123.txt移動剪切到/tmp/目錄下並更名成333.txt

若是當前不目錄不存在至關於更名字,若是目標目錄存在,會把源目錄放到目標目錄下面

 

cp mv 若是右邊是一個目錄,必定要帶一個/

 

12、文檔查看cat、more、less、head、tail

wc 能夠查看一個文件的行數,cat /etc/passwd >> anaconda-ks.cfg 把passwd中的內容追加(增長)到anaconda-ks.cfg

 

cat 查看文件內容 cat -A 文件行尾加結束符

 

cat -n 顯示行號

 

tac 倒敘查看文件內容

 

more 查看文件內容,不顯示所有(只顯示一頁,按空格向下翻頁,按ctrl B 向上翻頁)

 

less 和more用法相同(支持方向鍵,快捷鍵 ctrl f 日後,b往前,看完後要按q鍵退出,而且能夠經過/搜索,按n鍵向下查找,shift n向上看,?按n向上看,搜索同理,大寫G直接到文本最後,小寫g到文本最後最頂部)

head 查看文件前幾行 head -n 2 anaconda-ks.cfg

查看anaconda-ks.cfg文件前兩行

tail 查看文件後幾行 tail -n 2 anaconda-ks.cfg

查看anaconda-ks.cfg文件前兩行

 

tail -f anaconda-ks.cfg 動態顯示文件內容 看日誌時使用

 

十3、文件或目錄權限chmod

 

一個文件有三個權限位 rw-(表明可讀可寫不可執行) ---(表明不可讀不可寫不可執行) ---(表明其餘用戶權限:不可讀不可寫不可執行)

第一段,文件的全部者的權限, 屬主權限u=user        

第二段,所屬組的權限 屬組權限g=group

第三段:除了全部者和所屬組其餘用戶的權限 其餘人權限o=other

數字表示:

r 讀 4

w 寫 2

x 執行 1

- 表明不能夠執行

rwx =7   rw- = 6    --x =1

rw-r--r-- = 644

權限通常也用數字表示,好比764,就是全部者(u) rwx,所屬組(g) rw-,其餘用戶(o) r--

chmod 修改權限(只目錄自己生效)

chmod  755  2.txt

chmod u=rwx,g=r,o=r 2.txt

chmod a(g/o)+x或a(g/o)-x 2.txt a表示全部

 

. 表明文件受制於selinux,若是開啓selinux會有.只有更改配置文件,並關閉後在建立就不會存在.了

 

chmod -R (目錄下的全部目錄和文件的權限都會更改)

 

十4、更改全部者和所屬組chown

chown -R (目錄下的全部目錄和文件的全部者和所屬組都會更改)

chown = change owner 更有者
chown不只能夠更改全部者,也能夠更改所屬組。
cat /etc/passwd來查看系統用戶都有哪些。
用法:chown全部者:所屬組 文件名/目錄

chown user1(全部者):user2(所屬組) 1.txt

chown :root(所屬組) 1.txt 只更改了所屬組

chown user1 1.txt 把1.txt的全部者更改成user1

 

chgrp user1 1.txt 使用chgrp 更改1.txt所屬組

 

十5、umask

當咱們登陸系統以後建立一個文件老是有一個默認權限的,那麼這個權限是怎麼來的呢?這就是umask乾的事情。
umask設置了用戶建立文件的默認 權限,它與chmod的效果恰好相反,umask設置的是權限「補碼」,而chmod設置的是文件權限碼。
通常可在/etc/profile、/etc/bashrc、$ [HOME]/.bash_profile、$[HOME]/.profile或$[HOME]/.bashrc中設置umask值。
具體取決於Linux發行版,好比Fedora19下要更改本身的umask值,在$[HOME]/.profile或$[HOME]/.bash_profile下的增長umask的值覆蓋不了/etc/profile中的配置值的,必須在$[HOME]/.bashrc下增長umask值才能夠永久定義本身的umask值

系統root用戶的umask值(普通用戶的umask和root的umask值不一樣)

命令的使用:    umask 022  時,文件 644  目錄755

爲002時,文件 664 ,目錄775

目錄=777- 022 = 755

文件=666- 022 = 644

當umask =003時:

文件算法666(rw-rw-rw-) -  003(-------wx)=rw-rw-r--=664

目錄算法777(rwxrwxrwx) -  002(-------wx)=rwxrwxr--=775

umask值的含義:

能夠看到,當前用戶的umask值爲0022,那麼這個0022是什麼意思呢?
首先這裏有4位數,第一位是特殊權限相關的,咱們暫且無論,只要關注後面3位數就能夠了。其次咱們要說明的是在默認權限的設置上,文件和目錄是不同的。那麼文件和目錄的默認權限分別是怎樣的呢?

默認狀況下,咱們新建一個文件是不須要具備可執行權限的,所以對於文件而言,其默認的最大權限就是666,表示對於文件擁有者、同個羣組的其餘用戶和不一樣羣組的其餘用戶都具備可讀和可寫權限。
對於目錄而言,可執行權限與用戶是否能進入該目錄有關,所以默認狀況下,目錄的全部權限都對外開放,即默認的最大權限爲777,表示對於文件擁有者、同個羣組的用戶和不一樣羣組的其餘用戶都具備可讀、可寫和可執行權限。

這裏要注意的是umask的值表示的是文件或目錄的「默認最大值」須要減掉的權限。以上述umask值0022爲例,因爲文件的默認最大權限爲666,第二位是0,表示的是不須要減掉任何權限,所以對於文件擁有者而言,而權限就是6;第三位爲2,表示的是須要減掉可寫權限,所以對於同個羣組的其餘用戶而言,其權限就是4;第四位仍是2,表示須要減掉可寫權限,所以對於不一樣羣組的其餘用戶而言,其權限就是4。故0022表示的是該用戶新建的文件的默認權限是644。

咱們新建一個文件驗證一下便知:

能夠看到,當前的umask值是0022,咱們新建的文件1.txt的默認權限是-rw-r--r--,即644,與上述分析的一致。
對於目錄而言,則有些不一樣,咱們仍是以umask值0022爲例進行分析。上文說了,目錄的默認最大權限是777,第二位爲0,表示的是不須要減掉任何權限,因此對於目錄擁有者而言,其權限爲7;第三位爲2,表示的是須要減掉可寫權限,所以對於同個羣組的其餘用戶而言,其權限是可讀可執行,即5;第四位爲2,表示的是須要減掉可寫權限,所以對於不一樣羣組的其餘用戶而言,其權限是可讀可執行,即5。故0022表示的是該用戶新建一個目錄的默認權限爲755。

咱們新建一個目錄驗證一下便知:

能夠看到,目錄dir1的權限爲drwxr-xr-x,即755,與上述分析的一致。

配置文件: /etc/profile

相關文章
相關標籤/搜索