1. 程式人生 > >Linux基礎知識【網路管理,解壓縮】

Linux基礎知識【網路管理,解壓縮】

Linux基礎知識

目錄

1、VI文字編輯器... 1

2、網路管理... 4

2.1、ifconfig命令... 4

2.2、網路配置... 4

2.3、修改主機名... 8

2.4、配置主機對映(域名和IP對映)... 8

2.5、其他常用網路管理命令... 9

2.6、防火牆... 10

3、Linux系統啟動級別管理... 11

4、CRT使用... 12

5、使用者和組... 12

5.1、使用者和組的概念... 12

5.2、使用者操作... 13

5.3、組操作... 14

5.4、為使用者配置sudoer許可權... 15

5.5、切換使用者... 15

6、檔案許可權... 16

7、壓縮打包... 17

8、Linux開關機和重啟... 20

 

1、VI文字編輯器

學會使用vi編輯器是學習Linux系統的必備技術之一,因為一般的Linux伺服器是沒有GUI介面的,Linux運維及開發人員基本上都是通過命令列的方式進行文字編輯或程式編寫的。vi編輯器是Linux內建的文字編輯器,幾乎所有的類unix系統中都內建了vi編輯器,而其它編輯器則不一定,另外很多軟體會呼叫vi編輯進行內容編寫,例如crontab定時任務。較之於其它編輯器或GUI編輯器,vi編輯速度是最快的。VIM是它的增強版本,VI有三種基本工作模式,分別是:

命令模式(command mode)、或者叫一般模式

插入模式(insert mode)、或者叫編輯模式

底行模式(last line mode)、或者叫命令列模式

 

 

1、最基本用法

vi  huangbo.txt

1、首先會進入“一般模式”,此模式只接受各種命令快捷鍵,不能編輯檔案內容

2、按i鍵,就會從一般模式進入編輯模式,此模式下,敲入的都是檔案內容

3、編輯完成之後,按Esc鍵退出編輯模式,回到一般模式

4、再按,進入“底行命令模式”,輸入wq命令,回車即可儲存退出

 

2、移動游標

  1. 使用上下左右鍵可以移動游標
  2. 使用h,j,k,l,依次是向左,下,上,右移動
  3. w:將游標移動到下一個單詞的首字母處
  4. W:利用空格向後移動游標,就是忽略標點
  5. b:利用word包括標點向前移動游標
  6. B:利用空格向前移動游標,忽略標點
  7. e:將游標移動到下一個word的尾部,包括符號
  8. E: 將游標移動到下一個空格分隔字的尾部
  9. (:移動到句子開始

10、):移動到句子結束

11、0:移動游標到下一句句首

12、$:移動游標到本行行尾

13、{:移動到段落開始

14、}:移動到段落結束

15、H:螢幕頂端

16、L:螢幕底端

17、M:移動到螢幕中央位置

18、gg:直接跳到檔案的首行行首

19、G:直接跳到檔案的末行行首

20、最強游標移動:

