一篇文章學會Linux系統目錄的概念及常用操作命令

2020-12-27 itworld123

前文我們對Linux作業系統的主要目錄進行了介紹,大家清楚了每個目錄的具體用途。在Linux作業系統下最常做的事情就是在各個目錄之間進行切換和信息查詢。今天我們就介紹一下在Linux下關於目錄操作常用的命令。

其實目錄也是一個文件,只不過是一種特殊的文件,它的唯一功能是用來保存文件及其相關信息。所有的文件,包括普通文件、設備文件和目錄文件,都會被保存到目錄中。為了更加容易的理解相關命令,我們先介紹一下目錄相關的概念。

目錄相關的概念

主目錄

我們知道Linux是一個多用戶的作業系統,當我們以某個用戶登錄作業系統時就會自動的處於某個目錄下面,我們稱這個目錄為主目錄。對於普通用戶來說,當創建用戶的時候通常會在/home目錄下面創建一個與用戶名同名的子目錄,該目錄就是該用戶的主目錄。

例如我們已itworld123用戶登錄系統時,此時我們會位於/home/itworld123目錄下面。

工作目錄

當我們登錄到Linux系統時,我們總是處於某個目錄下面。我們當前所處於的目錄就是工作目錄。我們可以通過cd命令實現工作目錄的切換。

目錄的絕對路徑和相對路徑

Linux的目錄有清晰的層次結構,『/』代表根目錄,所有的目錄都位於/下面;在Linux文件系統中目錄中會有子目錄,子目錄中又有子目錄,最終會形成一個目錄樹,如圖所示。

子目錄名稱/分隔符構成的一個合法的字符串稱為一個路徑,它用於描述文件的位置。也就是我們可以通過路徑找到文件,就好像通過一條路可以到某個地方一樣。下面是路徑的兩個例子:

home/itworld123/home/itworld123

如果我們仔細關注一下上面兩個例子,其實上面兩個路徑是不同的。其中後面的路徑是以/開頭的,我們稱為絕對路徑,而不已/開頭的稱為相對路徑

點號(.)

在Linux作業系統中除了常見的字符串目錄外,還有一種特殊的目錄名稱。這種目錄名稱是以點號(.)構成的。其中一個點號(.)表示當前目錄,兩個點號(..)表示上級目錄(父目錄)。這種目錄主要是為了方便目錄的切換,提高工作效率。

目錄相關的操作

所有數據的操作無外乎增刪改查,目錄也是數據。因此,對於目錄的操作也是增刪改查,所謂增就是創建目錄;所謂刪就是刪除目錄;所謂改就是修改目錄,比如重命名;所謂查就是查詢目錄及目錄內的內容等。

創建目錄

創建目錄的命令為mkdir,它是make directory的簡寫。我們可以通過該命令後面跟一個目錄名稱的方式在當前目錄創建一個子目錄,例如:

$mkdir itworld123

這個目錄名稱其實可以是一個路徑,可以是相對路徑或者絕對路徑。下面是一個相對路徑的例子。

$mkdir itworld123/sunnyzhang

當然,這個路徑必須是一個合法路徑,這樣文件系統會自動搜索,並且在最後的目錄下面創建子目錄。當然,這個路徑也可以是絕對路徑,例如:

$mkdir /tmp/itworld123/sunnyzhang

上述命令會在目錄itworld123中創建一個子目錄sunnyzhang。

前面說了,要求後面的路徑必須是合法路徑。合法路徑是什麼意思呢?所謂合法路徑是可訪問的路徑。對於相對路徑和絕對路徑有不同的解釋。相對路徑來說,是指相對工作目錄來說心目錄前面的父目錄在工作目錄是必須存在。而對於絕對目錄來說是指新目錄前面的所有父級目錄是必須存在的。

如果創建子目錄是前面的目錄是不合法的,那麼就會創建失敗。但有時候我們希望創建一串父子目錄,那麼此時這裡就存在非法路徑的問題。創建就會失敗。例如下面,如果itworld123不存在,那麼該命令就會失敗。

