Linux自學筆記——計算機基礎以及命令幫助的獲取
計算機基礎知識:
計算機的主要組成部分:
運算器、控制器、存儲器、輸入設備、輸出設備
CPU:運算器,控制器
bus:總線
memory: 編址存儲設備
IO:與外部部件交互
程序的運行模式:
用戶空間:user space,us
內核空間:system space
POS:Portable OperationSystem
POSIX
API:編程接口;
運行程序格式:
Windows:EXE,dll(dynamic link library)
Linux
程序:指令+數據
指令:只讀
數據:讀寫
程序:算法+數據結構
庫調用,系統調用:允許被調用的程序;
Malloc():申請內存空間;
Free():釋放內存空間;
編程語言:
匯編語言:微碼編程
系統中某些與硬件相關的特有代碼、驅動程序開發;
高級語言C, C++:
系統級應用、驅動程序
高級應用java, python, php:
應用程序
Linux的發行版:
Slackware:
Suse
Opensuse
Debian:
Ubutu
Mint
Redhat:
Rhel:Redhat enterprise linux 每十八個月發行一個新版本;
Centos:兼容rhel的格式
Fedora:每六個月發行一個新版本;
Archlinux
Gentoo
LFS:linux from scratch
Android:kernel+busybox+java虛擬機
程序包管理器:
Rpm:
Rhel,Fedora,suse,centos
Dpt:
Debian,ubuntu
Linux哲學思想:
1、一切皆文件;把幾乎所有資源,包括硬件設備都組織為文件格式;
2、由眾多單一目的小程序組成;一個程序只實現一個功能,而且要做好;組合小程序完成復雜任務;
3、盡量避免跟用戶交互;目標:實現腳本編程,以自動完成某些功能;
4、使用純文本文件保存配置信息;目標:一款使用的文本編程器即能完成系統配置工作;
如何獲取CentOS的發行版:
http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirrors.163.com
終端:
用戶與主機交互,必然用到的設備;
物理終端:直接接入本機的顯示器和鍵盤設備:/dev/console
虛擬終端:附加在物理終端之上的以軟件方式虛擬實現的終端,centos6默認啟動6個虛擬終端
Ctrl+Alt+F#: [1,6]
圖形終端:附加在物理終端之上的以軟件方式虛擬實現的終端,但額外會提供桌面環境;
設備文件路徑;/dev/tty#
模擬終端:
圖形界面下打開的命令行接口,基於ssh協議或telnet協議等遠程打開的界面
設備文件:/dev/pts/# [0,oo )
查看當前終端設備:tty
交互式接口:啟動終端後,在終端設備附加一個交互式應用程序
GUI:
X protocol,Windows manager,desktop
Desktop:
GNOME(C,gtk)
KDE(c++,qt)
XFCE(輕量級桌面)
CLI:
shell程序:
sh (bourn)
csh
tcsh
ksh (korn)
bash (bourn again shell), GPL
zsh
顯示當前使用的shell:
顯示當前系統使用的所有shell:
命令提示符:prompt
[[email protected] ~]# [[email protected] ~]$
管理員:#
普通用戶:$
命令::
輸入命令,回車;
提請shell程序找到鍵入命令所對應的可執行程序或代碼,並由其分析後提交給內核分配資源將其運行起來
在shell中可執行的命令有兩種;
內建命令:由shell自帶的,而且通過某命令形式提供;
外部命令:在當前系統的某文件系統路徑下有對應的可執行程序文件;
which,whereis
區別內部和外部命令:
#type COMMAND
運行命令:
命令格式:
COMMAND [OPTIONS...] [ARGUMENTS...]
選項:用於啟用或關閉命令的某個或某些功能;
短選項:-c,例如:-l, -h
多個短選項可命令使用,例如-l -h, 可寫作-lh;
長選項:--word,例如:--long, --human-readable 一般不能合並
參數:命令的作用對象
向明留給你提供數據;
Note:1、多選項,以及多參數和命令之間都應該使用空白字符分隔
2、取消命令執行:Ctrl+c
文件系統:
Windows:C:\Programfiles\office11\word\word.exe
Linux:/etc/sysconfig/network-scripts/ifcfg-eth0
文件有兩類數據:
元數據:metadata
數據:data
1. 文件名嚴格區分字符大小寫:file1,File1,兩個是不同的文件;
2. 文件名可使用除/以外的任意字符,不建議使用特殊字符;
/:根目錄,路徑分隔符;
3. 文件名長度最長不能超過255個字符;
4. 所有.開頭的文件,均為隱藏文件;
路徑:
絕對路徑:從根目錄起使的路徑;
相對路徑:對當前的位置起始的路徑;
當前位置的表示方式:
1)./: ./sysconfig/network-scripts
2)省略上述符號:sysconfig/network-scripts
..:表示當前目錄的上一級目錄
當前目錄:current directory, 也稱作working directory;
可以用pwd命令顯示當前工作目錄:
Linux命令幫助的獲取
內部命令:
#help COMMAND
外部命令:
1) #COMMAND --help
#COMMAND –h
2) 使用手冊(manual)
#man COMMAND
3) 信息頁
#info COMMAND
4) 程序自身的幫助文檔
README
INSTALL
ChangeLog
5) 程序官方文檔
官方站點:Documentation
6) 發行版的官方文檔
7) Google
內部命令的幫助:
#helpCOMMAND
hash命令:
shell搜尋到的外部命令的路徑結果會緩存至kv(key-value)存儲中;
history命令:
管理命令歷史:
登錄shell時,會讀取命令歷史文件中記錄下的命令:~/.bash_history
登錄shell後新執行的命令只會記錄在緩存中;這些命令會在用戶退出時,追加至命令歷史文件中;
history:
-a:追加本次會話新執行的命令歷史列表至歷史文件中;
-d:刪除歷史中指定的命令;
-c:清空命令歷史;
快捷操作:
!#:調用歷史中第#條命令;
!string:調用歷史中最近一次以string開頭的命令;
!!:調用上一次命令
外部命令幫助獲取:
man COMMAND
手冊頁:/usr/share/man
man1 …man8
man1:用戶命令;
man2:系統調用;
man3:c庫調用;
man4:設備文件及特殊文件;
man5:配置文件格式;
man6:遊戲;
man7:雜項;
man8:管理類的命令;
Note:有些關鍵在不止一個章節中存在幫助手冊;
要查看指定章節中的手冊:man # COMMAND
man命令的配置文件:/etc/man.config
MANPATH/PATH/TO/SOMEWHERE:指明新的手冊文件搜索位置;
到指定位置下搜索COMMAND命令的手冊頁並顯示之:
#man –M /PATH/TO/SOMEWHERE COMMAND
幫助手冊中的段落說明:
NAME:名稱
SYNOPSIS:概要
DESCRIPTION:描述
OPTIONS:選項
EXAMPLES:示例
AUTHOR:作者
REPORTING BUGS:漏洞報告
SEE ALSO:參考
SYNOPSIS:
[]:可選內容
<>:必選內容
a|b:二選一
…:同一內容可出現多次
man命令的操作方法;
Space, ^V, ^f, ^F: 向文件尾翻屏;
b, ^B: 向文件首部翻屏;
d, ^D: 向文件尾部翻半屏;
u,^U: 向文件首部翻半屏;
RETURN, ^N, e, ^E or j or ^J: 向文件尾部翻一行;
yor ^Y or ^P or k or ^K:向文件首部翻一行;
q: 退出;
#:跳轉至第#行;
1G:回到文件首部;
G:翻至文件尾部
文本搜索:
/keyword:
以keyword指定的字符串為關鍵字,從當前位置向文件尾部搜索:不區分大小寫;
n:下一個;
N:上一個
?keyword:
以KEYWORD指定的字符串為關鍵字,從當前位置向文件首部搜索;不區分字符大小寫;
n:下一個;
N:上一個
Linux自學筆記——計算機基礎以及命令幫助的獲取