馬哥教育網絡班21期 第一周課程練習
一、計算機的組成
1、計算機主要由以下幾部分組成:運算器 控制器 存儲器(編址存儲單元)、 輸入、輸出設備
2、運算器負責運算:只能做二進制的數學、邏輯運算,
控制器:控制由哪得到數據,放到哪去,協調運算器、存儲器、輸入、輸出等設備
運算器、控制器整合到一起就是常說的中央處理器,也就是CPU。
3、存儲器負責數據存儲,由內存(RAM)、硬盤、U盤、光盤、軟盤等組成,其中內存的讀寫速度最快,最接近CPU的運算速度(不算CPU的緩存),但內存的容量較小造價高,而且斷電后數據會丟失。
硬盤:主數據存儲,也可以叫數據倉庫,它的容量較大,讀寫速度比內存慢,但比其它的存儲要快,硬盤容量可以根據需要擴展。
U盤:便攜式存儲,容量現在比光盤大,讀寫速度比光盤要快,主要是使用方便,小巧,易攜帶。
光盤:在U盤出現之前是容量比較大的便攜存儲工具,分為兩種,一種是只能寫一次,可反復讀?。灰环N是可多次擦除,寫入,可反復讀取,不過每重寫一次都會丟失一部分容量。
軟盤現在已經基本不用。
4、輸入/輸出設備:也是人機交互工具,
輸入設備:告訴CPU要處理什么,怎么處理,比較常見的有鍵盤、鼠標、掃描儀等;
輸出設備:CPU運算完成后告訴我們處理結果,常見的有顯示器、打印機等。
二、Linux的發行版
Linux目前分三個主流發行版
1、slackware
slackware有很多二次發行版,主要有,suse,基于suse三次開發的有 opensuse(開源)、SLES(企業級)
2、debian
debian是最接進原始Linux的發行版,對使用者要求較高。
debian的二次發行版有ubuntu,基于ubuntu的三次發行版有mint
3、redhat
redhat分為企業版 rhel,rhel發行比較保守,大約18個左右發行一個新版本,后續支持可長達10提左右。
個人版:fedora 主要用于測試軟件、硬件,發行很快,大約6個月發行一次。
CentOS是rhel的二次編譯版本,適用于服務器,穩定,但發行較慢。
三、Linux的哲學思想
Linux的開發,主要是至力于提供一種完全開源、完全免費的平臺及應用,通過GPL、LGPL、BSD等協定,Linux應用迅速發展,取之開源,用之開源。
Linux的主要特點:
1、自由:Linux是一個完全自由的軟件,它可以自由下載、自由學習、自由改編、自由分發等。
2、文件:Linux是以文件為基本的系統,它的幾乎一切資源皆文件,包括硬件資源都是由文件組成。
3、單一:Linux是由功能單一的小程序組成,它的小程序只為實現一個功能,要求功能要準確。
4、交互:Linux盡量避免跟用戶交互,它通過編輯腳本自動實現所需功能;
5、文本:Linux所有文件皆是文本格式,可以通過合適的文本編輯器編輯,也就是用一個適合的文本編輯器就可以實現系統配置。
四、Linux 命令 (強行終止命令:ctrl+c;輸出分屏顯示命令(管道命令):|more)
1、Linux 命令格式
COMMAND [options] [arguments]
命令的選項、參數所使用符號的含義:
[] :可省略之內容
<> : 必須提供
a|b : 二選一,或多選一
1) COMMAND: 表示命令的名稱, 如 ifconfig、ls 、help
命令分為內部命令和外部命令
內部命令:當前shell自帶的命令,且通過某命令格式提供
外部命令:當前系統下的某一目錄中有此命令的可執行文件
查看內、外命令:# type COMMAND (命令名)
如:
注:命令要求在命令提示符(#)后直接寫,不能有其它字符在命令前面!
2) options:定義命令的執行特性,打開或關閉某些功能,可以有長短兩種選項:
長選項: 用 — 引導,后面跟完整的單詞,如 –help
短選項: 用 – 引導,后面跟單個的字符, 如 -a
多個短選項可以組合使用,例如:
-h -l -a -hla
但是長選項不能組合使用,如 –help后面就不能再跟另外一個單詞了。
注意,命令與選項,選項與選項之間,選項與參數之間,參數與參數之間必須有空格!
3) arguments:表示命令的作用對象,向命令提供數據
如:ls /etc/shells
/etc/shells 就是ls 命令的作用對象。
注意:取消命令執行、強行中止命令用Ctrl + C 鍵
2、常用命令
1)ifconfig:查看和配置網絡設備
(1)命令格式:ifconfig [網絡接口] [參數]
(2)命令選項:
up 啟動指定網絡設備/網卡。
down 關閉指定網絡設備/網卡。該參數可以有效地阻止通過指定接口的IP信息流,如果想永久地關閉一個接口,我們還需要從核心路由表中將該接口的路由信息全部刪除。
arp 設置指定網卡是否支持ARP協議。
-promisc 設置是否支持網卡的promiscuous模式,如果選擇此參數,網卡將接收網絡中發給它所有的數據包
-allmulti 設置是否支持多播模式,如果選擇此參數,網卡將接收網絡中所有的多播數據包
-a 顯示全部接口信息
-s 顯示摘要信息(類似于 netstat -i)
add 給指定網卡配置IPv6地址
del 刪除指定網卡的IPv6地址
<硬件地址> 配置網卡最大的傳輸單元
mtu<字節數> 設置網卡的最大傳輸單元 (bytes)
netmask<子網掩碼> 設置網卡的子網掩碼。掩碼可以是有前綴0x的32位十六進制數,也可以是用點分開的4個十進制數。如果不打算將網絡分成子網,可以不管這一選項;如果要使用子網,那么請記住,網絡中每一個系統必須有相同子網掩碼。
tunel 建立隧道
dstaddr 設定一個遠端地址,建立點對點通信
-broadcast<地址> 為指定網卡設置廣播協議
-pointtopoint<地址> 為網卡設置點對點通訊協議
multicast 為網卡設置組播標志
address 為網卡設置IPv4地址
txqueuelen<長度> 為網卡設置傳輸列隊的長度
(3)示例
A:顯示網絡配置信息(當前活動的網卡)
# ifconfig
顯示eth0的MAC地址,IP地址、網關、子網等信息
B:開、關網絡端口
# ifconfig eth0 down/up
# ifconfig eth0 down
當網卡關閉后,直接執行ifconfig 命令無法顯示已關閉的網卡信息,只有加上eth0參數后才能顯示關閉的網卡信息
# ifconfig eth0 up
網卡打開后,ifconfig可以直接顯示配置信息
C:修改MAC地址:
# ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
注意:ifconfig 修改的配置信息,只在系統重啟前有效,如果想保存配置信息,需要修改配置文件。
2)echo:顯示字符
(1)命令格式:echo [-ne][字符串]
(2)命令選項:
-n:顯示字符串不換行
-e:對字符轉譯,若字符串中出現以下字符,則特別加以處理,而不會將它當成一般
文字輸出:
\a 發出警告聲;
\b 刪除前一個字符;
\c 最后不加上換行符號;
\f 換行但光標仍舊停留在原來的位置;
\n 換行且光標移至行首;
\r 光標移至行首,但不換行;
\t 插入tab;
\v 與\f相同;
\\ 插入\字符;
\nnn 插入nnn(八進制)所代表的ASCII字符;
(3)示例
A:輸出字符,最后有回車鍵(換行)
#echo aaaaa
B:輸出字符,最后沒有回車鍵(不換行)
#echo -n aaaaa
C:輸出字符前插入TAB鍵
#echo -e "\taaaaa"
3) tty:命令用于顯示終端機連接標準輸入設備的文件名稱
(1)命令格式 :tty [-s]
(2)命令選項:
-s :不顯示任何信息,只回傳狀態代碼
(3)示例:
A:顯示當前在那個模擬終端下
命令:#tty
4)startx:初始化一個 X 會話(啟動圖形界面)
(1)命令格式:
startx [ -d Display:0 ] [ -t | -w ] [ -x Startup | [ -r Resources ] [ -m Window_Manager ] ] [ -wait ]
(2)命令選項:
-d Display :0 指定在啟動過程中傳遞給 X 客戶機的 X 服務器的顯示名稱。
-m Window_Manager 當未找到 startup 腳本時,啟動窗口管理器。
-r Resources 當未找到 startup 腳本時,裝入資源文件。
-t 為一個 X 終端啟動 X 客戶機。
-w 為工作站上的 X 窗口會話啟動 X 服務器和 X 客戶機。
-wait 當 xdm 命令調用 startx 時,防止重新啟動 X 會話。
-x Startup 使用 startup 腳本啟動 X 窗口會話。
(3)示例
A:在工作站或終端上啟動X會話:
命令:startx
注意:
1、如果已經啟動了startx ,再輸入命令會報錯,只能啟動一個圖形界面,這時可用ctrl+alt+f7(f1-f7)來切換圖形/命令界面
2、如果想關閉圖形界面可以在命令界面輸入:init <1-6>,1到6不同,可以上網上學習下
5)export:設置或顯示環境變量
(1)命令格式:export [-fnp][變量名稱]=[變量設置值] (變量修改只對當前登錄有效)
(2)參數:
-
-f 代表[變量名稱]中為函數名稱。
-
-n 刪除指定的變量。變量實際上并未刪除,只是不會輸出到后續指令的執行環境中。
-
-p 列出所有的shell賦予程序的環境變量。
(3)示例
A:顯示當前shell環境變量:
命令:#export [p]
B:修改變量
命令:export PWD="mage"
注意:用export命令通常顯示的結果會出現分屏顯示,這時就要用到管道命令 [|more],這個參數的作用就是將輸出結果分屏顯示,用空格翻頁,命令格式如下:
#export |more
6)pwd:查看”當前工作目錄“的完整路徑
(1)命令格式:pwd [選項]
(2)選項
一般情況下不帶任何選項或參數
如果目錄是鏈接時:
格式:pwd -P 顯示出實際路徑,而非使用連接(link)路徑。
(3)示例
A:顯示當前路徑
命令:pwd
7)history:顯示輸入過的歷史命令
(1)命令格式:history [選項]
Linux系統當你在shell(控制臺)中輸入并執行命令時,shell會自動把你的命令記錄到歷史列表中,一般保存在用戶目錄下的.bash_history文件中。默認保存1000條,你也可以更改這個值。如果你鍵入 history, history會向你顯示你所使用的前1000個歷史命令,并且給它們編了號,你會看到一個用數字編號的列表快速從屏幕上卷過。你可能不需要查看1000個命令中的所有項目, 當然你也可以加入數字來列出最近的 n 筆命令列表。linux中history命令不僅僅讓我們可以查詢歷史命令而已. 我們還可以利用相關的功能來幫我們執行命令。運行特定的歷史命令history會列出bash保存的所有歷史命令,并且給它們編了號,我們可以使用“!接編號”的方式運行特定的歷史命令.
(2)選項:
n :數字,要列出最近的 n 筆命令列表
-c :將目前的shell中的所有 history 內容全部消除
-a :將目前新增的history 指令新增入 histfiles 中,若沒有加 histfiles,則預設寫入 ~/.bash_history
-r :將 histfiles 的內容讀到目前這個 shell 的 history 記憶中
-w :將目前的 history 記憶內容寫入 histfiles
(3)示例:
A:顯示所有應用過的命令
命令格式:#history |more (太多,用管道命令分屏顯示)
B:顯示最后20條命令:
命令格式:#history 20
C:重復執行第278條命令:
命令格式:!278
8)shutdown
(1)命令格式:shutdown [-efFhknr][-t 秒數][時間][警告信息]
(2)選項:
-c 取消一項已經運行關機命令。
-f 重新啟動時不執行fsck。
-F 重新啟動時執行fsck。
-h 將系統關機。
-k 只是送出信息給所有用戶,但不會實際關機。
-n 不調用init程序進行關機,而由shutdown自己進行。
-r shutdown之后重新啟動。
-t<秒數> 送出警告信息和刪除信息之間要延遲多少秒。
[時間] 設置多久時間后執行shutdown指令,時間格式是hh:mm,now是立即執行。
[警告信息] 要傳送給所有登入用戶的信息。
(3)示例:
A:15分鐘后重啟
命令:shoutdown -r +15 "restart in 15 min"
B:終止15分鐘重啟命令(注意:如果不是用ctrl+c 強行終止程序,就需要切換到其它模擬終端輸入命令)
命令:shoutdown -c
C:向用戶輸出警告信息,但不關機
命令:shoutdown -k now "Server would shutdown in 15 min!"
9)poweroff:關閉計算機操作系統并且切斷系統電源
(1)命令格式:poweroff [選項]
(2)選項:
-n, –no-sync 在做重起或關機時不做同步處理
-f, –force 不論主機處于何種狀態均強制立即關機。
-p, –poweroff 在做關機時,關閉電源
-w, –wtmp-only 實際上并不重新啟動或停止,只是寫wtmp紀錄
-q, –quiet 只顯示錯誤信息
-v, –verbose 輸出運行過程中的詳細信息
–help 顯示幫助信息
–version 顯示版本信息
(3)示例:
立即關機:#poweroff
10)reboot:重啟系統
(1)命令格式:reboot [選項]
(2)選項:
-f 強制重新開機,不調用shutdown指令的功能。
-i 在重開機之前,先關閉所有網絡界面。
-p 在關機后暫時關閉電源再啟動(相當于冷啟動,檢測硬件)
-n 重開機之前不檢查是否有未結束的程序。
-w 僅做測試,并不真的將系統重新開機,只會把重開機的數據寫入/var/log目錄下的wtmp記錄文件。
(3)示例:
A:重啟系統(熱啟,不檢測硬件)
命令: #reboot
B:重啟系統(冷啟動,檢測硬件)
命令:#reboot -p
11)hwclock:顯示與設定硬件時鐘
在Linux中有硬件時鐘與系統時鐘等兩種時鐘。硬件時鐘是指主機板上的時鐘設備,也就是通??稍贐IOS畫面設定的時鐘。系統時鐘則是指kernel中的時鐘。當Linux啟動時,系統時鐘會去讀取硬件時鐘的設定,之后系統時鐘即獨立運作。所有Linux相關指令與函數都是讀取系統時鐘的設定。
(1)命令格式:hwclock [–adjust][–debug][–directisa][–hctosys][–show][–systohc][–test]
[–utc][–version][–set –date=<日期與時間>]
(2)選項:
–adjust hwclock每次更改硬件時鐘時,都會記錄在/etc/adjtime文件中。使用–adjust參數,可使hwclock根據先前的記錄來估算硬件時鐘的偏差,并用來校正目前的硬件時鐘。
–debug 顯示hwclock執行時詳細的信息。
–directisa hwclock預設從/dev/rtc設備來存取硬件時鐘。若無法存取時,可用此參數直接以I/O指令來存取硬件時鐘。
–hctosys 將系統時鐘調整為與目前的硬件時鐘一致。
–set –date=<日期與時間> 設定硬件時鐘。
–show 顯示硬件時鐘的時間與日期。
–systohc 將硬件時鐘調整為與目前的系統時鐘一致。
–test 僅測試程序,而不會實際更改硬件時鐘。
–utc 若要使用格林威治時間,請加入此參數,hwclock會執行轉換的工作。
–version 顯示版本信息。
(3)示例:
A:顯示當前硬件時鐘
命令:hwclock
B:同步系統時鐘
命令:#hwclock –systohc
12)date:顯示或設置系統時間與日期
(1)命令格式:date [選項] [參數]
(2)選項:
-d<字符串>:顯示字符串所指的日期與時間。字符串前后必須加上雙引號;
-s<字符串>:根據字符串來設置日期與時間。字符串前后必須加上雙引號;
-u:顯示GMT;
–help:在線幫助;
–version:顯示版本信息。
(3)參數:
<+時間日期格式>:指定顯示時使用的日期時間格式。
%H 小時,24小時制(00~23)
%I 小時,12小時制(01~12)
%k 小時,24小時制(0~23)
%l 小時,12小時制(1~12)
%M 分鐘(00~59)
%p 顯示出AM或PM
%r 顯示時間,12小時制(hh:mm:ss %p)
%s 從1970年1月1日00:00:00到目前經歷的秒數
%S 顯示秒(00~59)
%T 顯示時間,24小時制(hh:mm:ss)
%X 顯示時間的格式(%H:%M:%S)
%Z 顯示時區,日期域(CST)
%a 星期的簡稱(Sun~Sat)
%A 星期的全稱(Sunday~Saturday)
%h,%b 月的簡稱(Jan~Dec)
%B 月的全稱(January~December)
%c 日期和時間(Tue Nov 20 14:12:58 2012)
%d 一個月的第幾天(01~31)
%x,%D 日期(mm/dd/yy)
%j 一年的第幾天(001~366)
%m 月份(01~12)
%w 一個星期的第幾天(0代表星期天)
%W 一年的第幾個星期(00~53,星期一為第一天)
%y 年的最后兩個數字(1999則是99)
(4)示例:
A:顯示當前系統時間
命令:#date
五、如何在Linux系統上獲取命令的幫助信息,請詳細列出,并描述man文檔的章節是如何劃分的
1、在Linux 命令的獲取命令幫助
1)內部命令:
查看命令是內部還是外部:#type command
內部命令獲取幫助:help command [|more]
示例:
2)外部命令獲取幫助
(1)簡單命令幫助
命令格式:command [-h] 或 command [–help]
如果help文檔過長或超出一屏顯示,可以命令后加管道命令:|more,分屏顯示
命令格式:command [-h] | more 或 command [–help] |more
示例:
A:ls –help:
只能看到結尾。
B:ls –help |more
分屏查看,按空格鍵翻頁。
(2)使用命令幫助手冊查看命令幫助
命令格式:man command
示例:man reboot
(3)信息頁方式查看命令幫助
命令格式:info command
示例 info reboot
(4)程序的幫助文檔
A:readme:程序介紹文檔
B:install:安裝文檔
C:changelog:修改信息
(5)程序官方文檔
官方網站:documentation中有詳細的說明
(6)發行版的官方文檔
(7)google
3)man文檔的章節是如何劃分的
man1:用戶命令
man2:系統調用
man3:C庫調用
man4:設備文件及特殊文件
man5:配置文件格式
man6:游戲
man7:雜項
man8:管理類命令
章節內部分類:
NAME:程序名
SYNOPSIS:概要
DESCRIPTION:應用描述
OPTIONS:選項
ENVIRONMENT:環境
FILES:命令日志
AUTHOR:作者
REPORTING BUGS:BUGS報告
COPYRIGHT:版權
SEE ALSO :其它命令
UPSTART:程序時間
六:linux目錄結構:
1、/:根目錄
2、/bin: 系統有很多放置執行檔的目錄,但/bin比較特殊。因為/bin放置的是在單人維護模式下還能夠被操作的指令。在/bin底下的指令可以被root與一般帳號所使用。
主要有:cat,chmod(修改權限), chown, date, mv, mkdir, cp, bash等等常用的指令。
3、/boot :主要放置開機會使用到的文件,包括Linux核心文件以及開機選單與開機所需設定檔等等。
4、 /dev: 在Linux系統上,任何裝置與周邊設備都是以文件的型態存在于這個目錄當中。只要通過存取這個目錄下的某個文件,就等于存取某個裝置。
比較重要的文件有/dev/null, /dev/zero, /dev/tty , /dev/lp*, / dev/hd*, /dev/sd*等等
5、/etc:系統主要的設定檔幾乎都放置在這個目錄內,例如人員的帳號密碼檔、各種服務的啟始檔等等。 一般來說,這個目錄下的各文件屬性是可以讓一般使用者查閱的,但是只有root有權力修改。
比較重要的文件有:
/etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/。
另外,其下重要的目錄有:
/etc/init.d/ :所有服務的預設啟動script都是放在這里的。
6、/home:這是系統預設的用戶目錄(home directory)。
在你新增一個一般用戶帳號時,預設的用戶都會放到這里來。比較重要的是,用戶目錄有兩種代號:
~ :代表當前用戶,而 ~guest:則代表用戶名為guest的用戶目錄。
7、/lib: 系統的函數庫非常的多,而/lib放置的則是在開機時會用到的函數庫,以及在/bin或/sbin底下的指令會呼叫的函數庫 。
8、/media:media是媒體的英文,顧名思義,這個/media底下放置的就是可移除的裝置。包括軟碟、光碟、DVD等等裝置都暫時掛載于此。
常見的文件名有:/media/usb, /media/cdrom。
9、/mnt: 如果妳想要暫時掛載某些額外的裝置。
10、/opt:這個是給第三方軟件放置的目錄 。
11、/root:系統管理員(root)目錄。
12、/sbin Linux有非常多指令是用來設定系統環境的,這些指令只有root才能夠利用來設定系統,其他用戶最多只能用來查詢而已。放在/sbin底下的為開機過程中所需要的,里面包括了開機、修復、還原系統所需要的指令。
13、/srv:srv可以視為service的縮寫,是一些網路服務啟動之后,這些服務所需要取用的資料目錄。 常見的服務例如WWW, FTP等等。
14、/tmp:這是讓一般使用者或者是正在執行的程序暫時放置文件的地方。這個目錄是任何人都能夠存取的,所以需要定期的清理一下。
原創文章,作者:泥人,如若轉載,請注明出處:http://www.www58058.com/21974
寫的很好,排版還可以在漂亮一點,就不要截黑屏上來了,加油