序:
第一次寫博客,就先嘮叨下,嘻嘻。本人之前是做機房運維工作的,大專畢業,專業學的是法律,之后轉行進的網絡培訓班,開始了IT生涯,其實計算機基礎是相當薄弱的,呵呵。機房運維工作就是搬機器,布網線,調設備,裝系統,能遠程連上,剩下的事情就不用你管了,當下云計算的盛行,傳統IDC勢必要被淘汰的,也怪自己的主觀意識沒有加強,以至于浪費了七八年的大好青春、最佳學習時間和機會。偶然的機會看到了馬哥,幡然醒悟,好像找到了以后奮斗的路,別人說30歲左右的工作基本上就決定了你今后的路,也是自己本身就對Linux感興趣,故決定一掃眼前陰霾,一條道走到黑,哈哈。也希望各位大大、大神們多多指教,共同學習,共同分享。生生不息,學習不止。
正文:
1、? 描述計算機的組成及其功能。
計算機有五大部件組成,也叫馮諾依曼體系,雖然我不認識他,呵呵。其中包括CPU(存儲器和控制器),內存(調取指令數據并存儲排列),硬盤(存儲數據媒介),I/O設備(輸入輸出信息,與用戶進行交互的設備)。下面以圖為例簡單說明下各部件的功能。(沒有計算機理論基礎,如有不對的地方請大神們多多指教,日后必惡補之。)
CPU與內存組成了計算機的系統管理體系,程序是由指令和進程組成的,進程是有生命周期的二進制運行程序,CPU可以理解為是指令的集合,調用指令并進行運算,控制其各個進程的順序排列和運行進退,其指令暫存于內存中,程序數據又都存儲在硬盤中。故用戶通過I設備(IN,如鍵盤,鼠標等)根據需求操作,CPU得知到后(這里有個操作系統的概念,稍后再做解釋),控制相關指令進行運算,并將其結果通過O設備(OUT,如顯示器,打印機等)反映給用戶,即完成計算機運行。
這里有個操作系統的概念,我也簡單講下,不對的地方,請多指教,多重復幾遍,以免自己以后忘了,呵呵。
操作系統是由kernel組成的,其作用有驅動管理,文件管理,安全管理,進程管理,網絡管理等,是用戶與硬件達成交互的渠道,其在kernel之上要運行程序需有syscall(系統調用,也是存在于kernel之中)來完成,但由于各個OS的版本及架構的CPU不同,又在kernel中完成了libcall(庫調用)以便各程序在不同的OS中能夠運行,與用戶完成完美交互,也方便了程序員的開發,libcall之上就是我們所看到的程序。這里還有個概念就是機器語言,匯編語言,編譯,編譯器等,稍后再做解釋。
2、? 按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別。
Linux系統是遵循GPL(GNU General Public License)規則的,即開源軟件(軟件源代碼),可自由編寫,修改,并發布,但也要遵循GPL規則。有些公司及社區在Linux內核的基礎上將一些服務與工具寫入到內核中并發行,當然也是遵循GPL規則的,但是服務出了問題,社區版由黑客大大們進行維護修改,這是免費的,但不穩定,發行版則是由發行商進行有償服務,保證其系統的穩定性。也分有個人版和企業版之說。
目前主流的Linux發行版大致分為三大公司的產品,Debian,Slackware,RedHat。Debian旗下有Ubuntu,Knopix,Slackware旗下有S.u.S.E,S.u.S.E下又有Opensuse,RedHat旗下有Fedora,CentOS,基本上歐洲大陸用的比較多的是Debian和S.u.S.E的版本,美國和中國用的RedHat較多,當然還有Gentoo,ArchLinux等上百種Linux系統。版本發行有版本號,X.Y.Z,X代表主版本號,Y代表次版本號,Z代表修訂版本號,其為奇數是修訂版,為偶數是穩定版。
3、? 描述Linux的哲學思想,并按照自己的理解對其進行解釋性描述。
Linux的哲學思想大分有四:
其一、一切皆文件,即把系統上的所有資源幾乎統統以文件的形式進行表示,包括硬件設備,外聯設備,鏈接設備等,都是已文件的形式保存,用戶可進行訪問與查詢,修改其配置文件,達到需求。
其二、Linux由眾多功能單一的程序組成,且每個程序只做一件事,并做好。這就大大劃分了系統上的管理,用戶可修改配置文件來更改自己對程序的需求,也可據源代碼做二次開發,各程序間互不影響。
其三、盡量避免與用戶交互,編寫程序達到自動化任務。Linux提供了很好的API(Application Programe Interface)接口,可在其環境下(shell環境,也是一個庫調用,分有bash,csh,zsh,tcsh,ksh等),根據用戶的需求進行腳本編寫,或程序開發,以完成自動化任務,節約成本,方便管理。
其四、使用文本文件保存配置信息。用戶修改程序或服務參數,可參考其配置文件進行,而文件是以文本形式進行存儲,這就提高了方便性,最主要的是靈活性,用戶可修改配置文件之后以保存,在下次啟動服務之后自動加載文件以到達需求目的。
4、? 說明Linux系統上命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相應的示例來闡述。
Linux系統與用戶進行交互提供了兩種界面,GUI和CLI,GUI包括GNmoe,KDC圖形界面,CLI包括shell,bash,csh,Tcsh等環境,其命令行方式為[user@host ~]#($):COMMAND OPTIONS ARGUMENTS,user表示當前登錄用戶,@分隔符,host表示登錄主機,~表示當前目錄,或工作目錄,#表示管理用戶登錄,具有管理權限,$表示普通用戶登錄,不具有管理類權限,COMMAND命令,OPTIONS可選項,以表示命令的詳細選擇內容,ARGUMENTS參數,表示命令的作用對象。下面以man命令(命令的幫忙查看命令)查看使用方式介紹命令的使用。(CentOS 7)
ifconfig 查看網絡接口信息,ip addr list與其有相同的結果,常用選項為-a,表示查看所有網絡端口信息
在此信息欄中可查看所有端口的IP地址,掩碼,廣播地址,MAC地址,IPV6信息,上下行流量,速率等信息。
echo 顯示其文本內容,后有‘強引用’,“弱引用”,`反引用`之分,是對內容進行顯示,后也可跟選項,如echo – n顯示不換行,echo -e讓轉義符(\)生效,\n換行,\t制表,\v縱向制表,后面也可跟選項表示顏色,以圖作說明。
echo也可用于顯示變量值,$SHELL環境變量是什么,$PATH命令查找的路徑是什么等。
tty startx 這是與終端有關的命令,Linux提供了很好的交互界面,當然要有終端實現連接,終端有虛擬終端(/dev/tty,虛擬終端6個端口號,1到6),物理終端(/dev/console),串行終端(/dev/ttyS),偽終端(/dev/pty),其終端在系統中以文件形式表示,startx是由命令行終端轉為圖形終端的命令,可跟&轉為后臺運行。
我用的是XSHELL,第一個窗口為偽終端1,第二個窗口為偽終端2,第三個窗口為虛擬機的終端,系統上的虛擬終端,圖形界面的就不做展示了,呵呵。
export 用于顯示當前SHELL環境下變量的值,一般存在交叉編譯鏈的時候需要更改變量環境,這時候用export查看當前環境下的變量。
太多就不全部截屏了。
pwd 顯示當前工作目錄,即用戶都有自己的家目錄,不同的用戶登錄,所顯示的pwd是不一樣的,用圖展示。
pwd的使用可讓用戶清楚自己當下的工作目錄,方便路徑的查找或其他的修改操作。
history 歷史查詢命令,這個命令也是我們經常用的,后可跟-c表示清空歷史列表,history查詢的結果一般存儲在.bash_history的歷史文件中,用戶當前登錄執行的命令不會即刻存到文件中,需下次啟動后,或用選項執行,如history -r,表示把命令文件讀取到列表中,可先清空再執行這個命令做實驗,history -w,表示把歷史列表中的命令追加到歷史文件中,這個操作大家可以實驗下,先把歷史文件清空,history -d,表示從列表中刪除指定命令。history也由環境變量值,來定制其功能,HISTSIZE(歷史命令保存的最大條數),HISTFILE(持久保持的歷史文件),HISTFILESIZE(歷史文件保存的最大條數),HISTCONTROL(歷史命令執行的控制結果,ignoredups,忽略重復命令,ignorespace,忽略以空白字符開頭的命令,ignoreboth,以上兩者同時生效),也有快捷符號來執行上一條命令,當然也可按鍵盤的上下鍵,如若編寫腳本,這個很省事,?。绦猩弦粭l命令,!#,#表示命令列表中的命令序號,執行第幾條命令,如圖。
shutdown poweroff reboot halt 這些是與系統開關機有關的命令,shutdown后可跟選項,不跟表示1分鐘后關機,-c表示取消,-P等于poweroff,-H等于halt,停止也是關機,-r,reboot表示重啟,-k,表示不關機只發送消息,這里還有個wall也很好玩,加上文本內容,其他終端能看到發送的內容,不過我還是比較喜歡init命令控制,init 0是關機,6是重啟,3是字符界面,5是圖形界面,后期講INIT進程的時候再做說明。
date hwclock clock cal 是與時間有關的命令,cal顯示日歷形式,也可顯示單月,整年,如cal 05 2018,date顯示及設置系統時間,后可跟-s 設備系統時間,也可單獨顯示某一個項,date +%F日期,%T時間,%Y年,%m月,%d日,%D時間,格式不一樣,%H小時,%M分鐘,%S秒,date -u顯示UTC時間,clock用法與hwclock一樣,顯示和設置硬件時間,即CMOS上的BIOS時間,hwclock –set –date=””,修改硬件時間,hwclock -w表示systohc,從系統同步到硬件,以系統時間為準,hwclock -s表示hctosys,從硬件同步到系統,以硬件時間為準,如圖。
5、? 如何在Linux系統上獲取命令的幫助信息,請詳細列出,并描述man文檔的章節是如何劃分的。
Linux系統上的命令分為內部命令和外部命令,可用type和which查看命令的類型,內部命令幫助信息查看即help COMMAND,外部命令可用COMMAND –help,也可用man COMMAND來查看,info命令是在線文檔查看,也可登錄redhat官方網站查看文檔,也有其程序的說明文檔,也可google。man命令很強大,共有8個章節之分說明命令的使用,可用whatis COMMAND來查看命令所在章節。八大章節,有用戶命令說明,系統調用,C庫調用,設備文件及特殊文件,文件格式(即配置文件格式),游戲幫助使用說明,雜項,守護進程及管理工具。
6、? 請羅列Linux發行版的基礎目錄名稱命名法則及功用規定。
Linux系統存儲文件有文件系統管理,即/(根目錄)下的子目錄,層級管理,下面用圖一一說明。
/bin,/sbin,存儲命令的目錄文件,有鏈接到/usr/bin,/usr/sbin,bin下是用戶可操作的基礎命令的程序文件,sbin是供管理命令使用的程序文件,/boot系統加載必須用到各靜態文件,/dev 系統下的設備文件存放,/etc 系統的各配置文件的存放,/home普通用戶的家目錄,/lib,/lib64 鏈接到/usr/lib,/usr/lib64,為系統啟動或者根文件系統上的程序文件啟動提供共享庫,或內核啟動提供共享模塊,/media,/mnt為外聯設備提供掛載點,掛載目錄,/opt 為第三方軟件提供安裝位置目錄,/proc,/sys兩個偽文件系統,基于內核的虛擬文件系統,用于為內核及進程存儲相關信息,將內核參數虛擬為映射路徑,在以后的系統調優上能用的到,配置設備參數,/root 管理員的家目錄,/srv 當前主機為服務提供的數據文件,/tmp臨時文件存放目錄,/run 系統啟動時生成的文件,為系統所用,/usr 全局共享只讀路徑,其也有層級結構,/var 經常存放經常發生變化的文件目錄,比如日志文件等,也有層級結構,如圖。
/usr下的include為C程序的頭文件,local下一個層級文件,一般/usr/local讓管理員安裝本地應用程序,也用于安裝第三方程序,share命令手冊頁及自帶文檔架構的特有文件存儲位置,src程序源代碼存儲位置。
/var下的log日志存放位置,cache緩存文件存放位置,spool打印列隊和其他列隊的工作目錄,如郵箱,新聞之類的。
至此,學習第一周完成的Linux作業,有不對的地方速速指正,我加以惡補和強化,多謝各位大大們。
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/98028
加油,涉及到的命令 建議用命令格式寫。
@馬哥教育:繼續搬磚中。。。