當前位置: 妍妍網 > 碼農

這些Linux知識可不是靠背就會的!

2024-05-13碼農

關註上方 浩道Linux ,回復 資料 ,即可獲取海量 L inux Python 網路通訊、網路安全 等學習資料!

前言

大家好,這裏是 浩道Linux ,主要給大家分享 L inux P ython 網路通訊、網路安全等 相關的IT知識平台。

在資訊科技日新月異的今天,Linux以其開源、穩定、高效的特性,逐漸成為了眾多專業人士的首選作業系統。然而,關於Linux知識的學習,卻常常陷入一個誤區——許多人認為,掌握Linux就是死記硬背各種命令和參數。這種觀念,不僅忽略了Linux學習的本質,也阻礙了Linux知識的有效套用。事實上, Linux知識不是靠背,而是要在某套用場景下懂得去用。 不信大家可以一起探討下吧!

在實際套用中,Linux知識的運用遠比單純的記憶更為重要。

1、比如大家背得ls命令是用來 列出檔或者目錄,但是平時卻很少有人結合-h和-S參數來,更便於人類辨識,並且將所列出檔 從大到小排序呈現。

[root@haodaolinux01 ~]# ls -lhS總用量 228M-rw-r--r--. 1 root root 228M 3月 9 03:17 haodaolinux.tar-rw-r--r--. 1 root root 73K 4月 1 2002 cmatrix-1.2a.tar.gz-rwxr-xr-x. 1 root root 4.1K 4月 19 04:05 show_basy.shdrwxrwxrwx. 2 500 500 4.0K 9月 5 2022 cmatrix-1.2a-rw-------. 1 root root 1.6K 11月 5 2021 anaconda-ks.cfg-rwxr-xr-x. 1 root root 81 9月 8 2022 test.sh-rw-r--r--. 1 root root 7 3月 8 23:20 haodao.txt-rw-r--r--. 1 root root 0 9月 8 2022 =-rwxr-xr-x. 1 root root 0 2月 24 2022 test[root@haodaolinux01 ~]#

2、比如大家背得透過ps命令來檢視行程,但是卻很少有人知道以下這些更適用運維場景的命令。

(1)ps命令結合相關參數及管道符,使得行程按照 記憶體從大到小排列。

ps -e -o "%C : %p : %z : %a"|sort -k5 -nr

(2)ps命令檢視的 按 CPU 利用率從大到小排列的 行程

ps -e -o "%C : %p : %z : %a"|sort -nr

(3)ps 尋找當前系統記憶體使用量較高的行程(前20個);

ps -aux | sort -rnk 4 | head -20

(4)ps 找當前系統CPU使用量較高的行程(前20個);

ps -aux | sort -rnk 3 | head -20

3、大家都說Linux下一切皆檔,尋找某個檔時猶如大海撈針,顯得十分困難。但是卻忽略了find命令的這些高效用法,利用好這些命令,你尋找檔時,會顯得一切都是手到擒來!

(1)尋找當前目錄下名字為haodao.py的檔;

find . -namehaodao.py

(2)尋找當前目錄下名字以.py結尾的檔;

find . -name "*.py"

(3)尋找當前目錄下名字以.py結尾的檔,並且指定為檔型別搜尋;

find . -type f -name "*.py"

(4)尋找當前目錄下名字包含haodao的目錄;

find . -type d -name "haodao*"

(5)尋找當前目錄下檔許可權為755的對應檔;

find . -type f -perm 755

(6)尋找當前目錄下不具有755許可權的所有檔;

find . -type f ! -perm 755

(7)尋找當前目錄下具有777許可權的所有檔,並且將這些許可權全部改為755;

find . -type f -perm 777 -exec chmod 755 {} \;

(8)尋找當前目錄下檔大小為100MB~1GB的所有檔;

find . -type f -size +100M -size -1G

(9)尋找當前目錄下以.py結尾的檔,並且刪除;

find . -name "*.py" -exec rm -rf {} \;


find . -name "*.py" | xargs rm -rf {};


rm -rf $(find . -name "*.py")

以上3種快速刪除指定類別檔方法,哪一種更香更好用呢?

(10)尋找當前目錄下30天前修改過的所有檔;

