馬哥教育網絡班22期第一周練習
計算機概述
進入計算機的世界
計算機
計算機(computer)俗稱電腦,是能夠按照程序運行,自動、高速出爐海量數據的現代化智能電子設備。由硬件系統和軟件系統所組成,計算機的組成遵循馮諾依曼體系。可分為超級計算機、工業控制計算機、網絡計算機、個人計算機和嵌入式計算機等五類,較先進的計算機有生物計算機、光子計算機、量子計算機等。
馮諾依曼體系
1945年6月約翰·馮·諾依曼與戈德斯坦、勃克斯等人,聯名發表了一篇長達101頁紙的報告《First Draft of a Report on the EDVAC》,即計算機史上著名的“101頁報告”。在報告中馮·諾伊曼明確提出了計算機的體系架構。
從1951年第一臺電子計算機EDVAC開始,計算機經歷了多次的更新換代,不管是最原始的、還是最先進的計算機,使用的仍然是馮·諾依曼最初設計的計算機體系結構。
因此馮·諾依曼被世界公認為“計算機之父”,他設計的計算機系統結構,稱為“馮諾依曼體系結構”。
計算機的功能及其組成
根據馮諾依曼體系構成的計算機必須具有如下功能:
-
把需要的程序和數據送至計算機中。
-
必須具有長期記憶程序、數據、中間結果及最終運算結果的能力。
-
能夠完成各種算術運算、邏輯運算和數據傳送等數據加工處理的能力。
-
能夠根據需要控制程序走向,并能根據指令控制機器的各部件協調操作。
-
能夠按照要求將處理結果輸出給用戶。
-
運算器:用于完成各種算術運算、邏輯運算和數據傳送等數據加工處理。
-
控制器:用于控制程序的執行,是計算機的大腦。運算器和控制器組成計算機的中央處理器(CPU)。
-
存儲器:用于記憶程序和數據,例如:內存。
-
輸入設備:用于將數據或程序輸入到計算機中,例如:鼠標、鍵盤。
-
輸出設備:將數據或程序的處理結果展示給用戶,例如:顯示器、打印機。
為了實現計算機的上述功能,計算機必須具備五大基本組成部件,包括:
計算機的操作系統
操作系統(Operating System,簡稱OS),是電子計算機系統中負責支撐應用程序運行環境以及用戶操作環境的系統軟件,同時也是計算機系統的核心與基石。它的職責常包括對硬件的直接監管、對各種計算資源(如內存、處理器時間等)的管理、以及提供諸如作業管理之類的面向應用程序的服務等等。
操作系統大致可分為6種類型:
-
簡單操作系統:計算機初期所配置的操作系統;
-
分時系統:支持位于不同終端的多個用戶同時使用一臺計算機,且彼此獨立互不干擾;
-
實時操作系統:為實時計算機系統配置的操作系統;
-
網絡操作系統:為計算機網絡配置的操作系統;
-
分布式操作系統:為分布計算系統配置的操作系統;
-
智能操作系統:指能產生人類智能行為的計算機系統;
操作系統位于底層硬件與用戶之間,是兩者溝通的橋梁。
桌面計算機典型的操作系統有:UNIX、Linux、Mac OS X、Windows等,下面主要介紹一下Linux。
Linux的簡單介紹
什么是Linux系統
Linux是一套免費使用和自由傳播的操作系統,是一個支持多用戶、多任務、多線程和多CPU的操作系統。
Linux操作系統誕生于1991 年10 月5 日。Linux存在著許多不同的Linux版本,但它們都使用了Linux內核。Linux可安裝在各種計算機硬件設備中,比如手機、平板電腦、路由器、視頻游戲控制臺、臺式計算機、大型機和超級計算機等。
Linux系統的版本
Linux的發行版是為許多不同的目的而制作, 包括對不同計算機結構的支持, 對一個具體區域或語言的本地化,實時應用,和嵌入式系統,甚至許多版本故意地只加入免費軟件。已經有超過三百個發行版被積極的開發,最普遍被使用的發行版有大約十二個。
-
Fedora Core:是一套從Red Hat Linux發展出來的免費Linux系統。Fedora Core 的前身就是Red Hat Linux。Fedora是一個開放的、創新的、前瞻性的操作系統和平臺,基于Linux。它允許任何人自由地使用、修改和重發布,無論現在還是將來。
-
Debian:它的目標是提供一個穩定容錯的Linux版本。支持Debian的不是某家公司,而是許多在其改進過程中投入了大量時間的開發人員,這種改進吸取了早期Linux的經驗。
-
Mandrake:MandrakeSoft,Linux Mandrake的發行商,在1998年由一個推崇Linux的小組創立,它的目標是盡量讓工作變得更簡單。最終,Mandrake給人們提供了一個優秀的圖形安裝界面,它的最新版本還包含了許多Linux軟件包。
-
Ubuntu:是一個以桌面應用為主的Linux操作系統,基于Debian發行版和unity桌面環境,與Debian的不同在于它每6個月會發布一個新版本。
-
Red Hat Linux:是公共環境中表現上佳的服務器。它擁有自己的公司,能向用戶提供一套完整的服務,這使得它特別適合在公共網絡中使用。這個版本的Linux也使用最新的內核,還擁有大多數人都需要使用的主體軟件包。
-
SuSE:在SuSE 操作系統下,可以非常方便地訪問Windows磁盤,這使得兩種平臺之間的切換,以及使用雙系統啟動變得更容易。
-
Linux Mint:是一份基于Ubuntu的發行版,其目標是提供一種更完整的即刻可用體驗,這包括提供瀏覽器插件、多媒體編解碼器、對DVD播放的支持、Java和其他組件。它與Ubuntu軟件倉庫兼容。Linux Mint 是一個為pc和X86電腦設計的操作系統。
-
Gentoo:是Linux世界最年輕的發行版本,正因為年輕,所以能吸取在她之前的所有發行版本的優點。由于開發者對FreeBSD的熟識,所以Gentoo擁有媲美FreeBSD的廣受美譽的ports系統 ——Portage包管理系統。
-
CentOS:是來自于Red Hat Enterprise Linux依照開放源代碼規定釋出的源代碼所編譯而成。由于出自同樣的源代碼,因此有些要求高度穩定性的服務器以CentOS替代商業版的Red Hat Enterprise Linux使用。兩者的不同,在于CentOS并不包含封閉源代碼軟件,CentOS 是一個基于Red Hat Linux 提供的可自由使用源代碼的企業級Linux發行版本。
Linux基本思想
Linux的基本思想有六點:
-
一切皆文件:就是系統中的所有都歸結為一個文件,包括命令、硬件和軟件設備、操作系統、進程等等對于操作系統內核而言,都被視為擁有各自特性或類型的文件;
-
由眾多功能單一的小程序組成:每一個程序都只做一件事,并且將其做好;
-
組合小程序完成復雜任務:將各種功能單一的小程序組合起來,完成一個或多個復雜任務;
-
文本文件保存配置信息:由于整個Linux系統都是由文件組成,包括硬件等,文本文件是最容易被系統讀取的,也方便最終用戶對系統配置;
-
盡量避免與用戶交互:可以更方便的以編程的方式實現自動化任務;
-
提供機制,而非策略:需要提供什么功能(機制)和怎樣實現這些功能(策略);
Linux文件類型,主要有以下幾類:
-
普通文件(regular file):就是一般存取的文件,由ls -al顯示出來的屬性中,第一個屬性為 [-],例如 [-rwxrwxrwx];
-
目錄文件(directory):就是目錄,第一個屬性為 [d],例如 [drwxrwxrwx];
-
連接文件(link):類似Windows下面的快捷方式。第一個屬性為 [l],例如 [lrwxrwxrwx];
-
設備與設備文件(device):與系統外設及存儲等相關的一些文件,通常都集中在 /dev目錄;
-
套接字文件(sockets):這類文件通常用在網絡數據連接??梢詥右粋€程序來監聽客戶端的要求,客戶端就可以通過套接字來進行數據通信。第一個屬性為 [s],最常在 /var/run目錄中看到這種文件類型;
-
管道文件(FIFO,pipe):FIFO也是一種特殊的文件類型,它主要的目的是,解決多個程序同時存取一個文件所造成的錯誤。FIFO是first-in-first-out(先進先出)的縮寫。第一個屬性為 [p];
Linux文件系統介紹
Linux命名規范
在Linux系統中可以使用長文件或目錄名,可以給文件及目錄取任何名字,但必須遵循以下規則:
-
除了/以外,所有字符都合法;
-
在Linux中有特殊含義的字符最好不要使用,如空格符、制表符、退格符和字符 @ # $ & ( ) – 等;
-
避免使用加減號或“.”作為普通文件名的第一個字符;
-
大小寫敏感,要嚴格區分字符大小寫;
-
Linux系統下的文件名長度最長不能超過255個字符;
Linux文件結構
Linux系統中,文件系統是由目錄及文件有效組織。
Linux系統中的目錄即為文件的路徑映射,文件即為存儲空間中存儲的一段流式數據,可以做到對數據按名索取。
文件結構的組成:
-
/:根目錄,所有的目錄、文件、設備都在/之下,/就是Linux文件系統的組織者,也是最上級的領導者;
-
/bin:bin就是二進制(binary)英文縮寫。在一般的系統當中,都可以在這個目錄下找到linux常用的命令。系統所需要的那些命令位于此目錄;
-
/boot:Linux的內核及引導系統程序所需要的文件目錄。在一般情況下,GRUB或LILO系統引導管理器也位于這個目錄;
-
/cdrom:這個目錄在剛剛安裝系統的時候是空的??梢詫⒐怛屛募到y掛在這個目錄下;
-
/dev:dev 是設備(device)的英文縮寫。這個目錄對所有的用戶都十分重要。因為在這個目錄中包含了所有linux系統中使用的外部設備。但是這里并不是放的外部設備的驅動程序;
-
/etc:etc這個目錄是linux系統中最重要的目錄之一。在這個目錄下存放了系統管理時要用到的各種配置文件和子目錄。要用到的網絡配置文件,文件系統,x系統配置文件,設備配置信息,設置用戶信息等都在這個目錄下;
-
/home:如果建立一個用戶,用戶名是"xx",那么在/home目錄下就有一個對應的/home/xx路徑,用來存放用戶的主目錄;
-
/lib:lib是庫(library)英文縮寫。這個目錄是用來存放系統動態連接共享庫的。幾乎所有的應用程序都會用到這個目錄下的共享庫。注意:千萬不要輕易對這個目錄進行什么操作,一旦發生問題,系統就不能工作了;
-
/mnt:這個目錄一般是用于存放掛載儲存設備的掛載目錄;
-
/media:掛載移動存儲設備的目錄;
-
/opt:主要存放可選的程序;
-
/proc:可以在這個目錄下獲取系統信息;
-
/root:Linux超級權限用戶root的家目錄;
-
/sbin:這個目錄是用來存放系統管理員的系統管理程序;
-
/srv:服務啟動后,所需訪問的數據目錄;
-
/tmp:臨時文件目錄;
-
/usr:這是linux系統中占用硬盤空間最大的目錄。用戶的很多應用程序和文件都存放在這個目錄下。在這個目錄下,可以找到那些不適合放在/bin或/etc目錄下的額外的工具;
-
/usr/local:主要存放手動安裝的軟件;
-
/usr/share:系統共用的東西存放地;
-
/var:這個目錄的內容是經常變動的,可以理解為vary的縮寫。/var下有/var/log 這是用來存放系統日志的目錄;/var/ www目錄是定義Apache服務器站點存放目錄;/var/lib 用來存放一些庫文件,比如MySQL的,以及MySQL數據庫的的存放地。
Linux命令簡單使用
Linux命令介紹
Linux命令是對Linux系統進行管理的命令。對于Linux系統來說,無論是中央處理器、內存、磁盤驅動器、鍵盤、鼠標,還是用戶等都是文件,Linux系統管理的命令是它正常運行的核心。
Linux命令在系統中有兩種類型:內置Shell命令和外部命令。
操作命令
首先介紹一個名詞“控制臺(console)”,它就是我們通常見到的使用字符操作界面的人機接口,例如dos。
我們說控制臺命令,就是指通過字符界面輸入的可以操作系統的命令,例如dos命令就是控制臺命令。
獲得幫助
在Linux系統中可以使用help、man或info命令來獲得幫助,下面簡單介紹一下這三個命令的使用:
-
help命令:僅用于顯示shell內部命令的幫助信息;
-
語法格式:help [-dms] [模式 …]
選項:
-d:輸出每個主題的簡短描述
-m:以偽 man 手冊的格式顯示使用方法
-s:為每一個匹配 PATTERN 模式的主題僅顯示一個用法
[root@localhost ~]# help help help: help [-dms] [模式 ...] 顯示內嵌命令的相關信息。
-
man命令:是Linux下的幫助指令,通過man可以查看Linux中的指令幫助、配置文件幫助和編程幫助等信息;主要用于查看外部命令的幫助信息;
-
語法格式:man [OPTIONS] COMMAND
* man命令查看幫助文檔章節劃分:
[root@localhost ~]# man sleep
-
info命令:是Linux下info格式的幫助指令;
[root@localhost ~]# info info
注意:在查看命令幫助時,會出現[],<>,|等符號,它們的含義如下:
[] :表示是可選的;
<> :表示是可變化的;
x|y|z :表示只能選擇一個;
-abc :表示三個參數(或任何二個)的混合使用
Linux命令使用格式
command [options] [arguments]
command:命令
options: –單詞或-單字
arguments:參數(檔案名稱或其他)
簡單命令介紹
-
ifconfig命令:被用于配置和顯示Linux內核中網絡接口的網絡參數,也可用于配置網卡信息;
-
語法:ifconfig [-v] [-a] [-s] [interface]
ifconfig [-v] interface [aftype] options | address …
inconfig
-
實例:
[root@localhost ~]# ifconfig eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.3.12 netmask 255.255.255.0 broadcast 192.168.3.255 inet6 fe80::20c:29ff:fe4a:fc3c prefixlen 64 scopeid 0x20<link> ether 00:0c:29:4a:fc:3c txqueuelen 1000 (Ethernet) RX packets 4780 bytes 1140744 (1.0 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 819 bytes 188758 (184.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 4 bytes 340 (340.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4 bytes 340 (340.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
-
echo命令:用于在shell中打印shell變量的值,或者直接輸出制定的字符串;
-
語法:echo [SHORT-OPTION]… [STRING]…
-
實例:
echo LONG-OPTION
[root@localhost ~]# echo -e "\e[1;31mThis is red text\e[0m" This is red text
-
tty命令:用于顯示終端機連接標準輸入設備的文件名稱;
-
語法:tty [OPTION]…
-
實例:
[root@localhost ~]# tty /dev/pts/0
-
startx命令:用來啟動X window(圖形化界面);
-
語法:startx [ [ client ] options … ] [ — [ server ] [ display ] options … ]
-
實例:
[root@localhost ~]# startx xauth: file /root/.serverauth.3129 does not exist ... ...
-
export命令:用于將shell變量輸出為環境變量,或者將shell的函數輸出為環境變量;
-
語法: export [-fn] [名稱[=值] …] 或 export -p
-
選項:
-f 指 shell 函數
-n 刪除每個 NAME 名稱的導出屬性
-p 顯示所有導出的變量和函數的列表
-
實例:
[root@localhost ~]# export declare -x DISPLAY="localhost:10.0" declare -x HISTCONTROL="ignoredups" declare -x HISTSIZE="1000" declare -x HOME="/root" declare -x HOSTNAME="localhost.localdomain" declare -x KDEDIRS="/usr" declare -x LANG="zh_CN.UTF-8" declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s" declare -x LOGNAME="root"
-
pwd命令:以絕對路徑的方式顯示用戶工作目錄;
-
語法:pwd [OPTION]…
-
實例:
[root@localhost ~]# pwd /root
-
history命令:用于顯示指定數目的指令命令,讀取歷史命令文件中的目錄到歷史命令緩沖區和將命令歷史緩沖區中的目錄寫入命令文件;
-
語法:history [-c] [-d 偏移量] [n]
history -anrw [文件名]
history -ps 參數 [參數…]
-
實例:查看最近5條歷史命令
[root@localhost ~]# history 5 72 man pwd 73 pwd 74 man history 75 history -help 76 history 5
-
shutdown命令:用于系統關機的命令;
-
語法:shutdown [OPTIONS…] [TIME] [WALL…]
-
實例:5分鐘后關機
[root@localhost ~]# shutdown +5 m Broadcast message from root@localhost.localdomain (Sun 2016-08-14 17:22:20 CST): System will shutdown after 5 minutes The system is going down for power-off at Sun 2016-08-14 17:26:20 CST!
-
poweroff命令:用于關閉計算機操作系統并切斷計算機電源;
-
語法:poweroff [OPTIONS…]
-
實例:立即關閉系統
[root@localhost ~]# poweroff
-
reboot命令:用來重新啟動正在運行的Linux系統;
-
語法:reboot [OPTIONS…] [ARG]
-
實例:重啟Linux系統
[root@localhost ~]# reboot
-
hwclock命令:是一個硬件時鐘訪問工具,可以用來顯示當前時間、設置硬件時鐘的時間和設置硬件時鐘為系統時間,也可以設置系統時間為硬件時鐘時間。
-
語法:hwclock [功能] [選項…]
功能:
-h, –help 顯示此幫助并退出
-r, –show 讀取硬件時鐘并打印結果
–set 將 RTC 設置為 –date 指定的時間
-s, –hctosys 從硬件時鐘設置系統時間
-w, –systohc 從當前系統時間設置硬件時鐘
–systz 基于當前時區設置系統時間
–adjust 根據自上次時鐘設置或調整后的系統漂移
來調整 RTC
-c, –compare 定期將系統時鐘與 CMOS 時鐘相比較
–getepoch 打印內核的硬件時鐘紀元(epoch)值
–setepoch 將內核的硬件時鐘紀元(epoch)值設置為
–epoch 選項指定的值
–predict 預測 –date 選項所指定時刻讀取到的 RTC 值
-V, –version 顯示版本信息并退出
選項:
-u, –utc 硬件時鐘保持為 UTC 時間
–localtime 硬件時鐘保持為本地時間
-f, –rtc <文件> 代替默認文件的特殊 /dev/… 文件
–directisa 直接訪問 ISA 總線,而非 /dev/rtc
–badyear 忽略 RTC 年份(由于 BIOS 損壞)
–date <時間> 指定要設置的硬件時鐘時間
–epoch <年> 指定作為硬件紀元(epoch)值起始的年份
–noadjfile 不訪問 /etc/adjtime;需要使用 –utc 或 –localtime 選項
–adjfile <文件> 指定調整文件的路徑; 默認為 /etc/adjtime
–test 不更新,只顯示將進行什么操作
-D, –debug 調試模式
-
實例:查看當前硬件日期及時間
[root@localhost ~]# hwclock 2016年08月14日 星期日 17時36分11秒 -0.881272 秒
-
date命令:顯示或設置系統時間與日期;
-
語法:date [選項]… [+格式]
date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]]
-
實例:輸出昨天的日期
[root@localhost ~]# date -d "1 day ago" +"%Y-%m-%d" 2016-08-13
原創文章,作者:N22-無錫-沉默,如若轉載,請注明出處:http://www.www58058.com/34989
寫的很好,排版也很棒,加油,圖畫的很好,繼續保持,沒做完把?