大數據 Linux筆記大全


大數據 Linux筆記大全

美女老師


一、概述

1.1 Linux的歷史

<code>操作系統,英語Operating System簡稱為OS。說道操作系統就需要先講一講Unix,UNIX操作系統,是一個強大的多用戶、多任務操作系統,支持多種處理器架構,按照操作系統的分類,屬於分時操作系統,最早由KenThompson、Dennis Ritchie和Douglas McIlroy於1969年在AT&T的貝爾實驗室開發。而linux就是一款類Unix系統。

通常人們對linux都有一個錯誤的認識,就是這個名詞"linux",其實是"linux not unix",linux是一個內核,linux系統構成包括:、Linux 內核、GNU 項目及其他項目的軟件。當然,但人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU 工程各種工具和數據庫的操作系統。/<code>

1.2 Linux 開發者


<code>林納斯·本納第克特·託瓦茲(Linus Benedict Torvalds, 1969年~ ),著名的電腦程序員、黑客。Linux內核的發明人及該計劃的合作者。託瓦茲利在大學讀書期間創造出了這套當今全球最流行的操作系統(作業系統)內核之一。/<code>

1.3 Linux發展歷史

<code>Linux操作系統的誕生、發展和成長過程始終依賴著五個重要支柱:UNIX 操作系統、MINIX 操作系統、GNU計劃、POSIX 標準和Internet 網絡。

1984年,Andrew S.Tanenbaum開發了用於教學的UNIX系統,命名為Mininx。

1989年,Andrew S.Tanenbaum將Minix系統運行於x86的PC平臺。

1990年,芬蘭赫爾辛基大學學生Linux Torvalds首次接觸Minix系統。

1991年,Linux Torvalds開始在Minix上編寫各種驅動程序等操作系統內核組件。

