Linux學(xué)些什么東西?學(xué)這些就夠了!

前言

要想成為程序員,幾乎繞不開(kāi)學(xué)習(xí)Linux操作系統(tǒng)。
很多博客都會(huì)講解Linux相關(guān)知識(shí),但卻很少告訴我們Linux要學(xué)到什么程度,最應(yīng)該掌握哪些。

想想我們學(xué)習(xí)的Windows系統(tǒng),我們會(huì)增刪改查目錄、文件,下載安裝卸載軟件,開(kāi)關(guān)機(jī)、重啟。
那我們學(xué)習(xí)Linux系統(tǒng)也是掌握以上這些就可以了。

跟著本博客學(xué)習(xí)Linux,不多不少,剛好夠用!

1.Linux簡(jiǎn)介

Linux圖標(biāo)

Linux,全稱GNU/Linux,是一種免費(fèi)使用和自由傳播的類UNIX操作系統(tǒng),其內(nèi)核由林納斯·本納第克特·托瓦茲于1991年10月5日首次發(fā)布,它主要受到Minix和Unix思想的啟發(fā),是一個(gè)基于POSIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。它能運(yùn)行主要的Unix工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。它支持32位和64位硬件。Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計(jì)思想,是一個(gè)性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。

2.Linux發(fā)行版本

image

3.Linux詳解

3.1文件系統(tǒng)結(jié)構(gòu)
文件夾 說(shuō)明
/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才能訪問(wèn)
/dev 存放設(shè)備文件
/mnt 系統(tǒng)提供該目錄用于臨時(shí)掛載其他文件系統(tǒng)
/boot 存放用于系統(tǒng)引導(dǎo)時(shí)使用的各種文件
/lib 存放系統(tǒng)最基本的動(dòng)態(tài)連接共享庫(kù)
/tmp 存放臨時(shí)文件,也是公用臨時(shí)文件存儲(chǔ)點(diǎn)
/var 存放運(yùn)行時(shí)需要改變數(shù)據(jù)的文件
/lost+found 系統(tǒng)非正常關(guān)機(jī)而留下的文件
3.2常用命令
常用命令 說(shuō)明
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)移動(dòng)文件或目錄/修改文件或目錄名
cat 顯示全部文件內(nèi)容
tac 倒序顯示全部文件內(nèi)容
nl 顯示文件內(nèi)容時(shí),同時(shí)輸出行號(hào)
more 一頁(yè)一頁(yè)的顯示文件內(nèi)容
less 精簡(jiǎn)顯示文件內(nèi)容
head 查看文件頭部
tail 查看文件末尾
chgrp 改變文件所屬群組
chown 改變文件擁有者
chmod 改變文件權(quán)限
man [命令] 查看命令的使用文檔
ls [參數(shù)] [目錄](méi) 列出目錄或文件名
ls -a 列出全部文件
ls -d 列出全部目錄
ls -l 長(zhǎng)數(shù)據(jù)串列出,包含文件屬性與權(quán)限
ls ~ 列出家目錄下所有文件
cd [相對(duì)路徑或絕對(duì)路徑] 切換目錄
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 連同上一級(jí)空目錄一起刪除
cp [參數(shù)] 目錄名稱 目錄拷貝的目標(biāo)位置 復(fù)制文件或目錄
cp -d 若來(lái)源檔為連結(jié)檔的屬性,則復(fù)制連結(jié)檔屬性而非文件本身
cp -f 若目標(biāo)文件已經(jīng)存在且無(wú)法開(kāi)啟,則移除后再嘗試一次
cp -i 若目標(biāo)檔已經(jīng)存在時(shí),在覆蓋時(shí)會(huì)先詢問(wèn)動(dòng)作的進(jìn)行
cp -p 連同文件的屬性一起復(fù)制過(guò)去,而非使用默認(rèn)屬性
cp -r 遞歸持續(xù)復(fù)制,用于目錄的復(fù)制行為
cp -s 復(fù)制成為符號(hào)連結(jié)檔
rm [-fir] 文件或目錄 移除文件或目錄
rm -f 忽略不存在的文件,不會(huì)出現(xiàn)警告信息
rm -i 互動(dòng)模式,在刪除前詢問(wèn)使用者是否刪除
rm -r 遞歸刪除,謹(jǐn)慎使用
mv [-fiu] source destination 移動(dòng)文件或目錄
mv -f 如果目標(biāo)文件已經(jīng)存在,不會(huì)詢問(wèn)而直接覆蓋
mv -i 若目標(biāo)文件已經(jīng)存在時(shí),就會(huì)詢問(wèn)是否覆蓋
mv -u 若目標(biāo)文件已經(jīng)存在,且 source 比較新,才會(huì)升級(jí) (update)
3.3 用戶管理

