訂閱
糾錯
加入自媒體

Linux:知道多少東西才算入門?

2021-05-21 14:44
一口Linux
關注

到底要如何Linux入門呢?

因為Linux的知識體系非常的龐大,IT行業(yè)很多領域都需要使用到Linux,有運維的、有應用程序開發(fā)的、有驅(qū)動開發(fā)的、有系統(tǒng)優(yōu)化的、有搞單片機的、有做系統(tǒng)移植的、有做網(wǎng)絡產(chǎn)品的等等。

總結(jié)一句話,IT的很大部分從業(yè)者都需要掌握Linux的部分知識,但是由于每個人的從事領域不一樣,對Linux的要求也不一樣,這就直接導致,網(wǎng)上搜索學習路線有很多種,還有就是推薦的書籍很多都不利于初學者。

比如Linux命令的學習,很多人都力推《鳥哥的私房菜》這本書,一口君在直播間多次強調(diào),初學者不要看這本書,不是說這本書不好,而是,這本書其實你要當做一本工具書來看,如果你的目標是想快速的基于Linux做一些開發(fā)工作,最迫切的就是快速掌握一些基本的命令,一些和開發(fā)相關的最基礎的知識,而不是去學習那些可能這輩子都用不到的命令。

為了讓初學者更好的學習Linux,入門Linux,一口君特地整理了Linux入門必須掌握的一些基礎知識點,掌握這些知識點之后,就可以學習C編程的知識了,后續(xù)遇到一些不熟悉的命令和配置,只需要網(wǎng)上搜索下就可以很快上手了。

后續(xù)一口君會陸續(xù)錄制Linux入門的視頻,手把手教大家Linux入門。

持續(xù)更新中。

一、Linux操作系統(tǒng)概述

1、發(fā)展

1991 Linus Linux 0.0.1版,代碼為8K行,F(xiàn)在最新版本為5.12.4。Linux加入了GNU,整體基于GPL協(xié)議,允許開源、分享傳播、修改。

內(nèi)核下載的地址:

https://www.kernel.org/

2、組成 kernel內(nèi)核:

核心程序,用于管理硬件設備、系統(tǒng)的線程進程、內(nèi)存、交換空間、文件系統(tǒng)、精靈進程(守護進程)等。主要實現(xiàn)系統(tǒng)程序與硬件之間的控制管理功能。

Shell:

包裹在內(nèi)核之外的人機交互界面,用于用戶和內(nèi)核之間打交道的功能,類似于windows的cmd。通過Shell將輸入的命令與內(nèi)核通訊,好讓內(nèi)核可以控制硬件并正確無誤的操作工作。

Shell有著不同的分類,比如Bourne shell(sh),Korn shell(ksh)、C shell (csh)、Bourne-again shell(bash)、tcsh。其中最常用的有csh和bash。

ubuntu 16.04的terminal如下:

user applicationLinux根據(jù)程序的運行,分為用戶空間和內(nèi)核空間,簡單的理解就是,普通的應用程序運行在用戶空間,一些涉及到系統(tǒng)核心資源的操作的程序運行在內(nèi)核空間,比如TCP/IP協(xié)議棧、驅(qū)動、進程調(diào)度、內(nèi)存管理、文件系統(tǒng)等都運行于Linux內(nèi)核空間,

其實一些應用程序當需要訪問系統(tǒng)資源的時候,必須通過系統(tǒng)調(diào)用,通過一些內(nèi)核函數(shù)將系統(tǒng)資源由內(nèi)核空間拷貝到用戶空間。

Files System:文件系統(tǒng),管理文件和目錄。

3、Linux的特性:

多用戶、多任務(進程、線程處理),多平臺,圖形化界面(x-windows)、硬件配置、通信與聯(lián)網(wǎng)、應用程序的支持(編輯器、編輯工具、數(shù)據(jù)庫、辦公軟件、圖形處理、Internet應用、游戲)。

二、Linux操作系統(tǒng)安裝

1、Linux的選擇

red hat:企業(yè)級的,已經(jīng)開始收費(商用)。

CentOS是RHEL的克隆版本。RedHat一直都提供源代碼的發(fā)行方式,CentOS就是將RedHat發(fā)行的源代碼重新編譯一次,形成一個可使用的二進制版本。由于Linux的源代碼是GNU,所以從獲得RedHat的源代碼到編譯成新的二進制,都是合法。只是RedHat是商標,所以必須在新的發(fā)行版里將RedHat的商標去掉。通常搭建服務器選用CentOS。

ubuntu:桌面開源的,比較純正的Linux,android官方指定的編譯操作系統(tǒng),發(fā)展快、已支持ARM架構(gòu)。ubuntu在開發(fā)者中,非常受歡迎,一口君所有的文章和視頻都以ubuntu為主。

