大資料技術之 Linux 基礎
一、Linux 入門概述
Linux 核心最初只是由芬蘭人林納斯·託瓦茲(Linus Torvalds)在赫爾辛基大學上學時出於個人愛好而編寫的。
Linux 是一套免費使用和自由傳播的類 Unix 作業系統,是一個基於 POSIX 和 UNIX 的多使用者、多工、支援多執行緒和多 CPU 的作業系統。Linux 能執行主要的 UNIX 工具軟體、應用程式和網路協議。它支援 32 位和 64 位硬體。Linux 繼承了 Unix 以網路為核心的設計思想,是一個性能穩定的多使用者網路作業系統。
目前市面上較知名的發行版有:Ubuntu、RedHat、CentOS、Debain、Fedora、SuSE、
OpenSUSE
centos 下載地址:
網易映象:http://mirrors.163.com/centos/6/isos/ 搜狐映象:http://mirrors.sohu.com/centos/6/isos/
Linux 裡面一切皆是檔案
Linux 裡面沒有後綴名這一說
目前國內 Linux 更多的是應用與伺服器上,而桌面作業系統更多使用的是 window。主要區別如下。
|
|
UNIX 傳承下來,基本命令和 操作方法也幾乎一致。 |
驅動 程式 |
驅動程式豐富,版本更新頻繁。預設安裝程式裡面一般包含有該版本釋出時流行的硬體驅動程式,之後所出的新硬體驅動依賴於硬體廠商提供。對於一些老硬體,如果沒有了原配的驅動有時候很難支援。另外,有時硬體廠商未提供所需版本的 Windows 下的驅動,也會比較頭痛。 |
由志願者開發,由 Linux 核心開發小組釋出,很多硬體廠商基於版本考慮並未提供驅動程式,儘管多數無需手動安裝, 但是涉及安裝則相對複雜,使得新使用者面對驅動程式問題會一籌莫展。但是在開源開發模式下,許多老硬體儘管在 Windows 下很難支援的也容易找到驅動。HP、Intel、AMD 等硬體廠商逐步不同程式支援 開源驅動,問題正在得到緩解。 |
使用 |
使用比較簡單,容易入門。圓形化介面對沒 有計算機背景知識的使用者使用十分有利。 |
圓形介面使用簡單,容易入門。 文字介面,需要學習才能掌握。 |
學習 |
系統構造複雜、變化頻繁、且知識、技能淘汰快,深入學習困難 |
系統構造簡單、穩定,且知識、技能傳承性好,深入學習相對 容易 |
軟體 |
每一種特定功能可能都需要商業軟體的支 持,需要購買相應的授權 |
大部分軟體都可以自由獲取, 同樣功能的軟體選擇較少。 |
二、VM 安裝相關
尚矽谷大資料技術之安裝CentOS.doc
VM tools 顧名思義就是 Vmware 的一組工具。主要用於虛擬主機顯示優化與調整,另外
還可以方便虛擬主機與本機的互動,如允許共享資料夾,甚至可以直接從本機向虛擬主機拖放檔案、滑鼠無縫切換、顯示解析度調整等,十分實用。
先啟動 CentOS 併成功登入如下圖,發現底部提示且視窗中等大小,準備安裝
-
-
- 選擇虛擬機器選單欄--安裝 VMware tools
-
-
-
- 光碟機自動掛載 VMTools
-
-
-
- 右鍵解壓 VMwaretools-9.6.2-1688356.tar.gz
-
進入資料夾並確認看到 vmware-install.pl 檔案
-
-
- 執行 vmware-install.pl 檔案
-
最後用“./vmware-install.pl”命令來執行該安裝程式,然後根據螢幕提示一路回車。到此整個安裝過程算是完成了。
-
-
- 直接按到/dev/hdc...停止為止,安裝完成
-
-
-
- 重啟 CentOS, 這時候螢幕變成全屏了
-
-
-
- 設定共享資料夾,實現 Windows ß àCentOS 檔案共享
-
- 宿主機 BIOS 設定中的硬體虛擬化被禁用了需要開啟筆記本 BIOS 中的 IVT 對虛擬化的支援
三、Linux 目錄結構
/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:這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日誌檔案。
四、系統管理操作
檢視虛擬網路編輯器
- 修改 ip 地址
- 檢視閘道器
- 檢視當前ip基本語法: [[email protected] /]# ifconfig
- 在終端命令視窗中輸入
[[email protected] /]#vim /etc/udev/rules.d/70-persistent-net.rules
進入如下頁面,刪除 eth0 該行;將 eth1 修改為 eth0,同時複製物理 ip 地址
- 修改 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
-
- 修改前
-
- 修改後
:wq 儲存退出
執行 service network restart
- 檢視主機名基本語法: [[email protected] /]#hostname
- 修改 linux 的 hosts 檔案
-
- 進入 Linux 系統檢視本機的主機名。通過 hostname 命令檢視
[[email protected] ~]# hostname
hadoop1.atguigu.com
-
- 如果感覺此主機名不合適,我們可以進行修改。通過編輯/etc/sysconfig/network 檔案
[[email protected] /]# vi /etc/sysconfig/network
檔案中內容NETWORKING=yes NETWORKING_IPV6=no
HOSTNAME= hadoop102
注意:主機名稱不要有“_”下劃線
-
- ) 開啟此檔案後, 可以看到主機名。修改此主機名為我們想要修改的主機名
hadoop102。
-
- 儲存退出。
-
- 開啟/etc/hosts
[[email protected] /]# vim /etc/hosts
新增如下內容
192.168.11.102 hadoop102
-
- 並重啟裝置,重啟後,檢視主機名,已經修改成功
- 修改 window7 的 hosts 檔案
- 進入 C:\Windows\System32\drivers\etc 路徑
- 開啟 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
service iptables status (功能描述:檢視防火牆狀態) chkconfig iptables –list (功能描述:檢視防火牆開機啟動狀態) service iptables stop (功能描述:臨時關閉防火牆) chkconfig iptables off (功能描述:關閉防火牆開機啟動) chkconfig iptables on (功能描述:開啟防火牆開機啟動)
- 擴充套件
Linux 系統有 7 個執行級別(runlevel)
執行級別 0:系統停機狀態,系統預設執行級別不能設為 0,否則不能正常啟動執行級別 1:單使用者工作狀態,root 許可權,用於系統維護,禁止遠端登陸
執行級別 2:多使用者狀態(沒有 NFS)
執行級別 3:完全的多使用者狀態(有NFS),登陸後進入控制檯命令列模式執行級別 4:系統未使用,保留
執行級別 5:X11 控制檯,登陸後進入圖形 GUI 模式
執行級別 6:系統正常關閉並重啟,預設執行級別不能設為 6,否則不能正常啟動
在 linux 領域內大多用在伺服器上,很少遇到關機的操作。畢竟伺服器上跑一個服務是永無止境的,除非特殊情況下,不得已才會關機 。
正確的關機流程為:sync > shutdown > reboot > halt
- 基本語法:
- sync (功能描述:將資料由記憶體同步到硬碟中)
-
- shutdown [選項] 時間選項:
-h:關機
-r:重啟
-
- halt (功能描述:關閉系統,等同於 shutdown –h now 和 poweroff)
- reboot (功能描述:就是重啟,等同於 shutdown –r now)
- 案例
- 將資料由記憶體同步到硬碟中
[[email protected] /]#sync
- 計算機將在 10 分鐘後關機,並且會顯示在登入使用者的當前螢幕中
[[email protected] /]#shutdown –h 10 ‘This server will shutdown after 10 mins’
- 立馬關機
[[email protected] /]# shutdown –h now
- 系統立馬重啟
[[email protected] /]# shutdown –r now
- 重啟(等同於 shutdown –r now) [[email protected] /]# reboot
- 關機(等同於 shutdown –h now 和 poweroff) [[email protected] /]#halt
注意:不管是重啟系統還是關閉系統,首先要執行 sync 命令,把記憶體中的資料寫到磁碟中。
重新安裝系統嗎?當然不用!進入單使用者模式更改一下 root 密碼即可。
-
-
- 重啟 Linux,見到下圖,在 3 秒鐘之內按下回車
-
-
-
- 三秒之內要按一下回車,出現如下介面
-
按下 e 鍵就可以進入下圖
-
-
- 移動到下一行,再次按 e 鍵
-
移動到下一行,進行修改
修改完成後回車鍵,然後按 b 鍵進行重新啟動進入系統
-
-
- 移動到下一行,進行修改
-
最終修改完密碼,reboot 一下即可。
五、遠端登入
Linux 遠端登入及相關工具介紹
Linux 一般作為伺服器使用,而伺服器一般放在機房,你不可能在機房操作你的 Linux
伺服器。這時我們就需要遠端登入到 Linux 伺服器來管理維護系統。
Linux 系統中是通過 SSH 服務實現的遠端登入功能,預設 ssh 服務埠號為 22。Window
系統上 Linux 遠端登入客戶端有 SecureCRT, Putty, SSH Secure Shell,XShell 等
-
-
- 安裝步驟
-
-
-
- 操作
-
-
-
-
- 滑鼠選中即為複製
- 滑鼠右鍵即為貼上
-
-
- 依然無法正常顯示中文,可能是由於 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"
- 調整設定 CRT 解決
六、使用者和使用者組管理命令
useradd 使用者名稱 (功能描述:新增新使用者)
- 案例:
[[email protected] opt]# user atguigu
passwd 使用者名稱 (功能描述:設定使用者密碼)
- 案例
[[email protected] opt]# passwd atguigu
id 使用者名稱
- 案例:
[[email protected] opt]#id atguigu
su 使用者名稱稱 (功能描述:切換使用者)
- 案例
[[email protected] opt]#su atguigu
-
- userdel 使用者名稱 (功能描述:刪除使用者但儲存使用者主目錄)
- userdel -r 使用者名稱 (功能描述:使用者和使用者主目錄,都刪除)
- 案例:
- 刪除使用者但儲存使用者主目錄
[[email protected] opt]#userdel atguigu
- 刪除使用者和使用者主目錄,都刪除
[[email protected] opt]#userdel –r atguigu
(1)whoami (功能描述:顯示自身使用者名稱稱)
- 案例
[[email protected] opt]# whoami [[email protected] opt]# who am i [[email protected] opt]# who
修改 /etc/sudoers 檔案,找到下面一行,在 root 下面新增一行,如下所示:
修改完畢,現在可以用 atguigu 帳號登入,然後用命令 su - ,即可獲得 root 許可權進行操作。
- 案例
[[email protected] opt]$ sudo mkdir module [[email protected] opt]# chown atguigu:atguigu module/
usermod -g 使用者組 使用者名稱
- 案例:
將使用者atguigu加入dev使用者組
[[email protected] opt]#usermod –g dev atguigu
每個使用者都有一個使用者組,系統可以對一個使用者組中的所有使用者進行集中管理。不同
Linux 系統對使用者組的規定有所不同,
如Linux下的使用者屬於與它同名的使用者組,這個使用者組在建立使用者時同時建立。
使用者組的管理涉及使用者組的新增、刪除和修改。組的增加、刪除和修改實際上就是對
/etc/group檔案的更新。
groupadd 組名
- 案例:
新增一個atguigu組
[[email protected] opt]#groupadd atguigu
groupdel 組名
- 案例
[[email protected] opt]# groupdel atguigu
groupmod -n 新組名 老組名
- 案例
修改atguigu組名稱為atguigu1
[[email protected] atguigu]# groupmod –n atguigu1 atguigu
[[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
七、常用基本命令
man [命令或配置檔案] (功能描述:獲得幫助資訊)
-
- 顯示說明
NAME 命令的名稱和單行描述
SYNOPSIS 怎樣使用命令
DESCRIPTION 命令功能的深入討論
EXAMPLES 怎樣使用命令的例子
SEE ALSO 相關主題(通常是手冊頁)
-
- 數字說明 q
- 使用者在 shell 環境中可以操作的命令或是可執行的檔案
- 系統核心(kernel)可以呼叫的函式
- 常用的函式 or 函式庫
- 裝置配置檔案
- 配置檔案的格式
- 遊戲相關
- linux 網路協議和檔案系統
- 案例
- 系統管理員可以用的命令
- 跟核心有關係的檔案
[[email protected] home]# man ls
help 命令 (功能描述:獲得 shell 內建命令的幫助資訊)
- 案例:
[[email protected] bin]# help cd
1)ctrl + c:停止程序2)ctrl+l:清屏3)ctrl + q:退出
- 善於用 tab 鍵
- 上下鍵:查詢執行過的命令
6)ctrl +alt:linux 和 Windows 之間切換
pwd (功能描述:顯示當前工作目錄的絕對路徑)
-
-
-
- 案例
-
-
[[email protected] home]# pwd
/home
ls [選項] [目錄或是檔案]
選項:
-a :全部的檔案,連同隱藏檔( 開頭為 . 的檔案) 一起列出來(常用)
-d :僅列出目錄本身,而不是列出目錄內的檔案資料(常用)
-l :長資料串列出,包含檔案的屬性與許可權等等資料;(常用)
每行列出的資訊依次是: 檔案型別與許可權 連結數 檔案屬主 檔案屬組 檔案大小用
byte來表示 建立或最近修改的時間 名字
- 案例
[[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
mkdir [-p] 要建立的目錄選項:
-p:建立多層目錄
- 案例
[[email protected] opt]# mkdir test [[email protected] opt]# mkdir -p user/atguigu
rmdir 要刪除的空目錄
- 案例
[[email protected] opt]# mkdir test [[email protected] opt]# rmdir test
touch 檔名稱
- 案例
[[email protected] opt]# touch test.java
-
- cd 絕對路徑
- cd 相對路徑
-
- cd ~或者 cd (功能描述:回到自己的家目錄)
- cd - (功能描述:回到上一次所在目錄)
-
- cd .. (功能描述:回到當前目錄的上一級目錄)
- cd -P (功能描述:跳轉到實際物理路徑,而非快捷方式路徑)
- 案例
- 使用 mkdir 命令建立atguigu目錄
[[email protected] ~]# mkdir atguigu
- 使用絕對路徑切換到atguigu目錄
[[email protected] ~]# cd /root/atguigu/
- 使用相對路徑切換到atguigu目錄
[[email protected] ~]# cd ./atguigu/
- 表示回到自己的家目錄,亦即是 /root 這個目錄
[[email protected] atguigu]# cd ~
- cd- 回到上一次所在目錄
[[email protected] atguigu]# cd -
- 表示回到當前目錄的上一級目錄,亦即是 /root 的上一級目錄的意思;
[[email protected] ~]# cd ..
-
- cp -r sourceFolder targetFolder (功能描述:遞迴複製整個資料夾)
- 案例
- 複製檔案
[[email protected] opt]# cp test.java test
- 遞迴複製整個資料夾
[[email protected] opt]# cp -r test test1
-
- rmdir deleteEmptyFolder (功能描述:刪除空目錄)
- rm -rf deleteFile (功能描述:遞迴刪除目錄中所有內容)
- 案例
- 刪除空目錄