一、計算機相關簡介與linux的一些概念
計算機系統 由硬件(Hardware)系統和軟件(Software)系統兩大部分構成:
-
硬件系統 :CPU(控制器、運算器),內存儲器(RAM、ROM),外存儲器(硬盤等),輸入設備(鍵盤、鼠標等),輸出設備(顯示器等),其他設備相關設備。
軟件系統 :系統軟件(操作系統,數據庫等),應用軟件(例如office等用戶應用程序)。
CPU (Central Processing Unit)中央處理器。由控制器和運算器構成,是整個計算機系統的大腦。
計算機(computer):是一種能夠接收和存儲信息,并按照存儲在其內部的程序對海量數據進行自動、高速的處理,并輸出結果的一種電子設備。
發展歷史
- 第一代計算機 (1946-1957)電子管時代
- 第二代計算機 (1958-1964)晶體管時代
- 第三代計算機 (1965-1970)集成電路時代
- 第四代計算機 (1971-) 大規模集成電路時代
1946年,世界第一臺計算機ENIAC(electronic numerical integrator and calculator)在美國賓州大學誕生。使用17468只電子管,占地170平米,重30噸,耗電174千瓦,耗資40多萬美元。每秒可進行5000次加法或減法運算。
摩爾定律:Intel聯合創始人戈登·摩爾1965年提出,每隔18-24個月,集成電路上可容納的元器件數目和性能將提高一倍。
按規模劃分計算機類型:巨型計算機、大型計算機、小型計算機、微型計算機。
服務器:是計算機的一種,網絡中可客戶端提供各種服務的高性能計算機。
服務器按應用功能可分為:
- web服務器,數據庫服務器,郵件服務器,文件服務器等等。
服務器按外形分類:
式服務器、機架服務器、刀片式服務器。
服務器的主要硬件構成 :電源、CPU、網卡、PCI、硬盤、風扇、內存、RAID卡,顯卡、網卡等等。
服務器按CPU架構分類
- 非X86服務器:使用RISC(精簡指令集)或EPIC(并行指令代碼)處理器。
- x86服務器:CISC(復雜指令集)架構服務器。
服務器按CPU個數來分 :4路及以上服務器;2路服務器;1路服務器。
存儲基礎知識 :
- 用于存放數據信息的設備和介質,是計算機系統的外部存儲,數據可長期駐留。
- 存儲設備:軟盤、磁帶、光盤、磁盤陣列等。
-
存儲網絡:
- DAS(Direct Attached Storage)–直接連接存儲
- NAS(Network Attached Storage)–網絡連接存儲
- SAN(Storage Area Networks)–存儲區域網絡
操作系統 :
- OS(operating system):實現硬件驅動、進程管理、內存管理、網絡管理、安全管理、文件管理等功能。
- OS分類:服務器OS、桌面OS、移動設備OS。
開發接口標準 :
- ABI:Application BinaryInterface,描述了應用程序和OS之間的底層接口。
- API:Application Programming Interface,定義了源代碼和庫之間的接口。
- POSIX:可移植操作系統接口。
- 運行程序格式:
- Linux:ELF,.so(shared object), .a
編程語言 :
- 低級語言:匯編等;功能,硬件驅動等
- 中級語言:c語言等; 功能 系統級應用等
- 高級語言:java,php等;功能應用級程序開發。
服務器三大操作系統 :
- windows;Linux;Unix
Linux起源 :
- 1984年RIchard Stallman發起GNU項目和自由軟件基金會。
- 1991年Linus Torvalds發布Linux內核
開源 :Open Source,軟件和源代碼提供給所有人,自由分發軟件和源代碼,能夠修改和創建衍生作品。
-
開源協議:
GPLv2,LGPL
Apache:apache
BSD:bsd
…
linux哲學思想 :
- 一切皆文件:所有設備,通信接口,文件等等都抽象為文件。
- 一個程序負責一項功能,多個小程序完成復雜任務。
- 避免與用戶交互,易于以編程化的方式實現特定功能。
- 用文本文件保存配置信息。
端類型:terminal
-
設備終端:
鼠標鍵盤顯示器 -
物理終端:
/dev/consle -
虛擬終端:tty
本地的字符界面-
=偽終端:
pst/[0,1,2,3],遠程登錄
-
=偽終端:
交互式接口:啟動終端后,在終端設備附加一個交互式應用程序
- GUI:graphic user interface
- gnome c 圖形庫gtk
- kde c++ 圖形庫qt對面
- xfce 輕量級桌面
-
CLI: comamnd line interface
sh bash csh tcsh ksh …
centos默認shell為bash(bourn again shell) -
shell是linux系統用戶界面,提供了用戶與內核進行交互操作的一種接口。
- shell是linux的一種命令解釋器,負責解析用戶提交的命令,找到對應路徑下的程序,最終將結果反饋給用戶。
Ctrl+c 強制關閉當前命令
Ctrl+d 正常關閉當前命令,可實現快速注銷。
“comand/弱引用,內部的命令會被替換name’
強引用,內部的命令等不會被替換
command 或$(command)命令調用,直接調用命令的執行結果
manual man
-
man手冊各章節信息:
1、用戶命令
2、系統調用
3、c庫調用
4、設備文件或特殊文件
5、配置文件格式
6、游戲幫助
7、雜項
8、管理命令
9、linux內核API
文件系統
-
文件和目錄被組織成單根倒置樹結構
文件從根目錄開始,用/表示
根文件系統:root filesystem
文件名嚴格區分大小寫(標準的linux文件系統):
以.開頭的文件為隱藏文件
路徑分隔符 /
數據類型有兩類
元數據:metadata:文件的各種屬性,訪問時間atime,修改時間mtime等等
數據:data:文件的真實存儲內容
文件系統分層結構:LSB linux standard base
FHS:FILFsystem Hierarchy standard。
http://www.pathname.com/fhs/
文件名規則
-
文件名最長255個字節
包括路徑在內文件名最長4095節
藍色–>目錄 綠色–>可執行文件 紅色–>壓縮文件 淺藍色–>鏈接文件 灰色–>其他文件 粉色–>套接字文件
除了斜杠和nul,所有字符都有效,但使用特效字符的目錄名和文件不推薦使用,有些字符需要用引號來引用它們。
標準linux文件系統如ext4,文件名稱大小寫敏感。
linux文件類型:
-
-,f普通文件
l,鏈接文件
b,塊設備文件
c,符號鏈接文件
p,管道文件
s,套接字文件
d,目錄文件
-
-,f普通文件
文件系統結構:
-
/boot:引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader,grub)都存放于此目錄
/bin:所有用戶使用的基本命令:不能關聯至獨立分區,OS啟動即會用到的程序
/sbin:管理類的命令,不能關聯至獨立分區,OS啟動即會用到的命令,
/lib:啟動時程序依賴的基本共享文件以及內核模塊文件/lib/modudles
/lib64,專用于64位系統上輔助的共享庫文件存放位置
/etc 配置文件目錄
/home/username 普通用戶家目錄
/root 管理員的家目錄
/media:便攜式移動設備掛載點
/mnt 臨時文件系統掛載點
/dev 設備文件及特殊文件存儲位置
b:block device,隨機訪問
c:character device,線性訪問
/opt 第三方應用程序的安裝位置
/srv 系統上運行的服務用到的數據
/tmp 臨時文件存儲
/usr 全局共享只讀數據存儲路徑
bin 保證系統擁有完整的功能提供的應用程序
sbin
lib
lib64
include c程序的開頭文件
share:結構化獨立的數據,
local:第三方應用程序的安裝位置
bin,sbin,lib,lib64,etc share
/var:數據經常發生變化的目錄存放地
cache:應用程序緩存數據目錄
lib:應用程序狀態信息數據
local:專用于為/usr/local下的應用程序存儲可變數據;
lock:鎖文件
log:日志目錄及文件
opt:專用于為/opt下的應用程序存儲可變數據
run:運行中的進程相關數據,通常用于存儲進程pid文件
spool 應用程序數據池
tmp:保存系統兩次重啟之間產生的臨時數據
/proc:用于輸出內核與進程信息相關的虛擬文件系統
/sys:用于輸出當前系統上硬件設備相關信息虛擬文件系統
/selinux:security enhanced linux,selinux相關的安全策略等信息的存儲位置
文件通配符
-
*匹配零個或多個字符
?匹配任何單個字符
~ 當前用戶家目錄
~username指定用戶家目錄
~+當前工作目錄
~-前一個工作目錄
[0-9]:匹配范圍內的字符
[a-z]:匹配a-z,A-Z其中一個
[A-Z]:匹配A-Z,b-z其中一個,按
[^xxx]匹配指定范圍外的字符
* man 7 glob*
-
[[:digit:]] 任意數字
[[:lower:]] 任意小寫字母
[[:upper:]] 任意大寫字母
[[:alpha:]] 任意大小寫字母
[[:alnum:]] 任意數字或字母
[[:punct:]] 標點符號
[[:space:]] 水平或垂直空白字符
[[:blank:]] 水平空白字符
[[:print:]] 可打印字符
[[:cntrl:]] 控制字符,非打印字符
[[:graph:]] 圖形字符
[[:xdigit:]] 十六進制字符
二、一些基礎命令
注:某些命令可以不帶選項參數而直接執行
cat – concatenate files and print on the standard out‐put。查看文本文件和打印至標準輸出。
cat [OPTION]… [FILE]..
options:
-E:顯示行結束符
-n:顯示行號
…
examples:
cat /proc/cpuinfo:查看cpu信息(lscpu也可查看)
cat /proc/partitions 查看分區信息
cat /proc/meminfo 查看內存信息 (free也可查看)
cat /proc/swaps 查看交換分區信息
uname:顯示系統信息
uname [OPTION]..
options:
-s:顯示內核名稱
-n:顯示主機名稱
-r:顯示內核信息
…
df:顯示系統磁盤空間使用情況
df [OPTION]… [FILE]..
-a,–all:虛擬文件系統也一起顯示
-i,–inodes,顯示inode使用情況而不是磁盤塊使用情況。
-h,–human-readable,單位轉換
..
whoami 顯示當前終端的登錄用戶
whoami [OPTION]
options:
–version:顯示版本信息并回到輸入命名時的shell環境。
tty:顯示當前鏈接系統的終端名
tty [OPTION]…
–version:顯示版本信息并回到輸入命名時的shell環境。
who:顯示所有登錄到該系統的終端信息。
who [OPTION]… [ FILE | ARG1 ARG2]
-b:顯示最近一次登錄系統的時間
-r:顯示系統當前的默認運行級別
…
w:顯示登錄系統的用戶信息及其執行的操作
w [options] user […]
options:
-s,–short:使用短格式,不顯示登錄時間等等
-V,顯示w命令的版本信息
shutdown:關機、重啟、等
shutdown [OPTIONS…] [TIME] [WALL…]
options:
-h:關機
-r:重啟
-c:取消上述操作
TIME:
hh:mm:指定特定時間
+mm/hh:指定當前時間推遲多少時間
WALL:
“告知各個用戶即將關機的信息,自己決定寫什么”
poweroff:關閉電源
reboot:重啟
file: 判定文件類型
file [options] file
gedit /etc/gdm/custom.conf
# “手動輸入兩行”
[dameon]
AutomaticLoginEnable=True
AutomaticLogin=root
[security]
#通過上述操作可以自動進入系統而不用輸入賬號密碼
runlevel:顯示系統改變前和當前的默認運行級別
file:創建空文件
echo:顯示文本信息
echo [SHORT-OPTION]… [STRING]..
echo LONG-OPTION
-
options:
-n,不進行換行
-E 不對轉義字符進行轉義
-e,使轉義字符生效
\a 發出警告聲
\e 退格鍵,將后面的字符退后一個
\n 換行且光標移動到行首
\r 回車,即光標移動至行首,但不換行
\t tab鍵位
\ 插入\字符
\onnn 插入nnn代表的八進制的ASCII字符
\xHH插入HH所代表的ASCII字符hostname:顯示主機名
cat /etc/DIR_COLORS 可以查閱shell下一些顏色的設置
type command 查看命令是內部還是外部
外部命令:有專門的文件路徑,builtin
內部命令:集成在shell內部
enable:查看和設定內部命令是否可用
enable [options] [command]
enable -n command 禁用內部命令
enable command啟用內部命令
enable -n 查看禁用的內部命令列表
hash:查看hash緩存
hash [options] [name]
hash -l 顯示hash緩存,可作為輸入使用
hash -d name 清除指定緩存
hash -r 清除所有緩存
hash -p path name :給hash緩存設置別名
hash -t name 打印緩存中name的路徑
which :顯示shell命令的路徑全名
which [options] [–] programname […]
-a:顯示所有與name相關的命令路徑
–skip-alias 忽略別名
alias:定義與查看別面名
定義別名:alias name=’comand’
取消別名:unalias name
ls:顯示目錄文件
ls [options]..[file]..
options:
-a:顯示所有文件包括隱藏
-A:顯示所有文件不包括.和..
-l:顯示長格式信息,文件的相關屬性
-d:顯示指定目錄的信息,而不顯示他的子目錄信息。
..
date:顯示系統時間
date [OPTION]… [+FORMAT]
-
options:
-d,–date=string 指定日期以顯示時間
..
FORMAT:
%A:完整的星期名稱(e.g..,Sunday)
%a:簡寫的星期名稱 (e.g..,Sun)
%F:完整的年月日
%T:完整的時分秒
%H:小時
%M:分鐘
%S:秒
%y:簡寫的年
%Y:完整的年
%m:月
%d:日
…
example:
date MMDDHHMM[cc[yy]].[ss]
hwclock ,clock顯示硬件時間
-s, –hctosys 以硬件為基準設置系統時間
-w, –systohc以系統時間為基準設置硬件時間
cal:顯示日歷
screen:(可以實現多個用戶共同操作,需要建立在多個用戶連接到同一主機的情況)
建立新screen會話
-
screen -S [session]
加入screen會話:
screen -x [session]
退出并關閉screen會話:
exit
剝離當前screen會話
Ctrl+a,d
顯示已打開的screen 會話
Ctrl -ls
恢復某screen會話
Ctrl -r [session]
whatis:顯示命令的簡短描述
whatis [options] name
history:查看命令歷史,保存你輸入的命令歷史
-
history [option]
-c:清空命令歷史
-d:刪除歷史列表中指定的命令
#:顯示最近的#條歷史
-a: 追加本次會話新執行的命令列表至歷史文件
-n:讀取歷史文件中未讀過的行到歷史列表
-r:讀取歷史文件附加到歷史列表
-w:保存歷史列表到指定的歷史文件
-p:展開歷史參數成多行,但不存在歷史列表中
-s:展開歷史參數成一行,附加在歷史列表后登錄shell時,加載~/.bash_history文件中的歷史記錄
調用上一個命令的最后一個參數
!$
esc 松手 .
alt 同時 .
一些快捷操作:
-
ctrl + l 清屏,相當于clear命令
ctrl + o 執行當前命令,并重新顯示本命令
ctrl + S 阻止屏幕輸出,鎖定
ctrl + q 允許屏幕輸出,鎖定
ctrl + c 終止命令
ctrl + z 掛起命令
ctrl + a 移動到命令行首
ctrl + e 移動到命令行尾
ctrl + f 按字符前移 右向
ctrl + b 按字符后移,左向
alt + f 按單詞前移 右向
alt + b 按單詞后移 左向
ctrl + u 從光標處刪除至命令行首
ctrl + k 從光標處刪除至命令行尾
Ctrl + w從光標處向左刪除至單詞首
Alt + d從光標處向右刪除至字尾
Ctrl + d刪除光標處的字符
Ctrl + h刪除光標前的字符
Ctrl + y將刪除的字符粘貼至光標后
Alt + c從光標處更改為首字母大寫的單詞
? Alt + u從光標處更改為全部大寫的單詞
Alt + l從光標處更改為全部小寫的單詞
Ctrl + t交換光標處和之前的字符
Alt + t交換光標處和之前的單詞
Alt + N提示輸入指定字符后,重復顯示該字符N次
注意:Alt快捷鍵較少使用,因為常常和編輯器沖突
pwd:顯示當前所處的工作目錄
-P:顯示真實物理路徑
-L:顯示鏈接路徑(默認)
cd 改變當前工作目錄
-P 切換到真實物理路徑,而不是鏈接路徑
-在當前工作和前一次的工作目錄之間切換
~,回到家目錄
~username,回到指定用戶的家目錄
PWD,存放當前工作目錄的變量
OLDPWD,存放上一次工作目錄的變量
touch創建空文件或者修改timestap,默認三種類型時間戳都修改
touch -a 僅改變atime和ctime
-m 改變mtime和ctime
-t stamp 修改時間戳
CCYYMMDDhhmm.ss
-c 如果文件不存在,則不創建文件
cp 復制文件和目錄
cp – copy files and directories
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
-
options
-i 交互式
-r,-R遞歸復制
-d,不復制源文件,而僅僅復制符號鏈接本身
-a 歸檔,相當于-dR –preserv=all
–preserv[=ATTR_LIST]
mode:權限
ownership:屬主屬組
timestamp:時間戳
links 鏈接
xattr 隱藏屬性
-p :=–preserv=mode,ownership,timestamp
-v:顯示詳細信息
-f:–force如果對一個目錄擁有寫權限,則可以對目錄內的文件進行增加刪除操作。
mv – move (rename) files
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
移動文件
-
options:
-i 交互式
-f 強制
rm – remove files or directories
rm [OPTION]… FILE..
-
-i 交互式
-f 強制刪除
-r 遞歸
–no-preserve–root> /some/file 在文件被其他進程占用的情況下,清空該文件內容,釋放存儲空間。
原創文章,作者:switch,如若轉載,請注明出處:http://www.www58058.com/69271