一、Linux高级配置
1.1、Linux分配身份证号码(ip)静态ip设置
cat /etc/sysconfig/network-scripts/ifcfg-ens33
这里的dhcp默认是动态获取。
IPADDR=192.168.234.101(根据自己实际情况填写)
GATEWAY=192.168.234.2 (根据自己实际情况填写)
DNS1=192.168.234.2 (根据自己实际情况填写)
重启网络 service network restart
1.2、Linux起名字(hostname):临时设置+永久设置
临时设置就是:临时生效,重启后无效
hostname bigdata01 设置名称为bigdata01
永久设置就是:需要重启后生效
vi /etc/hostname
1.3、Linux的金钟罩铁布衫(防火墙):临时关闭+永久关闭(这边主要演示的是centos 7。其他版本请查阅资料)
systemctl status firewalld 查看防火墙运行状态
在学习阶段,把防火墙关闭是没有任何问题的,但是在实际工作中,这个是需要谨慎操作,一般由运维来管理
临时设置就是:临时生效,重启后无效
systemctl stop firewalld
永久设置就是:需要重启后生效
systemctl disable firewalld
systemctl list-unit-files|grep firewalld
二、Linux Shell编程
2.1、编写shell脚本
shell是用户与Linux操作系统沟通的桥梁。而shell编程就是开发一个shell脚本
- shell脚本文件名后缀通常是.sh
- shell脚本第一行内容是: #!/bin/bash(含义:相当于是一个导包语句,将shell的执行环境引入进来)
- 第一行的#开头的不是注释,其他行是注释
#!/bin/bash
# frist command
echo hello world
2.2、执行shell脚本
- bash hello.sh
- sh hello.sh
- bash -x hello.sh 单步执行脚本
上面两种无需给脚本添加执行权限
chmod u+x hello.sh (u代表用户 x代表执行权限)
- ./hello.sh
- hello.sh(会到path环境变量中去查找)echo $PATH 查看环境变量
修改环境变量:vi /etc/profile
export PATH=.:PATH的值,然后在其值前面加个点(.))点代表当前路径
source /etc/profile 生效修改的内容。然后就可以执行hello.sh
2.3、shell脚本的四种变量
-
本地变量
格式:VAR_NAME=VALUE
应用场景:在shell脚本中定义一些临时变量时使用,对当前shell进程的子shell进程及其他shell进程无效
-
环境变量
格式:export VAR_NAME=VALUE
应用场景:用于设置临时环境变量,对子shell进程有效,对其他shell进程无效
注意:
设置永久环境变量,需要添加到配置文件/etc/profile中,然后执行source /etc/profile可立即生效
-
位置变量
1、$2
格式:location.sh abc xyz
位置变量相当于java中main函数的args参数,可以在shell脚本中动态获取外部参数
#! /bin/bash echo $0 echo $1 -
特殊变量
$? 上一条命令的返回状态码,状态码在0~255之间
$# shell脚本所有参数的个数
2.4、变量和引号的特殊使用
-
'' 单引号不解析变量
-
"" 双引号解析变量
-
`` 反引号是执行并引用命令的执行结果 。下面就是把hah当成命令来执行了
-
$()是``的另一种写法,效果一样
三、shell编程的循环和判断
3.1、for循环
#! /bin/bash
for((i=0;i<10;i++))
do
循环体..
done
#! /bin/bash
for i in 1 2 3
do
循环体..
done
3.2、while循环
适用于循环次数未知,或不便于使用for直接生成较大列表时
while 测试条件
do
循环体...
done
测试条件为真,则进入循环,测试条件为假,则退出循环
整型测试:-gt(大于)、-lt(小于)、-ge(大于等于)、-le(小于等于)、-eq(等于)、-ne(不等于)
字符串测试:=(等于)、!=(不等于)
3.3、if判断
- 单分支
- 双分支
- 多分支
if 测试条件
then
选择分支
fi
四、shell脚本扩展
4.1、后台模式运行脚本
nohup sh xx.sh &
日志默认存在:nohup.out
- nohup 就是不挂起(no hang up)用于在系统后台不挂断运行命令,退出终端不会影响程序的运行
- &是后台运行脚本
4.2、标准输出(1)、标准错误输出(2)、重定向(>或者>>)
是追加输出信息
nohup hello.sh > /dev/null 2>&1 &
/dev/null是linux的黑洞,也就是上面的案例就是不会保留任意的日志。想要保留把/dev/null替换成正常的路径
五、Linux中的定时器crontab
周期性被执行的命令
格式:* * * * * user-name command
- 第一个是分钟(0-59)
- 第二个是小时(0-23)
- 第三个是月中第几天(1-31)
- 第四个是月份(1-12)
- 第五个是星期中的第几天(0-6)
查看crontab服务状态:systemctl status crond
启动/停止crontab服务:systemctl start/stop crond
添加定时任务 vi /etc/crontab
五、在Linux上安装配置JDK
5.1、下载jdk8
5.2、在虚拟机上创建目录
mkdir software
然后把下载的jdk上传到software目录,这边直接使用的是前文提到的软件:FinalShell软件
-
cd到software目录
-
解压jdk压缩包:tar -zxvf jdk-8u341-linux-x64.tar.gz
-
获取java解压的目录:/root/software/jdk1.8.0_341
-
进行配置profile : vi /etc/profile
export JAVA_HOME=/root/software/jdk1.8.0_341 export PATH=.:$JAVA_HOME/bin:$PATH -
使用source生效配置
source /etc/profile
-
校验java环境是否配置ok
java -version