Linux介紹:
特點: 開源、免費、自由使用;多用戶、多線程、多任務、多CPU。
組成:Linux = 內核 + shell + 文件系統 + 應用程序
應用:服務器、手機操作系統......
分支:Redhat、debain......
安裝:VMware、centOS6.4
基本環境配置(root)
1.修改主機名
查看:hostname
修改:
臨時修改:hostname bigdata-training01.huadian.com
永久修改:
(1).vi /etc/sysconfig/network
(2).按下鍵盤“i”進入編輯模式
(3).修改主機名 bigdata-training01.huadian.com
(4)."ESC" -> ":" + "wq" + 回車
2.配置網絡
VMware子網絡改成192.168.59.0
ip: 192.168.59.150
網關:192.168.59.2
子網掩碼:255.255.255.0
方式:
(1).UI界面
(2).vi /etc/sysconfig/network-scripts/ifcfg-eth0 網卡
service network restart 重啓服務
3.查看網絡命令:
ifconfig Linux中查看ip
ping 看是否能夠將網絡連接
3.網絡映射(內部局域網)
vi /etc/hosts
halt:關機,reboot:重啓
額外: windows hosts 文件修改
c:\windows\System32\drivers\etc\hosts
追加: 192.168.59.150 bigdata-training01.huadian.com
4.Linux遠程工具
1.securtCRT
快捷鍵:支持遠程文件和命令行編輯
複製:鼠標滾輪
粘貼:鼠標右鍵
2.notepad++:支持遠程編輯的 文本編輯器
3.Xmanager
xshell:遠程命令行
xftp:遠程文件傳出工具
xbrowser:遠程桌面
5.相對路徑和絕對路徑
絕對路徑:從最底層的根目錄(/)開始訪問
相對路徑:相對於指由這個文件所在路徑引起的跟其他文件(或文件夾)的路徑關係。
Linux常見命令
通用格式:
命令 選項(參數) [操作的文件或者目錄]
ls -a /
(1).ls : list 列舉一個目錄下的文件
-l : length: 長格式方式查看 ll ==(ls -l)
-a: 列舉包含隱藏文件
(2).cd: chang dir 修改對當前所在格式
(3).pwd:print work director打印當前目錄,從根目錄開始算起
(4).clear: 清屏 == ctrl + l
(5).history: 查看命令歷史記錄
文件管理
1.創建(touch)
文件:touch filename
注意:如果是多個文件,文件名之間用空格隔開
touch "hello world" 一個文件名中間出現空格時,需要雙用引號引起來
文件夾:mkdir dirName
-p: 遞歸
eg: mkdir /a/b/c,如果b不存在,先創建b目錄,以此類推:mkdir c
2.刪除(remove)
rm: -r: 刪除目錄(遞歸目錄) -f: 免確認
rmdir: 只能刪除空目錄
注意: Linux中,如果出現backspace無法刪除,先按下ctrl + backspace
3. 編輯(vi/vim)
複製:cp == copy
cp source_file targe_file
4.移動:(重命名) mv == move
mv source_file targe_file
5.查看
cat : 直接查看文件所有內容
more: 分頁查看
less: 分頁查看(可以向上查看,按鍵盤上下鍵)
head: 查看文件頭部的內容,默認顯示10行
-num:查看多行
eg: head -20 filename 查看filename文件的前20行
tail: 查看文件尾部的內容,默認顯示10行
-n: 查看多行
-F:動態查看:不同界面取操縱時,這邊會隨時變化
-
打印
echo “huadian” 打印在控制檯
echo “huadian”> bb.text 覆蓋
echo “huadian” >> bb.text 追加
7.常見的符號命令:
. : 表示當前目錄
.. : 表示上一級目錄
~ : 表示家目錄
> : 覆蓋重寫某個文件
>>: 追加到某個文件
| : 管道符,一般與grep連用
8.常見的工具命令
help:幫助命令
wc:文件統計 wordcount
wc cc.txt
2 2 23 cc.txt
行數 單詞 字符 文件名
-l -w -c
du: 文件大小統計
-h:人性化的顯示單位
visudo: 編輯sudo命令
需求:我希望huadian用戶擁有特殊權限(查看防火牆狀態)
huadian ALL=(ALL) /sbin/service iptables status
huadian ALL=(ALL) /sbin/service iptables stop
直接配置成擁有root的所有權限
推薦配置用法
huadian ALL=(root) NOPASSWD:ALL
用戶名 登錄主機=(以什麼樣的身份執行) 執行什麼樣的命令
該用戶怎麼去使用額外配置給他的權限
sudo service iptables status
9.虛擬機圖形化界面
cat /etc/inittab 關於虛擬機圖形化界面的查看
vi /etc/inittab 關於圖形化界面的設置
Linux用戶和權限管理
管理員用戶
只有一個:UID=0的用戶就是管理員用戶,一般情況下,默認它的用戶就是root
家目錄:/root
root :x :0 :0 :root :/root :/bin/bash
用戶名 密碼 uid gid 組名 家目錄 所用的shell
普通用戶
自己創建的新用戶,默認UID從500開始
家目錄:/home/${username}
huadian:x:500:500:huadian:/home/huadian:/bin/bash
創建用戶
gId和uId一樣
gName和uName一樣
查看用戶
id username
eg:id lw
刪除用戶
如果被刪除的用戶在登錄狀態的話,無法刪除
userdel username:刪除用戶
userdel -r usernme:刪除用戶並且刪除家目錄
groupdel groupName:刪除用戶組
設置密碼
passwd username eg:passwd lw
切換用戶
su - username
su - :切換到root用戶,需要輸入密碼
su - XXX:由root用戶切換到普通用戶,不需要密碼
退出: exit
權限管理
(ll)可查看一個用戶有什麼權限
Linux中用戶的分類
所有者(u) 同組用戶(g) 其他人(o)
Linux中文件權限
讀(r) 寫(w) 執行(x) 沒有權限(-)
文件權限詳情
-rw-r--r--. 2 root root 11 Jun 3 01:32 bb.text
drwxr-xr-x. 2 root root 4096 Jun 2 07:46 b
(1) -: -文件; d目錄
(rw-r--r--): 分成三組
rw-: 所有者權限,具有讀、寫權限,沒有執行權限
r--: 同組用戶權限,具有讀權限,沒有寫和執行權限
r--: 其他人權限,具有讀權限,沒有寫和執行權限
(2) : 該文件的鏈接個數,要和ln ln -s source target
(root root): 文件所屬者 文件所屬組
(11): 文件大小
(Jun 3 10:32)最後修改時間
修改權限
格式:chmod [添加或者刪除權限] file
需求: -rw-r--r--. 2 root root 11 Jun 3 01:32 cc.txt
希望給huadian用戶添加寫的權限
方式一:通過字符修改
chmod o+w cc.txt
添加權限: +
刪除權限: -
chmod o+w,g+w cc.txt: 給其他人和同組用戶寫權限
chmod a+w cc.txt:給所有用戶
方式二: 3位8進製表示
rw-r--r--: (110 100 100) 2 ==644
chomd 644 cc.txt
rwxrwxrwx: (111 111 111) 2 == 777
chomd 777 cc.txt
修改文件所屬用戶和所屬組
chown username:groupName file
chown :groupName file
chown username: file
-R:遞歸修改所屬用戶和所屬組
編輯 vi file_path
如果file——path不存在,保存以後,默認會創建一個文件
3種模式
命令模式:
第一次進入vi,默認就是命令模式
按ESC鍵進入命令模式。
在命令模式模式下,可以輸入命令:
i : 進入插入模式
yy : 複製當前行。5yy:複製當前行開始後的五行
p : 在當前位置粘貼
dd : 刪除當前行。5dd:刪除當前行開始的五行
u : 撤銷上一步
gg: 跳轉到第一行
G : 跳轉到最後一行
數字+gg: 跳轉到指定行,5gg: 跳轉到第5行
O: 在上一行進入編輯模式
o: 在下一行進入編輯模式
插入模式:在命令模式下,輸入“i”進入插入模式,這時候可以對文本進行編輯
最後行模式:在命令行模式下,按shift + “:”,進入最後行模式
也可以輸入一些指令:
wq/x/ZZ: 保存退出
q: 不保存退出
!: 強制
q!:強制不保存退出
set nu(number): 顯示行號
/string 檢索字符串 eg: /guangtouqiang
n 檢索下一個字符串
替換字符串
系統管理命令
硬盤管理
常見的硬盤類型
IDE:hda、hdb、gdc
SAS (SCSI) -->SATA:sda、sdb
SSD
管理命令
df -h
添加硬盤的步驟:
(1).添加硬盤
(2).在硬盤中新建分區
(3).將目錄掛載到分區中
網絡管理
ifconfig
route:查看路由器信息
服務管理命令
格式:service Linux中所有自帶服務的管理命令
查看支持的命令:ll /etc/init.d/
network:網絡
iptables:防火牆
service s_name start|stop|status|restart
chkconfig: 設置開機啓動
查看:chconfig iptables --list
設置:chkconfig iptables off|on
端口管理:
netstat
-a: 列舉所有的連接,服務監聽等。
-t: 列舉tcp協議的服務
-u: 列舉udp協議的服務
netstat -a |grep 3306:管道符,過濾出需要查找的東西
進程管理:
ps:查看當前進程
ps -ef |grep java:查看Java進程
jps:
kill: 殺死進程
kill -9 pid
redhat的selinux安全機制
關閉:vi /etc/selinux/config
SELINUX=disabled
重啓機器生效
壓縮管理
linux壓縮管理
常見的壓縮工具
zip
gzip
後綴:.gz
壓縮:gzip file_path
解壓:gunzip fileName.gz
特點:
壓縮後源文件沒有了
不能對文件夾進行壓縮
bzip2:適合壓縮比較大的文件
後綴:bz2
壓縮:bzip2 file_path
解壓:bunzip2 file_path.bz2
特點:
壓縮後源文件沒有了
不能對文件夾進行壓縮
tar:打包命令,將多個文件或者目錄打包成一個文件
格式:
打包:
tar [選項參數] target.tar source
解包:
tar [選項參數] source.tar -C target
參數:
-c:打包
-x:解包
-z:是否使用gzip進行壓縮或者解壓
-j:是否使用bzip2進行壓縮或者解壓
-v:是否顯示解壓或者壓縮過程
使用最頻繁的命令:
使用tar + gzip (最最頻繁)
解壓:
tar -zxvf XXX.tar.gz -C ./
壓縮:
tar -zcvf XXX.tar.gz source
使用tar + bzip2
解壓:
tar -jxvf xxx.tar.bz2 -C ./
壓縮:
tar -jcvf XXX.tar.bz2 source
常見的壓縮格式:
zip
gzip:
後綴名: .gz
壓縮:gzip file_path
解壓:gunzip flie_path.bz
壓縮:bzip2 Who.txt
解壓:bunzip2 file_path.bz2
特點:不能對文件夾進行壓縮,壓縮後源文件沒有了
tar:打包命令,將多個文件或者文件夾打包成一個文件
----------------------重點--------------------------
屬性:
-c: 建立壓縮檔案
-x:解壓
-t:查看內容
-r:向壓縮歸檔文件末尾追加文件
-u:更新原壓縮包中的文件
這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的參數是根據需要在壓縮或解壓檔案時可選的。
-z:有gzip屬性的時候
-j:有bz2屬性的時候
-Z:有compress屬性的
-v:顯示所有過程
-O:將文件解開到標準輸出
下面的參數-f是必須的
-f: 使用檔案名字,切記,這個參數是最後一個參數,後面只能接檔案名。
解壓:
tar -zxvf source.tar -C targe : 顯示解壓過程
tar -zxf source.tar -C targe :不顯示解壓過程
壓縮:
tar -zcvf filr.tar source
eg:
tar -zxf ./jdk-8u91-linux-x64.tar.gz -C /opt/moduls/
jdk-8u91-linux-x64.tar.gz :使用tar+gzip組合生產的文件
關機和虛擬機克隆、快照
關機:halt or init 0 or shutdown -h now
重啓:reboot or init 6
/etc/inittab 該文件中,說清楚了init 0~6分別是什麼意思。
快照:
使用一段時間後,對Linux進行快照,目標,出現了問題,可以回滾
快照會佔用大量的磁盤空間
怎麼快照:
(1)先關機
(2)VMware操作
克隆:
作用:複製出完全一樣的配置機器。
怎麼克隆
(1)關機
(2)修改mac地址
vim /etc/udev/rules.d/70-persistent-net.rules
刪除eth0
複製eth1的mac地址:00:0c:29:f7:24:b8
(3) 修改ip,hostname
ip:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.59.151
HWADDR=00:0c:29:f7:24:b8
hostname:
vi /etc/sysconfig.network
HODTNAME=bigdata-training02.huadian.com
(4) hosts
vi /etc/hosts
(5) 重啓(reboot)
Linux軟件安裝
軟件類型
RPM:Redhat序列特用的軟件包
dakg:debain序列特用的軟件包
源碼包:需要在Linux中進行編譯安裝,需要自己編譯、自己安裝
java maven
c/c++ gcc去編譯
預編譯
編譯:make
安裝:make install
軟件的安裝
rpm:安裝RPM結尾的軟件包
檢查:rpm -qa |grep java
安裝:rpm -ivh XXXX.rpm
當軟件存在依賴的時候,會安裝失敗,需要先將依賴安裝好。
卸載:rmp -e XXX
--nodeps:忽略依賴
sudo rpm --nodeps mysql-libs-5.1.66-2.el6_3.x86_64
yum: 通過軟件源安裝
自動解決依賴問題
安裝: yum install -y XX (zip、mysql)
查看當前已安裝的包:yum list installed
卸載:yum remove zip
yum源配置文件路徑
vi /etc/yum.repos.d/
阿里雲yum,163
版本問題:
比如mysql,yum 版本5.1.x
綠色安裝:最多最多最多
tar -zxf xxx.tar -C target
Linux定時任務
at 命令
設置時間 at 0:18
進入at命令行,設置需要在0:18執行的命令
mkdir -p /a/bb/201806050108
保存退出
crtl + d
crontab
啓動crontab服務
service cround start
chkconfig crond on
編輯定時任務
crontab -e
刪除定時任務
crontab -d
* * * * * command
分鐘 小時 日 月 周 需要執行的腳本(絕對路徑)
取值 0~59 0~23 1~31 1~12 0~7(0和7表示的都是週日)
特殊字符
每隔半小時執行一次
頻率: /
*/30 * * * * command
連續時間:-
早上8:00~18:00之間,每隔半小時執行一次
*/30 8-18 * * * command
間斷時間:,
早上8:00和18:00執行一次
- 8,18 * * * command
eg:
每天上午10:00執行
0 10 * * * sh /mkdir.sh
0 0 * * 3