# 大数据学习笔记第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乘法表