Linux系統基礎(一)

前言

在認識Linux系統之前先介紹下計算機的組成構造及其功能:

1,簡單來說計算機可以劃分為軟件系統和硬件系統:

(1)軟件系統自不必說就是各種不同的程序,協助用戶更好地使用電腦。

(2)硬件系統指的是主機、顯示器、鼠鍵等硬件設備。

2,按馮諾依曼體系可將計算機按邏輯構成分為:

(1)CPU(運算器、控制器)。運算器是數據處理裝置,用來完成對數據的算術運算和邏輯運算;控制器是發布操作命令的裝置,用來控制整個計算機自動執行程序,它類似于人的大腦中樞,指揮和協調計算機各部件的工作。

(2)存儲器。存儲器分為內存儲器和外存儲器。內存儲器簡稱內存或主存,它的存儲容量一般較小,但存取速度快,主要用于暫時存放當前執行的程序和相關數據;外存儲器作為內存的輔助存儲器,稱為外存或輔存,它的存儲容量大,但存取速度比內存慢,主要用于長期存放大量計算機暫時不執行的程序和不用的數據。

(3)輸入設備。輸入設備負責將外部的各種信息或指令傳遞給電腦,然后由電腦處理。常用的輸入設備有鍵盤、鼠標、掃描儀、數字照相機、電子筆等。

(4)輸出設備。輸出設備負責將計算機處理的中間結果和最終結果以人們能夠識別的字符、表格、圖形或圖像等形式表示出來。最常用的輸出設備有顯示器、打印機和繪圖儀等。


哲學思想

什么是linux的哲學思想,查閱了一些資料,官方的哲學思想是:

1,一切皆文件(硬件設備亦如此);

2,由眾多目的單一的小程序組成,一個程序只實現一個功能;

3,組合小程序完成復雜任務;

4,盡量避免與用戶交互;

5,使用文本文件保存配置信息;

6,提供機制,而非策略。

此外,Linux作為自由軟件(GNU),同時也遵循自由軟件的思想:自由使用;自由學習和修改;自由分發;自由創建衍生版。

在我看來 Linux 的核心思想同時也是開源界的核心思想,那就是自由與分享

自由:不是愚昧無知愚蠢任性的自由,而是在明白前因后果的前提下的無約束發揮創造力

分享:不是無條件得將自己思考與成就交給全世界,而是分享給內行,分享給值得分享的人


發行版本

Linux的發行版本大體可以分為兩類,一類是商業公司維護的發行版本,一類是社區組織維護的發行版本,前者以著名的Redhat(RHEL)為代表,后者以Debian為代表。

Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所謂的Redhat Advance Server,收費版本)、Fedora Core(由原來的Redhat桌面版本發展而來,免費版本)、CentOS(RHEL的社區克隆版本,免費)Redhat應該說是在國內使用人群最多 的Linux版本,甚至有人將Redhat等同于Linux。所以這個版本的特點就是使用人群數量大,資料非常多。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分發方式是編譯好的二進制文件。穩定性方面RHEL和CentOS的穩定性非常好,適合于服務器使用, 但是Fedora Core的穩定性較差,最好只用于桌面應用。

Debian系列,包括Debian和Ubuntu等。Debian是社區類Linux的典范,是迄今為止最遵循GNU規范 的Linux系統。Debian最早由Ian Murdock于1993年創建,分為三個版本分支(branch): stable, testing 和unstable。其中,unstable為最新的測試版本,其中包括最新的軟件包,但是也有相對較多的bug,適合桌面用戶。testing的版本都經過unstable中的測試,相對較為穩定,也支持了不少新技術(比如SMP等)。而stable一般只用于服務器,上面的軟件包大部分都比較過時,但是穩定和安全性都非常的高。Debian最具特色的是apt-get /dpkg包管理方式,其實Redhat的YUM也是在模仿Debian的APT方式,但在二進制文件發行方式中,APT應該是最好的了。Debian的資料也很豐富,有很多支持的社區,有問題求教也有地方可去 :)

Ubuntu,嚴格來說不能算一個獨立的發行版本,Ubuntu是基于Debian的unstable版本加強而來,可以這么說,Ubuntu就是一個擁有Debian所有的優點,以及自己所加強的優點的近乎完美的 Linux桌面系統。根據選擇的桌面系統不同,有三個版本可供選擇,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的Xubuntu。特點是界面非常友好,容易上手,對硬件的支持非常全面,是最適合做桌面系統的Linux發行版本。

