Linux目錄文件管理_2

ps: 紅字字體爲重要部分, 仔細看node


1、 目錄、文件基本命令(mkdir、tree、touch、rmdir、rm、cp、mv、)linux

          1. mkdir: 建立目錄;bash

             經常使用選項:less

                              ①。  -p:     遞歸建立目錄ssh

[root@Centos1 ~]# mkdir a/b/c              #當前沒有a/b/c目錄, 因此建立不成功
mkdir: cannot create directory `a/b/c': No such file or directory    
  #提示沒找到a/b/c 目錄
[root@Centos1 ~]# mkdir -p a/b/c                   #能夠結合-p選項遞歸建立a/b/c目錄
[root@Centos1 ~]# mkdir -p a/B/C
[root@Centos1 ~]# tree -C a                      #查看a目錄的結構
a
|-- B
|   `-- C
`-- b
    `-- c

                              ②。 -v:     可視化ide

[root@Centos1 ~]# mkdir -pv a/A/B/C
mkdir: created directory `a/A'
mkdir: created directory `a/A/B'
mkdir: created directory `a/A/B/C'


          2. tree:顯示目錄結構;post

              經常使用選項:     字體

                              ①。 -C:     顯示顏色url

[root@Centos1 ~]# tree -C a                            #查看a目錄的結構
a
|-- B
|   `-- C
`-- b
    `-- c


          3. touch:建立文件;spa

[root@Centos1 ~]# touch a/A/B/C/1


          4. rmdir:用於刪除空目錄, 若是目錄中含有文件, 則沒法刪除, 因此不經常使用;

          5. rm: 刪除文件或目錄;

              經常使用選項:

                              ①.。 -i:     刪除時提醒

[root@Centos1 ~]# rm a/A/B/C/1                       #刪除剛建立的文件1
rm: remove regular empty file `a/A/B/C/1'? y         #輸入y則刪除,輸入n爲不刪除

                              ②。 -r:     刪除目錄

[root@Centos1 ~]# rm -r a/A/B/C/            #刪除a/A/B/下的C目錄  
rm: remove directory `a/A/B/C'? y           #輸入y則刪除,輸入n爲不刪除 
[root@Centos1 ~]# ls -l a/A/B/              #能夠看到, a/A/B下沒有了C目錄
total 0

                              ③。 -f:     強制刪除(刪除時不提醒)

[root@Centos1 ~]# rm -rf a/A/B            #刪除a/A下的B目錄
[root@Centos1 ~]# ls -l a/A/                                             
total 0
[root@Centos1 ~]# mkdir -p a/A/1/2/3/4/   #結合-p建立遞歸目錄
[root@Centos1 ~]# rm -rf a/A              #刪除A目錄.
[root@Centos1 ~]# ls a                    #能夠看到,A目錄下的子目錄一塊刪除
B

          6. cp:複製文件和目錄;

              經常使用選項:

                              ①。 -r:     複製目錄

[root@Centos1 ~]# ls -l | grep '^d'           #過濾當前以d開頭的目錄
drwxr-xr-x. 3 root root 4096 Mar 10 05:09 a
[root@Centos1 ~]# cp a /etc/                  #若是不輸入-r選項, 不容許拷貝目錄
cp: omitting directory `a'
[root@Centos1 ~]# cp -r a /etc/

                                 

                              ②。 -a:     複製時文件屬性保持一致

[root@Centos1 ~]# cp -a a /home/                       
drwxr-xr-x. 2 root root 4096 Mar 10 05:40 /home/a               #紅色表示文件屬性
當目標文件已存在時, 複製源文件會提示是否覆蓋. 若是不但願覆蓋, 即便用cp的絕對路徑.
[root@Centos1 ~]# cp 1.txt /home/
[root@Centos1 ~]# cp 1.txt /home/                                         
cp: overwrite `/home/1.txt'? y
[root@Centos1 ~]# /bin/cp 1.txt /home/

      

                       

          7. mv:移動文件或更名;

              經常使用選項:

                              ①。 -i:     移動或更名時提醒.   