1991年年底,Linux Torvalds公開了Linux內核源碼0.02版(http://www.kernel.org),此版本僅僅是部分代碼。

1993年,Linux 1.0版本發行,Linux轉向GPL版本協議。


1994年,Linux的第一個商業發行版Slackware問世。

1996年,美國國家標準技術局的計算機系統實驗室確認Linux版本1.2.13符合POSIX標準。

1999年,Linux的簡體中文發行版問世。

2000年以後,Linux系統日趨成熟,湧現出大量基於Linux服務器平臺的應用,並且廣泛應用於基於ARM技術的嵌入式系統中。/<code>

Linux發展歷史還可參考:https://www.linuxprobe.com/linux-historical-chronology.html


1.4 Linux發行版

1.4.1 Linux版本Ubuntu

<code>可能這是最著名的Linux版本了,Red Hat Linux已經創造了自己的品牌,越來越多的人聽說過它。Red Hat在1994年創業,當時聘用了全世界500多名員工,他們都致力於開放的源代碼體系。
Red Hat Linux是公共環境中表現上佳的服務器。它擁有自己的公司,能向用戶提供一套完整的服務,這使得它特別適合在公共網絡中使用。這個版本的Linux也使用最新的內核,還擁有大多數人都需要使用的主體軟件包。
Red Hat Linux的安裝過程也十分簡單明瞭。它的圖形安裝過程提供簡易設置服務器的全部信息。磁盤分區過程可以自動完成,還可以選擇GUI工具完成,即使對於 Linux新手來說這些都非常簡單。選擇軟件包的過程也與其他版本類似;用戶可以選擇軟件包種類或特殊的軟件包。系統運行起來後,用戶可以從Web站點和 Red Hat那裡得到充分的技術支持。我發現Red Hat是一個符合大眾需求的最優版本。在服務器和桌面系統中它都工作得很好。Red Hat的唯一缺陷是帶有一些不標準的內核補丁,這使得它難於按用戶的需求進行定製。 Red Hat通過論壇和郵件列表提供廣泛的技術支持,它還有自己公司的電話技術支持,後者對要求更高技術支持水平的集團客戶更有吸引力。/<code>


1.4.2 Linux版本Red Hat Linux

<code>CentOS(Community ENTerprise Operating System)是Linux發行版之一,它是來自於Red Hat Enterprise Linux依照開放源代碼規定釋出的源代碼所編譯而成。由於出自同樣的源代碼,因此有些要求高度穩定性的服務器以CentOS替代商業版的Red Hat Enterprise Linux使用。兩者的不同,在於CentOS並不包含封閉源代碼軟件,CentOS 是一個基於Red Hat Linux 提供的可自由使用源代碼的企業級Linux發行版本。每個版本的 CentOS都會獲得十年的支持(通過安全更新方式)。新版本的 CentOS 大約每兩年發行一次,而每個版本的 CentOS 會定期(大概每六個月)更新一次,以便支持新的硬件。這樣,建立一個安全、低維護、穩定、高預測性、高重複性的 Linux 環境。CentOS是Community Enterprise Operating System的縮寫。
CentOS 是RHEL(Red Hat Enterprise Linux)源代碼再編譯的產物,而且在RHEL的基礎上修正了不少已知的 Bug ,相對於其他 Linux 發行版,其穩定性值得信賴。
RHEL 在發行的時候,有兩種方式。一種是二進制的發行方式,另外一種是源代碼的發行方式。/<code>


1.4.3 Linux版本CENTOS

<code>CentOS(Community ENTerprise Operating System)是Linux發行版之一,它是來自於Red Hat Enterprise Linux依照開放源代碼規定釋出的源代碼所編譯而成。由於出自同樣的源代碼,因此有些要求高度穩定性的服務器以CentOS替代商業版的Red Hat Enterprise Linux使用。兩者的不同,在於CentOS並不包含封閉源代碼軟件,CentOS 是一個基於Red Hat Linux 提供的可自由使用源代碼的企業級Linux發行版本。每個版本的 CentOS都會獲得十年的支持(通過安全更新方式)。新版本的 CentOS 大約每兩年發行一次,而每個版本的 CentOS 會定期(大概每六個月)更新一次,以便支持新的硬件。這樣,建立一個安全、低維護、穩定、高預測性、高重複性的 Linux 環境。CentOS是Community Enterprise Operating System的縮寫。 

CentOS 是RHEL(Red Hat Enterprise Linux)源代碼再編譯的產物,而且在RHEL的基礎上修正了不少已知的 Bug ,相對於其他 Linux 發行版,其穩定性值得信賴。
RHEL 在發行的時候,有兩種方式。一種是二進制的發行方式,另外一種是源代碼的發行方式。/<code>
大數據 Linux筆記大全

<code>CentOS(Community ENTerprise Operating System)是Linux發行版之一,它是來自於Red Hat Enterprise Linux依照開放源代碼規定釋出的源代碼所編譯而成。由於出自同樣的源代碼,因此有些要求高度穩定性的服務器以CentOS替代商業版的Red Hat Enterprise Linux使用。兩者的不同,在於CentOS並不包含封閉源代碼軟件,CentOS 是一個基於Red Hat Linux 提供的可自由使用源代碼的企業級Linux發行版本。每個版本的 CentOS都會獲得十年的支持(通過安全更新方式)。新版本的 CentOS 大約每兩年發行一次,而每個版本的 CentOS 會定期(大概每六個月)更新一次,以便支持新的硬件。這樣,建立一個安全、低維護、穩定、高預測性、高重複性的 Linux 環境。CentOS是Community Enterprise Operating System的縮寫。
CentOS 是RHEL(Red Hat Enterprise Linux)源代碼再編譯的產物,而且在RHEL的基礎上修正了不少已知的 Bug ,相對於其他 Linux 發行版,其穩定性值得信賴。
RHEL 在發行的時候,有兩種方式。一種是二進制的發行方式,另外一種是源代碼的發行方式。/<code>

Centos生成環境中運用的比較多,所以本次課程使用的Linux操作系統就是Centos,版本為6.5 或者6.10

官方網址:https://www.centos.org/

鏡像列表:http://isoredirect.centos.org/centos/6.10/isos/x86_64/

開源鏡像網站:https://opsx.alibaba.com/?lang=zh-CN 、 http://mirrors.163.com/ 等等


大數據 Linux筆記大全


二、Linux 安裝

2.1 物理機安裝


使用相關鏡像製作軟件(軟碟通等)製作U盤啟動盤即可,按照正常的安裝步驟安裝即可,一般來說(迷你版本)有線網卡直接會有驅動,無線網卡的驅動需要自行編譯或者查找。


2.2 虛擬機安裝

2.2.1 虛化技術

虛化技術是一個非常寬的概念,例如服務器(主機)虛化、存儲虛化、應用程序虛化、網絡虛化等等,本次課程特指服務器(主機)虛化

2.2.1.1軟件層面

  • vmare workstation
  • virtualbox
  • KVM
  • openvz
  • xen
  • qemu


2.2.1.2 硬件層面

  • Intel VT-xIntel VT即Intel公司的Virtualization Technology虛擬化技術。
    為解決純軟件虛擬化解決方案在可靠性、安全性和性能上的不足,Intel在它的硬件產品上引入了Intel VT(Virtualization Technology,虛擬化技術)。2005年8月,Intel首次公佈了針對硬件輔助虛擬化的Vanderpool(Intel VT虛擬化技術的前身)技術細節。Vanderpool技術通過增加新的指令,使得Intel處理器支持硬件虛擬化。2005年11月,Intel宣佈,虛擬化技術Vanderpool改成VT,被Acer和聯想應用在其基於Intel Pentium 4的PC上。
  • AMD AMD-VAMD-V技術(AMD虛擬化技術)是對x86處理器系統架構的一組硬件擴展和硬件輔助虛擬化技術,可以簡化純軟件的虛擬化解決方案,改進VMM(虛擬機監視器)的設計,更充分地利用硬件資源,提高服務器和數據中心的虛擬化效率。
    目前AMD提供的所有處理器均具備AMD-V虛擬化功能,不論是筆記本電腦還是刀片服務器,均可為其提供強大的虛擬化性能、安全性及可靠性。 虛擬化 (AMD-V™) 技術是一系列芯片集成功能,可幫助您更好地利用和提高虛擬化資源的性能AMD 虛擬化 (AMD-V™) 技術是一系列芯片集成功能,可幫助您更好地利用和提高虛擬化資源的性能AMD 虛擬化 (AMD-V™) 技術是一系列芯片集成功能,可幫助您更好地利用和提

所以Win10|Win7 (學習環境)安裝虛擬機需要開啟相關硬件虛化機制


2.2.2 虛擬化平臺

在學習和測試環境下,一般採用在物理機上創建虛擬機,本次課程也是這種方式

2.2.2.1 virtualbox

本次課程不涉及

<code>VirtualBox 是一款開源虛擬機軟件。VirtualBox 是由德國 Innotek 公司開發,由Sun Microsystems公司出品的軟件,使用Qt編寫,在 Sun 被 Oracle 收購後正式更名成 Oracle VM VirtualBox。Innotek 以 GNU General Public License (GPL) 釋出 VirtualBox,並提供二進制版本及 OSE 版本的代碼。使用者可以在VirtualBox上安裝並且執行Solaris、Windows、DOS、Linux、OS/2 Warp、BSD等系統作為客戶端操作系統。現在則由甲骨文公司進行開發,是甲骨文公司xVM虛擬化平臺技術的一部份。
VirtualBox號稱是最強的免費虛擬機軟件,它不僅具有豐富的特色,而且性能也很優異!它簡單易用,可虛擬的系統包括Windows(從Windows 3.1到Windows10、Windows Server 2012,所有的Windows系統都支持)、Mac OS X、Linux、OpenBSD、Solaris、IBM OS2甚至Android等操作系統!使用者可以在VirtualBox上安裝並且運行上述的這些操作系統! 與同性質的VMware及Virtual PC比較下,VirtualBox獨到之處包括遠端桌面協定(RDP)、iSCSI及USB的支持,VirtualBox在客戶端操作系統上已可以支持USB 2.0的硬件裝置,不過要安裝 VirtualBox Extension Pack。
/<code>

2.2.2.2 vmare workstation

本次課程使用的虛化平臺

<code>Mware Workstation(中文名“威睿工作站”)是一款功能強大的桌面虛擬計算機軟件,提供用戶可在單一的桌面上同時運行不同的操作系統,和進行開發、測試 、部署新的應用程序的最佳解決方案。VMware Workstation可在一部實體機器上模擬完整的網絡環境,以及可便於攜帶的虛擬機器,其更好的靈活性與先進的技術勝過了市面上其他的虛擬計算機軟件。對於企業的 IT開發人員和系統管理員而言, VMware在虛擬網路,實時快照,拖曳共享文件夾,支持 PXE 等方面的特點使它成為必不可少的工具。 

/<code>


2.2.3 vmare 介紹及系統安裝


2.2.3.1 安裝vmare

根據提供的軟件,圖形化界面,下一步即可


2.2.3.2 下載CentOS鏡像

下載CentOS 6.10 Minimal 即可,保存在本地磁盤


2.2.3.3 開始安裝

新建虛擬機
選擇典型


選擇稍後安裝
選擇版本
設置名稱和路徑
設置磁盤大小


點擊完成
配置完成
配置內存


選擇鏡像文件


開始安裝
初始界面

選擇第一個,回車即可


跳過媒體檢查

鍵盤選擇Skip,點擊確認即可


進入GUI界面


選擇語言版本

選擇語言版本,默認英語即可

選擇鍵盤佈局
選擇安裝在一般存儲上
抹掉數據
設置主機名
選擇時區
設置密碼
覆蓋系統


確認寫入磁盤
等待安裝完成
點擊重啟


登錄


登錄成功


2.2.3.4 系統初始化操作

雙網卡配置
網卡1
<code>DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes

NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.197.99
NETMASK=255.255.255.0
BROADCAST=192.168.197.255

#解釋: 雙網卡配置之網卡一 使用只粘貼上方文字
#網卡1使用NAT模式
#靜態IP
#網段與自身虛擬機配置保持一致 即可
#作為虛擬機之前通信使用
/<code>
網卡2
<code>DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp

#解釋: 雙網卡配置之網卡二 使用只粘貼上方文字
#網卡1使用橋接模式
#動態IP
#作為連接公網使用
/<code>


相關命令


<code>vi /etc/sysconfig/network-scripts/ifcfg-eth0    #配置網卡
rm -rf /etc/udev/rules.d/70-persistent-net.rules #刪除MAC地址
service network restart #重啟網絡
service iptables stop \t #關閉防火牆

chkconfig iptables off # 關閉防火牆自啟
vi /etc/sysconfig/network # 配置主機名
/<code>


三、Linux Shell


3.1 文件管理


3.1.1 ls 命令

顯示指定工作目錄下的內容及屬性信息

<code>ls 命令是Linux下最常用的指令之一。ls命令為英文單詞 list 的縮寫,正如英文單詞 list 的意思,其功能是列出指定目錄下的內容及其相關屬性信息。

默認狀態下,ls命令會列出當前目錄的內容。而帶上參數後,我們可以用ls做更多的事情。

語法格式: ls [選項] [文件]
/<code>

常用參數:

-a顯示所有文件及目錄 (包括以“.”開頭的隱藏文件)

-l使用長格式列出文件及目錄信息-r將文件以相反次序顯示(默認依英文字母次序)-t根據最後的修改時間排序-A同 -a ,但不列出 “.” (當前目錄) 及 “..” (父目錄)-S根據文件大小排序-R遞歸列出所有子目錄

3.1.2 pwd命令

顯示當前路徑

<code>pwd命令是“print working directory”中每個單詞的首字母縮寫,其功能正如所示單詞一樣,為打印工作目錄,即顯示當前工作目錄的絕對路徑。
在實際工作中,我們經常會在不同目錄之間進行切換,為了防止“迷路”,我們可以使用pwd命令快速查看當前我們所在的目錄路徑。

語法格式: pwd [參數]
/<code>

常用參數:

-L顯示邏輯路徑


3.1.3 mkdir命令

mkdir命令是“make directories”的縮寫,用來創建目錄。

<code>默認狀態下,如果要創建的目錄已經存在,則提示已存在,而不會繼續創建目錄。 所以在創建目錄時,應保證新建的目錄與它所在目錄下的文件沒有重名。
語法格式 : mkdir [參數] [目錄]
/<code>

常用參數:

-p遞歸創建多級目錄-m建立目錄的同時設置目錄的權限-z設置安全上下文-v顯示目錄的創建過程

3.1.4 cp命令

cp命令可以理解為英文單詞copy的縮寫,其功能為複製文件或目錄。


<code>cp命令可以將多個文件複製到一個具體的文件名或一個已經存在的目錄下,也可以同時複製多個文件到一個指定的目錄中。

語法格式:cp [參數] [文件]
/<code>


常用參數:

-f若目標文件已存在,則會直接覆蓋原文件-i若目標文件已存在,則會詢問是否覆蓋-p保留源文件或目錄的所有屬性-r遞歸複製文件和目錄-d當複製符號連接時,把目標文件或目錄也建立為符號連接,並指向與源文件或目錄連接的原始文件或目錄-l對源文件建立硬連接,而非複製文件-s對源文件建立符號連接,而非複製文件-b覆蓋已存在的文件目標前將目標文件備份-v詳細顯示cp命令執行的操作過程-a等價於“dpr”選項

3.1.5 mv命令

改名|移動

<code>mv命令是“move”單詞的縮寫,其功能大致和英文含義一樣,可以移動文件或對其改名。

這是一個使用頻率超高的文件管理命令,我們需要特別留意它與複製的區別:mv與cp的結果不同。mv命令好像文件“搬家”,文件名稱發生改變,但個數並未增加。而cp命令是對文件進行復制操作,文件個數是有增加的。
語法格式:mv [參數]
/<code>

常用參數:

-i若存在同名文件,則向用戶詢問是否覆蓋-f覆蓋已有文件時,不進行任何提示-b當文件存在時,覆蓋前為其創建一個備份-u當源文件比目標文件新,或者目標文件不存在時,才執行移動此操作



3.2.1 cat命令

顯示文件內容

<code>當文件內容較大時,文本內容會在屏幕上快速閃動(滾屏),用戶往往看不清所顯示的具體內容。因此對於較長文件內容可以按Ctrl+S鍵,停止滾屏;以及Ctrl+Q鍵可以恢復滾屏;而按Ctrl+C(中斷)鍵則可以終止該命令的執行。或者對於大文件,乾脆用more命令吧!

語法格式:cat [參數] [文件]
/<code>


常用參數:

-n顯示行數(空行也編號)

-s顯示行數(多個空行算一個編號)-b顯示行數(空行不編號)-E每行結束處顯示$符號-T將TAB字符顯示為 ^I符號-v使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外-e等價於”-vE”組合-t等價於”-vT”組合-A等價於 -vET組合–help顯示幫助信息–version顯示版本信息

3.2.2 echo命令

輸出字符或者 提取Shell 變量的值


<code>echo命令用於在終端設備上輸出字符串或變量提取後的值,這是在Linux系統中最常用的幾個命令之一,但操作卻非常簡單。

人們一般使用在變量前加上$符號的方式提取出變量的值,例如:$PATH,然後再用echo命令予以輸出。或者直接使用echo命令輸出一段字符串到屏幕上,起到給用戶提示的作用。

語法格式:echo [參數] [字符串]
/<code>


常用參數:

-n不輸出結尾的換行符-e “\\a”發出警告音-e “\\b”刪除前面的一個字符-e “\\c”結尾不加換行符-e “\\f”換行,光標扔停留在原來的座標位置-e “\\n”換行,光標移至行首-e “\\r”光標移至行首,但不換行-E禁止反斜槓轉移,與-e參數功能相反—version查看版本信息–help查看幫助信息

3.2.3 tail命令

查看尾部內容

<code>tail用於顯示文件尾部的內容,默認在屏幕上顯示指定文件的末尾10行。如果給定的文件不止一個,則在顯示的每個文件前面加一個文件名標題。如果沒有指定文件或者文件名為“-”,則讀取標準輸入。

語法格式:tail [參數]
/<code>

常用參數:

–retry即是在tail命令啟動時,文件不可訪問或者文件稍後變得不可訪問,都始終嘗試打開文件。使用此選項時需要與選項“——follow=name”連用-c或——bytes=輸出文件尾部的N(N為整數)個字節內容-f<name>–follow<nameldescript>:顯示文件最新追加的內容-F與選項“-follow=name”和“–retry”連用時功能相同-n或——line=輸出文件的尾部N(N位數字)行內容–pid=與“-f”選項連用,當指定的進程號的進程終止後,自動退出tail命令–help顯示指令的幫助信息–version顯示指令的版本信息/<nameldescript>/<name>

3.2.4 expr命令

命令行計數器


<code>expr命令的英文全稱是“expression”,即是表達式的意思,作用是一個命令行的計數器,常用於在UNIX/LINUX系統中求表達式變量的值,一般用於整數值,也可用於字符串。

語法格式:expr [表達式]
/<code>


常用參數:

空格隔開每個項\\(反斜槓)放在 shell 特定的字符前面“”(引號)對包含空格和其他特殊字符的字符串要用引號括起來

1、計算字串長度

<code>> expr length “this is a test”
14
/<code>

2、抓取字串

<code>> expr substr “this is a test” 3 5
is is

/<code>

3、抓取第一個字符數字串出現的位置

<code>> expr index "sarasara"  a
2
/<code>

4、整數運算

<code> > expr 14 % 9
5
> expr 10 + 10
20
> expr 1000 + 900
1900
> expr 30 / 3 / 2
5
> expr 30 \\* 3 (使用乘號時,必須用反斜線屏蔽其特定含義。因為shell可能會誤解顯示星號的意義)
90
> expr 30 * 3
expr: Syntax error
/<code>


3.2.5 grep命令

文本搜索工具


<code>grep是“global search regular expression and print out the line”的簡稱,意思是全面搜索正則表達式,並將其打印出來。這個命令可以結合正則表達式使用,它也是linux使用最為廣泛的命令。

grep命令的選項用於對搜索過程的補充,而其命令的模式十分靈活,可以是變量、字符串、正則表達式。需要注意的是:一當模式中包含了空格,務必要用雙引號將其引起來。


linux系統支持三種形式的grep命令,大兒子就是grep,標準,模仿的代表。二兒子興趣愛好多-egrep,簡稱擴展grep命令,其實和grep -E等價,支持基本和擴展的正則表達式。小兒子跑的最快-fgrep,簡稱快速grep命令,其實和grep -F等價,不支持正則表達式,按照字符串表面意思進行匹配。

語法格式: grep [參數]
/<code>


常用參數:

-i搜索時,忽略大小寫-c只輸出匹配行的數量-l只列出符合匹配的文件名,不列出具體的匹配行-n列出所有的匹配行,顯示行號-h查詢多文件時不顯示文件名-s不顯示不存在、沒有匹配文本的錯誤信息-v顯示不包含匹配文本的所有行-w匹配整詞-x匹配整行-r遞歸搜索-q禁止輸出任何結果,已退出狀態表示搜索是否成功-b打印匹配行距文件頭部的偏移量,以字節為單位-o與-b結合使用,打印匹配的詞據文件頭部的偏移量,以字節為單位


3.3 系統管理

3.3.1 rpm命令

RPM軟件管理器

<code>rpm命令是Red-Hat Package Manager(RPM軟件包管理器)的縮寫, 該命令用於管理Linux 下軟件包的軟件。在 Linux 操作系統下,幾乎所有的軟件均可以通過RPM 進行安裝、卸載及管理等操作。

概括的說,rpm命令包含了五種基本功能:安裝、卸載、升級、查詢和驗證。

語法格式:rpm [參數] [軟件包]
/<code>

常用參數:

-a查詢所有的軟件包-b或-t設置包裝套件的完成階段,並指定套件檔的文件名稱;-c只列出組態配置文件,本參數需配合”-l”參數使用-d只列出文本文件,本參數需配合”-l”參數使用-e或–erase卸載軟件包-f查詢文件或命令屬於哪個軟件包-h或–hash安裝軟件包時列出標記-i顯示軟件包的相關信息–install安裝軟件包-l顯示軟件包的文件列表-p查詢指定的rpm軟件包-q查詢軟件包-R顯示軟件包的依賴關係-s顯示文件狀態,本參數需配合”-l”參數使用-U或–upgrade升級軟件包-v顯示命令執行過程-vv詳細顯示指令執行過程

3.3.2 find命令

查找和搜索文件

<code>find命令可以根據給定的路徑和表達式查找的文件或目錄。find參數選項很多,並且支持正則,功能強大。和管道結合使用可以實現複雜的功能,是系統管理者和普通用戶必須掌握的命令。

find如不加任何參數,表示查找當前路徑下的所有文件和目錄,如果服務器負載比較高儘量不要在高峰期使用find命令,find命令模糊搜索還是比較消耗系統資源的。

語法格式:find [參數] [路徑] [查找和搜索範圍]
/<code>


常用參數

-name按名稱查找-size按大小查找-user按屬性查找-type按類型查找-iname忽略大小寫

3.3.3 crontab命令

定時任務

<code>crontab是英文“cron table”的簡寫。該命令被用來提交和管理用戶的需要週期性執行的任務,與windows下的計劃任務類似,當安裝完成操作系統後,默認會安裝此服務工具,並且會自動啟動crond進程,crond進程每分鐘會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。 


Linux下的任務調度分為兩類,系統任務調度和用戶任務調度。

系統任務調度:系統週期性所要執行的工作,比如寫緩存數據到硬盤、日誌清理等。/etc/crontab文件是系統任務調度的配置文件。用戶任務調度:用戶定期要執行的工作,比如用戶數據備份、定時郵件提醒等。用戶可以使用 crontab 工具來定製自己的計劃任務。所有用戶定義的crontab 文件都被保存在 /var/spool/cron目錄中。其文件名與用戶名一致。

語法格式:crontab [參數]
/<code>

常用參數:

-e編輯該用戶的計時器設置-l列出該用戶的計時器設置-r刪除該用戶的計時器設置-u指定要設定計時器的用戶名稱–help顯示幫助信息


3.3.4 reboot命令

重啟計算機

<code>Linux reboot命令用於用來重新啟動計算機,和Windows系統中的restart一樣。但是機器重啟必須要root用戶才有權限。 


語法格式: reboot [參數]
/<code>

常用參數:

-n在重開機前不做將記憶體資料寫回硬盤的動作 幫助-w並不會真的重開機,只是把記錄寫到 /var/log/wtmp 檔案裡-d不把記錄寫到 /var/log/wtmp 檔案裡(-n 這個參數包含了 -d)-f強迫重開機,不呼叫 shutdown 這個指令-i在重開機之前先把所有網絡相關的裝置先停止


3.3.5 halt命令

關機

<code>halt命令用來關閉正在運行的Linux操作系統,如果是線上跑了業務的服務器,執行此命令需謹慎。

halt命令會先檢測系統的runlevel,若runlevel為0或6,則關閉系統,否則即調用shutdown來關閉系統。

語法格式:halt [參數]
/<code>

常用參數

-w並不是真正的重啟或關機,只是寫wtmp(/var/log/wtmp)紀錄-d不寫wtmp紀錄(已包含在選項[-n]中)-f沒有調用shutdown而強制關機或重啟-i關機(或重啟)前關掉所有的網絡接口-p該選項為缺省選項,就是關機時調用poweroff


3.3.6 uname 命令

顯示系統信息


<code>uname命令的英文全稱即“Unix name”。

用於顯示系統相關信息,比如主機名、內核版本號、硬件架構等。

如果未指定任何選項,其效果相當於執行”uname -s”命令,即顯示系統內核的名字。

語法格式:uname [參數]
/<code>


常用參數:

-a顯示系統所有相關信息-m顯示計算機硬件架構-n顯示主機名稱-r顯示內核發行版本號-s顯示內核名稱-v顯示內核版本-p顯示主機處理器類型-o顯示操作系統名稱-i顯示硬件平臺


3.3.7 clear命令

清除屏幕


<code>clear命令用於清除屏幕。這個命令將會刷新屏幕,本質上只是讓終端顯示頁向後翻了一頁,如果向上滾動屏幕還可以看到之前的操作信息。

語法格式:clear [參數]
/<code>

常用參數:

–help在線幫助–vesion顯示版本信息


3.3.8 nohup命令

後端運行程序


<code>nohup命令的全稱為“no hang up”,該命令可以將程序以忽略掛起信號的方式運行起來,被運行的程序的輸出信息將不會顯示到終端。

無論是否將 nohup 命令的輸出重定向到終端,輸出都將附加到當前目錄的 nohup.out 文件中。如果當前目錄的 nohup.out 文件不可寫,輸出重定向到$HOME/nohup.out文件中。如果沒有文件能創建或打開以用於追加,那麼 command 參數指定的命令不可調用。如果標準錯誤是一個終端,那麼把指定的命令寫給標準錯誤的所有輸出作為標準輸出重定向到相同的文件描述符。

語法格式:nohup [參數]
/<code>

常用參數

–help在線幫助–version顯示版本信息


3.3.9 top命令

實時顯示進程狀態


<code>top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,常用於服務端性能分析。

在top命令中按f按可以查看顯示的列信息,按對應字母來開啟/關閉列,大寫字母表示開啟,小寫字母表示關閉。帶*號的是默認列。


語法格式:top [參數]
/<code>


常用參數:

-d改變顯示的更新速度,或是在交談式指令列( interactive command)按 s-q沒有任何延遲的顯示速度,如果使用者是有 superuser 的權限,則 top 將會以最高的優先序執行-c切換顯示模式-s安全模式,將交談式指令取消, 避免潛在的危機-i不顯示任何閒置 (idle) 或無用 (zombie) 的行程-n更新的次數,完成後將會退出 top-b批次檔模式,搭配 “n” 參數一起使用,可以用來將 top 的結果輸出到檔案內

3.3.10 init命令

切換系統運行級別


<code>init命令是Linux下的進程初始化工具,init進程是所有Linux進程的父進程,它的進程號為1。init命令是Linux操作系統中不可缺少的程序之一,init進程是Linux內核引導運行的,是系統中的第一個進程。

語法格式:init [參數]
/<code>

常用參數:

0關機1單用戶2多用戶3完全多用戶模式5圖形界面6重啟


3.3.11 kill命令

殺死進程

<code>kill正如這個單詞的意思一樣,就是殺死。linux系統中kill命令用來刪除執行中的程序或工作。

kill命令可將指定的信號發送給相應的進程或工作。 kill命令默認使用信號為15,用於結束進程或工作。如果進程或工作忽略此信號,則可以使用信號9,強制殺死進程或作業。

語法格式:kill [參數] [進程號]
/<code>

常用參數:

-l列出系統支持的信號-s指定向進程發送的信號-a處理當前進程時不限制命令名和進程號的對應關係-p指定kill命令只打印相關進程的進程號,而不發送任何信號

3.3.12 ps命令

顯示進程狀態

<code>ps命令是“process status”的縮寫,ps命令用於顯示當前系統的進程狀態。可以搭配kill指令隨時中斷、刪除不必要的程序。

ps命令是最基本同時也是非常強大的進程查看命令,使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程佔用了過多的資源等等,總之大部分信息都是可以通過執行該命令得到的。

語法格式:ps [參數]
/<code>

常用參數:

-a顯示所有終端機下執行的程序,除了階段作業領導者之外a顯示現行終端機下的所有程序,包括其他用戶的程序-A顯示所有程序-c顯示CLS和PRI欄位c列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,選項或常駐服務的標示-C 指定執行指令的名稱,並列出該指令的程序的狀況-d顯示所有程序,但不包括階段作業領導者的程序-e此選項的效果和指定”A”選項相同e列出程序時,顯示每個程序所使用的環境變量-f顯示UID,PPIP,C與STIME欄位f用ASCII字符顯示樹狀結構,表達程序間的相互關係-g 此選項的效果和指定”-G”選項相同,當亦能使用階段作業領導者的名稱來指定g顯示現行終端機下的所有程序,包括群組領導者的程序-G 列出屬於該群組的程序的狀況,也可使用群組名稱來指定h不顯示標題列-H顯示樹狀結構,表示程序間的相互關係-j或j採用工作控制的格式顯示程序狀況-l或l採用詳細的格式來顯示程序狀況L列出欄位的相關信息-m或m顯示所有的執行緒n以數字來表示USER和WCHAN欄位-N顯示所有的程序,除了執行ps指令終端機下的程序之外-p 指定程序識別碼,並列出該程序的狀況p 此選項的效果和指定”-p”選項相同,只在列表格式方面稍有差異r只列出現行終端機正在執行中的程序-s 指定階段作業的程序識別碼,並列出隸屬該階段作業的程序的狀況s採用程序信號的格式顯示程序狀況S列出程序時,包括已中斷的子程序資料-t 指定終端機編號,並列出屬於該終端機的程序的狀況t 此選項的效果和指定”-t”選項相同,只在列表格式方面稍有差異-T顯示現行終端機下的所有程序-u 此選項的效果和指定”-U”選項相同u以用戶為主的格式來顯示程序狀況-U 列出屬於該用戶的程序的狀況,也可使用用戶名稱來指定U 列出屬於該用戶的程序的狀況v採用虛擬內存的格式顯示程序狀況-V或V顯示版本信息-w或w採用寬闊的格式來顯示程序狀況x顯示所有程序,不以終端機來區分X採用舊式的Linux i386登陸格式顯示程序狀況-y配合選項”-l”使用時,不顯示F(flag)欄位,並以RSS欄位取代ADDR欄位– 此選項的效果和指定”p”選項相同–cols 設置每列的最大字符數–columns 此選項的效果和指定”–cols”選項相同–cumulative此選項的效果和指定”S”選項相同–deselect此選項的效果和指定”-N”選項相同–forest此選項的效果和指定”f”選項相同–headers重複顯示標題列–help在線幫助–info顯示排錯信息–lines 設置顯示畫面的列數–no-headers此選項的效果和指定”h”選項相同,只在列表格式方面稍有差異–group 此選項的效果和指定”-G”選項相同–Group 此選項的效果和指定”-G”選項相同–pid 此選項的效果和指定”-p”選項相同–rows 此選項的效果和指定”–lines”選項相同–sid 此選項的效果和指定”-s”選項相同-tty 此選項的效果和指定”-t”選項相同–user 此選項的效果和指定”-U”選項相同–User 此選項的效果和指定”-U”選項相同–version此選項的效果和指定”-V”選項相同–widty 此選項的效果和指定”-cols”選項相同


3.4 磁盤管理


3.4.1 df命令

顯示磁盤空間使用情況


<code>df命令的英文全稱即“Disk Free”,顧名思義功能是用於顯示系統上可使用的磁盤空間。默認顯示單位為KB,建議使用“df -h”的參數組合,根據磁盤容量自動變換合適的單位,更利於閱讀。

日常普遍用該命令可以查看磁盤被佔用了多少空間、還剩多少空間等信息。

語法格式: df [參數] [指定文件]
/<code>


常用參數:

-a顯示所有系統文件-B 指定顯示時的塊大小-h以容易閱讀的方式顯示-H以1000字節為換算單位來顯示-i顯示索引字節信息-k指定塊大小為1KB-l只顯示本地文件系統-t 只顯示指定類型的文件系統-T輸出時顯示文件系統類型– -sync在取得磁盤使用信息前,先執行sync命令


3.4.2 lsblk命令

查看系統的磁盤


<code>lsblk命令的英文是“list block”,即用於列出所有可用塊設備的信息,而且還能顯示他們之間的依賴關係,但是它不會列出RAM盤的信息。

lsblk命令包含在util-linux-ng包中,現在該包改名為util-linux。

語法格式:lsblk [參數]
/<code>

常用參數:

-a顯示所有設備-b以bytes方式顯示設備大小-d不顯示 slaves 或 holders-Dprint discard capabilities-e排除設備-f顯示文件系統信息-h顯示幫助信息-iuse ascii characters only-m顯示權限信息-l使用列表格式顯示-n不顯示標題-o輸出列-P使用key=”value”格式顯示-r使用原始格式顯示-t顯示拓撲結構信息


3.4.3 fdisk命令

磁盤分區

<code>fdisk命令的英文全稱是“Partition table manipulator for Linux”,即作為磁盤的分區工具。進行硬盤分區從實質上說就是對硬盤的一種格式化, 用一個形象的比喻,分區就好比在一張白紙上畫一個大方框,而格式化好比在方框裡打上格子。

語法格式:fdisk [參數]
/<code>

常用參數:

-b指定每個分區的大小-l列出指定的外圍設備的分區表狀況-s將指定的分區大小輸出到標準輸出上,單位為區塊-u搭配”-l”參數列表,會用分區數目取代柱面數目,來表示每個分區的起始地址-v顯示版本信息


3.4.4 quota命令

顯示磁盤已經使用的空間與限制


<code>quota命令用於顯示磁盤已使用的空間與限制。執行quota命令可查詢磁盤空間的限制,並得知已使用多少空間。

語法參數:quota [參數]

/<code>


常用參數:

-g列出群組的磁盤空間限制-q簡明列表,只列出超過限制的部分-u列出用戶的磁盤空間限制-v顯示該用戶或群組,在所有掛入系統的存儲設備的空間限制-V顯示版本信息


3.4.5 arpd命令

收集arp信息


<code>arpd命令是用來收集免費arp信息的一個守護進程,它將收集到的信息保存在磁盤上或者在需要時,提供給內核用戶用於避免多餘廣播。

語法格式:arpd [參數]
/<code>
<code>啟動arpd進程:
arpd -b /var/tmp/arpd.db

運行一段時間後,查看結果:
arpd -b /var/tmp/arpd.db
/<code>


參考實例

-l將arp數據庫輸出到標準輸出設備顯示並退出-f指定讀取和加載arpd數據庫的文本文件,文件的格式與“-l”輸出信息類似-b指定arpd數據庫文件,默認的位置為“/var/lib/arpd.db-a指定目標被認為死掉前查詢的次數-k禁止通過內核發送廣播查詢-n設定緩衝失效時間


3.5 文件傳輸

3.5.1 curl命令

文件傳輸命令


<code>curl命令是一個利用URL規則在shell終端命令行下工作的文件傳輸工具;它支持文件的上傳和下載,所以是綜合傳輸工具,但按傳統,習慣稱curl為下載工具。

作為一款強力工具,curl支持包括HTTP、HTTPS、ftp等眾多協議,還支持POST、cookies、認證、從指定偏移處下載部分文件、用戶代理字符串、限速、文件大小、進度條等特徵;做網頁處理流程和數據檢索自動化。


語法格式:curl [參數] [網址]
/<code>

常用參數:

-O把輸出寫到該文件中,保留遠程文件的文件名-u通過服務端配置的用戶名和密碼授權訪問

3.5.2 ftpwho命令

顯示FTP會話信息


<code>ftpwho命令用於顯示當前所有以FTP登入的用戶會話信息。

執行該命令可得知當前用FTP登入系統的用戶有哪些人,以及他們正在進行的操作。

語法格式:ftpwho [參數]
/<code>

常用參數:

-h顯示幫助信息-v詳細模式,輸出更多信息


3.5.3 fsck命令

檢查並修復Linux文件系統


<code>fsck命令的英文全稱是“filesystem check”,即檢查文件系統的意思,常用於檢查並修復Linux文件系統的一些錯誤信息,操作文件系統需要先備份重要數據,以防丟失。

Linux fsck命令用於檢查並修復Linux文件系統,可以同時檢查一個或多個 Linux 文件系統;若系統掉電或磁盤發生問題,可利用fsck命令對文件系統進行檢查。

語法格式:fsck [參數] [文件系統]
/<code>

常用參數:

-a自動修復文件系統,不詢問任何問題-A依照/etc/fstab配置文件的內容,檢查文件內所列的全部文件系統-N不執行指令,僅列出實際執行會進行的動作-P當搭配”-A”參數使用時,則會同時檢查所有的文件系統-r採用互動模式,在執行修復時詢問問題,讓用戶得以確認並決定處理方式-R當搭配”-A”參數使用時,則會略過/目錄的文件系統不予檢查-t指定要檢查的文件系統類型-T執行fsck指令時,不顯示標題信息-V顯示指令執行過程


3.6 網絡通訊


3.6.1 ping命令

測試主機間網絡連通性


<code>ping命令主要用來測試主機之間網絡的連通性,也可以用於。執行ping指令會使用ICMP傳輸協議,發出要求回應的信息,若遠端主機的網絡功能沒有問題,就會回應該信息,因而得知該主機運作正常。

不過值得我們注意的是:Linux系統下的ping命令與Windows系統下的ping命令稍有不同。Windows下運行ping命令一般會發出4個請求就結束運行該命令;而Linux下不會自動終止,此時需要我們按CTR+C終止或者使用-c參數為ping命令指定發送的請求數目。

語法格式:ping [參數] [目標主機]
/<code>

常用參數:

-d使用Socket的SO_DEBUG功能-c指定發送報文的次數-i指定收發信息的間隔時間-I使用指定的網絡接口送出數據包-l設置在送出要求信息之前,先行發出的數據包-n只輸出數值-p設置填滿數據包的範本樣式-q不顯示指令執行過程-R記錄路由過程-s設置數據包的大小-t設置存活數值TTL的大小-v詳細顯示指令的執行過程


3.6.2 netstat命令

顯示網絡狀態


<code>netstat 命令用於顯示各種網絡相關信息,如網絡連接,路由表,接口狀態 (Interface Statistics),masquerade 連接,多播成員 (Multicast Memberships) 等等。

從整體上看,netstat的輸出結果可以分為兩個部分:一個是Active Internet connections,稱為有源TCP連接,其中”Recv-Q”和”Send-Q”指%0A的是接收隊列和發送隊列。這些數字一般都應該是0。如果不是則表示軟件包正在隊列中堆積。這種情況只能在非常少的情況見到;另一個是Active UNIX domain sockets,稱為有源Unix域套接口(和網絡套接字一樣,但是隻能用於本機通信,性能可以提高一倍)。

語法格式:netstat [參數]
/<code>

常用參數:

-a顯示所有連線中的Socket-p顯示正在使用Socket的程序識別碼和程序名稱-u顯示UDP傳輸協議的連線狀況-i顯示網絡界面信息表單-n直接使用IP地址,不通過域名服務器

3.6.3 ifconfig命令

顯示或者設置網絡設備


<code>ifconfig命令的英文全稱是“network interfaces configuring”,即用於配置和顯示Linux內核中網絡接口的網絡參數。用ifconfig命令配置的網卡信息,在網卡重啟後機器重啟後,配置就不存在。要想將上述的配置信息永遠的存的電腦裡,那就要修改網卡的配置文件了。

語法格式:ifconfig [參數]
/<code>

常用參數:

add設置網絡設備IPv6的IP地址del刪除網絡設備IPv6的IP地址down關閉指定的網絡設備up啟動指定的網絡設備IP地址指定網絡設備的IP地址


3.6.4 ss命令

顯示活動套接字信息


<code>ss是Socket Statistics的縮寫。ss命令用來顯示處於活動狀態的套接字信息。它可以顯示和netstat類似的內容。但ss的優勢在於它能夠顯示更多更詳細的有關TCP和連接狀態的信息,而且比netstat更快速更高效。 


語法格式:ss [參數]
/<code>


常用參數:

-n不解析服務名稱,已數字方式顯示-a顯示所有套接字-l顯示處於監聽狀態的套接字-o顯示計時器信息-e顯示詳細的套接字信息-m顯示套接字的內存使用情況-p顯示使用套接字的進程-i顯示內部的TCP信息-s顯示套接字使用概況-4僅顯示ipv4的套接字-6僅顯示ipv6的套接字-0顯示PACKET套接字-t只顯示TCP套接字-u只顯示UDP套接字-d只顯示DCCP套接字-w只顯示RAW套接字-x只顯示 Unix套接字-D將原始TCP套接字信息轉儲到文件


3.6.5 ipcalc命令

簡單的IP地址計算器


<code>ipcalc命令的全稱是:Calculate IP information for a host(計算主機的IP信息)

ipcalc命令是一個簡單的ip地址計算器,可以完成簡單的IP地址計算任務。

語法格式: ipcalc [參數] [IP地址]
/<code>
<code>[root@GuoJiafeng01 ~]# ipcalc -h 192.168.123.129
HOSTNAME=guojiafeng01
/<code>


常用參數:

-b由給定的IP地址和網絡掩碼計算出廣播地址-h顯示給定IP地址所對應的主機名-m由給定的IP地址計算器網絡掩碼-p顯示給定的掩碼或IP地址的前綴-n由給定的IP地址和網絡掩碼計算網絡地址-s安靜模式,不顯示任何錯誤信息–help顯示幫助信息


3.7 設備管理


3.7.1 mount命令

文件系統掛載

<code>mount命令用於加載文件系統到指定的加載點。此命令的最常用於掛載cdrom,使我們可以訪問cdrom中的數據,因為你將光盤插入cdrom中,Linux並不會自動掛載,必須使用Linux mount命令來手動完成掛載。 


語法格式:mount [參數]
/<code>

常用參數:

-t指定掛載類型-l顯示已加載的文件系統列表-h顯示幫助信息並退出-V顯示程序版本-n加載沒有寫入文件“/etc/mtab”中的文件系統-r將文件系統加載為只讀模式-a加載文件“/etc/fstab”中描述的所有文件系統


3.7.2 setleds命令

設定鍵盤上方三個LED的狀態


<code>setleds即是英文詞組“set leds”的合併,翻譯為中文就是設置LED燈。setleds命令用來設定鍵盤上方三個 LED 燈的狀態。在 Linux 中,每一個虛擬主控臺都有獨立的設定。

這是一個十分神奇的命令,竟然可以通過命令來控制鍵盤的燈的狀態。

語法格式:setleds [參數]
/<code>

常用參數:

-F設定虛擬主控臺的狀態-D改變虛擬主控臺的狀態和預設的狀態-L直接改變 LED 顯示的狀態+num/-num將數字鍵打開或關閉+caps/-caps把大小寫鍵打開或關閉+scroll /-scroll把選項鍵打開或關閉


3.7.3 loadkeys命令

改變lInux鍵盤驅動程序


<code>loadkeys命令可以根據一個鍵盤定義表改變 linux 鍵盤驅動程序轉譯鍵盤輸入過程。

語法格式:loadkeys [參數] [文件]
/<code>

常用參數:

-v印出詳細的資料,你可以重複以增加詳細度-q不要顯示任何訊息-c清除所有 composite 定義-s將定串定義表清除


3.8 備份壓縮


3.8.1 unarj命令

解壓 unarj


<code>unarj命令用於解壓縮.arj文件。

語法格式:unarj [參數] [.arj壓縮文件]
/<code>

常用參數:

-e解壓縮.arj文件-l顯示壓縮文件內所包含的文件-t檢查壓縮文件是否正確-x解壓縮時保留原有的路徑


3.8.2 compress命令

unix 檔案壓縮命令

<code>compress命令是一個相當古老的 unix 檔案壓縮指令,壓縮後的檔案會加上一個 .Z 延伸檔名以區別未壓縮的檔案,壓縮後的檔案可以以 uncompress 解壓。若要將數個檔案壓成一個壓縮檔,必須先將檔案 tar 起來再壓縮。由於 gzip 可以產生更理想的壓縮比例,一般人多已改用 gzip 為檔案壓縮工具。

語法格式: compress [參數]
/<code>

常用參數:

-c輸出結果至標準輸出設備(一般指熒幕)-f強迫寫入檔案,若目的檔已經存在,則會被覆蓋 (force)-v將程序執行的訊息印在熒幕上 (verbose)-b設定共同字串數的上限,以位元計算,可以設定的值為 9 至 16 bits 。由於值越大,能使用的共同字串就 越多,壓縮比例就越大,所以一般使用預設值 16 bits (bits)-d將壓縮檔解壓縮-V列出版本訊息

3.8.3 zipinfo命令

查看壓縮文件信息


<code>zipinfo命令的全稱為“zip information”,該命令用於列出壓縮文件信息。執行zipinfo指令可得知zip壓縮文件的詳細信息。

語法格式:zipinfo [參數]
/<code>

常用參數:

-1只列出文件名稱-2此參數的效果和指定”-1″參數類似,但可搭配”-h”,”-t”和”-z”參數使用-h只列出壓縮文件的文件名稱-l此參數的效果和指定”-m”參數類似,但會列出原始文件的大小而非每個文件的壓縮率-m此參數的效果和指定”-s”參數類似,但多會列出每個文件的壓縮率-M若信息內容超過一個畫面,則採用類似more指令的方式列出信息-s用類似執行”ls -l”指令的效果列出壓縮文件內容-t只列出壓縮文件內所包含的文件數目,壓縮前後的文件大小及壓縮率-T將壓縮文件內每個文件的日期時間用年,月,日,時,分,秒的順序列出-v詳細顯示壓縮文件內每一個文件的信息-x不列出符合條件的文件的信息-z如果壓縮文件內含有註釋,就將註釋顯示出來

3.8.4 uudecode命令

還原檔案


<code>uudecode命令將uuencode編碼後的檔案還原,uudecode只會將begin與end標記之間的編碼資料還原,程序會跳過標記以外的資料。

語法格式:uuencode [參數]
/<code>


常用參數:

h列出指令使用格式v列出版本訊息


3.8.4 zipsplit命令

分割壓縮包


<code>zipsplit命令用於將較大的“zip”壓縮包分割成各個較小的“zip”壓縮包。

語法格式:zipsplit [參數]
/<code>

常用參數:

-n指定分割後每個zip文件的大小-t報告將要產生的較小的zip文件的大小-b指定分割後的zip文件的存放位置


3.8.5 gzip命令

壓縮和解壓文件

<code>gzip命令的英文是“GNUzip”,是常用來壓縮文件的工具,gzip是個使用廣泛的壓縮程序,文件經它壓縮過後,其名稱後面會多處“.gz”擴展名。

gzip是在Linux系統中經常使用的一個對文件進行壓縮和解壓縮的命令,既方便又好用。gzip不僅可以用來壓縮大的、較少使用的文件以節省磁盤空間,還可以和tar命令一起構成Linux操作系統中比較流行的壓縮文件格式。據統計,gzip命令對文本文件有60%~70%的壓縮率。減少文件大小有兩個明顯的好處,一是可以減少存儲空間,二是通過網絡傳輸文件時,可以減少傳輸的時間。

語法格式:gzip [參數]
/<code>

常用參數:

-a使用ASCII文字模式-d解開壓縮文件-f強行壓縮文件-l列出壓縮文件的相關信息-c把壓縮後的文件輸出到標準輸出設備,不去更動原始文件-r遞歸處理,將指定目錄下的所有文件及子目錄一併處理-q不顯示警告信息


3.8.6 bzip2命令

bz2的文件壓縮程序


<code>Linux系統中bzip2命令的英文是“bunzip2”,即.bz2文件格式的壓縮程序; bzip2命令系統默認是沒有安裝的,需要安裝bzip2庫才可以使用此命令。

bzip2命令採用新的壓縮演算法,壓縮效果比傳統的LZ77/LZ78壓縮演算法來得好。若沒有加上任何參數,bzip2壓縮完文件後會產生.bz2的壓縮文件,並刪除原始的文件。

語法格式:bzip2 [參數] 文件系統
/<code>


常用參數:

-c將壓縮與解壓縮的結果送到標準輸出-d執行解壓縮-fbzip2在壓縮或解壓縮時,若輸出文件與現有文件同名,預設不會覆蓋現有文件。若要覆蓋,請使用此參數-kbzip2在壓縮或解壓縮後,會刪除原始的文件。若要保留原始文件,請使用此參數-s降低程序執行時內存的使用量-t測試.bz2壓縮文件的完整性-v壓縮或解壓縮文件時,顯示詳細的信息-z強制執行壓縮

3.8.7 unzip命令

解壓縮zip文件


<code>unzip命令是用於.zip格式文件的解壓縮工具 ,unzip命令將列出、測試或從zip格式存檔中提取文件,這些文件通常位於MS-DOS系統上。

默認行為(就是沒有選項)是從指定的ZIP存檔中提取所有的文件到當前目錄(及其下面的子目錄)。一個配套程序zip(1L)創建ZIP存檔;這兩個程序都與PKWARE的PKZIP和PKUNZIP為MS-DOS創建的存檔文件兼容,但許多情況下,程序選項或默認行為是不同的。

語法格式:unzip [參數] [文件]
/<code>


常用參數:

-l顯示壓縮文件內所包含的文件-v執行時顯示詳細的信息-c將解壓縮的結果顯示到屏幕上,並對字符做適當的轉換-n解壓縮時不要覆蓋原有的文件-j不處理壓縮文件中原有的目錄路徑


3.8.8 tar 命令

<code>格式:
tar[必要參數][選擇參數][文件]
/<code>

常用參數

<code>-c: 建立壓縮檔案
-x:解壓
-t:查看內容
-r:向壓縮歸檔文件末尾追加文件
-u:更新原壓縮包中的文件
/<code>

這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的參數是根據需要在壓縮或解壓檔案時可選的。

<code>-z:有gzip屬性的
-j:有bz2屬性的
-Z:有compress屬性的
-v:顯示所有過程
-O:將文件解開到標準輸出
/<code>

下面的參數-f是必須的

<code>-f: 使用檔案名字,切記,這個參數是最後一個參數,後面只能接檔案名。
/<code>

常用命令

<code>tar 
解包:tar -xvf FileName.tar
打包:tar -cvf FileName.tar DirName

.tar.gz 和 .tgz
解壓:tar -zxvf FileName.tar.gz
壓縮:tar -zcvf FileName.tar.gz DirName
/<code>


3.9 其他命令

3.9.1 rmmod命令

刪除模塊


<code>rmmod即“remove module”的簡稱,rmmod命令用於刪除模塊。 執行rmmod命令,可刪除不需要的模塊。Linux操作系統的核心具有模塊化的特性,因此在編譯核心時,不需要吧全部功能都放入核心,可以將這些功能編譯成一個個單獨的模塊,待有需要時再分別載入它們。 


語法格式:rmmod [參數] [模塊名稱]
/<code>

常用參數:

-a刪除所有目前不需要的模塊-s把信息輸出至syslog常駐服務,而非終端機界面-v顯示指令執行的詳細信息-f強制移除模塊,使用此選項比較危險-w等待著,知道模塊能夠被除時再移除模塊


3.9.2 bc命令

浮點運算

<code>bc的英文全拼為“ Binary Calculator ”,是一種支持任意精度的交互執行的計算器語言。bash內置了對整數四則運算的支持,但是並不支持浮點運算,而bc命令可以很方便的進行浮點運算,當然整數運算也不再話下。

語法格式:bc [選項]
/<code>


常用參數:

-i強制進入交互式模式-l定義使用的標準數學庫-w定義使用的標準數學庫-q打印正常的GNU bc環境信息


四、Linux 桌面環境

本課程中以Cntos 為例,在此基礎上為其安裝桌面環境


安裝GNOME桌面

其實在Linux中有很多桌面,GNOME作為其中一種,本次課程中安裝桌面並不在實際課程中使用,只作為了解

<code>yum groupinstall "X Window System"

yum groupinstall "Desktop"

yum groupinstall "Chinese Support"

安裝完成後,直接重啟

/<code>

啟動GNOME桌面

<code>startx
/<code>


默認啟動圖形化界面

<code>修改/etc/inittab文件中的

id:3:initdefault , 將3改為5 ,重新啟動系統;
/<code>


完整版安裝

上述方法是安裝精簡版的桌面,其實可以在安裝系統的時候直接安裝桌面,但是大家在選擇鏡像的時候需要注意不是Minimal版本而是Everything版本

課程資源中提供了相關ISO鏡像文件,名稱為:CentOS-6.10-x86_64-bin-DVD1.iso,選擇此完整版鏡像即可直接安裝桌面。


五、Linux 開發環境

以CentOS 桌面環境為例,一般Linux下開發Ubuntu比較合適


5.1 Java


5.2 Mysql


5.3 Tomcat


5.4 IDEA


5.5 Chrome


5.6 Maven


5.7 Git


六、Linux Script

所有安裝基礎在於本地已經有相關的安裝軟件或者解壓縮軟件,並存放在root目錄下的app目錄下。

鏈接:https://pan.baidu.com/s/1z0B5jeTNgSjF6-wfQhd-Hw 提取碼:rcs4 複製這段內容後打開百度網盤手機App,操作更方便哦


6.1 Java一建安裝

安裝Oracle JDK 區別於Open JDK ,自動配置環境變量


<code>bash /<code>


6.2 Mysql一鍵安裝

安裝時設置密碼,打開遠程連接權限

<code>bash /<code>


6.3 Tomcat 一鍵安裝

自動配置環境變量

<code> bash /<code>


6.4 Maven 一鍵安裝

自動配置環境變量

<code> bash /<code>


七、Yum相關


7.1 介紹

<code>yum,是Yellow dog Updater Modified的簡稱,起初是由yellow dog這一發行版的開發者Terra Soft研發,用python寫成,那時還叫做yup(yellow dog updater),後經杜克大學的Linux@Duke開發團隊進行改進,遂有此名。yum的宗旨是自動化地升級,安裝/移除rpm包,收集rpm包的相關信息,檢查依賴性並自動提示用戶解決。yum的關鍵之處是要有可靠的repository,顧名思義,這是軟件的倉庫,它可以是http或ftp站點, 也可以是本地軟件池,但必須包含rpm的header, header包括了rpm包的各種信息,包括描述,功能,提供的文件,依賴性等.正是收集了這些 header並加以分析,才能自動化地完成餘下的任務。它能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。自己本身也可以做yum服務器,本身可以根據光盤鏡像做yum服務器。 

/<code>

簡而言之:yum為用戶提供軟件包管理,並在安裝的時候自動下載依賴,但是如果本地以及遠程倉庫中都沒有軟件源,則軟件的安裝將無法繼續。


7.2 yum源相關

yum源的問題也就是yum去哪裡去下載rpm軟件包的問題,默認的遠程倉庫由於地域限制,下載網速比較慢(當然是能用的),有兩種解決辦法:1 更換為本地源 2 更換為國內源


7.2.1 本地yum源(不能上網)

詳情可參考 https://blog.csdn.net/weixin_37490221/article/details/80848564

<code>優點:快、脫機操作
缺點:軟件不能得到更新,製作本地yum源麻煩
/<code>


7.2.2 遠程yum源(能夠訪問外網)

對於國內用戶的話當然是首推163的yum源,http://mirrors.163.com/.help/centos.html(注意次數是centos版本的yum源)


備份本地原有的源

<code>mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
/<code>

下載對應版本repo文件

放入/etc/yum.repos.d/(操作前請做好相應備份)

  • CentOS7
  • CentOS6
  • CentOS5

運行命令生成緩存

<code>yum clean all
yum makecache
/<code>

7.3 yum軟件

下文中提到的軟件能夠使用yum安裝,同樣也能夠使用其他方式安裝,yum一般來說安裝一些通用的環境,比如說wget curl gcc telnet等等,這裡與其說介紹yum軟件,不如說介紹linux下的軟件生態。


7.3.1 wget

下載工具 指令參考: https://www.cnblogs.com/semonxv/p/3816366.html


<code>Linux wget是一個下載文件的工具,它用在命令行下。對於Linux用戶是必不可少的工具,尤其對於網絡管理員,經常要下載一些軟件或從遠程服務器恢復備份到本地服務器。如果我們使用虛擬主機,處理這樣的事務我們只能先從遠程服務器下載到我們電腦磁盤,然後再用ftp工具上傳到服務器。這樣既浪費時間又浪費精力,那不沒辦法的事。而到了Linux VPS,它則可以直接下載到服務器而不用經過上傳這一步。wget工具體積小但功能完善,它支持斷點下載功能,同時支持FTP和HTTP下載方式,支持代理服務器和設置起來方便簡單。
/<code>


7.3.2 scp

指令參考:https://www.runoob.com/linux/linux-comm-scp.html

<code>Linux scp命令用於Linux之間複製文件和目錄。
scp是 secure copy的縮寫, scp是linux系統下基於ssh登陸進行安全的遠程文件拷貝命令。
/<code>


7.3.3 telnet

發送消息的客戶端

<code>Telnet協議是TCP/IP協議家族中的一員,是Internet遠程登陸服務的標準協議和主要方式。它為用戶提供了在本地計算機上完成遠程主機工作的能力。在終端使用者的電腦上使用telnet程序,用它連接到服務器。終端使用者可以在telnet程序中輸入命令,這些命令會在服務器上運行,就像直接在服務器的控制檯上輸入一樣。可以在本地就能控制服務器。要開始一個telnet會話,必須輸入用戶名和密碼來登錄服務器。Telnet是常用的遠程控制Web服務器的方法。 

/<code>


7.3.4 編譯環境

gcc/g++,gdb 是Linux下基礎源碼編譯環境

編譯環境可以直接使用yum進行安裝,也可以手動下載安裝。


<code>yum install  gcc  gcc-g++ gdb     
/<code>


分享到:


相關文章: