面試 linux基礎知識點總結

  • 2019 年 10 月 7 日
  • 筆記

Linux入門概述

概述

Linux內核最初只是由芬蘭人林納斯·托瓦茲(Linus Torvalds)在赫爾辛基大學上學時出於個人愛好而編寫的。

Linux是一套免費使用和自由傳播的類Unix作業系統,是一個基於POSIX和UNIX的多用戶、多任務、支援多執行緒和多CPU的作業系統。Linux能運行主要的UNIX工具軟體、應用程式和網路協議。它支援32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路作業系統。

目前市面上較知名的發行版有:Ubuntu、RedHat、CentOS、Debain、Fedora、SuSE、OpenSUSE。

Linux特點

Linux裡面一切都是文件 Linux沒有文件後綴的這一說法

Linux和Windows的區別

目前中國Linux更多的是應用在伺服器上,而桌面作業系統更多使用的是window。主要區別如下。

比較

Window

Linux

介面

介面統一,外殼程式固定所有Windows程式菜單幾乎一致,快捷鍵也幾乎相同

圓形介面風格依發布版本不同而不同,可能互不兼容。GNU/Linux的終端機是從UNIX傳承下來,基本命令和操作方法也幾乎一致。

驅動程式

驅動程式豐富,版本更新頻繁。默認安裝程式裡面一般包含有該版本發布時流行的硬體驅動程式,之後所出的新硬體驅動依賴於硬體廠商提供。對於一些老硬體,如果沒有了原配的驅動有時候很難支援。另外,有時硬體廠商未提供所需版本的Windows下的驅動,也會比較頭痛。

由志願者開發,由Linux核心開發小組發布,很多硬體廠商基於版本考慮並未提供驅動程式,儘管多數無需手動安裝,但是涉及安裝則相對複雜,使得新用戶面對驅動程式問題會一籌莫展。但是在開源開發模式下,許多老硬體儘管在Windows下很難支援的也容易找到驅動。HP、Intel、AMD等硬體廠商逐步不同程式支援開源驅動,問題正在得到緩解。

使用

使用比較簡單,容易入門。圓形化介面對沒有電腦背景知識的用戶使用十分有利。

圓形介面使用簡單,容易入門。文字介面,需要學習才能掌握。

學習

系統構造複雜、變化頻繁、且知識、技能淘汰快,深入學習困難

系統構造簡單、穩定,且知識、技能傳承性好,深入學習相對容易

軟體

每一種特定功能可能都需要商業軟體的支援,需要購買相應的授權

大部分軟體都可以自由獲取,同樣功能的軟體選擇較少。

Linux目錄結構

/bin:是Binary的縮寫,這個目錄存放著系統必備執行命令

/boot:這裡存放的是啟動Linux時使用的一些核心文件,包括一些連接文件以及鏡像文件,自己的安裝別放這裡

/dev:Device(設備)的縮寫,該目錄下存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問文件的方式是相同的。

/etc:所有的系統管理所需要的配置文件和子目錄。

/home:存放普通用戶的主目錄,在Linux中每個用戶都有一個自己的目錄,一般該目錄名是以用戶的帳號命名的。

/lib:系統開機所需要最基本的動態連接共享庫,其作用類似於Windows里的DLL文件。幾乎所有的應用程式都需要用到這些共享庫。

/lost+found:這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些文件。

/media:linux系統會自動識別一些設備,例如U盤、光碟機等等,當識別後,linux會把識別的設備掛載到這個目錄下。

/misc: 該目錄可以用來存放雜項文件或目錄,即那些用途或含義不明確的文件或目錄可以存放在該目錄下。

/mnt:系統提供該目錄是為了讓用戶臨時掛載別的文件系統的,我們可以將光碟機掛載在/mnt/上,然後進入該目錄就可以查看光碟機里的內容了。

/net 存放著和網路相關的一些文件.

/opt:這是給主機額外安裝軟體所擺放的目錄。比如你安裝一個ORACLE資料庫則就可以放到這個目錄下。默認是空的。

/proc:這個目錄是一個虛擬的目錄,它是系統記憶體的映射,我們可以通過直接訪問這個目錄來獲取系統資訊。

/root:該目錄為系統管理員,也稱作超級許可權者的用戶主目錄。

/sbin:s就是Super User的意思,這裡存放的是系統管理員使用的系統管理程式。

/selinux:這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,類似於windows的防火牆

/srv:service縮寫,該目錄存放一些服務啟動之後需要提取的數據。

/sys: 這是linux2.6內核的一個很大的變化。該目錄下安裝了2.6內核中新出現的一個文件系統 sysfs 。

/tmp:這個目錄是用來存放一些臨時文件的。

/usr: 這是一個非常重要的目錄,用戶的很多應用程式和文件都放在這個目錄下,類似於windows下的program files目錄。

/var:這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日誌文件。

VI/VIM編輯器

概述

所有的 Unix Like 系統都會內建 vi 文書編輯器,其他的文書編輯器則不一定會存在。但是目前我們使用比較多的是 vim 編輯器。

Vim 具有程式編輯的能力,可以主動的以字體顏色辨別語法的正確性,方便程式設計。Vim是從 vi 發展出來的一個文本編輯器。程式碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程式設計師中被廣泛使用。

