shell study

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

20170103


1、vi/vim编辑命令,.vimrc设置

2、命令基础,100多个命令

3、基础,高端的网络服务都要会,nfs,rsync,inotify,lanmp,sersync,ssh key批量分发管理


清空文件的三种方法

>log.log

echo >log.log

cat /dev/dull >log.log


aix  ksh

unix posix sh

linux bash


20170105

dirname $0

basename $0

[ $? -eq 0 ] && echo ok 

rename .jpg .JPG *   #讲.jpg替换成 .JPG

${value:-word}如果value为定义,则表达式的值为word

${value:=word}如果value未定义,则设置value的值为word

${value-word}变量未定义就用-后面的替代。如httpd=${HTTPD-/usr/sbin/httpd}

sh -x a.sh分析a.sh的执行过程,实际并未执行


20170105

seq -s " " 100

seq 100

seq 100 -1

echo ${#var}计算字符串的长度,效率最高

echo $char|wc -m 计算字符串的长度

echo $(expr length "$var")计算字符串的长度

man bash变量处理大全

变量的数值计算常用如下几个命令

(())、let、expr、bc、$[]

(())只能是整数运算

((a=1+2**3-3%2))或者a=$((1+2**3-3%2))

echo $((1+2**3-3%2))

echo $((3>2))

let

i=2

let i=i+6

echo $i

expr

expr 1 + 3

expr $[2*4]

expr "$1" : "*\.pub" 如果$1的格式匹配.pub,则为真,若为真则输出字符的个数,否则为零


read -t 5 -p "please input:" a #a前面有空格 

expr $a + 0 >/dev/dull 2>&1

[ $? -eq 0 ] && echo int||echo char 判断变量是否为整数


20170106

a=2

i=`echo $a+1|bc`

echo "scale=2;5.33 / 3.13"|BC

条件测试

1、test <表达式>#test ! -f file && echo 1||echo 0

2、[<表达式>]#[ -f "file" ] && echo 1||echo 0#[ -f file -a -d folder  ] && echo 1||echo 0

3、[[<表达式>]]#[[ -f file && -d folder ]] && echo 1||echo 0#可以使用通配符进

行模式匹配,&&、||、>、<等可以应用于[[<表达式>]]中,而不能用于[<表达式>]中

字符串测试操作符

-z "字符串"#长度为0则为真

-n "字符串"#长度不为0则为真

“字符串1”=“字符串2”#相等则为真

“字符串1”!=“字符串2”#不相等则为真

在[]中使用-eq、-ne、-gt、-ge、-lt、-le    #[ 2 \< 1 ]

在(())、[[]]中使用==、!=、>、>=、<、<= 

在[]中使用-a、-o、!

在[[]]中使用&&、||、!


20170108

cat <<END

ewrfe

edcfwe

edfw

END


if 条件

 then

   指令

 else

    指令

fi

 

if 条件

 then

   指令

 elif 条件

  then

    指令

 elif 条件

  then

    指令

   else

    指令

fi


判断MySQL服务状态的方法

portdb=`netstat -lnt|grep 3306|awk -F '[ :]+' '{print $5}'`

netstat -lnt|egrep "3306|3307"|wc -l

ps -ef|grep mysqld|grep -v grep|wc -l 

20170109

mysql -uroot -p'zzzz' -S /data/3306/mysql.sock  -h 10.10.10.11 -e "select version();"


httpPortNum=`nmap 10.10.10.19 -p 80|grep open|wc -l`

wget -T 10 -q --spider http://10.10.10.19  >&/dev/null

echo $?

curl -s http://10.10.10.19 >&/dev/null

curl -I baidu.com

curl -I -s 10.10.10.19|head -1|cut -d " " -f2  

. /etc/init.d/functions

action "nnnnnnnnnn" /bin/true

echo -e "\n"|telnet baidu.com 80|grep Connected

nc -w 5 www.baidu.com 80 && echo ok 

usleep 1000000 

########################

sum=0

i=0

while ((i <=100 ))

do

 ((sum=sum+i))

 ((i++))

done

####################

tr "\n" "+"  #将换行换成+

###################

sum=0

while read line

 do

  size=`echo $line|awk '{print $10}'`

  ["$size" == "-"] && continue

  ((sum=sum+$size)) 

done<apache.log #计算日志apache.log中图片的大小

[ -n "$sum" ] && echo "$size"

###########################

exec <file

sum=0

while read line

do 

cmd

done

#########################

cat ${file_path}|while read line

do 

  cmd

done

################################

while read line

do 

   cmd

done<file

##########################

for 变量 in 变量列表

do 

  cmd

done

####################

for i 等于for i in "$@"

##############

for((exp1;exp2;exp3))

do 

  cmd

done

######################

for num in {5..1}#{5..1}等于5 4 3 2 1

do 

 echo $num

done

#################

echo {5..1}

echo {a..z}

echo 10.10.10.{5..1}

##############

ls *.jpg|awk -F 'xx' '{print "mv"  $0 ""$1".jpg"}|bash#把文件名字中的xx去掉

##############批量创建用户

 #!/bin/bash

for n in $(seq -w 10)

do 

  useradd user-$n

  echo "$n"|passwd --stdin user-$n

done

#######################批量创建用户且密码为随机数

#!/bin/bash

for n in $(seq -w 10)

do 

  passwd=`echo $(date +%T%N)%RANDOM|md5sum|cut -c 2-9`

  useradd user-$n

  echo "$passwd"|passwd --stdin user-$n

  echo -e "user:\tuser-$n passwd:\t$passwd">>/tmp/passwd.txt

done

########################














本文转自shangshanyang51CTO博客,原文链接: http://blog.51cto.com/qqran/1890165,如需转载请自行联系原作者



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
Shell
Shell | Hello World
Shell | Hello World
35 0
|
1月前
|
Shell PHP
Shell echo命令
10月更文挑战第3天
20 0
|
11月前
|
Shell
Shell test 命令
Shell test 命令
51 0
|
Shell
Shell-alias在Shell脚本中的使用
Shell-alias在Shell脚本中的使用
196 0
Shell-alias在Shell脚本中的使用
|
Shell 应用服务中间件 nginx
shell脚本-find
find查询服务器内文件
109 0
|
Shell
Shell test命令
Shell test命令
93 0
shell脚本内使用pwd命令
shell脚本内使用pwd命令
|
Shell Linux 开发工具
shell 之hello world
shell 之hello world
138 0
|
Shell iOS开发
shell技巧1 - 生成ipa文件
1、前言 iTunes 12.7 之前,可以下载ipa应用包、打开ipa包,也生成ipa文件!但是在这12.7之后,关于ipa的所有功能已经移除,如果还想下载ipa包,可以参考我之前的文章:解决 iTunes 12.7 无法下载 AppStore应用的IPA包问题,今天我们主要来说说制作ipa文件的功能。
1578 0