$mkdir itworld123/sunnyzhang

mkdir給我們提供了一個選項-p,通過該選項就可以自動創建不存在的上級目錄。如下,如果itworld123不存在,那麼mkdir會先創建該目錄,然後創建sunnyzhang。

$mkdir -p itworld123/sunnyzhang

刪除目錄

有創建就有刪除,很多情況下都有可能需要刪除目錄。比如創建錯誤的名稱,或者不在使用的目錄。我們可以使用 rmdir命令來刪除目錄,例如:

$rmdir itworld123

使用 rmdir命令可以同時刪除多個目錄:

$rmdir dirname1 dirname2 dirname3

但是需要注意的是,使用rmdir刪除目錄的時候必須保證該目錄是空的,否則會報錯。那麼我們如何刪除一個非空的目錄呢?這就用到了rm命令,它可以刪除該目錄及其內的所有內容。

改變所在目錄(切換工作目錄)

可以使用 cd命令來改變當前所在目錄,進入任何有權限的目錄,例如下面的例子:

$cd path/name

path/name是一個路徑,可以為相對路徑,也可以為絕對路徑。例如

$cd /usr/local/bin

可以直接進入/usr/local/bin 目錄。

除了使用路徑名稱來實現路徑的切換外,Linux提供了一些快速進行切換的方式。比如使用下面的命令可以隨時進入主目錄:

$cd ~

這裡 ~ 就表示主目錄。如果你希望進入其他用戶的主目錄,可以使用下面的命令:

$cd ~username

另外一個快捷方式是實現兩個目錄之間的快速切換,具體如下:

$cd -

改動目錄(重命名和移動)

有的時候我們在給目錄起名的時候沒起好。此時最簡單的方法可能大家會想到刪除後重新創建。但是如果目錄中已經有很多內容呢?顯然直接刪除是不合適的,Linux為我們提供了修改目錄名稱的命令,就是mv(move) 命令,其語法為:

$mv olddir newdir

該命令不僅僅可以重命名目錄,還可以將一個目錄整體搬到其它地方。例如下面的例子將會把 mydir 目錄重搬到 newdir目錄下面,成為其子目錄:

$mv mydir yourdir/

查詢目錄

最後就是查詢了,在Linux系統當中,我們可以通過ls命令查詢目錄中的內容,也就是子目錄和文件。ls命令的語法格式為:

$ls path/name

這裡path/name可以是絕對目錄或者相對目錄。如果path/name為空,也就是只有ls命令,則表示為工作目錄。

ls命令是Linux下最為常用的命令之一,其功能也非常強大。前面我們了解了選項的概念,通過選項可以使得命令有更加強大的功能。ls有很多選項,其中比較常用的選項有如下幾個:

-a :全部的文件,連同隱藏檔( 開頭為 . 的文件) 一起列出來-d :僅列出目錄本身,而不是列出目錄內的文件數據-l :長數據串列出,包含文件的屬性與權限等等數據;-i : 顯示文件或者目錄的inode id

好了,今天的內容就到這裡,關於Linux作業系統的更多內容,請關注本號及本號相關專欄。有問題歡迎大家反饋,或者在下面評論。

