前言
在認(rèn)識(shí)Linux系統(tǒng)之前先介紹下計(jì)算機(jī)的組成構(gòu)造及其功能:
1,簡(jiǎn)單來(lái)說(shuō)計(jì)算機(jī)可以劃分為軟件系統(tǒng)和硬件系統(tǒng):
(1)軟件系統(tǒng)自不必說(shuō)就是各種不同的程序,協(xié)助用戶更好地使用電腦。
(2)硬件系統(tǒng)指的是主機(jī)、顯示器、鼠鍵等硬件設(shè)備。
2,按馮諾依曼體系可將計(jì)算機(jī)按邏輯構(gòu)成分為:
(1)CPU(運(yùn)算器、控制器)。運(yùn)算器是數(shù)據(jù)處理裝置,用來(lái)完成對(duì)數(shù)據(jù)的算術(shù)運(yùn)算和邏輯運(yùn)算;控制器是發(fā)布操作命令的裝置,用來(lái)控制整個(gè)計(jì)算機(jī)自動(dòng)執(zhí)行程序,它類似于人的大腦中樞,指揮和協(xié)調(diào)計(jì)算機(jī)各部件的工作。
(2)存儲(chǔ)器。存儲(chǔ)器分為內(nèi)存儲(chǔ)器和外存儲(chǔ)器。內(nèi)存儲(chǔ)器簡(jiǎn)稱內(nèi)存或主存,它的存儲(chǔ)容量一般較小,但存取速度快,主要用于暫時(shí)存放當(dāng)前執(zhí)行的程序和相關(guān)數(shù)據(jù);外存儲(chǔ)器作為內(nèi)存的輔助存儲(chǔ)器,稱為外存或輔存,它的存儲(chǔ)容量大,但存取速度比內(nèi)存慢,主要用于長(zhǎng)期存放大量計(jì)算機(jī)暫時(shí)不執(zhí)行的程序和不用的數(shù)據(jù)。
(3)輸入設(shè)備。輸入設(shè)備負(fù)責(zé)將外部的各種信息或指令傳遞給電腦,然后由電腦處理。常用的輸入設(shè)備有鍵盤、鼠標(biāo)、掃描儀、數(shù)字照相機(jī)、電子筆等。
(4)輸出設(shè)備。輸出設(shè)備負(fù)責(zé)將計(jì)算機(jī)處理的中間結(jié)果和最終結(jié)果以人們能夠識(shí)別的字符、表格、圖形或圖像等形式表示出來(lái)。最常用的輸出設(shè)備有顯示器、打印機(jī)和繪圖儀等。
哲學(xué)思想
什么是linux的哲學(xué)思想,查閱了一些資料,官方的哲學(xué)思想是:
1,一切皆文件(硬件設(shè)備亦如此);
2,由眾多目的單一的小程序組成,一個(gè)程序只實(shí)現(xiàn)一個(gè)功能;
3,組合小程序完成復(fù)雜任務(wù);
4,盡量避免與用戶交互;
5,使用文本文件保存配置信息;
6,提供機(jī)制,而非策略。
此外,Linux作為自由軟件(GNU),同時(shí)也遵循自由軟件的思想:自由使用;自由學(xué)習(xí)和修改;自由分發(fā);自由創(chuàng)建衍生版。
在我看來(lái) Linux 的核心思想同時(shí)也是開源界的核心思想,那就是自由與分享。
自由:不是愚昧無(wú)知愚蠢任性的自由,而是在明白前因后果的前提下的無(wú)約束發(fā)揮創(chuàng)造力
分享:不是無(wú)條件得將自己思考與成就交給全世界,而是分享給內(nèi)行,分享給值得分享的人
發(fā)行版本
Linux的發(fā)行版本大體可以分為兩類,一類是商業(yè)公司維護(hù)的發(fā)行版本,一類是社區(qū)組織維護(hù)的發(fā)行版本,前者以著名的Redhat(RHEL)為代表,后者以Debian為代表。
Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所謂的Redhat Advance Server,收費(fèi)版本)、Fedora Core(由原來(lái)的Redhat桌面版本發(fā)展而來(lái),免費(fèi)版本)、CentOS(RHEL的社區(qū)克隆版本,免費(fèi))。Redhat應(yīng)該說(shuō)是在國(guó)內(nèi)使用人群最多 的Linux版本,甚至有人將Redhat等同于Linux。所以這個(gè)版本的特點(diǎn)就是使用人群數(shù)量大,資料非常多。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分發(fā)方式是編譯好的二進(jìn)制文件。穩(wěn)定性方面RHEL和CentOS的穩(wěn)定性非常好,適合于服務(wù)器使用, 但是Fedora Core的穩(wěn)定性較差,最好只用于桌面應(yīng)用。
Debian系列,包括Debian和Ubuntu等。Debian是社區(qū)類Linux的典范,是迄今為止最遵循GNU規(guī)范 的Linux系統(tǒng)。Debian最早由Ian Murdock于1993年創(chuàng)建,分為三個(gè)版本分支(branch): stable, testing 和unstable。其中,unstable為最新的測(cè)試版本,其中包括最新的軟件包,但是也有相對(duì)較多的bug,適合桌面用戶。testing的版本都經(jīng)過(guò)unstable中的測(cè)試,相對(duì)較為穩(wěn)定,也支持了不少新技術(shù)(比如SMP等)。而stable一般只用于服務(wù)器,上面的軟件包大部分都比較過(guò)時(shí),但是穩(wěn)定和安全性都非常的高。Debian最具特色的是apt-get /dpkg包管理方式,其實(shí)Redhat的YUM也是在模仿Debian的APT方式,但在二進(jìn)制文件發(fā)行方式中,APT應(yīng)該是最好的了。Debian的資料也很豐富,有很多支持的社區(qū),有問(wèn)題求教也有地方可去 :)
Ubuntu,嚴(yán)格來(lái)說(shuō)不能算一個(gè)獨(dú)立的發(fā)行版本,Ubuntu是基于Debian的unstable版本加強(qiáng)而來(lái),可以這么說(shuō),Ubuntu就是一個(gè)擁有Debian所有的優(yōu)點(diǎn),以及自己所加強(qiáng)的優(yōu)點(diǎn)的近乎完美的 Linux桌面系統(tǒng)。根據(jù)選擇的桌面系統(tǒng)不同,有三個(gè)版本可供選擇,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的Xubuntu。特點(diǎn)是界面非常友好,容易上手,對(duì)硬件的支持非常全面,是最適合做桌面系統(tǒng)的Linux發(fā)行版本。
Gentoo,偉大的Gentoo是Linux世界最年輕的發(fā)行版本,正因?yàn)槟贻p,所以能吸取在她之前的所有發(fā)行版本的優(yōu)點(diǎn),這也是Gentoo被稱為最完美的Linux發(fā)行版本的原因之一。Gentoo最初由Daniel Robbins(FreeBSD的開發(fā)者之一)創(chuàng)建,首個(gè)穩(wěn)定版本發(fā)布于2002年。由于開發(fā)者對(duì)FreeBSD的熟識(shí),所以Gentoo擁有媲美 FreeBSD的廣受美譽(yù)的ports系統(tǒng) ——Portage包管理系統(tǒng)。不同于APT和YUM等二進(jìn)制文件分發(fā)的包管理系統(tǒng),Portage是基于源代碼分發(fā)的,必須編譯后才能運(yùn)行,對(duì)于大型軟件而言比較慢,不過(guò)正因?yàn)樗熊浖际窃诒镜貦C(jī)器編譯的,在經(jīng)過(guò)各種定制的編譯參數(shù)優(yōu)化后,能將機(jī)器的硬件性能發(fā)揮到極致。Gentoo是所有Linux 發(fā)行版本里安裝最復(fù)雜的,但是又是安裝完成后最便于管理的版本,也是在相同硬件環(huán)境下運(yùn)行最快的版本。
SUSE Linux分兩種,一種是商業(yè) SUSE? Linux Enterprise ,另一種是社區(qū)支持的 openSUSE ,前者是在后者的基礎(chǔ)上開發(fā)的。最華麗的Linux發(fā)行版,很多人都這樣說(shuō),X windows和程序應(yīng)用方面做的確實(shí)不錯(cuò),尤其與Microsoft的合作關(guān)系,應(yīng)該是在所有的Linux發(fā)行版本中最親密的。OpenSuse這款Linux發(fā)行版是免費(fèi)的。它使用Yast來(lái)管理軟件包。有了Yast,使用和管理服務(wù)器應(yīng)用程序就非常容易。此外,Yast安裝向?qū)С绦蚩梢耘渲秒娮余]件服務(wù)器、LDAP服務(wù)器、文件服務(wù)器或Web服務(wù)器,沒(méi)有任何不必要的麻煩。它隨帶snapper快照管理工具,因而可以恢復(fù)或使用舊版的文件、更新和配置。由于讓滾動(dòng)發(fā)行版本成為可能的Tumbleweed,可將已安裝的操作系統(tǒng)更新到最新版本,不需要任何的新發(fā)行版。
最后,介紹一下FreeBSD,需要強(qiáng)調(diào)的是:FreeBSD并不是一個(gè)Linux系統(tǒng)!但FreeBSD與Linux的用戶群有相當(dāng)一部分是重合的,二者支持的硬件環(huán)境也比較一致,所采用的軟件也比較類似,所以可以將FreeBSD視為一個(gè)Linux版本來(lái)比較。FreeBSD擁有兩個(gè)分支: stable和current。顧名思義,stable是穩(wěn)定版,而 current則是添加了新技術(shù)的測(cè)試版。FreeBSD采用Ports包管理系統(tǒng),與Gentoo類似,基于源代碼分發(fā),必須在本地機(jī)器編譯后才能運(yùn)行,但是Ports系統(tǒng)沒(méi)有Portage系統(tǒng)使用簡(jiǎn)便,使用起來(lái)稍微復(fù)雜一些。FreeBSD的最大特點(diǎn)就是穩(wěn)定和高效,是作為服務(wù)器操作系統(tǒng)的最佳選擇,但對(duì)硬件的支持沒(méi)有Linux完備,所以并不適合作為桌面系統(tǒng)。
系統(tǒng)基礎(chǔ)目錄介紹
命令使用詳解
在Linux系統(tǒng)上工作學(xué)習(xí)是離不開命令行的。要想真正理解Linux系統(tǒng),就必須從Linux上的基礎(chǔ)命令學(xué)起。
◆Linux命令格式:
command ?[options] ?[arguments]
command:命令
options: 選項(xiàng) ( --單詞? 或? -單字)
如: ls --all ?等同于 ?ls -a
? ls -a -b -c ?等同于? ls -abc
argument:參數(shù)(檔案名稱或其他)
在查看命令幫助時(shí),會(huì)出現(xiàn) [ ],<>,|等符號(hào),它們的含義如下:
[ ]? ? ? ? 表示是可選的;
<>? ? ? 表示是可變化的;
x|y|z? ? 表示只能選擇一個(gè);
-abc? 表示三個(gè)參數(shù)(或任何二個(gè))的混合使用
◆常用命令詳解:
ifconfig
1>作用:用來(lái)查看和配置網(wǎng)絡(luò)設(shè)備,使用權(quán)限是root。
2>命令格式:ifconfig [網(wǎng)絡(luò)設(shè)備] [參數(shù)]
3>主要參數(shù):
-interface:指定的網(wǎng)絡(luò)接口名,如eth0和eth1。
up:激活指定的網(wǎng)絡(luò)接口卡。
down:關(guān)閉指定的網(wǎng)絡(luò)接口。
broadcast address:設(shè)置接口的廣播地址。
pointopoint:?jiǎn)⒂命c(diǎn)對(duì)點(diǎn)方式。
address:設(shè)置指定接口設(shè)備的IP地址。
netmask address:設(shè)置接口的子網(wǎng)掩碼。
4>應(yīng)用說(shuō)明:
(1)設(shè)置網(wǎng)卡IP地址、網(wǎng)絡(luò)掩碼和本地廣播地址:
#ifconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127(該信息當(dāng)前有效,若想永久生效要寫入網(wǎng)卡配置文件中)
(2)若運(yùn)行不帶任何參數(shù)的ifconfig命令,這個(gè)命令將顯示機(jī)器所有激活接口的信息。帶有“-a”參數(shù)則顯示所有接口的信息,包括沒(méi)有激活的接口。
(3)如果要暫停某個(gè)網(wǎng)絡(luò)接口的工作,可以使用down參數(shù):
#ifconfig eth0 down
echo
功能說(shuō)明:輸出命令,顧名思義就是輸出字符提示的,
命令格式:echo ?[選項(xiàng)] [輸出內(nèi)容]
選項(xiàng):-n 在輸出字符后不換行
? ? ? ? ? -e 支持反斜線控制的字符轉(zhuǎn)換,前面有斜線的字符將作為轉(zhuǎn)義字符。
常用控制字符:
\a:輸出警告音
\b:退格鍵,也就是向左刪除
\n:換行符
\r :回車鍵
實(shí)例:
tty
功能說(shuō)明:用于顯示終端機(jī)連接標(biāo)準(zhǔn)輸入設(shè)備的文件名稱。
在Linux操作系統(tǒng)中,所有外圍設(shè)備都有其名稱與代號(hào),這些名稱代號(hào)以特殊文件的類型存放于/dev目錄下。你可以執(zhí)行tty(teletypewriter)指令查詢目前使用的終端機(jī)的文件名稱。
語(yǔ)法:tty ?[-s] [--help] [--version]
參數(shù)說(shuō)明:
-s或--silent或--quiet 不顯示任何信息,只回傳狀態(tài)代碼。
--help 在線幫助。
--version 顯示版本信息。
實(shí)例:顯示當(dāng)前終端
# tty
/dev/pts/1
startx
功能說(shuō)明:用來(lái)啟動(dòng)X Window,實(shí)際上啟動(dòng)X Window的程序?yàn)閤init。
語(yǔ)法:startx ?[程序] ?[--服務(wù)器設(shè)置]
參數(shù)說(shuō)明:
[程序]? 此處所指定的[程序]為X Window所要執(zhí)行程序的配置文件。
[--服務(wù)器設(shè)置]? startx預(yù)設(shè)會(huì)去讀取.xerverrc中的配置,決定啟動(dòng)X Window的方式。
實(shí)例:
要在工作站上或 X 終端上啟動(dòng) X 會(huì)話,請(qǐng)輸入:
?startx?
要在工作站上強(qiáng)制啟動(dòng) X 會(huì)話,請(qǐng)輸入:?
?startx -w?
要為 X 終端啟動(dòng) X 會(huì)話,并注銷用戶的 telnet 會(huì)話,請(qǐng)輸入:
?startx; kill -9 $?
要使用 .xinitrc 腳本啟動(dòng) X 會(huì)話,請(qǐng)輸入:?
startx -x .xinitrc
export
功能說(shuō)明:設(shè)置或顯示環(huán)境變量。
語(yǔ) 法:export [-fnp][變量名稱]=[變量設(shè)置值]
補(bǔ)充說(shuō)明:在shell中執(zhí)行程序時(shí),shell會(huì)提供一組環(huán)境變量。export可新增,修改或刪除環(huán)境變量,供后續(xù)執(zhí)行的程序使用。export的效力僅及于該次登錄操作。
參 數(shù):
-f 代表[變量名稱]中為函數(shù)名稱。
-n 刪除指定的變量。變量實(shí)際上并未刪除,只是不會(huì)輸出到后續(xù)指令的執(zhí)行環(huán)境中。
-p 列出所有的shell賦予程序的環(huán)境變量。
實(shí)例:
在當(dāng)前環(huán)境定義一個(gè)變量:
#export A=test
#echo $A
test
查看當(dāng)前環(huán)境已賦予的環(huán)境變量:
#export -p
pwd
功能說(shuō)明:查看”當(dāng)前工作目錄“的完整路徑。?在不太確定當(dāng)前位置時(shí),就會(huì)使用pwd來(lái)判定當(dāng)前目錄在文件系統(tǒng)內(nèi)的確切位置。
命令格式:?pwd [選項(xiàng)]
常用參數(shù):-p 顯示實(shí)際路徑而非使用鏈接路徑
history
功能說(shuō)明:管理命令歷史
登錄shell時(shí),會(huì)讀取命令歷史文件中記錄下的命令:~/.bash_history
參數(shù):
-n :數(shù)字,意思是‘要列出最近的 n 筆命令列表’的意思!
-c :將目前的 shell 中的所有 history 內(nèi)容全部消除
-a :將目前新增的 history 指令新增入 histfiles 中,若沒(méi)有加 histfiles ,則預(yù)設(shè)寫入 ~/.bash_history
-r :將 histfiles 的內(nèi)容讀到目前這個(gè) shell 的 history 記憶中;
-w : 將目前的 history 記憶內(nèi)容寫入 histfiles 中!
-d : 刪除歷史中指定的命令;
!加編號(hào):調(diào)用歷史中的編號(hào)命令;!15
!v調(diào)用歷史中最近一個(gè)以v開頭的命令(從后往前)
?。∩弦粭l命令
shutdown
功能說(shuō)明:安全地關(guān)閉或重啟Linux系統(tǒng),它在系統(tǒng)關(guān)閉之前給系統(tǒng)上的所有登錄用戶提示一條警告信息。該命令還允許用戶指定一個(gè)時(shí)間參數(shù),可以是一個(gè)精確的時(shí)間,也可以是從現(xiàn)在開始的一個(gè)時(shí)間段。精確時(shí)間的格式是hh:mm,表示小時(shí)和分鐘,時(shí)間段由+ 和分鐘數(shù)表示。系統(tǒng)執(zhí)行該命令后會(huì)自動(dòng)進(jìn)行數(shù)據(jù)同步的工作。
語(yǔ) 法:/sbin/shutdown [-t sec] [-arkhncfFHP] time [warning-message]
參 數(shù):
-c 當(dāng)執(zhí)行"shutdown -h 11:50"指令時(shí),只要按+鍵就可以中斷關(guān)機(jī)的指令。
-f 重新啟動(dòng)時(shí)不執(zhí)行fsck。
-F 重新啟動(dòng)時(shí)執(zhí)行fsck。
-h 將系統(tǒng)關(guān)機(jī)。
-k 只是送出信息給所有用戶,但不會(huì)實(shí)際關(guān)機(jī)。
-n 不調(diào)用init程序進(jìn)行關(guān)機(jī),而由shutdown自己進(jìn)行。
-r shutdown之后重新啟動(dòng)。
-t<second> 送出警告信息和刪除信息之間要延遲多少秒。
[time] 設(shè)置多久時(shí)間后執(zhí)行shutdown指令。
[warning-message] 要傳送給所有登入用戶的信息。
需要特別說(shuō)明的是該命令只能由超級(jí)用戶使用。
例1,系統(tǒng)在十分鐘后關(guān)機(jī)并且馬上重新啟動(dòng)
# shutdown –r +10
例2,系統(tǒng)馬上關(guān)機(jī)并且不重新啟動(dòng)
# shutdown –h now
poweroff
用來(lái)關(guān)閉計(jì)算機(jī)操作系統(tǒng)并且切斷系統(tǒng)電源。
?語(yǔ)法:poweroff (選項(xiàng))?
選項(xiàng):
?-n:關(guān)閉操作系統(tǒng)時(shí)不執(zhí)行sync操作;
?-w:不真正關(guān)閉操作系統(tǒng),僅在日志文件“/var/log/wtmp”中;
?-d:關(guān)閉操作系統(tǒng)時(shí),不將操作寫入日志文件“/var/log/wtmp”中添加相應(yīng)的記錄;?
-f:強(qiáng)制關(guān)閉操作系統(tǒng);?
-i:關(guān)閉操作系統(tǒng)之前關(guān)閉所有的網(wǎng)絡(luò)接口;?
-h:關(guān)閉操作系統(tǒng)之前將系統(tǒng)中所有的硬件設(shè)置為備用模式
reboot
用來(lái)重新啟動(dòng)計(jì)算機(jī)
語(yǔ)法:reboot[-n][-w][-d][-f][-i]
參數(shù):
-n : 在重開機(jī)前不做將記憶體資料寫回硬盤的動(dòng)作
-w : 并不會(huì)真的重開機(jī),只是把記錄寫到 /var/log/wtmp 檔案里
-d : 不把記錄寫到 /var/log/wtmp 檔案里(-n 這個(gè)參數(shù)包含了 -d)
-f : 強(qiáng)迫重開機(jī),不呼叫 shutdown 這個(gè)指令
-i : 在重開機(jī)之前先把所有網(wǎng)絡(luò)相關(guān)的裝置先停止
hwclock
用于顯示與設(shè)定硬件時(shí)鐘。
參數(shù):
--adjust hwclock每次更改硬件時(shí)鐘時(shí),都會(huì)記錄在/etc/adjtime文件中。使用--adjust參數(shù),可使hwclock根據(jù)先前的記錄來(lái)估算硬件時(shí)鐘的偏差,并用來(lái)校正目前的硬件時(shí)鐘。
--debug 顯示hwclock執(zhí)行時(shí)詳細(xì)的信息。
--directisa hwclock預(yù)設(shè)從/dev/rtc設(shè)備來(lái)存取硬件時(shí)鐘。若無(wú)法存取時(shí),可用此參數(shù)直接以I/O指令來(lái)存取硬件時(shí)鐘。
--hctosys 將系統(tǒng)時(shí)鐘調(diào)整為與目前的硬件時(shí)鐘一致。
--set --date=<日期與時(shí)間> 設(shè)定硬件時(shí)鐘。
--show 顯示硬件時(shí)鐘的時(shí)間與日期。
--systohc 將硬件時(shí)鐘調(diào)整為與目前的系統(tǒng)時(shí)鐘一致。
--test 僅測(cè)試程序,而不會(huì)實(shí)際更改硬件時(shí)鐘。
--utc 若要使用格林威治時(shí)間,請(qǐng)加入此參數(shù),hwclock會(huì)執(zhí)行轉(zhuǎn)換的工作。
--version 顯示版本信息。
實(shí)例
顯示當(dāng)前時(shí)間
# hwclock2010年05月27日星期四18時(shí)04分31秒-0.704214seconds
查看版本信息
# hwclock -vhwclockfromutil-linux-2.12a
date
用來(lái)顯示或設(shè)定系統(tǒng)的日期與時(shí)間
格式:
date [選項(xiàng)]... [+格式]
可選參數(shù):
-d<字符串> 顯示字符串所指的日期與時(shí)間。字符串前后必須加上雙引號(hào)。
-s<字符串> 根據(jù)字符串來(lái)設(shè)置日期與時(shí)間。字符串前后必須加上雙引號(hào)。
-u 顯示GMT。
--help 在線幫助。
--version 顯示版本信息
實(shí)例:
設(shè)置系統(tǒng)時(shí)間:
# date -s "2016-09-17 17:54:00"
◆幫助命令:
1,內(nèi)置命令可以通過(guò)help獲取幫助信息:
可以用type判斷命令是否是內(nèi)置的命令,只有顯示是內(nèi)置命令的才能用help獲取幫助。
命令格式:help ?Command
例如:
# type cd
cd is a shell builtin (內(nèi)置命令)
# help cd
2,外置命令獲取幫助信息的辦法:
(1)command ?-h/--help
顯示使用摘要和參數(shù)列表(可以查看大多數(shù)命令的用法)。
(2)info ?Command
查看命令詳細(xì)的說(shuō)明文件,還提供在線文檔。
(3)readme文檔
絕大多數(shù)程序都有相應(yīng)的幫助文檔,保存在/usr/share/doc文件夾中。
(4)man ?Command
查看命令描述或手冊(cè)頁(yè)(說(shuō)明文件被劃分為不同的頁(yè),man命令就是查看這些頁(yè))
注,manual 手冊(cè)分成如下8個(gè)章節(jié),man # Command (#表示章節(jié)號(hào)):
1、所有用戶可以使用的命令
2、系統(tǒng)內(nèi)核調(diào)用,不是每個(gè)命令都有系統(tǒng)調(diào)用(如:man 2 read)
3、庫(kù)調(diào)用
4、特殊文件,如:/dev/tty1
5、文件格式(命令配置文件的語(yǔ)法,如:man 5 passwd)
6、游戲相關(guān)
7、雜項(xiàng)
8、管理員命令,如:fdisk