% : 匹配括號移動,包括(, {, [.(你需要把游標先移到括號上)

*: 匹配游標當前所在的單詞,移動游標到下一個匹配單詞

#: 匹配游標當前所在的單詞,移動游標到上一個匹配單詞

 

3、常用操作

一些有用的操作(在一般模式下使用):

a   在游標後一位開始插入

A   在該行的最後插入

i    在游標前

I    在該行的最前面插入

o   在游標當前行下插入一個空行,游標位於空行行首

O    在當前行插入空行

dd    刪除游標所在行

3dd   刪除從當前行開始的3行

yy    複製游標所在行

3yy   複製從當前行開始的3行

p     paste 貼上

u     undo 撤銷

 

4、查詢並替換

(在底行命令模式中輸入)

1顯示行號

:set  nu

2 隱藏行號

:set  nonu

3 查詢關鍵字

:/you       ## 效果:查詢檔案中出現的you,並定位到第一個找到的地方,按n可以定位到下一個匹配位置(按N定位到上一個)

查詢的時候被匹配上的字串會被高亮,可以在命令模式下使用:noh取消高亮

4、直接跳轉到N行

:N

 

5、替換操作

:1 s/sad/bbb      將第一行的第一個sad替換為bbb

:1,5 s/sad/bbb     將第一行到第五行的第一個sad替換為bbb

:1,. s/sad/bbb     將第一行到游標行的第一個sad替換為bbb

:.,$ s/sad/bbb     將游標行到緩衝區最後一行的sad替換為bbb

:s/sad/bbb       查詢游標所在行的第一個sad,替換為bbb

:s/sad/bbb/g     查詢游標所在行的所有sad,替換為bbb

:%s/sad/bbb     查詢檔案中所有行第一次出現的sad,替換為bbb

:%s/sad/bbb/g   查詢檔案中所有的sad,替換為bbb

 

6、其他小技巧

r       替換游標處一個字元

R       進入替換模式,從游標處連續替換

s       刪除當前字元,進入插入模式

S       刪除當前行,進入插入模式

f + s    游標行內向後查詢第一個出現的字元s

F + s    游標行內向前查詢第一個出現的字元s

~       大小寫轉換,只轉換游標處字元

 

7、真正的寶藏

VIM詳解:http://linux.ctolib.com/cheat-sheets/view/Vim-command.html

2、網路管理

2.1、ifconfig命令

ifconfig命令主要用於配置網路介面,如果不加任何引數,則ifconfig命令用於檢視當前所有活動網路介面的狀態資訊,如下圖:

 

圖中的eth0表示活動的乙太網介面,對應的描述資訊中給出了網路的整體狀況資訊包括網路型別、MAC地址、IP地址、子網掩碼等等,lo表示本地迴環網路地址

 

ifconfig其他常用使用

-a       顯示所有網路介面,包括停用的

-s       短格式顯示網路資訊,同netstat -i

-v       顯示詳細資訊,在網路出錯的情況下適用

interface  指定網路介面

up       啟用網路介面

down    關閉網路介面

 

啟用網路:ifconfig eth0 up

禁用網路:ifconfig eth0 down

2.2、網路配置

  1. 認識一下Vmware中的虛擬機器和宿主機進行通訊三種網路方式,它們分別是:

Bridged(橋接模式)

NAT(網路地址轉換模式)

Host-Only(僅主機模式)

 

  1. Bridged(橋接模式)

橋接模式就是將主機網絡卡與虛擬機器虛擬的網絡卡利用虛擬網橋進行通訊。在橋接的作用下,類似於把物理主機虛擬為一個交換機,所有橋接設定的虛擬機器連線到這個交換機的一個介面上,物理主機也同樣插在這個交換機當中,所以所有橋接下的網絡卡與網絡卡都是交換模式的,相互可以訪問而不干擾。在橋接模式下,虛擬機器ip地址需要與主機在同一個網段,如果需要聯網,則閘道器與DNS需要與主機網絡卡一致

 

  1. Host-Only(僅主機模式)宿主

在Host-Only模式下,虛擬網路是一個全封閉的網路,它唯一能夠訪問的就是主機。其實Host-Only網路和NAT網路很相似,不同的地方就是 Host-Only網路沒有NAT服務,所以虛擬網路不能連線到Internet。主機和虛擬機器之間的通訊是通過VMware Network Adepter VMnet1虛擬網絡卡來實現的。

 

  1. NAT模式

使用NAT模式,就是讓虛擬系統藉助NAT(網路地址轉換)功能,通過宿主機器所在的網路來訪問公網。也就是說,使用NAT模式可以實現在虛擬系統裡訪問網際網路。NAT模式下的虛擬系統的TCP/IP配置資訊是由VMnet8(NAT)虛擬網路的DHCP伺服器提供的,無法進行手工修改,因此虛擬系統也就無法和本區域網中的其他真實主機進行通訊。採用NAT模式最大的優勢是虛擬系統接入網際網路非常簡單,你不需要進行任何其他的配置,只需要宿主機器能訪問網際網路即可。

 

 

  1. 我們採用NAT網路模式工作。接下來教大家怎麼配通網路,使虛擬機器既能訪問宿主機,也能訪問網際網路。
  1. 在虛擬機器軟體選單欄中找到“編輯”,開啟“虛擬網路編輯器”

 

 

  1. 在上圖中,我們修改一些資訊。

①、先看“子網IP”,這表示的就是我們的子網網段,我的是把他修改成“192.168.123.0”

②、再看“子網掩碼”,這裡寫固定的“255.255.255.0”即可

③、再看“NAT設定”:按右圖設定

④、再看“DHCP設定”,可以配置起始IP段

 

  1. 檢查我們windows系統的“網路連線”,看看是否vmnet8該網絡卡的IP是否配置正常,理應如此配置:

 

 

  1. 上述步驟都配好之後,我們的虛擬機器NAT網路工作模式就設定好了。

 

  1. 我們修改該Linux系統的IP地址,請按照修改Linux作業系統的IP地址的文件的步驟來操作。----------請移步按“資料-linux修改IP三種方式”去操作。

 

  1. 配置好了IP以後,我們來驗證一下,虛擬機器Linux作業系統和宿主機是否能互相通訊了。下面是驗證結果圖:

 

 

  1. 結果若和第6步一樣,則表示配置成功

 

2.3、修改主機名

  1. 檢視主機名

[[email protected] ~]# hostname

 

 

  1. 暫時性修改一次主機名,使用hostname命令即可

[[email protected] ~]# hostname hadoop02

 

重新登入,你就會發@符號的主機名就會變成hadoop02,不然不會馬上變

這種修改方式,只會生效一次,下一次重啟之後就失效了。

 

  1. 下面帶大家永久修改主機名

[[email protected] ~]# vi /etc/sysconfig/network

 

修改一下,使HOSTNAME等於你要修改成的主機名,然後儲存退出

 

4、重啟生效

2.4、配置主機對映(域名和IP對映)

  1. 編輯配置檔案/etc/hosts

[[email protected] ~]# vi /etc/hosts

 

  1. 往裡面加入對映關係

 

我加的是192.168.123.202對應到hadoop02(主機名),如果有多個加入多個即可

上面兩行是自帶的,不用理會

 

  1. 儲存退出即可

 

  1. 檢查是否配置成功,是否生效

 

2.5、其他常用網路管理命令

  1. ping命令

常用來測試網路連線是否正常

 

2、host命令

host命令用來進行DNS查詢

 

先確定能ping通www.baidu.com

然後用host命令可以檢視到www.baidu.com的主機host

然後通過瀏覽器訪問該地址:

 

 

3、netstat命令

         netstat命令可以顯示網路介面的很多統計資訊,包括開啟的socket和路由表

         以下是常用命令選項

-a (all)顯示所有選項,預設不顯示LISTEN相關

-t (tcp)僅顯示tcp相關選項

-u (udp)僅顯示udp相關選項

-n 拒絕顯示別名,能顯示數字的全部轉化成數字

-l 僅列出有在 Listen (監聽) 的服務狀態

 

-p 顯示建立相關連結的程式名

-r 顯示路由資訊,路由表

-e 顯示擴充套件資訊,例如uid等

-s 按各個協議進行統計

-c 每隔一個固定時間,執行該netstat命令

 

例子:

1、列出所有埠,包括監聽和未監聽的:netstat -a

2、列出所有TCP埠:netstat -at

3、列出所有UDP埠:netstat -au

4、列出所有監聽狀態的TCP埠:該命令最重要用來檢視哪個程式佔用了哪個網路埠號

netstat -nltp

 

命令詳解:http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316661.html

2.6、防火牆

防火牆根據配置檔案/etc/sysconfig/iptables來控制本機的“出、入”網路訪問行為

其對行為的配置策略有四個策略表

 

 

  1. 基礎必備技能

檢視防火牆狀態

service iptables status

開啟防火牆

service iptables start

關閉防火牆

service iptables stop

關閉防火牆開機自啟

chkconfig iptables off

設定防火牆開機自啟

chkconfig iptables on

 

  1. 擴充套件知識
  1. 列出iptables規則

iptables -L -n

列出iptables規則並顯示規則編號

iptables -L -n --line-numbers

 

  1. 列出iptables nat表規則(預設是filter表)

iptables -L -n -t nat

 

  1. 清除預設規則(注意預設是filter表,如果對nat表操作要加-t nat)

#清除所有規則

iptables -F


#重啟iptables發現規則依然存在,因為沒有儲存

service iptables restart

 

#儲存配置

service iptables save

 

  1. 禁止SSH登陸(如果伺服器在機房,一定要小心)

iptables -A INPUT -p tcp --dport 22 -j DROP

 

#刪除規則

iptables -D INPUT -p tcp --dport 22 -j DROP

                                               

加入一條INPUT規則開放80                              

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

 

3、Linux系統啟動級別管理

使用runlevel命令可以檢視系統執行的級別

[[email protected] ~]# runlevel

 

修改系統預設啟動級別:

[[email protected] ~]# vi /etc/inittab

 

# Default runlevel. The runlevels used are:

#   0 - halt (Do NOT set initdefault to this)

#   1 - Single user mode

#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)

#   3 - Full multiuser mode     ##  沒有圖形介面的全功能的多使用者的啟動級別

#   4 - unused

#   5 - X11                  ##  有圖形介面的啟動級別

#   6 - reboot (Do NOT set initdefault to this)

#

id:3:initdefault:               ##  配置預設啟動級別

## 通常將預設啟動級別設定為:3

 

4、CRT使用

給大家推薦一個命令終端工具SecureCRT,類似的遠端終端工具有XShell,Putty等等

5、使用者和組

5.1、使用者和組的概念

在最開始介紹Linux系統的時候有介紹過說Linux是一個多工多使用者的作業系統,當我們在使用ls -l命令的時候我們看到如下資訊:

 

上面七個紅框的資訊分別是:

apps:表示檔案或者目錄,具體的檔案型別是由該行最前面的那個符號表示

drwxrwxr-x:該檔案的型別和許可權資訊

6:連結數,如果是檔案則是1如果是資料夾則表示該資料夾下的子檔案夾個數

第一個hadoop:檔案或者目錄的所屬者

第二個hadoop:所屬使用者組

4096:檔案或者目錄的大小,是目錄的話一般都是4096

Mar 24 11:20:檔案的最後編輯時間

通過以上資訊得知,每個檔案都設計到使用者和組的許可權問題

在Linux中,使用者是能夠獲取系統資源的許可權的集合,組是許可權的容器

 

Linux使用者型別

使用者型別

描述

管理員root

具有使用系統所有許可權的使用者,其UID 為0

系統使用者

保障系統執行的使用者,一般不提供密碼登入系統,其UID為1-499之間

普通使用者

即一般使用者,其使用系統的許可權受限,其UID為500-60000之間.

與Linux使用者資訊相關的檔案有兩個:分別是/etc/passwd/etc/shadow

檢視檔案/etc/passwd檔案的內容,選取第一行:root:x:0:0:root:/root:/bin/bash

root:使用者名稱

x:密碼佔位符,密碼儲存在shadow檔案內

0:使用者id,UID

0:組id,GID

root:註釋資訊

/root:使用者家目錄

/bin/bash:使用者預設使用shell

 

登入名:加密口令:最後一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標誌

 

Linux使用者組型別

使用者組型別

描述

系統組

一般加入一些系統使用者

普通使用者組

可以加入多個使用者

私有組/基本組

當建立使用者時,如果沒有為其指明所屬組,則就為其定義一個私有的使用者組,起名稱與使用者名稱同名,當把其他使用者加入到該組中,則其就變成了普通組

與Linux使用者組資訊相關的檔案有兩個:分別是/etc/group和 /etc/gshadow

檢視檔案/etc/group檔案內容,選取一個普通組行:hadoop:x:500:

hadoop:組名

x:組密碼佔位符

500:組id

 

5.2、使用者操作

Linux中的使用者管理主要涉及到使用者賬號的新增、刪除和修改。所有操作都影響/etc/passwd中的檔案內容

 

  1. 新增使用者

useradd spark

usermod -G bigdata spark                     ## 設定組

usermod -c "mylove spark" spark        ## 新增備註資訊

 

一步完成:useradd -G bigdata -c "mylove" spark

 

  1. 設定密碼

passwd spark

根據提示設定密碼即可

 

  1. 修改使用者

修改spark登入名:usermod -l storm spark

spark新增到bigdataroot組:usermod -G root,bigdata spark

檢視spark的組資訊:groups spark

 

  1. 刪除使用者

userdel -r spark

加一個-r就表示把使用者及使用者的主目錄都刪除

5.3、組操作

前面我們知道,組是許可權的集合。在linux系統中,每個使用者都有一個使用者組,沒有指定時都預設為私有組,私有組名同用戶名一致,建立使用者組的好處是系統能對一個使用者組中的所有使用者的操作許可權進行集中管理。組管理涉及組的新增、刪除和修改。組的增加、刪除和修改實際上就對/etc/group檔案的更新

 

  1. 新增一個叫bigdata的組

groupadd bigdata

 

  1. 檢視系統當前有那些組

cat /etc/group

 

3、將hadoop使用者新增到bigdata組中

usermod -G bigdata spark

或者

gpasswd -a spark bigdata

 

         這兩個命令的區分記憶技巧:

命令是什麼,就證明對什麼做操作,所以最後的引數就是命令的操作物件,中間的可選項表示要幹嘛

 

4、將spark使用者從bigdata組刪除

gpasswd -d spark bigdata

 

5、將bigdata組名修改為bigspark

groupmod -n bigspark bigdata

 

6、刪除組

    groupdel bigdata

5.4、為使用者配置sudoer許可權

普通情況下,使用普通使用者進行一些簡單的操作就OK,但是普通使用者和root使用者的區別就在於root使用者能對系統做任何事,但是普通使用者就不行。處處受限。那麼假如在某些情況下,普通使用者想擁有更大的許可權做更多的事情,雖然有許可權限制,但也不是不可以。部分操作還是可以賦予更高的許可權讓普通使用者做一次。這就需要給普通使用者配置root許可權了。意思就是讓普通使用者使用root許可權去做一些操作,這當然是需要配置的。

 

用root編輯 vi /etc/sudoers

在檔案的如下位置,為hadoop新增一行即可

root     ALL=(ALL)       ALL                                                                 

hadoop  ALL=(ALL)       ALL

spark    ALL=(ALL)       ALL

 

然後,hadoop使用者和spark使用者就可以用sudo來執行系統級別的指令

[[email protected] ~]$ sudo  useradd  huangxiaoming

5.5、切換使用者

在linux的系統使用過程當中,免不了會有多個使用者來回切換使用。所以在此提供切換使用者的使用操作:切換使用者使用的命令是 suswitch user

 

從普通使用者切換到root使用者:

[[email protected] root]$ su root

## 或者

[[email protected] root]$ su

## 然後根據提示輸入密碼即可

 

從root使用者切換到普通使用者

[[email protected] root]$ su hadoop

## 不用輸入密碼

 

退出登入

[[email protected] root]$ exit

 

6、檔案許可權

  1. linux檔案許可權的描述格式解讀

d rwx r-x r-x      (也可以用二進位制表示  111 101 101  -->  755)

 

d:標識節點型別(d:資料夾   -:檔案  l:連結)

r:可讀   w:可寫    x:可執行

 

 

檔案

資料夾

r

可讀取內容

可以ls

w

可修改檔案的內容

可以在其中建立或者刪除子節點

x

能否執行這個檔案

能否cd進入這個目錄

 

u第一組rwx: ## 表示這個檔案的擁有者對它的許可權:可讀可寫可執行

g第二組r-x:  ## 表示這個檔案的所屬組使用者對它的許可權:可讀,不可寫,可執行

o第三組r-x:  ## 表示這個檔案的其他使用者(相對於上面兩類使用者)對它的許可權:可讀,不可寫,可執行

 

  1. 修改檔案許可權

chmod g-rw haha.dat                ## 表示將haha.dat對所屬組的rw許可權取消

chmod o-rw haha.dat                ## 表示將haha.dat對其他人的rw許可權取消

chmod u+x haha.dat                  ## 表示將haha.dat對所屬使用者的許可權增加x

chmod a-x haha.dat        ## 表示將haha.dat對所使用者取消x許可權

 

 

也可以用數字的方式來修改許可權

chmod  664  haha.dat

就會修改成   rw-rw-r--

如果要將一個資料夾的所有內容許可權統一修改,則可以-R引數

chmod  -R  770  aaa/

 

  1. 修改檔案所有權

<只有root許可權能執行>

chown angela  aaa                  ## 改變所屬使用者

chown :angela  aaa                 ## 改變所屬組

chown angela:angela aaa/      ## 同時修改所屬使用者和所屬組

 

7、壓縮打包

  1. gzip壓縮

gzip ma.txt

 

 

  1. gzip解壓縮

gzip -d ma.txt.gz

或者 gunzip ma.txt.gz

 

 

  1. bzip2壓縮

bzip2 ma.dat

 

 

  1. bzip2解壓縮

bzip2 -d ma.dat.bz2

或者bunzip2 ma.dat.bz2

 

 

  1. 打包

tar -cvf ma.txt.tar ma.txt

 

追加打包:

tar -rvf ma.txt.tar ma.dat

表示將ma.dat檔案追加到ma.txt.tar當中

 

  1. 解包

tar -xvf ma.txt.tar

 

 

  1. 打包並壓縮

tar -zcvf ma.tar.gz /root/ma/

 

 

  1. 解包並解壓縮(重要的事情說三遍!!!)

tar -zxvf ma.tar.gz

tar -zxvf ma.tar.gz

tar -zxvf ma.tar.gz

 

解包並解壓縮到其他指定目錄:

tar -zxvf ma.tar.gz

 

 

  1. 檢視壓縮包內容

tar -ztvf ma.tar.gz

 

10、打包並壓縮成bz2

   tar -jcvf a.tar.bz2

 

11、解壓bz2

   tar -jxvf a.tar.bz2

 

相關引數的解釋:

zgzip,通過gzip格式壓縮或者解壓縮

ccreate,建立壓縮檔案

xextract,解壓縮檔案,或者叫還原檔案

vverbose,顯示過程

ffile,指定檔案

tlist,列出檔案

j:支援bzip2壓縮和解壓縮

 

8、Linux開關機和重啟

開機:開機鍵

關機:shutdown,halt,init 0,poweroff

重啟:reboot,init 6

 

Shutdown命令詳解:

shutdown -h now  ## 立刻關機

shutdown -h +10  ##  10分鐘以後關機             

shutdown -h 12:00:00  ##12點整的時候關機