linux SHELL 基础 附:shell安装MYSQL

 SHELL

  一、什么是shell

1、 shell是用户与操作系统内核之间的界面,是一个命令解释器。

     其功能表现为:指令解析   交互执行   程序设计

2、shell的种类:Linux支持的shell,列表文

件为/etc/shells
         /bin/bsh:最早的shell,Bourne shell。
         /bin/bash:Bourne Again shell。应用最为广泛。
         /bin/csh:最新版本为tcsh
         /bin/ksh:
         /bin/zsh:最大的shell
3、查看当前shell:#echo $SHELL
4、使用不同shell:#shell名  (exit退出当前shell)
5、修改登录shell:#chsh [用户名]
 

二、shell的功能
  1、输入输出处理功能
         指令解析
         多指令
         指令组
         子shell
         特殊字符
 
2、指令功能
         别名
         历史命令
         自动补齐
3、管道和重定向
         输入输出重定向
         管道
 

三、输入输出处理功能
1、指令解析:shell是一种命令解释器。shell区分大小写,其语法结构为:
             #指令  [-选项] [--选项] 参数1 ...... 参数n
2、多指令:一次性执行多条指令。
         #指令1;......;指令n
3、指令替代:
         echo 回显命令。“echo 字符串”将字符串回显至屏幕
         #指令1`指令2`,将指令2的执行结果作为指令1的参数使用。
         #echo “今天是`date`”
        今天是:2009-11-26
         当前的系统时间是:15:20
4、指令组:将多个指令的执行结果作为一个结果输出。
         #{指令1alias leo='echo "今天是:`date +%Y-%m-%d`";echo "当前 的系统时间是:`date +%H:%M:%S`" '
;......;指令n}
5、子shell:
6、特殊字符:
         #注释
 
         “”、‘’,转义字符,将特定意义的字符转换为普通字符。
         \ , 转义字符。
         “abc“
         ‘“abc“' 
         ‘“\a"\b c"\'
 
         通配符:* ? [ ] [^ ]
 

四、指令功能
1、别名功能:
         查看别名:#alias
         定义别名: #alias 别名=‘指令叙述’
alias leo='echo "今天是:`date +%Y-%m-% 108 cleard`";echo "当前 的系统时间是:`date +%H:%M:%S`" '
         固化别名配置:/etc/bashrc 添加别名设置
2、历史命令
         调用历史命令:使用上下方向键
         历史命令列表:#history
         调用特定的历史命令:#!历史命令编号
3、自动补齐:Tab
 

五、输入输出重定向
1、输入输出重定向:将进程的stdin、stdout、stderr由默认设备修改为特
                   定设备。
2、输入重定向:<,语法。    进程 < 输入设备
 
3、输出重定向:>,语法      进程 > 输出设备  (覆盖式添加)
   输出追加重定向:>>,语法   进程 >> 输出设备 (追加式添加)
4、错误输出重定向:2>,语法   进程 2> 输出设备
   错误输出追加重定向: 2>>,语法  进程 2>> 输出设备
5、&> 将标准输出和标准错误输出重定向到同一设备
6、/dev/zero 永远为0的文件
   /dev/null 永远为空的文件
7、将局部变量转换为环境变量:#export 变量名
8、删除变量:#unset 变量名
 
 

六、变量的键盘读取
1、read 变量名  由标准输入设备读取数值,并将数值赋予变量。
   read A
2、echo "输入被加数";read A;echo "输入加数";read B;echo $[$A+$B]
 
3、echo "输入值1";read A;echo "输入运算符";read S;echo "输入值
   2";read B;echo $[$A $S $B]
 
