-
計算機的組成及其功能
計算機主要由五大部分組成:控制器、運算器、存儲器、輸入設備、輸出設備,即CPU(控制器、運算器)、內存、I/O(輸入/輸出設備)。
控制器
是整個計算機的中樞神經,其功能是對程序規定的控制信息進行解釋,根據其要求進行控制,調度程序、數據、地址,協調計算機各部分工作及內存與外設的訪問等。
運算器
對數據進行各種算術運算和邏輯運算,即對數據進行加工處理。
存儲器
存儲程序、數據和各種信號、命令等信息,并在需要時提供這些信息。
輸入設備
輸入設備是計算機的重要組成部分,輸入設備與輸出設備合稱為外部設備,簡稱外設,輸入設備的作用是將程序、原始數據、文字、字符、控制命令或現場采集的數據等信息輸入到計算機。常見的輸入設備有鍵盤、鼠標、觸摸屏等。
輸出設備
輸出設備與輸入設備同樣是計算機的重要組成部分,它把計算機的中間結果或最后結果、計算機內的各種數據符號及文字或各種控制信號等信息輸出出來。常見的輸出設備有顯示器、打印機等。
-
Linux的發行版
Linux的基礎是其內核(kernel),但是光有內核還遠不是一個完整可用的操作系統環境,是無法滿足普通用戶需求的。生產銷售Linux的組織或廠家為了方便用戶使用,將Linux系統內核與應用軟件及文檔集成在一起,提供安裝界面、系統設定、管理工具等軟件,就構成了一個發行套件,稱為發行版。相對于內核版本,發行套件的版本號是隨著發布者的不同而不同,與系統內核的版本號是相對獨立的,是由分發者自行確定的。
版本號命名規范:major(主版本號).minor(次版本號).release(修訂號)
注意:若次版本號為偶數說明此版本類型是穩定版,若次版本號為奇數則說明是測試版。The Linux Kernel Archives https://www.kernel.org
Linux發行版有數百種之多(詳細請參考鏈接),其中有三大主流版本:
Debian系——程序包管理器為dpkg,包后綴名為deb,前端管理工具是apt-get
Debian:開源社區的代表性Linux系統,每2年更新一次,現在的debian系統已經可以勝任不同的環境,無論是服務器系統還是個人操作系統都沒有問題,debian在服務器系統上出眾的穩定性使它成為了服務器系統的不二之選。
Ubuntu:基于debian的GUN/Linux,其優勢在于高度整合桌面環境,在安裝好Ubuntu之后無需任何配置即可立即投入使用,Ubuntu采用基于Gnome自主開發的桌面環境(Unity),目前來說Ubuntu對于用戶的友好度應該是最高的。
Ubuntu含有數量眾多的衍生版,只將其羅列出來,就不一一介紹了:ubuntu、Edubuntu、Xubuntu、Ubuntu Kylin、Ubuntu Server Edition、Gobuntu、Ubuntu Studio、Ubuntu JeOS、Mythbuntu、BioInfoServOS、Ebuntu、Xubuntu、Fluxbuntu、Freespire、Gnoppix、gOS、Hiweed、Jolicloud、Gubuntu、Linux Deepin、Linux Mint、Lubuntu、nUbuntu、Ubuntu CE——引用自wiki
Kali Linux:基于debian完全重建的用于滲透測試的Linux,Kali Linux預裝了多達300+的滲透測試軟件,并且Kali Linux可以輕松安裝在移動存儲設備上,基于以上特性使Kali Linux成為了從事安全方面工作者的首選。
Linux Mint是一個基于Debian和Ubuntu的Linux發行版。繼承了Ubuntu的眾多優點,并在此基礎上集成了瀏覽器插件、多媒體編解碼器、Java和其他組件。同時增加了一套定制桌面及各種菜單,一些獨特的配置工具,以及一份基于web的軟件包安裝界面,是一款免費、高效、易用、高雅的桌面操作系統。
RedHat系——程序包管理器為rpm,前端管理工具是yum,最新升級為dnf
Red Hat Enterprise Linux:簡稱RHEL,是紅帽(RedHat)公司面向企業用戶發布的Linux系統,以強大的性能以及相對于其他Linux發行版更好的穩定性和安全性而得到了更多的企業用戶的信賴。RHEL系統本身是可以免費獲取以及安裝,但是RHEL的服務卻是收費項目,(收費項目包括但不限于安全更新,技術支持,收費軟件等)。
CentOS:(Community Enterprise Operating System)中文即為:社區企業操作系統,CentOS是按照 RHEL開放的源代碼二次編譯而成,因為是由相同的源代碼編譯而成,所以在性能、安全性以及穩定性上與 RHEL完全一樣,甚至在某些方面表現得比RHEL更好,兩者的不同之處在于CentOS的初始源以及系統文件中不包含RHEL中的特有的閉源軟件。正是因為上面的這些特性使得CentOS成為了企業用戶的另一個不錯的選擇。
Fedora:Fedora同樣也是來自RedHat,可以將Fedora視為RHEL與CentOS的技術先行版,同時Fedora也是Red Hat Linux在個人桌面領域的新的應用,RatHat的各種新技術都會首先應用在Fedora上,所以選擇Fedora可以總是使用到最新的技術,Fedora目前分為Workstation、Server、Cloud三個版本。
Slackware系——程序包管理器為rpm,前端管理工具是zypper
Slackware:與其他Liunx不同的是,Slackware采用了類似unix的風格,它的方針是只吸收穩定版本的應用程序,并且缺少其他Linux版本中那些為發行版本定制的配置工具。
SUSE/Open SUSE:OpenSUSE前身即為SUSE,是一個Linux發行版與項目,由SUSE與其他公司贊助。它的開發重心是為軟件開發者和系統管理者創造適用的開放源代碼的工具,并提供易于使用的桌面環境和功能豐富的服務器環境。OpenSUSE針對桌面環境進行了一系列的優化,對Linux新手較為友好。
其他發行版
Gentoo Linux :通用、快捷、安全、強大、專業各種優勢集大成于一身的趨于完美的Linux發行版,因為其強大的可配置性,Gentoo甚至可以稱之為一個元發行版的Linux 。
Arch Linux:輕量、簡單的Linux發行版。其中“簡單”(Simplicity)被定義為“避免不必要或復雜的修改”,也就是說,是由開發者角度定義,而非用戶角度思考。Arch Linux注力于簡潔主義(對開發者而言),其貢獻在于對發行版的組件提供具有良好注釋的配置文件,而非帶有圖形界面的配置工具。這也為其贏得“適合不懼怕命令行的中高級Linux用戶”的發行版稱號?!陨险詗iki。
-
Linux的哲學思想
(1) 一切皆文件:把幾乎所有的資源統統抽象為文件形式,包括硬件設備,甚至通信接口等;
物理終端:/dev/console
虛擬終端:/dev/tty1~tty6
串行終端:/dev/ttyS#(#表示數字)
偽終端:/dev/pts/#(2) 由眾多功能單一的程序組成:一個程序只做一件事,并且做好,組合小程序完成復雜的任務;
例如,利用管道組合多個命令來實現相應的功能(3) 盡量避免跟用戶交互;
目標:以編程的方式實現自動化任務,即一個程序一旦開始運行,就不需要用戶進行任何操作(4) 使用文本文件保存配置信息
只需要一個簡單的文本編輯器就可以操作整個系統 -
Linux常用命令
命令的語法通用格式:
# COMMAND OPTIONS ARGUMENTS # 命令 選項 參數
發起一個命令:請求內核將某個二進制程序運行為一個進程COMMAND:命令本身是一個可執行的程序文件:二進制格式的文件,有可能會調用共享庫文件
OPTIONS:指定命令的運行特性
選項有兩種表現形式:
短選項:-C,例如-l,-d
注意:有些命令的選項沒有-
如果同一命令同時使用多個短選項,多數可合并:-l -d = -ld
長選項:-word,例如–help,–human-readable
注意:長選項不能合并
注意:有些選項可以帶參數,此稱為選項參數ARGUMENTS:命令的作用對象:命令對什么生效,可能是字符串,也可能是路徑
注意:不同的命令的參數:有些命令可以同時帶多個參數,多個之間以空白字符分隔ifconfig – 查看和配置網絡接口
語法格式:ifconfig [-v] [-a] [-s] [interface]
ifconfig [-v] interface [aftype] options | address …常用選項:up:啟動指定網卡 ifconfig eno# up
down:關閉指定網卡 ifconfig eno# down
-a:顯示全部接口信息
-s:顯示摘要信息,相當于 netstat -i
address:為網卡設置IPv4地址
netmask:設置網卡的子網掩碼
手動設置ip地址、子網掩碼、網關,即時生效,重啟失效:
設置ip地址和子網掩碼:ifconfig eno# 192.168.0.88 netmask 255.255.255.0
設置網關:route add default gw 192.168.0.1
修改配置文件永久生效:vi /etc/sysconfig/network-scripts/ifcfg-eno#
修改BOOTPROTO="dhcp"為BOOTPROTO="static"并添加如下配置:
IPADDR=192.168.0.86
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=223.5.5.5
DNS2=223.6.6.6
重啟網卡服務 systemctl restart network.service 即可echo – 顯示一行文本,回顯
語法格式:echo [SHORT-OPTION]… [STRING]…
echo LONG-OPTION常用選項:-n:不進行換行
-e:讓轉義符生效,轉義符以\開頭
\n:換行
\t:制表符(t為tab)
STRING可以使用引號,單引號和雙引號均可用
單引號:強引用,變量引用不執行替換
雙引號:弱引用,變量引用會被替換
tty – 顯示終端機連接標準輸入設備的文件名稱
語法格式:tty [OPTION]…查看當前終端:
注意:CentOS開機會同時啟動6個虛擬終端,使用命令Ctrl+Alt+F1~F6進行切換;圖形終端:CentOS6使用Ctrl+Alt+F7切換,CentOS7下若在哪個虛擬終端啟動圖形界面就位于哪個虛擬終端。startx – 啟動圖形終端
語法格式:startx [ [ client ] options … ] [ — [ server ] [ display ] options … ]最小化安裝的CentOS7沒有圖形界面,需自行安裝,安裝Gnome桌面命令如下:
~]$ sudo yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
安裝完成重啟系統即可
啟動圖形界面命令:startx &export – 顯示或設置環境變量
語法格式:export [-fn] [name[=value] …] or export -p常用選項:-p:列出所有的shell賦予程序的環境變量
-f:代表函數名稱
-n:刪除指定的變量。變量實際上并未刪除,只是不會輸出到后續指令的執行環境中。
新增環境變量:export name[=value],只對當前shell有效,關閉或重啟即失效。
pwd – 顯示當前工作目錄
語法格式:pwd [-LP]
history – 顯示或操作命令歷史,shell進程會在其會話中保存此前用戶提交執行過的命令
語法格式:history [-c] [-d offset] [n]
or history -anrw [filename]
or history -ps arg [arg…]
~]$ history # 顯示最近的#條命令常用選項:-c:清空命令歷史(內存中的)
-d offset(偏移量):刪除指定命令歷史
例: ~]$ history -d 153 5 刪除第153條記錄后的5條命令
-r:從文件讀取命令歷史至歷史列表中
-w:把歷史列表中的命令追加至歷史文件中
定制history的功能,可通過環境變量實現:
HISTSIZE:shell進程可保留的命令歷史的條數
~]$ echo $HISTSIZE
HISTFILE:持久保存命令歷史的文件
.bash_history
HISTFILESIZE:命令歷史文件的大小
調用命令歷史列表中的命令:
!#:再一次執行歷史列表中的第#條命令
!!:再一次執行上一條命令
!STRING:再一次執行命令歷史列表中最近一個以STRING開頭的命令
注意:命令的重復執行有時候需要依賴于冪等性
調用上一條命令的最后一個參數:
快捷鍵:ESC,.
字符串;!$
控制命令歷史記錄的方式:
環境變量:HISTCONTROL
~]$ echo $HISTCONTROL
ignoredups:忽略重復的命令
ignorespace:忽略以空白字符開頭的命令
ignoreboth:以上兩者同時生效
修改變量的值:
HISTCONTROL='value'shutdown、poweroff、reboot – 關機、重啟命令
語法格式:shutdown [OPTIONS…] [TIME] [WALL…]
OPTIONS:
-h:halt 關機
-r:reboot 重啟
-c:cancel 取消命令
TIME:
now
hh:mm 幾點幾分
+m:幾分鐘后
+0 = now
WALL:信息會顯示在所有的終端hwclock,clock – 顯示或設定硬件時鐘
~]$ sudo hwclock
常用選項:-s,–hctosys:以硬件為準,把系統調整為與硬件時間相同
-w,–systohc:以系統為準,把硬件時間調整為與系統時鐘相同date – 顯示或設置日期時間
顯示日期時間;date [OPTION]… [+FORMAT]
FORMAT:格式符
%F:2016-08-13
%T:14:29:16
%c:Sat 13 Aug 2016 02:30:25 PM CST
%Y:年 %m:月 %d:日 %H:時 %M:分 %S:秒
%s:1471070045 從1970年1月1號(unix元年)0點0分0秒到命令執行那一刻經過的秒數
設置日期時間:date [MMDDhhmm[[CC]YY][.ss]]
~]# date 080820082008.08 設置時間為2008年8月8日20點8分8秒 -
獲取命令的使用幫助
內部命令:
help COMMAND
外部命令:
(1) 命令自帶簡要格式的使用幫助
# COMMAND –help
(2) 使用手冊:manual
位置:/usr/share/man
# man COMMAND
SECTION:
NAME:功能性說明
SYNOPSIS:語法格式
DESCRIPTION:描述
OPTIONS:選項
EXAMPLES:使用示例
AUTHOR:作者
BUGS:報告程序bug的方式
SEE ALSO:參考
SYNOPSIS:
[]:可選內容
<>:必須提供的內容
a|b|c:多選一
…:同類內容可出現多個
使用手冊:壓縮格式的文件,有章節之分
例如:/usr/share/man/man1,/usr/share/man/man2,…
man1:用戶命令:普通用戶和管理員都可以運行的命令
man2:系統調用
man3:C庫調用
man4:設備文件及特殊文件
man5:文件格式(配置文件格式)
man6:游戲使用幫助
man7:雜項
man8:管理工具及守護進程
~]# man CHAPTER(章節) COMMAND
注意:并非每個COMMAND在所有章節下都有手冊 -
Linux的基礎目錄名稱命名法則及功用大多遵循FHS標準
FHS:Filesystem Hierarchy Standard 文件系統層級結構標準(詳細請參考鏈接)
/bin:供所有用戶可用的基本命令程序文件
/sbin:供管理員使用的工具程序
/boot:引導加載器必須用到的各種靜態文件:kernel,initramfs(initrd),grub等
/dev:存儲特殊文件或設備文件
設備有兩種類型:字符設備(線性設備,例如鍵盤、顯示器等)、塊設備(隨機設備,例如硬盤等)
/etc:系統程序的配置文件,只能為靜態,不能為二進制應用程序
/home:普通用戶的家目錄的集中位置:一般每個普通用戶的家目錄默認為此目錄下與用戶名同名的子目錄,/home/USERNAME
/root:管理員的家目錄,可選
/lib:為系統啟動或根文件系統上的應用程序(/bin,/sbin等)提供共享庫,以及為內核提供內核模塊
libc.so.*:動態鏈接C庫
ld*:運行時鏈接器或加載器
modules:用于存儲內核模塊的目錄
/lib4:64位系統特有的存放64位共享庫的路徑
/media:便攜式設備掛載點,cdrom(光盤),floppy(軟盤)等
/mnt:其它文件系統的臨時掛載點
/opt:附加應用程序的安裝位置,可選路徑
/srv:當前主機為服務提供的數據
/tmp:為那些會產生臨時文件的程序提供的存儲目錄,可供所有用戶執行寫入操作,有特殊權限
/usr:usr Hierarchy,全局共享的只讀數據路徑
bin,sbin
lib,lib64
include:C程序頭文件
share:命令手冊頁和自帶文檔等架構特有的文件的存儲位置
local:另一個層級目錄
X11R6:X-Windows程序的安裝位置
src:程序源碼文件的存儲位置
/usr/local:Local hierarchy,讓系統管理員安裝本地應用程序,也通常用于安裝第三方程序
/var:var Hierarchy,存儲常發生變化的數據的目錄
cache Application cache data
lib Variable state information
local Variable data for /usr/local
lock Lock files
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
/proc:基于內存的虛擬文件系統,用于為內核及進程存儲其相關信息:它們多為內核參數,例如net.ipv4.ip_forward,虛擬為net/ipv4/ip_forward,存儲于/proc/sys,因此其完整路徑為/proc/sys/net/ipv4/ip_forward
/sys:sysfs虛擬文件系統提供了一種比proc更為理想的訪問內核數據的途徑:其主要作用在于為管理Linux設備提供一種統一模型的接口(詳細請參考鏈接)
原創文章,作者:蘿卜,如若轉載,請注明出處:http://www.www58058.com/33366
寫的很好,排版還可以在漂亮一點,加油,就不要把黑屏截上來了