1. 程式人生 > 實用技巧 >計算機概述

計算機概述

進入計算機的世界

計算機

計算機(computer)俗稱電腦,是能夠按照程式執行,自動、高速出爐海量資料的現代化智慧電子裝置。由硬體系統和軟體系統所組成,計算機的組成遵循馮諾依曼體系。可分為超級計算機、工業控制計算機、網路計算機、個人計算機和嵌入式計算機等五類,較先進的計算機有生物計算機、光子計算機、量子計算機等。

馮諾依曼體系

1945年6月約翰·馮·諾依曼與戈德斯坦、勃克斯等人,聯名發表了一篇長達101頁紙的報告《First Draft of a Report on the EDVAC》,即計算機史上著名的“101頁報告”。在報告中馮·諾伊曼明確提出了計算機的體系架構

從1951年第一臺電子計算機EDVAC開始,計算機經歷了多次的更新換代,不管是最原始的、還是最先進的計算機,使用的仍然是馮·諾依曼最初設計的計算機體系結構。

因此馮·諾依曼被世界公認為“計算機之父”,他設計的計算機系統結構,稱為“馮諾依曼體系結構”。

計算機的功能及其組成

根據馮諾依曼體系構成的計算機必須具有如下功能:


    • 把需要的程式和資料送至計算機中。

    • 必須具有長期記憶程式、資料、中間結果及最終運算結果的能力。

    • 能夠完成各種算術運算、邏輯運算和資料傳送等資料加工處理的能力。

    • 能夠根據需要控制程式走向,並能根據指令控制機器的各部件協調操作。

    • 能夠按照要求將處理結果輸出給使用者。


為了實現計算機的上述功能,計算機必須具備五大基本組成部件,包括:

  • 運算器:用於完成各種算術運算、邏輯運算和資料傳送等資料加工處理。

  • 控制器:用於控制程式的執行,是計算機的大腦。運算器和控制器組成計算機的中央處理器(CPU)。

  • 儲存器:用於記憶程式和資料,例如:記憶體。

  • 輸入裝置:用於將資料或程式輸入到計算機中,例如:滑鼠、鍵盤。

  • 輸出裝置:將資料或程式的處理結果展示給使用者,例如:顯示器、印表機。


wKiom1exrojwWWDrAABqAzWVczw765.png-wh_50


計算機的作業系統

作業系統(Operating System,簡稱OS),是電子計算機系統中負責支撐應用程式執行環境以及使用者操作環境的系統軟體,同時也是計算機系統的核心與基石。它的職責常包括對硬體的直接監管、對各種計算資源(如記憶體、處理器時間等)的管理、以及提供諸如作業管理之類的面向應用程式的服務等等。

作業系統大致可分為6種類型:



    1. 簡單作業系統:計算機初期所配置的作業系統;

    2. 分時系統:支援位於不同終端的多個使用者同時使用一臺計算機,且彼此獨立互不干擾;

    3. 實時作業系統:為實時計算機系統配置的作業系統;

    4. 網路作業系統:為計算機網路配置的作業系統;

    5. 分散式作業系統:為分佈計算系統配置的作業系統;

    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:這個目錄在剛剛安裝系統的時候是空的。可以將光碟機檔案系統掛在這個目錄下;

    • /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資料庫的的存放地。


wKioL1exru_ShdqWAAAkWqJ8EpM004.png-wh_50




Linux命令簡單使用

Linux命令介紹

Linux命令是對Linux系統進行管理的命令。對於Linux系統來說,無論是中央處理器、記憶體、磁碟驅動器、鍵盤、滑鼠,還是使用者等都是檔案,Linux系統管理的命令是它正常執行的核心。

Linux命令在系統中有兩種型別:內建Shell命令和外部命令。

操作命令

首先介紹一個名詞“控制檯(console)”,它就是我們通常見到的使用字元操作介面的人機介面,例如dos。

我們說控制檯命令,就是指通過字元介面輸入的可以作業系統的命令,例如dos命令就是控制檯命令。

獲得幫助

在Linux系統中可以使用help、man或info命令來獲得幫助,下面簡單介紹一下這三個命令的使用:


    • 語法格式:help [-dms] [模式 …]

    • help命令:僅用於顯示shell內部命令的幫助資訊;

選項:

-d:輸出每個主題的簡短描述

-m:以偽 man 手冊的格式顯示使用方法

-s:為每一個匹配 PATTERN 模式的主題僅顯示一個用法

[[email protected]~]#helphelp
help:help[-dms][模式...]
顯示內嵌命令的相關資訊。

    • 語法格式:man [OPTIONS] COMMAND

    • man命令:是Linux下的幫助指令,通過man可以檢視Linux中的指令幫助、配置檔案幫助和程式設計幫助等資訊;主要用於檢視外部命令的幫助資訊;

