一、什麼是Linux
Linux是一種自由和開放源代碼的類UNIX操作系統。
是linus在1991年10月5日首次發佈。
開放的、子域的遵循GNU許可。
任何個人和機構都可以自由的使用Linux的所有底層源碼
二、什麼是發行版
Linux發行版=Linux內核+軟件集合
來自維基百科的釋義:
https://zh.wikipedia.org/wiki/Linux%E5%8F%91%E8%A1%8C%E7%89%88
個人桌面版
- 面向個人用戶。由於安裝了圖像界面,界面美觀,操作方便,比較適合新手,但相對於服務器版來說較消耗資源
- 常見的桌面版有Ubuntu、Debian、Fedora、CentOS、openSUSE
企業服務器版
- 面向企業用戶。系統穩定性好,資源消耗較小,滿足企業需求,但基本都是命令行界面,需要有一定的基礎才能上手操作。
- 常見的服務器版有RHEL、CentOS、Debian、Ubuntu、openSUSE
Linux發展史圖
注意右上角:Open Source(開源的)、Mixed/shared source (半開源)、 Closed source (關源)
在這裏我們還可以看到Mac OS它是基於Unix Version 8封裝改造的,這也是爲什麼它和linux這麼像,與之不同的是,Linux是基於Unix的特性自己開發的,而Mac OS它是直接使用改造的!
Linux內核官網
在這裏我們可以查詢到Linux內核的最新版本
https://www.kernel.org/
(Windows、Linux、MacOS)三大系統的區別
三、Linux系統核心
- Linux內核
- Linux Shell
- Linux 文件系統
- Linux 應用系統
3.1 Linux內核是什麼?
開源的類Unix操作系統宏內核。整個Linux操作系統家族基於該內核部署在傳統的計算機平臺和嵌入式平臺上。
包括現在的電腦、服務器、手機、路由器、交換機、機頂盒、智能電視等等。
從技術上講:Linux是一個符合POSIX標準的內核。提供了一套應用程序接口,通過該接口用戶能和內核以及硬件打交道。
關鍵詞解釋
宏內核:
簡單來說,就是把很多東西都集成進內核,例如linux內核,除了最基本的進程、線程管理、內存管理外,文件系統,驅動,網絡協議等等都在內核裏面。優點是效率高。缺點是穩定性差,開發過程中的bug經常會導致整個系統掛掉。做驅動開發的應該經常有按電源鍵強行關機的經歷。
參考文章:宏內核與微內核、Linux內核與Unix內核的區別
https://blog.csdn.net/silencegll/article/details/51496158
POSIX標準
POSIX表示可移植操作系統接口(Portable Operating System Interface of UNIX,縮寫爲 POSIX ),POSIX標準定義了操作系統應該爲應用程序提供的接口標準。
POSIX標準意在期望獲得源代碼級別的軟件可移植性。換句話說,爲一個POSIX兼容的操作系統編寫的程序,應該可以在任何其它的POSIX操作系統(即使是來自另一個廠商)上編譯執行。
參考文章:
一、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內核圖
從圖中可以看出,內核的最上層是系統的調用接口,簡稱(SCI),然後其下是進程管理(PM)、文件系統(VFS)、內存管理(MM)、網絡堆棧,最底下是相關的硬件和驅動
內核、操作系統
單一的Linux內核不是一套完整的操作系統
內核 --> 操作系統
內核 --> 發行版本
3.2 Linux文件系統:一切皆文件
**參考文章:**https://blog.51cto.com/12674559/2095216
四、常用命令
1.系統信息
查看系統信息
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:
查看內存
free -m
free -g
總內存(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.文件目錄
創建目錄
mkdir dir_name
mkdir -p dir/dir/ 使用-p可以創建多級目錄
刪除目錄
rm dir_name
rm -f dir_name
創建文件
touch filename
vi filename
echo “test” > filename
拷貝目錄
cp -r from to
進入目錄
cd dir
移動目錄
mv from to
拷貝文件
cp from to
查看文件
cat
查看所有內容, 只適合查看小文件,如果文件非常大,千萬不要使用它No cat
cat test.log
cat /data/server/test.log
或者
cat *.log
less
分頁查看
less test.log
history | less
瀏覽多個文件
less test1.log test2.log 使用n和p切換文件
參數:
- ctrl + F - 向前移動一屏
- ctrl + B - 向後移動一屏
- ctrl + D - 向前移動半屏
- ctrl + U - 向後移動半屏
- G - 移動到最後一行
- g - 移動到第一行
- q / ZZ - 退出 less 命令
當然了,還有我們的more
命令
more test.log 使用方法和less類似,它倆差不多
3.搜索
Find(在整個文件樹中查找)
find / -name test.log
find /data/server/ -name test.log
Locate(需要安裝)
locate的特點是根據已生成的數據庫查找,速度較快,但是查找的是快照數據,不準確。
安裝使用
1.yum install mlocate
2.updatedb
然後就可以使用了,比如查看passwd
locate passwd
locate雖然查找速度特別快,但是它是基於快照數據,在本地有緩存的DB的,對於新的文件需要更新locate的數據庫
updatedb
whereis
二進制的查找適合查找程序名稱等等
舉例:
whereis java
whereis python
which
查看執行文件的位置
which java
which python
which ls
which bash
…
4.統計搜索
統計文件個數
ls -l | grep “0-sec” |wc -l
這是由主要的3條命令組成
ls - l 然後利用管道符使用grep篩選,最後使用wc統計
統計文件行數
cat test.log | wc-l
搜索+統計
grep “/login” test.log >| wc -l
5.資源查看
查看磁盤
df -h
du
報告磁盤空間使用情況
du -a
du -sh *
查看帶寬(需安裝,這裏不演示了)
iftop
查看鏈接數
查看某個端口的連接情況
netstat
統計80端口連接數量
netstat -ntpl | grep 80|wc -l
ok!那麼今天是更新不完了,明天繼續給更新下一篇文章《Linux應用性能分析及故障排查》