Linux文件和目錄管理類命令初識

簡述

在Linux操作系統使用過程中,因為運維需要頻繁的對文件、目錄進行操作,所以需要學習一些關于文件、目錄的命令

Linux上文件是什么?

「文件」:存儲空間存儲的一段流式數據,可以按名「存取」這些數據

常見文件類型

-:常規文件
d:目錄文件
b:塊設備文件,以「block」為單位進行隨機訪問,常見設備「硬盤」
c:字符設備文件,以「character」為單位進行線性訪問,常見設備「鍵盤」
l:符號鏈接文件
p:命令管道
s:套接字文件

通過使用命令ls來查看文件類型

[root@localhost ~]# ls -l /etc/
drwxr-xr-x.  3 root root       97 Apr 12  2016 abrt
-rw-r--r--.  1 root root       44 Apr 12  2016 adjtime
lrwxrwxrwx.  1 root root       11 Apr 12  2016 init.d -> rc.d/init.d
.....

Linux上目錄是什么?

「目錄」也是文件,在目錄中存放著路徑映射表,在Linux操作系統中存在一個特殊目錄“/”(根目錄),通過「根目錄」可以找到目錄,文件可以通過目錄找到

假如需要查找/etc/fstab文件,具體過程如下:

  1. 通過根目錄自引用的iNode,找到根目錄對應的block

  2. 在根目錄block中存放著路徑映射表,表中存放著etc目錄的iNode號

  3. 通過etc的iNode來訪問etc對應的block

  4. 根據etc的block可以找到fstab的iNode號

  5. 通過fstab的INode就找到了對應的block了

常用命令簡介

  • ls命令
    功用:列出指定目錄下的內容
    語法:ls [OPTION]… [FILE]…

不帶任何選項參數,表示顯示不帶任何信息的文件

[root@localhost ~]# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Music     Public     testDesktop          Downloads  ip.text               
Pictures  Templates  Videos

-l (l是字母不是“1”)顯示是文件還是目錄,它的大小、修改日期和時間、文件或目錄的名字以及文件的屬主屬組等信息

[root@localhost ~]# ls -l 
total 12
-rw-------. 1 root root 1374 Apr 12  2016 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Apr 11  2016 Desktop
drwxr-xr-x. 2 root root    6 Apr 11  2016 Documents
drwxr-xr-x. 2 root root    6 Apr 11  2016 Downloads

-a 顯示隱藏文件,.開頭文件為隱藏文件

[root@localhost ~]# ls -a
.                .bashrc  Documents       .gstreamer-0.10       .local    Templates..               
.cache   Downloads       .gtkrc-2.0-kde4       .mozilla  test

-A 顯示除.和..之外的所有文件

[root@localhost ~]# ls -A
anaconda-ks.cfg  .config    .esd_auth        initial-setup-ks.cfg  Music      .thumbnails.bash_history    
.cshrc     .functions.swo   ip.text               Pictures   Videos

-h 顯示易讀方式的文件大小,通常結合-l選項使用

[root@localhost ~]# ls -lhtotal 12K
-rw-------. 1 root root 1.4K Apr 12  2016 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Apr 11  2016 Desktop
drwxr-xr-x. 2 root root    6 Apr 11  2016 Documents
drwxr-xr-x. 2 root root    6 Apr 11  2016 Downloads

-d 查看目錄本身

[root@localhost ~]# ls -ld /var/log/
drwxr-xr-x. 18 root root 4096 Nov  5 14:45 /var/log/

-r 逆序顯示,-R 遞歸顯示

  • cd命令
    功用:切換工作目錄
    語法:cd [PATH]

~ 切換回自己家目錄
~USERNAME 切換至指定用戶家目錄
-上一次目錄位置與當前目錄來回切換

    [root@localhost tmp]# cd ~natasha    ###切換至natasha家目錄
    [root@localhost natasha]#
  • cat命令
    功用:文本文件查看工具
    語法:cat [OPTION]… [FILE]…