Gentoo,偉大的Gentoo是Linux世界最年輕的發行版本,正因為年輕,所以能吸取在她之前的所有發行版本的優點,這也是Gentoo被稱為最完美的Linux發行版本的原因之一。Gentoo最初由Daniel Robbins(FreeBSD的開發者之一)創建,首個穩定版本發布于2002年。由于開發者對FreeBSD的熟識,所以Gentoo擁有媲美 FreeBSD的廣受美譽的ports系統 ——Portage包管理系統。不同于APT和YUM等二進制文件分發的包管理系統,Portage是基于源代碼分發的,必須編譯后才能運行,對于大型軟件而言比較慢,不過正因為所有軟件都是在本地機器編譯的,在經過各種定制的編譯參數優化后,能將機器的硬件性能發揮到極致。Gentoo是所有Linux 發行版本里安裝最復雜的,但是又是安裝完成后最便于管理的版本,也是在相同硬件環境下運行最快的版本。

SUSE Linux分兩種,一種是商業 SUSE? Linux Enterprise ,另一種是社區支持的 openSUSE ,前者是在后者的基礎上開發的。最華麗的Linux發行版,很多人都這樣說,X windows和程序應用方面做的確實不錯,尤其與Microsoft的合作關系,應該是在所有的Linux發行版本中最親密的。OpenSuse這款Linux發行版是免費的。它使用Yast來管理軟件包。有了Yast,使用和管理服務器應用程序就非常容易。此外,Yast安裝向導程序可以配置電子郵件服務器、LDAP服務器、文件服務器或Web服務器,沒有任何不必要的麻煩。它隨帶snapper快照管理工具,因而可以恢復或使用舊版的文件、更新和配置。由于讓滾動發行版本成為可能的Tumbleweed,可將已安裝的操作系統更新到最新版本,不需要任何的新發行版。

最后,介紹一下FreeBSD,需要強調的是:FreeBSD并不是一個Linux系統!但FreeBSD與Linux的用戶群有相當一部分是重合的,二者支持的硬件環境也比較一致,所采用的軟件也比較類似,所以可以將FreeBSD視為一個Linux版本來比較。FreeBSD擁有兩個分支: stable和current。顧名思義,stable是穩定版,而 current則是添加了新技術的測試版。FreeBSD采用Ports包管理系統,與Gentoo類似,基于源代碼分發,必須在本地機器編譯后才能運行,但是Ports系統沒有Portage系統使用簡便,使用起來稍微復雜一些。FreeBSD的最大特點就是穩定和高效,是作為服務器操作系統的最佳選擇,但對硬件的支持沒有Linux完備,所以并不適合作為桌面系統。

Linux主要發行版本圖標

系統基礎目錄介紹

Linux基礎目錄表1
Linux基礎目錄表2

命令使用詳解

在Linux系統上工作學習是離不開命令行的。要想真正理解Linux系統,就必須從Linux上的基礎命令學起。

◆Linux命令格式:

command ?[options] ?[arguments]

command:命令

options: 選項 ( --單詞? 或? -單字)

如: ls --all ?等同于 ?ls -a

? ls -a -b -c ?等同于? ls -abc

argument:參數(檔案名稱或其他)

在查看命令幫助時,會出現 [ ],<>,|等符號,它們的含義如下:

[ ]? ? ? ? 表示是可選的;

<>? ? ? 表示是可變化的;

x|y|z? ? 表示只能選擇一個;

-abc? 表示三個參數(或任何二個)的混合使用


◆常用命令詳解:

ifconfig

1>作用:用來查看和配置網絡設備,使用權限是root。

2>命令格式:ifconfig [網絡設備] [參數]

3>主要參數:

-interface:指定的網絡接口名,如eth0和eth1。

up:激活指定的網絡接口卡。

down:關閉指定的網絡接口。

broadcast address:設置接口的廣播地址。

pointopoint:啟用點對點方式。

address:設置指定接口設備的IP地址。

netmask address:設置接口的子網掩碼。

4>應用說明:

(1)設置網卡IP地址、網絡掩碼和本地廣播地址:

#ifconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127(該信息當前有效,若想永久生效要寫入網卡配置文件中)

(2)若運行不帶任何參數的ifconfig命令,這個命令將顯示機器所有激活接口的信息。帶有“-a”參數則顯示所有接口的信息,包括沒有激活的接口。