2、安裝Ubuntu Desktop

Linux環(huán)境安裝篇幅較長,安裝詳細步驟參考這篇文章:

《linux驅(qū)動、ARM學習環(huán)境搭建》

3、基本操作 ctrl+alt F2  可以進入終端界面
ctrl+alt F7  進入桌面界面
ctrl+alt+t    文本編輯

我們通常用快捷鍵ctrl+alt+t打開一個終端,這個一定要記住。

其中:

peng    當前用戶

ubuntu  主機名

~       當前用戶主目錄,/home/peng,每一個用戶都會在/home下創(chuàng)建一個與用戶名同名的目錄
$       普通用戶

如果切換到管理員用戶

root  管理員
/home/peng  當前工作目錄
#     當前是管理員

三、Linux文件系統(tǒng)及文件基礎

1、文件系統(tǒng)概述

Linux 中一切皆為文件,文件系統(tǒng)用來組織計算機的文件和資料的系統(tǒng),是操作系統(tǒng)封裝的一個系統(tǒng)服務程序,實際是一個軟件程序,用來存儲和管理計算機文件和資料。文件系統(tǒng)分類如下:

磁盤文件系統(tǒng):NTFS,EXT3
閃存文件系統(tǒng):JFFS2,YAFFS
數(shù)據(jù)庫文件系統(tǒng):BFFS,WINFS
網(wǎng)絡文件系統(tǒng):NFS
虛擬文件系統(tǒng):VFS(Proc)

文件系統(tǒng)的功能:能定義文件的組織方式,文件的結(jié)構(gòu);提供建立和存取文件的環(huán)境(目錄和文件)

2、Linux文件系統(tǒng)及文件

EXT3:是一個日志方式的文件系統(tǒng),系統(tǒng)中的每個文件都有索引,用戶對文件的每個操作都會記錄在日志中,形成一個任務隊列。

SWAP:是交換分區(qū)的文件系統(tǒng),類似于windows的虛擬內(nèi)存,其實現(xiàn)的方式有以下兩種:第一種是進行內(nèi)存排列像內(nèi)存池一樣,進行優(yōu)化;第二種是把硬盤上的空間模擬成內(nèi)存。Swap是Linux 的虛擬內(nèi)存,在安裝時要設置好大小,一般設置為物理內(nèi)存的兩倍。

目錄結(jié)構(gòu)linux 的結(jié)構(gòu)是由很多文件塊區(qū)組成,與Windows分區(qū)不同。

