Linux文件操作總結

1.目錄操作:

pwd命令:顯示當前目錄

不論是我們使用Windows操作系統還是Linux,當我們以任何一個用戶身份登錄到系統中時,都是在一個目錄下面的,比如我們常見的下面這個界面:

092329325.png

初次登錄的時候Windows會讓我們處於和我們的用戶身份同名的文件夾下,這個目錄在Linux中稱之爲家目錄:

092345975.png

由於我使用的是桌面版,所以剛登錄的時候是處於桌面目錄下,但使用pwd命令查看時,我們會發現我們處在root用戶的家目錄root目錄下的Desktop目錄下。

命令行前面中括號部分稱之爲主提示符,@符號之前是當前登錄的用戶身份,@符號後面指的是主機名空格當前目錄名,而使用pwd命令的目的是查看該目錄的絕對路徑,因爲系統中存在很多相同名字的目錄。


cd命令:切換當前目錄

cd命令很簡單,跟windows我感覺完全一樣,讀者如果學過不適用IDE寫Java程序一定對cd命令很熟悉,比如說我們要切到跟目錄下的etc目錄下:

093540479.png

需要注意的是跟windows不同,Linux的目錄分隔符是/,而windows是\

另外如果cd 不加參數,回車就會回到當前用戶的家目錄:

093555312.png

在主提示符裏面使用 ~ 來代替家目錄,讀者如果看的不是很明白我們可以切換一下用戶身份來重複這個命令來看看(當前我是root身份):

093605467.png

原本我是在root用戶的家目錄root目錄下,而我直接切換到rhel用戶的時候,目錄位置沒有變,使用cd命令之後,發現我的當前目錄是/home/rhel,因爲除了root用戶的家目錄是在根目錄下的root目錄以外,普通用戶的家目錄都在/home目錄下面,這也印證了cd不加參數時的作用,注意看此時的主提示符上顯示的也是 ~ 。另外和Windows中一樣,Linux中也用 . 來表示當前目錄,用 .. 表示當前目錄的父目錄。

ls命令:列出當前或指定目錄下的文件和目錄。

用法:ls [選項] [目錄或文件],常用方法是cd到指定目錄然後ls查看目錄內容:

092530460.png

還有幾個常用可選選項:

-l 代表列出文件詳細信息(單位字節數)

092548594.png

-h -l 代表列出文件具體大小(使用KMG單位

092602237.png

[指定目錄的絕對路徑]:列出該目錄下的文件信息,比如我們想在家目錄下查看/etc/sysconfig目錄中的內容:


092616517.png


-a 顯示所有文件(包括隱藏文件,以點開頭的文件名文件)

092634575.png

查看一個目錄本身的詳細信息:

ls -l -d /root/

093624542.png

單獨用-d選項沒有意義,一般跟-lh一起用,表示查看當前目錄的詳細信息(文件類型和權限,包含鏈接數,文件屬主,文件屬組,文件大小,創建時間)該信息的詳解在另一篇博文《ls -l 顯示出來的文件信息字段的具體含義(最全)》有詳解。

mkdir命令:創建目錄(make directory

不加任何選項,直接跟要創建的目錄名,就在當前目錄下創建一個新目錄:

093634319.png

如果我們需要創建嵌套的目錄:mkdir /aa/bb/cc 這樣寫會出錯的,這條命令的意思是 在/aa/bb目錄下創建cc目錄,而/aa/bb/目錄並不存在,解決方法就是在後面加上-p選項:

092907904.png

這個命令可以同時創建多個目錄(藍色字體就是表示目錄):

092941955.png

2.文件操作

touch命令:創建一個空的普通文件。

093010305.png

跟mkdir類似,touch也可以同時創建多個文件,這裏不再贅述

cp命令:拷貝文件或目錄到指定位置,格式:cp + 原文件 + [目標路徑+]文件名

093031730.png

這條命令的含義爲:講abc.txt的文件內容拷貝一下,放到自動創建的a.txt文件中。

如果想拷貝到指定目錄,只需要在目標文件名前面加上絕對或者相對路徑即可:

093150942.png

以上是拷貝文件,如果是拷貝目錄的時候,注意加上-r選項,表示遞歸拷貝整個目錄樹:

093204627.png

rm命令:remove刪除。刪除文件或者目錄(刪除目錄時需要加-r選項表示刪除整個目錄樹)

格式:rm [選項] 文件或目錄 刪除時不提示確認 刪除目錄必須加 -r

093218977.png

rm -f 文件表示強制刪除不提示確認

rm -rf 將該目錄直接刪除 比較常用,比如想刪除整個cc目錄:

093230186.png


mv命令:兩個作用,一是移動文件或目錄,二是重命名文件或目錄

移動文件:將a.txt移動到a目錄下。

093243134.png

移動目錄:

093256354.png

可以發現它和cp命令的格式完全一樣,只不過不需要考慮目錄和文件的不同,不需要加選項-r

改名:

我們把abc.txt改成cba.txt:

093316780.png

我們會發現如果mv的原位置和目標位置一樣,則相當於改名

find命令:查找指定文件位置

格式:find 查找範圍 [查找條件]

常用查找條件

 -name 按照文件名查找  find / -name abc.txt 在根目錄下查找abc.txt文件

 -user 按照文件屬主查找 find / -user root 表示查找該用戶的文件或目錄

 -type 按照文件類型查找 find / -type f 表示查找文件-type d 表示查找目錄

比如我們要在根目錄下查找cba.txt文件,就可以這樣寫:

093329139.png

這樣查找會比較慢,因爲要遍歷整個目錄樹

因此爲了提高效率,我們可以增加其他約束條件縮小查找範圍:

比如我們要查找指定用戶的所屬文件:

我們先使用rhel用戶身份創建一個文件,然後查找:

093342786.png

指定文件類型同理,這裏不再演示。

通配符* 代表多個字符查找abc 不知道擴展名 用 abc.* 不要寫成abc* *是不能直接放在最後,需要和.同時存在通配符?代表一個字符,比如:

093400843.png

cat命令:讀取普通文件內容並輸出到控制檯

格式很簡單,直接跟上文件名即可:

093412881.png

這個命令適用於比較小的文件,如果文件內容很長就不適用了。

less命令:進入交互式環境翻頁顯示文件內容,上下鍵翻頁,q鍵退出。

093424624.png

093434338.png

交互式環境,Q鍵退出。

grep命令,查找並顯示文件中包含指定字符串的行。

格式:grep [選項] 查找條件 目標文件

比如我們要查找fstab文件中包含ext3的行:

093448168.png

與剛纔的less的示例圖對比一下,就能理解這條命令的意思了。這條命令輸出的就是fstab文件中包含ext3的那一行。

終於寫完了,本來以爲Linux裏面的文件操作很簡單呢,結果一直整理到現在,整理的過程中也發現自己不少問題,看來真是老師說的對,聽懂了不一定就掌握了,如果你會了之後能給一個什麼都不會的人講明白那纔算真正掌握。希望讀者也能借鑑這種方法,把學過的東西整理出來,寫出一個文字小教程,如果你的教程能讓一個沒有學過的人看明白,那你就真的掌握了。你幫助別人的同時,自己也得到提升,我想這就是寫技術博客的意義所在。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章