1. 程式人生 > >linux安裝與常用命令

linux安裝與常用命令

一 從認識作業系統開始

1.1 作業系統簡介

我通過以下四點介紹什麼是作業系統:

  • 作業系統(Operation System,簡稱OS)是管理計算機硬體與軟體資源的程式,是計算機系統的核心與基石;
  • 作業系統本質上是執行在計算機上的軟體程式 ;
  • 為使用者提供一個與系統互動的操作介面 ;
  • 作業系統分核心與外殼(我們可以把外殼理解成圍繞著核心的應用程式,而核心就是能操作硬體的程式)。

1.2 作業系統簡單分類

  1. Windows: 目前最流行的個人桌面作業系統 ,不做多的介紹,大家都清楚。
  2. Unix: 最早的多使用者、多工作業系統 .按照作業系統的分類,屬於分時作業系統。Unix 大多被用在伺服器、工作站,現在也有用在個人計算機上。它在建立網際網路、計算機網路或客戶端/伺服器模型方面發揮著非常重要的作用。 
  3. Linux: Linux是一套免費使用和自由傳播的類Unix作業系統.Linux存在著許多不同的Linux版本,但它們都使用了 Linux核心 。Linux可安裝在各種計算機硬體裝置中,比如手機、平板電腦、路由器、視訊遊戲控制檯、臺式計算機、大型機和超級計算機。嚴格來講,Linux這個詞本身只表示Linux核心,但實際上人們已經習慣了用Linux來形容整個基於Linux核心,並且使用GNU 工程各種工具和資料庫的作業系統。

二 初探Linux

2.1 Linux簡介

我們上面已經介紹到了Linux,我們這裡只強調三點。

  • 類Unix系統:
     Linux是一種自由、開放原始碼的類似Unix的作業系統
  • Linux核心: 嚴格來說,Linux這個詞本身只表示Linux核心
  • Linux之父: 一個程式設計領域的傳奇式人物。他是Linux核心的最早作者,隨後發起了這個開源專案,擔任Linux核心的首要架構師與專案協調者,是當今世界最著名的電腦程式設計師、黑客之一。他還發起了Git這個開源專案,併為主要的開發者。

 

2.2 Linux誕生簡介

  • 1991年,芬蘭的業餘計算機愛好者Linus Torvalds編寫了一款類似Minix的系統(基於微核心架構的類Unix作業系統)被ftp管理員命名為Linux 加入到自由軟體基金的GNU計劃中;
  • Linux以一隻可愛的企鵝作為標誌,象徵著敢作敢為、熱愛生活。

2.3 Linux的分類

Linux根據原生程度,分為兩種:

  1. 核心版本: Linux不是一個作業系統,嚴格來講,Linux只是一個作業系統中的核心。核心是什麼?核心建立了計算機軟體與硬體之間通訊的平臺,核心提供系統服務,比如檔案管理、虛擬記憶體、裝置I/O等;
  2. 發行版本: 一些組織或公司在核心版基礎上進行二次開發而重新發行的版本。Linux發行版本有很多種(ubuntu和CentOS用的都很多,初學建議選擇CentOS),如下圖所示: 

三 虛擬機器安裝CentOS7

3.1 VMware安裝CentOS7

參考:https://blog.csdn.net/guo_ridgepole/article/details/78973763

3.2 基本網路配置

VMware三種網路配置方式

  1. Bridged橋接模式(推薦):
    VMWare虛擬出來的作業系統就像是區域網中的一臺獨立的主機,它可以訪問網內任何一臺機器,你需要手工為虛擬系統配置IP地址、子網掩碼,而且還要和宿主機器處於同一網段,這樣虛擬系統才能和宿主機器進行通訊,虛擬系統和宿主機器的關係,就像連線在同一個Hub上的兩臺電腦。
  2. NAT網路地址轉換模式:
    虛擬系統藉助NAT的功能,通過宿主機所在的網路來訪問公網。在這種模式下宿主機成為雙網絡卡主機,同時參與現有的宿主區域網和新建的虛擬區域網,但由於加設了一個虛擬的NAT伺服器,使得虛擬區域網內的虛擬機器在對外訪問時,使用的則是宿主機的IP地址,這樣從外部網路來看,只能看到宿主機,完全看不到新建的虛擬區域網。
  3. Host-only主機模式:
    新建了一個由所有虛擬機器與宿主機所構成的區域網,但該區域網與宿主機本身所處的現有區域網是相互獨立的,如果不做額外路由設定,這兩個區域網之間不會連通,因此新建的區域網可以認為是一個單獨從屬於當前宿主機的私有網路,其成員為當前宿主機和相關的所有虛擬機器。

