查看Linux版本:cat /etc/redhat-release
禁用防火墙:systemctl disable firewalld
查看selinux是什么状态:getenforce
设置selinux状态:vim /etc/selinux/config
如何学好SHELL?
- 熟练使用vim
- 熟悉Linux指令
- 熟练使用grep,sed,awk
- 熟悉常用服务器部署,优化,日志和排错
编写第一个SHELL
[root@localhost day1]# vim hello.sh
[root@localhost day1]# sh hello.sh
hello world #执行结果
source会改变当前路径
不建议用source来执行脚本文件
自动生成sh文件前的 #! /bin/bash
[root@localhost day1]# vim ~/.vimrc
autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()"
func SetTitle()
if expand("%:e") == 'sh'
call setline(1,"#!/bin/bash")
call setline(2,"##############################################################")
call setline(3, "# File Name: ".expand("%"))
call setline(4, "# Version: V1.0")
call setline(5, "# Author: bxz")
call setline(6, "# Email: bxz1794914227@163.com")
call setline(7, "# Organization: ")
call setline(8, "# Created Time : ".strftime("%F %T"))
call setline(9, "# Description:")
call setline(10,"##############################################################")
call setline(11, "")
endif
endfunc
再新建一个脚本文件时就会自动生成
bash常用快捷键
ctrl+A 把光标移动到命令行开头
ctrl+E 把光标移动到命令行结尾
ctrl+C 强制终止当前的命令
ctrl+L 清屏,相当于 clear 命令
ctrl+U 删除或剪切光标之前的命令
ctrl+K 删除或剪切光标之后的内容
ctrl+Y 粘贴 ctrl+U 或 ctrl+K 剪切的内容
ctrl+R 在历史命令中搜索
ctrl+D 退出当前终端
ctrl+Z 暂停,并放入后台
ctrl+S 暂停屏幕输出
ctrl+Q 恢复屏幕输出
命令执行顺序
; 命令的顺序执行
&& 前面命令执行不成功,后面的命令不执行
|| 如果前面命令成功,后面就不执行
如果前面不成功,后面就执行
自定义环境变量
仅在当前终端有效
如果要让他在任何地方都有效的话
-
在用户的环境变量中配置
[root@localhost ~]# vim ~/.bashrc [root@localhost ~]# source ~/.bashrc
定义之后只能在这个用户使用,其他用户是使用不了的
-
在全局环境变量里配置
[root@localhost ~]# vim /etc/bashrc
这个切换用户以后,会按照优先级执行 用户环境变量大于全局环境变量
配置java环境变量
-
上传jdk
rz
-
创建一个文件夹
mkdir /usr/java
-
把jdk解压到这个文件夹内
tar -zxvf jdk-8u60-linux-x64.tar.gz -C /usr/java/
-
配置全局环境变量
[root@localhost ~]# vim /etc/profile.d/java.sh # 添加以下 export JAVA_HOME=/usr/java/jdk1.6.0_45 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin # 加载这个文件 [root@localhost ~]# source /etc/profile.d/java.sh
到这就配置好了
取消环境变量
[root@localhost ~]# unset NAME
定义本地变量需要注意的点:
- NAME=xixi,等号两边不能有空格
- 字符串类型建议用引号括起来,尤其是特殊字符或有空格
实际应用中,经常把命令的结果作为变量的内容进行复制的方法在脚本开发时很常见
[root@localhost ~]# time=$(date +%F)
[root@localhost ~]# echo $time
2021-10-29
[root@localhost ~]# day="time is $time"
[root@localhost ~]# echo $day
time is 2021-10-29
SHELL中的引号
建议
SHELL中的特殊位置参数变量
basename $0 与 dirname $0