1. 程式人生 > >大資料技術之 Linux 基礎

大資料技術之 Linux 基礎

 

一、Linux 入門概述

    1. 概述

Linux 核心最初只是由芬蘭人林納斯·託瓦茲(Linus Torvalds)在赫爾辛基大學上學時出於個人愛好而編寫的。

Linux 是一套免費使用和自由傳播的類 Unix 作業系統,是一個基於 POSIX 和 UNIX 的多使用者、多工、支援多執行緒和多 CPU 的作業系統。Linux 能執行主要的 UNIX 工具軟體、應用程式和網路協議。它支援 32 位和 64 位硬體。Linux 繼承了 Unix 以網路為核心的設計思想,是一個性能穩定的多使用者網路作業系統。

目前市面上較知名的發行版有:Ubuntu、RedHat、CentOS、Debain、Fedora、SuSE、

 

OpenSUSE

    1. 下載地址

centos 下載地址:

 

網易映象:http://mirrors.163.com/centos/6/isos/ 搜狐映象:http://mirrors.sohu.com/centos/6/isos/

    1. Linux 特點

Linux 裡面一切皆是檔案

Linux 裡面沒有後綴名這一說

    1. Linux Windows 區別

目前國內 Linux 更多的是應用與伺服器上,而桌面作業系統更多使用的是 window。主要區別如下。

 

 

 

UNIX 傳承下來,基本命令和

操作方法也幾乎一致。

驅動 程式

驅動程式豐富,版本更新頻繁。預設安裝程式裡面一般包含有該版本釋出時流行的硬體驅動程式,之後所出的新硬體驅動依賴於硬體廠商提供。對於一些老硬體,如果沒有了原配的驅動有時候很難支援。另外,有時硬體廠商未提供所需版本的 Windows 下的驅動,也會比較頭痛。

由志願者開發,由 Linux 核心開發小組釋出,很多硬體廠商基於版本考慮並未提供驅動程式,儘管多數無需手動安裝, 但是涉及安裝則相對複雜,使得新使用者面對驅動程式問題會一籌莫展。但是在開源開發模式下,許多老硬體儘管在 

Windows 下很難支援的也容易找到驅動。HP、Intel、AMD 等硬體廠商逐步不同程式支援

開源驅動,問題正在得到緩解。

使用

使用比較簡單,容易入門。圓形化介面對沒

有計算機背景知識的使用者使用十分有利。

圓形介面使用簡單,容易入門。

文字介面,需要學習才能掌握。

學習

系統構造複雜、變化頻繁、且知識、技能淘汰快,深入學習困難

系統構造簡單、穩定,且知識、技能傳承性好,深入學習相對

容易

軟體

每一種特定功能可能都需要商業軟體的支

持,需要購買相應的授權

大部分軟體都可以自由獲取,

同樣功能的軟體選擇較少。

 

二、VM 安裝相關

    1. 安裝 VMWare 虛擬機器

 

 
 

 

 

 

 
 

 

 

 
 

 

 

 
 

 

 

 
 

 

 

 

 
 

 

 

 

 
 

 

    1. 安裝 CentOS

 

 
 

尚矽谷大資料技術之安裝CentOS.doc

 

    1. 安裝 VMTools 工具
      1. 什麼是 VMtools

 

VM tools 顧名思義就是 Vmware 的一組工具。主要用於虛擬主機顯示優化與調整,另外

 

還可以方便虛擬主機與本機的互動,如允許共享資料夾,甚至可以直接從本機向虛擬主機拖放檔案、滑鼠無縫切換、顯示解析度調整等,十分實用。

      1.  
 
 

先啟動 CentOS 併成功登入如下圖,發現底部提示且視窗中等大小,準備安裝

      1. 選擇虛擬機器選單欄--安裝 VMware tools

 

 
 
      1. 光碟機自動掛載 VMTools

 

      1. 右鍵解壓 VMwaretools-9.6.2-1688356.tar.gz

 

