計算機的組成及其功能
計算機硬件主要由5部分組成:運算器
、控制器
、存儲器
、input
、output
。
但是這和我們平時見到的計算機不一樣?我們平時見到的計算機有CPU,內存,硬盤,顯示器,鼠標鍵盤,顯卡、主板等。
這些東西也都歸在以上五類設備中。下面我們簡單介紹一下計算機這五個組成部分。
運算器:
運算器是計算機中做運算的部分,可以執行各種指令,加減乘除,與或非等,是真正用來計算的部分。
運算器處在計算機的CPU中,是CPU 的重要組件。CPU的運算能力是計算機的重要指標。
控制器
控制器主要是用來控制總線的使用權限,完成控制內存的訪問等。
存儲器
存儲器對應的就是計算機組成部分中的內存,臨時存放正在運行的數據和指令用的。
也叫RAM(randon access memory) ,因為是臨時存儲器,斷電后所有數據會消失。
Input
Input并不是計算機運行的核心部件,只是為了方便人類生產生活環境,適應人類操作計算機的
方式而出現的輸入設備。包括硬盤,鼠標,鍵盤,掃描儀,攝像機等,都是輸入設備。
Output
Output并不是計算機運行的核心部件,只是為了方便人類生產生活環境,適應人類操作計算機的方式而出現的輸入設備。
包括硬盤,顯示器,音箱等,都是輸出設備。
PC常見硬件理解
CPU
:
一個CPU中包含了計算機的2個部分,運算器和控制器,同時CPU中還包含了寄存器和緩存。
剛剛我們已經講過運算器和控制器的功能。
那寄存器和緩存又是干什么用的呢?寄存器和緩存都是用來存儲數據的,
存取速度,
因為計算機的處理速度很快,而數據的輸入輸出會成為計算機運算的瓶頸,
所以可以提前把可能要用的數據
先放在緩存和寄存器中,這樣方便運算器運算的時候直接讀取,而不需要再到內存中取。
所以我們可以知道寄存器,緩存,內存、硬盤的速度應該是逐漸下降的,
寄存器運行速度最快。這2個家伙只是加速用的,不是核心部件。
內存
:內存對應的就是計算機組成部分中的存儲器,存放正在執行數據。
硬盤,鼠標鍵盤等
:
這些都是input設備,包括掃描機等,這些就不是計算機的核心部件了,只是人類為了輸入數據或指令而發明的input設備。
據而已,斷電也還在,不像RAM。所以他是input/output設備。
顯示器,音箱等
:
這些都是output設備,這些就不是計算機的核心部件了,只是人類為了輸出數據不同形式而發明的output設備。
主板
:
為了更好的連接各個組成部分而制造的一塊電路板。
顯卡
:
是一個CPU+內存的集合體,只是因為各項指標更適合圖形處理,主要處理圖形任務??梢钥闯蒔C里的另一套計算系統。
Linux發行版本
Linux雖然提供kernel源代碼,但是大部分人無法將其編譯并拼湊成
操作系統,同樣也不會安裝任何應用程序
。所以就有公司或組織將其源代碼和GNU組織的應用程序打包編譯成二進制可執行文件,這就是linux的發行版。
到現在為止Linux已經存在數百個發行版本,主流的有三種Debian
,Slackware
,Red Hat
。
Debian
目前唯一一個還以網絡社區方式運行的發行版本,這個發行版本限制更少,更開放,當然使用難度也更大。
Debian的發行及其軟件源有五個分支:舊穩定分支(oldstable)、
穩定分支(stable)、測試分支(testing)、不穩定分支(unstable)、實驗分支(experimental)。
Debian以穩定性聞名,所以蠻多點服務器使用Debian作為其操作系統。
-
Ubuntu:Debian的衍生版本,主要在用戶界面努力,希望統一個人桌面和手機桌面
他的衍生版本還有mint,在圖形化界面的優化也比較優秀。主要用戶群體在歐洲。 -
knopix:Debian的二次發行版。Knoppix的硬件支援極佳,即使是較新的產品,很多時都可以正常運用。
但是Knoppix對中日韓環境的支援極差,在系統預建的漢字字型檔里,錯字、缺字連篇,字體比例亦不成比例。 -
kali:Debian的二次發行版,集成了很多滲透工具,黑客必玩。
Slackware
Slackware其實是SLS的分支,但是SLS曇花一現,后期主要衍生版本由Slackware衍生。它力圖成為“UNIX風格”的Linux發行版本,
只吸收穩定的應用程序。設計理念“KISS”,Keep it Simple, Stupid。
-
S.u.S.E:SlackWare的發行版。OpenSUSE是其衍生版本。openSUSE在全世界
,尤其是在德國被廣泛使用。它的開發重心是為軟件開發者和系統管理者創造適用的開放源代碼的工具,
并提供易于使用的桌面環境和功能豐富的服務器環境。
openSUSE針對桌面環境進行了一系列的優化,對Linux新手較為友好。
Red Hat
主要由Red Hat公司發行,非常主流。 Red Hat Enterprise Linux:Red Hat的二次發行版,服務費昂貴。 Centos:基于RHEL的二次發行版本,完全兼容RHEL,現在被紅帽收購。
其他主流發行版
Gentoo
,Archlinux
,Fedora
Linux的哲學思想
-
一切皆文件:linux系統將所有資源抽象為文件,硬件設備,通信接口等也通過文件表示。這樣管理整個系統或修改配置系統
其實就變成的文件管理工作。 -
一個程序只做一件事情:linux系統由眾多功能單一的小程序組成,復雜任務通過程序組合完成。
這樣帶來的好處是:1小程序不容易出錯 2大程序出錯時很容易排查,你可以分析每一部分過程。 -
程序啟動盡量不和人交互:希望以編程的方式實現自動化,另一個是人總是比機器容易出錯,盡量減少人的參與。
-
文本保存配置信息:用最基本的編輯工具就能完成。備份,閱讀都比較方便。熟悉配置之后就能快速部署。
Linux命令使用格式
linux命令的基本格式: COMMAND [OPTION] [FILE] [string]
linux命令最左側為命令本身。并由空格隔開。
[OPTION]選項為命令運行的可調整項??梢愿鄠€選項,有些選項需要跟參數,
參數可能是文件,也可能是字符串。
命令后可能需要跟參數,也可能不跟參數。參數可能是文件,也可能是字符串。
基本命令介紹
ifconfig
這個命令是用來配置和查看網卡信息用的。
[root@localhost ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:32:B0:C8 inet addr:192.168.17.128 Bcast:192.168.17.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe32:b0c8/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5710 errors:0 dropped:0 overruns:0 frame:0 TX packets:4259 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:536342 (523.7 KiB) TX bytes:765653 (747.7 KiB) Interrupt:67 Base address:0x2024 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:16436 Metric:1 RX packets:3454 errors:0 dropped:0 overruns:0 frame:0 TX packets:3454 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:5223176 (4.9 MiB) TX bytes:5223176 (4.9 MiB) [root@localhost ~]#
echo
回顯命令
-n:回顯不進行換行
-e:讓轉譯符生效,\n換行,\t制表符
[root@localhost ~]# echo "hello world" hello world [root@localhost ~]# echo -n "hello world" hello world[root@localhost ~]# [root@localhost ~]# echo -e "hello world" hello world [root@localhost ~]# echo -e "hello \nworld" hello world [root@localhost ~]# echo -e "hello \tworld" hello world [root@localhost ~]# echo "hello \tworld" hello \tworld [root@localhost ~]# echo $SHELL /bin/bash [root@localhost ~]#
tty
查看登錄信息。
物理終端返回:/dev/console
虛擬終端返回:/dev/tty#[1-6]
串行終端返回:/dev/pts/#
[root@localhost ~]# tty /dev/pts/1 [root@localhost ~]#
startx
切換至GUI接口
export
用于設置或顯示環境變量。
[root@localhost ~]# export -p declare -x CVS_RSH="ssh" declare -x G_BROKEN_FILENAMES="1" declare -x HISTSIZE="1000" declare -x HOME="/root" declare -x HOSTNAME="localhost.localdomain" declare -x INPUTRC="/etc/inputrc" declare -x LANG="en_US.UTF-8" declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s" declare -x LOGNAME="root" declare -x LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:" declare -x MAIL="/var/spool/mail/root" declare -x OLDPWD="/home/gentoo" declare -x PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin" declare -x PWD="/root" declare -x SHELL="/bin/bash" declare -x SHLVL="1" declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass" declare -x SSH_CLIENT="192.168.17.1 65424 22" declare -x SSH_CONNECTION="192.168.17.1 65424 192.168.17.128 22" declare -x SSH_TTY="/dev/pts/1" declare -x TERM="vt100" declare -x USER="root" [root@localhost ~]# export SHLVL="7" [root@localhost ~]# export -p declare -x CVS_RSH="ssh" declare -x G_BROKEN_FILENAMES="1" declare -x HISTSIZE="1000" declare -x HOME="/root" declare -x HOSTNAME="localhost.localdomain" declare -x INPUTRC="/etc/inputrc" declare -x LANG="en_US.UTF-8" declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s" declare -x LOGNAME="root" declare -x LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:" declare -x MAIL="/var/spool/mail/root" declare -x OLDPWD="/home/gentoo" declare -x PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin" declare -x PWD="/root" declare -x SHELL="/bin/bash" declare -x SHLVL="7" declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass" declare -x SSH_CLIENT="192.168.17.1 65424 22" declare -x SSH_CONNECTION="192.168.17.1 65424 192.168.17.128 22" declare -x SSH_TTY="/dev/pts/1" declare -x TERM="vt100" declare -x USER="root" [root@localhost ~]#
pwd
顯示當前目錄
[root@localhost ~]# pwd /root [root@localhost ~]#
history
顯示歷史命令信息。
[root@localhost ~]# history 10 659 who -a 660 who -r 661 clock 662 w 663 man w 664 w -v 665 w -V 666 w -h 667 w -s 668 history 10 [root@localhost ~]# [root@localhost ~]#
相關環境變量:
-
HISTSIZE:命令保存命令的數量
-
HISTFILE:命令的保存路徑,只有用戶登出事才會保存
-
HISTFILESIZE:文件的大小,說明只能保存1000條,超出的會將之前的頂掉
-c:清空內存中的歷史狀態
-d offset N:批量刪除N個指定歷史命令 history -d 676 5
-r:從history文件中讀回到內存
-a: 從內存中寫到history文件
-w:把歷史列表中的命令追加到歷史文件中
History N:顯示最近N條命令
!#再一次執行第#條命令
??!再一次執行上一條命令
!STRING再一次執行命令列表中往前追溯以STRING開頭的命令
shutdown
關閉算計。
SYNOPSIS:/sbin/shutdown [-t sec] [-arkhncfFHP] time [warning-message]
-h:halt -r:reboot -c:cancel
TIME:
now
hh:mm
+m
WALL
[root@localhost ~]# shutdown 20:00 "warnning" Shutdown cancelled. [root@localhost ~]#
poweroff
關閉計算機。
reboot
重啟計算機。
hwclock
查看或設定硬件時鐘。
[root@localhost ~]# hwclock --set --date="9/14/16 14:21:30" [root@localhost ~]# [root@localhost ~]# hwclock Wed 14 Sep 2016 02:21:37 PM PDT -0.016205 seconds [root@localhost ~]# hwclock -s [root@localhost ~]# date Wed Sep 14 14:22:24 PDT 2016 [root@localhost ~]# hwclock -s [root@localhost ~]# hwclock Wed 14 Sep 2016 02:22:30 PM PDT -0.016007 seconds [root@localhost ~]#
date
顯示和設置系統時間
SYNOPSIS
date [OPTION]… [+FORMAT] 顯示時間
date [MMDDhhmm[[CC]YY][.ss]] 設定時間,月日時分年秒
[root@localhost ~]# date Tue Sep 13 23:08:39 PDT 2016 [root@localhost ~]# date 091414102016.45 Wed Sep 14 14:10:45 PDT 2016 [root@localhost ~]# date Wed Sep 14 14:10:49 PDT 2016 [root@localhost ~]#
如何在linux上獲取幫助
-
help COMMAND命令可以獲取幫助,但是只能查詢內建命令。
-
COMMAND –help命令可以查外部命令。
-
man COMMAND手冊查詢
-
whatis COMMAND 命令能顯示在man哪里找,但是并不一定所有命令都能用,需要手動更新數據庫,通過makewhatis
-
info COMMAND獲取在線文檔
man文件內容分布
-
第一章用戶命令
-
第二章系統調用
-
第三章C庫調用
-
第四章設備文件&特殊文件
-
第五章文件格式(配置文件格式說明)
-
第六章游戲說明
-
第七章雜項
-
第八章管理工具和守護進程說明
linux發行版基礎目錄
-
/bin:供所有用戶使用的基礎命令程序文件。
-
/sbin:供管理員使用的命令程序文件。
-
/boot:引導加載器必須用到的各種靜態文件:kernel,initramfs(initrd),grub等。
-
/dev:存儲特殊文件或設備文件;設備有2種類型,字符設備(也叫線性設備,如鍵盤)和塊設備(也叫隨機設備,如硬盤)
-
/etc:主機特有配置文件,大部分都是文本文件。不能為二進制文件。至少有/opt子目錄。
-
/home:是可選目錄,普通用戶家目錄的集中位置。每個普通用戶的家目錄默認與用戶名同名。
-
/root:管理員的家目錄,可選。
-
/lib:為系統啟動或根文件上的應用程序(bin/sbin)提供共享庫,為內核提供內核模塊。
ld*:運行時鏈接器/加載器;
ibc.so.* 動態鏈接C庫;
modules: 用于存儲內核模塊的目錄;
-
/lib64: 64位系統特有存放64位共享庫的路徑。
-
/media: 為便攜性設備提供掛載點。cdrom
-
/mnt: 其他文件系統的臨時掛載點。
-
/opt:附加應用程序的安裝位置;可選路徑;
-
/srv:主機特有的為服務提供的數據。
-
/tmp:為那些會產生臨時文件的程序提供用于存儲零時文件的目錄
-
/usr:獨立層級結構,全局共享的只讀數據路徑。其下目錄文件有:
bin
include:C程序頭文件
lib(lib64)
local:獨立層級結構,用戶真正安裝本地應用的路徑。其下也有bin,sbin,man,share……
sbin
share:命令手冊也和自帶文檔等架構特有的文件存儲位置。
X11R6:X-Window程序安裝位置。
src:程序源碼文件的存儲位置。
-
/var:存儲常發生變化的數據的目錄。其下目錄文件有:
cache: application cache data
lib: Variable state information
local: variable data for /usr/local
lock: lock file
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
Edit By MaHua
原創文章,作者:Theo,如若轉載,請注明出處:http://www.www58058.com/46745
看的出來,很認真的在做了,希望可以繼續保持