相關焦點

  • linux常用命令總結
    Linux常用命令查詢一文件目錄操作二 查看文件內容三 文本內容處理命令:/usr/bin/which 執行權限:所有用戶作用:顯示系統命令所在目錄(絕對路徑及別名)which命令的作用是,在PATH變量指定的路徑中,搜索某個系統命令的位置,並且返回第一個搜索結果。
  • Linux Shell命令快捷獲得系統幫助
    久而久之,對學習linux的熱情被怠慢下來了。 其實,這也是學習linux的最大困難。linux命令幫助,一般有2種,命令自身代碼裡面帶有使用幫助說明,這種一般很精簡,太長了,程序自身的大小以及日常維護不方便。還有一種,就是帶有幫助文件,類似windows的chm格式文件。下面我說下這2種怎麼樣查閱。
  • 搞定 Linux 這一篇就他媽夠了!
    1.1目錄操作工作中,最常打交道的就是對目錄和文件的操作。linux提供了相應的命令去操作他,並將這些命令抽象、縮寫。1.1.1 基本操作可能是這些命令太常用了,多打一個字符都是罪過。所以它們都很短,不用阿拉伯數字,一個剪刀手就能數過來。
  • 在Linux作業系統裡使用xargs命令
    linux作業系統專題文章:linux作業系統詳解(linux不再難懂)xargs命令有兩個要點。第一,你必須列出目標文件。第二,你必須指定對每個文件需要執行的命令或腳本。這篇教程會涉及三個應用場景,xargs命令被用來處理分布在不同目錄下的文件:1:計算所有文件的行數2:列印指定文件的第一行3:對每個文件執行一個自定義腳本請看下面這個叫xargstest的目錄(用tree命令以及-i和-f選項顯示了目錄樹結構,這樣可以避免縮進顯示而且每個文件都會帶有完整路徑):
  • Linux:[2]文件和目錄操作
    Linux文件和目錄操作1:文件操作常用命令   1、文件(文件夾)清單命令  ls   2、文件(文件夾)複製命令  cp -R   3、文件(文件夾)移除命令  mv   4、文件(文件夾)刪除命令  rm -rf2:目錄操作常用命令   1、創建目錄  mkdir   2、刪除目錄
  • 每天一個Linux命令(1):ls命令
    由於公眾號粉絲中有很多Linux愛好者,所以今日起會更新「每天一個Linux命令」系列,幫助大家理解學習,如果反饋好的話會持續更新,大家喜歡的話就留言給小微,才有更新的動力。ls命令是linux下最常用的命令。ls命令就是list的縮寫,預設下ls用來列印出當前目錄的清單。如果ls指定其他目錄,那麼就會顯示指定目錄裡的文件及文件夾清單。
  • Linux是什麼作業系統?發展歷史介紹
    Linux是什麼作業系統? 我剛開始學習linux作業系統的時候內心真的很激動,畢竟感覺自己只要學會了就會獲得各種技能一樣了。當然,對於還不是那麼了解的人,也請不要擔心,希望下面我的話能讓你更深的了解Linux系統。
  • 從串口驅動到Linux驅動模型,想轉Linux的必會!
    第一個屬性為 [p]文件結構/:根目錄,所有的目錄、文件、設備都在/之下,/就是Linux文件系統的組織者,也是最上級的領導者。/bin:bin 就是二進位(binary)英文縮寫。在一般的系統當中,都可以在這個目錄下找到linux常用的命令。系統所需要的那些命令位於此目錄。
  • 玩轉嵌入式之如何在Linux系統中搭建tftp伺服器·圖文視頻
    嵌入式linux最常用到tftp命令來完成開發板和Linux系統之間的的文件傳輸,避免了頻繁的U盤拷貝過程。我們知道,Windows下使用「tftpd32.exe」這款軟體可以很方便地在Windows下搭建的tftp伺服器。
  • linux系統中update和upgrade命令區別
    linux系統中update和upgrade命令區別在linux作業系統中update和upgrade都是更新命令:yum upgrade和yum update。兩個命令在linux系統中都是更新所有包,但是兩個命令的側重點不一樣。
  • 【Linux】常用命令:rm 高級用法簡單講
    作者:不愛孤獨愛戰爭來源:微信公眾號 光榮之路(ID:gloryroadtrain)Linux常用命令第五集包含命令:rm一、命令簡介刪除一個目錄中的一個或多個文件或目錄,如果沒有使用- r選項,則rm不會刪除目錄。
  • Linux 命令行下的好東西
    這篇文章僅討論 Linux 環境下的東西,很顯然對 MacOS 也適用。其實很多東西雖然有 Windows 也可以找的到但配置比較麻煩,這裡不再仔細講。很多東西像 Linux 老鳥看起來會覺得哈哈哈實在是太基礎。但是像 cd, ls, mkdir 這些太基礎的寫在這裡又顯得太業餘,所以很多十分常用的命令這邊我也跳過了。
  • Linux shell命令總結大全
    但是實際上在使用的時候,會遇到各種各樣的問題,前幾天我在我們的項目上需要做一個功能,根據進程名字殺死這個進程,下面是過程1、我們正常需要的操作是$ps |grep xxx $kill -9 xx2、kill命令是常用的,但是用killall
  • Linux-vi編輯器之簡單常用命令
    Ubuntu下的VI編輯器的使用1.實驗知識點2.Vi編輯器的工作文件3.Vi編輯器下文本的保存與退出實驗步驟練習一:切換到root用戶:1.請在/root這個目錄下建立一個vitest的目錄;命令:mkdir vitest2.進入vitest這個目錄當中3.將 /etc/manpath.config拷貝到本目錄底下;命令:cp /etc/manpath.config /root/vitest4.使用 vi 開啟本目錄下的manpath.config這個檔案;命令:vi manpath.config
  • Linux中4種rm命令的使用方法
    大家好啊,這周的最後一天啦,寫文章的同時已經開始想這周末應該怎麼過了!仔細想想發現,還是躺床上躺到該上班的時候。。今天給大家說一下rm命令的4中使用方法,rm命令可以說是Linux中比較常用的命令了,通俗的講,我們可以認為 rm 命令是用於刪除文件和目錄的。raksmart美國伺服器。
  • 幫你精通Linux:簡約卻不簡單的ls命令
    ls 命令即 list directory contents是我們最為熟悉的Linux命令。它就如車載或者手機中的導航地圖,徹底解放了我們的大腦,片刻不能離身。否則我們下樓取個快遞,都得繞18道彎才能勉強找回家。
  • 【奇技淫巧】linux、windows下壓縮打包命令整理
    windows下還在用webshell一個個目錄下源碼嗎?小弟整理了些linux和windows下壓縮打包命令,現在分享給大家,希望能幫助到大家。linux(主要使用find和tar函數)1、直接打包(1)將mail壓縮打包至videos目錄下tar -zcvf  /home2/public_html/uploads/videos/videos.tar.gz  /home2/mail/ --ignore-failed-read(2)以時間過濾直接壓縮打包製定目錄下
  • Linux系統top命令中的io使用率,很多人都誤解了它的具體含義
    最近在做連續數據流的緩衝系統,C語言代碼實現後,粗略測試了下,功能上應該沒有問題。那麼,接下來就該測試性能了。輸入 top 命令,的確可以看到一系列 cpu 使用率,其中一個值得注意的子項就是 io 使用率了,如下圖:
  • 在 Linux 上如何清理垃圾系統管理員 | Linux 中國
    我們經常會發一些關於關於 Bash 別名的文章,總有一些同學皮一下「貢獻」一些別致的別名,比如 alias ls=rm -rf,alias cd=rm -rf 等等。雖然我認為幾乎沒有人會被這些命令惡搞,但是大家也屢屢樂此不疲。我將這張圖發到朋友圈裡,好友「龍十三」表示,這不僅僅清除垃圾文件,而且清除垃圾系統管理員。是啊,為什麼會有這樣的段子一再出現呢?
  • Linux編輯器中vi常用命令
    vi是Linux中功能強大的編輯器,下面是vi常用命令介紹vi 編輯器中有三種模式,分別為:命令模式、編輯模式和末行模式. .0移動到這一行的第一個字符處(常用)$移動到這一行的最後一個字符處(常用)H光標移動到這個屏幕最上方的那一行M光標移動到這個屏幕中央的那一行L光標移動到這個屏幕最下方的那一行G移動到這個文件的最後一行nG移動到這個文件的第n行n光標向下移動n行命令模式查找與替換/word向光標之後查找一個名為word的字符串?