進入資料夾並確認看到 vmware-install.pl 檔案

 

 
 

 

      1. 執行 vmware-install.pl 檔案

 

 
 

 

最後用“./vmware-install.pl”命令來執行該安裝程式,然後根據螢幕提示一路回車。到此整個安裝過程算是完成了。

      1. 直接按到/dev/hdc...停止為止,安裝完成

 

 

      1. 重啟 CentOS, 這時候螢幕變成全屏了

 

 
 
      1. 設定共享資料夾,實現 Windows ß àCentOS 檔案共享

 

 

 

 
 

 

 

 
 

 

 

 

 

    1.  
 
 

虛擬機器螢幕保護設定

 

 

 

 

 

 

 

    1. IVT 虛擬化支援
  1. 異常情況

 

 
 

 

 

 
 

 

 

 
 

 

 

  1. 宿主機 BIOS 設定中的硬體虛擬化被禁用了需要開啟筆記本 BIOS 中的 IVT 對虛擬化的支援

 

三、Linux 目錄結構

    1. 概覽

 

 
 
    1. 樹狀目錄結構

 

 
 

/bin:是Binary的縮寫,這個目錄存放著系統必備執行命令

 

/boot:這裡存放的是啟動Linux時使用的一些核心檔案,包括一些連線檔案以及映象檔案,自己的安裝別放這裡

/dev:Device(裝置)的縮寫,該目錄下存放的是Linux的外部裝置,在Linux中訪問裝置的

方式和訪問檔案的方式是相同的。

 

/etc所有的系統管理所需要的配置檔案和子目錄。

 

/home存放普通使用者的主目錄,在Linux中每個使用者都有一個自己的目錄,一般該目錄名是以使用者的賬號命名的。

/lib:系統開機所需要最基本的動態連線共享庫,其作用類似於Windows裡的DLL檔案。幾乎所有的應用程式都需要用到這些共享庫。

/lost+found:這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些檔案。

/media:linux系統會自動識別一些裝置,例如U盤、光碟機等等,當識別後,linux會把識別的裝置掛載到這個目錄下。

/misc: 該目錄可以用來存放雜項檔案或目錄,即那些用途或含義不明確的檔案或目錄可以存放在該目錄下。

/mnt系統提供該目錄是為了讓使用者臨時掛載別的檔案系統的,我們可以將光碟機掛載在

/mnt/上,然後進入該目錄就可以檢視光碟機裡的內容了。

/net 存放著和網路相關的一些檔案.

 

/opt這是給主機額外安裝軟體所擺放的目錄。比如你安裝一個ORACLE資料庫則就可以放到這個目錄下。預設是空的。

/proc:這個目錄是一個虛擬的目錄,它是系統記憶體的對映,我們可以通過直接訪問這個目錄來獲取系統資訊。

/root該目錄為系統管理員,也稱作超級許可權者的使用者主目錄。

/sbin:s就是Super User的意思,這裡存放的是系統管理員使用的系統管理程式。

 

/selinux:這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,類似於

windows的防火牆

 

/srv:service縮寫,該目錄存放一些服務啟動之後需要提取的資料。

/sys: 這是linux2.6核心的一個很大的變化。該目錄下安裝了2.6核心中新出現的一個檔案系統 sysfs 。

/tmp這個目錄是用來存放一些臨時檔案的。

 

/usr這是一個非常重要的目錄,使用者的很多應用程式和檔案都放在這個目錄下,類似與windows下的program files目錄。

/var這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日誌檔案。

 

四、系統管理操作

    1. 檢視網路 IP 和閘道器
  1.  
 
 

檢視虛擬網路編輯器

  1. 修改 ip 地址

 

 
 
  1. 檢視閘道器

 

 

 

    1. 配置網路 ip 地址
  1. 檢視當前ip基本語法: [[email protected] /]# ifconfig
  2. 在終端命令視窗中輸入

 

[[email protected] /]#vim /etc/udev/rules.d/70-persistent-net.rules

 

