Linux基礎和常用命令

一、什麼是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 (關源)
Linux發展史圖.png

在這裏我們還可以看到Mac OS它是基於Unix Version 8封裝改造的,這也是爲什麼它和linux這麼像,與之不同的是,Linux是基於Unix的特性自己開發的,而Mac OS它是直接使用改造的!
Linux發展史圖2.png

Linux內核官網

在這裏我們可以查詢到Linux內核的最新版本

https://www.kernel.org/
Linux內核官網.png

(Windows、Linux、MacOS)三大系統的區別

三大系統的區別.png

三、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內核圖.jpg

內核、操作系統

單一的Linux內核不是一套完整的操作系統

內核 --> 操作系統

內核 --> 發行版本

3.2 Linux文件系統:一切皆文件

文件系統.png

**參考文章:**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應用性能分析及故障排查》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章