[root@Centos1 ~]# ls a                       #a目錄下有1.txt、2.txt、3.txt
1.txt  2.txt  3.txt     
[root@Centos1 ~]# echo abc> 1.txt            #將'abc'重定向到當前目錄的1.txt文件中
[root@Centos1 ~]# mv 1.txt a                 #將當前目錄的1.txt移動到a目錄
mv: overwrite `a/1.txt'? y                   #輸入y則覆蓋.
[root@Centos1 ~]# cat a/1.txt                #查看a/1.txt文件內容
abc
[root@Centos1 ~]# echo 222 > 1.txt           #將'222'重定向到當前目錄的2.txt文件中
[root@Centos1 ~]# cat 1.txt           
222
[root@Centos1 ~]# /bin/mv 1.txt a/               
當目標文件存在是時, 會提示是否覆蓋. 若是不但願提示, 須要使用命令的絕對路口/bin/mv, 並進行強制覆蓋. 
[root@Centos1 ~]# cat a/1.txt
222

                              ②。 -v:     可視化

[root@Centos1 ~]# mv -v a/1.txt ./
`a/1.txt' -> `./1.txt'

2、 查看文件和目錄(cat、tac、rev、more、less、tail、head)

       1. cat: 查看文件;

          經常使用選項:

                         ①。 -A:     在每行結束處顯示'$'

[root@Centos1 ~]# cat 1.txt
abc
def
ijk
[root@Centos1 ~]# cat -A 1.txt                               
abc$
def$
ijk$

                         ②。 -n:     顯示行號

[root@Centos1 ~]# cat -n 1.txt
     1  abc
     2  def
     3  ijk


     2. tac: 文件倒序;

[root@Centos1 ~]# tac 1.txt
ijk
def
abc

     3. rev: 顛倒文件左右內容;

[root@Centos1 ~]# rev 1.txt
cba
fed
kji

     4. more: 當內容爲滿屏時, 按百分比顯示文件內容;

[root@Centos1 ~]# more /etc/init.d/iptables

spacer.gif

    

     5. less: 和more相似, less支持快捷鍵;

[root@Centos1 ~]# less /etc/init.d/iptables
下面是快捷鍵:
               n與N結合/使用: n往下,N往上
               n與N結合?使用: n往上,N往下
               ctrl+f: 往下翻頁
               ctrl+b: 往上翻頁
               快捷鍵使用:j像下,k像上
               G跳轉到最後一行g跳轉到第一行


     6. tail: 默認查看文件尾10行;

[root@Centos1 ~]# tail /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
rtkit:x:498:499:RealtimeKit:/proc:/sbin/nologin
pulse:x:497:498:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
[root@Centos1 ~]# tail -3 /etc/passwd                              #查看末尾3行, 加-3
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin

     7. head: 默認查看文件前10行;

[root@Centos1 ~]# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
[root@Centos1 ~]# head -3 /etc/passwd                    #查看前3行. 加-3
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

3、文件及目錄屬性

[root@Centos1 ~]# ls -l
total 28
-rw-r--r--.  1 root root   12 Mar 10 05:56 1.txt
drwxr-xr-x. 2 root root 4096 Mar 10 05:38 a

wKioL1UHBt6xo-wtAAEa3PG5TiY406.jpg

Linux文件類型:

f或者-  :          普通文件
d:                   目錄文件
b:                   塊設備文件
c:                    字符文件
s:                    套接字文件
l:                     軟鏈接文件
p:                   管道文件

1:                   表示幾個文件使用了相同inode號

.:                    selinux

+:                   ACL

Linux文件連接數(即inode)