橋接模式網路配置

  1. 配置ip地址等資訊
    在 /etc/sysconfig/network-scripts/ifcfg-eno16777736檔案裡做如下配置
    TYPE=Ethernet # 網路型別為乙太網
    BOOTPROTO=static # 手動分配ip
    DEVICE=eno16777736 # 網絡卡裝置名,裝置名一定要跟檔名一致
    ONBOOT=yes # 該網絡卡是否隨網路服務啟動
    IPADDR=192.168.0.60 # 該網絡卡ip地址
    NETMASK=255.255.255.0 # 子網掩碼
    GATEWAY=192.168.0.1 # 閘道器
    DNS1=8.8.8.8 # DNS,8.8.8.8為Google提供的免費DNS伺服器的IP地址
  2. 配置網路工作
    在/etc/sysconfig/network檔案裡增加如下配置
    NETWORKING=yes # 網路是否工作,此處一定不能為no
  3. 配置公共DNS服務(可選)
    在/etc/resolv.conf檔案裡增加如下配置
    nameserver 8.8.8.8
  4. 關閉防火牆
    #systemctl stop firewalld # 臨時關閉防火牆
    #systemctl disable firewalld # 禁止開機啟動
  5. 重啟網路服務
    #service network restart

四 Linux檔案系統概覽

4.1 Linux檔案系統簡介

在Linux作業系統中,所有被作業系統管理的資源,例如網路介面卡、磁碟驅動器、印表機、輸入輸出裝置、普通檔案或是目錄都被看作是一個檔案。

也就是說在LINUX系統中有一個重要的概念:一切都是檔案。其實這是UNIX哲學的一個體現,而Linux是重寫UNIX而來,所以這個概念也就傳承了下來。在UNIX系統中,把一切資源都看作是檔案,包括硬體裝置。UNIX系統把每個硬體都看成是一個檔案,通常稱為裝置檔案,這樣使用者就可以用讀寫檔案的方式實現對硬體的訪問。

4.2 檔案目錄結構

Linux的目錄結構如下:

Linux檔案系統的結構層次鮮明,就像一棵倒立的樹,最頂層是其根目錄: 

常見目錄說明:

  • /bin: 存放二進位制可執行檔案(ls,cat,mkdir等),常用命令一般都在這裡;
  • /etc: 存放系統管理和配置檔案;
  • /home: 存放所有使用者檔案的根目錄,是使用者主目錄的基點,比如使用者user的主目錄就是/home/user,可以用~user表示;
  • /usr : 用於存放系統應用程式;
  • /opt: 額外安裝的可選應用程式包所放置的位置。一般情況下,我們可以把tomcat等都安裝到這裡;
  • /proc: 虛擬檔案系統目錄,是系統記憶體的對映。可直接訪問這個目錄來獲取系統資訊;
  • /root: 超級使用者(系統管理員)的主目錄(特權階級o);
  • /sbin: 存放二進位制可執行檔案,只有root才能訪問。這裡存放的是系統管理員使用的系統級別的管理命令和程式。如ifconfig等;
  • /dev: 用於存放裝置檔案;
  • /mnt: 系統管理員安裝臨時檔案系統的安裝點,系統提供這個目錄是讓使用者臨時掛載其他的檔案系統;
  • /boot: 存放用於系統引導時使用的各種檔案;
  • /lib : 存放著和系統執行相關的庫檔案 ;
  • /tmp: 用於存放各種臨時檔案,是公用的臨時檔案儲存點;
  • /var: 用於存放執行時需要改變資料的檔案,也是某些大檔案的溢位區,比方說各種服務的日誌檔案(系統啟動日誌等。)等;
  • /lost+found: 這個目錄平時是空的,系統非正常關機而留下“無家可歸”的檔案(windows下叫什麼.chk)就在這裡。

