前言
要想成為程序員塑悼,幾乎繞不開學(xué)習(xí)Linux操作系統(tǒng)锻狗。
很多博客都會講解Linux相關(guān)知識掌腰,但卻很少告訴我們Linux要學(xué)到什么程度狰住,最應(yīng)該掌握哪些。
想想我們學(xué)習(xí)的Windows系統(tǒng)齿梁,我們會增刪改查目錄催植、文件,下載安裝卸載軟件勺择,開關(guān)機(jī)创南、重啟。
那我們學(xué)習(xí)Linux系統(tǒng)也是掌握以上這些就可以了省核。
跟著本博客學(xué)習(xí)Linux稿辙,不多不少,剛好夠用气忠!
1.Linux簡介
Linux邻储,全稱GNU/Linux赋咽,是一種免費(fèi)使用和自由傳播的類UNIX操作系統(tǒng),其內(nèi)核由林納斯·本納第克特·托瓦茲于1991年10月5日首次發(fā)布芥备,它主要受到Minix和Unix思想的啟發(fā)冬耿,是一個基于POSIX的多用戶、多任務(wù)萌壳、支持多線程和多CPU的操作系統(tǒng)亦镶。它能運(yùn)行主要的Unix工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議袱瓮。它支持32位和64位硬件缤骨。Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計(jì)思想,是一個性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)尺借。
2.Linux發(fā)行版本
3.Linux詳解
3.1文件系統(tǒng)結(jié)構(gòu)
文件夾 | 說明 |
---|---|
/bin | 存放二進(jìn)制可執(zhí)行文件绊起,常用命令存放于此 |
/etc | 存放系統(tǒng)管理和配置文件 |
/home | 存放所有用戶文件的跟目錄 |
/usr | 存放系統(tǒng)應(yīng)用程序 |
/opt | 主機(jī)額外安裝軟件所擺放的目錄 |
/proc | 虛擬文件系統(tǒng)目錄,是系統(tǒng)內(nèi)存的映射 |
/root | 系統(tǒng)管理員主目錄 |
/sbin | 存放二進(jìn)制可執(zhí)行文件燎斩,只有root才能訪問 |
/dev | 存放設(shè)備文件 |
/mnt | 系統(tǒng)提供該目錄用于臨時掛載其他文件系統(tǒng) |
/boot | 存放用于系統(tǒng)引導(dǎo)時使用的各種文件 |
/lib | 存放系統(tǒng)最基本的動態(tài)連接共享庫 |
/tmp | 存放臨時文件虱歪,也是公用臨時文件存儲點(diǎn) |
/var | 存放運(yùn)行時需要改變數(shù)據(jù)的文件 |
/lost+found | 系統(tǒng)非正常關(guān)機(jī)而留下的文件 |
3.2常用命令
常用命令 | 說明 |
---|---|
ls | (list files)列出目錄及文件名 |
cd | (change directory)切換目錄 |
pwd | (print work directory)顯示當(dāng)前目錄 |
mkdir | (make directory)創(chuàng)建新目錄 |
rmdir | (remove directory)刪除空目錄 |
cp | (copy file)復(fù)制文件或目錄 |
rm | (remove file)刪除文件或目錄 |
mv | (move file)移動文件或目錄/修改文件或目錄名 |
cat | 顯示全部文件內(nèi)容 |
tac | 倒序顯示全部文件內(nèi)容 |
nl | 顯示文件內(nèi)容時,同時輸出行號 |
more | 一頁一頁的顯示文件內(nèi)容 |
less | 精簡顯示文件內(nèi)容 |
head | 查看文件頭部 |
tail | 查看文件末尾 |
chgrp | 改變文件所屬群組 |
chown | 改變文件擁有者 |
chmod | 改變文件權(quán)限 |
man [命令] | 查看命令的使用文檔 |
ls [參數(shù)] [目錄] | 列出目錄或文件名 |
---|---|
ls -a | 列出全部文件 |
ls -d | 列出全部目錄 |
ls -l | 長數(shù)據(jù)串列出栅表,包含文件屬性與權(quán)限 |
ls ~ | 列出家目錄下所有文件 |
cd [相對路徑或絕對路徑] | 切換目錄 |
---|---|
cd .. | 切換至上一層目錄 |
cd ~ | 切換至系統(tǒng)根目錄 |
cd / | 切換至用戶主目錄 |
cd - | 切換至上一操作所在目錄 |
pwd | 顯示當(dāng)當(dāng)前目錄 |
---|---|
pwd -P | 顯示確切路徑 |
mkdir [-mp] 目錄名稱 | 創(chuàng)建目錄 |
---|---|
mkdir -m | 配置文件權(quán)限 |
mkdir -p | 進(jìn)行目錄遞歸創(chuàng)建 |
rmdir | 刪除空目錄 |
---|---|
rmdir -p | 連同上一級空目錄一起刪除 |
cp [參數(shù)] 目錄名稱 目錄拷貝的目標(biāo)位置 | 復(fù)制文件或目錄 |
---|---|
cp -d | 若來源檔為連結(jié)檔的屬性笋鄙,則復(fù)制連結(jié)檔屬性而非文件本身 |
cp -f | 若目標(biāo)文件已經(jīng)存在且無法開啟,則移除后再嘗試一次 |
cp -i | 若目標(biāo)檔已經(jīng)存在時怪瓶,在覆蓋時會先詢問動作的進(jìn)行 |
cp -p | 連同文件的屬性一起復(fù)制過去萧落,而非使用默認(rèn)屬性 |
cp -r | 遞歸持續(xù)復(fù)制,用于目錄的復(fù)制行為 |
cp -s | 復(fù)制成為符號連結(jié)檔 |
rm [-fir] 文件或目錄 | 移除文件或目錄 |
---|---|
rm -f | 忽略不存在的文件洗贰,不會出現(xiàn)警告信息 |
rm -i | 互動模式找岖,在刪除前詢問使用者是否刪除 |
rm -r | 遞歸刪除,謹(jǐn)慎使用 |
mv [-fiu] source destination | 移動文件或目錄 |
---|---|
mv -f | 如果目標(biāo)文件已經(jīng)存在敛滋,不會詢問而直接覆蓋 |
mv -i | 若目標(biāo)文件已經(jīng)存在時许布,就會詢問是否覆蓋 |
mv -u | 若目標(biāo)文件已經(jīng)存在,且 source 比較新矛缨,才會升級 (update) |
3.3 用戶管理
Linux系統(tǒng)是一個多用戶多任務(wù)的分時操作系統(tǒng)爹脾,任何一個要使用系統(tǒng)資源的用戶,都必須首先向系統(tǒng)管理員申請一個賬號箕昭,然后以這個賬號的身份進(jìn)入系統(tǒng)灵妨。
用戶的賬號一方面可以幫助系統(tǒng)管理員對使用系統(tǒng)的用戶進(jìn)行跟蹤,并控制他們對系統(tǒng)資源的訪問落竹;另一方面也可以幫助用戶組織文件泌霍,并為用戶提供安全性保護(hù)。
用戶管理命令 | 說明 |
---|---|
useradd 選項(xiàng) 用戶名 | 添加新的用戶賬號 |
userdel 選型 用戶名 | 刪除已有賬號 |
usermod 選項(xiàng) 用戶名 | 更該用戶屬性 |
passwd 選項(xiàng) 用戶名 | 指定和修改用戶口令 |
groupadd 選項(xiàng) 用戶組 | 增加新用戶組 |
groupdel 用戶組 | 刪除已有用戶組 |
groupmod 選項(xiàng) 用戶組 | 修改用戶組屬性 |
newgrp 用戶組 | 切換到新用戶組 |
在Linux操作系統(tǒng)中,有三個概念是我們必須掌握:用戶朱转、用戶所在群組蟹地、別的群組;這三個區(qū)分極大地方便了協(xié)同工作藤为。
- 用戶可以使用本用戶內(nèi)的資源以及用戶所在群組的公共資源
- 不同群組之間的資源是完全隔離開來的
因?yàn)閷τ贚inux系統(tǒng)來說怪与,萬物皆文件,所有上述資源就是指代文件缅疟。由于用戶分别、用戶所在群組、別的群組這三者的區(qū)分存淫,我們需要能夠查看任一文件對這三者的權(quán)限耘斩。
#列出所有文件的詳細(xì)信息
#input:
ls -l
#output:
drwxr--rw- 1 root root 42306 Sep 14 22:03 etc
文件的類型:
- d: 代表目錄
- -: 代表文件
- l: 代表軟鏈接(可以認(rèn)為是window中的快捷方式)
Linux中文件權(quán)限分為以下幾種:
- r:代表權(quán)限是可讀,r也可以用數(shù)字4表示
- w:代表權(quán)限是可寫桅咆,w也可以用數(shù)字2表示
- x:代表權(quán)限是可執(zhí)行括授,x也可以用數(shù)字1表示
解讀
drwxr--rw- 1 root root 42306 Sep 14 22:03 etc
- etc文件是一個目錄
- etc所有者可以讀寫并執(zhí)行etc文件
- etc所述組的用戶可讀取etc文件
- etc所不屬的組的用戶可以讀寫etc文件
- etc文件有1個硬連接
- ect屬于root這個用戶
- ect屬于root這個群組
- ect的容量為42306
- etc最近更改日期為Sep 14 22:03
3.4 Vim編輯器
Vim是從 vi 發(fā)展出來的一個文本編輯器。代碼補(bǔ)完岩饼、編譯及錯誤跳轉(zhuǎn)等方便編程的功能特別豐富荚虚,相當(dāng)于Windows中的記事本。
vim 共三種模式籍茧,分別是命令模式曲管,輸入模式和底線命令模式。
這三種模式的作用分別是:
命令模式:
用戶剛剛啟動 vi/vim硕糊,便進(jìn)入了命令模式。
此狀態(tài)下敲擊鍵盤動作會被Vim識別為命令腊徙,而非輸入字符简十。比如我們此時按下i,并不會輸入一個字符撬腾,i被當(dāng)作了一個命令螟蝙。
以下是常用的幾個命令:
- i 切換到輸入模式,以輸入字符民傻。
- x 刪除當(dāng)前光標(biāo)所在處的字符胰默。
- : 切換到底線命令模式,以在最底一行輸入命令漓踢。
若想要編輯文本:啟動Vim牵署,進(jìn)入了命令模式,按下i喧半,切換到輸入模式奴迅。
命令模式只有一些最基本的命令,因此仍要依靠底線命令模式輸入更多命令挺据。
輸入模式
在命令模式下按下i就進(jìn)入了輸入模式取具。
在輸入模式中脖隶,可以使用以下按鍵:
- 字符按鍵以及Shift組合,輸入字符
- ENTER暇检,回車鍵产阱,換行
- BACK SPACE,退格鍵块仆,刪除光標(biāo)前一個字符
- DEL构蹬,刪除鍵,刪除光標(biāo)后一個字符
- 方向鍵榨乎,在文本中移動光標(biāo)
- HOME/END怎燥,移動光標(biāo)到行首/行尾
- Page Up/Page Down,上/下翻頁
- Insert蜜暑,切換光標(biāo)為輸入/替換模式铐姚,光標(biāo)將變成豎線/下劃線
- ESC,退出輸入模式肛捍,切換到命令模式
底線命令模式
在命令模式下按下:(英文冒號)就進(jìn)入了底線命令模式隐绵。
底線命令模式可以輸入單個或多個字符的命令,可用的命令非常多拙毫。
在底線命令模式中依许,基本的命令有:
- :q 退出程序
- :w 保存文件
- :wq 保存文件并退出程序
從記事本的視角切入,我們使用記事本的過程是打開/創(chuàng)建記事本缀蹄,編輯內(nèi)容峭跳,保存退出。
3.5 軟件包安裝缺前、卸載蛀醉、查看
apt命令
- apt 命令提供了查找、安裝衅码、升級拯刁、刪除某一個、一組甚至全部軟件包的命令逝段,而且命令簡潔而又好記垛玻。
- apt 命令執(zhí)行需要超級管理員權(quán)限(root)
apt [options] [command] [package1,package2,...]
apt常用命令 | 說明 |
---|---|
sudo apt update | 列出所有可更新的軟件清單 |
sudo apt upgrade | 升級軟件包 |
apt list --upgradeable | 列出可更新的軟件包及版本信息 |
sudo apt full-upgrage | 升級軟件包,升級前先刪除需要更新軟件包 |
sudo apt install <package_name> | 安裝指定的軟件 |
sudo apt install <package1> <package2> | 安裝多個軟件包 |
sudo apt update <package_name> | 更新指定軟件 |
sudo apt show <package_name> | 顯示軟件包信息 |
sudo apt remove <package_name> | 刪除軟件包 |
sudo apt autoremove | 清理不再使用的軟件包 |
sudo apt purge <package_name> | 移除軟件包及配置文件 |
sudo pat search <keyword> | 查找軟件包 |
apt list --installed | 列出所有已安裝軟件包 |
apt list --all-version | 列出所有已安裝軟件包的版本信息 |
3.6 軟硬連接
Linux 連接分兩種奶躯,一種被稱為硬連接(Hard Link)帚桩,另一種被稱為符號連接(Symbolic Link)。默認(rèn)情況下巫糙,ln 命令產(chǎn)生硬連接朗儒。
硬連接
硬連接指通過索引節(jié)點(diǎn)來進(jìn)行連接。在 Linux 的文件系統(tǒng)中,保存在磁盤分區(qū)中的文件不管是什么類型都給它分配一個編號醉锄,稱為索引節(jié)點(diǎn)號(Inode Index)乏悄。在 Linux 中,多個文件名指向同一索引節(jié)點(diǎn)是存在的恳不。比如:A 是 B 的硬鏈接(A 和 B 都是文件名)檩小,則 A 的目錄項(xiàng)中的 inode 節(jié)點(diǎn)號與 B 的目錄項(xiàng)中的 inode 節(jié)點(diǎn)號相同,即一個 inode 節(jié)點(diǎn)對應(yīng)兩個不同的文件名烟勋,兩個文件名指向同一個文件规求,A 和 B 對文件系統(tǒng)來說是完全平等的。刪除其中任何一個都不會影響另外一個的訪問卵惦。
硬連接的作用是允許一個文件擁有多個有效路徑名阻肿,這樣用戶就可以建立硬連接到重要文件,以防止“誤刪”的功能沮尿。其原因如上所述丛塌,因?yàn)閷?yīng)該目錄的索引節(jié)點(diǎn)有一個以上的連接。只刪除一個連接并不影響索引節(jié)點(diǎn)本身和其它的連接畜疾,只有當(dāng)最后一個連接被刪除后赴邻,文件的數(shù)據(jù)塊及目錄的連接才會被釋放。也就是說啡捶,文件真正刪除的條件是與之相關(guān)的所有硬連接文件均被刪除姥敛。
軟連接
另外一種連接稱之為符號連接(Symbolic Link),也叫軟連接瞎暑。軟鏈接文件有類似于 Windows 的快捷方式彤敛。它實(shí)際上是一個特殊的文件。在符號連接中了赌,文件實(shí)際上是一個文本文件臊泌,其中包含的有另一文件的位置信息。比如:A 是 B 的軟鏈接(A 和 B 都是文件名)揍拆,A 的目錄項(xiàng)中的 inode 節(jié)點(diǎn)號與 B 的目錄項(xiàng)中的 inode 節(jié)點(diǎn)號不相同,A 和 B 指向的是兩個不同的 inode茶凳,繼而指向兩塊不同的數(shù)據(jù)塊嫂拴。但是 A 的數(shù)據(jù)塊中存放的只是 B 的路徑名(可以根據(jù)這個找到 B 的目錄項(xiàng))。A 和 B 之間是“主從”關(guān)系贮喧,如果 B 被刪除了筒狠,A 仍然存在(因?yàn)閮蓚€是不同的文件),但指向的是一個無效的鏈接箱沦。
3.7
求個贊??辩恼,求個關(guān)注??