進入如下頁面,刪除 eth0 該行;將 eth1 修改為 eth0,同時複製物理 ip 地址

 

 
 

 

  1. 修改 IP 地址

 

[[email protected] /]#vim /etc/sysconfig/network-scripts/ifcfg-eth0

 

需要修改的內容有 5 項: IPADDR=192.168.11.106 GATEWAY=192.168.11.2

ONBOOT=yes BOOTPROTO=static DNS1=8.8.8.8

    1. 修改前

 

    1. 修改後

 

 
 

:wq 儲存退出

  1.  
 
 

執行 service network restart

  1. 如果報錯,reboot,重啟虛擬機器
    1. 配置主機名
  1. 檢視主機名基本語法: [[email protected] /]#hostname
  2. 修改 linux 的 hosts 檔案

 

    1. 進入 Linux 系統檢視本機的主機名。通過 hostname 命令檢視

 

[[email protected] ~]# hostname

 

hadoop1.atguigu.com

 

    1. 如果感覺此主機名不合適,我們可以進行修改。通過編輯/etc/sysconfig/network 檔案

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

 

 

檔案中內容NETWORKING=yes NETWORKING_IPV6=no

HOSTNAME= hadoop102

 

注意:主機名稱不要有“_”下劃線

    1. ) 開啟此檔案後, 可以看到主機名。修改此主機名為我們想要修改的主機名

 

hadoop102

    1. 儲存退出。

 

    1. 開啟/etc/hosts

 

[[email protected] /]# vim /etc/hosts

 

新增如下內容

 

192.168.11.102 hadoop102

 

    1. 並重啟裝置,重啟後,檢視主機名,已經修改成功
  1. 修改 window7 的 hosts 檔案

 

  1. 進入 C:\Windows\System32\drivers\etc 路徑
  2. 開啟 hosts 檔案並新增如下內容

 

192.168.11.101 hadoop101

 

192.168.11.102 hadoop102

 

192.168.11.103 hadoop103

 

192.168.11.104 hadoop104

 

192.168.11.105 hadoop105

 

192.168.11.106 hadoop106

 

192.168.11.107 hadoop107

 

192.168.11.108 hadoop108

 

    1. 防火牆
  1. 基本語法:

