關注轉發評論-小編原創作品
Linux 簡介
Linux內核最初只是由芬蘭人李納斯·託瓦茲(Linus Torvalds)在赫爾辛基大學上學時出於個人愛好而編寫的。
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。
Linux能運行主要的UNIX工具軟件、應用程序和網絡協議。它支持32位和64位硬件。Linux繼承了Unix以網絡為核心的設計思想,是一個性能穩定的多用戶網絡操作系統。
Linux的發行版
Linux的發行版說簡單點就是將Linux內核與應用軟件做一個打包。
目前市面上較知名的發行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、TurboLinux、BluePoint、RedFlag、Xterm、SlackWare等。
Linux應用領域
今天各種場合都有使用各種Linux發行版,從嵌入式設備到超級計算機,並且在服務器領域確定了地位,通常服務器使用LAMP(Linux + Apache + MySQL + PHP)或LNMP(Linux + Nginx+ MySQL + PHP)組合。
目前Linux不僅在家庭與企業中使用,並且在政府中也很受歡迎。
巴西聯邦政府由於支持Linux而世界聞名。
有新聞報道俄羅斯軍隊自己製造的Linux發佈版的,做為G.H.ost項目已經取得成果.
印度的Kerala聯邦計劃在向全聯邦的高中推廣使用Linux。
中華人民共和國為取得技術獨立,在龍芯過程中排他性地使用Linux。
在西班牙的一些地區開發了自己的Linux發佈版,並且在政府與教育領域廣泛使用,如Extremadura地區的gnuLinEx和Andalusia地區的Guadalinex。
葡萄牙同樣使用自己的Linux發佈版Caixa Mágica,用於Magalh?es筆記本電腦和e-escola政府軟件。
法國和德國同樣開始逐步採用Linux。
Linux vs Windows
目前國內Linux更多的是應用於服務器上,而桌面操作系統更多使用的是 Windows。主要區別如下
比較 | Windows | Linux |
---|---|---|
界面 | 界面統一,外殼程序固定所有Windows程序菜單幾乎一致,快捷鍵也幾乎相同 | 圖形界面風格依發佈版不同而不同,可能互不兼容。GNU/Linux的終端機是從UNIX傳承下來,基本命令和操作方法也幾乎一致。 |
驅動程序 | 驅動程序豐富,版本更新頻繁。默認安裝程序裡面一般包含有該版本發佈時流行的硬件驅動程序,之後所出的新硬件驅動依賴於硬件廠商提供。對於一些老硬件,如果沒有了原配的驅動有時很難支持。另外,有時硬件廠商未提供所需版本的Windows下的驅動,也會比較頭痛。 | 由志願者開發,由Linux核心開發小組發佈,很多硬件廠商基於版權考慮並未提供驅動程序,儘管多數無需手動安裝,但是涉及安裝則相對複雜,使得新用戶面對驅動程序問題(是否存在和安裝方法)會一籌莫展。但是在開源開發模式下,許多老硬件儘管在Windows下很難支持的也容易找到驅動。HP、Intel、AMD等硬件廠商逐步不同程度支持開源驅動,問題正在得到緩解。 |
使用 | 使用比較簡單,容易入門。圖形化界面對沒有計算機背景知識的用戶使用十分有利。 | 圖形界面使用簡單,容易入門。文字界面,需要學習才能掌握。 |
學習 | 系統構造複雜、變化頻繁,且知識、技能淘汰快,深入學習困難。 | 系統構造簡單、穩定,且知識、技能傳承性好,深入學習相對容易。 |
軟件 | 每一種特定功能可能都需要商業軟件的支持,需要購買相應的授權。 | 大部分軟件都可以自由獲取,同樣功能的軟件選擇較少。 |
Linux 安裝
本章節我們將為大家介紹Linux的安裝。
本章節以 centos6.4 為例。
centos 下載地址:
可以去官網下載最新版本:https://www.centos.org/download/
以下針對各個版本的ISO鏡像文件,進行一一說明:
CentOS-7.0-x86_64-DVD-1503-01.iso : 標準安裝版,一般下載這個就可以了(推薦)
CentOS-7.0-x86_64-NetInstall-1503-01.iso : 網絡安裝鏡像(從網絡安裝或者救援系統)
CentOS-7.0-x86_64-Everything-1503-01.iso: 對完整版安裝盤的軟件進行補充,集成所有軟件。(包含centos7的一套完整的軟件包,可以用來安裝系統或者填充本地鏡像)
CentOS-7.0-x86_64-GnomeLive-1503-01.iso: GNOME桌面版
CentOS-7.0-x86_64-KdeLive-1503-01.iso: KDE桌面版
CentOS-7.0-x86_64-livecd-1503-01.iso : 光盤上運行的系統,類擬於winpe
CentOS-7.0-x86_64-minimal-1503-01.iso : 精簡版,自帶的軟件最少
注:建議安裝64位Linux系統。
舊版本下載地址:https://wiki.centos.org/Download
接下來你需要將下載的Linux系統刻錄成光盤或U盤。
注:你也可以在Window上安裝VMware虛擬機來安裝Linux系統。
Linux 安裝步驟
1、首先,使用光驅或U盤或你下載的Linux ISO文件進行安裝。
界面說明:
Install or upgrade an existing system 安裝或升級現有的系統
install system with basic video driver 安裝過程中採用基本的顯卡驅動
Rescue installed system 進入系統修復模式
Boot from local drive 退出安裝從硬盤啟動
Memory test 內存檢測
注:用聯想E49安裝時選擇第一項安裝時會出現屏幕顯示異常的問題,後改用第二項安裝時就沒有出現問題
2、這時直接"skip"就可以了
3、出現引導界面,點擊"next"
4、選中"English(English)"否則會有部分亂碼問題
5、鍵盤佈局選擇"U.S.English"
6、選擇"Basic Storage Devices"點擊"Next"
7、詢問是否忽略所有數據,新電腦安裝系統選擇"Yes,discard any data"
8、Hostname填寫格式"英文名.姓"
9、網絡設置安裝圖示順序點擊就可以了
10、時區可以在地圖上點擊,選擇"shanghai"並取消System clock uses UTC前面的對勾
11、設置root的密碼
12、硬盤分區,一定要按照圖示點選
13、調整分區,必須要有/home這個分區,如果沒有這個分區,安裝部分軟件會出現不能安裝的問題
14、詢問是否格式化分區
15、將更改寫入到硬盤
16、引導程序安裝位置
17、最重要的一步,也是本教程最關鍵的一步,也是其他教程沒有提及的一步,按圖示順序點擊
18、取消以下內容的所有選項
Applications
Base System
Servers
並對Desktops進行如下設置
即取消如下選項:
Desktop Debugging and Performance Tools
Desktop Platform
Remote Desktop Clients
Input Methods中僅保留ibus-pinyin-1.3.8-1.el6.x86_64,其他的全部取消
19、選中Languages,並選中右側的Chinese Support然後點擊紅色區域
20、調整完成後如下圖所示
21、至此,一個最精簡的桌面環境就設置完成了,
22、安裝完成,重啟
23、重啟之後,的License Information
24、Create User
Username:填寫您的英文名(不帶.姓)
Full Name:填寫您的英文名.姓(首字母大寫)
25、"Date and Time" 選中 "Synchronize data and time over the network"
Finsh之後系統將重啟
26、第一次登錄,登錄前不要做任何更改,這個很重要!!!登錄之後緊接著退出
第二次登錄,選擇語言,在紅色區域選擇下拉小三角,選other,選中"漢語(中國)"
27、登錄之後,請一定按照如下順序點擊!
至此,CentOS安裝完成,如有其他問題,請隨時與我聯繫!!
Linux 系統啟動過程
linux啟動時我們會看到許多啟動信息。
Linux系統的啟動過程並不是大家想象中的那麼複雜,其過程可以分為5個階段:
內核的引導。
運行 init。
系統初始化。
建立終端 。
用戶登錄系統。
init程序的類型:
SysV: init, CentOS 5之前, 配置文件: /etc/inittab。
Upstart: init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf。
Systemd: systemd, CentOS 7,配置文件: /usr/lib/systemd/system、 /etc/systemd/system。
內核引導
當計算機打開電源後,首先是BIOS開機自檢,按照BIOS中設置的啟動設備(通常是硬盤)來啟動。
操作系統接管硬件以後,首先讀入 /boot 目錄下的內核文件。
運行init
init 進程是系統所有進程的起點,你可以把它比擬成系統所有進程的老祖宗,沒有這個進程,系統中任何進程都不會啟動。
init 程序首先是需要讀取配置文件 /etc/inittab。
運行級別
許多程序需要開機啟動。它們在Windows叫做"服務"(service),在Linux就叫做"守護進程"(daemon)。
init進程的一大任務,就是去運行這些開機啟動的程序。
但是,不同的場合需要啟動不同的程序,比如用作服務器時,需要啟動Apache,用作桌面就不需要。
Linux允許為不同的場合,分配不同的開機啟動程序,這就叫做"運行級別"(runlevel)。也就是說,啟動時根據"運行級別",確定要運行哪些程序。
Linux系統有7個運行級別(runlevel):
運行級別0:系統停機狀態,系統默認運行級別不能設為0,否則不能正常啟動
運行級別1:單用戶工作狀態,root權限,用於系統維護,禁止遠程登陸
運行級別2:多用戶狀態(沒有NFS)
運行級別3:完全的多用戶狀態(有NFS),登陸後進入控制檯命令行模式
運行級別4:系統未使用,保留
運行級別5:X11控制檯,登陸後進入圖形GUI模式
運行級別6:系統正常關閉並重啟,默認運行級別不能設為6,否則不能正常啟動
系統初始化
在init的配置文件中有這麼一行: si::sysinit:/etc/rc.d/rc.sysinit 它調用執行了/etc/rc.d/rc.sysinit,而rc.sysinit是一個bash shell的腳本,它主要是完成一些系統初始化的工作,rc.sysinit是每一個運行級別都要首先運行的重要腳本。
它主要完成的工作有:激活交換分區,檢查磁盤,加載硬件模塊以及其它一些需要優先執行任務。
l5:5:wait:/etc/rc.d/rc 5
這一行表示以5為參數運行/etc/rc.d/rc,/etc/rc.d/rc是一個Shell腳本,它接受5作為參數,去執行/etc/rc.d/rc5.d/目錄下的所有的rc啟動腳本,/etc/rc.d/rc5.d/目錄中的這些啟動腳本實際上都是一些連接文件,而不是真正的rc啟動腳本,真正的rc啟動腳本實際上都是放在/etc/rc.d/init.d/目錄下。
而這些rc啟動腳本有著類似的用法,它們一般能接受start、stop、restart、status等參數。
/etc/rc.d/rc5.d/中的rc啟動腳本通常是K或S開頭的連接文件,對於以以S開頭的啟動腳本,將以start參數來運行。
而如果發現存在相應的腳本也存在K打頭的連接,而且已經處於運行態了(以/var/lock/subsys/下的文件作為標誌),則將首先以stop為參數停止這些已經啟動了的守護進程,然後再重新運行。
這樣做是為了保證是當init改變運行級別時,所有相關的守護進程都將重啟。
至於在每個運行級中將運行哪些守護進程,用戶可以通過chkconfig或setup中的"System Services"來自行設定。
建立終端
rc執行完畢後,返回init。這時基本系統環境已經設置好了,各種守護進程也已經啟動了。
init接下來會打開6個終端,以便用戶登錄系統。在inittab中的以下6行就是定義了6個終端:
1:2345:respawn:/sbin/mingetty tty12:2345:respawn:/sbin/mingetty tty23:2345:respawn:/sbin/mingetty tty34:2345:respawn:/sbin/mingetty tty45:2345:respawn:/sbin/mingetty tty56:2345:respawn:/sbin/mingetty tty6
從上面可以看出在2、3、4、5的運行級別中都將以respawn方式運行mingetty程序,mingetty程序能打開終端、設置模式。
同時它會顯示一個文本登錄界面,這個界面就是我們經常看到的登錄界面,在這個登錄界面中會提示用戶輸入用戶名,而用戶輸入的用戶將作為參數傳給login程序來驗證用戶的身份。
用戶登錄系統
一般來說,用戶的登錄方式有三種:
(1)命令行登錄
(2)ssh登錄
(3)圖形界面登錄
對於運行級別為5的圖形方式用戶來說,他們的登錄是通過一個圖形化的登錄界面。登錄成功後可以直接進入KDE、Gnome等窗口管理器。
而本文主要講的還是文本方式登錄的情況:當我們看到mingetty的登錄界面時,我們就可以輸入用戶名和密碼來登錄系統了。
Linux的賬號驗證程序是login,login會接收mingetty傳來的用戶名作為用戶名參數。
然後login會對用戶名進行分析:如果用戶名不是root,且存在/etc/nologin文件,login將輸出nologin文件的內容,然後退出。
這通常用來系統維護時防止非root用戶登錄。只有/etc/securetty中登記了的終端才允許root用戶登錄,如果不存在這個文件,則root可以在任何終端上登錄。
/etc/usertty文件用於對用戶作出附加訪問限制,如果不存在這個文件,則沒有其他限制。
<p在分析完用戶名後,login將搜索 etc="" passwd以及="" shadow來驗證密碼以及設置賬戶的其它信息,比如:主目錄是什麼、使用何種shell。如果沒有指定主目錄,將默認為根目錄;如果沒有指定shell,將默認為="" bin="" bash。<="" p="" style="color: rgb(51, 51, 51); font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "WenQuanYi Micro Hei", Arial, sans-serif; font-size: 12px; white-space: normal;">
圖形模式與文字模式的切換方式
Linux預設提供了六個命令窗口終端機讓我們來登錄。
默認我們登錄的就是第一個窗口,也就是tty1,這個六個窗口分別為tty1,tty2 … tty6,你可以按下Ctrl + Alt + F1 ~ F6 來切換它們。
如果你安裝了圖形界面,默認情況下是進入圖形界面的,此時你就可以按Ctrl + Alt + F1 ~ F6來進入其中一個命令窗口界面。
當你進入命令窗口界面後再返回圖形界面只要按下Ctrl + Alt + F7 就回來了。
如果你用的vmware 虛擬機,命令窗口切換的快捷鍵為 Alt + Space + F1~F6. 如果你在圖形界面下請按Alt + Shift + Ctrl + F1~F6 切換至命令窗口。
Linux 關機
在linux領域內大多用在服務器上,很少遇到關機的操作。畢竟服務器上跑一個服務是永無止境的,除非特殊情況下,不得已才會關機。
正確的關機流程為:sync > shutdown > reboot > halt
關機指令為:shutdown ,你可以man shutdown 來看一下幫助文檔。
例如你可以運行如下命令關機:
sync 將數據由內存同步到硬盤中。shutdown 關機指令,你可以man shutdown 來看一下幫助文檔。例如你可以運行如下命令關機:shutdown –h 10 ‘This server will shutdown after 10 mins’ 這個命令告訴大家,計算機將在10分鐘後關機,並且會顯示在登陸用戶的當前屏幕中。Shutdown –h now 立馬關機Shutdown –h 20:25 系統會在今天20:25關機Shutdown –h +10 十分鐘後關機Shutdown –r now 系統立馬重啟Shutdown –r +10 系統十分鐘後重啟reboot 就是重啟,等同於 shutdown –r nowhalt 關閉系統,等同於shutdown –h now 和 poweroff
最後總結一下,不管是重啟系統還是關閉系統,首先要運行 sync 命令,把內存中的數據寫到磁盤中。
關機的命令有 shutdown –h now halt poweroff 和 init 0 , 重啟系統的命令有 shutdown –r now reboot init 6。
Linux 系統目錄結構
登錄系統後,在當前命令窗口下輸入命令:
ls /
你會看到如下圖所示:
樹狀目錄結構:
以下是對這些目錄的解釋:
/bin:
bin是Binary的縮寫, 這個目錄存放著最經常使用的命令。
/boot:
這裡存放的是啟動Linux時使用的一些核心文件,包括一些連接文件以及鏡像文件。
/dev :
dev是Device(設備)的縮寫, 該目錄下存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問文件的方式是相同的。
/etc:
這個目錄用來存放所有的系統管理所需要的配置文件和子目錄。
/home:
用戶的主目錄,在Linux中,每個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的。
/lib:
這個目錄裡存放著系統最基本的動態連接共享庫,其作用類似於Windows裡的DLL文件。幾乎所有的應用程序都需要用到這些共享庫。
/lost+found:
這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些文件。
/media:
linux系統會自動識別一些設備,例如U盤、光驅等等,當識別後,linux會把識別的設備掛載到這個目錄下。
/mnt:
系統提供該目錄是為了讓用戶臨時掛載別的文件系統的,我們可以將光驅掛載在/mnt/上,然後進入該目錄就可以查看光驅裡的內容了。
/opt:
這是給主機額外安裝軟件所擺放的目錄。比如你安裝一個ORACLE數據庫則就可以放到這個目錄下。默認是空的。
/proc:
這個目錄是一個虛擬的目錄,它是系統內存的映射,我們可以通過直接訪問這個目錄來獲取系統信息。
這個目錄的內容不在硬盤上而是在內存裡,我們也可以直接修改裡面的某些文件,比如可以通過下面的命令來屏蔽主機的ping命令,使別人無法ping你的機器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:
該目錄為系統管理員,也稱作超級權限者的用戶主目錄。
/sbin:
s就是Super User的意思,這裡存放的是系統管理員使用的系統管理程序。
/selinux:
這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,類似於windows的防火牆,但是這套機制比較複雜,這個目錄就是存放selinux相關的文件的。
/srv:
該目錄存放一些服務啟動之後需要提取的數據。
/sys:
這是linux2.6內核的一個很大的變化。該目錄下安裝了2.6內核中新出現的一個文件系統 sysfs 。
sysfs文件系統集成了下面3種文件系統的信息:針對進程信息的proc文件系統、針對設備的devfs文件系統以及針對偽終端的devpts文件系統。
該文件系統是內核設備樹的一個直觀反映。
當一個內核對象被創建的時候,對應的文件和目錄也在內核對象子系統中被創建。
/tmp:
這個目錄是用來存放一些臨時文件的。
/usr:
這是一個非常重要的目錄,用戶的很多應用程序和文件都放在這個目錄下,類似與windows下的program files目錄。
/usr/bin:
系統用戶使用的應用程序。
/usr/sbin:
超級用戶使用的比較高級的管理程序和系統守護程序。
/usr/src:內核源代碼默認的放置目錄。
/var:
這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日誌文件。
在linux系統中,有幾個目錄是比較重要的,平時需要注意不要誤刪除或者隨意更改內部文件。
/etc: 上邊也提到了,這個是系統中的配置文件,如果你更改了該目錄下的某個文件可能會導致系統不能啟動。
/bin, /sbin, /usr/bin, /usr/sbin: 這是系統預設的執行文件的放置目錄,比如 ls 就是在/bin/ls 目錄下的。
值得提出的是,/bin, /usr/bin 是給系統用戶使用的指令(除root外的通用戶),而/sbin, /usr/sbin 則是給root使用的指令。
/var: 這是一個非常重要的目錄,系統上跑了很多程序,那麼每個程序都會有相應的日誌產生,而這些日誌就被記錄到這個目錄下,具體在/var/log 目錄下,另外mail的預設放置也是在這裡。
Linux 忘記密碼解決方法
很多朋友經常會忘記Linux系統的root密碼,linux系統忘記root密碼的情況該怎麼辦呢?重新安裝系統嗎?當然不用!進入單用戶模式更改一下root密碼即可。
步驟如下:
重啟linux系統
3 秒之內要按一下回車,出現如下界面
然後輸入e
在 第二行最後邊輸入 single,有一個空格。具體方法為按向下尖頭移動到第二行,按"e"進入編輯模式
在後邊加上single 回車
最後按"b"啟動,啟動後就進入了單用戶模式了
此時已經進入到單用戶模式了,你可以更改root密碼了。更密碼的命令為 passwd
【使用系統安裝光盤的救援模式】
救援模式即rescue ,這個模式主要是應用於,系統無法進入的情況。如,grub損壞或者某一個配置文件修改出錯。如何使用rescue模式呢?
光盤啟動,按F5 進入rescue模式
輸入linux rescue 回車
選擇語言,筆者建議你選擇英語
選擇us 鍵盤
這裡問你是否啟動網絡,有時候可能會聯網調試。我們選no
這裡告訴我們,接下來會把系統掛載在/mnt/sysimage 中。
其中有三個選項:
Continue 就是掛載後繼續下一步。
Read-Only 掛載成只讀,這樣更安全,有時文件系統損壞時,只讀模式會防止文件系統近一步損壞。
Skip就是不掛載,進入一個命令窗口模式。
這裡我們選擇Continue。
至此,系統已經掛載到了/mnt/sysimage中。接下來回車,輸入chroot /mnt/sysimage 進入管理員環境。
提示: 其實也可以到rescue模式下更改root的密碼的。這個rescue模式和windows PE系統很相近。
當運行了chroot /mnt/sysimage/ 後,再ls 看到目錄結構和原來系統中的目錄結構是一樣的。
沒錯!現在的環境和原來系統的環境是一模一樣的。你可以輸入exit 或者按Ctrl + D退出這個環境。然後你再ls 看一下
這個目錄其實就是rescue模式下的目錄結構,而我們的系統文件全部在 /mnt/sysimage目錄下。