五 Linux基本命令

Linux命令用法一般用man命令可以檢視其幫助資訊

下面給出了一些比較常用的命令。推薦一個Linux命令快查網站,非常不錯,大家如果遺忘某些命令或者對某些命令不理解都可以在這裡得到解決。

中文Linux命令幫助大全:http://man.linuxde.net/

5.1 目錄切換命令

  • cd usr 切換到該目錄下usr目錄
  • cd ..(或cd../) 切換到上一層目錄
  • cd / 切換到系統根目錄
  • cd ~ 切換到使用者主目錄
  • cd - 切換到上一個所在目錄

5.2 目錄的操作命令(增刪改查)

  1. mkdir 目錄名稱 增加目錄
  2. ls或者ll(ll是ls -l的縮寫,ll命令以看到該目錄下的所有目錄和檔案的詳細資訊):檢視目錄資訊
  3. find 目錄 引數 尋找目錄(查)

示例:

    • 列出當前目錄及子目錄下所有檔案和資料夾: find .
    • /home目錄下查詢以.txt結尾的檔名:find /home -name "*.txt"
    • 同上,但忽略大小寫: find /home -iname "*.txt"
    • 當前目錄及子目錄下查詢所有以.txt和.pdf結尾的檔案:find . \( -name "*.txt" -o -name "*.pdf" \)find . -name "*.txt" -o -name "*.pdf"
  1. mv 目錄名稱 新目錄名稱 修改目錄的名稱(改)

注意:mv的語法不僅可以對目錄進行重新命名而且也可以對各種檔案,壓縮包等進行 重新命名的操作。mv命令用來對檔案或目錄重新命名,或者將檔案從一個目錄移到另一個目錄中。後面會介紹到mv命令的另一個用法。

  1. mv 目錄名稱 目錄的新位置 移動目錄的位置---剪下(改)

注意:mv語法不僅可以對目錄進行剪下操作,對檔案和壓縮包等都可執行剪下操作。另外mv與cp的結果不同,mv好像檔案“搬家”,檔案個數並未增加。而cp對檔案進行復制,檔案個數增加了。

  1. cp -r 目錄名稱 目錄拷貝的目標位置 拷貝目錄(改),-r代表遞迴拷貝

注意:cp命令不僅可以拷貝目錄還可以拷貝檔案,壓縮包等,拷貝檔案和壓縮包時不 用寫-r遞迴

  1. rm [-rf] 目錄: 刪除目錄(刪)

注意:rm不僅可以刪除目錄,也可以刪除其他檔案或壓縮包,為了增強大家的記憶, 無論刪除任何目錄或檔案,都直接使用rm -rf 目錄/檔案/壓縮包

5.3 檔案的操作命令(增刪改查)

  1. touch 檔名稱: 檔案的建立(增)
  2. cat /more/less/tail 檔名稱 檔案的檢視(查)
    • cat 只能顯示最後一屏內容
    • more 可以顯示百分比,回車可以向下一行, 空格可以向下一頁,q可以退出檢視
    • less 可以使用鍵盤上的PgUp和PgDn向上 和向下翻頁,q結束檢視
    • head -10 : 檢視檔案的前10行,Ctrl+C結束
    • tail -10 : 檢視檔案的後10行,Ctrl+C結束

注意:命令 tail -f 檔案 可以對某個檔案進行動態監控,例如tomcat的日誌檔案, 會隨著程式的執行,日誌會變化,可以使用tail -f catalina-2016-11-11.log 監控 文 件的變化

  1. vim 檔案 修改檔案的內容(改)

vim編輯器是Linux中的強大元件,是vi編輯器的加強版,vim編輯器的命令和快捷方式有很多,這裡列出一些常用命令。

在實際開發中,使用vim編輯器主要作用就是修改配置檔案和編寫shell指令碼,下面是一般步驟:

