当前位置: 首页 > news >正文

【shell】Shell学习后篇

Linux 常用 Shell

文章目录

  • Linux 常用 Shell
    • Banner
    • 设置字体颜色
    • 设置提示
    • 操作系统
    • 操作系统版本号
    • 系统处理器架构
    • 关闭防火墙和SELinux
    • 系统操作
    • 防火墙相关
    • 获取当前目录
    • 判断文件是否存在
    • 判断目录是否存在
    • 后台挂起静默执行
    • 判断之前的命令是否成功

Banner

设置字体颜色

RED='\033[31m'
GREEN='\033[32m'
YELLOW='\033[33m'
BLUE='\033[34m'
BOLD='\033[1m'
PLAIN='\033[0m'

设置提示

SUCCESS='[\033[32mOK\033[0m]'
COMPLETE='[\033[32mDONE\033[0m]'
WARN='[\033[33mWARN\033[0m]'
ERROR='[\033[31mERROR\033[0m]'

操作系统

SYSTEM_NAME=$(cat /etc/os-release | grep -E "^ID=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")
if [ -s /etc/redhat-release ];thenSYSTEM_VERSION=RedHat
elif [ -s /etc/debian_version ];thenSYSTEM_VERSION=Debian
elif [ -s /etc/centos-release ];thenSYSTEM_VERSION=CentOS
fi

操作系统版本号

SYSTEM_VERSION_NUMBER=$(cat $LinuxRelease | grep -E "VERSION_ID=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")

系统处理器架构

ARCH=$(uname -m)
# 判定系统处理器架构
case ${ARCH} inx86_64)SYSTEM_ARCH="x86_64";;aarch64)SYSTEM_ARCH="ARM64";;armv7l)SYSTEM_ARCH="ARMv7";;armv6l)SYSTEM_ARCH="ARMv6";;i386 | i686)SYSTEM_ARCH="x86_32";;*)SYSTEM_ARCH=${ARCH};;esac

关闭防火墙和SELinux

function CloseFirewall() {if [[ $(systemctl is-active firewalld) == "active" ]]; thenCHOICE_C=$(echo -e "\n${BOLD}└─ 是否关闭防火墙和 SELinux ? [Y/n] ${PLAIN}")read -p "${CHOICE_C}" INPUT[ -z ${INPUT} ] && INPUT=Ycase $INPUT in[Yy] | [Yy][Ee][Ss])systemctl disable --now firewalld >/dev/null 2>&1[ -s /etc/selinux/config ] && sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config && setenforce 0 >/dev/null 2>&1;;[Nn] | [Nn][Oo]) ;;*)echo -e "\n$WARN 输入错误,默认不关闭!";;esacfi
}

系统操作

# 强制更新rpm包,忽略依赖
rpm -Uvh *.rpm --nodeps --force
# 创建数据库和导入初始化数据
mysql -uroot -pPassword -e "create database databasename;"
mysql -uroot -pPassword  databasename < ./init/sql/ddl.sql
# 查询程序进程号并终止进程
kill -9 $(ps -ef | grep elasticsearch | grep -v "grep" | awk '{print $2}')  >/dev/null 2>&1
tar -xzf xxxx.tar.gz -C /some_dir/

防火墙相关

#查看防火墙状态
systemctl status firewalld.service#关闭防火墙
systemctl stop firewalld.service#开启防火墙
systemctl start firewalld.service
#!/bin/bash
## 计算传递进来的参数个数[$#]
## 获取脚本名称[$0]
## 检查之前的命令是否运行成功[$?]
## 获取文件的末行[tail -1 filename]
## 获取文件的首行[head -1 filename]
## 获取文件每一行的第n个元素[awk '{print $n}']
## 如果文件中每行第n个元素是param,则获取第m个元素[awk '{if($n == "param") print $m}']
## 强制拷贝[cp -rf]

##查看linux系统版本

cat /etc/issue

##连接mysql数据库

mysql -u USERNAME -p PASSWORD DATABASENAME <<EOF 2>/dev/nullshow databases;
EOF

获取当前目录

baseDir=$(cd `dirname "$0"`;pwd)

判断文件是否存在

if [ ! -f $filename ]; thenexit 1
fi

判断目录是否存在

if [ ! -d $dir ]; thenmkdir -p $dir
fi

后台挂起静默执行

nohup $baseDir/start.sh $PARAM 2>&1 >> $LOGFILE &

判断之前的命令是否成功

if [ ! $? -eq 0 ]; thenexit 1
fi
http://www.lryc.cn/news/302069.html

相关文章:

  • 协同程序原理
  • 怎样保证数据库和redis里的数据一致性
  • 探索设计模式的魅力:创建型设计模式的比较与决策
  • Linux之Shell
  • nginx upstream server主动健康检测模块添加https检测功能[完整版]
  • django中admin页面汉化
  • prometheus基于consul的服务发现
  • 深度学习之pytorch实现线性回归
  • Vue3快速上手(八) toRefs和toRef的用法
  • 《数学建模》专栏导读
  • App启动优化笔记 1
  • Spring Boot 笔记 027 添加文章分类
  • 【SQL】sql记录
  • 嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM驱动编程第六天-ARM Linux编程之SMP系统 (物联技术666)
  • html5播放 m3u8
  • 微信小程序按需注入和用时注入
  • iPhone 16 组件泄露 揭示了新的相机设计
  • 网络工程师学习笔记——IPV6
  • 【零基础学习CAPL】——CAN报文的发送(LiveCounter——生命信号)
  • git提交代码冲突
  • 树莓派:使用mdadm为重要数据做RAID 1保护
  • HTML板块左右排列布局——左侧 DIV 固定宽度,右侧 DIV 自适应宽度,填充满剩余页面
  • 红旗linux安装32bit依赖库
  • Stable Diffusion教程——使用TensorRT GPU加速提升Stable Diffusion出图速度
  • NFTScan | 02.12~02.18 NFT 市场热点汇总
  • 使用 apt 源安装 ROCm 6.0.x 在Ubuntu 22.04.01
  • python函数的定义和调用
  • 【JVM篇】什么是类加载器,有哪些常见的类加载器
  • STM32—DHT11温湿度传感器
  • 相机图像质量研究(31)常见问题总结:图像处理对成像的影响--图像差