一墓懂、什么是Linux
Linux是一種自由和開放源代碼的類UNIX操作系統(tǒng)忱辅。
是linus在1991年10月5日首次發(fā)布七蜘。
開放的、子域的遵循GNU許可墙懂。
任何個(gè)人和機(jī)構(gòu)都可以自由的使用Linux的所有底層源碼
二橡卤、什么是發(fā)行版
Linux發(fā)行版=Linux內(nèi)核+軟件集合
來自維基百科的釋義:
https://zh.wikipedia.org/wiki/Linux%E5%8F%91%E8%A1%8C%E7%89%88
Linux 發(fā)行版(英語:Linux distribution,也被叫做GNU/Linux 發(fā)行版)损搬,為一般用戶預(yù)先集成好的Linux操作系統(tǒng)及各種應(yīng)用軟件碧库。一般用戶不需要重新編譯,在直接安裝之后巧勤,只需要小幅度更改設(shè)置就可以使用嵌灰,通常以軟件包管理系統(tǒng)來進(jìn)行應(yīng)用軟件的管理。Linux發(fā)行版通常包含了包括桌面環(huán)境颅悉、辦公包沽瞭、媒體播放器、數(shù)據(jù)庫等應(yīng)用軟件剩瓶。這些操作系統(tǒng)通常由Linux內(nèi)核驹溃、以及來自GNU計(jì)劃的大量的函數(shù)庫,和基于X Window的圖形界面延曙。有些發(fā)行版考慮到容量大小而沒有預(yù)裝 X Window豌鹤,而使用更加輕量級的軟件,如:busybox, uclibc 或 dietlibc≈Φ蓿現(xiàn)在有超過300個(gè)Linux發(fā)行版(Linux發(fā)行版列表)布疙。大部分都正處于活躍的開發(fā)中,不斷地改進(jìn)。
個(gè)人桌面版
- 面向個(gè)人用戶灵临。由于安裝了圖像界面拣挪,界面美觀,操作方便俱诸,比較適合新手菠劝,但相對于服務(wù)器版來說較消耗資源
- 常見的桌面版有Ubuntu、Debian睁搭、Fedora赶诊、CentOS、openSUSE
企業(yè)服務(wù)器版
- 面向企業(yè)用戶园骆。系統(tǒng)穩(wěn)定性好舔痪,資源消耗較小,滿足企業(yè)需求锌唾,但基本都是命令行界面锄码,需要有一定的基礎(chǔ)才能上手操作。
- 常見的服務(wù)器版有RHEL晌涕、CentOS滋捶、Debian、Ubuntu余黎、openSUSE
Linux發(fā)展史圖
注意右上角:Open Source(開源的)重窟、Mixed/shared source (半開源)、 Closed source (關(guān)源)
在這里我們還可以看到Mac OS它是基于Unix Version 8封裝改造的惧财,這也是為什么它和linux這么像巡扇,與之不同的是,Linux是基于Unix的特性自己開發(fā)的垮衷,而Mac OS它是直接使用改造的厅翔!
Linux內(nèi)核官網(wǎng)
在這里我們可以查詢到Linux內(nèi)核的最新版本
(Windows、Linux搀突、MacOS)三大系統(tǒng)的區(qū)別
三刀闷、Linux系統(tǒng)核心
- Linux內(nèi)核
- Linux Shell
- Linux 文件系統(tǒng)
- Linux 應(yīng)用系統(tǒng)
3.1 Linux內(nèi)核是什么?
開源的類Unix操作系統(tǒng)宏內(nèi)核描姚。整個(gè)Linux操作系統(tǒng)家族基于該內(nèi)核部署在傳統(tǒng)的計(jì)算機(jī)平臺和嵌入式平臺上涩赢。
包括現(xiàn)在的電腦戈次、服務(wù)器轩勘、手機(jī)、路由器怯邪、交換機(jī)绊寻、機(jī)頂盒、智能電視等等。
從技術(shù)上講:Linux是一個(gè)符合POSIX標(biāo)準(zhǔn)的內(nèi)核澄步。提供了一套應(yīng)用程序接口冰蘑,通過該接口用戶能和內(nèi)核以及硬件打交道。
關(guān)鍵詞解釋
宏內(nèi)核:
簡單來說村缸,就是把很多東西都集成進(jìn)內(nèi)核祠肥,例如linux內(nèi)核,除了最基本的進(jìn)程梯皿、線程管理仇箱、內(nèi)存管理外,文件系統(tǒng)东羹,驅(qū)動(dòng)剂桥,網(wǎng)絡(luò)協(xié)議等等都在內(nèi)核里面。優(yōu)點(diǎn)是效率高属提。缺點(diǎn)是穩(wěn)定性差权逗,開發(fā)過程中的bug經(jīng)常會導(dǎo)致整個(gè)系統(tǒng)掛掉。做驅(qū)動(dòng)開發(fā)的應(yīng)該經(jīng)常有按電源鍵強(qiáng)行關(guān)機(jī)的經(jīng)歷冤议。
參考文章:宏內(nèi)核與微內(nèi)核斟薇、Linux內(nèi)核與Unix內(nèi)核的區(qū)別
https://blog.csdn.net/silencegll/article/details/51496158
POSIX標(biāo)準(zhǔn)
POSIX表示可移植操作系統(tǒng)接口(Portable Operating System Interface of UNIX,縮寫為 POSIX )恕酸,POSIX標(biāo)準(zhǔn)定義了操作系統(tǒng)應(yīng)該為應(yīng)用程序提供的接口標(biāo)準(zhǔn)奔垦。
POSIX標(biāo)準(zhǔn)意在期望獲得源代碼級別的軟件可移植性。換句話說尸疆,為一個(gè)POSIX兼容的操作系統(tǒng)編寫的程序椿猎,應(yīng)該可以在任何其它的POSIX操作系統(tǒng)(即使是來自另一個(gè)廠商)上編譯執(zhí)行。
參考文章:
一寿弱、POSIX介紹
https://blog.csdn.net/weixin_40039738/article/details/81867577
二犯眠、POSIX API
https://www.cnblogs.com/alexliu2360/p/5674345.html
三、知乎來源
https://www.zhihu.com/question/21048638
Linux內(nèi)核圖
從圖中可以看出症革,內(nèi)核的最上層是系統(tǒng)的調(diào)用接口筐咧,簡稱(SCI),然后其下是進(jìn)程管理(PM)噪矛、文件系統(tǒng)(VFS)量蕊、內(nèi)存管理(MM)、網(wǎng)絡(luò)堆棧艇挨,最底下是相關(guān)的硬件和驅(qū)動(dòng)
內(nèi)核残炮、操作系統(tǒng)
單一的Linux內(nèi)核不是一套完整的操作系統(tǒng)
內(nèi)核 --> 操作系統(tǒng)
內(nèi)核 --> 發(fā)行版本
3.2 Linux文件系統(tǒng):一切皆文件
參考文章:https://blog.51cto.com/12674559/2095216
四、常用命令
1.系統(tǒng)信息
查看系統(tǒng)信息
uname -a
Linux xxx.xxx.xxx.xxx.xxx.com 4.10.4-1.el7.elrepo.x86_64 #1 SMP Sat Mar 18 12:50:10 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux
cat /etc/system-release
CentOS Linux release 7.3.1611 (Core)
查看cpu
cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 13
model name : QEMU Virtual CPU version (cpu64-rhel6)
stepping : 3
microcode : 0x1
cpu MHz : 2599.998
cache size : 16384 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm rep_good nopl xtopology pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx f16c rdrand hypervisor lahf_lm fsgsbase smep xsaveopt
bugs :
bogomips : 5199.99
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
查看內(nèi)存
free -m
free -g
總內(nèi)存(total) 4G缩滨,用了239M(used)還剩3G(free)
total used free shared buff/cache available
Mem: 3771 239 3139 11 392 3234
Swap: 2047 0 2047
2.文件目錄
創(chuàng)建目錄
mkdir dir_name
mkdir -p dir/dir/ 使用-p可以創(chuàng)建多級目錄
刪除目錄
rm dir_name
rm -f dir_name
創(chuàng)建文件
touch filename
vi filename
echo "test" > filename
拷貝目錄
cp -r from to
進(jìn)入目錄
cd dir
移動(dòng)目錄
mv from to
拷貝文件
cp from to
查看文件
cat
查看所有內(nèi)容势就, 只適合查看小文件泉瞻,如果文件非常大,千萬不要使用它No cat
cat test.log
cat /data/server/test.log
或者
cat *.log
less
分頁查看
less test.log
history | less
瀏覽多個(gè)文件
less test1.log test2.log 使用n和p切換文件
參數(shù):
- ctrl + F - 向前移動(dòng)一屏
- ctrl + B - 向后移動(dòng)一屏
- ctrl + D - 向前移動(dòng)半屏
- ctrl + U - 向后移動(dòng)半屏
- G - 移動(dòng)到最后一行
- g - 移動(dòng)到第一行
- q / ZZ - 退出 less 命令
當(dāng)然了苞冯,還有我們的more
命令
more test.log 使用方法和less類似袖牙,它倆差不多
3.搜索
Find(在整個(gè)文件樹中查找)
find / -name test.log
find /data/server/ -name test.log
Locate(需要安裝)
locate的特點(diǎn)是根據(jù)已生成的數(shù)據(jù)庫查找,速度較快舅锄,但是查找的是快照數(shù)據(jù)鞭达,不準(zhǔn)確。
安裝使用
1.yum install mlocate
2.updatedb
然后就可以使用了皇忿,比如查看passwd
locate passwd
locate雖然查找速度特別快碉怔,但是它是基于快照數(shù)據(jù),在本地有緩存的DB的禁添,對于新的文件需要更新locate的數(shù)據(jù)庫
updatedb
whereis
二進(jìn)制的查找適合查找程序名稱等等
舉例:
whereis java
whereis python
which
查看執(zhí)行文件的位置
which java
which python
which ls
which bash
...
4.統(tǒng)計(jì)搜索
統(tǒng)計(jì)文件個(gè)數(shù)
ls -l | grep "0-sec" |wc -l
這是由主要的3條命令組成
ls - l 然后利用管道符使用grep篩選撮胧,最后使用wc統(tǒng)計(jì)
統(tǒng)計(jì)文件行數(shù)
cat test.log | wc-l
搜索+統(tǒng)計(jì)
grep "/login" test.log >| wc -l
5.資源查看
查看磁盤
df -h
du
報(bào)告磁盤空間使用情況
du -a
du -sh *
查看帶寬(需安裝,這里不演示了)
iftop
查看鏈接數(shù)
查看某個(gè)端口的連接情況
netstat
統(tǒng)計(jì)80端口連接數(shù)量
netstat -ntpl | grep 80|wc -l