@TOC
📝前言
本節阿森將和你一起深入淺出的學習簡單幾條指令,快速上手在linux寫代碼,同時更好的理解指令記憶
🌠 linux目錄結構
在linux系統中,磁盤上的文件和目錄被組成一個樹,每個節點都是目錄或文件,像是一個多叉樹的層次結構。如圖所示:
以上只是展示目錄的結構是目錄樹的結構,以下是 Linux 文件目錄結構的主要組成部分:
|
根目錄 (/)
|
這是整個文件系統的頂級目錄,所有其他目錄和文件都是從根目錄開始的。
|
|
/bin
|
包含基本的用户級二進制文件,如 ls、cat、mkdir 等。
|
|
/etc
|
包含系統級的配置文件,如網絡、服務等的配置文件。
|
|
/home
|
包含每個用户的個人目錄,用户可以在自己的目錄中存儲文件和設置。
|
|
/lib
|
包含系統級的共享庫文件,供系統和應用程序使用。
|
|
/media
|
用於掛載可移動設備,如 CD-ROM、USB 驅動器等。
|
|
/mnt
|
用於臨時掛載文件系統。
|
|
/opt
|
用於安裝可選的軟件包。
|
|
/proc
|
是一個虛擬文件系統,提供了系統內部信息。
|
|
/root
|
是 root 用户的主目錄。
|
|
/sbin
|
包含系統級的二進制文件,如 init、shutdown 等。
|
|
/tmp
|
用於存儲臨時文件,系統重啓後會被清空。
|
|
/usr
|
包含大部分用户級的程序和文件,如應用程序、庫文件等。
|
|
/var
|
用於存儲經常變化的文件,如日誌、緩存、鎖定文件等。
|
這是在Xshell中我新建的目錄,更好的展示樹狀結構,如圖:
我們接着看~
🌉linux命令介紹
🌠pwd命令
pwd:顯示用户當前所在的目錄
這裏pwd顯示是/root,因為linux用户分為兩類:
- 管理員(root)
- 普通用户linux登錄系統後,默認登進去的是用户的主目錄,類似window登錄系統,當你在按進去用户,可以選擇用户,再點擊第一個,這相當於root,可以看到用户下面有很多目錄和文件,包括桌面也是相當於目錄,此時如果你的用户有多個賬號,也相當於linux的多用户,剩下就是普通用户,默認的所在目錄為、home/普通用户名
🌉mkdir指令(重要)
語法:mkdir [選項] dirname...功能:在當前目錄下創建一個名為 “dirname”的目錄 常用選項: -p, --parents 可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項後,系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄;
如圖:
記得mkdir後要加一個空格,然後再輸入,這裏你輸入tree這個命令發現查看不了,原因是因為你還沒安裝tree安裝指令:
yum install -y tree
右鍵是有複製粘貼的快捷鍵哦,不是CV
建立多個目錄怎麼辦?,一個一個太麻煩了,因此我們可以遞歸建立多個目錄
mkdir –p test/test1 : 遞歸建立多個目錄
🌠cd 指令
語法:cd 目錄名功能:改變工作目錄。將當前工作目錄改變到指定的目錄下。 舉例: cd .. : 返回上級目錄 cd /home/litao/linux/ : 絕對路徑 cd ../day02/ : 相對路徑 cd ~:進入用户家目 cd -:返回最近訪問目錄
[root@hcss-ecs-ab43 ~]# tree
.
├── bin
├── dev
├── etc
├── home
├── test
│ └── test2
│ └── test3
│ └── test4
└── usr
9 directories, 0 files
[root@hcss-ecs-ab43 ~]# pwd
/root
[root@hcss-ecs-ab43 ~]# cd test
[root@hcss-ecs-ab43 test]# cd test2
[root@hcss-ecs-ab43 test2]# cd test3
[root@hcss-ecs-ab43 test3]# cd test4
[root@hcss-ecs-ab43 test4]# pwd
/root/test/test2/test3/test4
[root@hcss-ecs-ab43 test4]#
cd+空格+目錄==進入進入目錄
cd -:返回最近訪問目錄
[root@hcss-ecs-ab43 test4]# cd -
/root/test/test2/test3
[root@hcss-ecs-ab43 test3]#
cd ~:進入用户家目
[root@hcss-ecs-ab43 test4]# cd -
/root/test/test2/test3
[root@hcss-ecs-ab43 test3]# cd ~
[root@hcss-ecs-ab43 ~]# pwd
/root
[root@hcss-ecs-ab43 ~]#
cd /home/litao/linux/ : 絕對路徑絕對路徑和window一樣,而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 使用指定的日期時間,而非現在的時間。
[root@hcss-ecs-ab43 ~]# cd home
[root@hcss-ecs-ab43 home]# mkdir bit
[root@hcss-ecs-ab43 home]# cd bit
[root@hcss-ecs-ab43 bit]# touch test.c
[root@hcss-ecs-ab43 bit]# cd ~
[root@hcss-ecs-ab43 ~]# tree
.
├── bin
├── dev
├── etc
├── home
│ └── bit
│ └── test.c
├── test
│ └── test2
│ └── test3
│ └── test4
└── usr
10 directories, 1 file
[root@hcss-ecs-ab43 ~]#
🌠rmdir指令 && rm 指令(重要):
rmdir是一個與mkdir相對應的命令。mkdir是建立目錄,而rmdir是刪除命令。語法:rmdir [-p][dirName] 適用對象:具有當前目錄操作權限的所有使用者 功能:刪除空目錄
常用選項:-p 當子目錄被刪除後如果父目錄也變成空目錄的話,就連帶父目錄一起刪除。 rm命令可以同時刪除文件或目錄 語法:rm [-f-i-r-v][dirName/dir] 適用對象:所有使用者 功能:刪除文件或目錄
常用選項:-f 即使文件屬性為只讀(即寫保護),亦直接刪除 -i 刪除前逐一詢問確認 -r 刪除目錄及其下所有文件
[root@hcss-ecs-ab43 ~]# tree
.
├── bin
├── dev
├── etc
├── home
│ └── bit
│ └── test.c
├── test
│ └── test2
│ └── test3
│ └── test4
└── usr
10 directories, 1 file
[root@hcss-ecs-ab43 ~]# rm -r bin
rm: remove directory ‘bin’? y //注這裏是因為root用户會詢問
[root@hcss-ecs-ab43 ~]# tree
.
├── dev
├── etc
├── home
│ └── bit
│ └── test.c
├── test
│ └── test2
│ └── test3
│ └── test4
└── usr
9 directories, 1 file
[root@hcss-ecs-ab43 ~]#
加上f可以不用詢問
遞歸刪除:
[root@hcss-ecs-ab43 ~]# rm -r test
rm: descend into directory ‘test’? y
rm: descend into directory ‘test/test2’? y
rm: descend into directory ‘test/test2/test3’? y
rm: remove directory ‘test/test2/test3/test4’? y
rm: remove directory ‘test/test2/test3’? y
rm: remove directory ‘test/test2’? y
rm: remove directory ‘test’? y
當然可以加上f可以不用詢問
🌉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 一行只輸出一個文件
組合使用-a 列出目錄下的所有文件 的詳細信息。包括以 . 開頭的隱含文件。
🌉 linux實踐代碼
在linux寫代碼我最開始可以先用nano來寫,nano 是一個簡單易用的文本編輯器,在 Linux 和 Unix 系統中廣泛使用。
基本用法:nano [文件名]: 打開指定的文件進行編輯。如果文件不存在,會創建一個新文件。nano: 不指定文件名,會打開一個新的空白文件。
這是安裝指令:
yum install -y nano
選Y
按Enter回車鍵
使用gcc編譯編譯生成可執行.o目標文件test gcc test.c -o test 再次輸入 ./test 目的是為了找到該文件使用了./
🌉 cp指令(重要):
語法:cp [選項] 源文件或目錄 目標文件或目錄功能: 複製文件或目錄説明: cp指令用於複製文件或目錄,如同時指定兩個以上的文件或目錄,且最後的目的地是一個已經存在的目錄,則它會把前面指定的所有文件或目錄複製到此目錄中。若同時指定多個文件或目錄,而最後的目的地並非一個已存 在的目錄,則會出現錯誤信息 常用選項: -f 或 --force 強行復制文件或目錄, 不論目的文件或目錄是否已經存在 -i 或 --interactive 覆蓋文件之前先詢問用户 -r遞歸處理,將指定目錄下的文件與子目錄一併處理。若源文件或目錄的形態,不屬於目錄或符號鏈 接,則一律視為普通文件處理 -R 或 --recursive遞歸處理,將指定目錄下的文件及子目錄一併處理
注意不要在home前面加/哦
🌉 man指令(重要):
Linux的命令有很多參數,我們不可能全記住,我們可以通過查看聯機手冊獲取幫助。訪問Linux手冊頁的命令是man 語法: man [選項] 命令常用選項-k 根據關鍵字搜索聯機幫助 num 只在第num章節找 -a 將所有章節的都顯示出來,比如 man printf 它缺省從第一章開始搜索,知道就停止,用a選項,當按 下q退出,他會繼續往後面搜索,直到所有章節都搜索完畢。
安裝指令:
yum install -y man-pages
解釋一下,面手冊分為8章
- 基本用法:
man [命令名]: 查看指定命令的手冊頁。例如man ls查看ls命令的手冊頁。man -k [關鍵詞]: 搜索包含指定關鍵詞的手冊頁。
- 手冊頁的章節:
- 1 - 用户命令
- 2 - 系統調用
- 3 - 庫函數
- 4 - 特殊文件
- 5 - 文件格式
- 6 - 遊戲
- 7 - 雜項
- 8 - 系統管理命令
- 常用選項:
-f: 顯示手冊頁的一行簡介-h: 顯示幫助信息-w: 顯示手冊頁的文件路徑-a: 顯示所有匹配的手冊頁
- 導航和搜索:
- 按
q退出手冊頁 - 按
/進行搜索,輸入關鍵詞後按回車 - 按
n跳轉到下一個搜索結果 - 按
N跳轉到上一個搜索結果
- 其他技巧:
- 可以使用
man man查看man命令本身的手冊頁 - 可以使用whatis [命令名]快速查看命令的簡介 - 可以使用apropos [關鍵詞]搜索與關鍵詞相關的手冊頁
可以自查
[root@hcss-ecs-ab43 ~]# man man
需要注意的是,比如有八章節命令,如果一個命令在第一章找到,直接顯示,即使後面的章節也有相同,他也不會繼續查找!
🚩總結
ls 指令:-l 列出文件的詳細信息。pwd命令:功能:顯示用户當前所在的目錄cd 指令:改變工作目錄。將當前工作目錄改變到指定的目錄下。cd ~ 回家touch指令:建立普通文件如test.c mkdir指令:在當前目錄下創建一個名為 “dirname”的目錄 如:mkdir dir rmdir指令 && rm 指令:刪除空目錄 cp指令:複製文件或目錄,如cp [選項] 源文件或目錄 目標文件或目錄 man指令:查看指定命令的手冊頁如 man man nano test.c 記事本編寫