-n 顯示行號
-E 顯示行結束符$

    [root@localhost ~]# cat -n /etc/issue
     1    \S     2    Kernel \r on an \m     3    
     4    Welcome To Hakatsuki
  • file命令
    功用:查看文件內容類型
    語法:file [FILE]…

    [root@localhost ~]# file /etc/fstab 

    /etc/fstab: ASCII text
  • mkdir命令
    功用:創建目錄
    語法:mkdir [OPTION]… DIRECTORY…

-p 按需創建父目錄
-v 顯示詳細過程
-m 指定目錄權限

    [root@localhost ~]# mkdir -pv /tmp/a/b/c      ###創建a、b、c目錄,并顯示過程
    mkdir: created directory ‘/tmp/a’    
    mkdir: created directory ‘/tmp/a/b’   
     mkdir: created directory ‘/tmp/a/b/c’
  • rmdir命令
    功用:刪除目錄
    語法:rmdir [OPTION]… DIRECTORY…

-p 如果父目錄為空,一并刪除,謹慎使用
-v 顯示過程

    [root@localhost ~]# rmdir -pv /tmp/a/b/c/    ###刪除c目錄,a,b為空目錄也會被刪除
    rmdir: removing directory, ‘/tmp/a/b/c/’    
    rmdir: removing directory, ‘/tmp/a/b’    
    rmdir: removing directory, ‘/tmp/a’    
    rmdir: removing directory, ‘/tmp’    
    rmdir: failed to remove directory ‘/tmp’: Device or resource busy
  • head命令
    功用:查看文件前N行
    語法:head [OPTION]… [FILE]…

-n # #是數字,顯示前#行
-#

     [root@localhost ~]# head -n 3 /etc/passwd    ###~]# head -3 /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
  • tail命令
    功用:顯示文件后N行
    語法:tail [OPTION]… [FILE]…

-n # #是數字,顯示后#行
-#
-f 監控,新增信息會直接顯示

    [root@localhost ~]# tail -3 /etc/passwd
    rootkit:x:1003:1003::/home/rootkit:/bin/bash
    user4:x:1004:1004::/home/user4:/bin/chroot
    chrooter:x:1005:1005::/home/chrooter:/bin/bash
  • stat命令
    功用:查看文件詳細屬性信息(元數據)
    語法:stat FILE…

[root@localhost ~]# stat /etc/fstab 
  File: ‘/etc/fstab’
  Size: 465           Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 33554562    Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-11-06 15:01:33.484018459 +0800    ###最后訪問時間
Modify: 2016-04-12 07:11:24.423003139 +0800    ###最后更改時間(數據)
Change: 2016-04-12 07:27:13.470061088 +0800    ###最后改變時間(元數據)
 Birth: -
  • touch命令
    功用:修改文件時間戳或者創建不存在的文件
    語法:touch [OPTION]… FILE…

-c 如果文件不存在,則不進行創建
-a 僅修改access時間
-m 僅修改modify時間

    [root@localhost ~]# touch /tmp/a.text      ###創建一個不存在的文件a.text
    [root@localhost ~]# ls /tmp/a.text
  • cp命令
    功用:復制
    語法:
    cp [OPTION]… [-T] SOURCE DEST
    cp [OPTION]… SOURCE… DIRECTORY
    cp [OPTION]… -t DIRECTORY SOURCE…

