第一周課程練習
1、描述計算機的組成及其功能?
1.1 現代主流的計算機(馮·諾依曼體系)主要由五部分組成,分別是控制器、運算器、存儲器、輸入和輸出設備??刂破骱瓦\算器對應我們現實計算機看到的CPU,存儲器對應內存和硬盤等存儲設備,輸入設備對應鼠標鍵盤等其它外設,輸出設備對應顯示器、音響、打印機等其它外設。
1.2 控制器、運算器、存儲器、輸入和輸出設備功能如下:
1.2.1 控制器:控制器是整個計算機的樞紐,其功能是對程序規定的控制信息進行解釋,根據其要求進行控制,調度程序、數據、地址,協調計算機各部分工作及內存與外設的訪問等。
1.2.2 運算器:運算器的功能是對數據進行各種算術運算和邏輯運算,即對從控制器取來的數據進行加工處理。
1.2.3 存儲器:存儲器的功能是存儲程序、數據和各種信號、命令等信息,并在需要時提供這些信息。
1.2.4 輸入設備:輸入設備的作用是將程序、原始數據、文字、字符、控制命令或現場采集的數據等信息輸入到計算機。
1.2.5 輸出設備:把計算機的中間結果或最后結果、機內的各種數據符號及文字或各種控制信號等信息輸出出來。
2、按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別?
2.1 linux主流的三大原始發行版分別是,slackware、debian、redhat;當然還有一些其它的獨立發行版如,ArchLinux、Gentoo等……
2.1.1 slackware
slackware是現存的最古老的linux發行版,對于配置人員的技術性要求較高,是一款高靈活性和高透明性的linux發行版。它的二次發行版是SUSE Linux,是一款歐洲非常出名的linux系統,它的衍生發行版是OpenSUSE,是一款完全免費的linux發行版,它們之間的關系就像RHEL和Fedora一樣相輔相成。
2.1.2 debian
Debian GNU/Linux,簡稱Debian,一款Linux發行版,是為數極少的純社區驅動的Linux發行版,優點是相對于其它linux版本穩定性較好,對硬件的性能要求較低,但是開發速速相對保守,無法將最新的技術囊獲進來,版本更新周期較慢(每一到三年才會推出一個穩定版本)。它的二次發行版是ubuntu系統,ubuntu擁有較為優美的圖形界面,如果只是從普通用戶的角度,其良好的界面可以說是linux界的Windows。ubuntu每6個月發布一個新版本。ubuntu之下還有一個mint linux發行版,該版本也有一定名氣。在國外使用debian和Ubuntu作為企業服務器或者個人計算機的用戶較多。
2.1.3 redhat
redhat的主流發行版是RHEL,即Red Hat Enterprise Linux的縮寫,是Red Hat公司的Linux系統。RHEL是國內用的比較多的一套linux發行版,該版本廣泛應用于企業服務器,注重性能和穩定性以及對硬件的支持,每18個月發行一個新版本。紅帽公司為了支持RHEL的發展,對原本的桌面版Red Hat Linux(已停止支持)發行套件與來自開源社區的 Fedora 合并,成為 Fedora Core 發行版本,許多新的技術都會在Fedora中檢驗,如果穩定的話紅帽公司則會考慮加入RHEL中,其實可以這么認為,Fedora就是Red Hat發行Red Hat企業版linux的一個實驗版本,拿用戶做測試,為Red Hat企業版發布做基礎。CentOS是RHEL的二次編譯版本,除了logo標志其它組件基本和RHEL相同,由于RHEL里面的一部分代碼是開源的,所以CentOS是合法的。使用CentOS可以獲得與RHEL一樣的功能和性能,其命令行下的人性化做得比較好,穩定,有著強大的英文文檔與開發社區的支持。在網上有大量關于CentOS的文檔支持和教學視頻,適合想從事linux工作的初學者學習。
3、描述Linux的哲學思想,并按照自己的理解對其進行解釋性描述?
3.1 一切皆文件。
在linux上,幾乎所有資源,包括硬件設備組織都是以為文件格式存在;
3.2 單一目的的小程序。
linux系統是由由眾多單一目的小程序組成,每一個程序只實現一個功能,可以通過組合多個小程序完成復雜任務;
3.3 使用純文本文件保存配置信息。
linux系統使用使用文本編輯器即能完成系統配置工作;
3.4 盡量避免跟用戶交互。
實現腳本編程,以自動完成某些功能;
3.5 提供機制,而非策略。
所謂機制就是“提供什么功能”;策略就是“實現什么功能”。這種獨特的設計思想為設計者提供了更大的 空間使其更好的實現它;
PS,從別的博客摘抄:在Linux 內核中有這樣一個概念,它是這樣描述的“每個線程都在等待其他線程持有的鎖,但是絕沒有一個線程會釋放它們一開始就持有的鎖,所以沒有任何鎖會釋放后被其 他線程使用。這種類型的死鎖叫做致命擁抱(deadly embrace)?!逼鋵嵾@段描述語言的例子在我們現實中是經常存在的。例如:有甲乙兩人,一開始甲有一個蘋果,乙有一個橘子(姑且這樣比喻,這時甲非常想要一個橘子,而乙非常想要一個蘋果(將這種“非常想 要”夸張的理解為如果得不到各自所需要的水果,兩人可能會die),但同時兩人又都不想放棄其已擁有的水果,結果兩人只能同時終結自己的“完美人生”。人何嘗不是如此呢?握著手中已有的東西,又想得到新的東西,卻又不肯放棄自己已得的東西,最后的結果只能是“一無所有”。我一直相信,世界是處在一種守恒的狀態,得到的和失去的是成正比的。可能你正在經歷失敗,但是你得到了教訓和經驗;可能你正處于人生的失落的狀態,但是你卻得到前所未有的機會去認真審慎自己;可能你的人生是非常不幸的人,但是你卻成為了最有故事的人。我從不相信有什么好運,因為幸運只能是一時的,而非一世。
4、說明Linux系統上命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相應的示例來闡述?
4.1 命令使用格式:
COMMAND [OPTIONS……] [ARGUMENTS……] 選項:啟用或關閉命令的某個或某些功能; 短選項:-c,例如:-l,-h 個短選項可合并使用,例如-l -h,可寫出-lh 長選項:--word例如: --long,--human-readable 參數:命令的作用對象,向命令提供數據:
4.2 ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用格式及實例
4.2.1 ifconfig:查看和配置網絡接口IP,掩碼,網關等信息;
命令格式:ifconfig [網絡設備] [參數]
常用參數:
up 啟動指定網絡設備/網卡。
down 關閉指定網絡設備/網卡。該參數可以有效地阻止通過指定接口的IP信息流,如果想永久地關閉一個接口,我們還需要從核心路由表中將該接口的路由信息全部刪除。
arp 設置指定網卡是否支持ARP協議。
-promisc 設置是否支持網卡的promiscuous模式,如果選擇此參數,網卡將接收網絡中發給它所有的數據包
-allmulti 設置是否支持多播模式,如果選擇此參數,網卡將接收網絡中所有的多播數據包
-a 顯示全部接口信息
-s 顯示摘要信息(類似于 netstat -i)
add 給指定網卡配置IPv6地址
del 刪除指定網卡的IPv6地址
<硬件地址> 配置網卡最大的傳輸單元
mtu<字節數> 設置網卡的最大傳輸單元 (bytes)
netmask<子網掩碼> 設置網卡的子網掩碼。掩碼可以是有前綴0x的32位十六進制數,也可以是用點分開的4個十進制數。如果不打算將網絡分成子網,可以不管這一選項;如果要使用子網,那么請記住,網絡中每一個系統必須有相同子網掩碼。
使用實例:
1、顯示活躍的網絡設備信息
root@CentOS6 ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:DA:5A:22 inet addr:10.201.106.129 Bcast:10.201.106.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:feda:5a22/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:126389 errors:0 dropped:0 overruns:0 frame:0 TX packets:88796 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:74922060 (71.4 MiB) TX bytes:10006606 (9.5 MiB) Interrupt:19 Base address:0x2000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:8712 errors:0 dropped:0 overruns:0 frame:0 TX packets:8712 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:766876 (748.9 KiB) TX bytes:766876 (748.9 KiB)
2、啟動和關閉網卡
[root@CentOS6 ~]#ifconfig eth0 up [root@CentOS6 ~]#ifconfig eth0 down
3、配置網卡IP地址等信息
[root@CentOS6 ~]#ifconfig eth0 192.168.120.56 netmask 255.255.255.0 broadcast 192.168.120.255
4、顯示所有網絡接口,包括down掉的
[root@CentOS6 ~]#ifconfig -a
4.2.2 echo:顯示器上顯示一段文字,一般起到一個提示的作用。
命令格式: echo [ -n ] 字符串
常用參數:
-n 不要在最后自動換行
-e 若字符串中出現以下字符,則特別加以處理,而不會將它當成一般文字輸出:
\a 發出警告聲;
\b 刪除前一個字符;
\c 最后不加上換行符號;
\f 換行但光標仍舊停留在原來的位置;
\n 換行且光標移至行首;
\r 光標移至行首,但不換行;
\t 插入tab;
\v 與\f相同;
\\ 插入\字符;
\nnn 插入nnn(八進制)所代表的ASCII字符;
–help 顯示幫助
–version 顯示版本信息
使用實例:
1、默認輸出
[root@CentOS6 ~]# echo qq qq
2、不換行輸出
[root@CentOS6 ~]# echo -e \nqq nqq
3、取消轉義字符
[root@CentOS6 ~]# echo -e \nqq /*\n默認是換行的意思*/ nqq
4.2.3 tty:輸出連接到系統的設備名,如ssh,或者console口直連。
[root@CentOS6 ~]# tty /dev/pts/2
4.2.4 startx:打開一個X(圖形)會話。
[root@CentOS6 ~]#starx &
4.2.5 export:設置或顯示環境變量。
命令格式:export [-fnp][變量名稱]=[變量設置值]
參數:
-f 代表[變量名稱]中為函數名稱。
-n 刪除指定的變量。變量實際上并未刪除,只是不會輸出到后續指令的執行環境中。
-p 列出所有的shell賦予程序的環境變量。
使用實例:
1、查看環境變量
[root@CentOS6 ~]# export $PATH -bash: export: `/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin'
2、定義環境變量(重啟失效)
export PATH="$PATH:/NEW_PATH"
4.2.6 pwd:輸出當前工作目錄。
命令格式:pwd [選項]
參數:
-L:目錄連接鏈接時,輸出連接路徑
-P:輸出物理路徑
使用實例:
1、顯示當前路徑
[root@CentOS6 ~]# pwd /root
2、顯示當前物理路徑
[root@CentOS6 ~]# cd /etc/init.d/ [root@CentOS6 init.d]# [root@CentOS6 init.d]# pwd -P /etc/rc.d/init.d [root@CentOS6 init.d]# [root@CentOS6 init.d]# pwd /etc/init.d
3、顯示鏈接路徑
[root@CentOS6 init.d]# pwd -L /etc/init.d [root@CentOS6 init.d]# pwd /etc/init.d
4.2.7 history:主要用于顯示歷史指令記錄內容, 下達歷史紀錄中的指令。
命令格式:history [n]
參數:
n:數字,要列出最近的 n 筆命令列表
-c :將目前的shell中的所有 history 內容全部消除
-a :將目前新增的history 指令新增入 histfiles 中,若沒有加 histfiles,則預設寫入~/.bash_history
-r :將 histfiles 的內容讀到目前這個 shell 的 history 記憶中
-w :將目前的 history 記憶內容寫入 histfiles。Linux系統當你在shell(控制臺)中輸入并執行命令時,shell會自動把你的命令記錄到歷史列表中
使用實例:
1、顯示歷史中最近的#條命令
[root@CentOS6 ~]# history 5 1034 man pwd 1035 man history 1036 type history 1037 history --help 1038 history 5
2、調用歷史中的命令
!#:重復執行第#條指令: !!:上一條命令 !string:最近一個已字串開頭的命令 調用上一條命令的最后一個參數: !$: ESC,. Alt+.
4.2.8 shutdown:安全關閉或者重新啟動系統。
命令格式:shutdown [選項]… 時間
參數:
now:現在關機
+m:幾分鐘后關機
+hh:mm:指定指令下達之后一天內某個小時分鐘關機
-k:不要真的關機,只是發送警告信息出去! -r:在將系統的服務停掉之后就重新啟動(常用) -h:將系統的服務停掉后,立即關機。 (常用) -n:不經過init程序,直接以shutdown的功能來關機 -c:取消已經在進行的shutdown命令內容。
使用實例:
1、立刻關機
# shutdown -h now
2、指定系統10分鐘后關機
# shutdown -h +10
3、系統30分鐘后重啟
# shutdown -r +30
4、僅發出告警信息
# shutdown -k now 'This system will reboot'
4.2.9 poweroff:最簡單的關機命令。
命令格式:poweroff [選項]…
參數:
-f:強制關機,不調用shutdown程序
-p:斷電停機,默認參數;
-w:只是顯示關機警告,不調用shutodnw命令,記錄寫到/var/log/wtmp
使用實例:關機
[root@CentOS6 ~]# poweroff /*為了系統安全重啟或關機推薦用init或者shutdown*/
4.2.10 reboot:默認重啟系統,不調用shutdonw命令關閉相應進程。
命令格式:reboot [選項]…
參數:
-f:強制重啟,不調用shutdown程序
-p:斷電重啟,默認參數;
-w:只是顯示關機警告,不調用shutodnw命令,記錄寫到/var/log/wtmp
使用實例:重啟
[root@CentOS6 ~]# reboot /*為了系統安全重啟或關機推薦用init或者shutdown*/
4.2.11 hwclock:顯示和設置硬件時鐘。
命令格式:hwclock [功能] [選項]
參數:
-s,–hctosys:將系統時鐘調與目前硬件時鐘一致;
-w,–systohc:將硬件時鐘調與目前系統時鐘一致;
–set –date=<日期與時間>:設定硬件時鐘;
–debug:顯示hwclock執行時詳細的信息;
–utc:若要使用格林威治時間,請加入此參數,hwclock會執行轉換的工作;
使用實例:
1、查看當前的硬件日期和時
[root@CentOS6 ~]# hwclock
2015年11月12日 星期四 15時17分10秒 -0.458630 seconds
2、將系統時鐘調與目前硬件時鐘一致
[root@CentOS6 ~]# hwclock --hctosys
4.2.12 date:顯示或設定系統的日期與時間。
命令格式:date [參數]… [+格式]
參數
必要參數:
%H 小時(以00-23來表示)。
%I 小時(以01-12來表示)。
%K 小時(以0-23來表示)。
%l 小時(以0-12來表示)。
%M 分鐘(以00-59來表示)。
%P AM或PM。
%r 時間(含時分秒,小時以12小時AM/PM來表示)。
%s 總秒數。起算時間為1970-01-01 00:00:00 UTC。
%S 秒(以本地的慣用法來表示)。
%T 時間(含時分秒,小時以24小時制來表示)。
%X 時間(以本地的慣用法來表示)。
%Z 市區。
%a 星期的縮寫。
%A 星期的完整名稱。
%b 月份英文名的縮寫。
%B 月份的完整英文名稱。
%c 日期與時間。只輸入date指令也會顯示同樣的結果。
%d 日期(以01-31來表示)。
%D 日期(含年月日)。
%j 該年中的第幾天。
%m 月份(以01-12來表示)。
%U 該年中的周數。
%w 該周的天數,0代表周日,1代表周一,異詞類推。
%x 日期(以本地的慣用法來表示)。
%y 年份(以00-99來表示)。
%Y 年份(以四位數來表示)。
%n 在顯示時,插入新的一行。
%t 在顯示時,插入tab。
MM 月份(必要)
DD 日期(必要)
hh 小時(必要)
mm 分鐘(必要)
ss 秒(選擇性)
選擇參數:
-d<字符串> 顯示字符串所指的日期與時間。字符串前后必須加上雙引號。
-s<字符串> 根據字符串來設置日期與時間。字符串前后必須加上雙引號。
-u 顯示GMT。
使用實例:
1、顯示今天為周幾
[root@CentOS6 ~]# date +%A 星期日
2、設定當前系統時間
[root@CentOS6 ~]# date -s "2016/6/26 19:30" 2016年 06月 26日 星期日 19:30:00 CST
3、顯示今天的日期,形如:08/15/15?
[root@CentOS6 ~]# date +%D 06/26/16
4、顯示月份和日數
[root@CentOS6 ~]# date '+%T%n%D' 19:31:59 06/26/16
5、如何在Linux系統上獲取命令的幫助信息,請詳細列出,并描述man文檔的章節是如何劃分的?
5.1 命令分為內部命令和外部命令。
內部命令:當我們登錄Linux系統時便處于某個shell中。而隸屬于這個已經打開的shell程序的命令就是我們說的內部命令了;
外部命令:在系統的某個路徑一個與命令名稱對應的可執行文件的命令。我們可以用which+Command(命令名)查找命令的位置。
我們使用type + COMMAND(命令名):可以來區分命令是內部命令或外部命令。
[root@CentOS6 ~]# type cd cd is a shell builtin /*內置命令*/ [root@CentOS6 ~]# type ls ls is aliased to `ls --color=auto' /*外部命令*/
5.2 命令幫助獲取的方法
內部命令:#help COMMAND
外部命令:
(1)使用 –help
格式:#命令名 –help
(2)使用手冊(manual)
格式: #man COMMAND
(3)info命令可以獲取在線幫助文檔,通常 info 命令是作為 man 命令的補充;
格式:#info COMMAND
(4)程序自身的幫助文檔
通常在存放在目錄 /usr/share/doc,如README,INSTALL,ChangeLog;
(5)程序官方文檔
官方站點:Documentation
(6)Linux發行版的官方文檔
(7)Google
5.3 man詳細使用方法
5.3.1 man命令分段機制:manual 手冊是分章節的;man # Command (#表示章節號)
數字"1":可執行命令或shell命令 數字"2":系統調用(functions provided by the kernel) 數字"3":C語言庫函數 數字"4":設備或特殊文件(通常在/dev下) 數字"5":文件格式和規則(例如/etc/passwd) 數字"6":游戲 數字"7":雜項(宏、包及其他雜項) 數字"8":系統管理員相關的命令(通常只給root)
5.3.2 man手冊中常用的段落說明:
NAME:簡短的指令,數據名稱的說明; SYNOPSIS: 簡短的指令下達語法(syntax)簡介; SYNOPSIS: []:可選內容 a|b:二選一 <>:必選內容 ……:同一內容出現多次 {}:定界,只對哪些內容2選1,或多選1,輔助符號; DESCRIPTION:較為完整的功能介紹; OPTIONS:針對SYNOPSIS部分中,有列舉的所有可用的選項說明; COMMANDS:當這個程序(軟件)在執行的時候,可以在此程序(軟件)中下達的指令; FILES:這個程序或數據所使用或參考或連結到的某些檔案; SEE ALSO:可以參考的,跟這個指令或數據有相關的其他說明; EXAMPLE:一些可以參考的范例; AUTHOR:作者 BUGS:是否有相關的漏洞; 一般看看EXAMPLE,再看看OPTIONS就可以,如果還不能解決問題,再SEE ALSO。
5.3.3 man命令的簡單操作方法:
Space,^V,^f,^F:向文件尾翻屏操作; b,^B:向文件首部翻屏; d,^D:向文件尾部翻半屏; u,^U:向文件首部翻半屏; RETURN or ^N or e or ^E or j or ^J:向文件尾部翻一行; y or ^Y or ^P or k or ^K:向文件首部翻一行; q:退出; #:跳轉至第#行;鍵入數字直接回車,跳到第幾行 1G:回到文件首部 G:翻至文件尾部 文本搜索: /keyword: 以KEYWORD指令的字符串為關鍵字,從當前位置向文件尾部搜索:不區分字符大小寫; n:向下翻,下一個 N:向上繼續查,上一個 ?KEYWORD 以KEYWORD指令的字符串為關鍵字,從當前位置向文件首部搜索:不區分字符大小寫; n:跟搜索命令相同方向,下一個 N:跟搜索命令相反方向,上一個
6、請羅列Linux發行版的基礎目錄名稱命名法則及功用規定
6.1常用linux目錄如下:
/boot:引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader,grub)都存放于此目錄; /bin【普通用戶命令】:供所有用戶使用的基本命令;不能關聯至獨立分區,OS啟動即會用到的程序; /sbin【管理員命令】:管理類的基本命令,不能關聯至獨立分區,OS啟動即會用到的程序; lib:基本共享庫文件,以及內核模塊文件(/lib/modules),幾乎所有的應用程序都須用這些共享庫; /lib64:專用于x86_64系統上的輔助共享庫文件存放位置; /etc【Host-specific system configuration】:配置文件目錄(純文本文件),這個目錄用來存放系統 管理所需要的配置文件和子目錄; /etc/opt,/etc/X11,/etc/sgml,/etc/xml /home/USERNAME:普通用戶家目錄; /root:管理員的家目錄, /mediea:便攜式移動設備掛載點;如cdrom、usb /mnt:臨時文件系統掛載點; dev:設備文件及特殊文件存儲位置; b:block device,隨機訪問; c:character device,線性訪問; /opt:第三方應用程序的安裝位置; /srv:系統上運行的服務用到的數據; /tmp:臨時文件存放位置; /usr【universal shared,read-only data】:包含bin,include,lib,local,sbin,share目錄 /usr/bin:保證系統擁有完整功能而提供的應用程序; /usr/sbin:保證系統擁有完整功能而提供的應用程序,管理員級別; /usr/lib:基本共享庫文件 /usr/lib64:專用于x86_64系統上的輔助共享庫文件存放位置 /usr/include:C程序的頭文件存放位置(header files); /share:結構化的獨立的數據,例如doc,man等; /local:第三方應用程序的安裝位置; 同樣包含bin,sbin,lib64,lib,etc,share等目錄 /var【variable date file】:這個目錄存放那些不斷擴充的東西,為了保持usr的相對穩定, 那些經常被修改的目錄可以放在這個目錄下; /cache:應用程序緩存數據目錄; /lib:應用程序狀態信息數據; /local:專用于為/usr/local下的應用程序存儲可變數據; /lock:鎖文件; /log:日志目錄及文件; /opt:專用于為/usr/local下的應用程序存儲可變數據; /run:運行中的進程相關的數據;通常用于存儲進程pid文件; /spool:應用程序數據池; /tmp:保存系統兩次重啟之間產生的數據; /proc:用于輸出內核與進程信息相關的虛擬文件系統; /sys:用于輸出當前系統上硬件設備相關信息的虛擬文件系統; /selinux:security enhanced Linux,selinux相關的安全策略等信息的存儲位置; /lost+found:這個目錄平時是空的,當系統不正常關機后,這里就是一些無家可歸文件的避難所; /proc:這個目錄是一個虛擬目錄,它是系統內存映射,我們可以直接通過訪問這個目錄來獲取系統信息。也就 是說,這個目錄的內容不在硬盤上而是在內存中; Linux上的應用程序的組成部分: 二進制程序:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin 庫文件:/lib:/lib64:/usr/lib:/usr/lib64:/usr/local/lib:/usr/local/lib64 配置文件:/etc:/etc/DIRECTORY:/usr/local/etc 幫助文件:/usr/share/man:/usr/share/doc:/usr/local/share/man:/usr/local/share/doc
原創文章,作者:Net21_仲樂,如若轉載,請注明出處:http://www.www58058.com/20216
寫的很好,排版也很漂亮,加油
@馬哥教育:謝謝,還有很多不足可以改進的,以后會做的更好的;