目錄應放置檔案內(nèi)容/bin系統(tǒng)有很多放置執(zhí)行檔的目錄,但/bin比較特殊。因為/bin放置的是在單人維護模式下還能夠被操作的指令。在/bin底下的指令可以被root與一般帳號所使用,主要有:cat,chmod(修改權(quán)限), chown, date, mv, mkdir, cp, bash等等常用的指令。/boot主要放置開機會使用到的檔案,包括Linux核心檔案以及開機選單與開機所需設定檔等等。Linux kernel常用的檔名為:vmlinuz ,如果使用的是grub這個開機管理程式,則還會存在/boot/grub/這個目錄。/dev在Linux系統(tǒng)上,任何裝置與周邊設備都是以檔案的型態(tài)存在于這個目錄當中。只要通過存取這個目錄下的某個檔案,就等于存取某個裝置。比較重要的檔案有/dev/null, /dev/zero, /dev/tty , /dev/lp*, / dev/hd*, /dev/sd*等等/etc系統(tǒng)主要的設定檔幾乎都放置在這個目錄內(nèi),例如人員的帳號密碼檔、各種服務的啟始檔等等。一般來說,這個目錄下的各檔案屬性是可以讓一般使用者查閱的,但是只有root有權(quán)力修改。FHS建議不要放置可執(zhí)行檔(binary)在這個目錄中。比較重要的檔案有:/etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/等等。另外,其下重要的目錄有:/etc/init.d/ :所有服務的預設啟動script都是放在這里的,例如要啟動或者關閉iptables的話:/etc/init.d/iptables start、/etc/init.d/ iptables stop/etc/xinetd.d/這就是所謂的super daemon管理的各項服務的設定檔目錄。/etc/X11/與X Window有關的各種設定檔都在這里,尤其是xorg.conf或XF86Config這兩個X Server的設定檔。/home這是系統(tǒng)預設的使用者家目錄(home directory)。在你新增一個一般使用者帳號時,預設的使用者家目錄都會規(guī)范到這里來。比較重要的是,家目錄有兩種代號:~ :代表當前使用者的家目錄,而 ~guest:則代表用戶名為guest的家目錄。/lib系統(tǒng)的函式庫非常的多,而/lib放置的則是在開機時會用到的函式庫,以及在/bin或/sbin底下的指令會呼叫的函式庫而已 。什么是函式庫呢?妳可以將他想成是外掛,某些指令必須要有這些外掛才能夠順利完成程式的執(zhí)行之意。尤其重要的是/lib/modules/這個目錄,因為該目錄會放置核心相關的模組(驅(qū)動程式)。/mediamedia是媒體的英文,顧名思義,這個/media底下放置的就是可移除的裝置。包括軟碟、光碟、DVD等等裝置都暫時掛載于此。常見的檔名有:/media/floppy, /media/cdrom等等。/mnt如果妳想要暫時掛載某些額外的裝置,一般建議妳可以放置到這個目錄中。在古早時候,這個目錄的用途與/media相同啦。只是有了/media之后,這個目錄就用來暫時掛載用了。/opt這個是給第三方協(xié)力軟體放置的目錄 。什么是第三方協(xié)力軟體啊?舉例來說,KDE這個桌面管理系統(tǒng)是一個獨立的計畫,不過他可以安裝到Linux系統(tǒng)中,因此KDE的軟體就建議放置到此目錄下了。另外,如果妳想要自行安裝額外的軟體(非原本的distribution提供的),那么也能夠?qū)⒛愕能涹w安裝到這里來。不過,以前的Linux系統(tǒng)中,我們還是習慣放置在/usr/local目錄下。/root系統(tǒng)管理員(root)的家目錄。之所以放在這里,是因為如果進入單人維護模式而僅掛載根目錄時,該目錄就能夠擁有root的家目錄,所以我們會希望root的家目錄與根目錄放置在同一個分區(qū)中。/sbinLinux有非常多指令是用來設定系統(tǒng)環(huán)境的,這些指令只有root才能夠利用來設定系統(tǒng),其他使用者最多只能用來查詢而已。放在/sbin底下的為開機過程中所需要的,里面包括了開機、修復、還原系統(tǒng)所需要的指令。至于某些伺服器軟體程式,一般則放置到/usr/sbin/當中。至于本機自行安裝的軟體所產(chǎn)生的系統(tǒng)執(zhí)行檔(system binary),則放置到/usr/local/sbin/當中了。常見的指令包括:fdisk, fsck, ifconfig, init, mkfs等等。/srvsrv可以視為service的縮寫,是一些網(wǎng)路服務啟動之后,這些服務所需要取用的資料目錄。常見的服務例如WWW, FTP等等。舉例來說,WWW伺服器需要的網(wǎng)頁資料就可以放置在/srv/www/里面。呵呵,看來平時我們編寫的代碼應該放到這里了。/tmp這是讓一般使用者或者是正在執(zhí)行的程序暫時放置檔案的地方。這個目錄是任何人都能夠存取的,所以你需要定期的清理一下。當然,重要資料不可放置在此目錄啊。因為FHS甚至建議在開機時,應該要將/tmp下的資料都刪除。3. Linux文件屬性:

Linux文件屬性一共7種:

類型字母說明普通文件類型-Linux中最多的一種文件類型, 包括 純文本文件(ASCII);二進制文件(binary);數(shù)據(jù)格式的文件(data);各種壓縮文件.第一個屬性為 [-]目錄文件d就是目錄, 能用 # cd 命令進入的。第一個屬性為 [d],例如 [drwxrwxrwx]塊設備文件b塊設備文件 :就是存儲數(shù)據(jù)以供系統(tǒng)存取的接口設備,簡單而言就是硬盤。例如一號硬盤的代碼是 /dev/hda1等文件。第一個屬性為 [b]字符設備c字符設備文件:即串行端口的接口設備,例如鍵盤、鼠標等等。第一個屬性為 [c]套接字文件s這類文件通常用在網(wǎng)絡數(shù)據(jù)連接?梢詥右粋程序來監(jiān)聽客戶端的要求,客戶端就可以通過套接字來進行數(shù)據(jù)通信。第一個屬性為 [s],最常在 /var/run目錄中看到這種文件類型管道文件pFIFO也是一種特殊的文件類型,它主要的目的是,解決多個程序同時存取一個文件所造成的錯誤。FIFO是first-in-first-out(先進先出)的縮寫。第一個屬性為 [p]鏈接文件l類似Windows下面的快捷方式。第一個屬性為 [l],例如 [lrwxrwxrwx]1、普通文件

使用 ls -l 命令后,

第一列第一個字符為 "-" 的文件為普通文件.

2、目錄文件

Linux 中的目錄也是文件,目錄文件中保存著該目錄下其他文件的 inode 號 和文件名等信息,目錄文件中的每個數(shù)據(jù)項都是指向某個文件 inode 號的鏈接,刪除文件名就等于刪除與之對應的鏈接。目錄文件的字體顏色是藍色,使用 ls -l 命令查看,第一個字符為"d"(directory)。