-i 交互式復制,覆蓋之前提醒用戶確認
-f 強制覆蓋目標文件
-r -R 遞歸復制目錄
-a 用于歸檔復制

  1. 單源復制 cp [OPTION]… [-T] SOURCE DEST
    如果目標不存在,則事先創建此文件,并復制文件的數據流至目標中
    如果目標存在:
    是非目錄文件,覆蓋目標文件
    是目錄文件,則在目標目錄下創建一個同名的文件,并復制其數據流

    [root@localhost ~]# mkdir /tmp/test    ###創建測試目錄
    [root@localhost ~]# cp /etc/issue /tmp/test/    ###目標是目錄文件,則在目錄下創建issue文件,并復制其數據流
    [root@localhost ~]# ls /tmp/test/
    issue
  1. 多源復制
    cp [OPTION]… SOURCE… DIRECTORY
    cp [OPTION]… -t DIRECTORY SOURCE…
    如果目標不存在,錯誤
    如果目標存在:
    是非目錄文件,錯誤
    是目錄文件,分別復制每個文件至目標目錄中,并保持原名

    [root@localhost ~]# mkdir /tmp/test2    ###創建測試目錄
    [root@localhost ~]# cp /etc/fstab /etc/issue /tmp/test2/    ###復制多個文件至test2
    [root@localhost ~]# ls /tmp/test2/
    fstab  issue
  • mv命令
    功用:移動文件或重命名文件

    [root@localhost tmp]# mv /tmp/test2/issue ./    ###移動issue文件至當前目錄

    [root@localhost tmp]# mv issue issue2    ###重命名issue文件為issue2
  • rm命令
    功用:刪除文件或目錄
    語法:rm [OPTION]… FILE…

-i 刪除之前提醒用戶確認
-f 強制刪除
-r 遞歸刪除

    [root@localhost ~]# rm -rf /tmp/*    ###強制刪除/tmp目錄下所有文件

Note:rm -rf 危險操作,慎用

原創文章,作者:N24-Akatsuki,如若轉載,請注明出處:http://www.www58058.com/57722

(0)
N24-AkatsukiN24-Akatsuki
上一篇 2016-11-06
下一篇 2016-11-06

相關推薦

  • 學習筆記–文本處理工具

    Linux下有很多文本處理工具,本文將介紹幾款比較常用的文本處理工具,比如對文本查看的工具:cat和less,文本截取工具:head和tail,按列抽取文本工具:cut,按關鍵字查詢文本工具:grep,下面將具體介紹各種工具的使用。 1、文本查看命令cat 用法: cat [OPTION]… [FILE]… cat命令一次性…

    Linux干貨 2016-08-07
  • Linux之bash shell腳本編程入門篇(三)之循環以及函數function的使用

    bash shell腳本編程入門篇(三)之循環 什么是循環執行?     將某代碼段重復運行多次     重復運行多少次:         循環次數事先已知    &nb…

    Linux干貨 2016-08-22
  • 初涉Linux基本要點概括(2)

    linux上的文件查看與管理類命令 mkdir 作用: 創建目錄 語法: mkdir [OPTION]… DIRECTORY… 示例: mkdir -p /tmp/x/y/z             &nb…

    Linux干貨 2016-10-15
  • Linux網絡管理之路由和team網絡組

    如何實現把linux當路由器來使用,實現不同網段之間的通信訪問,這就是今天所要實現的路由配置   環境準備:4臺虛擬機,兩臺中間兩臺作為路由器來使用(每天主機兩塊網卡),其他兩臺作為終端主機,目的是讓不同網段的兩臺主機之間互相訪問(這里在vmware里面做的實驗,所以網卡的類型都設置為橋接)   拓撲圖:   步驟一:將A、D兩…

    系統運維 2016-09-10
  • 慶祝馬哥成為51cto學院Linux運維金牌講師第一人

    講師何其多,金牌只一人(2016免費課程在底部) 某天,小編聽到: linuxer1:聽說51CTO學院評出了一個Linux金牌講師!只有一人呢! linuxer2:用腿想,就知道肯定是馬哥嘍! linuxer3:前段時間馬哥又分享了2016最新課時,限時免費學習呢!10086個贊!我和我的好基友們都在學習! linuxer4:馬哥的51CTO課程學員都兩百…

    2016-04-14
  • linux 進程解析

    博文介紹了進程信息以及部分進程管理命令

    2017-09-09

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-11-10 18:51

    贊,總結了對文件和目錄經常操作的用法~繼續加油~

欧美性久久久久