vim 檔案------>進入檔案----->命令模式------>按i進入編輯模式----->編輯檔案 ------->按Esc進入底行模式----->輸入:wq/q! (輸入wq代表寫入內容並退出,即儲存;輸入q!代表強制退出不儲存。)

    • 命令模式

用vim 開啟一個檔案剛開始進入的就是命令模式,在這個模式下我們可以控制游標的移動,字元,字或者行的刪除,移動複製某段區域,在該模式下可以進入插入模式也可以進入底行模式。

    • 編輯模式

在編輯模式下才可以插入文字,按Esc進入底行模式.

    • 底行模式

在底行模式下儲存檔案或者退出vim

  1. vim常用命令

1).移動游標

1.vim 可以使用小寫英文字母 h j k l 分別控制游標左 下 上 右移動,也可以使用箭頭

 2.Ctrl+b 螢幕往後移動一頁

 3.Ctrl+f 螢幕往前移動一頁

 4.Ctrl+u 螢幕往後移動半頁

 5.Ctrl+d 螢幕往前移動半頁

 6.Shift+g == G 移動到文章的最後

 7.Shift+4 == $ 移動到游標所在行的行尾

 8.Shift+6 == ^ 移動到游標所在行的行首

 9.w 游標跳到下個字的開頭

10.e 游標跳到下個字的字尾

11.b 游標回到上個字的開頭

12.#l  例如:5l ,56l 游標移動到該行的第'#'個位置

13.gg 進入到文字的開始

2).刪除文字

1.x 每按一次刪除游標所在位置的一個字元

   2.#x 栗子:6x 刪除游標所在位置的"後面"(包含自己在內)6個字元

   3.Shift+x == X 每按一次,刪除游標所在位置的前一個字元

   4.Shift+#x == #X 栗子 20X 刪除游標所在位置的前面20個字元

   5.dd 刪除游標所在行

   6.#dd 栗子 6dd 從游標所在行開始刪除6

3).複製

1.yw 將游標所在之處到字尾的字元複製到緩衝區中

    2.#yw 栗子 6yw 複製6個字元到緩衝區

    3.yy 複製游標所在行到緩衝區

    4.#yy 栗子 6yy 拷貝從游標所在的該行"往下數"6行文字

    5.p 將緩衝區內的字元貼到游標所在位置

 注意:所有與y有關的複製命令都必須與p配合才能完成複製貼上功能

4).替換

1.r 替換游標所在處的字元

    2.R 替換游標所到之處的字元,知道按下Esc鍵為止.

5).撤銷上一次的操作

u 回到上一個操作,按動多次'u'可以執行多次回覆

6).更改

1.cw 更改游標所在處的字到字尾處

    2.c#w 栗子 c3w 表示更改三個字

7).跳至指定行

1.Ctrl+g 列出游標所在行的行號

  2.#G 栗子 15G 表示移動游標到文章的第15行行首

  1. rm -rf 檔案 刪除檔案(刪)

同目錄刪除:熟記 rm -rf 檔案 即可

5.4 壓縮檔案的操作命令

1)打包並壓縮檔案:

Linux中的打包檔案一般是以.tar結尾的,壓縮的檔案一般是以.gz結尾的。

而一般情況下打包和壓縮是一起進行的,打包並壓縮後的檔案的字尾名一般.tar.gz。 命令:tar -zcvf 打包壓縮後的檔名 要打包壓縮的檔案 其中:

z:呼叫gzip壓縮命令進行壓縮

c:打包檔案

v:顯示執行過程

f:指定檔名

比如:加入test目錄下有三個檔案分別是 :aaa.txt bbb.txt ccc.txt,如果我們要打包test目錄並指定壓縮後的壓縮包名稱為test.tar.gz可以使用命令:tar -zcvf test.tar.gz aaa.txt bbb.txt ccc.txt或:tar -zcvf test.tar.gz /test/

2)解壓壓縮包:

命令:tar [-xvf] 壓縮檔案

其中:x:代表解壓

示例:

1 將/test下的test.tar.gz解壓到當前目錄下可以使用命令:tar -xvf test.tar.gz