(3)如果要暫停某個網絡接口的工作,可以使用down參數:

#ifconfig eth0 down

echo

功能說明:輸出命令,顧名思義就是輸出字符提示的,

命令格式:echo ?[選項] [輸出內容]

選項:-n 在輸出字符后不換行

? ? ? ? ? -e 支持反斜線控制的字符轉換,前面有斜線的字符將作為轉義字符。

常用控制字符:

\a:輸出警告音

\b:退格鍵,也就是向左刪除

\n:換行符

\r :回車鍵

實例:

-e參數與轉義字符的作用

tty

功能說明:用于顯示終端機連接標準輸入設備的文件名稱。

在Linux操作系統中,所有外圍設備都有其名稱與代號,這些名稱代號以特殊文件的類型存放于/dev目錄下。你可以執行tty(teletypewriter)指令查詢目前使用的終端機的文件名稱。

語法:tty ?[-s] [--help] [--version]

參數說明:

-s或--silent或--quiet 不顯示任何信息,只回傳狀態代碼。

--help 在線幫助。

--version 顯示版本信息。

實例:顯示當前終端

# tty

/dev/pts/1

startx

功能說明:用來啟動X Window,實際上啟動X Window的程序為xinit。

語法startx ?[程序] ?[--服務器設置]

參數說明:

[程序]? 此處所指定的[程序]為X Window所要執行程序的配置文件。

[--服務器設置]? startx預設會去讀取.xerverrc中的配置,決定啟動X Window的方式。

實例:

要在工作站上或 X 終端上啟動 X 會話,請輸入:

?startx?

要在工作站上強制啟動 X 會話,請輸入:?

?startx -w?

要為 X 終端啟動 X 會話,并注銷用戶的 telnet 會話,請輸入:

?startx; kill -9 $?

要使用 .xinitrc 腳本啟動 X 會話,請輸入:?

startx -x .xinitrc

export

功能說明:設置或顯示環境變量。

語 法:export [-fnp][變量名稱]=[變量設置值]

補充說明:在shell中執行程序時,shell會提供一組環境變量。export可新增,修改或刪除環境變量,供后續執行的程序使用。export的效力僅及于該次登錄操作。

參 數:

-f 代表[變量名稱]中為函數名稱。

-n 刪除指定的變量。變量實際上并未刪除,只是不會輸出到后續指令的執行環境中。

-p 列出所有的shell賦予程序的環境變量。

實例:

在當前環境定義一個變量:

#export A=test

#echo $A

test

查看當前環境已賦予的環境變量:

#export -p

pwd

功能說明:查看”當前工作目錄“的完整路徑。?在不太確定當前位置時,就會使用pwd來判定當前目錄在文件系統內的確切位置。

命令格式:?pwd [選項]

常用參數:-p 顯示實際路徑而非使用鏈接路徑

history

功能說明:管理命令歷史

登錄shell時,會讀取命令歷史文件中記錄下的命令:~/.bash_history

參數:

-n :數字,意思是‘要列出最近的 n 筆命令列表’的意思!

-c :將目前的 shell 中的所有 history 內容全部消除

-a :將目前新增的 history 指令新增入 histfiles 中,若沒有加 histfiles ,則預設寫入 ~/.bash_history

-r :將 histfiles 的內容讀到目前這個 shell 的 history 記憶中;

-w : 將目前的 history 記憶內容寫入 histfiles 中!

-d : 刪除歷史中指定的命令;

!加編號:調用歷史中的編號命令;!15

!v調用歷史中最近一個以v開頭的命令(從后往前)

!!上一條命令

shutdown

功能說明:安全地關閉或重啟Linux系統,它在系統關閉之前給系統上的所有登錄用戶提示一條警告信息。該命令還允許用戶指定一個時間參數,可以是一個精確的時間,也可以是從現在開始的一個時間段。精確時間的格式是hh:mm,表示小時和分鐘,時間段由+ 和分鐘數表示。系統執行該命令后會自動進行數據同步的工作。

語  法:/sbin/shutdown [-t sec] [-arkhncfFHP] time [warning-message]

參  數:

-c  當執行"shutdown -h 11:50"指令時,只要按+鍵就可以中斷關機的指令。

-f  重新啟動時不執行fsck。

-F  重新啟動時執行fsck。

-h  將系統關機。

