# 大數據學習筆記第26天 - Linux第2天 #
## 01.回顧 遞歸創建文件夾 歸檔和壓縮
**歸檔和壓縮文檔:**
**tar:歸檔工具**
```
tar -cf aaa.tar aaa //將aaa文件夾歸檔為aaa.tar
tar -tvf aaa.tar //列出歸檔文件中的所有內容
tar -xf aaa.tar //抽取歸檔文件中所有的數據
```
**gzip:壓縮工具 **
```
gzip 1.txt //壓縮
gunzip 1.txt.gz //解壓
```
```
tar -cvzf aaa.tar.gz aaa //歸檔+壓縮
tar -xzvf aaa.tar.gz //解檔+解壓
```
## 02.Linux環境變量 修改命令行格式
1、給name賦值
```
name=tom
```
2、打印出name變量
```
echo $name
```
3、獲取系統環境變量
```
echo $PATH
```
4、修改環境變量
```
export $PATH=tom //在當前會話有效
```
5、修改PS1變量,即控制臺命令行格式
```
echo $PS1 // [\u@\h \W]\$
export PS1='[\u@\h \w]\$'
```
```
\u //用戶名
@ //@
\h //主機名
\W //當前目錄
\$ //
\w //當前目錄絕對路徑
\d //時間
```
6、永久修改
1)修改環境變量文件
```
sudo nano /etc/profile
```
末尾添加一行
```
export PS1='[\u@\h \w]\$ '
```
2)使環境變量生效
```
source /etc/profile
```
### **強制命令解析**
```
echo `pwd`
```
## 03.centos下java環境變量配置 winscp
1、安裝winscp
一路默認,不想安裝在c盤可以選擇自定義
2、使用winscp
新建站點,輸入ip,用戶名,密碼
雙擊登陸
3、將jdk安裝包傳到Linux的家目錄(/home/centos)
4、正式安裝jdk
1) 在根目錄下創建/soft文件夾
`sudo mkdir /soft`
2) 將/soft文件夾的權限改為 `centos:centos`
`sudo chown centos:centos /soft`
3) 將jdk解壓到/soft下
`tar -xzvf jdk-8u131-linux-x64.tar.gz -C /soft`
4) 配置環境變量
`sudo nano /etc/profile`,添加以下內容
```
export JAVA_HOME=/soft/jdk1.8.0_65
export PATH=$PATH:$JAVA_HOME/bin
```
5) 使環境變量生效
```
source /etc/profile
```
6) 測試jdk安裝
```
java -version
```
## 04.硬鏈接 符號鏈接 修改環境變量
相當于快捷方式,指向某個文件或文件夾
```
ln jdk1.8.0_131 jdk //硬鏈接,適用于文件
ln -s jdk1.8.0_131 jdk //符號鏈接
```
添加jdk安裝目錄的符號鏈接
`ln -s /soft/jdk1.8.0_131 /soft/jdk`
修改環境變量
`sudo nano /etc/profile`,修改以下內容:
```
export JAVA_HOME=/soft/jdk
export PATH=$PATH:$JAVA_HOME/bin
```
使環境變量生效
`source /etc/profile`
測試jdk安裝
`java -version`
獲取變量的方式:
```
echo $PATH √
echo ${PATH} √
echo "$PATH" √
echo '$PATH' x
```
## 05.shell腳本介紹 for循環 修改前景色
### **腳本:**
解釋型語言:運行時候通過解釋器進行翻譯,成機器語言
腳本語言:python、js、perl、shell //所見即所得
編譯型語言:通過編譯器進行預編譯,成機器語言,直接運行 如:C、C++、Java...
**腳本的執行過程:**
1. 添加執行權限:chmod a+x 1.sh
2. 當前目錄執行:./1.sh
**腳本編寫:**
1. 創建文件,添加執行權限
2. 編寫腳本頭,聲明解釋器
`#!/bin/bash`
3. 正常編寫腳本
4. 注釋的編寫,以# 作為標識
**shell的循環:**
for:
//for ... in 語句
`for NAME [in WORDS ... ] ; do COMMANDS; done`
**eg:**
```
for x in `cat 1.txt` ; do echo $x ; done //通過對1.txt中的單詞進行分割,取出所有單詞并進行打印
```
for ((
`for (( exp1; exp2; exp3 )); do COMMANDS; done`
**eg:**
`for (( i=0; i<10; i++ )); do echo $i ; done //循環打印1-9`
**通過for循環,打印99乘法表**
```
1 1x1=1
2 1x2=2 2x2=4
3 1x3=3 ... ...
```
## 06.if條件語句 參數控制 if整數比較
## 07.while循環 case語句
## 08.while循環實現99乘法表