1、描述計算機組成及其功能
計算機組成主要分為五個部分:控制器、運算器、存儲器、輸入設備、輸出設備
ENIARC:
CPU:運算器、控制器、寄存器、緩存
存儲器:內存,RAM(Random Access Memory)????????
Input:下指令,提供數據等
Output:輸出數據加工的結果
數據在控制器輸入命令的控制下,通過輸入設備送入計算機的存儲器存儲。其次當計算開始時,在取指令作用下把程序指令逐條送入控制器。控制器對指令進行譯碼,并根據指令的操作要求向存儲器和運算器發出存儲、取數命令和運算命令,經過運算器計算并把結果存放在存儲器內。在控制器的取數和輸出命令作用下,通過輸出設備輸出計算結果
各組件的功能
控制器(Control):計算機的中樞神經,控制部件之間的協調,也包括尋址操作
– 保障不同數率傳輸的數據可以得到緩沖、甄別IO設備傳送數據的正錯、實現數據與數據之間的交換、接收和識別命令
運算器(Datapath):包含算數邏輯單元(ALU)、累加器、狀態寄存器、通用寄存器組等,通常只做運算
– 算數邏輯單元(ALU):進行二位元的算術運算,如加減乘(不包括整數除)、移位等
– 累加器(accumulator):儲存計算產生的中間結果。保證ALU不用將計算結果寫入內存
– 狀態寄存器:存放兩類信息– 體現當前指令執行結果的狀態信息、控制信息
– 通用寄存器組:可用于傳送和暫存數據,也可以參與算術邏輯運算,保存運算結果
? ??? 通用寄存器組包括以下幾類:數據寄存器、變址寄存器、指針寄存器、段寄存器、指令指針寄存器
存儲器(memory):具有存儲數據和讀寫數據的功能,每一個存儲單元為cell,8位二進制為一個存儲單元,也就是一個字節
– 最小存儲單元?? 1024*1024*1024*4 Bytes?? 1024*1024*4 KB?? 1024*4 MB?? 4 GB——32位CPU最多只能使用4GB內存
輸入設備(Input):作用是將程序、原始數據、文字、字符、控制命令或現場采集的數據輸入到計算機
– 常見的輸入設備有:鍵盤、鼠標、磁帶機、磁盤機、光盤機等
輸出設備(Output):作用是把計算機的中間結果或最后結果、機內的各種數據及文字等信息輸出來
– 常見的輸出設備有:CRT、打印機、繪圖儀等
2、描述羅列Linux的發行版,并描述不同發行版之間的聯系和區別
linux版本
紅帽企業系統(RedHatEnterpriseLinux,RHEL.)
全球最大的開源技術廠商,全世界內使用最廣泛的Linux發布套件。
提供性能與穩定性極強的Linux套件系統并擁有完善的全球技術支持。
社區企業操作系統(Community Enterprise Operating System,Centos)
最初是將紅帽企業系統“重新編譯/發布”給用戶免費使用而廣泛使用。
當前已被紅帽公司收購。
Fedora最初由紅帽公司發起的桌面版系統套件(目前已經不限于桌面版)
用戶可免費體驗到最新的技術或工具,而功能成熟后加入到RHEL中。
openSUSE
德國著名的Linux系統,全球范圍內有著不錯的聲譽。
Gentoo
具有極高的自定制性,操作復雜,因此適合有經驗的人員使用。
Debian提供超過37500種不同的自由軟件(2015年數據)且擁有很高的認可度。
對于各類內核架構支持性良好,穩定性、安全性強更有免費的技術支持。
Ubuntu
Ubuntu是一款基于Debian派生的產品,對新款硬件具有極強的兼容能力。
普遍認為Ubuntu與Fedora都是極其出色的LINUX桌面系統
**Redhat系**
名稱 |
基于 |
特點 |
Red Hat Enterprise |
RPM管理包 |
紅帽的商業版本<br>提供10年服務支持高 |
CentOS |
RedHat |
根據RHEL代碼編譯的社區版<br>文檔充足 |
Fedora |
RedHat |
紅帽官方的社區版<br>RH公司新技術測試平臺 |
**Slackware系**
名稱 |
基于 |
特點 |
Slackware |
SLS |
UNIX風格的Linux發行版<br>KISS(簡潔)的設計理念 |
SUSE |
Slackware |
界面華麗<br>照顧歐洲人的使用習慣 |
opensuse |
SUSE |
suse的社區版 |
**Debian系**
名稱 |
基于 |
特點 |
Debian |
Dpkg管理包 |
一直為社區版<br>限制較少<br>功能較多<br>要求技術較高 |
Adamantix |
Debian |
關注安全 |
Knoppix |
Debian |
對硬件支持極佳<br>對中日韓環境不夠友好 |
Gnoppix |
Knoppix |
Knoppix的GNOME版 |
Ubuntu |
Debian |
界面華麗<br>與Debian、GNOME開源社區關系緊密<br>有資金支持<br> |
Linux Mint |
Ubuntu |
Ubuntu的衍生版<br>開箱即用 |
Ubuntu Kylin |
Ubuntu |
中文定制版 |
BackTrack |
Ubuntu |
專業安全檢測操作系統<br>已不再維護 |
Kali Linux |
BackTrack |
BackTrack替代者<br>安全滲透軟件 |
其他
名稱 |
基于 |
特點 |
Gentoo |
Portage管理包 |
大量程序開放源代碼<br>對硬件要求較高 |
ArchLinux |
pacman管理包 |
軟件更新速度快<br>包管理簡易高效 |
LFS(Linux From scratch) |
高端玩法<br>DIY系統 |
3、描述Linux的哲學思想,并按照自己的理解對其進行解釋
1、一切皆文件:把幾乎所有資源統統抽象為文件形式;包括硬件設備,甚至通信接口等
? open(), read(), write(), close(), delete(), create()
2、由眾多功能單一的程序組成;一個程序只做一件事,并且做好
? 組合小程序完成復雜任務;
3、盡量避免跟用戶交互(任何程序啟動開始到結束,中間不需要用戶不參與)
? 目標:易于以編程的方式實現自動化任務;
4、使用文本文件保存配置信息;
? 文本是最易于實現的底層接口表現形式。通過文本保存,就可以使用文本編輯器實現大多數程序的管理工作
5、提供機制,而非策略
? 機制,是實現某個功能需要的原語操作和結構 ?????
? 策略,是某功能的具體實現 ?????
? 提供機制,而非策略,指的就是要給用戶充分的自主可調配性
4、說明Linux系統上命令的使用格式,詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相應的示例說明闡述
命令使用格式
|
COMMAND | ?OPTIONS | ARGUMENTS |
命令提示符 | 命令 | 選項 | 參數 |
COMMAND: 在命令提示符下,把這個命令啟動為一個進程,而命令運行過程中的特性由選項進行修正,并且這個命令將作用
在所給定的參數值上
發起一命令:請求內核將某個二進制程序運行為一個進程;
程序 –> 進程
靜態 –> 動態(有生命周期)
命令請求kernel將某個二進制程序運行為一個進程。程序本身只是一個靜態文件,只有通過這個請求,才會轉化為有生命周
期的動態進程
命令本身是一個可執行的程序文件(內部直接調用了CPU指令集中的所允許庫):二進制格式的文件,有可能會調用共享庫
文件;
多數系統程序文件都存放在:/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
32bits的庫:/lib, /usr/lib, /usr/local/lib
64bits的庫:/lib64, /usr/lib64, /usr/local/lib64
命令運行有可能會用到庫文件——只要命令以動態形式進行編譯并鏈接至庫文件,將在運行時調用庫
注意:并非所有的命令都有一個在某目錄與之對應的可執行程序文件
命令必須遵循特定格式規范:exe, msi, ELF(Linux)
~]# file /bin/ls
命令分為兩類:
由shell程序的自帶的命令:內置命令(builtin)
shell自帶的命令是沒有程序文件的
獨立的可執行程序文件,文件名即命令名:外部命令
shell程序是獨特的程序,負責解析用戶提供的命令;
環境變量:
PATH:從哪些路徑中查找用戶鍵入的命令字符串所對應的命令文件;
~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
路徑查找次序:自左而右
查看命令類型——type COMMAND
內置命令在各個路徑下是不可能與之匹配的文件名
OPTIONS:指定命令的運行特性,或者調整命令時所要執行的代碼和實現的功能
選項有兩種表現形式:
短選項:-C, 例如-l, -d
注意:有些命令的選項沒有–;
如果同一命令同時使用多個短選項,多數可合并:-l -d = -ld
長選項:–word, 例如–help, –human-readable
注意:長選項不能合并;
注意:有些選項可以帶參數,此稱為選項參數;
? 長選項通常是由等號來等于,短選項通常是由空格分隔
ARGUMENTS:命令的作用對象;命令對什么生效;
注意:不同的命令的參數,格式是不一樣的;有些命令可同時帶多個參數,多個之間以空白字符分隔;
例如:ls -ld /var /etc
ifconfig——查看網絡接口配置
語法:ifconfig [interface] ??
????????? ifconfig interface options | address …
常用方法:
ifconfig:查看當前系統中存活的網絡接口設備信息
ifconfig eth#:查看指定的網絡接口設備的信息
ifconfig -a:查看所有網絡接口設備(通過此命令,非運行狀態的網卡也可顯示)
ifconfig eth# up:動指定網絡接口設備
ifconfig eth# down:關閉指定網絡接口設備
ifconfig eth# add 33ffe:3240:800:1005::2/64:為指定網絡接口設備添加IPv6地址
ifconfig eth# del 33ffe:3240:800:1005::2/64:為指定網絡接口設備刪除IPv6地址
ifconfig eth# hw ether 00:16:3E:10:60:B5 : 修改指定網絡接口設備MAC地址
ifconfig eth# xxx.xxx.xxx.xx:給指定網絡接口設備配置指定ip地址
ifconfig eth# xxx.xxx.xxx.xx netmask 255.255.255.0 :給指定網絡接口設備配置指定ip地址及子網掩碼
ifconfig eth# xxx.xxx.xxx.xx netmask 255.255.255.0 broadcast 192.168.120.255:給指定網絡接口設備配置指定ip地址及子網掩碼、廣播地址
ifconfig eth# mtu 1500:給指定網絡接口設備設置最大傳輸單元
備注:使用此命令對于網絡接口的所有操作,在系統重啟后均會失效。若需永久生效,需要通過修改配置文件的方式,配置文件的路徑一般為
` [root@test ~]# cd /etc/sysconfig/network-scripts/`
`[root@test network-scripts]# ls`
echo——回顯?
語法:echo [SHORT-OPTION]… [STRING]…
echo LONG-OPTION
常用方法:
-n: 不進行換行;
-e:讓轉義符生效;
\n:換行
\t:制表符?
備注:STRING可以使用引號,單引號雙引號均可用
????????單引號:強引用,變量不執行替換 ?
??`[root@iZ25test ~]# echo ‘$SHELL’` ?
??????`$SHELL`
??雙引號:弱引用,變量引用會被替換
????????`[root@iZ25test ~]# `echo “$SHELL”` ?
`/bin/bash`
注意:變量引用的正規符號
${name}
實例1
[root@localhost ~]# echo “abcdefg”
abcdefg
[root@localhost ~]# echo -n “abcdefg”??? #不換行直接輸出
abcdefg[root@localhost ~]#
實例2
[root@localhost ~]# echo -e “abcdef\bg”?? #可以理解為刪除前一個
abcdeg
[root@localhost ~]# echo -e “abcdef\cg”?? #不換行直接輸出
abcdef[root@localhost ~]#
[root@localhost ~]# echo -e “abcdef\ng”?? #換行輸出
abcdef
g
[root@localhost ~]# echo -e “abcdef\tg”?? #相當于鍵入一個tab鍵
abcdef????????g
實例3
[root@localhost ~]# echo “$SHELL”?? #echo “$VAR_NAME”: 變量會替換,雙引號表示弱引用
/bin/bash
[root@localhost ~]# echo ‘$SHELL’?? #echo ‘$VAR_NAME’:變量不會替換,單引號表示強引用
$SHELL
tty——查看當前的終端設備
語法:?tty [OPTION]… ?
常用方法:`[root@test ~]# tty`
??????????`/dev/pts/0`
startx——用來啟動X Window,實際上是啟動X Window程序
常用方法:
startx:在服務器上啟動x會話 ?
startx -w:在服務器上強制啟動x會話
export ——用于將shell變量輸出為環境變量,或將shell函數輸出為環境變量
語法:BASH BUILTIN COMMANDS
常用方法:
-f:代表【變量名稱】中為函數名稱
-n:刪除指定的變量。變量實際上并未刪除,只是不會輸出到后續指令的執行環境中】
-p:列出所有shell賦予程序的環境變量
pwd——顯示當前工作目錄
語法: pwd [OPTION]..
history——命令歷史??
語法:BASH BUILTIN COMMANDS ???
常用方法:
-c: 清空命令歷史
-d offset:刪除指定命令歷史
從304位置開始刪除5條歷史記錄
~]# history -d 304 5
-r: 從文件讀取命令歷史至歷史列表(內存)中
-w:把歷史列表中的命令追加至歷史文件(內存)中
history #:顯示最近的#條命令
shutdown——關機或重啟命令
語法:shutdown [OPTION…] [TIME] [WALL…] ?
常用方法:
OPTIONS:
-h:halt——將系統關機
-r:reboot——重啟系統
-c:cancel——取消關機
shutdown -r 重啟
shutodwn -h 關機
shutdown -c 取消計劃關機
TIME:設置多久時間后執行shutdown指令
now
hh:mm
+m
+0
shutdown +0 馬上關機
shutdown +1 一分鐘后關機
shutdown -X X分鐘后關機
shutdown 20:00 今天20:00關機
poweroff——關機
語法: poweroff [OPTION]…
常用方法:
-n:關閉操作系統時不執行sync操作
-w:不真正關閉操作系統?????
-d:關閉操作系統時,不將操作寫入日志文件 ???
-f:強制關閉系統 ?????
-i:關閉系統之前關閉所有的網絡接口 ?????
-h:關閉操作系統之前將系統中所有的操作設置為備用模式
reboot——重啟
語法:reboot [OPTION]…
常用方法: ???
-d:重新開機時不把數據寫入數據文件/var/tmp/wtmp ???
-f:強制重新開機,不調用shutdown指令的功能 ???
-i:在重開機之前,先關閉所有網絡界面 ?????
-n:重開機之前不檢查是否有未結束的程序 ???
-w:僅做測試,并不真正將系統重新開機,只會把重開機的數據寫入/var/log目錄下的wtmp記錄文件
hwclock——硬件時鐘
語法: hwclock [functions] [options]
常用方法: ??
–adjust:校正目前的硬件時鐘
–debug:顯示hwclock執行時詳細的信息 ??
–hctosys:將系統時鐘調整與當前的硬件時鐘一致
–set –date=<日期與時間>:設定硬件時鐘 ?
–show:顯示硬件時鐘的時間與日期 ????
–systohc:將硬件始終調整為與當前的系統時鐘一致 ???
–test:測試程序 ?????
–utc:使用格林威治時間
–version:顯示版本信息
date——顯示日期時間
語法:date [OPTION]… [+FORMAT] ????
常用方法: ???????
-d<“字符串”>:顯示字符串所指的日期與時間 ????
-s<“字符串”>:根據字符串設置的日期與時間 ???????
+FORMAT:格式符??????
參數 |
作用 |
%t |
跳格[TAB鍵] |
%H |
小時(00-23) |
%I |
小時(00-12) |
%M |
分鐘(00-59) |
%S |
秒(00-59) |
%X |
相當于%H:%M:%S |
%Z |
顯示時區 |
%p |
顯示本地AM或PM |
%A |
星期幾 (Sunday-Saturday) |
%a |
星期幾 (Sun-Sat) |
%B |
完整月份 (January-December) |
%b |
縮寫月份 (Jan-Dec) |
%d |
日(01-31) |
%j |
一年中的第幾天(001-366) |
%m |
月份(01-12) |
%Y |
完整的年份 |
%F |
相當于%Y-%m-%d |
設定日期時間:date [MMDDhhmm[[CC]YY][.ss]]
實例1
[root@localhost ~]# date 111017002017.30? #格式為date [MMDDhhmm[[CC]YY][.ss]],M表示月,D表示日,h表示時,m表示分,C和Y表示年份,s表示秒
實例2
[root@localhost ~]# date +%F??????? #顯示當前年月日,格式與%D不一樣
2017-11-10
[root@localhost ~]# date +%D??????? #顯示當前年月日
11/10/17
實例3
[root@localhost ~]# date +%H-%M-%S???? #顯示當前時間
17-11-10
Note:date命令顯示的是系統時間
5、如何在Linux系統上獲取命令的幫助信息,請詳細列出,并描述man文檔的章節是如何劃分
內部命令:help COMMAND
外部命令:
(1) 命令自帶簡要格式的使用幫助
# COMMAND –help
(2) 使用手冊:manual
位置:/usr/share/man
# man COMMAND
SECTION:
NAME:功能性說明
SYNOPSIS:語法格式
DESCRIPTION:描述
OPTIONS:選項
EXAMPLES:使用示例
AUTHOR: 作者
BUGS: 報告程序bug的方式
SEE ALSO: 參考
…
SYNOPSIS:
[]:可選內容;
<>:必須提供的內容;
a|b|c:多選一;
…:同類內容可出現多個;
使用手冊:壓縮格式的文件,有章節之分;
/usr/share/man
man1, man2, …
1:用戶命令(普通管理員和管理員都可以運行的命令);
2:系統調用;
3:C庫調用;
4:設備文件及特殊文件;
5:文件格式;(配置文件格式)
6:游戲使用幫助;
7:雜項;
8:管理工具及守護進行;
9:含糊的內核規范和接口
~]# man CHAPTER COMMAND
注意:并非每個COMMAND在所有章節下都有手冊;
查看命令在那些章節有幫助:
~]# whatis COMMAND
注意:whatis其執行過程是查詢數據庫進行的;
手動更新數據庫:
~]# makewhatis
man命令打開手冊以后的操作方法:
翻屏 |
文本搜索 |
退出 |
選項 |
空格鍵:向文件尾翻一屏; b: 向文件首部翻一屏; Ctrl+d:向文件尾部翻半屏; Ctrl+u:向文件首部翻半屏; 回車鍵:向文件尾部翻一行; k: 向文件首部翻一行; G:跳轉至最后一行; #G: 跳轉至指定行; 1G:跳轉至文件首部; |
/keyword:從文件首部向文件尾部依次查找;不區分字符大小寫 ?keyword:從文件尾部向文件首部依次查找 n: 與查找命令方向相同 N: 與查找命令方向相反 |
q: quit |
-M /PATH/TO/SOMEDIR: 到指定目錄下查找命令手冊并打開之; |
6、請羅列Linux發行版的基礎目錄名稱命名法則及功能規定
Linux是以樹形目錄結構的形式來構建系統的。雖然本質上無論是目錄結構還是操作系統內核都是存儲在磁盤上的,但從邏輯上來說 Linux的磁盤是“掛在”(掛載在)目錄上的,每一個目錄不僅能使用本地磁盤分區的文件系統,也可以使用網絡上的文件系統。
1.FHS 標準(英文:Filesystem Hierarchy Standard 中文:文件系統層次結構標準)
FHS 定義了系統中每個區域的用途、所需要的最小構成的文件和目錄同時還給出了例外處理與矛盾處理。 FHS 定義了兩層規范,第一層是, / 下面的各個目錄應該要放什么文件數據,例如 /etc 應該要放置設置文件,/bin 與 /sbin 則應該要放置可執行文件等等。 第二層則是針對 /usr 及 /var 這兩個目錄的子目錄來定義。例如 /var/log 放置系統登錄文件、/usr/share 放置共享數據等等。
/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,全局共享的只讀數據路徑;
bin, sbin
lib, lib64
include:C程序頭文件;
share:命令手冊頁和自帶文檔等架構特有的文件的存儲位置
local:另一個層級目錄;
X11R6:X-Window程序的安裝位置
src:程序源碼文件的存儲位置
/usr/local:Local hierarchy,讓系統管理員安裝本地應用程序;也通常用于安裝第三方程序;
/var:/var Hierarchy,存儲常發生變化的數據的目錄;
cache???????????? Application cache data
lib???????????????????? Variable state information
local???????????????????? Variable data for /usr/local
lock???????????????????? Lock files
log????????????????Log files and directories
opt????????????????Variable data for /opt
run????????????????Data relevant to running processes
spool???????????????????? Application spool data
tmp????????????????Temporary files preserved between system reboots
/proc:基于內存的虛擬文件系統,用于為內核及進程存儲其相關信息;它們多為內核參數,例如net.ipv4.ip_forward, 虛擬為net/ipv4/ip_forward, 存儲于/proc/sys/, 因此其完整路徑為/proc/sys/net/ipv4/ip_forward; /sys:sysfs虛擬文件系統提供了一種比proc更為理想的訪問內核數據的途徑;其主要作用在于為管理Linux設備提供一種統一模型的的接口;
2.目錄路徑
路徑
使用 cd 命令可以切換目錄,在 Linux 里面使用 . 表示當前目錄,.. 表示上一級目錄, – 表示上一次所在目錄,~ 通常表示當前用戶的”home”目錄。使用 pwd 命令可以獲取當前所在路徑(絕對路徑)。
(注意,以 . 開頭的文件都是隱藏文件,所以這兩個目錄必然也是隱藏的,你可以使用 ls -a 命令查看隱藏文件)
絕對路徑:以根”/”目錄為起點的完整路徑,以你所要到的目錄為終點,表現形式如: /usr/local/bin
相對路徑:相對路徑,也就是相對于你當前的目錄的路徑,相對路徑是以當前目錄 . 為起點,以你所要到的目錄為終點,表現形式如: usr/local/bin (這里假設你當前目錄為根目錄)。
提示:在進行目錄切換的過程中請多使用 Tab 鍵自動補全,可避免輸入錯誤,連續按兩次Tab可以顯示全部候選結果
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/89223
贊,圖文并茂~特別是思維導圖的總結,對后續復習很有幫助,繼續加油。