一. 文件管理
文件被組織到文件系統(file system)中,通常會成為一個樹狀(tree)結構。Linux有一個根目錄/, 也就是樹狀結構的最頂端。這個樹的分叉的最末端都代表一個文件,而這個樹的分叉處則是一個目錄(directory, 相當于我們在windows界面中看到的文件夾)。在圖1中看到的是整個的一個文件樹。如果我們從該樹中截取一部分,實際上也構成一個文件系統。
要找到一個文件,除了要知道該文件的文件名,還需要知道從樹根到該文件的所有目錄名。從根目錄開始的所有途徑的目錄名和文件名構成一個路徑(path)。比如說,我們在Linux中尋找一個文件,不僅要知道文件名還要知道完整路徑,也就是絕對路徑從根目錄錄,也就是樹狀結構的最頂端出發,經過一層層目錄最終才看到文件。整個文件系統層層分級。
1.Linux中顯示文件目錄結構通常用ls 來查看。
ls +選項 + 【file】、
ls 的命令參數有很多可以通過查看 ls -help
如: ls 顯示所有文件
ls -1 顯示所有文件;按行顯示的
ls -l 顯示所有文件具體信息,如創建者,創建時間,文件的讀寫權限列表等等
ls -a 包含隱藏文件
ls -R 目錄遞歸
ls -S 按從小到大順序
ls -A 列出除了“.”和“..”以外的文件
2 linux中可以通過查看路徑來知道目錄結構這就用到了tree
tree -help
tree -a 顯示所有文件和目錄
-A 使用ASNI繪圖字符顯示樹狀圖而非以ASCII字符組合。
-C 在文件和目錄清單加上色彩,便于區分各種類型。
-d 顯示目錄名稱而非內容。
-D 列出文件或目錄的更改時間。
-f 在每個文件或目錄之前,顯示完整的相對路徑名稱。
-F 在執行文件,目錄,Socket,符號連接,管道名稱名稱,各自加上””,”/”,”=”,”@”,”|”號。
-g 列出文件或目錄的所屬群組名稱,沒有對應的名稱時,則顯示群組識別碼。
-i 不以階梯狀列出文件或目錄名稱。
-I <范本樣式> 不顯示符合范本樣式的文件或目錄名稱。
-l 如遇到性質為符號連接的目錄,直接列出該連接所指向的原始目錄。
-n 不在文件和目錄清單加上色彩。
-N 直接列出文件和目錄名稱,包括控制字符。
3.有時顯示為了美觀與整潔我們就用到了通配符
– 通配符,代表任意字符(0到多個)
? – 通配符,代表一個字符
# – 注釋
/ – 跳轉符號,將特殊字符或通配符還原成一般符號
| – 分隔兩個管線命令的界定
; – 連續性命令的界定
~ – 用戶的根目錄
$ – 變量前需要加的變量值
! – 邏輯運算中的”非”(not)
/ – 路徑分隔符號
>, >> – 輸出導向,分別為”取代”與”累加”
‘ – 單引號,不具有變量置換功能
” – 雙引號,具有變量置換功能
` – quote符號,兩個“中間為可以先執行的指令
() – 中間為子shell的起始與結束
[] – 中間為字符組合
{} – 中間為命令區塊組合
[0-9]匹配數字范圍
[a-z]同上字母范圍
[A-z]字母范圍
[wamg]匹配列表中的任何一個字符
[^wang]匹配列表中的所有字符以外的字符
4 .touch命令
touchu [option][file]
5.復制文件和目錄cp
如果目標不存在:新建的dest,并將src中內容填充至dest中
如果目標存在:將src中的內容覆蓋到dest中
-a 或 –archive 此參數的效果和同時指定”-dpR”參數相同
-b 或 –backup 刪除、覆蓋目的文件先備份,備份的文件或目錄亦建立為符號鏈接,并指向源文件或目錄鏈接的源文件或目錄。假如沒有加上這個參數,在復制過程中若遇到符號鏈接,則會直接復制源文件或目錄
-f 或 –force 強行復制文件或目錄, 不論目的文件或目錄是否已經存在
-i 或 –interactive 覆蓋文件之前先詢問用戶
-l 或 –link 對源文件建立硬鏈接,而非復制文件
-p 或 –preserve 保留源文件或目錄的屬性,包括所有者、所屬組、權限與時間
-P 或 –parents 保留源文件或目錄的路徑,此路徑可以是絕對路徑或相對路徑,且目的目錄必須已經豐在
-r 遞歸處理,將指定目錄下的文件與子目錄一并處理。若源文件或目錄的形態,不屬于目錄或符號鏈接,則一律視為普通文件處理
-R 或 –recursive 遞歸處理,將指定目錄下的文件及子目錄一并處理
6. mv 移動和重命名文件
通常用的:
mv -i 交互式
mv -f 強制
本章中最重要的一個名命令rm
如: rm -rf *
二 重定向和管道
所謂的重定向就:重新定義,并將其轉向其他位置
如:ls -a > abc.txt
這句就是指將ls 不再終端顯示而是把內容保存在文件abc.txt中。
1.a重定向符號
> 輸出重定向到一個文件或設備 覆蓋原來的文件
>! 輸出重定向到一個文件或設備 強制覆蓋原來的文件
>> 輸出重定向到一個文件或設備 追加原來的文件
< 輸入重定向到一個程序
1.b標準錯誤重定向符號
2> 將一個標準錯誤輸出重定向到一個文件或設備 覆蓋原來的文件 b-shell
2>> 將一個標準錯誤輸出重定向到一個文件或設備 追加到原來的文件
2>&1 將一個標準錯誤輸出重定向到標準輸出 注釋:1 可能就是代表 標準輸出
>& 將一個標準錯誤輸出重定向到一個文件或設備 覆蓋原來的文件 c-shell
|& 將一個標準錯誤 管道 輸送 到另一個命令作為輸入
2. 管道
將一個命令傳送給另一個命令 符號 | 來連接命令
如 命令1| 命令2|命令3…….
如 將一個文件中的字母大寫變小寫
ls | tr ‘A-Z’ ‘a-z’
三.用戶.組和權限
1.linux中每個用戶必須屬于一個組.
有 所有者 所在組 其他組 改變用戶所在的組
如 用戶的創建 useradd 命令:
-c comment 指定一段注釋性描述。
-d 目錄 指定用戶主目錄,如果此目錄不存在,則同時使用-m選項,能創建主目錄。
-g 用戶組 指定用戶所屬的用戶組。
-G 用戶組,用戶組 指定用戶所屬的附加組。
-s Shell文件 指定用戶的登錄Shell。
-u 用戶號 指定用戶的用戶號,如果同時有-o選項,則能重復使用其他用戶的標識號。
如:useradd -d / usr wang -m wang
這個命令創建了一個用戶網wang 其中 -d 和 -m選項用來為登錄名wang 產生一個主目錄/usr/wang
2.刪除用戶
userdel 常用選項是 -r 主要是把用戶和主目錄一塊刪除
3.修改用戶:
usermod
如 usermod -l 指定一個新用戶
4. 主要的內容文件權限
文件屬性操作:
chgrp :改變文件所屬組
chown :改變文件擁有者
chmod :改變文件權限
4.1 文件的權限主要針對三類對象進行定義
owner:屬主.u
group:屬組 .g
other:其他.o
每個文件都設置三種權限 r w x
4.2 文件:目錄
r :可使用文件查看類工具獲取其內容 :可以使用ls查看此目錄中文件列表
w :可以修改其內容 :可以在此目錄中創建文件。也可以刪除
x :可以把此文件提請內核啟動為一個進程 :可以使用ls -l查看此目錄 也可以cd
通常我們所說的兩種方法 模式法 數字
r:4 w:2 x :1
例如一個文件的權限[-rwxrwxr-]
u=4+2+1 g=4+2+1 o=4+0+0
4.3 改變權限 .chmod
修改 一類用戶的所有權限
u= g = o=
如
chomod u=rwx .g-w o+r
就是把 主賦值 rwx 組去掉w 其他組加上r
原創文章,作者:gd1479,如若轉載,請注明出處:http://www.www58058.com/77070