1、計算的主要組成部件與功能
????????1946年ENIAC計算機研發(fā)完成腥寇,標志著電子計算機時代的正式到來民珍。從第一代的電子管計算機(1945-1956)仑扑,第二代的晶體管計算機(1956-1953),第三代的集成電路計算機(1964-1971)跪呈,直到當今的大規(guī)模集成電路計算機段磨,計算機的硬件組成結構都遵循馮諾依曼體系。
????????在馮諾依曼體系結構中耗绿,計算機的硬件設備分為:輸入設備苹支、存儲器、運算器误阻、控制器和輸出設備等五個基本組成部件债蜜。
現(xiàn)代計算機的硬件架構中:
????CPU(Central Process Unit) 中心處理器,包含了五個基本組成部件中的兩個基本部件:運算器和控制器究反。
????????????運算器:完成算術運算和邏輯運算等各種運算
????????????控制器:控制總線使用權限寻定;完成尋址,控制對內存的讀訪問和寫訪問
????????除此之外CPU中還有各類寄存器和緩存精耐,是為提升CPU的運算性能而設計的狼速,并非計算機架構中的核心組成部件。
????????????存儲器:通常所將的內存(RAM Random Access Memory 隨機訪問存儲器)作為計算機體系中的存儲器
? ? ?? CPU和內存卦停,組成了計算機架構中的最核心部件向胡,整個計算機架構圍繞運算器、控制和存儲器惊完,即可完成程序運行的所有操作僵芹。除此之外,還有兩個部件专执,用來使計算機按用戶需求完成計算:輸入設備(Input)和輸出設備(Output)淮捆。
????????輸入設備:用戶對計算機輸入操作指令,提供各類數(shù)據(jù)等(典型設備如鍵盤、鼠標攀痊、硬盤等)
????????輸出設備:用于輸出數(shù)據(jù)加工的結果(典型設備如顯示器桐腌、打印機等)
2、Linux的發(fā)型版
????????GNU組織規(guī)定任何符合GNU規(guī)范的軟件需要提供源代碼方式提供給用戶使用苟径,但對源代碼的編譯過程專業(yè)性較強案站,編譯過程非常復雜,普通用戶難以進行棘街。為了能夠讓終端用戶使用Linux操作系統(tǒng)蟆盐,眾多商業(yè)公司和社區(qū)組織對操作系統(tǒng)及各類工具進行編譯打包,形成Linux的不同發(fā)行版遭殉。
????????目前石挂,Linux發(fā)行版有數(shù)百種,任何商業(yè)公司和社區(qū)組織在遵循GNU組織的要求下险污,都可以按照自己的理解對Linux操作系統(tǒng)進行編譯并打包痹愚,加入自己發(fā)行版特色的軟件工具。
????????比如1994年蛔糯,在美國北卡羅來納州成立的RedHat公司拯腮,對Linux進行編譯,并提供Linux系統(tǒng)的安裝程序等蚁飒,便于終端用戶安裝使用动壤。
????????目前最主流的Linux發(fā)行版的三大分支是:
????????????Debian:
????????????????????基于Debian分支比較著名的二次發(fā)行版有ubuntu和knopix
????????????Slackware:
????????????????????基于Slackware分支比較著名的二次發(fā)型版有S.U.S.E,S.U.S.E又衍生出了OpenSUSE
????????????RedHat:
????????????????????RedHat的企業(yè)版為(RedHat Enterprise Linux RHEL)基于此發(fā)型版衍生出的發(fā)型版為CentOS(Community Enterprise OS 社區(qū)企業(yè)版)
????????Linux的不同發(fā)行版間淮逻,使用相同的Linux內核琼懊,但使用不同的程序包管理工具進行程序管理,如Debian系列的發(fā)行版使用apt-get作為包管理工具弦蹂,程序包格式為deb肩碟,Slackware系列的發(fā)行版使用zypper包管理工具,程序包格式為rpm凸椿,而RedHat系列發(fā)行版使用yum作為包管理工具削祈,程序包格式為rpm。各發(fā)行版之間既有區(qū)別又有聯(lián)系脑漫,在GNU組織的GPL協(xié)議下各發(fā)行版取長補短共同發(fā)展髓抑。
3、Linux的哲學思想
????????1优幸、一切皆文件:Linux把幾乎所有資源統(tǒng)統(tǒng)抽象為文件形式吨拍,包括硬件設備,甚至通信接口等
????????2网杆、由眾多功能單一的小程序組成:單個小程序的性能和質量可以不斷提升羹饰,成為高效的唯一程序伊滋,其他程序可以直接使用“輪子”,而不需要每個程序都來造輪子
????????3队秩、通過組合多個小程序笑旺,完成復雜任務:組合多個高效的小程序,復雜任務的處理必然也是高效的
????????4馍资、程序啟動后筒主,盡量避免用戶交互:這種方式易于以編程的方式實現(xiàn)自動化任務
????????5、使用文本文件保存配置信息:這種設計便于用戶對程序配置做出調整
4鸟蟹、常用命令的使用格式
????????在Linux的CLI(Command Line Interface) 模式下乌妙,可以使用Linux命令實現(xiàn)對Linux系統(tǒng)的管理,Linux命令提示符各符合含義如下:
????????[root@node1 ~]# COMMAND
????????????????root:當前登錄用戶
????????????????node1:當前主機的主機名建钥,非完整格式
????????????????????????完整格式為:node1.magedu.com(加上了域名)
????????????????~ :用戶當前所在目錄(current directory)藤韵,也稱為工作目錄(working directory),相對路徑
????????????????# :管理員賬號 root:擁有最高權限熊经,能執(zhí)行所有操作
????????????????$ :普通用戶荠察,非root,不具有管理權限奈搜,不能執(zhí)行系統(tǒng)管理類操作
????????使用命令的基本格式如下:
????????????????COMMAND OPTIONS ARGUMENTS
????????????????????????COMMAND:命令名稱
????????????????????????OPTIONS:選項(調整命令的運行特性);選項有短選項和長選項的區(qū)別盯荤,如果同一命令同時使用多個短選項馋吗,多數(shù)情況下可合并表示,長選項不能合并秋秤;有些選項可以帶參數(shù)宏粤,此稱為選項參數(shù),而不是命令參數(shù)灼卢;短選項的參數(shù)用空格來分隔绍哎,長選項的參數(shù)用 “=” 來設置。
????????????????????????ARGUMENTS:參數(shù) (命令的作用對象:命令對什么生效)鞋真,不同命令的參數(shù)格式不同崇堰;有些命令可同時帶多個參數(shù),多個參數(shù)之間以空格分隔涩咖。
????????ifconfig命令:查看活動接口的ip地址
????????echo命令:回顯命令
????????tty命令:查看當前終端設備
????????startx命令:啟動X-window桌面環(huán)境
????????export命令:用于將shell變量輸出為環(huán)境變量海诲,或者將shell函數(shù)輸出為環(huán)境變量
????????pwd命令:(printing working directory) 顯示工作目錄
????????history命令:查看命令歷史命令
????????shutdown命令:關機命令
????????poweroff命令:關機命令
????????reboot命令:重啟機器命令
????????hwclock命令:與clock相同,查看硬件時鐘
????????date命令:查看系統(tǒng)時鐘
5檩互、獲取幫助的方式及man的章節(jié)劃分
????????按照在文件系統(tǒng)上是否存在一個與命令相對應的程序文件這一標準進行判斷特幔,命令分為內建命令和外部命令。所有外部文件闸昨,在文件系統(tǒng)的目錄中都有一個與命令名相同的獨立的程序文件蚯斯。用戶選用的Shell環(huán)境本身也是一個外部命令薄风,但Shell命令中內建了眾多保證系統(tǒng)運行的基本命令,這部分命令稱為內建命令拍嵌,不同Shell環(huán)境中的內建命令可能存在不通用的情況遭赂。
? ? ? ? 使用 type命令可以用來區(qū)分內建命令和外部命令。
????????????????type COMMAND
????????????????????????內部命令:builtin
????????????????????????外部命令:顯示為命令文件所在路徑
????????Linux的內建命令和外部命令獲取幫助的方法不同撰茎。
? ? ? ? ? ? 針對Linux的內建命令:help COMMAND
? ? ? ? ? ? 針對Linux的外部命令獲取幫助的方法較多:
????????????????1嵌牺、查看命令自帶的簡要格式使用幫助: COMMAND --help
????????????????2、使用手冊(manual)查看命令詳情:man COMMAND
????????????????3龄糊、獲取命令的在線文檔 :info COMMAND
????????????????4逆粹、查看命令自帶的說明文檔,包括README炫惩、CHANGELOG僻弹、INSTALL
????????????????5、Linux主流發(fā)行版的官方網(wǎng)站上的幫助文檔
????????????????6他嚷、程序命令官方網(wǎng)站上的幫助文檔
????????????????7蹋绽、通過搜索引擎獲得命令的使用說明
????????????????8、通過各種技術書籍獲取命令使用說明
????????以上獲取命令幫助的方式中筋蓖,通過man命令查看程序幫助的方式最為方便和全面卸耘,用戶可用隨時通過 man COMMAND 命令查詢命令幫助。
????????man命令通過不同章節(jié)對命令進行分類:
????????????????man1:用戶可用命令(User Commands)
????????????????man2:使用函數(shù)庫中程序可用的系統(tǒng)調用
????????????????man3:程序中可用的C庫調用
????????????????man4:設備文件及特殊文件
????????????????man5:文件格式(配置文件格式)
????????????????man6:游戲使用幫助
????????????????man7:雜項
????????????????man8:管理工具及守護進程
????????部分命令會同時在多個章節(jié)中出現(xiàn)粘咖。使用whatis命令可用查看到命令在man命令的哪些章節(jié)的中存在幫助信息蚣抗。
6、Linux目錄命名法則及功用規(guī)定
? ? Linux目錄命名規(guī)則:
????????1瓮下、Linux的目錄是路徑映射文件(遵循一切皆文件思想翰铡,目錄本身也是文件)
????????2、Linux的目錄名中不能帶有“/”符號
????????3讽坏、Linux的目錄名大小寫敏感
????????4锭魔、以“."開頭的目錄名將成為隱藏文件
????????5、使用特殊字符作為目錄名合法路呜,但極其不建議使用
????????6迷捧、Linux的目錄名不能超過255個字符
????????為了避免Linux眾多發(fā)行版各自為政,避免不同發(fā)型版的文件體系出現(xiàn)較大區(qū)別胀葱,Linux標準化組織制定了FHS(Filesystem Hierarchy Standard)標準党涕,規(guī)定了Linux發(fā)行版的標準目錄體系結構。
????????FHS標準對 "/" 目錄下的文件設置給出了明確的規(guī)范巡社。下面對 “/" 目錄下的一層文件目錄的主要作用進行說明:
????????/bin:所有用戶可用的基本命令程序文件(二進制文件)
????????/sbin:供系統(tǒng)管理使用的命令乘車文件(系統(tǒng)管理的二進制文件)
????????/boot:引導加載器必須用到的各靜態(tài)文件:kernel膛堤,initramfs(initrd),grub等
????????/dev :存儲特殊文件或設備文件
????????????????設備文件有兩種類型:字符設備(鍵盤是典型的線性設備晌该,有時序性)肥荔、塊設備(硬盤是典型的塊設備绿渣,文件存儲為不同的block,是隨機的燕耿,可以訪問任何一個項目中符,比如內存 Random Access Memory)
????????/etc? :系統(tǒng)程序的配置文件 ,只能為靜態(tài)文件(文本文件)誉帅。主機特有的系統(tǒng)配置文件
????????/home:普通的家目錄的集中位置淀散,一般每個普通用戶的家目錄默認為此目錄下與用戶名同名的子目錄,/home/USERNAME
????????/lib :為系統(tǒng)啟動或根文件系統(tǒng)上的應用程序(/bin和/sbin等)提供共享庫文件蚜锨,以及為內核提供內核模塊档插。
????????????????libc.so.* :動態(tài)鏈接C庫
????????????????ld*? 運行時鏈接器或加載器
????????????????modules 用于存儲內核模塊的目錄
????????/lib64 :64位系統(tǒng)特有的存放64位共享庫的路徑;為了能夠實現(xiàn)系統(tǒng)的向下兼容亚再,64位系統(tǒng)下必然會有 “/lib” 目錄郭膛,但32位系統(tǒng)下不一定有"/lib64" 目錄,此目錄為可選目錄氛悬。
????????/media : 為便攜設備提供掛載點则剃,cdrom,floppy等
????????/mnt : 其他文件系統(tǒng)的臨時掛載點
????????/opt :? 附件應用程序(第三方應用程序)的安裝位置如捅,可選路徑
????????/srv :? 當前主機為服務提供的數(shù)據(jù)
????????/tmp : 為那些會產生臨時文件的程序提供的用于存儲臨時文件的目錄棍现,可供所有用戶執(zhí)行寫入操作,所有用戶都能
????????/usr :? user hierarchy 全局共享只讀數(shù)據(jù)路徑镜遣,本身就是一個層級結構轴咱,其下有bin、sbin烈涮、lib、lib64窖剑、include(C程序頭文件)坚洽、share(命令手冊頁和自帶文檔等架構特有的文件的存儲位置)、local(另一個層級目錄)西土、X11R6(Xwindow程序的安裝位置)讶舰、src(程序源碼文件的存儲位置)
????????/usr/local : Local Hierarchy,讓系統(tǒng)管理員安裝本地應用程序需了,也通常用于安裝第三方程序跳昼。
????????/var : var heirarchy,存儲經常發(fā)生變化的數(shù)據(jù)的目錄
????????/proc :基于內存的虛擬文件系統(tǒng)(臨時的肋乍,關機后將消失)鹅颊,用于為內核及進程存儲其相關信息,他們多為內核參數(shù)墓造。例如堪伍,net锚烦、ipv4、ip_forward帝雇、虛擬為 net/ipv4/ip_forward涮俄,存儲于 /proc/sys/ , 因此其完整的路徑為:/proc/sys/net/ipv4/ip_forward
????????/sys : sysfs 虛擬文件系統(tǒng)提供了一種比 proc 更為理想的訪問內核數(shù)據(jù)的途徑,其主要作用在于為管理Linux設備提供一種統(tǒng)一模型的接口