一、Linux的目錄樹結構
1 、了解目錄樹結構


2、絕對路徑與相對路徑
- 絕對路徑
- 一定是以"/"(根)開頭,它是唯一 一個絕對能夠描述檔案所在路徑的方式,
- “/” 根目錄是linux作業系統最頂級的目錄,沒有任何路徑比它還要靠前,
- 相對路徑
- 路徑是相對的,檔案所在的路徑是相對于當前所在路徑而言的,
- 當前路徑使用 .或./ 表示;當前目錄的上一級目錄使用 … 或 …/ 表示
- 當前用戶家目錄使用 ~ 表示;上次作業路徑使用 - 表示
路徑切換和查看的相關命令:
二、CentOS7檔案操作管理
重要: Linux下,一切皆檔案!!!
檔案操作命令基礎模型:
1. 檔案型別的判斷 (file)
- 常見檔案型別

- 用 file 命令來判斷檔案型別

2、列出目錄內容 (ls)
常見選項
-a all,查看目錄下的所有檔案,包括隱藏檔案
-l 長串列顯示
-h human,以人性化方式顯示出來
-d 只列出目錄名,不列出其他內容
-t 按修改時間排序
-r 逆序排列
-S 按檔案的大小排序
-i 顯示檔案的inode號(索引號)
-R 遞回列出目錄中的內容
-m 用逗號分隔顯示內容
示例:以不同的選項列出/root目錄里的內容
[root@localhost ~]# ls -a /root
[root@localhost ~]# ls -l /root
[root@localhost ~]# ls -lh /root 長串列列出且人性化
[root@localhost ~]# ls -lt /root
[root@localhost ~]# ls -S /root
[root@localhost ~]# ls -R /root
[root@localhost ~]# ls -d /root 查看/root目錄本身的資訊
3、創建目錄 (mkdir)
常見選項
-p 級聯創建
[root@localhost ~]# mkdir /test/ 在根下創建test目錄
[root@localhost ~]# mkdir ./test/ 在當前目錄下創建test目錄
[root@localhost ~]# mkdir -p /test/yunwei/dir
說明:1.如果創建的目錄的上一級目錄不存在,就需要加-p引數;-p在前面和后面都可以
4、創建檔案 (touch)
Linux下檔案的命名規則:
- 檔案名嚴格區分大小寫 file FILE
- 檔案名不能包含特殊符號,如 (/或*等)
- 檔案名最多可達255個字符
創建一個新的空檔案(目標檔案不存在)
[root@localhost ~]# touch /tmp/file1 在/tmp目錄下創建file1檔案
[root@localhost ~]# touch file1 在當前目錄下創建file1檔案
思考: 這2個file1檔案是同一個檔案嗎?
答:不是同一個檔案,因為路徑不一樣,
修改檔案的時間(目標檔案存在)
- 查看檔案的相關時間
[root@localhost tmp]# stat file1 查看檔案的狀態資訊
File: `file1'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d Inode: 915714 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2010-12-11 17:36:00.353096343 +0800
Modify: 2020-12-11 17:36:00.353096343 +0800
Change: 2020-12-11 17:36:00.353096343 +0800
Access: 檔案的查看訪問時間
Modify: 檔案的修改時間
Change: 檔案的屬性時間,檔案的大小、權限等資訊發生改變時,該時間會變化
- 修改檔案的時間
[root@localhost tmp]# touch -a file1 -t 201506161320 修改檔案點訪問時間
[root@localhost tmp]# touch -m file1 -t 201612121330 修改檔案修改時間
-a:訪問時間
-m:修改時間
-t:時間型別格式
[root@localhost tmp]# touch -d 20110808 file1 修改檔案日期
[root@localhost tmp]# touch -d 1215 file1 修改檔案時間
[root@localhost tmp]# touch -d "20101012 11:11:11" file1 修改檔案的日期和時間
只需要掌握 touch -d 的用法即可,
5、查看檔案內容
- cat 命令:一般查看 小檔案 ,從第一行到最后一行列出來
常見選項:
-n:顯示行號
-A:顯示控制字符,如換行符,制表符等( linux $ 和 Windows ^M$ ) - tac 命令:一般查看 小檔案 ,從最后一行到第一行列出來
- more和less 命令:一般查看 大檔案 , more -5 表示5條為一頁資料查看,
space鍵下一頁,q退出查看,可以搜索,建議less命令 - head 命令:默認查看檔案前10行, head -n 15 或 head -15 表示查看前15行
- tail 命令:默認查看檔案后10行, tail -n 15 或 tail -15 表示查看后15行;
-f表示動態查看(實時重繪看到最新的檔案內容) - ldd 命令:一般用來查看 二進制 的命令檔案
[root@localhost tmp]# cat /etc/passwd 查看/etc/passwd檔案內容
[root@localhost tmp]# cat -n /etc/passwd 查看/etc/passwd檔案內容,并列印行號
[root@localhost tmp]# tac /etc/passwd 查看/etc/passwd檔案內容
[root@localhost tmp]# head -5 /etc/passwd 查看/etc/passwd檔案的前5行內容
[root@localhost tmp]# tail -5 /etc/passwd 查看/etc/passwd檔案的后5行內容
[root@localhost tmp]# more -5 /var/log/messages 5條資料為一頁查看
[root@localhost tmp]# less /var/log/messages 與more類似
[root@localhost tmp]# ldd /bin/mkdir 查看mkdir命令檔案(二進制)的內容
6、拷貝檔案 (cp)
注意: 僅限于本地檔案拷貝
常用選項:
-a 遞回拷貝檔案,包括目錄及檔案屬性資訊
-r 拷貝目錄
-p 拷貝檔案包含檔案的屬性資訊
-v 顯示拷貝程序資訊
-f 覆寫已經存在的目標檔案而不給出提示
用法:
cp [選項] 需要拷貝的檔案 拷貝到哪里去
[root@localhost ~]# cp /root/file1 /home 拷貝/root/下的file1檔案到/home目錄下
[root@localhost ~]# cp -r /home/itcast /root 拷貝/home/itcast目錄到/root目錄下
[root@localhost ~]# su - user01 切換到user01用戶下
[user01@localhost ~]$ touch file1
[root@localhost ~]# cp -p /home/user01/file1 /tmp/ 拷貝home/user01/file1檔案(包含屬性資訊)到/tmp下
[root@localhost ~]# cp /root/file1 /tmp/test1 拷貝檔案并且重命名
思考:-a 和 -p 有什么區別?
答:相同點都是需要拷貝檔案的屬性資訊,比如擁有者(誰創建的等);不同點在于,-p只能拷貝檔案,-a既可以拷貝檔案也可以拷貝目錄,
7、移動或重命名檔案 (mv)
移動檔案用法(不同路徑下):
# mv 需要移動的檔案 移動到新的路徑下
注意:檔案的路徑不一樣
重命名用法(相同路徑下):
# mv 原來檔案的名字 新檔案的名字
注意:老檔案和新檔案的路徑一樣
# mv /root/file1 /tmp 移動/root/file1檔案到/tmp目錄下
# mv /tmp/file1 /tmp/test1 將/tmp目錄下的file1檔案重命名成test1
8、洗掉檔案(rm)
常用選項
-r 遞回洗掉,一般用于洗掉目錄
-f 直接洗掉,不提示
[root@localhost tmp]# rm file1 洗掉當前目錄下的file1檔案,有提示
[root@localhost tmp]# rm -r dir1 洗掉當前目錄下的dir1目錄包含的檔案,有提示
[root@localhost tmp]# rm -f /root/file1 強制洗掉/root/file1檔案,不提示,直接刪
[root@localhost tmp]# rm -rf /root/ 強制洗掉/root/目錄以及包含的檔案,無提示直接刪(危險,慎重使用)
rm -rf /* 刪庫跑路 ,你懂的
擴展補充
一、Linux下如何獲取幫助
學會看幫助檔案,就不需要再死記硬背這些命令引數了
1、簡約求幫助(help)
help命令:知道該命令的含義,相關引數不知道可以使用 help
內部命令求幫助:help 命令
外部命令求幫助:命令 --help
cp --help
help cd
內部命令:指的是集成于Shell解釋器程式(如Bash)內部的一些特殊指令,也成為內建(Built-IN)指令,內部命令屬于Shell的一部分,所以并沒有單獨對應的系統檔案,只要Shell解釋器被運行,內部指令也就自動載入記憶體了,用戶可以直接使用,內部命令無需從硬碟中重新讀取檔案,因此執行效率更高,
外部命令:指的是Linux系統中能夠完成特定功能的腳本檔案或二進制程式,每個外部命令對應了系統中的一個檔案,是屬于Shell解釋器程式之外的命令,所以稱為外部命令,Linux系統必須知道外部命令對應的檔案位置,才能夠由Shell加載并執行,
Linux系統默認會將存放外部命令、程式的目錄(如/bin、/usr/bin、/usr/local/bin等)添加到用戶的“搜索路徑”中,當使用位于這些目錄中的外部命令時,用戶不需要指定具體的位置,因此在大多數情況下,不用刻意去分辨內部、外部命令,其使用方法是基本類似的,
2、詳細求幫助(man)
實體:
[root@localhost ~]# man cp 查看cp命令的用法和引數

二、Bash的標準輸入輸出
1、名詞解釋
標準輸入(stdin):鍵盤上的輸入 檔案描述符—>0
標準輸出(stdout):螢屏上正確的輸出 檔案描述符—>1
標準錯誤(stderr):螢屏上錯誤的輸出 檔案描述符—>2
檔案描述符是什么意思?
當執行shell命令時,會默認打開3個檔案,每個檔案有對應的檔案描述符來方便我們使用:
因此我們平時在執行shell命令中,都默認是從鍵盤獲得輸入,并且將結果輸出到控制臺上,但是我們可以通過更改檔案描述符默認的指向,從而實作輸入輸出的重定向,比如我們將1指向檔案,那么標準的輸出就會輸出到檔案中,
2、相關符號
>:標準輸出重定向,覆寫重定向, 1>或> 標準輸出重定向, 2> 標準錯誤重定向>>:重定向追加, 1>> 標準輸出追加, 2>> 標準錯誤追加<:標準輸入&>:標準輸出標準錯誤重定向
3、舉例說明
① 環境準備

② 需求1: 將標準輸出(螢屏上的正確結果)重定向到 /tmp/test.log 檔案中

③ 需求2:將標準錯誤(螢屏上的錯誤結果)重定向到/tmp/test1.log檔案中

注意:>或者2>都表示覆寫重定向
例子: 查看/etc/hosts檔案內容,并將標準輸出重定向到/tmp/test1.log

總結: >或者1>表示標準輸出重定向;2>表示標準錯誤重定向
④ 需求3:將標準輸出和標準錯誤一起重定向到 /tmp/test2.log

&> 表示標準輸出和標準錯誤一起重定向
4、echo命令
echo會將輸入的字串送往標準輸出,并在最后加上換行符, 可以理解為列印字串,
常見選項:
-n :不輸出最后的換行符“\n”
-e:解釋轉義字符(字串中出現\n、\t等特殊字符,則特別加以處理,而不會將它當成一般文字輸出)
舉例說明:
[root@localhost ~]# echo hello world 列印hello world
hello world
[root@localhost ~]# echo aaaa 列印aaaa
aaaa
[root@localhost ~]# echo hello > file1 將hello重定向到file1檔案中
[root@localhost ~]# cat file1
hello
總結:
1. echo表示列印字串,默認將字串送往標準輸出;默認會列印一個換行符
2. echo可以結合>或者>>符號來使用,進行檔案的創建或內容追加,
常見控制字符:
\t 表示制表符
\n 表示換行符
[root@localhost ~]# echo -e 'date\nuuu' > 1.sh //-e表示將\n解釋為換行符
[root@localhost ~]# cat 1.sh
date
uuu
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/254849.html
標籤:其他
上一篇:Linux下BMP圖片添加水印



