1. 描述計算機的組成及其功能
2. 按系列羅列Linux的發行版,并描述不同發行版之間的聯系和區別
3. 描述Linux的哲學思想,并按照自己的理解對其進行解釋性描述
4. 說明Linux系統上命令的使用格式;詳細介紹ifconfig,echo,tty,startx,export,pwd,history,shutdown,poweroff,reboot,hwclock,date命令的使用,并配合相應的示例來闡述。
5. 如何在Linux系統上獲取命令的幫助信息,請詳細列出,并描述man文檔的章節是如何劃分的。
6. 請羅列Linux發行版的基礎目錄名稱命名法則及功能規定
那么,下面,我們開始,黑喂狗
描述計算機的組成及其功能
CPU
運算器:算數運算,邏輯運算等各種運算
控制器:控制總線使用權限,尋址,讀訪問,寫訪問
寄存器/緩存:
存儲器:內存/RAM, 隨機訪問存儲器
內存分為很多存儲單元,每一個存儲單元可以存儲8位字節數據,8bits = 1Byte
CPU+存儲器 = 計算機核心部件
輸入設備:下指令,提供數據等
輸出設備:輸出數據加工后的結果
2. 按系列羅列Linux的發行版,并描述不同發行版之間的聯系和區別
a. Slackware家族
? Slackware: 致力于成為Unix那樣的Linux系統,沒有軟件包管理工具,所有軟件都是tgz(tar/zip) 格式文件和安裝腳` 本,Slackware一罐堅持KISS原則”Keep It Simple Stupid)
SUSE Linux(SLES): 基于RPM包管理工具的著名發行版rpm/zipper
OpenSUSE: SUSE的社區版
b. Debian家族:
? Debian: 分為Testing/Unstable/Stable三個分支,最遵循GNU規范的Linux系統,至今由社區支持,無商業化公司,使用優秀的dpkg(deb包)/apt-get包管理方式
? Ubuntu:基于Debian的Unstable分支出現, 所有系統命令必須使用sudo實現,無法使用root login系統
? Mint: 基于Ubuntu的另一個Linux 桌面版本
c. Redhat家族
? RHEL: 基于RPM/YUM軟件包管理方式,最流行的Linux發現版本,RPM/Yum->dnf
Fedora:早先為Rebhat的免費產品,后來停止更新后捐贈給了Fedora。Fedora相對于RHEL相當激進,所有的新軟件,新版本都會在Fedora上看到,可以說Fedora擔當相當一部分RHEL試驗田的角色。
? CentOS: 完全基于RHEL的社區版本,RHEL的免費替代品
? Oracle Enterprise: Oracle根據RHEL自行開發的運行Oracle的Linux服務器系統
d. Gentoo: 滾動發行版,軟件包括kernel均為下載的源碼在本地編譯而得,整個安裝過程都需要邊安裝邊編譯
e. Arch: 滾動發行版,軟件是下載的可執行文件,直接安裝即可,使用port包管理工具
f. LFS: Linux From Scratch(從0構建Linux),一切都需要從頭開始…
3. 描述Linux的哲學思想,并按照自己的理解對其進行解釋性描述
? a. 一切皆文件
Linux中,所有的一切都是以文件的形式存在于Linux系統中的,字符設備,塊設備,目錄,管道,命令等等。Linux系統的根體現了Linux必須把一切作為文件存在于系統中。/是一個文件系統,是整個Linux系統的元,一切從/開始,/是一個目錄也是一個文件系統,那么存在于這個文件系統中的,也只能是文件了。
b. 一個程序只做一件事并把它做好/多個小程序完成復雜任務
這句話是對的,但是我并不認為這是Linux獨有的哲學思想。這應該算是匠人精神,匠人精神最出名的日本,有很多人都是遵循這種精神來生活的,22歲畢業開始畫一部漫畫,一直就是幾十年,直到畫到退休,一生全部奉獻給了這部漫畫。三星米其林餐館的老板,專注天婦羅50年,從始至終就只是炸天婦羅,50年所想的就是如何把天婦羅炸的更好。同樣,一個程序只做一件事并把它做好,這樣就會造就無數的專注,精致,優秀的小程序。無數的專注的優質的小程序就撐起了整個Linux世界
?
c. 盡量避免捕獲用戶交互接口
不捕捉用戶交互接口,就可以比較容易以編程的方式實現自動化任務
?
cd 文本文件保存配置信息
使用文本文件保存配置信息有一個好處,使用一款文本編輯器工具就可以完成大部分配置信息
?
*. Freedom & Share
相比上面幾個,我覺得自由與分享才是Linux的哲學思想,上面的可以稱之為Linux系統設計的哲學思想,雖然我沒辦法給出一個哲學的確切定義或者解釋清楚什么是哲學。但是作為存在的根本,我覺得Freedom& Share才是Linux的根基,從無到有,從小到大,從未流行到今天的蓬勃發展,一直離不開自由與分享,所以學習Linux,使用Linux都需要抱著這樣一種哲學思想或者精神吧。
4. Linux系統上命令的使用格式;詳細介紹ifconfig,echo,tty,startx,export,pwd,history,shutdown,poweroff,reboot,hwclock,date命令的使用,并配合相應的示例來闡述。
Linux系統的CLI使用格式
CLI模式下輸入的左邊為 [login_name@hostname working_directory]prompt
解釋一下 login_是登錄到當前shell的用戶賬戶
hostname是當前主機的計算機名
working_directory是當前所在的目錄的目錄名
prompt是命令提示符,分為#和$, #為管理員的命令提示符,只有root賬戶才使用#提示符,除了root以外的所有賬戶,命令提示符都為$
CLI模式左邊已經介紹完了,下面看看在CLI模式下輸入命令有什么格式
[root@CenOS ~]# COMMAND [OPTION]…[AGRUMENT]…
COMMAND 即要輸入的命令的命令名,例如ls,
[option]… 很多命令都是有選項的,選項的作用是使用同一個命令執行不同的操作,就需要使用不同的選項,選項分為兩種,一種為短選項,使用一個"-"帶上選項名,一種為長選項,短選項可以合并在一起,例如ls -l -d, 可以寫成 ls -ld. 另一種為長選項,使用兩個"–"在選項名前,長選項不能合并。
注意“并不是所有的命令都是有選項的,具體需要看是什么命令,哪些命令有什么選項,可以參考man手冊來學習研究
[AGRUMENT]為參數,即命令要作用的對象,命令不同,參數的類型也不一樣,例如ls命令的參數對象是文件或者目錄,而cd命令的參數只能為目錄
好了,linux系統上的CLI模式下的命令使用格式介紹完了。下面介紹幾個命令的使用方法。
ifconfig
…
…
…
此處未完成,待補全
echo: 回顯命令
$VAR:將變量的值輸出到屏幕上
-n: 不顯示換行符
-e: 使轉譯符生效
-E: 使轉譯符失效(default是-E)
…
…
…
此處未完成,待補全
tty :顯示當前terminal 連到的文件名
-s 參數: 不顯示任何內容,只返回狀態值
例如:使用root通過putty ssh來登錄到主機執行tty命令, 顯示為0號偽終端pts
[root@dhcp-10-129-6-166 ~]# tty
/dev/pts/0
startx : 啟動windows界面,用不上!!!
export : 將變量傳遞給子shell
~]# export [-p|n] [$variable = word]
不帶參數或使用-p, 默認會輸出所有變量信息,如果后面有變量名,只變量的信息,并將變量傳遞給子shell
如果變量后面有 =word, 那么將word的值賦予前面的變量
例如: 將變量A的值設置為Friday,之后顯示$A的值,再將$A的值改為Monday,再次顯示$A的值
[root@dhcp-10-129-6-166 ~]# export A=Fridy
[root@dhcp-10-129-6-166 ~]# echo $A
Fridy
[root@dhcp-10-129-6-166 ~]# export A=Mondy
[root@dhcp-10-129-6-166 ~]# echo $A
Mondy
pwd: 用戶顯示當前的工作目錄,也叫current directory,
-L: 使用變量PWD中的值,即使包含符號鏈接
-P: 避免所有符號鏈接
例如: ls -l /bin,顯示/bin為/usr/bin的符號鏈接,cd進/bin目錄,使用pwd,顯示pwd為/bin,而使用pwd -P就顯示了真實的目錄,即為/usr/bin
[root@dhcp-10-129-6-166 bin]# ls -l /bin
lrwxrwxrwx. 1 root root 7 Dec 1 21:51 /bin -> usr/bin
[root@dhcp-10-129-6-166 bin]# cd /bin
[root@dhcp-10-129-6-166 bin]# pwd
/bin
[root@dhcp-10-129-6-166 bin]# pwd -P
/usr/bin
history
no option:顯示當前用戶使用過的命令
-c: 清除用戶命令使用記錄
-a: 將當前session的history中的命令記錄存放到history file中
例如:顯示最近10行history記錄,history 10,之后使用history -c清除,再使用history查看
[root@dhcp-10-129-6-166 bin]# history 10
114 pwd
115 pwd -P
116 clear
117 history
118 clear
119 history -10
120 history 10
121 hitstory 20
122 history 20
123 history 10
[root@dhcp-10-129-6-166 bin]# history -c
[root@dhcp-10-129-6-166 bin]# history
1 history
shutdown/poweroff /reboot:shutdown/poweroff和reboot命令放在一起說明,因為他們是同一類命令
-H, –halt /暫停主機運行
-P, –poweroff /關機命令,shutown的默認選項
-r, –reboot /重啟主機,
-h /等于–poweroff, 除非使用了–halt
-k /不執行任何操作,只是輸出 wall massage
–no-wall /在重啟,關機或halt前,不輸出wall massage
-c /取消關機,重啟動作
在shutdown/poweroff/reboot命令中,我們可以在后面加上時間來定義在何時執行操作,例如 +5,5分鐘后執行,也可以使用自然語言時間,例如 reboot now,表示立刻重啟
date /date命令用來顯示當前系統日期或設置系統日期
…
…
…
此處未完出,待補全
hwclock: hwclock是用來查看和設置當前系統時鐘或硬件時鐘的。Linux上時鐘分為硬件時鐘和系統時鐘兩種。硬件時鐘是在硬件上維護的時鐘,也就是BOIS里面設置的那個時鐘。而系統時鐘是靠Kernel來維護的,當系統開機時,系統時鐘讀取硬件時鐘,之后系統時鐘獨立于硬件時鐘運行。
下面來介紹一下hwclock的簡單用法:
-r, –show /讀取硬件時鐘并顯示出來,這個時間永遠是本地時間
-s, –hctosys /將硬件時鐘同步到系統時鐘,即硬件時鐘寫入系統時鐘
-w, –systohc /將系統時鐘同步到硬件時鐘,即系統時鐘寫入硬件時鐘
5. 如何在Linux系統上獲取命令的幫助信息,請詳細列出,并描述man文檔的章節是如何劃分的。
無論是Linux新手如我,還是Linux的高手,誰都無法面面俱到,記住所有的命令,對所有的命令的使用都了如指掌,那是不可能的。所以,誰都有需要求助旁人的時候。Linux的程序設計者們都意識到這點,所以在Linux系統里面提供了非常豐富詳細的說明文檔,以便在使用者遇到困難時可以自行查閱。
Linux中獲取幫助的地方有以下幾處,分別簡單介紹一下
man文檔
man文檔是在linux系統中經常需要使用的幫助信息 ,它里面包括了非常詳細的幫助信息,不光有命令的,還有對于庫調用的,C庫調用的,配置文檔的幫助信息。每一篇man文檔都分為8個段落。介紹一下這8個段落
NAME: 即當前man文檔的名字
SYNPSIS: 當前man文檔的簡要說明
DISCRIPTION: 當前Man文檔的說明
OPTIONS: 命令的選項介紹
EXAMPLE: 一些使用的例子
AUTHOR: 作者
BUGS: 提交發現BUG的方法
SEE ALSO: 提供一些相關的文檔鏈接
我們說了,man文檔對于很多文件都提供了幫助信息。所以Linux也對man文檔進行了一些歸類,以便我們方便的查看man文檔。
man文檔分為了8類。
man1: 普通用戶可以使用的命令的幫助文檔
man2: 系統庫調用的幫助文檔
man3: C庫調用的幫助文檔
man4: 設備文件和特殊文件的幫助文檔
man5: 配置文件的幫助文檔
man6: 系統內置游戲的幫助文檔
man7: 一些無法分類的幫助文檔,也叫雜項
man8: 系統命令的幫助文檔,只有管理員可以使用的命令
Man文檔靠的是一個數據庫來維護的,如果沒有及時更新,那么有一些man文檔是沒法查到的。我們可以使用一個簡單的名字來手動更新man文檔的數據庫。 makewhatis命令可以手動更新man文檔的數據庫。
簡單再說一下什么是whatis命令。
–help|help 一對好人
很多時候,可能我們并不需要man手冊這樣豐富的幫助文檔,我們只是偶爾一個選項或者參數想不起如何使用了,如果每每這個時候都需要man COMMAND,那未必有點殺雞用牛刀了,所以Linux系統中還有另外一種比較簡便的方法來讓我們獲取命令的幫助信息。那就是 –help和help這對好人。我們都知道,Linux系統中命令分來兩種,一種為shell的bulitit命令,這些命令都是集成在shell內的,可以使用help COMMAND來查看簡單的幫助信息,而對于另一種命令,獨立的命令,可以使用COMMAND –help來查看簡單的命令幫助。
info – man的補充
最后,我們再介紹最后一種Linux幫忙信息info. info可以簡單的作為man的補充,絕大部分的幫助信息我們都可以用man來完成,而info基本就會做為man的補充而存在,里面的內容比man更詳細,包括每個版本的更新的內容,都在里面有說明。
6. 請羅列Linux發行版的基礎目錄名稱命名法則及功能規定
首先,我們使用ls -l / 來看看/目錄下有哪些基礎目錄以及他們的功能都是什么
此處以CentOS 7為例
[root@dhcp-10-129-6-166 ~]# ls -l /
total 32
lrwxrwxrwx. 1 root root 7 Dec 1 21:51 bin -> usr/bin
#在CentOS7之前的版本中,/bin和/usr/bin是兩個目錄,里面都存放了所有用戶可使用的普通命令,但是在7中,/bin成了/usr/bin的符號鏈接了,也難怪使用echo $PATH的時候,發現里面沒有/bin和/sbin了。
dr-xr-xr-x. 4 root root 4096 Dec 1 22:09 boot
#boot目錄中存放的是引導程序, kernel, grub等等都存放在/boot目錄中 ,一般此目錄都單獨分區
drwxr-xr-x. 20 root root 3160 Dec 2 22:14 dev
#dev目錄下存放的是各種設備文件,設備文件即是把硬件抽象成文件存放在這里
drwxr-xr-x. 76 root root 8192 Dec 2 22:14 etc
#etc目錄里面存放著的是配置文件,全部為文本格式的文件
drwxr-xr-x. 3 root root 22 Dec 2 00:41 home
#home目錄下有和所有系統上的用戶同名的文件夾,即所有用戶的私人家目錄都在/home目錄下,家目錄只有用戶自己才可以訪問,是受法律保護的私人空間。但,root除外
lrwxrwxrwx. 1 root root 7 Dec 1 21:51 lib -> usr/lib
#和/bin一樣,在centOS7之前,/lib和/usr/lib是單獨兩個文件夾,也是在CentOS7中lib作為/usr/lib的符號鏈接存在了,這樣做的目的不知道是不是為了簡化目錄結構,但是這樣一樣/usr就不能單獨分區了,/lib中存放的是動態庫文件,即share object
lrwxrwxrwx. 1 root root 9 Dec 1 21:51 lib64 -> usr/lib64
#同/lib,不過這里面放的是64位的SO
drwxr-xr-x. 2 root root 6 Aug 12 2015 media
#media掛載的是可移除的媒體設備(例如U盤和CO-ROM)
drwxr-xr-x. 2 root root 6 Aug 12 2015 mnt
#mnt是臨時掛載目錄,用于我們臨時掛載其他的文件系統時,可以掛載到此目錄下
drwxr-xr-x. 2 root root 6 Aug 12 2015 opt
#opt的全稱是optional,即可選的,一些不是系統必須的軟件包都可以安裝到此目錄下
dr-xr-xr-x. 352 root root 0 Dec 2 22:14 proc
#proc的全稱是processing,這是一個偽文件系統,它并不是一個真正的文件目錄,它把當前系統上運行的進程都抽象成了文本文件,我們可以通過這個目錄來查看當前系統上運行的進程,所以這個目錄并不真正存在于硬盤上,而且是內存中。在linux中, /proc對應的是procfs格式掛載
dr-xr-x—. 5 root root 4096 Dec 2 00:49 root
#root目錄是管理員root的家目錄
drwxr-xr-x. 21 root root 620 Dec 2 22:14 run
#run用于替代/var/run目錄。/var/run記錄自最后一次啟動以來運行中的系統信息,包括當前登錄的用戶和運行中的守護進程等。
lrwxrwxrwx. 1 root root 8 Dec 1 21:51 sbin -> usr/sbin
#/sbin和/usr/sbin里面存放的是管理員可以使用的管理命令
drwxr-xr-x. 2 root root 6 Aug 12 2015 srv
#某些服務啟動后,需要訪問的一些數據,都存放在這個目錄下
dr-xr-xr-x. 13 root root 0 Dec 2 22:14 sys
#在kernel2.6之后,將procfs中的大量非進程相關的系統信息移到了一個專門的偽文件系統中,即sysfs, sysfs即掛載到/sys目錄下,也就是說,可以這樣簡單理解,此目錄是從/proc中生成出來
drwxrwxrwt. 7 root root 4096 Dec 2 22:14 tmp
#顧名思義,tmp里面存放的是臨時文件
drwxr-xr-x. 13 root root 4096 Dec 1 21:51 usr
#usr的全稱是Unix Share Resource,即Unix共享資源,用于存放只讀的用戶數據的第二層次
drwxr-xr-x. 19 root root 4096 Dec 2 22:14 var
#var的全稱是variable, 即可變的文件都存放在這里,例如,日志文件和用戶的mailbox等等,有些時候,/var會是單獨的一個分區
原創文章,作者:JL,如若轉載,請注明出處:http://www.www58058.com/61176