在学习Linux和OpenStack过程中,感觉不管是大规模部署部署还是运维,Shell脚本都已经是标配,所以学好脚本很有必要。

    以下仅为Linux Shell的一些基础笔记,这里作为笔记记下。


===============linux shell简介======================

1、命令补全:连续按两次Tab
   文件或者文件夹补全:一次Tab
   命令帮助:--help

2、chmod u=rwx,g+w,o+r filename
   chown root.root filename  【-R】递归
   拥有S权限后,该用户拥有该文件的root权限
   t权限针对文件夹,该文件夹下的文件均会被赋予root权限
   chmod 744 filename

   umask默认值为022,也就是文件和目录的默认权限是644和755

   ln -s filename1 filename2 filename1是源,filename2是快捷方式

3、shell脚本的前两行
   #!/bin/bash                     #调用bash
   #                                #注释,没有意义
   
   运行shell脚本
   chmod u+x shell.sh       #赋予运行权限
   ./shell.sh               #运行脚本

   alias ls='ls -l'        #别名

   ls `cat filename` -al       #命令替换
   
   nohup command &       #后台处理

   ls | sort      将ls的输出变为sort的输入

   sort <filename       filename为输出来源
   sort <filename>filename1  将filename输出输入到filename1
   此时filename为源,filename1为目的

   “” ‘’可以识别空格和特殊字符
   ; 一行可以运行多条命令
   & 表示后台运行


======================= 变量和运算符==================

通过export来设置环境变量,env来查看,全局有效
echo $ORACLE_SID      显示环境变量的值
unset $ORACLE_SID       清除该环境变量的值


======================= shell的输出和输入==================

echo  tee  |  grep  <  >  <<  >>  0标准输入(默认键盘)  1标准输出(默认屏幕)  2错误输入(默认屏幕)


======================= 控制流结构==================


if                  如果条件一为真   
  then              则执行命令一
 
elif                如果条件一不为真
  then              则执行命令二
 
else                如果以上皆不匹配,执行命令三

fi                  结束