Linux系統(tǒng)是一個(gè)多用戶多任務(wù)的分時(shí)操作系統(tǒng),任何一個(gè)要使用系統(tǒng)資源的用戶,都必須首先向系統(tǒng)管理員申請(qǐng)一個(gè)賬號(hào),然后以這個(gè)賬號(hào)的身份進(jìn)入系統(tǒng)。

用戶的賬號(hào)一方面可以幫助系統(tǒng)管理員對(duì)使用系統(tǒng)的用戶進(jìn)行跟蹤,并控制他們對(duì)系統(tǒng)資源的訪問(wèn);另一方面也可以幫助用戶組織文件,并為用戶提供安全性保護(hù)。

用戶管理命令 說(shuō)明
useradd 選項(xiàng) 用戶名 添加新的用戶賬號(hào)
userdel 選型 用戶名 刪除已有賬號(hào)
usermod 選項(xiàng) 用戶名 更該用戶屬性
passwd 選項(xiàng) 用戶名 指定和修改用戶口令
groupadd 選項(xiàng) 用戶組 增加新用戶組
groupdel 用戶組 刪除已有用戶組
groupmod 選項(xiàng) 用戶組 修改用戶組屬性
newgrp 用戶組 切換到新用戶組

在Linux操作系統(tǒng)中,有三個(gè)概念是我們必須掌握:用戶、用戶所在群組、別的群組;這三個(gè)區(qū)分極大地方便了協(xié)同工作。

  • 用戶可以使用本用戶內(nèi)的資源以及用戶所在群組的公共資源
  • 不同群組之間的資源是完全隔離開(kāi)來(lái)的

因?yàn)閷?duì)于Linux系統(tǒng)來(lái)說(shuō),萬(wàn)物皆文件,所有上述資源就是指代文件。由于用戶、用戶所在群組、別的群組這三者的區(qū)分,我們需要能夠查看任一文件對(duì)這三者的權(quán)限。

#列出所有文件的詳細(xì)信息

#input:
ls -l

#output:
drwxr--rw- 1 root root 42306 Sep 14 22:03 etc

image

文件的類型:

  • 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文件是一個(gè)目錄
  • etc所有者可以讀寫并執(zhí)行etc文件
  • etc所述組的用戶可讀取etc文件
  • etc所不屬的組的用戶可以讀寫etc文件
  • etc文件有1個(gè)硬連接
  • ect屬于root這個(gè)用戶
  • ect屬于root這個(gè)群組
  • ect的容量為42306
  • etc最近更改日期為Sep 14 22:03
3.4 Vim編輯器

Vim是從 vi 發(fā)展出來(lái)的一個(gè)文本編輯器。代碼補(bǔ)完、編譯及錯(cuò)誤跳轉(zhuǎn)等方便編程的功能特別豐富,相當(dāng)于Windows中的記事本。

vim 共三種模式,分別是命令模式,輸入模式和底線命令模式。

這三種模式的作用分別是:


命令模式:

用戶剛剛啟動(dòng) vi/vim,便進(jìn)入了命令模式。

此狀態(tài)下敲擊鍵盤動(dòng)作會(huì)被Vim識(shí)別為命令,而非輸入字符。比如我們此時(shí)按下i,并不會(huì)輸入一個(gè)字符,i被當(dāng)作了一個(gè)命令。

以下是常用的幾個(gè)命令:

  • i 切換到輸入模式,以輸入字符。
  • x 刪除當(dāng)前光標(biāo)所在處的字符。
  • : 切換到底線命令模式,以在最底一行輸入命令。

若想要編輯文本:?jiǎn)?dòng)Vim,進(jìn)入了命令模式,按下i,切換到輸入模式。

命令模式只有一些最基本的命令,因此仍要依靠底線命令模式輸入更多命令。


輸入模式
在命令模式下按下i就進(jìn)入了輸入模式。

在輸入模式中,可以使用以下按鍵:

  • 字符按鍵以及Shift組合,輸入字符
  • ENTER,回車鍵,換行
  • BACK SPACE,退格鍵,刪除光標(biāo)前一個(gè)字符
  • DEL,刪除鍵,刪除光標(biāo)后一個(gè)字符
  • 方向鍵,在文本中移動(dòng)光標(biāo)
  • HOME/END,移動(dòng)光標(biāo)到行首/行尾
  • Page Up/Page Down,上/下翻頁(yè)
  • Insert,切換光標(biāo)為輸入/替換模式,光標(biāo)將變成豎線/下劃線
  • ESC,退出輸入模式,切換到命令模式

