rpm -qa | grep mysql 检查是否有旧版本查询结果:mysql-libs-5.1.73-7.el6.x86_64rpm -e mysql-libs 删除旧版本rpm -e --nodeps mysql-libs 强行删除2. 安装mysql2.1 安装源码需要编译
下载c的编译工具yum -y install make gcc-c++ cmake bison-devel ncurses-devel2.2 xftp连接上传
xftp连接上传到opt文件夹2.3 编译
1. tar -zxvf mysql-5.6.14.tar.gz 解压2. cd mysql-5.6.14 切换目录3.编译准备:cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci编译并安装:make && make install2.4配置mysql
1.创建mysql组,及用户 groupadd mysql useradd -g mysql mysql passwd mysql2.初始化配置:1.cd /usr/local/mysql2.scripts/mysql_install_db3.修改权限:修改/usr/local/mysql权限chown -R mysql:mysql /usr/local/mysql4.在启动MySQL服务时,会先在/etc目录下找my.cnf,找不到则会搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf查看/etc下是否有my.cnf,有就换个名字,防止干扰mv /usr/local/mysql/my.cnf /usr/local/mysql/my.cnf.bak5.添加服务(mysql服务放进/etc/init.d),并设置开机自启:1.cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql2.chkconfig mysql on3.service mysql start6.配置环境变量:1.vi /etc/profile2.在文件中加入: export PATH=/usr/local/mysql/bin:$PATH3.source /etc/profileshell编程1.shell编程是个啥
Shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的系统级程序
2.shell编程打印hello world使用案例1.新建脚本文件(bash结尾)vim hello.sh2.脚本文件代码编写
#!/bin/bashecho ‘hello world‘
代码解释:
1.#!/bin/bash:
告诉计算机,使用bash解释器来执行代码
2.echo:
控制台输出
3.运行脚本文件方式一:(不推荐)直接调用shell解释器执行
1.hello.sh为文件路径bash hello.sh方式二:
给脚本可执行权限
1.hello.sh为文件路径chmod 744 hello.sh2.文件路径直接运行./hello.sh
3.注释
1.单行注释#内容2.多行注释:<<!内容!变量1.变量的介绍
1.Linux中变量的分类:系统变量(系统先前定义好的) 自定义变量2.引用变量:$变量名3.系统变量: $PATH $HOME $PWD $SHELL $USER4.显示当前shell中所有的变量:set2.变量的定义
1.定义变量:变量名=变量值2.撤销变量:unset 变量名3.声明静态变量:readonly 变量名=值 静态变量不能unset和改值定义规则
1.变量名称可以由字母、数字和下划线组成,但是不能以数字开头2.等号两侧不能有空格3.变量名称一般习惯为大写3.将命令的返回值赋给变量(用的多)
1.A=`ls -la` 反引号,运行里面的命令,并把结果返回给变量 A2.A=$(ls -la) 等价于反引号设置环境变量基本语法
1.export 变量名=变量值 将shell变量输出给环境变量2.source 配置文件 让修改后的配置信息立即生效3.echo $变量值 查看环境变量的值位置参数变量(给执行文件传参数)
当我们执行一个 shell 脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量
基本语法1.$n (功能描述:n 为数字,$0 代表命令本身,$1-$9 代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10})2.$* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)3.$@ (功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)4.$#(功能描述:这个变量代表命令行中所有参数的个数)预定义变量
就是 shell 设计者事先已经定义好的变量,可以直接在 shell 脚本中使用
基本语法$$ (功能描述:当前进程的进程号(PID))$! (功能描述:后台运行的最后一个进程的进程号(PID))$?(获取函数return的结果) (功能描述:最后一次执行的命令的返回状态。如果这个变量的值为 0,证明上一个命令正确执行;如果这个变量的值为非 0(具体是哪个数,由命令自己来决定),则证明上一个命令执行失败)运算符基本语法
1.$((运算式))2.$[运算式] ------推荐使用3.`expr m + n` 特点:运算符之间要有空格 + - / % * ( )判断基本语法
[ 条件 ] 注意:条件前后要有空格特别的:[ 非空 ] 为true[] 为false[ haha ] && echo true || echo false1.字符串比较
= 判等!= 判不相等2.整数比较
-lt 小于-le 小于等于-gt 大于-ge 大于等于-eg 等于-ne 不等于3.文件权限判断
-r 有读的权限 [ -r 文件 ]-w 有写的权限 [ -w 文件路径 ]-x 有执行权限
-f 存在并且是一般文件 [-f 文件]-e 文件存在 (用的多)-d 存在并且是一个目录流程控制1.基本语法
1.if [ 条件 ]then 代码fi2.if [ 条件 ]then 代码else 代码fi3.if [ 条件 ]then 代码elif [ 条件 ]then 代码else 代码fi2.case 选择分支
case $变量名 in‘值1‘)代码;;‘值2‘)代码;;*)代码 都没命中执行;;esacfor循环1.用法一
for ((初始值;循环条件;追加条件))do 代码done2.用法二
for 变量 in 值1 值2 值3do 代码donewhile循环
while [ 条件 ]do 代码done与用户交互基本语法
read 选项 变量选项:-p:提示信息-t:等待输入的时间函数1.系统函数basename
basename [pathname] [suffix]获得路径最后一部分如果指定的suffix,那么会去掉结果中suffix的部分dirname
dirname [pathname]获得基础路径2.自定义函数
没有形参
function 函数名(){ 代码; #参数使用:$1,$2,...,${10}... return xxx;}return 的结果会被谁捕获: $?调用:函数名 值1 值2
Linux mysql shell脚本 变量和环境变量 位置参数 预定义变量 运算符 判断 流程控制 for循环 与用户交互 函数
标签:bak tab 结果 之间 形参 多行注释 执行文件 语法 单行
小编还为您整理了以下内容,可能对您也有帮助:
在Linux9.0中Shell提供变量来设置环境参数和保存shell信息。
1)、四种变量分别为:本地变量、环境变量、位置参数变量和预定义变量。
2)、变量=${参数变量:=woed}表示如果设置了参数变量,则用参数变量的值置换变量的值,否则把变量设置成word,然后再用word替换参数的值。如B=${C:=word}中,如果设置了C=good, word=bad时,则B=good; 如果C没有设置,word=bad,则B=bad,同时把B也设成bad。
3)、$# 表示传递到脚本的参数的数量
$! 表示后台运行的最后一个进程号
$0 表示当前执行的进程名
Shell编程详细教程详见《Linux就该这么学》第四章内容。
shell中用户变量和环境变量之间的区别和使
shell中系统变量、用户变量和环境变量之间的区别和使用:
Shell有以下几种基本类型的变量:
1) shell定义的环境变量
shell在开始执行时就已经定义了一些和系统的工作环境有关的变量,这些变量用户还可以重新定义,常用的shell环境变量有:
HOME:用于保存注册目录的完全路径名。
PATH:用于保存用冒号分隔的目录路径名,shell将按PATH变量中给出的顺序搜索这些目录,找到的第一个与命令名称一致的可执行文件将被执行。
TERM:终端的类型。
UID:当前用户的标识符,取值是由数字构成的字符串。
PWD:当前工作目录的绝对路径名,该变量的取值随cd命令的使用而变化。
PS1:主提示符,在特权用户下,缺省的主提示符是“#”,在普通用户下,缺省的主提示符是“$”。
PS2:在shell接收用户输入命令的过程中,如果用户在输入行的末尾输入“\”然后回车,或者当用户按回车键时shell判断出用户输入的命令没有结束时,显示这个辅助提示符,提示用户继续输入命令的其余部分,缺省的辅助提示符是“>”。
2) 用户定义的变量
用户可以按照下面的语法规则定义自己的变量:
变量名=变量值
要注意的一点是,在定义变量时,变量名前不应加符号“$”,在引用变量的内容时则应在变量名前加“$”;在给变量赋值时,等号两边一定不能留空格,若变量中本身就包含了空格,则整个字符串都要用双引号括起来。
在编写shell程序时,为了使变量名和命令名相区别,建议所有的变量名都用大写字母来表示。
有时我们想要在说明一个变量并对它设定为一个特定值后就不在改变它的值,这可以用下面的命令来保证一个变量的只读性:
readly 变量名
在任何时候,建立的变量都只是当前shell的局部变量,所以不能被shell运行的其他命令或shell程序所利用,export命令可以将一局部变量提供给shell执行的其他命令使用,其格式为:
export 变量名
也可以在给变量赋值的同时使用export命令:
export 变量名=变量值
使用export说明的变量,在shell以后运行的所有命令或程序中都可以访问到。
3) 位置参数
位置参数是一种在调用shell程序的命令行中按照各自的位置决定的变量,是在程序名之后输入的参数。位置参数之间用空格分隔,shell取第一个位置参数替换程序文件中的$1,第二个替换$2,依次类推。$0是一个特殊的变量,它的内容是当前这个shell程序的文件名,所以,$0不是一个位置参数,在显示当前所有的位置参数时是不包括$0的。
4) 预定义变量
预定义变量和环境变量相类似,也是在shell一开始时就定义了的变量,所不同的是,用户只能根据shell的定义来使用这些变量,而不能重定义它。所有预定义变量都是由$符和另一个符号组成的,常用的shell预定义变量有:
$#:位置参数的数量
$*:所有位置参数的内容
$?:命令执行后返回的状态
$$:当前进程的进程号
$!:后台运行的最后一个进程号
$0:当前执行的进程名
其中,“$?”用于检查上一个命令执行是否正确(在Linux中,命令退出状态为0表示该命令正确执行,任何非0值表示命令出错)。
“$$”变量最常见的用途是用作临时文件的名字以保证临时文件不会重复。
5) 参数置换的变量
shell提供了参数置换能力以便用户可以根据不同的条件来给变量赋不同的值。参数置换的变量有四种,这些变量通常与某一个位置参数相联系,根据指定的位置参数是否已经设置类决定变量的取值,它们的语法和功能分别如下。
a. 变量=${参数-word}:如果设置了参数,则用参数的值置换变量的值,否则用word置换。即这种变量的值等于某一个参数的值,如果该参数没有设置,则变量就等于word的值。
b. 变量=${参数=word}:如果设置了参数,则用参数的值置换变量的值,否则把变量设置成word然后再用word替换参数的值。注意,位置参数不能用于这种方式,因为在shell程序中不能为位置参数赋值。
c. 变量=${参数?word}:如果设置了参数,则用参数的值置换变量的值,否则就显示word并从shell中退出,如果省略了word,则显示标准信息。这种变量要求一定等于某一个参数的值,如果该参数没有设置,就显示一个信息,然后退出,因此这种方式常用于出错指示。
d. 变量=${参数+word}:如果设置了参数,则用word置换变量,否则不进行置换。
所有这四种形式中的“参数”既可以是位置参数,也可以是另一个变量,只是用位置参数的情况比较多。
Linux Shell脚本系列教程:使用函数添加环境变量
这篇文章主要介绍了Linux Shell脚本系列教程(四):使用函数添加环境变量,本文对环境变量的一知识作了介绍,并给出普通添加环境变量和使用函数添加环境变量的方法,需要的朋友可以参考下
一、简介
环境变量通常用于存储路径列表,这些路径用于搜索可执行文件、库文件等。例如:$PATH、$LD_LIBRARY_PATH,它们通常看起来像这样:
代码如下:
PATH=/usr/bin;bin
LD_LIBRARY_PATH=/usr/lib;lib
这意味着只要shell需要运行二进制可执行文件时,它会首先查找/usr/bin,然后查找/bin。在ubuntu14.04中,PATH和LD_LIBRARY_PATH存储的路径如下所示:
代码如下:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:
/sbin:/bin:/usr/games:/usr/local/games
LD_LIBRARY_PATH="" #默认情况下,该变量未定义
二、添加环境变量
当你必须使用源代码编译生成程序并将其安装到某个特定路径中时,有项极其常见的任务就是讲该程序的bin目录加入PATH环境变量,将其所依赖的库目录加入LD_LIBRARY_PATH环境变量,以便可以从命令行终端正确运行软件。假设我们将testApp安装到/opt/testApp目录中,它的二进制文件在bin目录中,库文件在lib目录中,则添加环境变量的方法如下:
代码如下:
export PATH=/opt/testApp/bin:$PATH #路径之间以冒号(:)分隔
export LD_LIBRARY_PATH=/opt/testApp/lib:$LD_LIBRARY_PATH
三、使用函数添加环境变量
当要添加的路径较少的时候,可以逐个手动添加,但是,当路径较长较多时,手动添加就会变得耗时耗力,而且出错的可能性会增大。其实大可不必如此做,我们可以在.bashrc-中加入可以添加环境变量的函数,由函数完成对环境变量的添加,例如我们可以用下面的函数完成1.4.2节的任务:
代码如下:
prepend() { [ -d "$2" ] eval $1=/"$2':'/$$1/" export $1; }
这个函数需要两个参数,1和2,其中1用于存放环境变量的名称,如PATH,2用于存放将要添加的环境变量,例如/opt/testApp/bin。
该函数首先执行[ -d “$2”]语句,判断将要添加的路径是否存在,存在则执行后面的语句,否则函数结束;接着执行第二条语句,该语句将要添加的路径添加在对应环境变量的开头部分,即使用前插法添加路径;最后使用export $1使得环境变量生效。
注意:语句eval $1=/”$2':'/$$1/”比较难以理解,$$1可以写成/${/$1},这样比较容易理解,表示首先取得函数的第一个参数,然后再提取该参数的内容。例如1.4.2节中的环境变量可以用如下的方式添加:
代码如下:
prepend() PATH /opt/testApp/bin #$1为PATH,$2为/opt/testApp/bin
prepend() LD_LIBRARY_PATH /opt/testApp/lib #$1为LD_LIBRARY_PATH,$2为/opt/testApp/lib
用以上函数添加环境变量确实方便不少,但这个函数本身不够完善,当环境变量为空时,这是将会在末尾添加一个多余的冒号(:),需要作如下改变,使得函数更加严谨:
代码如下:
prepend(){ [ -d "$2" ] eval $1=/"/$2/$/{$1:+':'/$$1}/" export $1 }
改动的地方仅有第二个语句,这里用到了一种shell参数扩展的形式:
代码如下:
${parameter:+expression}
当且仅当parameter有值而且不为空,才使用expression的值,这样可以避免添加空变量的情况。
linuxshell编程
LinuxShell编程是Linux系统下的一种脚本语言,它可以让用户通过编写脚本来实现一些自动化的操作,从而提高工作效率。本文将介绍LinuxShell编程的基础知识和常用操作,帮助读者快速掌握Shell编程技能,打造高效自动化工具。
一、Shell编程基础
1.Shell脚本的基本格式
Shell脚本的基本格式如下:
```
!/bin/bash
这是注释
echo"HelloWorld!"
```
其中,第一行指定了脚本的解释器,一般为/bin/bash;第二行是注释,用于解释脚本的作用;第三行是执行命令,用于输出"HelloWorld!"。
2.Shell变量
Shell变量用于存储数据,可以通过以下方式定义:
```
name="Tom"
echo$name
```
其中,name为变量名,Tom为变量值,$name为调用变量的方式。
3.Shell运算符
Shell支持多种运算符,如算术运算符、关系运算符、逻辑运算符等。以下是一些常用的运算符:
```
算术运算符
a=10
b=20
echo`expr$a+$b`犑涑?30
关系运算符
a=10
b=20
if[$a-eq$b]
then
echo"a等于b"
else
echo"a不等于b"
fi
逻辑运算符
a=10
b=20
if[$a-gt0-a$b-gt0]
then
echo"a和b都大于0"
else
echo"a和b不都大于0"
fi
```
4.Shell流程控制
Shell流程控制用于控制脚本的执行流程,常用的流程控制语句有if-else、for、while等。以下是一个示例:
```
foriin$(seq110)
do
echo$i
done
```
以上代码将输出1到10的数字。
二、Shell编程实战
1.实现文件备份
文件备份是一项常见的操作,可以通过Shell脚本来实现。以下是一个简单的文件备份脚本:
```
!/bin/bash
备份文件
tar-czvfbackup.tar.gz/home/user
```
以上脚本将/home/user目录下的文件备份到backup.tar.gz文件中。
2.实现定时任务
定时任务是一项非常实用的功能,可以通过Shell脚本来实现。以下是一个定时备份脚本:
```
!/bin/bash
定时备份文件
whiletrue
do
tar-czvfbackup.tar.gz/home/user
sleep3600犆啃∈北阜菀淮?
done
```
以上脚本将每小时备份一次/home/user目录下的文件。
3.实现系统监控
系统监控是一项非常重要的任务,可以通过Shell脚本来实现。以下是一个简单的系统监控脚本:
```
!/bin/bash
系统监控
whiletrue
do
cpu=`top-b-n1|grep"Cpu(s)"|awk'{print$2+$4}'`
mem=`free-m|awk'/Mem/{print$3}'`
echo"CPU使用率:$cpu%"
echo"内存使用率:$memMB"
sleep60犆糠种蛹嗫匾淮?
done
```
以上脚本将每分钟监控一次CPU和内存的使用情况。