-k  只是送出信息給所有用戶,但不會實際關機。

-n  不調用init程序進行關機,而由shutdown自己進行。

-r  shutdown之后重新啟動。

-t<second>  送出警告信息和刪除信息之間要延遲多少秒。

[time]  設置多久時間后執行shutdown指令。

[warning-message]  要傳送給所有登入用戶的信息。

需要特別說明的是該命令只能由超級用戶使用。

例1,系統在十分鐘后關機并且馬上重新啟動

# shutdown –r +10

例2,系統馬上關機并且不重新啟動

# shutdown –h now

poweroff

用來關閉計算機操作系統并且切斷系統電源。

?語法:poweroff (選項)?

選項:

?-n:關閉操作系統時不執行sync操作;

?-w:不真正關閉操作系統,僅在日志文件“/var/log/wtmp”中;

?-d:關閉操作系統時,不將操作寫入日志文件“/var/log/wtmp”中添加相應的記錄;?

-f:強制關閉操作系統;?

-i:關閉操作系統之前關閉所有的網絡接口;?

-h:關閉操作系統之前將系統中所有的硬件設置為備用模式

reboot

用來重新啟動計算機

語法:reboot[-n][-w][-d][-f][-i]

參數:

-n : 在重開機前不做將記憶體資料寫回硬盤的動作

-w : 并不會真的重開機,只是把記錄寫到 /var/log/wtmp 檔案里

-d : 不把記錄寫到 /var/log/wtmp 檔案里(-n 這個參數包含了 -d)

-f : 強迫重開機,不呼叫 shutdown 這個指令

-i : 在重開機之前先把所有網絡相關的裝置先停止

hwclock

用于顯示與設定硬件時鐘。

參數:

--adjust  hwclock每次更改硬件時鐘時,都會記錄在/etc/adjtime文件中。使用--adjust參數,可使hwclock根據先前的記錄來估算硬件時鐘的偏差,并用來校正目前的硬件時鐘。

--debug  顯示hwclock執行時詳細的信息。

--directisa  hwclock預設從/dev/rtc設備來存取硬件時鐘。若無法存取時,可用此參數直接以I/O指令來存取硬件時鐘。

--hctosys  將系統時鐘調整為與目前的硬件時鐘一致。

--set --date=<日期與時間>  設定硬件時鐘。

--show  顯示硬件時鐘的時間與日期。

--systohc  將硬件時鐘調整為與目前的系統時鐘一致。

--test  僅測試程序,而不會實際更改硬件時鐘。

--utc  若要使用格林威治時間,請加入此參數,hwclock會執行轉換的工作。

--version  顯示版本信息。

實例

顯示當前時間

# hwclock2010年05月27日星期四18時04分31秒-0.704214seconds

查看版本信息

# hwclock -vhwclockfromutil-linux-2.12a

date

用來顯示或設定系統的日期與時間

格式:

date [選項]... [+格式]

可選參數:

-d<字符串>  顯示字符串所指的日期與時間。字符串前后必須加上雙引號。

-s<字符串>  根據字符串來設置日期與時間。字符串前后必須加上雙引號。

-u  顯示GMT。

--help  在線幫助。

--version  顯示版本信息

實例:

設置系統時間:

# date -s "2016-09-17 17:54:00"


◆幫助命令:

1,內置命令可以通過help獲取幫助信息:

可以用type判斷命令是否是內置的命令,只有顯示是內置命令的才能用help獲取幫助。

命令格式:help ?Command

例如:

# type cd

cd is a shell builtin (內置命令)

# help cd

2,外置命令獲取幫助信息的辦法:

(1)command ?-h/--help

顯示使用摘要和參數列表(可以查看大多數命令的用法)。

(2)info ?Command

查看命令詳細的說明文件,還提供在線文檔。

(3)readme文檔

絕大多數程序都有相應的幫助文檔,保存在/usr/share/doc文件夾中。

(4)man ?Command

查看命令描述或手冊頁(說明文件被劃分為不同的頁,man命令就是查看這些頁)

注,manual 手冊分成如下8個章節,man # Command (#表示章節號):

1、所有用戶可以使用的命令

2、系統內核調用,不是每個命令都有系統調用(如:man 2 read)

3、庫調用

4、特殊文件,如:/dev/tty1

5、文件格式(命令配置文件的語法,如:man 5 passwd)

6、游戲相關

7、雜項

8、管理員命令,如:fdisk

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容