1、計算機的組成及其功能
計算機,通俗簡易的來說,稱為電腦,在大多數人眼中,電腦的功能是辦公,休閑、娛樂。而有那么一群人不僅僅滿足于使用它們,更深入的去研究它們,從而衍生了一類人,IT工作者。
計算機,其組成主要由硬件(hardware)和軟件(software)兩部分組成。其中,硬件主要由CPU(運算器和控制器)、存儲器、輸入設備(Input)、輸出設備(Output)幾大部分組成,軟件則由內核(Kernel)和應用(Application)兩大部分組成。
- CPU用于接收外來指令并解析。
- 存儲器用于存儲各類信息。
- 輸入設備,顧名思義,輸入信息的設備,如鍵盤。
- 輸出設備,顧名思義,輸出信息的設備,如顯示器。
- 內核,由于CPU只能處理二進制信息,故有一群大牛研發出一套工具將人們通過輸入設備輸入的信息自動轉換成CPU可以解讀的二進制數據。
- 應用,最終人們可以用來處理事務的軟件。
2、Linux的發行版
Linux主要有三大主流發行版:Debian、Slackware、RedHat,而其中Debian之后又衍生出兩個主流版本Ubuntu、Knopix,Slackware衍生出S.u.S.E后又衍生出OpenSUSE,RedHat則衍生出Fedora、CentOS兩個主流版本,除此之外還有Gentoo、Archlinux等等上百種LInux的發行版,而這些發行版之間有聯系卻也有不同之處。以下盜了兩站圖對以上內容進行闡述。
3、Linux的哲學思想
每件事物都可以上升到一個哲學境界,Linux自然也有它的哲學思想。
1、一切皆文件,把幾乎所有資源統統抽象為文件形式;包括硬件設備,甚至通信接口等;其實這樣相當于把復雜的事情簡單化,更易于操作,漏洞更少。
2、由眾多功能單一的程序組成;一個程序只做一件事,并且做好;組合小程序完成復雜任務;這個道理就和做事情一樣,將一件事情分成若干個步驟來完成,這樣每個步驟都能相對簡單輕松,出錯更少,更好的完成,直到最后完成整件事情。磨刀不誤砍柴工,就是這么個道理。
3、盡量避免跟用戶交互;目標:易于以編程的方式實現自動化任務;用戶就是上帝,很多的用戶業務能力很強,但是計算機專業能力卻很差,如果不能將復雜的代碼轉換成簡潔易懂的程序,那么這個產品就是失敗的。
4、使用文本文件保存配置信息;說實話,我不知道這個算啥哲學思想,合理的利用資源達到最好的效果,嗯,大概是這么個意思。
4、Linux系統命令
命令的通用格式為 # COMMAND OPTION ARGUMENTS(以下內容為摘抄)
COMMAND:
發起一命令:請求內核將某個二進制程序運行為一個進程;
程序 –> 進程
靜態 –> 動態(有生命周期)
命令本身是一個可執行的程序文件:二進制格式的文件,有可能會調用共享庫文件;
多數系統程序文件都存放在:/bin, /sbin, /usr/bin, /usr/sbin,/usr/local/bin, /usr/local/sbin
普通命令:/bin, /usr/bin, /usr/local/bin
管理命令:/sbin, /usr/sbin, /usr/local/sbin
共享庫:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
32bits的庫:/lib, /usr/lib, /usr/local/lib
64bits的庫:/lib64, /usr/lib64, /usr/local/lib64
注意:并非所有的命令都有一個在某目錄與之對應的可執行程序文件
命令必須遵循特定格式規范:exe, msi, ELF(Linux)
~]# file /bin/ls
命令分為兩類:
由shell程序的自帶的命令:內置命令(builtin)
獨立的可執行程序文件,文件名即命令名:外部命令
shell程序是獨特的程序,負責解析用戶提供的命令;
環境變量:
PATH:從哪些路徑中查找用戶鍵入的命令字符串所對應的命令文件;
~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
查找次序:自左而右;
查看命令類型:
type COMMAND
OPTIONS:
指定命令的運行特性;
選項有兩種表現形式:
短選項:-C, 例如-l, -d
注意:有些命令的選項沒有-;
如果同一命令同時使用多個短選項,多數可合并:-l -d = -ld
長選項:–word, 例如–help, –human-readable
注意:長選項不能合并;
注意:有些選項可以帶參數,此稱為選項參數;
ARGUMENTS:
命令的作用對象;命令對什么生效;
注意:不同的命令的參數;有些命令可同時帶多個參數,多個之間以空白字符分隔;
例如:ls -ld /var /etc(摘抄完畢)
下面將詳解闡述本人對一些命令的理解
- ? ? ifconfig
此命令為必記(不得不記、想忘也忘不掉)命令,查詢配置當前計算機的網絡配置。
如上圖所示,該計算機網絡地址(IPADDR)為192.169.10.20,子網掩碼(NETMASK)為255.255.255.0。
- ? ? echo
回顯命令,顯示輸入內容的結果,如輸入“echo $SHELL”返回的為/bin/bash,輸入“echo? “hello everyone” ”,實例如下圖所示。
- ? ? tty
顯示連接標準輸入的終端的文件名,如在SecureCRT上輸入“tty”,得到的結果為“/dev/pts/2”,在虛擬機上輸入“tty”,得到的結果為“/dev/pts/1”,實例如下圖所示。
- startx
初始化一個X會話
- export
所提供的名稱被標記為自動導出到隨后執行的命令的環境中。
- pwd(print working derictory)
顯示工作目錄
- history
可查詢當前用戶下使用過的命令歷史
bash的基礎特性之一:
命令歷史:shell進程會其會話中保存此前用戶提交執行過的命令;
~]# history
定制history的功能,可通過環境變量實現:
HISTSIZE:shell進程可保留的命令歷史的條數;
HISTFILE:持久保存命令歷史的文件;
.bash_history
HISTFILESIZE:命令歷史文件的大??;
命令用法:
history [-c] [-d 偏移量] [n]
或 history -anrw [文件名]
或 history -ps 參數 [參數…]
-c: 清空命令歷史;
-d offset:刪除指定命令歷史
-r: 從文件讀取命令歷史至歷史列表中;
-w:把歷史列表中的命令追加至歷史文件中;
history #:顯示最近的#條命令;
調用命令歷史列表中的命令:
!#:再一次執行歷史列表中的第#條命令;
!!:再一次執行上一條命令;
!STRING:再一次執行命令歷史列表中最近一個以STRING開頭的命令;
注意:命令的重復執行有時候需要依賴于冪等性;
調用上一條命令的最后一個參數:
快捷鍵:ESC, .
字符串:!$
控制命令歷史記錄的方式:
環境變量:HISTCONTROL
ignoredups:忽略重復的命令;
ignorespace:忽略以空白字符開頭的命令;
ignoreboth:以上兩者同時生效;
修改變量的值:
NAME=’VALUE’
- shutdown
關機操作,可結合相關參數進行定時關機,關機通知等操作
- poweroff
關機操作,可結合相關參數進行定時關機,關機通知等操作
- reboot
重啟功能,可結合相關參數進行定時重啟,重啟通知等操作
- hwclock
hwclock, clock:硬件時鐘
顯示或設定硬件時鐘
-s, –hctosys:以硬件為準,把系統調整為與硬件時間相同;
-w, –systohc:以系統為準,把硬件時間調整為與系統時鐘相同;
- date
date:系統時鐘
顯示日期時間:date [OPTION]… [+FORMAT]
FORMAT:格式符
%F
%T
%Y
%m
%d
%H
%M
%S
%s: 從1970年1月1號(unix元年)0點0分0秒到命令執行那一刻經過的秒數;
…
設定日期時間:date [MMDDhhmm[[CC]YY][.ss]]
5、如何在Linux系統上獲取命令的幫助信息
獲取命令的使用幫助:
內部命令:
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, man2, …
1:用戶命令;
2:系統調用;
3:C庫調用;
4:設備文件及特殊文件;
5:文件格式;(配置文件格式)
6:游戲使用幫助;
7:雜項;
8:管理工具及守護進行;
~]# man CHAPTER COMMAND
注意:并非每個COMMAND在所有章節下都有手冊;
查看:
~]# whatis COMMAND
注意:其執行過程是查詢數據庫進行的;
手動更新數據庫:
~]# makewhatis
man命令打開手冊以后的操作方法:
翻屏:
空格鍵:向文件尾翻一屏;
b: 向文件首部翻一屏;
Ctrl+d:向文件尾部翻半屏;
Ctrl+u:向文件首部翻半屏;
回車鍵:向文件尾部翻一行;
k: 向文件首部翻一行;
G:跳轉至最后一行;
#G: 跳轉至指定行;
1G:跳轉至文件首部;
文本搜索:
/keyword:從文件首部向文件尾部依次查找;不區分字符大小寫;
?keyword:從文件尾部向文件首部依次查找;
n: 與查找命令方向相同;
N: 與查找命令方向相反;
退出:
q: quit
選項:
-M /PATH/TO/SOMEDIR:到指定目錄下查找命令手冊并打開之;
練習:獲取useradd命令的用法
(1) 添加用戶gentoo;
# useradd gentoo
# id gentoo
(2) 添加用戶slackware,要求指定其所用的shell為/bin/tcsh;
# useradd -s /bin/tcsh slackware
# tail -1 /etc/passwd
(3) info COMMAND
獲取命令的在線文檔;
(4) 很多應用程序會自帶幫助文檔:/usr/share/doc/APP-VERSION
README:程序的相關的信息;
INSTALL: 安裝幫助;
CHANGES:版本迭代時的改動信息;
(5) 主流發行版官方文檔
http://www.redhat.com/doc
(6) 程序官方的文檔:
官方站點上的“Document”
(7) 搜索引擎
google
keyword filetype:pdf
keyword site:domain.tld
…
書籍的出版社:
O’Reiley
Wrox
機械工業、電子工業、人郵、清華大學、水利水電
6、羅列Linux發行版的基礎目錄名稱命名法則及功用規定
Linux文件系統:
Linux:glibc
程序編譯方式:
動態鏈接
靜態編譯
進程的類型:
終端:硬件設備,關聯一個用戶接口
與終端相關:通過終端啟動
與終端無關:操作引導啟動過程當中自動啟動
操作系統的組成:
靜態:kernel, application
文件系統:層級結構
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:用于存儲內核模塊的目錄;
/lib64:64位系統特有的存放64位共享庫的路徑;
/media:便攜式設備掛載點,cdrom, floppy等;
/mnt:其它文件系統的臨時掛載點;
/opt:附加應用程序的安裝位置;可選路徑;
/srv:當前主機為服務提供的數據;
/tmp:為那些會產生臨時文件的程序提供的用于存儲臨時文件的目錄;可供所用戶執行寫入操作;有特殊權限;
/usr:usr Hierarchy,全局共享的只讀數據路徑;
bin, sbin
lib, lib64
include:C程序頭文件;
share:命令手冊頁和自帶文檔等架構特有的文件的存儲位置
local:另一個層級目錄;
X11R6:X-Window程序的安裝位置
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設備提供一種統一模型的的接口;
參考:https://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/
Linux系統上的文件類型:
-:常規文件;即f;
d: directory,目錄文件;
b: block device,塊設備文件,支持以“block”為單位進行隨機訪問
c:character device,字符設備文件,支持以“character”為單位進行線性訪問
major number:主設備號,用于標識設備類型,進而確定要加載的驅動程序
minor number:次設備號,用于標識同一類型中的不同的設備;
8位二進制:0-255
l:symbolic link,符號鏈接文件;
p: pipe,命名管道;
s: socket,套接字文件;
以上基礎知識由于時間關系全部摘抄于馬哥筆記,有時間會再次整理
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/102670
很好很詳細,還通俗易懂,繼續加油哦
@忽然之間:謝謝,會繼續努力
總結的還是比較詳細的,需要注意的是第1個題:計算機的組成部分按5部分來描述。繼續加油。