2 將/test下的test.tar.gz解壓到根目錄/usr下:tar -xvf xxx.tar.gz -C /usr(- C代表指定解壓的位置)

5.5 Linux的許可權命令

作業系統中每個檔案都擁有特定的許可權、所屬使用者和所屬組。許可權是作業系統用來限制資源訪問的機制,在Linux中許可權一般分為讀(readable)、寫(writable)和執行(excutable),分為三組。分別對應檔案的屬主(owner),屬組(group)和其他使用者(other),通過這樣的機制來限制哪些使用者、哪些組可以對特定的檔案進行什麼樣的操作。通過 ls -l 命令我們可以 檢視某個目錄下的檔案或目錄的許可權

示例:在隨意某個目錄下ls -l

第一列的內容的資訊解釋如下:

下面將詳細講解檔案的型別、Linux中許可權以及檔案有所有者、所在組、其它組具體是什麼?

檔案的型別:

  • d: 代表目錄
  • -: 代表檔案
  • l: 代表連結(可以認為是window中的快捷方式)

Linux中許可權分為以下幾種:

  • r:代表權限是可讀,r也可以用數字4表示
  • w:代表權限是可寫,w也可以用數字2表示
  • x:代表權限是可執行,x也可以用數字1表示

檔案和目錄許可權的區別:

對檔案和目錄而言,讀寫執行表示不同的意義。

對於檔案:

許可權名稱

可執行操作

r

可以使用cat檢視檔案的內容

w

可以修改檔案的內容

x

可以將其執行為二進位制檔案

對於目錄:

許可權名稱

可執行操作

r

可以檢視目錄下列表

w

可以建立和刪除目錄下檔案

x

可以使用cd進入目錄

在linux中的每個使用者必須屬於一個組,不能獨立於組外。在linux中每個檔案有所有者、所在組、其它組的概念。

  • 所有者

一般為檔案的建立者,誰建立了該檔案,就天然的成為該檔案的所有者,用ls ‐l命令可以看到檔案的所有者 也可以使用chown 使用者名稱 檔名來修改檔案的所有者 。

  • 檔案所在組

當某個使用者建立了一個檔案後,這個檔案的所在組就是該使用者所在的組 用ls ‐l命令可以看到檔案的所有組 也可以使用chgrp 組名 檔名來修改檔案所在的組。

  • 其它組

除開檔案的所有者和所在組的使用者外,系統的其它使用者都是檔案的其它組

我們再來看看如何修改檔案/目錄的許可權。

修改檔案/目錄的許可權的命令:chmod

示例:修改/test下的aaa.txt的許可權為屬主有全部許可權,屬主所在的組有讀寫許可權, 其他使用者只有讀的許可權

chmod u=rwx,g=rw,o=r aaa.txt

上述示例還可以使用數字表示:

chmod 764 aaa.txt

補充一個比較常用的東西:

假如我們裝了一個zookeeper,我們每次開機到要求其自動啟動該怎麼辦?

  1. 新建一個指令碼zookeeper
  2. 為新建的指令碼zookeeper新增可執行許可權,命令是:chmod +x zookeeper
  3. 把zookeeper這個指令碼新增到開機啟動項裡面,命令是:chkconfig --add zookeeper
  4. 如果想看看是否新增成功,命令是:chkconfig --list

5.6 Linux 使用者管理

Linux系統是一個多使用者多工的分時作業系統,任何一個要使用系統資源的使用者,都必須首先向系統管理員申請一個賬號,然後以這個賬號的身份進入系統。

使用者的賬號一方面可以幫助系統管理員對使用系統的使用者進行跟蹤,並控制他們對系統資源的訪問;另一方面也可以幫助使用者組織檔案,併為使用者提供安全性保護。

Linux使用者管理相關命令:

  • useradd 選項 使用者名稱:新增使用者賬號
  • userdel 選項 使用者名稱:刪除使用者帳號
  • usermod 選項 使用者名稱:修改帳號
  • passwd 使用者名稱:更改或建立使用者的密碼
  • passwd -S 使用者名稱 :顯示使用者賬號密碼資訊
  • passwd -d 使用者名稱: 清除使用者密碼
  • su - 使用者名稱:切換登入使用者