4、echo Hello,$USER;echo "What is your name?";read
   NAME;echo "Hello,$NAME,The current time is `date +%H:%M:
   %S`"
5、read语法:
         read 变量名  将由键盘输入的内容赋值给变量
         read -p “提示信息” 变量名  -p在键盘输入前显示提示信息。
         read -t 秒数  变量名   -t定义等待输入时间
 
         对于同一变量而言,其新值会覆盖旧值。
七、控制命令
1、&&:语法:  命令1 && 命令2
                   如果命令1成功执行,则执行命令2。
         在目录中如果有file1 文件则删除。
         ls file1 &>/dev/null && rm -f file1
 
         命令在执行完成后会出现一个退出码。0成功执行,非0不成功执行。
         查看命令的退出码:#echo $?
2、||:语法:  命令1 || 命令2
                   如果命令1不成功执行则执行命令2。
         在目录中如果没有file1文件则创建该文件。
        
3、文件创建程序:
         要求用户输入待创建的文件的绝对路径(输入时间为10秒)
     
         如果待创建文件已存在,则提示用户“文件已存在”
         如果待创建文件不存在,则创建文件,并提示用户"文件已创建成功"
read - p "输入绝对路径" -t 10 123;ls $123 && echo "文件已存 在" || echo "文件`touch $123`已创建"
 

shell命令行基本格式
$|#命令名  -选项  --选项  参数1 ...... 参数n
1、命令名:可执行文件,存放于系统的特定位置。
2、选项:-字符选项,--单字选项,选项决定了命令的执行方式。
3、参数:定义了命令的执行对象。
4、shell命令行对大小写敏感(区分大小写)
5、支持自动补齐功能。利用tab键实现。
 shell script 001

一、正则表达式
1、正则表达式:是一个字符串,用于在搜索中匹配相同的字符串,即明确搜索内
               容。
2、正则表达式的格式:元字符字符串
         元字符用于搜索控制。
         存在三套源字符:基本源字符(应用于所有应用程序)
                            扩展源字符
                            POSIX源字符
3、基本源字符
         ^字符串  锚定行的开始字符串 ^Document 
         字符串$ 锚定行的结尾字符串 Off$
         .         匹配任意一个字符    k..p
         [ ]    匹配中括号中的任意字符 ^[Tt]he
         [^]       不匹配中括号中的任意字符 /^[^T]he
         \        转义字符  
 

二、正则表达式的工具
1、vi中的正则表达式的工具
         / 查找工具:/正则表达式
         :s 查找替换::起始行号,结束行号s/正则表达式/替换值/g
2、grep
         grep用于在一个或多个文件中搜索包含特定字符串的行。
         语法:grep [选项] 正则表达式  文件名
                          -n 显示被检索行的行号
                            -c 显示检索到的行数
                            -x 显示检索到的行的上下x行
                            -v   反向显示A;
                            -i 忽略正则表达式中字符的大小写
         grep的返回值:grep成功检索到内容,返回 0
                         grep未成功检索到内容,返回1
                         grep检A=`head -n 29 /etc/passwd |tail -n 1|wc -m`;B=`echo $[$A/2]`; head -n 29 /etc/passwd |tail -n 1|cut -c 1-$B索的文件不存在,返回2
         查看应用程序的返值:echo $?
 

三、变量
1、查看变量:
         #set 查看所有变量
         #env 查看环境变量
2、变量的转换(将本地变量转换为环境变量)
         #export 变量名
3、变量的表示方法:$变量名
4、引用变量:#echo $变量名
              #echo $?
              #echo $$ 显示当前shell的进程编号
5、定义变量:变量名=变量值 A=10
6、删除变量:unset 变量名
7、修改变量的属性:#declare [选项] 变量名
                                     -i 将变量定义为整形数据?
                                     -x 将变量定义为环境变量
                                     -r 将变量定义为只读变量,不能删除 
                                     和修改
 

四、变量的键盘读取--read
语法:#read 变量名   将由键盘输入的内容赋值给变量。
      #read   -p “提示信息:”  变量名
                    -p 显示提示信息的内容
      #read   -t 秒数   变量名
                    -t 设置等待输入时间
 

五、控制命令

&&  语#(命令)法:命令1 &&  命令2

                       当命令1成功执行时,echo $?=0,执行命令2
                       当命令1不成功执行时,echo $?=1,不执行命令2,而
                           执行下一条命令。
         ||  语法:命令1 ||  命令2
                       当命令1不成功执行时,echo $? = 1,执行命令2
                       当命令1成功执行时,echo $? = 0,不执行命令2,而
                           执行下一条命令。
read A;grep^$A /etc/passwd >/dev/null && echo "存在该用
                 户"   | | echo "用户不存在"
 

六、子shell
1、shell中对环境变量的修改会影响到Shell本身。子shell的环境变量不影响父shell。
2、定义子shell:#(命令)
 
 
附:  

shell 安装MYSQL

 

 

一、安装脚本
  
  
  
  
  1.  #!/bin/bash 
  2.  
  3. MYSQL_HOME=/usr/local/mysql 
  4. # 将你的mysql安装程序解压后的文件名设置为MYSQL_DIR,将安装程序(mysql-xxx.tar.gz)放到当前目录 
  5. MYSQL_DIR=mysql-standard-5.0.20-linux-i686-glibc23 
  6. MYSQL_DIR_OLD=$PWD/${MYSQL_DIR} 
  7. MYSQL_DIR_NEW=/usr/local/${MYSQL_DIR} 
  8. MYSQL_SOURCE=$MYSQL_DIR_OLD.tar.gz 
  9.  
  10. if [ ! -f ${MYSQL_SOURCE} ] 
  11. then 
  12.     echo "MySQL package not found!" 
  13.     exit 1 
  14. fi 
  15.  
  16. id mysql > /dev/null 2>&1 
  17. if [ $? -eq 1 ] 
  18. then 
  19.     # If user mysql does not exist, 
  20.     # delete group mysql fisrt if exists 
  21.     sed -i '/^mysql/d' /etc/group 
  22.     echo "Add group mysql" 
  23.     groupadd mysql 
  24.     echo "Add user mysql" 
  25.     useradd -g mysql mysql 
  26. fi 
  27.  
  28. echo "Unzip MySQL-5.0.20" 
  29. tar zxvf ${MYSQL_SOURCE} > /dev/null 2>&1 
  30.  
  31. echo "Move MySQL to the right place" 
  32. mv ${MYSQL_DIR_OLD} ${MYSQL_DIR_NEW} 
  33.  
  34. echo "Create mysql linkage" 
  35. ln -s ${MYSQL_DIR_NEW} ${MYSQL_HOME} 
  36.  
  37. echo "Change mysql directory to the right user and group" 
  38. cd $MYSQL_HOME 
  39. chown -R root  . 
  40. cd $MYSQL_HOME 
  41. chown -R mysql data 
  42. cd $MYSQL_HOME 
  43. chgrp -R mysql . 
  44.  
  45. echo "Create mysql system database" 
  46. $MYSQL_HOME/scripts/mysql_install_db --user=mysql > /dev/null 
  47.  
  48. echo "Set environment PATH" 
  49. sed -i '/export PATH=\/usr\/local\/mysql\/bin:$PATH/d' /etc/profile 
  50. echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile 
  51. . /etc/profile 
  52.  
  53. echo "Set mysql as system service" 
  54. cp $MYSQL_HOME/support-files/mysql.server /etc/init.d/mysql 
  55. chkconfig mysql on 
  56. /etc/init.d/mysql start 
  57.  
  58. echo -n "Please input password of mysql user root: " 
  59. stty -echo 
  60. read ROOT_PASSWORD 
  61. stty echo 
  62. echo 
  63.  
  64. if [ -z $ROOT_PASSWORD ] 
  65. then 
  66.     echo "ERROR: The password is null!" 
  67.     exit 1 
  68. fi 
  69.  
  70. mysqladmin -uroot password "$ROOT_PASSWORD" 
  71. mysql -uroot -p$ROOT_PASSWORD -e"grant all on *.* to root@localhost identified by '$ROOT_PASSWORD'" 
  72. if [ $? -eq 0 ] 
  73. then 
  74.     echo "Set mysql user root password successfully!" 
  75. fi 

二、卸载脚本
  
  
  
  
  1. #!/bin/bash 
  2.  
  3. MYSQL_HOME=/usr/local/mysql 
  4. # 将你的mysql安装程序解压后的文件名设置为MYSQL_DIR 
  5. MYSQL_DIR=mysql-standard-5.0.20-linux-i686-glibc23 
  6. MYSQL_DIR_NEW=/usr/local/${MYSQL_DIR} 
  7.  
  8. echo "Kill mysql demon" 
  9. pkill mysql > /dev/null 2>&1 
  10. echo "Clean mysql from PATH" 
  11. sed -i '/export PATH=\/usr\/local\/mysql\/bin:$PATH/d' /etc/profile 
  12.  
  13. chkconfig mysql off 
  14. rm -f /etc/init.d/mysql 
  15. rm -f /etc/rc2.d/*mysql 
  16. rm -f /etc/rc3.d/*mysql 
  17. rm -f /etc/rc4.d/*mysql 
  18. rm -f /etc/rc5.d/*mysql 
  19. rm -f /etc/rc6.d/*mysql 
  20.  
  21. echo "Remove mysql source file" 
  22. rm -rf ${MYSQL_HOME} 
  23. rm -rf ${MYSQL_DIR_NEW} 
  24.  
  25. echo "Remove user mysql" 
  26. sed -i '/^mysql/d' /etc/group 
  27. sed -i '/^mysql/d' /etc/passwd 


三、安装成功后,运行. /etc/profile将mysql路径添加进去

 

 

你可能感兴趣的:(mysql,linux,shell,脚本,安装L)