# 大數據學習筆記第25天 - Linux第1天 #
## 01.Linux介紹以及VMware安裝
Linux是什么?
**操作系統**

為什么要用centos:
1. 經濟
免費
2. 安全
使用群體為開發人員,查看進程能夠輕易分辨
開源,病毒不會輕易運行
3. 省資源
在剩余少量資源的情況下,能夠正常運行
軟件安裝在沒有中文和空格的目錄下:
- VMware 12
- CentOS-7-x86_64-DVD-1511
## 02.Centos虛擬機安裝
安裝CentOS7.0基本都是默認下一步:







## 03.Linux基本命令
```
[centos@bogon ~]$
centos //用戶名
@ //@
bogon //主機名
~ //當前目錄
$ //非root用戶命令行
# //root用戶命令行
ls //列出當前目錄下的文件或文件夾
cd //change directory 切換目錄
相對路徑 //相對于當前目錄的路徑 cd Desktop
絕對路徑 //相對于根目錄的完整路徑 cd \Users\chang\Desktop
Linux中路徑左斜線“/”
Windows中路徑右斜線“\”
ls -al //-a 顯示全部 //全部指的什么?
//-l 顯示詳細信息
ll //ls -l
ls --help //查看幫助
su root //switch user 切換用戶到root
cat ifcfg-ens33 //查看ifcfg-ens33文件內容
reboot //重啟
ip addr //查看本機ip
cd ~ //進入到家目錄
//對于centos,家目錄是/home/centos
//對于root,家目錄/root
pwd //查看當前目錄的絕對路徑
touch 1.txt //創建1.txt文件
rm 1.txt //刪除1.txt
mkdir aaa //創建文件夾
ll aaa //查看文件夾內容
rm -r aaa //遞歸刪除文件夾
echo //回音
> 或 >> //重定向
//> 為覆蓋
//>> 為追加
echo helloworld > 1.txt //將helloworld重定向到1.txt
cat 1.txt //查看整個文檔
more 1.txt //分頁查詢
head [-n] 1.txt //默認前十行,輸出前n個行
tail [-n] 1.txt //默認后十行,輸出前n個行
clear //清屏,快捷鍵為ctrl+L
whoami //輸出當前用戶名
sudo //臨時使用root權限進行操作
passwd //修改密碼,修改當前用戶
passwd centos //指定用戶名修改密碼,只有root可以做
cp 1.txt 11.txt //拷貝文件
mv 1.txt 111.txt //移動文件,可以進行重命名
rename 11.txt 22.txt 11.txt //重命名
echo -n //去除換行符
echo -e //轉譯,將特殊字符轉移
wc 3.txt //統計單詞個數,包括行數、單詞數、字節數
```
遠程登錄軟件:
* putty
* xsheel
## 04.VI講解 mtputty安裝配置 文件和文件夾的增刪改查
**VI編輯器:**
```
vi ifcfg-ens33 //編輯ifcfg-ens33文件內容
按insert或者i //進入到編輯模式
//光標定位修改文件,將最后一行的no改成yes
esc //退出編輯模式
:wq //保存退出
x //非編輯模式下刪除單個字符
dd //非編輯模式下刪除整行
dG //刪除當前行及其后面所有行
:wq //保存退出
:q! //不保存退出
```
**遠程登錄軟件:**
* putty
* secureCRT
* xshell
```
ip addr //查看本機ip
su root //switch user 切換用戶到root
cd /etc/sysconfig/network-scripts/ //
```
**putty中的復制粘貼:**
復制:選中即復制
粘貼:復制后鼠標右鍵粘貼
**MTPuTTY安裝配置:**
* 多標簽putty,相當于putty的插件
* 安裝位置D:\program\MTPuTTY //沒空格。沒中文
* putty位置D:\program //沒空格。沒中文
安裝完成后的配置
1. putty location //D:\program\putty.exe
2. 工具欄點擊server -> add server
```
server name //客戶機ip地址
display name //點擊自動補全
username //centos
password //123456
//旁邊的框框打鉤(password in command line)
```
3. 雙擊新建的server,即進入
## 05.Linux文件查看方式 目錄和文件類型
```
- //文件
d //文件夾
l //符號鏈接
s //套接字文件
b //塊設備文件
c //字符設備文件
p //pip
```
ls是Linux的可執行文件
```
which ls
```
ip也是Linux中的文件
```
which ip
```
查看幫助:
```
ls --help
help echo
man echo
info echo
```
**目錄結構:**
```
/bin
/sbin
/etc //配置文件目錄
/home //普通用戶家目錄的父目錄
/lib //庫文件
/proc //進程文件
/usr //用戶目錄
/root //root用戶的家目錄
```
## 06.CentOS文件權限驗證 sudoer問題解決
職能分類:r(讀4)、w(寫2)、x(執行1)
范圍分類:u(用戶) 、g(用戶組)、o(其他)
測試Linux權限:只去除一個權限,查看文件或文件夾不能做什么
**文件:**
* 讀: cat
* 寫: echo >
* 執行:
**文件夾:**
* 讀: ls
* 寫: 對文件夾數據的增刪
* 執行: cd
**權限修改:**
```
chmod u-r 1.txt
chmod u-rwx 1.txt
chmod 664 1.txt
chmod a-x /usr/bin/ls
chown //修改用戶和用戶組
chown centos:centos root.txt
chgrp //只修改用戶組
chgrp centos root.txt
```
**sudo不能使用的情況:**
centos is not in the sudoers file. This incident will be reported.
解決方案:
1. 切換到root
su root
2. 輸入命令
visudo
3. 在root ALL=(ALL) ALL下添加以下內容
centos ALL=(ALL) ALL
4. 保存退出
esc
:wq
## 07.文件夾權限 yum使用 nano文本編輯器 ifconfig
```
sudo yum [-y] install nano //安裝
sudo yum [-y] remove nano //卸載
sudo yum install --downloadonly --downloaddir=. -y nano //下載
sudo yum [-y] localinstall *.rpm //本地安裝
yum search ifconfig //搜索軟件包名
sudo yum install -y net-tools //安裝網絡工具
```
**nano 文本編輯器**
```
nano 1.txt //編輯文件
ctrl + o //保存
ctrl + x //退出
ctrl + k //剪切
ctrl + u //粘貼
ctrl + w //搜索
```
## 08.CentOS主機名和靜態ip配置
**如何讓虛擬機聯網:**
1. 切換到root用戶
su root
2. 切換到目錄并查看文件
cd /etc/sysconfig/network-scripts/
cat ifcfg-ens33
3. 修改文件內容
vi ifcfg-ens33 //編輯ifcfg-ens33文件內容
4. 重啟客戶機(centos)
reboot
**靜態IP與動態IP的優缺點:**
靜態ip
* //優點,方便維護
* //缺點,配置較麻煩
動態ip //dhcp
* //通過交換機(dhcp服務器),通過某一規則進行分配的ip。
* //優點,配置簡單
* //缺點,不易維護
### 靜態IP配置流程
1、查看宿主機器的IP地址(一定要是192.168.*.*),如果是無線的網絡,需要使用路由器聯網;

2、設置虛擬機選擇VMNet8網卡,設置成和宿主IP一個子網,去掉使用DHCP服務選項

3、設置宿主VMNet8網卡,IP網段要保持一致,才能保證可以通信

4、配置虛擬機網絡連接模式,選擇NAT模式

5、配置網卡

*vim /etc/sysconfig/network-scripts/ifcfg-eno16777736*
```
TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777736"
UUID="791c9cc5-e7d8-4113-863d-6b959a79c08e"
DEVICE="eno16777736"
ONBOOT="yes"
IPADDR=192.168.214.100
PREFIX=24
GATEWAY=192.168.214.2
NETMASK=255.255.255.0
DNS=8.8.8.8
DNS2=114.114.114.114
```
6、重啟網卡
`service network restart`
**修改主機名:**
*vim /etc/hostname* 將 localhost.localdomain 修改成 s100
`hostname` 查看主機名