Linux
一、linux入門了解
1、作業系統
1)伺服器:本質就是計算機
硬體:性能優越
軟體:作業系統
2)桌面:
dos→windows
unix→mac linux
3)服務端:
windows
linux
2、什麼是作業系統?
OS,管理硬體和軟體資源的程式
3、什麼是linux
1)開源免費的的類unix作業系統,主要用于伺服器端
開源:開放源代碼(可以看到底層代碼)
mysql:GPL(開源軟體許可證)
2)支援多使用者、多任務、支援多線程和多CPU
3)linux相容unix常用的工具、應用程式和網絡協定
4、Linux産生背景
1973年,unix産生(閉源、收費)
1983年,理查德·斯托曼發起自由軟體運動(GNU計劃)
GPL:GNU 通用公共許可證,可以自由“使用、複制、修改、釋出”
1990年,整個GNU計劃已經産生很多自由軟體,GCC(編譯器)bash(指令行界面)等
1991年10月5日,linux(核心)在GPL許可證下正式釋出
linux核心:linus,http://www.kernel.org
1992年linux核心和GUN軟體正式結合,形成了GUN/Linux作業系統,簡稱linux作業系統
5、Linux優點
分時作業系統
多數網絡協定支援(http,ftp,sftp,smtp,ssh等)、友善的遠端管理
強大的記憶體管理和檔案系統管理(一切皆檔案)
安全性和穩定性
6、Linux系統架構
核心:主要提供系統服務(不能被直接調用)
shell:殼,接口/界面
指令行shell——linux:sh,bash
Windows:cmd
圖形化shell——linux:gnome,kde
7、核心和發行版
核心:硬體和軟體進行互動的平台,主要提供系統服務(不能被直接調用):記憶體,io,檔案系統,程序管理
發行版:核心+外圍基礎軟體(商業公司/社群)
REDHAT:RHEL ENTOS
DEBIAN:DEBIAN UBANTU
8、虛拟機軟體
虛拟機:利用虛拟化技術來模拟完整的計算機系統
vmware,virtualbox(oracle)
二、centos的安裝
略
三、Linux檔案系統和目錄結構
1、檔案系統
檔案系統确定資料存儲的方式
windows:NTFS
linux:centos6 ext4 / centos7 xfs
2、目錄結構
目錄樹:目錄+普通檔案
linux作業系統沒有檔案擴充名稱,添加字尾隻是為了友善管理
常見目錄
- /:根目錄,存放具體特定功能目錄
- /bin: /sbin: /usr/bin: /usr/sbin: 可執行二進制檔案(指令)
- /root:root使用者的家目錄
- /home:普通使用者的家目錄(每建立一個普通使用者就會在該目錄下建立一個同名的檔案夾保護該使用者獨有資訊)
- /dev:裝置目錄,外部裝置連接配接到linux系統将會以檔案的形式存儲在dev目錄中(cd.dvd–>sr0(cdrom))
- /etc:系統配置檔案存放目錄
-
/opt:第三方軟體安裝目錄
-/usr /usr/share:存放共享資料(區域) /usr/local:軟體安裝目錄
- /media: /mnt : 常見的挂載(将裝置連接配接到一個已經存在的目錄)目錄
- /var:存放變化的檔案 /var/log存放log日志
3、終端和常見的指令
1)終端
[[email protected] Decstop]#
【目前使用者@主機名稱 目前位置】 #:管理者 $:普通使用者
2)指令
指令格式:
指令關鍵字 [選項] [參數]
選項格式:
短格式 -單詞簡寫 ls -a
長格式 --單詞全拼 ls --all
組合 ls -a -l => ls -al
3)幫助手冊檢視
man
使用q退出
4)常見的指令
①磁盤管理
- cd:實作目錄的切換
- 基本格式:cd 目錄(絕對路徑/相對路徑)
- cd directory切換到目前目錄下的子目錄
- cd .. 傳回上一級目錄
- cd ../.. 傳回上兩級目錄
- cd ~/cd:傳回目前使用者的家目錄
- cd -:傳回到上次的目錄
- pwd:列印目前路徑
- ls:展示目錄内容(檔案,目錄)
ls [選項] [目錄] 展示指定目錄的内容
ls:展示目前目錄内容
-l:檢視檔案詳細情況(可檢視檔案類型) 别名:ll
-a:顯示所有檔案(包含隐藏檔案)
-A:顯示所有檔案(.和..不展示)
-h:友好易讀的方式展示,必須和-l一起使用 ll -h
-R:遞歸展示所有檔案
- du:檢視檔案或目錄磁盤的占用情況
du 檔案
-a:展示檔案大小
- df:檢視磁盤占用情況
②檔案管理
- touch:建立檔案或修改檔案時間标記
- file:檢視檔案類型(根據内容來決定)
- mkdir:建立檔案夾
-p級聯建立
- cp:複制檔案和目錄
cp 源檔案 目标檔案
-i 覆寫時提示
-f 強制覆寫
-r 遞歸複制
- mv:移動檔案和目錄
mv 源檔案 目标檔案
-i 覆寫時提示
-f 強制覆寫
-r 遞歸複制
-u 目标檔案不存在,源檔案比目标檔案要新的時候才移動
- rm:删除檔案或者目錄
rm 目标檔案
-i 删除時提示
-f 強制删除
-r 遞歸删除整個目錄樹
-rf 遞歸強制删除
- rmdir:删除空目錄
-p級聯删除
- cat:列印輸出檔案
-n 編号
- tac:倒序列印輸出檔案
-n 編号
- head:檢視開頭的若幹行(預設10行)
-n number 指定檢視行數
- tail:檢視末尾的若幹行(預設10行)
-n number 指定檢視行數
-f 顯示最新追加内容
- more:翻屏顯示
- less:翻屏顯示
- echo:輸出指定字元串或者變量
-e: 識别字元串中的特殊符号,但是後面的内容需要加上雙引号或者單引号 \n \t
-n: 不換行輸出
echo ${PATH}:輸出變量
>: 重定向
>覆寫
>>追加——标準輸出,等于>>1
- ln:建立連接配接
ln 檔案 連結檔案
硬連結:
軟連接配接: -s 更加類似于windows的快捷方式
- alias:檢視别名
alias la='ls -a -l':設定别名
unalias la:取消别名
- |: 管道符,把前面指令的輸出當做後面指令的輸入
③vi編輯器
文本編輯器,類unix作業系統自帶文本編輯器,vim是增強版本(不一定自帶)
#####如何使用
格式:vi 檔案
1.vi編輯器的三種模式
指令模式
插入模式
底行模式: w:儲存 q:退出 !:強制退出
1.1指令行模式下的指令
1.1.1光标指令
- 逐字元移動:↑↓←→ /hjkl
- 逐個單詞移動
w(W):單詞首字母向後移動(大寫忽略符号)
b(B):單詞首字母向前移動(大寫忽略符号)
e(E):單個字元
- ():逐句移動(句子的表示.)
- {}:逐段移動
- G:文檔的末尾 gg:文檔的開始
- $:行尾 0:行首
1.1.2操作指令
- a:光标後一位插入 A:行尾插入
- i:光标前插入 I:行首插入
- o:光标下一行插入空白行 O:光标所在行插入空白行
- dd:删除光标所在行,3dd目前光标起删除3行
- yy:複制,3yy目前光标起複制3行
- p:粘貼
- u:撤銷
1.2底行模式
1.2.1查找和替換
- :set nu 設定行号
- :set nonu 取消行号
- :number 跳轉到指定行
- :/key 查找指定的内容(n:向後移動,N:向前移動)
1.2.2替換格式
:開始行,結束行 s/舊字元串/新字元串/g
④網絡管理
1.網絡管理指令
ifconfig:操作網絡接口(centos6,centos7:ip addr)
ifconfig:檢視網絡接口資訊(ip位址,mac位址,子網路遮罩...)
-a:檢視所有的,包含停用的
ifconfig 網絡接口名稱 up/down:啟動/禁用網絡接口
ping:檢視網絡的連接配接狀态
host:通過域名查找ip
netstat:檢視程序端口的占用情況
netsat -nltp:不顯示别名/正在監聽/tcp協定/顯示程式資訊
2.網絡配置
主控端和虛拟機之間進行通訊三種模式:
a、橋接模式:橋接模式就是将主機網卡與虛拟機的虛拟網卡利用虛拟網橋進行通訊
b、NAT模式:
①虛拟交換機和虛拟網卡(vmnet8)連接配接實作虛拟機連接配接主控端;
②虛拟交換機和虛拟網卡利用NAT裝置連接配接internet實作網絡的通路
c、僅主機模式
修改NAT模式
配置一個靜态IP,位址為192.168.2.101
重新開機網絡服務 service network restart
網絡接口資訊:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
2.主機名稱
hostname:檢視主機名稱
hostname [名稱]:修改主機名(臨時的)
vim /etc/sysconfig/network (修改後重新開機)
3.主機映射(主機名稱和ip的映射)
Linux:vim /etc/hosts
4.服務管理
service 服務名稱(程序名稱)start/stop/restart/status
service --status-all 檢視所有服務狀态
5.防火牆(iptables)
###控制網絡“出入”行為
防火牆的基本操作(開啟、關閉)
service iptables start/stop
chkconfig iptables on/off(開機自啟/開機關閉)
###開放端口,關閉端口
#删除規則
iptables -D INPUT -p tcp -dport 22 -j DROP
#加入一條input規則開放80端口
iptables -I INPUT -p -tcp --dport 80 -j ACCEPT
6.linux啟動級别管理
vim /etc/inittab
0:關機
1:單使用者
2:多使用者無網絡
3:全功能多使用者(指令行)
4:未使用
5:帶有圖形界面模式
6:重新開機
7.遠端終端使用者
⑤使用者群組
5.1什麼是使用者群組
使用者是權限的集合
組:使用者組、組織和管理使用者
5.2使用者的分類
管理者使用者:root(uid 0)
系統使用者:保證系統運作使用者,沒有密碼(uid——1~499)
普通使用者:自定義使用者,使用者權利受限(uid:500~60000)
5.3檢視使用者
/etc/passwd
root:使用者名
x:密碼占位符
0:使用者組id
0:組id
root:說明資訊
/root:家目錄
/bin/bash:shell類型
5.4操作使用者
添加使用者:useradd 使用者(預設配置設定組,說明資訊無)
修改使用者:usermod
-c:設定說明資訊
-G:指定組
usermod -c 說明資訊 使用者名
usermod -G 組名 使用者名
删除使用者:userdel
userdel -r 使用者名
passwd 使用者:修改密碼
5.5組的分類
系統組:存放系統使用者
普通組:存放普通使用者
私有組:建立使用者時會建立同名組,此時該組隻有一個使用者就是私有組,如果向該組添加其他使用者就會變為普通組
5.6檢視組
cat /etc/group cat /etc/gshadow
5.7組操作
建立組:groupadd
修改組:groupmod
-n:修改名稱
删除組:groupdel
添加和删除使用者:
gpasswd -a hadoop spark:添加使用者到組
gpasswd -d hadoop spark:從組中删除使用者
⑥配置sudoer權限
1.修改權限檔案 vim /etc/sudoer
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
2.操作
sudo useradd aa
檔案權限
drwxr-xr-x:檔案類型和權限
連結數(普通檔案:連結數1 檔案夾:連結數是子目錄個數)
檔案類型和權限
d:檔案類型(-:普通檔案 d:目錄 l:連結檔案 b:二進制 c:字元裝置檔案)
rwx r-x r-x檔案權限
u g o
header | 檔案 | 檔案夾 |
---|---|---|
r | 可讀取内容 | 可以ls |
w | 可修改檔案的内容 | 可以在其中建立或者删除子節點 |
x | 能否運作這個檔案 | 能否cd進入這個目錄 |
一、二進制釋出包
軟體已經針對具體平台編譯打包釋出,隻要解壓,修改配置即可
1.下載下傳軟體包并上傳到linux平台(或直接在linux平台下載下傳 wget)
put –r 包(ftp協定)
2.配置環境變量
檢視:rpm -qa | grep jdk
解除安裝:rpm -e --nodeps 包
3.配置環境變量: /etc/profile
export JAVA_HOME=/opt/ jdk1.8.0_73
export PATH=${JAVA_HOME}/bin:${PATH}
source /etc/profile 執行/加載配置檔案
4.驗證
java –version
二、rpm安裝包步驟(以mysql為例):
查詢:rpm -q 程式包
rpm -qa | grep -i(不區分大小寫) 程式
-l:查詢安裝位置
解除安裝:rpm -e 程式名稱
--force:強制解除安裝
--nodeps:不考慮依賴
安裝:rpm -ivh 程式名稱(顯示程序和過程)
1.上傳包到linux平台
2.解包
3.檢視舊的版本進行解除安裝
4.進行安裝(server,client)
安裝服務:
rpm -ivh MySQL-server-5.6.26-1.linux_glibc2.5.x86_64.rpm
初始密碼:/root/.mysql_secret
檢視是否安裝成功: rpm -qa | grep -i mysql
5.啟動服務
service mysql start
6.連接配接
mysql -uroot -p
7.設定密碼
set password=password('root');
8.設定遠端
第一種
将host中的localhost改為%
執行flush privileges;
第二種,使用指令授權
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
(*是指資料庫.表;使用者@遠端綁定的ip;by後面設定的是遠端通路的密碼)
flush privileges;
9.無法正常啟動
ps -aux | grep mysql
kill-9 pid 殺死程序
然後重新啟動
完全解除安裝mysql——rpm方式安裝的mysql
a)檢視系統中是否以rpm包安裝的mysql:
[[email protected] opt]# rpm -qa | grep -i mysql
MySQL-server-5.6.17-1.el6.i686
MySQL-client-5.6.17-1.el6.i686
b)解除安裝mysql
[[email protected] local]# rpm -e MySQL-server-5.6.17-1.el6.i686
[[email protected] local]# rpm -e MySQL-client-5.6.17-1.el6.i686
c)删除mysql服務
[[email protected] local]# chkconfig --list | grep -i mysql
[[email protected] local]# chkconfig --del mysql
d)删除分散mysql檔案夾
[[email protected] local]# whereis mysql 或者 find / -name mysql
mysql: /usr/lib/mysql /usr/share/mysql
清空相關mysql的所有目錄以及檔案
rm -rf /usr/lib/mysql
rm -rf /usr/share/mysql
rm -rf /usr/my.cnf
三、yum線上安裝
1.安裝和解除安裝
yum install -y 程式名
yum install -y nc
yum remove -y 程式名
2.本地yum源配置
yum源:本質就是http伺服器+rpm軟體包+索引檔案
yum源目錄: /etc/yum.repos.d/
有個yum源(伺服器),希望能從自己的yum源下載下傳軟體包
2.1配置本地yum源
搭建yum伺服器
web伺服器(httpd)
ios鏡像挂載檔案
ln -s /mnt/cdrom/ /var/www/html/cdrom
在/etc/yum.repos.d/配置repo檔案
[Local]
name=Local
baseurl=http://192.168.2.130/cdrom
gpgcheck=0
enabled=1
檢測:
yum repolist:檢視yum
yum list: 檢視目前能夠安裝的程式清單
四、源碼編譯安裝
五、程序管理
1.程序的概念
程式:靜态(資料結構+算法+文檔)
程序:程式的運作狀态,是動态的(一個程式可能有多個程序)
線程:程序中執行任務的最小單元
程序在運作工過程中可能會産生新的程序,程序之間就會産生父子關系。産生程序的程序被稱為父程序,被産生的程序稱為子程序。
2.程序的生命周期
就緒狀态:除了CPU之外其他資源已具備
運作狀态:擷取到CPU的時間片
阻塞狀态:io阻塞操作
3.程序的管理指令
3.1檢視程序
ps:檢視程序的運作狀态(CPU、資源、pid、目前狀态)
ps -aux:檢視所有使用者的程序
pstree:檢視程序樹(能夠檢視程序繼承關系)
-p:能夠檢視pid
top:檢視程序狀态(定期更新狀态)
jps:檢視jvm程序(jdk中的)
3.2殺死程序
kill pid:殺死程序
kill -9 pid:強制殺死程序
pkill pname:殺死程序
pidof pname:根據名稱來擷取pid
3.3程序排程
ctrl+c:終止程序(隻終止前端程序)
ctrl+z:挂起程序
fg:切換為前台程序
bg:切換為背景程序
jobs:檢視任務
4.計劃任務
at:服務名稱atd,指定時刻或者延遲指定時間執行一次任務
crontab:服務名稱crond,間隔固定時間周期執行。分時日月周
4.1crontab指令使用
-u:指定使用者
-e:編輯某個使用者的crontab檔案内容。
-l:顯示某個使用者的crontab檔案内容,如果不指定使用者,則表示顯示目前使用者的crontab檔案内容。
-r:删除計劃任務,從/var/spool/cron目錄中删除某個使用者的crontab檔案,如果不指定使用者,則預設删除目前使用者的crontab檔案。
-i:在删除使用者的crontab檔案時給确認提示。
4.2基本格式
基本格式 :
* * * * * command
分 時 日 月 周 指令
第1清單示分鐘1~59 每分鐘用*或者 */1表示
第2清單示小時0~23(0表示0點) 7-9表示:8點到10點之間
第3清單示日期1~31
第4清單示月份1~12
第5列辨別号星期0~6(0表示星期天)
第6列要運作的指令
4.3計劃任務檔案(預設)
/var/spool/cron/
六、克隆虛拟機
1.快照
保留虛拟機的狀态(備份)
2.虛拟機的克隆
建立連結克隆,占用的空間會較少
3.配置
3.1網卡裝置(實體裝置 mac位址)
vim /etc/udev/rules.d/70-persistent-net.rules
删除eth0,修改eth1位eth0,并将eth1的macid拷貝出來,以備配置網卡的時候使用
00:0c:29:8a:45:4a
00:0c:29:fa:5c:95
3.2網卡配置(eth0)
vim /etc/sysconfig/network-scripts/ifcfg-eth0
删除uuid
修改mac位址
修改ip位址
3.3主機名稱
vim /etc/sysconfig/network
3.4主機映射
vim /etc/hosts
七、ssh免密登入
1.什麼是ssh
安全外殼協定,主要目标實作計算機之間加密安全通路
ssh包含兩個部分:
ssh服務端:sshd的守護程序,占22端口
ssh用戶端:ssh程式,scp(遠端拷貝),slogin(遠端登入),sftp(遠端資料傳輸)等
2. SSH認證機制
2.1基于密碼認證(使用者名和密碼)
2.2基于秘鑰認證
3.免密登入的實作
3.1.建立秘鑰對(公鑰和私鑰)
ssh-keygen
3.2發送公鑰到授權池
ssh-copy-id hadoop01
八、grep
grep是一種強大的文本搜尋工具,他能使用正規表達式搜尋文本,并把比對的行統計出來
1.基本文法
grep 字元串 檔案
grep a a.txt
cat a.txt | grep a
2.常見選項
-c:統計符合條件的字元串出現的總行數。
-i:忽略字元大小寫。
-v:顯示沒有”搜尋字元串”内容的那一行。