find . -mtime 30

(11)尋找當前目錄下30天前存取過的所有檔;

find . -atime 30

(12)尋找當前目錄下過去1個小時內修改過的所有檔;

find . -mmin -60

(13)尋找當前目錄下過去1個小時內修改過的所有檔;

find . -amin -60

(14)尋找當前目錄下修改超過10天,但修改不到30天的所有檔;

find . -mtime +10 -mtime -30

(15)尋找當前目錄下7天前建立的,並且字尾名是以.py結尾的檔,並且進行刪除;

find . -mtime +7 -name "*.py" | xargs rm -rf {};

(16)尋找當前目錄大於1000M的檔,並將該檔移動到/root/home目錄下;

find . -size +1000M -exec mv {} /root/home ;

(17)尋找當前目錄下建立於30天前,大小大於1000M,以.py結尾的檔,並且進行刪除;

find . -name "*.py" –mtime +30 –type f –size +1000M |xargs rm –rf {};

4、大家印象中只知道cat命令可以檢視檔內容,但是卻很少知道cat命令還能這麽用的。

(1)檢視有幾個邏輯cpu, 包括cpu型號;

cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

(2)檢視有幾顆cpu,每顆分別是幾核;

cat /proc/cpuinfo | grep physical | uniq -c

5、當需要大檔進行某個場景測試時,好多首先想到的就是把windows上拷貝一個大檔到Linux系統,卻不知道透過dd命令,只需簡單命令即可實作本地建立大檔。

(1) 借助dd命令生成大檔。

dd if=/dev/zero of=/root/haodaolinux/test.txt bs=1M count=1024

上述命令,在 /root/ haodaolinux目錄下 生成一個檔名為test.txt 大小為 1G 的檔。

如果大家還覺得dd命令玩得不過癮,可以看看以下這篇針對dd命令的詳解

6、大家都知道透過vi等編輯工具,可以編輯檔中任何內容。但是卻不懂利用sed命令可以快速編輯所需的特定內容。

(1)如何透過sed命令將檔test.py中的haodao全部替換成HAODAO;

sed -i "s/haodao/HAODAO/g" test.py

(2)替換haodao.py檔中的目錄;

sed -i "s:/etc/dhcp:/home:g" haodao.py

即表示將haodao.py檔中的/etc/dhcp目錄替換成/home目錄。

如果大家還想了解sed相關高效命令,可以前往以下這篇針對sed命令詳解的文章看看~

7、大家都知道tcpdump命令是用來抓包的,但是卻很少有人這樣高效抓包分析。

(1)針對網口ens33抓取不限制大小的報文,保存為檔haodao.cap;

tcpdump-iens33-s 0 -whaodao.cap

(2)針對網口ens33進行抓包,過濾出 icmp 報文並且源 IP 地址是 192.168.20.231的相關報文;

tcpdumpicmpandsrc 192.168.20.231-iens33-n

(3) 針對網口ens33進行抓包,過濾出源 IP 地址是 192.168.20.231的相關報文;

tcpdumpsrchost 192.168.20.231-iens33-n-c 5

(4)針對網口ens33進行抓包,過濾出目的 IP 地址是 192.168.20.231的相關報文;

tcpdumpdsthost 192.168.20.231-iens33-n-c 5

(5)針對網口ens33進行抓包,過濾出埠號是 8080 的相關報文;

tcpdump port 8080 -i ens33 -n -c 5

(6)針對網口ens33進行抓包,過濾出 80埠到443埠 的相關報文;

tcpdump portrange 80-433 -i ens33 -n -c 8

如果真心想研究tcpdump相關高效抓包命令,可以看看這篇針對tcpdump工具使用的詳解~

8、好多小夥伴都知道Nginx伺服器,但是卻很少有人能夠講得明白關於它的具體使用場景,如果感興趣,可以移步去看看這篇超過2萬字的Ngnix文章,透過實驗帶你了解nginx7大使用場景,根本不用背就可以掌握。

9、好多小夥伴學習Linux時,實驗環境下把防火墻相關服務一關就順利進行,但是實際運維工作環境中,防火墻使用方面相關的知識還是很重要的,所以掌握Linux下iptables和firewalld相關操作技巧是十分必要的,如果你想快速掌握,可以挪步看看以下兩篇關於防火墻知識的詳解。