* man命令檢視幫助文件章節劃分:

wKiom1exr3nS39SlAAAnFPZxz2k270.png-wh_50

[[email protected]~]#mansleep

info命令:是Linux下info格式的幫助指令;

[[email protected]~]#infoinfo

注意:在檢視命令幫助時,會出現[],<>,|等符號,它們的含義如下:
[]:表示是可選的;
<> :表示是可變化的;
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

  • 例項:

[[email protected]~]#ifconfig
eno16777736:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu1500
inet192.168.3.12netmask255.255.255.0broadcast192.168.3.255
inet6fe80::20c:29ff:fe4a:fc3cprefixlen64scopeid0x20<link>
ether00:0c:29:4a:fc:3ctxqueuelen1000(Ethernet)
RXpackets4780bytes1140744(1.0MiB)
RXerrors0dropped0overruns0frame0
TXpackets819bytes188758(184.3KiB)
TXerrors0dropped0overruns0carrier0collisions0

lo:flags=73<UP,LOOPBACK,RUNNING>mtu65536
inet127.0.0.1netmask255.0.0.0
inet6::1prefixlen128scopeid0x10<host>
looptxqueuelen0(LocalLoopback)
RXpackets4bytes340(340.0B)
RXerrors0dropped0overruns0frame0
TXpackets4bytes340(340.0B)
TXerrors0dropped0overruns0carrier0collisions0

  • echo命令:用於在shell中列印shell變數的值,或者直接輸出制定的字串;

    • 語法:echo [SHORT-OPTION]… [STRING]…

echo LONG-OPTION

  • 例項:

[[email protected]~]#echo-e"\e[1;31mThisisredtext\e[0m"
Thisisredtext

    • tty命令:用於顯示終端機連線標準輸入裝置的檔名稱;



    • 語法:tty [OPTION]…

    • 例項:

[[email protected]~]#tty
/dev/pts/0
  • startx命令:用來啟動X window(圖形化介面);

    • 語法:startx [ [ client ] options … ] [ — [ server ] [ display ] options … ]

    • 例項:

[[email protected]~]#startx
xauth:file/root/.serverauth.3129doesnotexist
......

    • 語法:export [-fn] [名稱[=值] …] 或 export -p

    • export命令:用於將shell變數輸出為環境變數,或者將shell的函式輸出為環境變數;



    • 選項:

-f指 shell 函式

-n刪除每個 NAME 名稱的匯出屬性

-p顯示所有匯出的變數和函式的列表



    • 例項:

[[email protected]~]#export
declare-xDISPLAY="localhost:10.0"
declare-xHISTCONTROL="ignoredups"
declare-xHISTSIZE="1000"
declare-xHOME="/root"
declare-xHOSTNAME="localhost.localdomain"
declare-xKDEDIRS="/usr"
declare-xLANG="zh_CN.UTF-8"
declare-xLESSOPEN="||/usr/bin/lesspipe.sh%s"
declare-xLOGNAME="root"

    • pwd命令:以絕對路徑的方式顯示使用者工作目錄;


    • 語法:history [-c] [-d 偏移量] [n]

    • history命令:用於顯示指定數目的指令命令,讀取歷史命令檔案中的目錄到歷史命令緩衝區和將命令歷史緩衝區中的目錄寫入命令檔案;

history -anrw [檔名]

history -ps 引數 [引數…]



    • 例項:檢視最近5條歷史命令

[[email protected]~]#history5
72manpwd
73pwd
74manhistory
75history-help
76history5
  • shutdown命令:用於系統關機的命令;

    • 語法:shutdown [OPTIONS…] [TIME] [WALL…]

    • 例項:5分鐘後關機

[[email protected]~]#shutdown+5m
Broadcastmessagefrom[email protected](Sun2016-08-1417:22:20CST):

Systemwillshutdownafter5minutes
Thesystemisgoingdownforpower-offatSun2016-08-1417:26:20CST!

    • poweroff命令:用於關閉計算機作業系統並切斷計算機電源;



    • 語法:poweroff [OPTIONS…]

    • 例項:立即關閉系統

[[email protected]~]#poweroff
  • reboot命令:用來重新啟動正在執行的Linux系統;

    • 語法:reboot [OPTIONS…] [ARG]

    • 例項:重啟Linux系統

[[email protected]~]#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 除錯模式



    • 例項:檢視當前硬體日期及時間

  • [[email protected]~]#hwclock
    2016年08月14日星期日17時36分11秒-0.881272秒

    • 語法:date [選項]… [+格式]

    • date命令:顯示或設定系統時間與日期;

date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]]


    • 例項:輸出昨天的日期

[[email protected]~]#date-d"1dayago"+"%Y-%m-%d"
2016-08-13








轉載於:https://blog.51cto.com/feixiangyumao/1838871