目錄文件的權(quán)限:

1)r 表明該目錄文件具有可讀權(quán)限,即可以使用 ls 命令查看該目錄的存儲情況;2)w 表明該目錄文件具有寫權(quán)限,即可以往該目錄下添加、修改、刪除文件;3)x 表明該目錄文件具有可執(zhí)行文件,即可以使用 cd 命令進入到該目錄下。

可以使用 chmod 指令來改變文件的權(quán)限。

3、鏈接文件

鏈接文件一般指的是一個文件的軟連接(或符號鏈接),使用 ls -l 命令查看,第一個符號為  "l",文件名為淺藍色,如下:

這里,test_softlink 就是一個鏈接文件,從結(jié)果上還可以看到它是文件 test.txt 的軟鏈接,刪除原文件 test.txt 的話,對應的軟鏈接文件 test_softlink 也會消失。可以使用 ln 命令來創(chuàng)建一個文件的鏈接文件:

1)軟鏈接軟鏈接(又稱符號鏈接),使用 ln -s file file_softlink 命令可以創(chuàng)建一個文件的軟鏈接文件:

ln -s test.txt test_softlink

軟鏈接相當于給原文件創(chuàng)建了一個快捷方式,如果刪除原文件,則對應的軟鏈接文件也會消失。

2)硬鏈接硬鏈接,相當于給原文件取了個別名,其實兩者是同一個文件,刪除二者中任何一個,另一個不會消失;對其中任何一個進行更改,另一個的內(nèi)容也會隨之改變,因為這兩個本質(zhì)上是同一個文件,只是名字不同。使用 ls -i 命令查看,可以發(fā)現(xiàn)硬鏈接的兩個文件的 inode 號是一樣的:

同樣的,使用 ln 命令可以創(chuàng)建一個文件的硬鏈接:

ln test.txt test_hardlink

4、設備文件

Linux 中的硬件設備如硬盤、鼠標等也都被表示為文件,即為設備文件。

設備文件一般存放在 /dev/ 目錄下,文件名為黃色,如下:

設備文件分兩種:

1)塊設備文件:

塊設備文件支持以塊(block)為單位的訪問方式。在 EXT4 文件系統(tǒng)中,一個 block 通常為 4KB 的大小,也就是說每次可以存取 4096(或其整數(shù)倍) 個字節(jié)的數(shù)據(jù)。應用程序可以隨機訪問塊設備文件的數(shù)據(jù),程序可以自行確定數(shù)據(jù)的位置,硬盤、軟盤等都是塊設備。使用 ls -l 命令查看,塊設備文件的第一個字符是 "b"(block)。

2)字符設備文件:

字符設備文件以字節(jié)流的方式進行訪問,由字符設備驅(qū)動程序來實現(xiàn)這種特性,這通常要用到 open、close、read、write 等系統(tǒng)調(diào)用。字符終端、串口和鍵盤等就是字符設備。另外,由于字符設備文件是以文件流的方式進行訪問的,因此可以順序讀取,但通常不支持隨機存取。使用 ls -l 命令查看,字符設備文件的第一個字符是 "c"(char)。

5、管道文件(FIFO文件)

管道文件主要用于進程間通信,使用 ls -l 命令查看,第一個字符為 "p"(pipe)。可以使用 mkfifo 命令來創(chuàng)建一個管道文件:

mkfifo fifo_file

在 FIFO 中可以很好地解決在無關進程間數(shù)據(jù)交換的要求,F(xiàn)IFO 的通信方式類似于在進程中使用文件來傳輸數(shù)據(jù),只不過 FIFO 類型的文件同時具有管道的特性,在讀取數(shù)據(jù)時,F(xiàn)IFO 管道中同時清除數(shù)據(jù)。

6、套接字文件

套接字文件,通常指域套接字文件,使用 ls -l 命令查看,第一個字符為 "s"。

域套接字是進程間通信(IPC)的一種方法,是可靠的一種IPC通信,是POSIX標準的一個組件,只能用于同一主機間的通信。

后續(xù)學習進程間通信需要學習該知識。

4. 文件顏色

常見的文件顏色如下:

藍色:目錄文件綠色:可執(zhí)行文件淺藍色:鏈接文件紅色:壓縮文件黃色:字符設備灰色:其他文件

1  2  3  下一頁>  
聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

人工智能 獵頭職位 更多
掃碼關注公眾號
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯
x
*文字標題:
*糾錯內(nèi)容:
聯(lián)系郵箱:
*驗 證 碼:

粵公網(wǎng)安備 44030502002758號