10、好多運維或測試小夥伴,都了解Jenkins如何牛逼,卻很少能夠自己靜下心來做一遍實驗,跑通程式碼自動打包釋出編譯的整個流水線操作。如果你真想去學習,可以看看這篇稱為全網最強且手把手教的教程了!

11、其實Linux下有好多工具可以供我們使用解決很多問題,浩道真心推薦以下這些工具,大家可以好好去學習使用,你會發現他們是真的香!

12、大家都知道Linux運維中shell指令碼十分重要,透過shell指令碼,可以減少很多人工不必要的且重復繁雜的工作量,然而想要提升shell編程能力,光靠背是不可能會的,靠的是平時多敲敲程式碼,積累編碼程式碼能力,這個確實沒有什麽好說的。這裏推薦大家學習以下全網最經典的幾百條shell指令碼,學習請移步下篇。

13、隨著各個業務量增大,集群環境下相關運維工作也是大家平時經常接觸的,因此搞懂高可用相關知識點就顯得十分重要了,這裏推薦大家學習一波Keepalived+MySQL的高可用配置。

14、業務量大的平台,監控是繞不開的一個運維話題,做好監控,一切運維都會顯得輕松,就看你有沒有興趣將監控體系搞好了,監控做得好,日常吃雞真不是夢,這裏強烈推薦的監控系統Prometheus,大家可以參考學習一番。

15、最後再說關於k8s相關的學習,當下也是一個非常熱的知識體系,這個靠背的話只能永遠停留在理論階段,最直接最有效就是要在實驗中去使用去排錯去總結。

透過以上列舉一些知識點,真的發現光靠死記硬背是學不來的,都是靠在實際工作中去摸索去積累得出的經驗。當然,每個人學習方法不一樣,但是經驗應該都是通用的。

學習Linux,首先要理解其背後的設計理念與哲學。Linux不僅僅是一個作業系統,更是一種開放、協作的精神體現。它鼓勵使用者根據自己的需求去客製和最佳化系統,而非被固定的操作模式所束縛。因此,學習Linux,更應該是一種思維方式的轉變,而非簡單的記憶過程。

在實際套用中,Linux知識的運用遠比單純的記憶更為重要。例如,在系統維護中,我們需要根據具體的硬體配置和軟體環境,靈活選擇適當的命令和工具。在網路安全領域,Linux提供了豐富的防火墻和入侵檢測工具,但如何配置和使用這些工具,則依賴於我們對Linux安全機制的深入理解。此外,在軟體開發、雲端運算等領域,Linux都發揮著不可替代的作用。這些領域的套用,都需要我們結合具體場景,靈活運用Linux知識。

強調Linux知識的實踐套用,並不意味著我們可以忽視基礎知識的學習。相反,紮實的基礎是有效套用的前提。我們需要掌握Linux的基本命令、檔案系統結構、網路配置等基礎知識,但這些知識的掌握,應該建立在理解其原理和套用場景的基礎上。只有這樣,我們才能在遇到實際問題時,迅速找到解決方案,而不是死記硬背一堆無用的命令。

此外,隨著技術的不斷發展,Linux也在不斷更新和演進。新的功能、新的工具不斷湧現,這就要求我們保持持續學習的態度,不斷跟進Linux的最新發展。這種學習,不再是簡單的記憶,而是一種對新技術、新套用的探索和實踐。

不知道朋友們看完有什麽想法,歡迎評論區留言,大家一起討論,共同進步!

更多精彩

關註公眾號 浩道Linux

浩道Linux ,專註於 Linux系統 的相關知識、 網路通訊 網路安全 Python相關 知識以及涵蓋IT行業相關技能的學習, 理論與實戰結合,真正讓你在學習工作中真正去用到所學。同時也會分享一些面試經驗,助你找到高薪offer,讓我們一起去學習,一起去進步,一起去漲薪!期待您的加入~~~ 關註回復「資料」可 免費獲取學習資料 (含有電子書籍、視訊等)。

喜歡的話,記得 點「贊」 「在看」