[root@Centos1 ~]# ls -ldai a                            #查看a目錄自己inode
914018 drwxr-xr-x. 3 root root 4096 Mar 10 05:38 a      #3表明的鏈數.  914018表示inode
[root@Centos1 ~]# ls -ali a/
total 8
914018 drwxr-xr-x. 2 root root 4096 Mar 10 05:38 .      #查看當前目錄
913921 dr-xr-x---. 3 root root 4096 Mar 10 05:56 ..
915949 -rw-r--r--. 1 root root    0 Mar 10 05:28 2.txt
915950 -rw-r--r--. 1 root root    0 Mar 10 05:28 3.txt
[root@Centos1 ~]# ls -ali a/1
total 8
915947 drwxr-xr-x. 2 root root 4096 Mar 10 06:27 .
914018 drwxr-xr-x. 3 root root 4096 Mar 10 06:27 ..     #查看a/1目錄

從上面的inode中能夠看出indeo出現三次:

1。 目錄自己

2。 a/目錄裏的'.(隱藏)'當前目錄

3。 a/1目錄的..(上一級)'上一級目錄

4、修改文件及目錄的屬性和權限(chown、chmod)

     1. chown: 修改目錄及文件屬性(屬主、屬組)

[root@Centos1 ~]# useradd user1                                    #建立用戶
[root@Centos1 ~]# useradd user2
[root@Centos1 ~]# ls -l  | grep '^d'
drwxr-xr-x. 3 root root 4096 Mar 10 06:27 a
[root@Centos1 ~]# chown user1 a
[root@Centos1 ~]# ls -l  | grep '^d'
drwxr-xr-x. 3 user1 root 4096 Mar 10 06:27 a
[root@Centos1 ~]# chown :user2 a
[root@Centos1 ~]# ls -l  | grep '^d'
drwxr-xr-x. 3 user1 user2 4096 Mar 10 06:27 a
[root@Centos1 ~]# chown root:root a
[root@Centos1 ~]# ls -l  | grep '^d'
drwxr-xr-x. 3 root root 4096 Mar 10 06:27 a

     經常使用選項:

                     -R:     遞歸修改屬性

[root@Centos1 ~]# ls -l a
total 4
drwxr-xr-x. 2 root root 4096 Mar 10 06:27 1
[root@Centos1 ~]# chown -R user1:user2 a/1
[root@Centos1 ~]# ls -l a
total 4
drwxr-xr-x. 2 user1 user2 4096 Mar 10 06:27 1

     2. chmod: 修改文件目錄的權限

[root@Centos1 ~]# ls -l  | grep '^d'
drwxr-xr-x. 3 root root 4096 Mar 10 06:27 a
[root@Centos1 ~]# chmod 777 a
[root@Centos1 ~]# ls -l  | grep '^d'
drwxrwxrwx. 3 root root 4096 Mar 10 06:27 a

wKiom1UHBb_Sp2SRAAELtqSVlwc199.jpg

權限用二進制表示應爲: 

r=4

w=2

x=1

     經常使用選項:

                    ①。 -R:     遞歸修改文件、目錄權限

[root@Centos1 ~]# ls -l a
total 4
drwxr-xr-x. 2 user1 user2 4096 Mar 10 06:27 1
[root@Centos1 ~]# chmod -R 700 a
[root@Centos1 ~]# ls -l && ls -l a/
drwx------. 3 root root 4096 Mar 10 06:27 a
--------------------------------------------------------
drwx------. 2 user1 user2 4096 Mar 10 06:27 1

5、umask權限掩碼

[root@Centos1 ~]# umask                    #umask默認掩碼爲0022
0022
建立目錄的默認掩碼爲777-022=755。
建立文件的默認掩碼爲666-022=644。
[root@Centos1 ~]# umask 0001          #修改默認掩碼
[root@Centos1 ~]# ls -l | grep aaaa
drwxrwxrw-. 2 root root 4096 Mar 10 06:50 aaaa
[root@Centos1 ~]# touch a.txt            #建立一個文件
[root@Centos1 ~]# ls -l | grep a.txt      
-rw-rw-rw-. 1 root root    0 Mar 10 06:48 a.txt

a.txt不屬於目錄, 切不帶有'x(執行)'權限. 技術umask改成0001, 而建立的文件權限仍然爲666.  

若有錯誤, 請你們指正。

51博客:http://chenxiaojian.blog.51cto.com

相關文章
相關標籤/搜索