一、計算機的組成及其功能
硬件
馮·洛伊曼體系
-
控制器(Control):是整個計算機的中樞神經,其功能是對程序規定的控制信息進行解釋,根據其要求進行控制,調度程序、數據、地址,協調計算機各部分工作及內存與外設的訪問等。
-
運算器(Datapath):運算器的功能是對數據進行各種算術運算和邏輯運算,即對數據進行加工處理。
-
存儲器(Memory):存儲器的功能是存儲程序、數據和各種信號、命令等信息,并在需要時提供這些信息。
-
輸入(Input system):輸入設備是計算機的重要組成部分,輸入設備與輸出設備合稱為外部設備,簡稱外設,輸入設備的作用是將程序、原始數據、文字、字符、控制命令或現場采集的數據等信息輸入到計算機。常見的輸入設備有鍵盤、鼠標器、光電輸入機、磁帶機、磁盤機、光盤機等。
-
輸出(Output system):輸出設備與輸入設備同樣是計算機的重要組成部分,它把外算機的中間結果或最后結果、機內的各種數據符號及文字或各種控制信號等信息輸出出來。微機常用的輸出設備有顯示終端CRT、打印機、激光印字機、繪圖儀及磁帶、光盤機等。
軟件
低級語言:
匯編語言,匯編器;寫驅動
高級語言:
系統級:C,C++,對性能要求較高的服務類程序 應用級:Java,Python,Ruby
二、Linux 發行版有數百種之多,主要分三個主流分支
RedHat Enterprise Linux
Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所謂的Redhat Advance Server,收費版本)、Fedora Core(由原來的Redhat桌面版本發展而來,免費版本)、CentOS(RHEL的社區 克隆版本,免費)。Redhat是在國內使用人群最多的Linux版本,甚至有人將Redhat等同于Linux。所以這個版本的特點就是使用人群數量大,資料非常多,言下之意就是如果你有什么不明白的地方,很容易找到人來問,而且網上的一般Linux教程都是以Redhat為例來講解的。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分發方式是編譯好的二進制文件。穩定性方面RHEL和CentOS的穩定性非常好,適合于服務器使用,但是Fedora Core的穩定性較差,最好只用于桌面應用。
CentOS 是一個基于Red Hat Linux 提供的可自由使用源代碼的企業級Linux發行版本。每個版本的 CentOS都會獲得十年的支持(通過安全更新方式)。新版本的 CentOS 大約每兩年發行一次,而每個版本的 CentOS 會定期(大概每六個月)更新一次,以便支持新的硬件。這樣,建立一個安全、低維護、穩定、高預測性、高重復性的 Linux 環境。CentOS是Community Enterprise Operating System的縮寫。CentOS 是RHEL(Red Hat Enterprise Linux)源代碼再編譯的產物,而且在RHEL的基礎上修正了不少已知的 Bug ,相對于其他 Linux 發行版,其穩定性值得信賴。
Debian:只有社區的發行版
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的資料也很豐富,有很多支持的社區,有問題求教也有地方可去。Debian是包括Ubuntu在內許多發行版的上游,而Ubuntu又是Linux Mint及其他發行版的上游。Debian在服務器和桌面電腦領域都有著廣泛的應用。Debian是一個純開源計劃并著重在一個關鍵點上,穩定性。它同時也提供了最大的和完整的軟件倉庫給用戶。
Ubuntu是基于Debian的unstable版本加強而來,可以這么說,Ubuntu就是一個擁有Debian所有的優點,以及自己所加強的優點的近乎完美的 Linux桌面系統。根據選擇的桌面系統不同,有三個版本可供選擇,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的Xubuntu。特點是界面非常友好,容易上手,對硬件的支持非常全面,是最適合做桌面系統的Linux發行版本。
Slackware Linux
Slackware Linux是由Patrick Volkerding開發的GNU/Linux發行版。與很多其他的發行版不同,它堅持KISS(Keep It Simple Stupid)的原則。一開始,配置系統會有一些困難,但是更有經驗的用戶會喜歡這種方式的透明性和靈活性。 Slackware 很多特性體現出了KISS原則,最為有名的一些例子就是不依賴圖形界面的文本化系統配置、傳統的服務管理方式和不解決依賴的包管理方式。它的最大特點就是安裝靈活,目錄結構嚴謹,版本力求穩定而非追新。Slackware的軟件包都是通常的tgz(tar/gzip) 或者txz(xz) 格式文件再加上安裝腳本。Tgz/Txz 對于有經驗的用戶來說,比RPM更為靈活,并避免了APT 之類管理器可能帶來的的依賴地獄。
作為開源軟件,Slackware與商業版本的關系并不大,但與幾家提供付費支持的廠商一直保持的合作關系。作為最早的可用版本之一,Slackware Linux是由Patrick Volkerding開發的GNU/Linux發行版。與很多其他的發行版不同,它堅持KISS(Keep It Simple Stupid)的原則,就是說盡量不依賴配置系統的圖形界面工具。其安裝程序也是一些Dialog界面的shell腳本寫成,你可以在安裝的任何時候跳到任何安裝步驟,而且這些腳本在安裝之后也可以很方便的使用
Slackware與其他的發行版本(Red Hat、Debian、Gentoo、SuSE、 Mandriva、Ubuntu等)不同的道路,它力圖成為“UNIX風格”的Linux發行版本。只吸收穩定版本的應用程序,并且缺少其他linux版本中那些為發行版本定制的配置工具。在當今systemd大勢所趨的情況下,Slackware仍然堅持BSD啟動風格。
Slackware主要為x86 PC開發,從2005年起開始出現針對System/390架構的官方移植。同時ARM、DEC Alpha、SPARC和PowerPC也存在一些非官方的移植。Slackware官方維護著一個開發版本(Slackware Current),不斷有新的軟件被加入到這個源,用戶可以實現類似Archlinux的滾動升級,等到一個開發版本足夠穩定,便會發布一個穩定版。Slackware是支持x86、amd64(即x86_64)、ARM、Alpha、SPARC、PowerPC的一套GNU/Linux操作系統,其正式發布由PatrickVolkerding 負責。
Linux發行版匯總
Linux各發行版的聯系與區別:
聯系:
-
各發行版本均采用Linux的內核(kernel);
-
各發行版本均遵守GPL版權協定;
-
各發行版本均遵循 Linux Standard Base (LSB)等標準來開發;
-
各發行版本均遵循FHS(File system Hierarchy Standard)標準規范;
區別:
-
不同的發行版采用的軟件包管理方式不同;最有名的是 debain 的 deb 包,redhat 的 rpm 包,slackware 等的 tgz 包。
-
發行初衷不同,導致特點也不同,見下圖:
三、Linux的哲學思想
-
一切皆文件
-
由眾多的單一的程序完成一件比較復雜的工作,一個程序只做一件事,并且做好他。
-
盡量避免與用戶交互
-
使用文本文件保存配置信息
-
提供機制(可選的策略、是一種框架),而非策略,提供做大的靈活性。
四、Linux系統上常用命令的使用格式
命令的語法通用格式:
COMMAND OPTIONS ARGUMENTS
COMMAND說明
發起命令時將請求內核將某個二進制程序運行為一個進程,命令本身是一個可執行的程序文件,二進制格式的文件有可能會調用共享庫文件。[遵循ELF格式規范]
多數系統命令程序文件都存放在:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin,它們又分為普通命令和管理命令。
普通命令:存放在/bin,/usr/bin,/usr/local/bin
管理命令:存放在/sbin,/usr/sbin,/usr/local/sbin
用到的庫文件都存放在:/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64,它們分為32位和64位的庫文件,32位使用于32位的操作系統,64位使用于64位的操作系統,64位兼容32位,而32不兼容64
32位庫:存放在/lib,/usr/lib,/usr/local/lib
64位庫:存放在/lib64,/usr/lib64,/usr/local/lib64
命令分為兩類:
由shell自帶的命令,叫作內嵌命令(builtin)
獨立的可執行程序文件,文件名即命令名,叫作外部命令
查看命令的內容的類型:
file命令:
例:~]# file /bin/ls
查看命令的類型:
type命令:
例:~]# type COMMAND
注意:并非所有的命令都有一個在某目錄與之對應的可執行程序文件
OPTIONS說明:
指定命令的運行特性,有兩種表現形式:
短選項:-C,例如 ls -l ,-d 注:有的命令選項沒有 – ,同一命令同時使用多個短選項可合并:ls -ld
長選項:–word,例如 ls –help,有時候選項也帶參數,例:du -h –max-depth=1 注:長選項不能合并
ARGUMENTS說明:
參數:命令的作用對象,命令對什么生效,例:ls /etc ,作用在/etc 。注:有些命令可以可同時帶多個參數,以空白分隔
常用命令示例:
ifconfig
作用:顯示和配置網絡信息
語法:ifconfig [網絡設備] [參數]
示例:ifconfig -a
echo
作用:顯示文本
語法:echo [-ne][字符串]或 echo [–help][–version]
示例:echo 'Hello World'
tty
作用:顯示終端機連接標準輸入設備的文件名稱
語法:tty [-s][–help][–version]
示例:tty
startx
作用:進入圖形操作界面
示例:startx &
export
作用:設置或顯示環境變量
語法:export [-fnp][變量名稱]=[變量設置值]
示例:
export JAVA_HOME = /home/myuser/jdk1.7.0_03 export PATH = $JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
pwd
作用:顯示當前工作目錄
語法:pwd[–help][–version]
示例:pwd
history
作用:列出bash保存的所有歷史命令
語法:history [選項]
示例1:history
示例2:使用HISTTIMEFORMAT環境變量在歷史中顯示TIMESTAMP
命令: export HISTTIMEFORMAT='%F %T ' history 輸出如下: 642 2016-10-25 17:05:46 ll 643 2016-10-25 17:05:46 rm 333 644 2016-10-25 17:05:46 ll /etc/fstab 645 2016-10-25 17:05:51 history --help 646 2016-10-25 17:05:59 history -h 647 2016-10-25 17:06:14 man history 648 2016-10-25 17:07:53 history 649 2016-10-25 17:07:57 export HISTTIMEFORMAT='%F %T ' 650 2016-10-25 17:07:59 history
shutdown
作用:系統關機命令
語法:shutdown [-cfFhknr][-t 秒數][時間][警告信息]
示例:shuntdown -r +5
poweroff
作用:關機
語法:這個命令還說啥語法啊,生產環境上不要隨便執行這個命令,否則會被捆綁、滴蠟、爆菊啊~~~~~
示例:poweroff
reboot
作用:重啟
語法:運維常用作死命令之一,最好在頭腦清醒的前提下執行。
示例:reboot
hwclock
作用:用來查詢和設置硬件時鐘
語法:
-r, --show 讀取并打印硬件時鐘(read hardware clock and print result ) -s, --hctosys 將硬件時鐘同步到系統時鐘(set the system time from the hardware clock ) -w, --systohc 將系統時鐘同步到硬件時鐘(set the hardware clock to the current system time )
示例:
[root@centos ~]# hwclock -r 2016年10月25日 星期二 17時32分28秒 -0.671802 seconds
date
作用:取一個特定時間的linux時間戳
語法:date [參數]… [+格式]
示例:
[root@centos ~]# date 2016年 10月 25日 星期二 17:33:17 CST
五、如何在Linux系統上獲取命令的幫助信息,請詳細列出,并描述man文檔的章節時如何劃分的
獲取命令的使用幫助:
內部命令: help COMMAND 外部命令: (1) 命令自帶簡要格式的使用幫助 # COMMAND –help (2) 使用手冊:manual 位置:/usr/share/man # man COMMAND
先執行type COMMNAD 識別是內部命令還是外部命令
(3) info COMMAND 獲取命令的在線文檔; (4) 很多應用程序會自帶幫助文檔:/usr/share/doc/APP-VERSION README:程序的相關的信息; INSTALL: 安裝幫助; CHANGES:版本迭代時的改動信息; (5) 主流發行版官方文檔 http://www.redhat.com/doc (6) 程序官方的文檔: 官方站點上的“Document” (7) 搜索引擎 google、baidu keyword filetype:pdf (輸入文章類型更有針對性) keyword site:domain.tld
man 文檔章節如何劃分
使用手冊:壓縮格式的文件,有章節之分; /usr/share/man man1, man2, …
1:用戶命令; (普通用戶和管理員) 2:系統調用; 3:C庫調用; 4:設備文件及特殊文件; 5:文件格式;(配置文件格式) 6:游戲使用幫助; 7:雜項; 8:管理工具及守護進行;
請羅列Linux發行版的基礎目錄名稱命名法則及其功用規定
FHS:
FHS:全稱Filesystem Hierarchy Standard
/ 下面的各個目錄應該要放什么數據:
/bin:所有用戶可用的基本命令程序文件; /sbin:供系統管理使用的工具程序; /boot:引導加載器必須用到的各靜態文件:kernel,initramfs(initrd),grub等; /dev:存儲特殊文件或設備文件;設備有兩種類型:字符設備(線性設備)例如:鍵盤、顯示器;塊設備(隨機設備)例如:硬盤、內存; /etc:系統程序的配置文件,只能為靜態 /home:普通用戶的家目錄的集中位置;一般每個普通用戶的家目錄默認為此目錄下與用戶名同名的子目錄,/home/USERNAME; /root:管理員的家目錄;可選 /lib:為系統啟動或根文件系統上的應用程序(/bin,/sbin等)提供共享庫,以及為內核提供的內核參數模塊; libc.so.:動態鏈接的C庫; ld:運行時鏈接器/加載器; modules:用于存儲內核模塊的目錄; /lib64:64位系統特有的存放64位共享庫的路徑; /media:便攜式設備掛載點,cdrom,floppy等; /mnt:其它文件系統的臨時掛載點; /opt:附加應用程序的安裝位置;可選路徑; /srv:當前主機為服務提供的數據; /tmp:為那些會產生臨時文件的程序提供的用于存儲臨時文件的目錄;可供所有用戶執行寫入操作;有特殊權限; /usr:usr Hierarchy,全局共享的只讀數據路徑; /var:/var Hierarchy,存儲經常發生變化的數據的目錄;
原創文章,作者:N24_Jerry,如若轉載,請注明出處:http://www.www58058.com/54474
很棒,贊一個~
加入了一些自己的理解,不錯,希望可以熟知這些基礎知識,加油,加油!