簡單的來說vi 是老式的字處理器,不過功能已經很齊全了,但是還是有可以進步的地方。vim 則可以說是程式開發者的一項很好用的工具。連vim 的官方網站 (http://www.vim.org) 自己也說 vim 是一個程式開發工具而不是文字處理軟體。 打個比喻就是:vi相當於windows中的記事本,而vim就相當於windows中的Notepad++。

相關編輯指令

以 vi 打開一個檔案就直接進入一般模式了(這是默認的模式)。在這個模式中, 你可以使用『上下左右』按鍵來移動游標,你可以使用『刪除字元』或『刪除整行』來處理檔案內容, 也可以使用『複製、貼上』來處理你的文件數據。

常用語法

1)yy (功能描述:複製游標當前一行)

y數字y (功能描述:複製一段(從第幾行到第幾行))

2)p (功能描述:箭頭移動到目的行粘貼)

3)u (功能描述:撤銷上一步)

4)dd (功能描述:刪除游標當前行)

d數字d (功能描述:刪除游標(含)後多少行)

5)x (功能描述:刪除一個字母,相當於del)

X (功能描述:刪除一個字母,相當於Backspace)

6)yw (功能描述:複製一個詞)

7)dw (功能描述:刪除一個詞)

8)shift+^ (功能描述:移動到行頭)

9)shift+$ (功能描述:移動到行尾)

10)1+shift+g (功能描述:移動到頁頭,數字)

11)shift+g (功能描述:移動到頁尾)

12)數字N+shift+g (功能描述:移動到目標行)

編輯模式

在一般模式中可以進行刪除、複製、貼上等等的動作,但是卻無法編輯文件內容的! 要等到你按下『i, I, o, O, a, A, r, R』等任何一個字母之後才會進入編輯模式。

注意了!通常在 Linux 中,按下這些按鍵時,在畫面的左下方會出現『INSERT 或 REPLACE 』的字樣,此時才可以進行編輯。而如果要回到一般模式時, 則必須要按下『Esc』這個按鍵即可退出編輯模式。

常用語法

1)進入編輯模式

(1)i 當前游標前

(2)a 當前游標後

(3)o 當前游標行的下一行

2)退出編輯模式

按『Esc』鍵

指令模式

在一般模式當中,輸入『 : / ?』3個中的任何一個按鈕,就可以將游標移動到最底下那一行。

在這個模式當中, 可以提供你『搜尋資料』的動作,而讀取、存檔、大量取代字元、離開 vi 、顯示行號等動作是在此模式中達成的!

常用語法

1)基本語法

(1): 選項

選項:

w 保存

q 退出

! 感嘆號強制執行

(2)/ 查找,/被查找詞,n是查找下一個,shift+n是往上查找

(3)? 查找,?被查找詞,n是查找上一個,shift+n是往下查找

2)案例

:wq! 強制保存退出

Linux系統相關操作

防火牆

1)基本語法:

service iptables status (功能描述:查看防火牆狀態)

chkconfig iptables –list (功能描述:查看防火牆開機啟動狀態)

service iptables stop (功能描述:臨時關閉防火牆)

chkconfig iptables off (功能描述:關閉防火牆開機啟動)

chkconfig iptables on (功能描述:開啟防火牆開機啟動)

2)擴展

Linux系統有7個運行級別(runlevel)

運行級別0:系統停機狀態,系統默認運行級別不能設為0,否則不能正常啟動

運行級別1:單用戶工作狀態,root許可權,用於系統維護,禁止遠程登陸

運行級別2:多用戶狀態(沒有NFS)

運行級別3:完全的多用戶狀態(有NFS),登陸後進入控制台命令行模式

運行級別4:系統未使用,保留

運行級別5:X11控制台,登陸後進入圖形GUI模式

運行級別6:系統正常關閉並重啟,默認運行級別不能設為6,否則不能正常啟動

具體和默認的啟動等級可以在 /etc/inittab目錄下查看

3)chkconfig和service命令的區別:

chkconfig是當前不生效,Linux重啟之後才生效的命令(開機自啟動項)

service是即使生效,重啟後失效的命令

關機重啟

在linux領域內大多用在伺服器上,很少遇到關機的操作。畢竟伺服器上跑一個服務是永無止境的,除非特殊情況下,不得已才會關機 。

正確的關機流程為:sync > shutdown > reboot > halt

1)基本語法:

(1)sync (功能描述:將數據由記憶體同步到硬碟中)

(2)shutdown [選項] 時間

選項:

-h:關機

-r:重啟

(3)halt (功能描述:關閉系統,等同於shutdown -h now 和 poweroff)

(4)reboot (功能描述:就是重啟,等同於 shutdown -r now)

2)案例

(1)將數據由記憶體同步到硬碟中

sync

(2)電腦將在10分鐘後關機,並且會顯示在登錄用戶的當前螢幕中

shutdown -h 10 『This server will shutdown after 10 mins』

(3)立馬關機

shutdown -h now

(4)系統立馬重啟

shutdown -r now

(5)重啟(等同於 shutdown -r now)

reboot

(6)關機(等同於shutdown -h now 和 poweroff)

halt

注意:不管是重啟系統還是關閉系統,首先要運行sync命令,把記憶體中的數據寫到磁碟中。

《深入淺出 Apache Dubbo 與實戰》書籍的誕生,解決了市面上 Dubbo 技術「內容膚淺、不能深入淺出講解原理」的問題,但有了專業書籍也不等於你真正學會了 Apache Dubbo ,學習難度依舊不容小覷。很多開發者回饋書籍內容很好,但自己的基礎較為薄弱,或者自己一個人的學習難以持續。