天天看點

linux目錄管理和檔案管理常用指令

1、目錄管理

1.1、linux的目錄結構

.:目前目錄

..:上一級目錄

/:根目錄

/bin:二進制,可執行的指令

/boot:引導,作業系統用于引導系統啟動的檔案,核心、grub

/dev:裝置檔案

    linux的裝置類型:

        字元裝置:c,線性裝置

        塊裝置:b,随機裝置

/etc:配置檔案

/home:使用者的家目錄,/home/username,jerry,/home/jerry

/root:管理者的家目錄

/lib,lib64:庫檔案

/media:挂載點目錄,通常用于挂載便攜性裝置

/mnt:挂載點目錄,挂載額外的檔案系統

/misc:備份目錄

/opt:可選目錄,通常第三方軟體偶爾安裝于此路徑下

/proc:僞檔案系統:記憶體中核心的映射

/selinux:安全加強的linux

/srv:僞檔案系統,通常用于通路硬體裝置屬性資訊

/tmp:臨時檔案目錄

/usr:儲存隻讀檔案

/var:經常會發生變化的檔案:比方說日志等

1.2、linux下的檔案以及檔案的目錄命名規則:

1.長度不能超過255個字元

2.不能使用/(斜線)當檔案名, 建議不要使用特殊字元

3.嚴格區分大小寫

1.3、目錄管理常用指令

cd    更換工作目錄用法:cd [directory]

    cd .. 傳回上級目錄

    cd ~  傳回家目錄

    cd    回家目錄

    cd -    在上個目錄和目前目錄之間切換

    cd ~username    切換到username的家目錄

pwd:顯示目前目錄

dirname:顯示指定路徑的目錄

mkdir建立目錄用法:mkdir [option] directory

    -p:父目錄    如果我們指定z的話,z的父目錄y不存在的話會自動先建立y,如果y的父目錄x不存

        在的話會自動先建立x

    -v:顯示建立過程

/mnt/test/x/m  /mnt/test/y   這個怎麼同時建立?

rmdir(remove directory):删除目錄,隻能用于删除空目錄

    -p:父目錄

    -v:顯示詳細過程

注:加了-p後,隻能删除一線單傳的目錄:即把z删除後,y目錄 空了,就會把y目錄删除,當y 删除後,x目錄空了,就會把x 目錄删除,但是root不空,是以不能删除root目錄。

2、檔案的管理

2.1、檔案的類型

linux檔案類型:

普通檔案(-):a.html,b.txt,c.ppt,ls

目錄檔案(d):

特殊檔案:

    塊裝置檔案(b):

    字元裝置檔案(c):

符号連結檔案(l):

命名管道檔案(p):pipe

套接字檔案(s):socket

判斷普通檔案的内容類型,使用file指令:#file 指令

2.2、檔案的權限

目錄權限:

    r:可以對目錄執行ls指令,但不允許使用-l選項,而且,不能cd到目錄中;

    w:可以在目錄建立檔案;

    x:可以對目錄執行ls -l 指令,且能夠cd進去。

檔案系統安全模型:

    屬主 屬組 其它

    u,  g,  o

    ---:000 --> 0

    --x:001 --> 1

    -w-:010 --> 2

    -wx:011 --> 3

    r--:100 --> 4

    r-x:101 --> 5

    rw-:110 --> 6

    rwx:111 --> 7

3位二進制對應一個8進制

4位二進制對應一位16進制

    0,9,a,b,c,d,e,f

    f:1111

    9:1001

2.3、檔案管理常用指令

cat、tac、more、less、head、tail    顯示檔案

cat    順序顯示整個檔案    cat filename 

    -n:顯示行号

    從鍵盤建立一個檔案:cat > filename 隻能建立新檔案,不能編輯已有檔案.

    将幾個檔案合并為一個檔案:cat file1 file2 > file

tac    逆序顯示檔案

more    滿屏顯示檔案内容,向後翻,在翻至檔案尾部之前允許向後翻 敲空格鍵:下一屏,按q結束

    -n:顯示n行

    +n:從第n行開始顯示

less:向前翻,在翻至檔案頭部之前允許向前翻敲b鍵:往前翻一屏Enter鍵,往前翻一行