service iptables status (功能描:檢視火牆狀chkconfig iptables –list (功能描:檢視火牆開啟動狀service iptables stop (功能描:臨時閉防火chkconfig iptables off (功能描:關閉火牆開啟動chkconfig iptables on (功能描:開啟火牆開啟動

  1. 擴充套件

Linux 系統有 7 個執行級別(runlevel)

 

執行級別 0:系統停機狀態,系統預設執行級別不能設為 0,否則不能正常啟動執行級別 1:單使用者工作狀態,root 許可權,用於系統維護,禁止遠端登陸

執行級別 2:多使用者狀態(沒有 NFS)

執行級別 3:完全的多使用者狀態(有NFS),登陸後進入控制檯命令列模式執行級別 4:系統未使用,保留

執行級別 5:X11 控制檯,登陸後進入圖形 GUI 模式

 

執行級別 6:系統正常關閉並重啟,預設執行級別不能設為 6,否則不能正常啟動

    1. 關機重啟

在 linux 領域內大多用在伺服器上,很少遇到關機的操作。畢竟伺服器上跑一個服務是永無止境的,除非特殊情況下,不得已才會關機 。

正確的關機流程為:sync > shutdown > reboot > halt

 

  1. 基本語法:
    1. sync (功能描述:將資料由記憶體同步到硬碟中)

 

    1. shutdown [選項] 時間選項:

-h:關機

-r:重啟

 

    1. halt (功能描述:關閉系統,等同於 shutdown –h now 和 poweroff)
    2. reboot (功能描述:就是重啟,等同於 shutdown –r now)

 

  1. 案例

 

  1. 將資料由記憶體同步到硬碟中

 

[[email protected] /]#sync

 

  1. 計算機將在 10 分鐘後關機,並且會顯示在登入使用者的當前螢幕中

 

[[email protected] /]#shutdown –h 10 ‘This server will shutdown after 10 mins’

 

  1. 立馬關機

 

[[email protected] /]# shutdown –h now

 

  1. 系統立馬重啟

 

[[email protected] /]# shutdown –r now

 

  1. 重啟(等同於 shutdown –r now) [[email protected] /]# reboot
  2. 關機(等同於 shutdown –h now 和 poweroff) [[email protected] /]#halt

注意:不管是重啟系統還是關閉系統,首先要執行 sync 命令,把記憶體中的資料寫到磁碟中。

    1. 找回 root 密碼

重新安裝系統嗎?當然不用!進入單使用者模式更改一下 root 密碼即可。

 

      1. 重啟 Linux,見到下圖,在 3 秒鐘之內按下回車

 

 
 

 

      1. 三秒之內要按一下回車,出現如下介面

 

      1.  
 
 

按下 e 鍵就可以進入下圖

      1. 移動到下一行,再次按 e 鍵

 

      1.  
 
 

移動到下一行,進行修改

 

修改完成後回車鍵,然後按 b 鍵進行重新啟動進入系統

 

      1. 移動到下一行,進行修改

 

 

 

 

 
 

最終修改完密碼,reboot 一下即可。

 

五、遠端登入

    1. 安裝 SecureCRT

Linux 遠端登入及相關工具介紹

 

Linux 一般作為伺服器使用,而伺服器一般放在機房,你不可能在機房操作你的 Linux

伺服器。這時我們就需要遠端登入到 Linux 伺服器來管理維護系統。

 

Linux 系統中是通過 SSH 服務實現的遠端登入功能,預設 ssh 服務埠號為 22。Window

系統上 Linux 遠端登入客戶端有 SecureCRT, Putty, SSH Secure Shell,XShell 等

 

      1. 安裝步驟

 

 

 
 
 
 

 

 

 

 

 
 

 

      1. 操作

 

        1. 滑鼠選中即為複製
        2. 滑鼠右鍵即為貼上

 

 
 
 
 

 

    1. SecureCRT 中文亂碼解決方法
  1. 重新檢視會話,是否中文顯示正常

 

  1. 依然無法正常顯示中文,可能是由於 Linux 系統中預設的字元編碼非 UTF8 所致用 root 使用者登入。輸入 cat /etc/sysconfig/i18n

如果安裝系統為中文系統,則修改【LANG=“zh_CN.UTF-8”】如果安裝系統為英文系統,則修改【LANG=“en_US.UTF-8”】儲存檔案。 斷開 SSH,重新登入。就正常了

下面是修改後的檢視

 

[[email protected] ~]# cat /etc/sysconfig/i18n LANG="zh_CN.UTF-8"

  1. 調整設定 CRT 解決

 

 
 

 

六、使用者和使用者組管理命令

    1. 使用者管理命令
      1. useradd 新增新使用者
  1. 基本語法:

 

useradd 使用者名稱 (功能描述:新增新使用者)

  1. 案例:

 

[[email protected] opt]# user atguigu

      1. passwd 設定使用者密碼
  1. 基本語法:

 

passwd 使用者名稱 (功能描述:設定使用者密碼)

  1. 案例

 

[[email protected] opt]# passwd atguigu

      1. id 判斷使用者是否存在
  1. 基本語法:

 

id 使用者名稱

  1. 案例:

 

[[email protected] opt]#id atguigu

      1. su 切換使用者
  1. 基本語法:

 

su 使用者名稱稱 (功能描述:切換使用者)

  1. 案例

 

[[email protected] opt]#su atguigu

      1. userdel 刪除使用者
  1. 基本語法:

 

    1. userdel 使用者名稱 (功能描述:刪除使用者但儲存使用者主目錄)
    2. userdel -r  使用者名稱 (功能描述:使用者和使用者主目錄,都刪除)

 

  1. 案例:

 

  1. 刪除使用者但儲存使用者主目錄

 

[[email protected] opt]#userdel atguigu

 

  1. 刪除使用者和使用者主目錄,都刪除

 

[[email protected] opt]#userdel –r atguigu

      1. who 檢視登入使用者資訊
  1. 基本語法

(1)whoami (功能描述:顯示自身使用者名稱稱)

 

 
 
 
 

 

 

  1. 案例

 

[[email protected] opt]# whoami [[email protected] opt]# who am i [[email protected] opt]# who

      1. 設定 atguigu 普通使用者具有 root 許可權
  1. 修改配置檔案

修改 /etc/sudoers 檔案,找到下面一行,在 root 下面新增一行,如下所示:

 

 
 

修改完畢,現在可以用 atguigu 帳號登入,然後用命令 su - ,即可獲得 root 許可權進行操作。

  1. 案例

 

[[email protected] opt]$ sudo mkdir module [[email protected] opt]# chown atguigu:atguigu module/

      1. usermod 修改使用者 (講完後面的使用者組知識點後再回來講解)
  1. 基本語法:

usermod -g 使用者組 使用者名稱

 

  1. 案例:

 

將使用者atguigu加入dev使用者組

[[email protected] opt]#usermod –g dev atguigu

    1. 使用者組管理命令後面講

每個使用者都有一個使用者組,系統可以對一個使用者組中的所有使用者進行集中管理。不同

 

Linux 系統對使用者組的規定有所不同,

 

如Linux下的使用者屬於與它同名的使用者組,這個使用者組在建立使用者時同時建立。

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

 

/etc/group檔案的更新。

      1. groupadd 新增組
  1. 基本語法

 

groupadd 組名

  1. 案例:

 

新增一個atguigu組

 

[[email protected] opt]#groupadd atguigu

      1. groupdel 刪除組
  1. 基本語法:

groupdel 組名

 

  1. 案例

 

[[email protected] opt]# groupdel atguigu

      1. groupmod 修改組
  1. 基本語法:

groupmod -n 新組名 老組名

 

  1. 案例

修改atguigu組名稱為atguigu1

 

[[email protected] atguigu]# groupmod –n atguigu1 atguigu

      1. 綜合案例

[[email protected] atguigu]# groupadd dev

 

[[email protected] atguigu]# groupmod -n device dev [[email protected] atguigu]# usermod -g device atguigu [[email protected] atguigu]# su atguigu [[email protected] ~]$ mkdir atguigu [[email protected] ~]$ ls -l

drwxr-xr-x. 2 atguigu device 4096 5月 27 16:31 atguigu [[email protected] atguigu]# usermod -g atguigu atguigu

七、常用基本命令

    1. 幫助命令
      1. man 獲得幫助資訊
  1. 基本語法:

man [命令或配置檔案] (功能描述:獲得幫助資訊)

 

    1. 顯示說明

 

 
 

NAME 命令的名稱和單行描述

 

SYNOPSIS 怎樣使用命令

DESCRIPTION 命令功能的深入討論

 

EXAMPLES 怎樣使用命令的例子

SEE ALSO 相關主題(通常是手冊頁)

 

    1. 數字說明 q

 

  1. 使用者在 shell 環境中可以操作的命令或是可執行的檔案

 

  1. 系統核心(kernel)可以呼叫的函式
  2. 常用的函式 or 函式庫

 

  1. 裝置配置檔案
  2. 配置檔案的格式

 

  1. 遊戲相關
  2. linux 網路協議和檔案系統

 

 

 

 

 

  1. 案例
  1. 系統管理員可以用的命令
  2. 跟核心有關係的檔案

 

[[email protected] home]# man ls

      1. help 獲得 shell 內建命令的幫助資訊
  1. 基本語法:

 

help 命令 (功能描述:獲得 shell 內建命令的幫助資訊)

  1. 案例:

 

[[email protected] bin]# help cd

      1. 常用快捷鍵

1ctrl + c:停止程序2ctrl+l:清屏3ctrl + q:退出

  1. 善於用 tab
  2. 上下鍵:查詢執行過的命令

 

6ctrl +altlinux Windows 之間切換

    1. 檔案目錄類
      1. pwd 顯示當前工作目錄的絕對路徑
        1. 基本語法:

pwd (功能描述:顯示當前工作目錄的絕對路徑)

        1. 案例

 

[[email protected] home]# pwd

 

/home

      1. ls 列出目錄的內容
  1. 基本語法:

 

ls [選項] [目錄或是檔案]

選項:

 

-a :全部的檔案,連同隱藏檔( 開頭為 . 的檔案) 一起列出來(常用)

-d :僅列出目錄本身,而不是列出目錄內的檔案資料(常用)

 

-l :長資料串列出,包含檔案的屬性與許可權等等資料;(常用)

每行列出的資訊依次是: 檔案型別與許可權 連結數 檔案屬主 檔案屬組 檔案大小用

 

byte來表示 建立或最近修改的時間 名字

  1. 案例

[[email protected] ~]$ ls -al

總用量 44

drwx------. 5 atguigu atguigu 4096 5 27 15:15 .

drwxr-xr-x. 3 root root 4096 5 27 14:03 ..

drwxrwxrwx. 2 root root 4096 5 27 14:14 hello

-rwxrw-r--. 1 atguigu atguigu 34 5 27 14:20 test.txt

      1. mkdir 建立一個新的目錄
  1. 基本語法:

mkdir [-p] 要建立的目錄選項:

-p:建立多層目錄

 

  1. 案例

 

[[email protected] opt]# mkdir test [[email protected] opt]# mkdir -p user/atguigu

      1. rmdir 刪除一個空的目錄
  1. 基本語法:

 

rmdir 要刪除的空目錄

  1. 案例

 

[[email protected] opt]# mkdir test [[email protected] opt]# rmdir test

      1. touch 建立空檔案
  1. 基本語法:

 

touch 檔名稱

  1. 案例

 

[[email protected] opt]# touch test.java

      1. cd 切換目錄
  1. 基本語法:

 

    1. cd 絕對路徑
    2. cd 相對路徑

 

    1. cd ~或者 cd (功能描述:回到自己的家目錄)
    2. cd - (功能描述:回到上一次所在目錄)

 

    1. cd .. (功能描述:回到當前目錄的上一級目錄)
    2. cd -P (功能描述:跳轉到實際物理路徑,而非快捷方式路徑)

 

  1. 案例
  1. 使用 mkdir 命令建立atguigu目錄

 

[[email protected] ~]# mkdir atguigu

 

  1. 使用絕對路徑切換到atguigu目錄

 

[[email protected] ~]# cd /root/atguigu/

 

  1. 使用相對路徑切換到atguigu目錄

 

[[email protected] ~]# cd ./atguigu/

 

  1. 表示回到自己的家目錄,亦即是 /root 這個目錄

 

[[email protected] atguigu]# cd ~

 

  1. cd- 回到上一次所在目錄

 

[[email protected] atguigu]# cd -

 

  1. 表示回到當前目錄的上一級目錄,亦即是 /root 的上一級目錄的意思;

 

[[email protected] ~]# cd ..

 

      1. cp 複製檔案或目錄
  1. 基本語法:
    1. cp source dest (功能描述:複製source檔案到dest)

 

    1. cp -r sourceFolder targetFolder (功能描述:遞迴複製整個資料夾)
  1. 案例
  1. 複製檔案

 

[[email protected] opt]# cp test.java test

 

  1. 遞迴複製整個資料夾

 

[[email protected] opt]# cp -r test test1

      1. rm 移除檔案或目錄
  1. 基本語法

 

    1. rmdir deleteEmptyFolder (功能描述:刪除空目錄)
    2. rm -rf deleteFile (功能描述:遞迴刪除目錄中所有內容)

 

  1. 案例
  1. 刪除空目錄

 

[[email pr