1. 《linux命令行與shell腳本編程大全第3版》epub下載在線閱讀,求百度網盤雲資源
《Linux命令行與shell腳本編程大全(第3版)》([美]布魯姆,布雷斯納漢)電子書網盤下載免費在線閱讀
鏈接:https://pan..com/s/13qnk3TEZNyMh3vhcZwF0aA
書名:Linux命令行與shell腳本編程大全(第3版)
作者:[美]布魯姆,布雷斯納漢
譯者:門佳
豆瓣評分:9.0
出版社:人民郵電出版社
出版年份:2016-8
頁數:605
內容簡介:
這是一本關於Linux命令行與shell腳本編程的全方位教程,主要包括四大部分:Linux命令行,shell腳本編程基礎,高級shell腳本編程,如何創建實用的shell腳本。本書針對Linux系統的最新特性進行了全面更新,不僅涵蓋了詳盡的動手教程和現實世界中的實用信息,還提供了與所學內容相關的參考信息和背景資料。通過本書的學習,你將輕松寫出自己的shell腳本。
作者簡介:
Ricahard Blum
已在IT行業打拚20餘年,擔任過UNIX、Linux、Novell和Windows Server的系統及網路管理員,在Linux和開源軟體領域著作頗豐。他還是一名網路課程講師,美國多所大學和學院都採用他的Linux基礎課程。
Christine Bresnahan
系統管理員,已經在IT行業工作了30餘年,通過CompTIA Linux+、LPIC-1、Linux Essentials認證。目前在印第安納波利斯市常春藤技術社區學院擔任兼職教授,講授Linux系統管理、Linux安全和Windows安全、Python編程等課程。
2. Kali Linux常用服務配置教程獲取IP地址
下面以Kali Linux為例,演示獲取IP地址的方法
(1)設置網路介面為自動獲取IP地址。在Kali Linux的收藏夾中單擊圖標,將顯示所有的程序,如圖1.8所示。
(2)單擊「設置」圖標,將打開「設置」窗口,如圖1.9所示。
(3)選擇「網路」選項,單擊有線連接中的齒輪按鈕,將顯示「有線」對話框,如圖1.10所示。
(4)勾選「自動連接」復選框。然後,單擊IPv4標簽,將顯示IPv4選項卡,如圖1.11所示。
(5)在該界面選擇「自動(DHCP)」選項。然後,單擊「應用」按鈕。接下來,就可以請求獲取IP地址了。執行命令如下所示:
root@daxueba:~# dhclient eth0 –d
Internet Systems Consortium DHCP Client 4.3.5
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth0/00:0c:29:25:89:95
Sending on LPF/eth0/00:0c:29:25:89:95
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4
DHCPREQUEST of 192.168.0.12 on eth0 to 255.255.255.255 port 67
DHCPOFFER of 192.168.0.12 from 192.168.0.10
DHCPACK of 192.168.0.12 from 192.168.0.100
bound to 192.168.0.12 -- renewal in 277 seconds.
從輸出的信息中,可以看到成功獲取到IP地址192.168.0.12。由此可以說明,搭建的DHCP服務測試成功。此時,用戶查看地址租約文件dhcpd.leases,也可以看到分配的IP地址。如下所示:
root@daxueba:~# cat /var/lib/dhcp/dhcpd.leases
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.3.5
# authoring-byte-order entry is generated, DO NOT DELETE
authoring-byte-order little-endian;
lease 192.168.0.10 {
starts 1 2018/07/02 10:15:00;
ends 1 2018/07/02 10:25:00;
cltt 1 2018/07/02 10:15:00;
binding state active;
next binding state free;
rewind binding state free;
hardware ethernet 00:0c:29:5c:ae:aa;
client-hostname "daxueba";
}
lease 192.168.0.11 {
starts 1 2018/07/02 10:18:17;
ends 1 2018/07/02 10:28:17;
cltt 1 2018/07/02 10:18:17;
binding state active;
next binding state free;
rewind binding state free;
hardware ethernet 00:0c:29:99:92:4f;
uid "\001\000\014)\231\222O";
set vendor-class-identifier = "MSFT 5.0";
client-hostname "Test";
}
lease 192.168.0.12 {
starts 1 2018/07/02 10:34:56;
ends 1 2018/07/02 10:44:56;
cltt 1 2018/07/02 10:34:56;
binding state active;
next binding state free;
rewind binding state free;
hardware ethernet 00:0c:29:25:89:95;
client-hostname "daxueba";
}
從輸出的信息中,可以看到DHCP服務分配出去的IP地址及對應租約信息。
3. linux常用的20個命令
Linux中最常用的20個命令如下:
1. ls - 列出目錄內容
2. cd - 改變目錄
3. pwd - 顯示當前目錄
4. mkdir - 創建目錄
5. rm - 刪除文件或目錄
6. rmdir - 刪除空目錄
7. touch - 創建空文件
8. cat - 顯示或連接文件
9. cp - 復制文件或目錄
10. mv - 移動或重命名文件或目錄
11. less - 分頁顯示文件內容
12. head/tail - 顯示文件頭部/尾部內容
13. echo - 顯示字元串
14. ps - 顯示進程狀態
15. top - 實時顯示進程狀態
16. kill - 終止進程
17. df - 顯示磁碟空間使用情況
18. - 顯示目錄和文件大小
19. ping - 測試網譽培絡連接
20. ifconfig/ip - 配置或顯示網路介面信息
這20個命令可以完成大多數Linux文件操作、進程管理和網路配置任務。熟練掌握它們是成為Linux高手的基礎。
如果要進一步了解每個命令的功能和參數,可以通過以下方式學習:
1. 在終端直接輸入命令名並按派虛褲回車,會顯示命令語法和簡要說明。
2. 在終端輸入man 命令名,會顯示對應命令的手冊頁,裡麵包含詳細說明、參數和示例。
3. 搜索網路教程和手冊,如菜鳥教程、Linux命令大全等,這些網站上有每個命令的詳盡教程。
4. 實踐並多使用這些命令,熟練掌握語法塵簡和常用功能的參數。實踐出真知。
如果您對Linux命令或其它知識有任何疑問,歡迎與我聯系。我會提供詳細的解答、參考資料和練習方案,幫助您系統和深入地學習。覺得這份Linux常用命令liste對您有用的話,也請不吝賜教,我會持續完善和優化。
4. 《Linux命令行與shell腳本編程大全》epub下載在線閱讀,求百度網盤雲資源
《Linux命令行與shell腳本編程大全》(Richard Blum)電子書網盤下載免費在線閱讀
資源鏈接:
鏈接:https://pan..com/s/10S-mKk0ME0WotTnrFhMKOg
書名:Linux命令行與shell腳本編程大全
作者:Richard Blum
譯者:武海峰
豆瓣評分:8.4
出版社:人民郵電出版社
出版年份:2012-9
頁數:619
內容簡介:本書是一本關於Linux 命令行與shell 腳本編程的全面教程。全書分為四部分:第一部分介紹Linuxshell 命令行;第二部分介紹shell 腳本編程基礎;第三部分深入探討shell 腳本編程的高級內容;第四部分介紹如何在現實環境中使用shell 腳本。本書不僅涵蓋了詳盡的動手教程和現實世界中的實用信息,還提供了與所學內容相關的參考信息和背景資料。
本書內容全面,語言簡練,示例豐富,適合於Linux 系統管理員及Linux 愛好者閱讀參考。
作者簡介:Richard Blum 系統和網路管理員,已經在IT行業工作了22年多。他管理過UNIX、Linux、Novell和微軟伺服器,用Linux shell腳本進行過自動化網路監測,並在大多數常見的Linux shell環境中寫過腳本。他還是一名網路課程講師,美國各地的多所大學和學院都採用他的Linux基礎課程。除本書外,Richard還著有Professional Linux Programming等書。
Christine Bresnahan 系統管理員,已經在IT行業工作了近30年。目前在印第安納波利斯市的常春藤技術社區學院擔任兼職教授,講授Linux系統管理、Linux安全和Windows安全等課程。
武海峰 Linux系統工程師,興趣集中在GNU/Linux和移動互聯應用,熱衷於開源軟體。曾在商業Linux廠商任職,從事移動設備操作系統集成和商業Linux發行版集成工作。
5. 如何在Linux命令行中通過SMTP伺服器發送電子郵件
假定你想配置一個 Linux 應用,用於從你的伺服器或桌面客戶端發送郵件信息。郵件信息可能是郵件簡報、狀態更新(如 Cachet)、監控警報(如 Monit)、磁碟時間(如 RAID mdadm)等等。當你要建立自己的 郵件發送伺服器 傳遞信息時 ,你可以替代使用一個免費的公共 SMTP 伺服器,從而避免遭受維護之苦。
谷歌的 Gmail 服務就是最可靠的 免費 SMTP 伺服器 之一。想要從應用中發送郵件通知,你僅需在應用中添加 Gmail 的 SMTP 伺服器地址和你的身份憑證即可。
使用 Gmail 的 SMTP
伺服器會遇到一些限制,這些限制主要用於阻止那些經常濫用伺服器來發送垃圾郵件和使用郵件營銷的傢伙。舉個例子,你一次只能給至多 100
個地址發送信息,並且一天不能超過 500
個收件人。同樣,如果你不想被標為垃圾郵件發送者,你就不能發送過多的不可投遞的郵件。當你達到任何一個限制,你的 Gmail
賬戶將被暫時的鎖定一天。簡而言之,Gmail 的 SMTP 伺服器對於你個人的使用是非常棒的,但不適合商業的批量郵件。
說了這么多,是時候向你們展示 如何在 Linux 環境下使用 Gmail 的 SMTP 伺服器 了。
Google Gmail SMTP 伺服器設置
如果你想要通過你的應用使用 Gmail 的 SMTP 伺服器發送郵件,請牢記接下來的詳細說明。
郵件發送伺服器 (SMTP 伺服器): smtp.gmail.com
使用認證: 是
使用安全連接: 是
用戶名: 你的 Gmail 賬戶 ID (比如 "alice" ,如果你的郵箱為 [email protected])
密碼: 你的 Gmail 密碼
埠: 587
確切的配置根據應用會有所不同。在本教程的剩餘部分,我將向你展示一些在 Linux 上使用 Gmail SMTP 伺服器的應用示例。
從命令行發送郵件
作為第一個例子,讓我們嘗試最基本的郵件功能:使用 Gmail SMTP 伺服器從命令行發送一封郵件。為此,我將使用一個稱為 mutt 的命令行郵件客戶端。
先安裝 mutt:
對於 Debian-based 系統:
$ sudo apt-get install mutt
對於 Red Hat based 系統:
$ sudo yum install mutt
創建一個 mutt 配置文件(~/.muttrc),並和下面一樣,在文件中指定 Gmail SMTP 伺服器信息。將 替換成自己的 Gmail ID。注意該配置只是為了發送郵件而已(而非接收郵件)。
$ vi ~/.muttrc
set from = "@gmail.com"set realname = "Dan Nanni"set smtp_url = "smtp://@smtp.gmail.com:587/"set smtp_pass = ""
一切就緒,使用 mutt 發送一封郵件:
$ echo "This is an email body." | mutt -s "This is an email subject" [email protected]
想在一封郵件中添加附件,使用 "-a" 選項
$ echo "This is an email body." | mutt -s "This is an email subject" [email protected] -a ~/test_attachment.jpg
使用 Gmail SMTP 伺服器意味著郵件將顯示是從你 Gmail 賬戶發出的。換句話說,收件人將視你的 Gmail 地址為發件人地址。如果你想要使用自己的域名作為郵件發送方,你需要使用 Gmail SMTP 轉發服務。
當伺服器重啟時發送郵件通知
如果你在 虛擬專用伺服器(VPS)
上跑了些重要的網站,建議監控 VPS 的重啟行為。作為一個更為實用的例子,讓我們研究如何在你的 VPS
上為每一次重啟事件建立郵件通知。這里假設你的 VPS 上使用的是 systemd,並向你展示如何為自動郵件通知創建一個自定義的 systemd
啟動服務。
首先創建下面的腳本 reboot_notify.sh,用於負責郵件通知。
$ sudo vi /usr/local/bin/reboot_notify.sh
#!/bin/sh
echo "`hostname` was rebooted on `date`" | mutt -F /etc/muttrc -s "Notification on `hostname`" [email protected]
$ sudo chmod +x /usr/local/bin/reboot_notify.sh
在這個腳本中,我使用 "-F" 選項,用於指定系統級的 mutt 配置文件位置。因此不要忘了創建 /etc/muttrc 文件,並如前面描述的那樣填入 Gmail SMTP 信息。
現在讓我們創建如下一個自定義的 systemd 服務。
$ sudo mkdir -p /usr/local/lib/systemd/system$ sudo vi /usr/local/lib/systemd/system/reboot-task.service
[Unit]
Description=Send a notification email when the server gets rebooted
DefaultDependencies=no
Before=reboot.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/reboot_notify.sh
[Install]
WantedBy=reboot.target
在創建服務後,添加並啟動該服務。
$ sudo systemctl enable reboot-task$ sudo systemctl start reboot-task
從現在起,在每次 VPS 重啟時,你將會收到一封通知郵件。
通過伺服器使用監控發送郵件通知
作為最後一個例子,讓我展示一個現實生活中的應用程序,Monit,這是一款極其有用的伺服器監控應用程序。它帶有全面的 VPS 監控能力(比如 CPU、內存、進程、文件系統)和郵件通知功能。
如果你想要接收 VPS 上由 Monit 產生的任何事件的郵件通知,你可以在 Monit 配置文件中添加以下 SMTP 信息。
set mailserver smtp.gmail.com port 587
username "" password ""
using tlsv12
set mail-format {
from: @gmail.com
subject: $SERVICE $EVENT at $DATE on $HOST
message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION.
Yours sincerely,
Monit
}
# the person who will receive notification emails
set alert [email protected]
這是一個因為 CPU 負載超載而由 Monit 發送的郵件通知的例子。
6. Linux 中的邏輯卷 LVM 管理完整初學者指南
這是 Linux 中 LVM(邏輯卷管理)的完整初學者指南。
在本教程中,您將了解 LVM 的概念、它的組件以及為什麼要使用它。
我不會僅限於理論上的解釋,我還將展示在 Linux 中創建和管理 LVM 的動手示例。
簡而言之,我將為您提供在現實世界中開始使用 LVM 所需的所有必要信息。
LVM 代表邏輯卷管理。這是管理存儲系統的另一種方法,而不是傳統的基於分區的方法。在 LVM 中,您無需創建分區,而是創建邏輯卷,然後您可以像掛載磁碟分區一樣輕松地將這些卷掛載到文件系統中。
LVM 包含三個主要組件:
盡管該列表由三個部分組成,但其中只有兩個是分區系統的直接對應部分,下表記錄了這一點。
物理卷沒有任何直接對應物,但我很快就會談到這一點。
LVM 的主要優點是調整卷或卷組的大小非常容易。它抽象出了所有醜陋的部分(分區、原始磁碟),並為我們留下了一個中央存儲池可供使用。
如果您曾經經歷過分區大小調整的恐懼,那麼您會想要使用 LVM。
這篇文章不僅僅是理論。在此過程中,我將展示實際的命令示例,學習某些東西的最佳方法是親身實踐。為此,我建議您使用虛擬機。
為了幫助你,我已經准備了一個簡單的 Vagrantfile,你可以用它來用 VirtualBox 啟動一個非常輕量級的虛擬機。此虛擬機具有三個額外的磁碟,您和我可以將它們用於下面的命令示例。
在文件系統的某處創建一個目錄,並將以下內容保存在該文件中,名為Vagrantfile.
或者,如果您願意,可以使用wget或curl從我的 gist 下載文件。
確保你安裝了Vagrant和VirtualBox。
一旦 Vagrantfile 就位,將環境變數設置VAGRANT_EXPERIMENTAL為disks.
最後,使用以下命令啟動虛擬機(確保您與 Vagrantfile 位於同一目錄中):
機器運行後,您可以使用vagrant sshSSH 連接到它並運行本文中的示例命令。
完成後橡坦咐請記住vagrant destroy從與 Vagrantfile 相同的目錄運行。
在您可以使用任何命令之前,您需要安裝該lvm2軟體包。這應該預裝在大多數現代發行版中,尤其是基於 Ubuntu 的發行版中。但是,在繼續之前,我不得不提到這一點。要安裝lvm2,請查閱您的發行版的文檔。
對於這個動手演練,我構建了一個具有 40G 根存儲(不重要)和三個大小為 5G 的外部磁碟的虛擬機。這些磁碟的大小是任意的。
如您所見,我將使用的設備sdc是sdd和sde。
還記得我告訴過你 LVM 包含三個主要組件嗎?
是時候一一見他們了。
關於 LVM,您首先需要了解信大的是物理卷。物理卷是用於實現抽象即邏輯卷的原材料或構建塊。簡單來說,物理卷是 LVM 系統的邏輯單元。
物理卷可以是任何東西,原始磁碟或磁碟分區。創建和初始化物理卷是一回事。兩者都意味著您只是在為進一步的操作準備構建塊(即分區、磁碟)。這將在瞬間變得更加清晰。
實用程序:pv所有管理物理卷的實用程序都以P hysical Volume的字母開頭。例如pvcreate, pvchange,pvs等pvdisplay。
您可以使用原始未分區磁碟或分區本身來創建物理卷。
正如我之前提到的,我的虛擬機連接了三個外部驅動器,讓我們從/dev/sdc.
我們使用pvcreate命令來創建物理卷。只需將設備名稱傳遞給它即可。梁純
你應該看到這樣的東西:-
接下來我將/dev/sdd分成相等的部分。使用任何工具cfdisk,,,等parted,fdisk有很多工具可以完成這項工作。
您現在可以在一個步驟中從這兩個分區中快速創建另外兩個物理卷,同時將這兩個設備傳遞給pvcreate。
看一看:-
您可以使用三個命令來獲取可用物理卷的列表pvscan,pvs和pvdisplay。您通常不需要向這些命令傳遞任何內容。
pvscan:-
pvs:-
pvdisplay:-
正如您所看到的,除了列出物理卷之外,這些命令還為您提供了大量有關這些卷的其他信息。
pvremove您可以使用該命令刪除物理卷。就像pvcreate,只需將設備(初始化為物理卷)傳遞給pvremove命令。
為了演示,我將從/dev/sdd2列表中刪除。
輸出應與此相同:-
現在列出物理卷sudo pvs
/dev/sdd2不再在這里。
卷組是物理卷的集合。它是 LVM 中的下一個抽象級別。卷組是結合了多個原始存儲設備的存儲容量的存儲池。
實用程序:所有卷組實用程序名稱都以 開頭vg,代表卷組,例如、等。vgcreatevgsvgrename
卷組是使用該vgcreate命令創建的。的第一個參數vgcreate是您要為該卷組指定的名稱,其餘的是要支持存儲池的物理卷的列表。
例子:-
列出卷組類似於列出物理卷,您可以使用具有不同詳細級別的不同命令vgdisplay、vgscan和vgs。
我個人更喜歡vgs命令,sudo vgs
您可以使用以下命令列出連接到特定卷組的所有物理卷:-
例子:-
您還可以獲得物理卷的計數。
例子:-
擴展卷組意味著向卷組添加額外的物理卷。為此,vgextend使用該命令。語法很簡單:-
讓我們將lvm_tutorial音量擴大/dev/sdd2.
專注於輸出:-
在物理卷部分,我們最終將其/dev/sdd2作為物理卷刪除,但必須將分區或原始磁碟初始化為物理卷,否則 LVM 將無法將其作為卷組的一部分進行管理。所以在將它添加到卷組之前vgextend做好准備。/dev/sdd2
現在列出附加到此卷組的物理卷,以確保安全。
輸出:-
/dev/sdd2現在按預期在列表中。
就像擴展一個卷組意味著添加另一個物理卷一樣,減少它意味著刪除一個或多個物理卷。
我們使用vgrece命令來執行此操作。一般語法如下:-
讓我們刪除物理卷/dev/sdc和/dev/sdd1.
例子:-
再次列出物理卷。
輸出:-
那兩個物理卷不見了。
現在,為了本文的其餘部分,將這兩個物理卷添加回來。
vgremove您可以使用該命令刪除邏輯卷。
現在不要運行此命令,否則您必須重新創建卷組。如果您想對其進行測試,請在本文的最後運行它。
這是您將主要使用的內容。邏輯卷就像一個分區,但它不是位於原始磁碟之上,而是位於卷組之上。你可以,
在本節中,您將學習,
實用程序 :所有卷組實用程序名稱都以 開頭lv,代表邏輯卷。例如, ,等等, ,等等
lvcreate使用該命令創建邏輯卷。常用的語法如下所示,
在虛擬機上運行以下命令:
示例輸出:
正如我之前所說,您可以將文件系統放在邏輯卷上,也可以將其掛載到文件系統的任何位置。
/dev/ / 創建後,您可以在路徑中找到邏輯卷。例如,在我們的例子中,音量將在 /dev/lvm_tutorial/lv1 .
現在您可以像使用任何分區一樣使用它。用ext4格式化,
將它安裝在當前目錄結構中的某個位置,例如/mnt,
您可以使用命令擴展邏輯卷lvextend並使用命令減小其大小lvrece。或者,您可以使用單個命令lvresize來完成這兩項任務。
首先讓我們看看卷組中是否還有剩餘空間。
輸出:-
根據輸出,我還有一些空間,所以讓我們將卷大小增加 2GB。
請記住,邏輯卷仍安裝在/mnt.
使用以下命令調整卷大小:
一般語法是這樣的:
後面的符號 + 或 --L取決於您是嘗試增加音量還是分別減小音量。
卷大小增加後,文件系統也必須調整大小。對於 ext4,要使用的命令是resize2fs.
輸出:
減少邏輯卷是一項稍微復雜的任務,我不會在本文中討論這個問題。我將把這個卷的大小減少 1GB。
lvremove您可以使用該命令刪除邏輯卷。命令語法如下:-
在虛擬機上運行此命令:-
輸出:-
在邏輯卷、物理卷和卷組上還有許多其他操作可行,但不可能將所有這些都寫到一篇文章中。
我/dev/sde在虛擬機中為您多留了一個磁碟,使用它,練習本文中的一些命令,創建一個新的卷組,擴展一個現有的卷組,只是練習。
我希望這篇文章對你有所幫助,如果你想在以後看到更多關於這方面的內容,請在下面的評論部分告訴我。