Linux | 創建 | 刪除 | 查看 | 基本命名詳解
文章目錄
- Linux | 創建 | 刪除 | 查看 | 基本命名詳解
- 前言
- 一、安裝Linux
- 1.1 方法一:云服務器方式
- 1.2 方法二:虛擬機方式
- 二、ls
- 2.2 ll
- 三、which
- 3.1 ls -ld
- 四、pwd
- 五、cd
- 5.1 cd .\.
- 5.2 ls -al
- 5.3 重新認識命令
- 5.4 . 和 .\.
- 5.5 whoami
- 六、touch
- 6.1 stat
- 七、mkdir指令【重要】
- 7.1 tree
- 八、rmdir指令 && rm 指令(重要)
- 8.1 rm
- 8.2 rm -f
- 8.3 rmdir
- 8.4 rm -rf
- 九、man指令【重要】
- 十、cp指令【重要】
- 10.1 cp -r
- 十一、mv指令【重要】
- 11.1 mv -f
- 11.2 cat
- 11.2.1 cat -n
- 11.2.2 cat -b
- 11.3 tac
前言
- 本門課程學習Linux系統編程,你可能要問Linux從哪里來?它是怎么發展的?在這里簡要介紹Linux的發展史。要說Linux,還得從UNIX說起。
下面內容來自維基百科
Linux是一種自由和開放源碼的類UNIX操作系統。該操作系統的內核由林納斯·托瓦茲在1991年10月5日首次發布,再加上用戶空間的應用程序之后,就成為了Linux操作系統。Linux也是自由軟件和開放源代碼軟件發展中最著名的例子。只要遵循GNU 通用公共許可證(GPL),任何個人和機構都可以自由地使用Linux的所有底層源代碼,也可以自由地修改和再發布。大多數Linux系統還包括像提供GUI的X Window之類的程序。除了一部分專家之外,大多數人都是直接使用Linux 發行版,而不是自己選擇每一樣組件或自行設置。
- 別的概念我們就不介紹了,百度,bing都可以搜的到,感興趣的同學可以可以自行搜索~~
- 接下來開始我們的正題~~
一、安裝Linux
1.1 方法一:云服務器方式
- 我們可以使用云服務器購買或者
白嫖
,這個白嫖學生很好白嫖,我們可以打開阿里云學生權益官網進行學生認證,接下來大家懂吧~~ - 白嫖/購買好云服務器后,我們需要安裝Centos7來進行學習~~
1.2 方法二:虛擬機方式
-
我們這里可以打開官網下載VMware Workstation 17 Pro,那秘鑰大家都懂吧,網上…
-
接下來我們安裝好了就開始安裝我們的虛擬機,那么問題來了,鏡像在哪?
-
這里就要打開清華大學開源軟件鏡像站,來找鏡像了~~
-
我們一般下載這個就可以了
- 這里的安裝方式不多贅述,網上方法眾多~~
我們下面這里使用云服務進行學習,云服務比較方便嘛~~
- 接下來就開始我們的正題!
- 學習第一個指令~~
二、ls
語法: ls [選項][目錄或文件]
功能: 對于目錄,該命令列出該目錄下的所有子目錄與文件。對于文件,將列出文件名以及其他信息。
常用選項:
-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 一行只輸出一個文件。
- 看到上面的那些,就很頭痛,記不住怎么辦?
- 不用記!后面用多了自然就記住了,我們先來用一用幾個基本的指令~~
ls
- 我們運行后發現這里什么都沒有顯示,那是因為這個目錄就沒有文件或者文件夾,我們先來創建幾個~~
- 注意命令之間是有空格的!!!
mkdir test
touch test.txt
- 再進行
ls
一下,可以看到已經有文件顯示出來了~~
- 那有的同學會說,這里的
test
問什么有顏色啊,是什么意思呢? - 我們先不管,繼續往下看~~
2.2 ll
- 接下來我們就新學一個命令
ll
- 這里命令初學的時候比較特殊,與其不能說是一個命令,它是一個
ls -l
的別名,也就是說給ls -l
起了個名字叫ll
,那么口說無憑,怎么證明呢?
三、which
- 執行以下下命令
which ll
-
這里的這個which命令先不用管,一會我們再詳細了解~~
-
這里的
alias
就是起別名的意思,ll='ls -l` 也就是ll等于ls -l~~
- 我們再來which一下ls,可以看到也是一樣的~~
- 回到剛剛那個話題,為什么會有顏色呢?
- 注意看,我們這里ll=ls -l --color=auto 后面的
--color=auto
就是帶顏色的,那么又怎么證明呢?
alias ls='ls'
- 我們這里像圖片中的一樣,給它起個別名,但是沒有指定顏色,我一執行,它雖然也會打印出來,但是沒有顏色
- 那我又想加回這個顏色怎么辦呢?
- 很好辦,直接再起別名改回去就可以了
alias ls='ls --color=auto'
- 再次進行ls查看,就會有顏色了~~
-
這里的ls還可以查看指定目錄的文件夾,或者文件,我們來演示一下
-
我們這里創建了一個文件
a
,我們就可以使用下面這個命令來查看~~
3.1 ls -ld
ls -ld a
- 其中
-l
列出文件的詳細信息,-d
將目錄象文件一樣顯示,而不是顯示其下的文件。 - 我們這里就可以直接寫
ls -ld
就可以了~~ - 這里的
mkdir -p
我們后面會詳細來說,這里先不用管~~
- 剛剛這里的which沒有細講,還有which后下面的路徑也沒有將,接下來我們就一一來道~~
四、pwd
語法: pwd
功能: 顯示用戶當前所在的目錄
這個命令很簡單,直接執行就可以了
pwd
- 那么這里的顯示出來的是什么呢?
- 其實就是當前用戶所在的絕對路徑,那我進入到一個目錄,再來看一下
- 可以看到發生改變了,這個命令就到這里,接下來我們學
cd
五、cd
Linux系統中,磁盤上的文件和目錄被組成一棵目錄樹,每個節點都是目錄或文件。
- 如上圖所示,我們這個linux系統就是一個樹狀文件系統,剛剛上面我們也使用了這個命令,
cd 文件夾
,就進入到了這個文件
語法: cd 目錄名
功能: 改變工作目錄。將當前工作目錄改變到指定的目錄下。
cd … : 返回上級目錄
cd /home/litao/linux/ : 絕對路徑
cd …/day02/ : 相對路徑
cd ~:進入用戶家目
cd -:返回最近訪問目錄
5.1 cd ..
我們先來看第一個指令
cd ..
我們先來了解一下,每個文件夾都是有隱藏文件的,那么怎么看呢,我們可以通過ls -al
,來查看一下~~
5.2 ls -al
ls -al
-
當我們執行這個命令后,就會發現,這里的前面帶
.
的文件也顯示出來了~~ -
那么是不是前面帶
,
的就是隱藏文件呢? -
我們來驗證一下
-
我們這里創建一個文件和一個文件夾,但是前面分別帶有
.
-
我們再進行
ls -l
一下,可以看到是打印不出來的,但是ls -al
可以打印出來的,再一次印證了這個命令是顯示隱藏文件的~~
我們再來看第二個命令
cd /root/a/b/
- 這里
cd
后面跟著的是一個絕對路徑,什么是絕對路徑呢?- 也就是從根目錄上寫路徑
- 還有一個概念:相對路徑,就是從相對位置寫,那么怎么寫呢?
cd c
- 這里直接進入了c目錄,這些目錄我們前面都創建過了,使用
mkdir -p a/b/c/d/f
,我們這里不再演示 - 這里不寫
/
,就是默認從當前目錄下找這個文件夾~~
5.3 重新認識命令
- 接下來我們再返回頭再從新認識一下這些命令,我們前面學了which命令,可以查看起別名,但是它下面有這么一行,這個是什么呢?
- 其實這個就是一個路徑,絕對路徑,我們可以進入再bin目錄下有這個命令我們來看一下
- 我們來找一下這個ls命令
- 可以看到這里是有的~~,其他命令也是有的,那它好像是一個文件啊,它其實就是一個可執行文件,我們可以直接輸入這個路徑進行執行
- 這里可以看到我們執行后也會顯示出來,但是沒有顏色
- 我們前面說了,這里其實是給起了個別名
- 我們也可以加上顏色~~
/usr/bin/ls --color=auto
- 也可以看到有顏色了,再一次證明了是起的別名~~
- 我們回過頭來看這個相對路徑
- 剛剛我們執行了
ls -al
命令,剛剛執行的是在一個空文件夾里,那為什么會有兩個文件一個.
一個..
呢?
- 其實這個
.
就是代表當前路徑,..
代表上一個路徑
5.4 . 和 ..
- 這里的
.
代表當前路徑,我們來看下面進行演示一下 - 這里涉及到命令的我們在后面章節會詳細道來~~
-
這里可以看到我們通過這個
./
來執行這個可執行文件就是從當前路徑來找到這個文件來執行~~ -
那么我進入到其他目錄下能不能執行這個可執行程序呢?
- 當然是可以的~~
cd ../a.out
- 這個意思就是從上一級目錄下找到這個
a.out
文件進行執行~~
- 那么
cd ..
是不是就可以回到上一級目錄里了,我們來驗證一下~~
-
我們可以看到已經回退了~~
-
我們繼續回退,一直退到不能退位置
- 可以看到我們退到
/
位置就不能回退了,由此證明/
是系統的根目錄~~
-
我們這里還要有一個概念就是用戶的概念
-
我這里目前是使用的root用戶,root用戶是什么呢?>>>是超級管理員的意思~~也就是
最高
權限的意思 -
既然有用戶就有普通用戶,普通用戶就是在
/home
目錄下 -
這里我們切換到普通用戶來看看~~
-
這里了解一下用戶的概念,后面我們會詳細講~~
那么這個cd ~
是進入用戶的家目錄
5.5 whoami
- 這里再教大家一個查詢當前是登錄的哪個用戶
whoami
- 在普通用戶下執行:
- 在root用戶下執行:
- 當我有一次進入到了一個很深的文件夾,我想一下回退到自己的家目錄,怎么辦呢,可以執行這個操作~~
- 我們進入了四次問價夾,我們就需要執行四次
../
cd ../../../../
- 那么有沒有辦法直接一次性回退到家目錄呢?
- 那就是執行下面這個命令
cd ~
- 可以看到直接就到家目錄了,是不是很方便~~
接下來還有一個
cd -
-
這個是什么呢?
-
如果我想在兩個目錄來回切換就需要手動敲目錄,有一個好的辦法來解決這個麻煩,這個其實就是直接回退到剛剛那個目錄,一鍵回退
- 是不是很方便~~
有關
cd
的命令就到這里了~~
六、touch
語法: touch [選項]… 文件…
功能: touch命令參數可更改文檔或目錄的日期時間,包括存取時間和更改時間,或者新建一個不存在的文件。
常用選項:
-a 或–time=atime或–time=access或–time=use只更改存取時間。
-c 或–no-create 不建立任何文檔。
-d 使用指定的日期時間,而非現在的時間。
-f 此參數將忽略不予處理,僅負責解決BSD版本touch指令的兼容性問題。
-m 或–time=mtime或–time=modify 只更改變動時間。
-r 把指定文檔或目錄的日期時間,統統設成和參考文檔或目錄的日期時間相同。
-t 使用指定的日期時間,而非現在的時間。
- touch 簡單來說就是創建文件,單不能創建目錄,創建目錄有創建目錄的命令,不能搞混了~~
touch 文件名
- 這里沒有什么可說的就是簡單的創建文件,但是我在這里補充一個命令,我想查看這個文件的詳細屬性,怎么查看呢?
6.1 stat
stat 文件名
-
查看文件具體屬性
-
這里面的屬性我們后面章節會詳細道來~~
- 好,接下來我們就開始學習下一個命令
七、mkdir指令【重要】
語法: mkdir [選項] dirname…
功能: 在當前目錄下創建一個名為 “dirname”的目錄
常用選項:
-p, --parents 可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項后,系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄;
mkdir 目錄
- 這里前面的d是代表目錄的意思,詳細內容我放到后面講~~
- 這里我們基本要用的就是
-p
指令,就是遞歸建立多個目錄 - 這里再提一嘴,命令直接要有空格
mkdir -p aaa/bbb/ccc/ddd/eee
- 這樣看不好觀察創建成功了沒有,我們可以使用一個命令tree
7.1 tree
tree 目錄
- 有的人可能使用這個tree使用不了,它是需要安裝的,執行以下命令:
yum install -y tree
- 然后再執行
tree ./
-
這樣看是不是很方便觀察~~
-
那我要是執行一下
tree /
,會執行這么一長串,“根本停不下來”
- 這個時候我們就要按下
ctrl + c
就可以強制停止執行了
八、rmdir指令 && rm 指令(重要)
rmdir是一個與mkdir相對應的命令。mkdir是建立目錄,而rmdir是刪除命令。
語法: rmdir [-p][dirName]
適用對象: 具有當前目錄操作權限的所有使用者
功能: 刪除空目錄
常用選項:
- -p 當子目錄被刪除后如果父目錄也變成空目錄的話,就連帶父目錄一起刪除。
rm命令可以同時刪除文件或目錄
語法: rm [-f-i-r-v][dirName/dir]
適用對象: 所有使用者
功能: 刪除文件或目錄
常用選項:
-f 即使文件屬性為只讀(即寫保護),亦直接刪除
-i 刪除前逐一詢問確認
-r 刪除目錄及其下所有文件
- 有了新增文件和文件夾,那么就有刪除~~
- 這里也是要區分刪除文件【rm】和文件夾【rmdir】
8.1 rm
rm 文件名
- 這里刪除文件的時候會提示是否要刪除?這里輸入
n
不要刪除,輸入y
就刪除了,這里的刪除就是真正的刪除了,沒有什么windows的回收站什么的~~
8.2 rm -f
- 那這樣刪除文件的話每次都要問是否要刪除,是不是很麻煩,我們可以加一個選項
-f
,就不會提示,直接刪除
- 但是這個命令是刪除不了文件夾的
- 那么我們就要學下一個命令了
8.3 rmdir
rmdir 文件夾
- 這里刪除單個文件夾,文件夾里面是空,什么都沒有那么它是可以刪除的
- 那么這個文件夾不為空,可以直接刪除嗎?
- 那么怎么辦呢?總不能進入文件夾一個一個刪除吧,這個時候就要用到
-r
選項了 - 這個-r就是遞歸刪除
rm -r 名字
- 但是這里刪除的時候有提示是否刪除,剛剛學了
-f
選項,可以直接再加上-f
選項,直接刪除~~
8.4 rm -rf
rm -r -f 名字
- 可以看到這里就直接刪除了~~
- 這里的
rm -r -f
也可以寫成rm -rf
它們是等價的
- 但是這里要注意的一點就是,千萬不要執行
rm -rf /
,這會刪除根目錄下所有文件,系統會崩潰,所以刪除命令操作謹慎!!!!!!
九、man指令【重要】
Linux的命令有很多參數,我們不可能全記住,我們可以通過查看聯機手冊獲取幫助。訪問Linux手冊頁的命令是man
語法: man [選項] 命令
- -k 根據關鍵字搜索聯機幫助
num 只在第num章節找- -a 將所有章節的都顯示出來,比如 man printf 它缺省從第一章開始搜索,知道就停止,用a選項,當按下q退出,他會繼續往后面搜索,直到所有章節都搜索完畢。
解釋一下,面手冊分為8章
1 是普通的命令
2 是系統調用,如open,write之類的(通過這個,至少可以很方便的查到調用這個函數,需要加什么頭文件)
3 是庫函數,如printf,fread4是特殊文件,也就是/dev下的各種設備文件
5 是指文件的格式,比如passwd, 就會說明這個文件中各個字段的含義
6 是給游戲留的,由各個游戲自己定義
7 是附件還有一些變量,比如向environ這種全局變量在這里就有說明
8 是系統管理用的命令,這些命令只能由root使用,如ifconfig
- 我們可以執行下面的命令
man man
- 進入到這個界面后,按鍵盤上的上下鍵就可以上下滾動了~~
-
退出的話在英文模式下按鍵盤上的
q
-
這個命令就是想查看哪個命令,就查看哪個命令,會顯示出幫助文檔
-
如果說我想查看ls的幫助文檔,就執行以下命令:
man ls
- 那我想查看C語言中的函數呢?怎么查看呢?
man printf
- 有的同學可能執行就報錯了
- 我們執行以下命令
yum install -y man-pages
- 再次執行
man printf
- 就可以查看這個函數的用法了
- 那我想查看這個庫函數怎么查看呢?
- 我們執行下面命令
man 3 printf
- 那我想查看c++的呢?
- 這里就不推薦了,推薦直接再cplusplus網站上查看~~
其他的序號就不經常用,先不說了~~
十、cp指令【重要】
語法: cp [選項] 源文件或目錄 目標文件或目錄
功能: 復制文件或目錄
**說明: ** cp指令用于復制文件或目錄,如同時指定兩個以上的文件或目錄,且最后的目的地是一個已經存在的目錄,則它會把前面指定的所有文件或目錄復制到此目錄中。若同時指定多個文件或目錄,而最后的目的地并非一個已存在的目錄,則會出現錯誤信息
常用選項:
- -f 或 --force 強行復制文件或目錄, 不論目的文件或目錄是否已經存在
- -i 或 --interactive 覆蓋文件之前先詢問用戶
- -r遞歸處理,將指定目錄下的文件與子目錄一并處理。若源文件或目錄的形態,不屬于目錄或符號鏈接,則一律視為普通文件處理
- -R 或 --recursive遞歸處理,將指定目錄下的文件及子目錄一并處理
- 我們可以將一個文件或者目錄拷貝到另一個地方,但是相同目錄下不能有相同名稱的文件
cp src dst
- 那我想要將一個目錄下的有多個文件也拷貝過去怎么拷貝呢?
- 直接拷貝可以嗎?
cp aaa a
- 可以看到是不能的~~
10.1 cp -r
- 這個時候就需要加上
-r
選項【遞歸處理,將指定目錄下的文件與子目錄一并處理。若源文件或目錄的形態,不屬于目錄或符號鏈接,則一律視為普通文件處理】
cp -r aaa a
十一、mv指令【重要】
mv命令是move的縮寫,可以用來移動文件或者將文件改名(move (rename) files),是Linux系統下常用的命令,經常用來備份文件或者目錄。
語法: mv [選項] 源文件或目錄 目標文件或目錄
功能:
- 視mv命令中第二個參數類型的不同(是目標文件還是目標目錄),mv命令將文件重命名或將 其移至一個新的目錄中。
- 當第二個參數類型是文件時,mv命令完成文件重命名,此時,源文件只能有一個(也可以是源目錄名),它將所給的源文件或目錄重命名為給定的目標文件名。
- 當第二個參數是已存在的目錄名稱時,源文件或目錄參數可以有多個,mv命令將各參數指定的源文件均移至
目標目錄中。
常用選項:
- -f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋
- -i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!
- 這個和前面那個拷貝相似
mv src dst
11.1 mv -f
- 將剛剛拷貝的文件再拷貝回來,這里我們可以使用那個
-f
選項強制拷貝~~
mv -f a/test.c ./
11.2 cat
語法: cat [選項][文件]
功能: 查看目標文件的內容
常用選項:
- -b 對非空輸出行編號
- -n 對輸出的所有行編號
- -s 不輸出多行空行
- cat這個命令很簡單,我們來看
cat 文件名
11.2.1 cat -n
- 輸出帶行號,空行也帶行號,照樣輸出~~
cat -n test.c
11.2.2 cat -b
- 針對空行不進行編號,非空行進行編號~~
- 那我想倒著輸出文件里的內容怎么辦呢?
11.3 tac
tac 文件名
- 貓倒過來了,所以就倒著輸出~~
本文就到這里結束了,篇幅較長,我們下一篇續寫,本篇大概也就寫了一些Linux的創建、刪除、查看、基本命名,如果有幫助的話記得點贊,收藏加評論~~,謝謝大家!