head:檔案的前n行      n預設為10,且預設不顯示檔案名

    -q:隐藏檔案名    

    -v:顯示檔案名

    -n n或-n::顯示n行

    -c n:顯示n個位元組

tail:檔案的後n行

    -n n或-n::顯示n行

    -f:檢視一個檔案的尾部内容後,不退出,等待并顯示新增的行; 退出使用ctrl+c結束

檔案的建立和删除:在linux下,目錄和檔案是不能同名的,在windows下,也不能,因為windows下的檔案都有字尾

touch                        

touch:主要指令不是用來建立檔案的,是用來修改時間戳的

   時間戳:通路時間,修改時間,改變時間 

   -c:不建立任何檔案

   -a:隻改變通路時間      通路時間改變,改變時間也會改變

   -m:隻改變修改時間      修改時間改變,改變時間也會改變

   -t:指定修改時間到某個指定時間,格式為[cc]yymmddhhmm.ss

stat:顯示檔案或檔案系統的狀态資訊   

建立檔案,可以使用檔案編輯器   文本編輯器隻是編輯純ascii碼的

  word不是檔案編輯器,隻是字處理器

nano、vim:文本編輯器

rm:删除檔案

  -i:删除前提醒

  -f:強行删除

  -r:删除目錄  删除目錄下所有的檔案

注:為什麼會提示,因為這裡的rm指令不是源生的rm指令,是被修改後的rm指令,是rm -i的别名,(指令别名),-i 互動式,如果你删的話,就跟你互動一下,問你要不要删因為現在是管理者,為了避免誤删,是以有這個提示,普通使用者沒有提示

指令别名:

    alias

    \command:使用指令自身,而不使用與指令名稱同名的别名

cp:copy    複制和移動檔案    cp srcfile dest

    -r 或 -r : 複制目錄及及目錄中的檔案的,實作遞歸複制

    -f :  強行複制,如果目标檔案存在直接覆寫;如果檔案目标不能打開,先把它删了,再重試

    -i :  互動式,覆寫前提醒确認

    -p :  複制檔案後保留原有的屬主、屬組、權限以及時間戳

    -a :  全部複制,歸檔

複制檔案能不能把一個檔案複制為另外一個檔案(能),能不能把一個檔案複制為多個檔案(不能),把一個檔案複制為多個目标(不能),可不可以把多個檔案複制為一個檔案(不能),可不可以把多個檔案複制到一個目錄(能),可不可以把多個檔案複制為多個檔案(cp不能,可以使用腳本實作)

cp file1 file2 file3  

cp指令隻有最後一個是目标,此前的所有都是源,不允許一個源多個目标,也不允許多個源多個目标

注:如果目标test不存在,則複制到tmp下并命名為test。如果test存在的話,則看是目錄還是檔案,是檔案則提示我們 是不是覆寫掉,即删除原來的test檔案,将passwd複制過來重新命名為test;是目錄,則把passwd放到test目錄下,并儲存為原來的名字

cp指令預設下不會複制目錄,如果要複制目錄,cp有個遞歸選項:-r或-r都可以,即複制目錄及目錄下的所有檔案

注:建立了一個連結,而且是指向目前的連結檔案,但是是錯的,因為tmp下沒有init.d這個檔案在linux上顯示位紅色

mv    移動檔案及目錄 用法:mv [option]...source dest

    -f:強行移動,如果目标檔案存在直接覆寫;如果檔案目标不能打開,先把它删了,再重試

    -i:互動式,移動覆寫前提醒确認

    -b:若需覆寫檔案,則覆寫前先行備份。

通配符:bash支援檔案名通配,globbing

*:任意長度的任意字元

?:任意單個字元

[]:指定範圍内的任意單個字元

    [0-9]:所有的數字

    [a-z]或[a-z]所有的字母

    [0-9a-z]或[0-9a-z]所有的數字和字母

字元集和:

[:digit:] :所有的數字,相當于0-9    [0-9],[[:digit:]]

[:lower:] :所有的小寫字母

[:upper:] :所有的大寫字母

[:alpha:] :所有的數字

[:alnum:] :相當于[0-9a-z]所有的數字和字母

[:space:] :空白符号

[:punct:] :所有标點符号

[^]:脫字元,取反,指定範圍外的任意但個字元