??
目錄
?1.ls指令
?1.1 ls使用實例
?2.pwd指令
3.cd指令?
3.1 cd使用實例
4.touch指令?
4.1touch使用實例?
5.mkdir指令
5.1mkdir使用實例
6.rmdir指令和rm指令
6.1 rmdir指令使用實例->:
?6.2 rm指令使用實例
7.man指令
8.cp指令
8.1 cp 使用實例
9.mv指令
9.1mv使用實例
10.cat指令
10.1cat使用實例
11.完結
每一個存在都有問鼎的機會
?1.ls指令
語法:ls [選項] [目錄或文件]
功能:1.對于目錄,列出該目錄下所有子目錄與文件
? ? ? ? 2.對于文件,將列出文件名以及其他信息
注:所有的指令的選項都是在其基礎上增加新的功能(并不會覆蓋舊功能)
這里我想說的是不要看常用選項中沒有寫目錄就以為不會列出目錄
常用選項->:
-a 列出目錄下的所有文件,包括以 . 開頭的隱含文件
-d 將目錄像文件一樣顯示,而不是顯示其下的文件。 如: ls –d 指定目錄
-i 輸出文件的 i 節點的索引信息。 如 ls –ai 指定文件
-k 以 k 字節的形式表示文件的大小。 ls –alk 指定文件
-l 列出文件的 詳細信息 。
-n 用數字的 UID,GID 代替名稱。 (介紹 UID , GID )
-F 在每個文件名后附上一個字符以說明該文件的類型, “*” 表示可執行的普通文件; “/” 表示根目錄.
“@” 表 示符號鏈接;“|” 表示 FIFOs ; “=” 表示套接字 (sockets) 。(目錄類型識別)
-r 對目錄反向排序。
-t 以時間排序。
-s 在 l 文件名后輸出該文件的大小。(大小排序,如何找到目錄下最大的文件)
-R 列出所有子目錄下的文件。 ( 遞歸 )
-1 一行只輸出一個文件。
?1.1 ls使用實例
單獨使用 ls 講解->:
這里的pwd是展示當前所處目錄,我們使用ls意味著展開/root中的文件或目錄,圖片上展開的是root中的112目錄(這里的112是自己創建的目錄,如何創建后面會講)
ls -a?講解->:
我們會發現,使用ls -a會多了許多東西,這些其實都是隱藏文件,因為它們都帶有隱藏文件的標識符,也就是一個小點,以小點開頭的就代表了隱藏文件
所以,-a 的作用是,展示當前目錄下的文件/目錄(包含隱藏文件)
ls -l 講解->:
這里多出來的部分其實是文件/目錄的詳細信息,也就是說 -l 會列出文件的詳細信息
我們可以觀察到詳細信息是以d開頭的,這意味著它是一個目錄
如果是文件,它的詳細信息就不是d開頭的
ls?-n 講解->:
我們會發現兩處有些不同,這是因為 -n 的作用是列出詳細的信息時用數字的UID,GID代替名稱(這里先不用管UID,GID)
注意:在Linux中,選項的順序并不會影響實際效果,這就意味著我們可以一起使用,如下->:
我們會發現,它既打印出來隱藏文件,又打印出了詳細信息,并且二者的結果一樣,說明順序不影響。
當然我們也可以使用 ls -aln,并不會有選項的數量限制
?2.pwd指令
pwd指令很簡單,它的作用就是展示當前所處目錄(不展示文件)
如圖,我們當前處于root目錄下
3.cd指令?
語法: cd 目錄名
功能: 改變工作目錄,將當前目錄改變到指定目錄下
由于cd的語法很少,我們直接舉例展示
我們先講一個知識點
在Linux下,所有的目錄/文件都是從根目錄開始的,因此我們可以順著一條線找到目錄或文件
而根目錄的標識就是一個斜杠 /
3.1 cd使用實例
用法一: cd 絕對路徑
接下來我們會細致的分析cd絕對路徑,在使用cd絕對路徑時,需要一層一層的寫絕對路徑,我們用圖片展示->:
這里我們知道,root是根目錄下的目錄,因此我們可以直接跳到root目錄
當然我們也可以這樣寫->:
這里最開始寫上的?/ 代表從根目錄開始走,跳到根目錄下的root目錄,而上一種寫法的意義為在當前目錄下查找root目錄,如果查找到了則進行跳轉,否則報錯
(?
/
只有在路徑的開頭時代表根目錄,其余都表示分隔符)
接下來我們想跳到root下的112目錄,我們可以這樣寫->:
我們發現我們使用/112會報錯,這是因為 / 代表從根目錄下開始查找,而我們不加 / 后,就會從當前目錄下開始查找能否跳轉,也就會成功
我們可以從root直接找到112嗎?
這就要看我們怎么寫了,如下圖->:
可見,直接在根目錄下找112是找不到的,會報錯,而先進入root再進入112,就可以跳到112了
cd 可以跳到文件里嗎?不可以,因為我們在功能上說了,它是跳到目錄下
有道友問了?我們那么多文件,我怎么知道文件都叫什么啊?
這時就要用到 ls指令 了啊,用ls列表出當前目錄下的所有文件,就知道都叫什么了
用法2: cd 相對路徑
相對路徑有兩種,一種為 .. ——? 一種為 . 沒錯,你沒看錯,就是點,兩個點代表上級目錄或文件,一個點代表 當前目錄/文件,我們展示一下->:
我們可以看到,cd .代表跳到當前目錄,也就是沒跳別的地方,pwd也就沒改變,
cd .. 代表跳到上級目錄,也就從112中跳出去了,跳到了root
用法3: cd 相對路徑+絕對路徑
相對路徑和絕對路徑可以一起使用,如下->:
這里我們細致的講一下如何實現的
我們首先看紅色的,我們使用相對路徑跳到上級目錄,然后又執行了 /lesson2 , 此時,這里的/就不代表從根目錄下查找,因為你一種是相對路徑一種是絕對路徑,/ 就相當于變為了一種分隔符類似的,變成了代表從當前目錄下查找
所以實際上執行的是,先跳到上級目錄(跳到目錄112中),然后在目錄112中查找lesson2目錄
cd ../..,這是因為兩個上級目錄不可以連續使用,如cd ....,所以 / 也變成了一個分隔符,它是先跳到了上級目錄112中,然后從112中跳到了root
用法4: cd /
我們上面提到過,/ 是根目錄,而cd / 可以直接跳到根目錄下,如下圖->:
用法5: cd ~
cd ~ 可以讓我們直接跳到家目錄下,什么是家目錄?就是我們當前用戶的目錄
如下圖->:
用法6: cd -?
cd - 可以退回到上一次的所在目錄,如下圖->:
4.touch指令?
語法: touch [選項] [文件]
功能 : 命令參數可更改文檔或目錄的日期時間,包括存取時間和更改時間,或者新建一個不存在的文件
常用選項->:
-a : 只改變access time
-c : 只改變modification time
4.1touch使用實例?
用法1 ->: touch 文件名
我們先觀察到,lesson2中并沒有任何文件或目錄,我們在當前目錄下touch創建一個test2的文件,再用ls展開當前目錄,發現,確實創建了,并通過ls -l 詳細的看到確實是文件
nano +普通文件名字
指令:通過nano指令可以進入文件寫代碼;
輸入nano test2后,我們會進入下面的畫面
如果寫完了可以使用 ctrl + x 進行保存,之后在最下面會彈出一個選項,摁Y確認,再摁回車保存即可
之后我們可以使用cat指令輸出文件內容(后面講cat指令)
5.mkdir指令
語法: touch [選項] dirname
功能 : 在當前目錄下創建一個名為 "dirname" 的目錄
常用選項->:
-p :可以一次建立多個目錄
5.1mkdir使用實例
用法1->: mkidr 目錄名
我們可以觀察到,最開始的lesson2目錄中只有一個test2文件,而我們mkdir后,新增了兩個目錄,這就是mkdir的使用
mkdir可以直接創建多個目錄,如下->:
用法2->: mkdir -p 目錄名/目錄名/目錄名/.......
但是,mkdir不可以直接遞歸創建多個文件,如下->:
解釋一下,我們想在112中創建一個color目錄,在color目錄中創建一個red目錄,在red目錄中創建一個blue目錄,但是直接用mkdir不可以創建,報錯了,這是因為我們沒有使用-p選項
我們使用mkdir -p 后,可以發現,遞歸創建成功了。這就是mkdir -p 的使用
6.rmdir指令和rm指令
rmdir?是一個與?mkdir?相對應的命令。?mkdir?是建立目錄,而?rmdir?是刪除命令。
語法: rmdir [-p] [dirName]
使用對象: 具有當前目錄操作權限的所有使用者
功能: 刪除空目錄
常用選項:
-p 當子目錄被刪除后如果父目錄變為空目錄的話,就連帶父目錄一起刪除(即遞歸刪除)
rm?命令可以同時刪除文件或目錄
語法?:?rm [-f-i-r-v][dirName/dir]
適用對象?:所有使用者
功能?:刪除文件或目錄
6.1 rmdir指令使用實例->:
用法1: rmdir 目錄名
使用rmdir可以刪除指定目錄,但是有一些注意事項,我們下面講:
看下圖->:我們使用rmdir時有三種情況不可以刪
第一種情況 ->: 刪掉當前所在目錄
第二種情況->: 刪除所有上級目錄
第三種情況->: 想要刪除的目錄中存在目錄/文件
我們接下來舉例,看下圖->:
下圖中,我們
這張圖說明的是前兩種情況,接下來的圖是第三種情況:
我們想要刪除112里面的color目錄,但是因為color目錄中存在東西,所以不可以刪除此目錄
用法2: rmdir -p 目錄名/目錄名/......
我們上述中無法直接刪除color目錄,難到我們要一步一步進去刪再一步一步出來嗎?
沒這個必要,使用rmdir -p 遞歸刪除,直接實現,如下圖->:
可以觀察到,color目錄被全部刪除了
?6.2 rm指令使用實例
用法1: rm -r?文件名/目錄名
首先,rm的刪除與rmdir類似,都是不可以刪除當前目錄或者一切的上級目錄
但是如果rm刪除的目錄中存在其他東西,是可以刪除的
效果如下->:
我們講解一下上圖,(別看話長但很簡單)首先我們觀察到,big目錄中存在一個文件test999,我們返回上級目錄112,接著刪除big目錄,它問我們,確定要刪除big目錄嗎?我們回答y(yes),接著,它檢測到big目錄中存在test999文件,它就會又問我們,要刪除test999文件嗎?(因為如果不刪除此文件,無法刪除目錄),我們回答yes。那么文件刪掉了,它會遞歸回來,問我們確定要刪除big目錄嗎?我們再回答y,此時成功刪掉了。
聲明: 不刪除回答n
用法2: rm -rf 文件名/目錄名
使用rm -rf可以無視文件權限,直接刪除目錄/文件,也就是不會再詢問你,如下圖->:
用法3: rm 文件名
使用rm 文件名可以刪除文件,但是不可以刪除目錄,如下->:
可以觀察到,rm直接加文件是不可以刪除的,因為rm刪除文件需要使用rm -r,但是rm 文件名可以刪除文件
7.man指令
語法: man [選項] 命令
功能: 查找命令如何使用
常用選項:
-k 根據關鍵字搜索聯機幫助
num 只在第num章節查找
-a 將所有章節顯示出來,比如man printf 它缺省從第一章開始搜索,知道就停止,用a選項,當摁下q退出,他會繼續往后面搜索,直到所有章節都搜索完畢
解釋一下 ,man 手冊分為8章
1 是普通的命令
2 是系統調用 , 如 open,write 之類的 ( 通過這個,至少可以很方便的查到調用這個函數,需要加什么頭文件)
3 是庫函數 , 如 printf,fread4 是特殊文件 , 也就是 /dev 下的各種設備文件
5 是指文件的格式 , 比如 passwd, 就會說明這個文件中各個字段的含義
6 是給游戲留的 , 由各個游戲自己定義
7 是附件還有一些變量 , 比如向 environ 這種全局變量在這里就有說明
8 是系統管理用的命令 , 這些命令只能由 root 使用 , 如 ifconfig
8.cp指令
語法: cp [選項] 源文件或目錄? 目標文件或目錄
功能: 在當前目錄下查找,并復制文件或目錄
說明:
cp 指令用于復制文件或目錄
如同時指定兩個以上的文件或目錄,且最后的目的地是一個已經存在的目錄,則它會把前面指定的所有文件或目錄復制到此目錄中
常用選項:
-f 或 --force ?強行復制文件或目錄, 不論目的文件或目錄是否已經存在
-i 或 --interactive 覆蓋文件之前先詢問用戶
-r 遞歸處理,將指定目錄下的文件與子目錄一并處理。若源文件或目錄的形態,不屬于目錄或符號鏈接,則一律視為普通文件處理
8.1 cp 使用實例
用法1: cp -r 源目錄/文件 目標目錄/文件
首先我們看一下下圖,觀察到112目錄下有許多目錄,我們想要實現目錄的復制或者文件的復制就需要使用cp -r
比如,我們現在就想把lesson1目錄復制進lesson2目錄中,我們可以這樣寫:
可見,lesson1被復制到lesson2中了
額外補充:如果cp的目標文件/目錄不存在,則會自己創建一個目標文件/目錄,如下圖->:
用法2: cp -i? 文件名
上述講解中,如果有同志自己嘗試會發現cp其實沒有 -r 是不可以復制目錄的(源文件是目錄不可以,目標目錄無所謂),但是cp -r 既可以操作目錄又可以操作文件,所以這里沒有講解,只需要記住無時無刻加 -r 即可
cp -i 的作用為在覆蓋文件之前先詢問用戶,注意,我說的是 "覆蓋"?,不是復制
覆蓋是文件名重復的意義,如下->:
這里lesson1中的apple復制到lesson2中的apple就屬于覆蓋,加-i會在拷貝前詢問你(其實不加也會詢問)
9.mv指令
語法: mv [選項] 源文件或目錄 目標文件或目錄?
功能:?
1. 視 mv 命令中第二個參數類型的不同(是目標文件還是目標目錄), mv 命令將文件重命名或將其移至一個新的目錄中。
2. 當第二個參數類型是文件時, mv 命令完成文件重命名,此時,源文件只能有一個(也可以是源目錄名),它將所給的源文件或目錄重命名為給定的目標文件名。
3. 當第二個參數是已存在的目錄名稱時,源文件或目錄參數可以有多個, mv 命令將各參數指定的源文件均移至目標目錄中。
常用選項?:
-f??:?force??強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋
-i??:若目標文件??(destination)??已經存在時,就會詢問是否覆蓋!
9.1mv使用實例
用法1: mv 文件/目錄名 文件/目錄名(重命名功能)
mv 文件名 文件名可以實現文件名的重定義,也就是改名(即覆蓋),這里演示一下
如圖,我們將apple文件的名字更改為了peach
如果我們改的名字與別的文件名字重復了,那就會實現覆蓋,演示一下->:
將peach更改為apple會進行覆蓋,還詢問了我們一下
用法2: mv 文件/目錄 路徑(轉移功能)
可見,將lesson1中的apple文件轉移到了上級目錄中
再看一個->:
用法3: mv?文件名 路徑+新名字
這個指令會將兩個操作同時進行,結果就是轉移到了新路徑下并且更換了名字
將lesson2目錄轉移到了root目錄下
10.cat指令
語法: ?cat [?選項?][?文件?]
功能:??查看目標文件的內容
常用選項?:
-b?對非空輸出行編號
-n?對輸出的所有行編號
-s?不輸出多行空行
10.1cat使用實例
用法1: cat 文件名