底線命令模式

在命令模式下按下:(英文冒號(hào))就進(jìn)入了底線命令模式。

底線命令模式可以輸入單個(gè)或多個(gè)字符的命令,可用的命令非常多。

在底線命令模式中,基本的命令有:

  • :q 退出程序
  • :w 保存文件
  • :wq 保存文件并退出程序

從記事本的視角切入,我們使用記事本的過(guò)程是打開(kāi)/創(chuàng)建記事本,編輯內(nèi)容,保存退出。


3.5 軟件包安裝、卸載、查看

apt命令

  • apt 命令提供了查找、安裝、升級(jí)、刪除某一個(gè)、一組甚至全部軟件包的命令,而且命令簡(jiǎn)潔而又好記。
  • apt 命令執(zhí)行需要超級(jí)管理員權(quán)限(root)
apt [options] [command] [package1,package2,...]
apt常用命令 說(shuō)明
sudo apt update 列出所有可更新的軟件清單
sudo apt upgrade 升級(jí)軟件包
apt list --upgradeable 列出可更新的軟件包及版本信息
sudo apt full-upgrage 升級(jí)軟件包,升級(jí)前先刪除需要更新軟件包
sudo apt install <package_name> 安裝指定的軟件
sudo apt install <package1> <package2> 安裝多個(gè)軟件包
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),另一種被稱為符號(hào)連接(Symbolic Link)。默認(rèn)情況下,ln 命令產(chǎn)生硬連接。

硬連接

硬連接指通過(guò)索引節(jié)點(diǎn)來(lái)進(jìn)行連接。在 Linux 的文件系統(tǒng)中,保存在磁盤分區(qū)中的文件不管是什么類型都給它分配一個(gè)編號(hào),稱為索引節(jié)點(diǎn)號(hào)(Inode Index)。在 Linux 中,多個(gè)文件名指向同一索引節(jié)點(diǎn)是存在的。比如:A 是 B 的硬鏈接(A 和 B 都是文件名),則 A 的目錄項(xiàng)中的 inode 節(jié)點(diǎn)號(hào)與 B 的目錄項(xiàng)中的 inode 節(jié)點(diǎn)號(hào)相同,即一個(gè) inode 節(jié)點(diǎn)對(duì)應(yīng)兩個(gè)不同的文件名,兩個(gè)文件名指向同一個(gè)文件,A 和 B 對(duì)文件系統(tǒng)來(lái)說(shuō)是完全平等的。刪除其中任何一個(gè)都不會(huì)影響另外一個(gè)的訪問(wèn)。

硬連接的作用是允許一個(gè)文件擁有多個(gè)有效路徑名,這樣用戶就可以建立硬連接到重要文件,以防止“誤刪”的功能。其原因如上所述,因?yàn)閷?duì)應(yīng)該目錄的索引節(jié)點(diǎn)有一個(gè)以上的連接。只刪除一個(gè)連接并不影響索引節(jié)點(diǎn)本身和其它的連接,只有當(dāng)最后一個(gè)連接被刪除后,文件的數(shù)據(jù)塊及目錄的連接才會(huì)被釋放。也就是說(shuō),文件真正刪除的條件是與之相關(guān)的所有硬連接文件均被刪除。

軟連接

另外一種連接稱之為符號(hào)連接(Symbolic Link),也叫軟連接。軟鏈接文件有類似于 Windows 的快捷方式。它實(shí)際上是一個(gè)特殊的文件。在符號(hào)連接中,文件實(shí)際上是一個(gè)文本文件,其中包含的有另一文件的位置信息。比如:A 是 B 的軟鏈接(A 和 B 都是文件名),A 的目錄項(xiàng)中的 inode 節(jié)點(diǎn)號(hào)與 B 的目錄項(xiàng)中的 inode 節(jié)點(diǎn)號(hào)不相同,A 和 B 指向的是兩個(gè)不同的 inode,繼而指向兩塊不同的數(shù)據(jù)塊。但是 A 的數(shù)據(jù)塊中存放的只是 B 的路徑名(可以根據(jù)這個(gè)找到 B 的目錄項(xiàng))。A 和 B 之間是“主從”關(guān)系,如果 B 被刪除了,A 仍然存在(因?yàn)閮蓚€(gè)是不同的文件),但指向的是一個(gè)無(wú)效的鏈接。

3.7
求個(gè)贊??,求個(gè)關(guān)注??
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容