useradd命令用於Linux中建立的新的系統使用者。useradd可用來建立使用者帳號。帳號建好之後,再用passwd設定帳號的密碼.而可用userdel刪除帳號。使用useradd指令所建立的帳號,實際上是儲存在/etc/passwd文字檔案中。該檔案內容的解釋:使用者名稱:密碼:使用者id:組id:使用者說明:使用者的主目錄:使用者使用的shell環境(預設為bash)

passwd命令用於設定使用者的認證資訊,包括使用者密碼、密碼過期時間等。系統管理者則能用它管理系統使用者的密碼。只有管理者可以指定使用者名稱稱,一般使用者只能變更自己的密碼。

5.7 Linux系統使用者組的管理

每個使用者都有一個使用者組,系統可以對一個使用者組中的所有使用者進行集中管理。不同Linux 系統對使用者組的規定有所不同,如Linux下的使用者屬於與它同名的使用者組,這個使用者組在建立使用者時同時建立。

使用者組的管理涉及使用者組的新增、刪除和修改。組的增加、刪除和修改實際上就是對/etc/group檔案的更新。

Linux系統使用者組的管理相關命令:

  • groupadd 選項 使用者組 :增加一個新的使用者組
  • groupdel 使用者組:要刪除一個已有的使用者組
  • groupmod 選項 使用者組 : 修改使用者組的屬性

5.8 其他常用命令

  • pwd 顯示當前所在位置
  • grep 要搜尋的字串 要搜尋的檔案 --color 搜尋命令,--color代表高亮顯示
  • ps -ef/ps aux 這兩個命令都是檢視當前系統正在執行程序,兩者的區別是展示格式不同。如果想要檢視特定的程序可以使用這樣的格式:ps aux|grep redis (檢視包括redis字串的程序)

注意:如果直接用ps((Process Status))命令,會顯示所有程序的狀態,通常結合grep命令檢視某程序的狀態。

  • kill -9 程序的pid 殺死程序(-9 表示強制終止。)

先用ps查詢程序,然後用kill殺掉

  • 網路通訊命令:
    • 檢視當前系統的網絡卡資訊:ifconfig
    • 檢視與某臺機器的連線情況:ping
    • 檢視當前系統的埠:netstat
      • an 所有的連線和埠
      • tuln 檢視正在監聽TCP(t)和UDP(u)的埠 ,例如:netstat -tuln | grep LISTEN
      • rn 檢視閘道器 route -n
  • ln 建立連結檔案
    • 建立軟連結檔案:ln -s [原始檔] [目標檔案] (硬連結不需-s選項)
      • 軟連結特點:許可權是所有人都可以訪問,並且軟連線檔案指向原始檔。
      • 軟連結就像windows系統中的快捷方式一樣,特點也都類似。
      • 硬連結:類似copy,硬連結大小和原始檔一樣,並且是同步更新的。
  • shutdown shutdown -h now: 指定現在立即關機;shutdown +5 "System will shutdown after 5 minutes":指定5分鐘後關機,同時送出警告資訊給登入使用者。
  • reboot reboot 重開機。reboot -w 做個重開機的模擬(只有紀錄並不會真的重開機)。

六 安裝JDK

6.1 用JDK安裝包安裝

  1. 檢視是否已經安裝JDK:rpm -qa | grep -i java
  2. 若有則刪除:rpm -e --nodeps java-xxx,刪除所有相關的java
  3. 下載jdk8安裝包,將gz壓縮檔案放到指定目錄如/usr/local,解壓:tar -zxvf jdk-8u181-linux-x64.tar.gz
  4. 設定全域性變數:vim /etc/profile,追加
    JAVA_HOME=/usr/local/jdk1.8.0_181
    CLASSPATH=$JAVA_HOME/lib/
    PATH=$PATH:$JAVA_HOME/bin
    export PATH JAVA_HOME CLASSPATH
  5. source /etc/profile
  6. java -version

6.2 用yum方式安裝(無需配置環境變數)

  1. 檢索yum中有沒有java1.8的包:yum list java-1.8*
  2. yum install java-1.8.0-openjdk* -y