1.以#!/bin/bash 开头
2.执行方式 bash sh ./ `script`
3.变量: 系统变量  自定义变量  --->export 可导出为全局环境变量
        set显示所有shell变量  unset 取消变量     readonly静态变量不能被unset
4.获取命令返回值
    A=`ls -al`   =====  A=$(ls-al) -----> echo $A
5.参数取值
    &*      全部参数
    $@        无引号时代表全部参数,有引号代表全部参数的数组
    $#        传入参数的个数
    $n        代表传入的第几个参数,0代表shell本身  第10位以上的参数${10}
    
    $$        当前进程号
    $!        后台运行的最后一个进程号
    $?        上一个命令执行的返回状态 0代表成功
6.运算符
    $((calc))   或者   $[cals]   
    expr `clac`       直接输出了
            例:expr `expr 2 + 3` \* 4    -->20
                A=[(2+3)*4]  echo $A      -->20
                
7.条件判断
    [ condition ]    注意:前后有空格
    23是否大于22                          [ 23 -gt 22 ]
    test.txt是否有读权限                [ -r test.txt ]
    hive.log是否存在                    [-e /hive.log]
8.分支语句
     if   case     

#!/bin/bash
if [ $ = ] ; then 不换行写分号
echo
elif [ $ = ] 换行不用写
then
echo
else else不写then
echo
fi #!/bin/bash
case $ in
)
echo
;; 注意双分号
)
echo
;;
*) 没匹配的执行这个
echo
;;
esac

  for      while

s=
for ((i=;i<=;i++)) 也可 ;do
do
s=$[$s+$i]
done echo $s for x in ; do
echo $x
done for y in "$@"
do
echo $y
done i=
s=
while [ $i -le ] 用此类型比较符
do
s=$[$s+$i]
i=$[$i+]
done
echo $i
echo $s

9.控制台读入信息
    read -t 10 -p "等待10秒读入姓名" NAME     echo $NAME
10.函数
    basename    获取文件名(去除目录部分)
    dirname        获取目录(去除文件名部分)
    
    自定义函数   function funName()
                {    
                    方法体(没有return时,最后一条语句作为返回值,$?获取)
                }

shell小记的更多相关文章

  1. linux 常用反弹shell小记

    在渗透测试过程中由于防火墙和其它安全防御措施,很多服务器只能单向向外访问,不能被访问,我们常常需要反弹shell. 1.bash反弹shell 本地开启监听 nc -lvvp 受害主机命令 bash ...

  2. Shell常见用法小记

    shell的简单使用 最近发现shell脚本在平常工作中简直算一把瑞士军刀,很多场景下用shell脚本能实现常用的简单需求,而之前都没怎么学习过shell,就趁机把shell相关的语法和常见用法总结了 ...

  3. 【转】shell expect spawn、linux expect 用法小记 看着舒服点

    使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄.收藏.可是为什么要这么写却不知其然.本文用一个最短的例子说明脚本的原理. 脚本代码如下: ######## ...

  4. Linux shell 脚本小记

    if结构 #!/bin/env bash -gt ] then echo "$1 is positive" -lt ] then echo "$1 is negative ...

  5. shell脚本的小记

    作者:邓聪聪 mysql的脚本执行 #!/bin/sh HOST="127.0.0.1" PORT=" UESRNAME="root" PASSWOR ...

  6. Linux shell 脚本小记2

    .从文件读取 while read line do echo "line=$line" done < file.txt .将字符串转换为数组,并进行遍历 str=" ...

  7. linux/unix shell bash script 小记

    #script PSAATL11*` do $i | awk -F ':' '{print $1}'` do ((k=j+)); m=$(zcat $i | sed -n ${j},${k}p); e ...

  8. linux 下cmake 编译 ,调用,调试 poco 1.6.0 小记

    上篇文章 小记了: 关于 Poco::TCPServer框架 (windows 下使用的是 select模型) 学习笔记. http://www.cnblogs.com/bleachli/p/4352 ...

  9. 开发Android系统内置应用小记

    Android系统内置应用可以使用更多的API.更高的权限,与开发普通应用最大的差别在于编译,内置应用编译需要用到Android.mk文件.下面是我在开发过程中的一些小记. 1.在AndroidMai ...

随机推荐

  1. ubuntu下以16进制形式查看class文件、反编译class文件

    参考:https://blog.csdn.net/xyh930929/article/details/83860464 1.vim HelloWorld.class 2.输入英文状态下的冒号:,然后输 ...

  2. python第二十二课——list函数

    演示list类型中常用的一些函数: 1.append(obj):将obj元素追加到列表的末尾 lt=['路费','佐罗','山治','乔巴','乌索普','纳米桑'] #append(): lt.ap ...

  3. (动态)代理于HOOK的区别于关系

    代理模式是MITM中间人攻击模式: 是拦截对象的所有交互,然后进行处理转发: HOOK模式是定点拦截,只针对单个函数做处理转发: HOOK模式可以在动态代理模式基础上实现:因为代理模式拦截所有.

  4. 1798. [AHOI2009]维护序列【线段树】

    Description 老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成. 有长为N的数列,不妨设为a1,a2,…,aN .有如下三种操作形式: (1)把数列中的一段数全部乘一个值; (2 ...

  5. nginx学习要点记录

    IO多路复用: 1.轻量 2.cpu亲和性:把CPU核心和nginx工作进程绑定,把每个worker进程固定在一个CPU上执行,减少切换cpu的cache miss,获得更好的性能 3.IO多路复用e ...

  6. JS实现sleep()方法

    这种实现方式是利用一个伪死循环阻塞主线程.因为JS是单线程的.所以通过这种方式可以实现真正意义上的sleep(). function sleep(delay) { var start = (new D ...

  7. P2467 [SDOI2010]地精部落

    题目描述 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为N的山脉H可分为从左到右的N段,每段有一个独一无二的高度Hi,其中Hi是1到N之间的正整数 ...

  8. Netflix中的负载均衡策略

    Spring Cloud的负载均衡策略可以通过配置Ribbon搞定,也就是注入实现com.netflix.loadbalancer.IRule的类,当前包含的策略包括 1.RandomRule 随机策 ...

  9. 图片在线处理 webp!

    之前处理图片的方式是,小图标通过gulp配置的spritesmith雪碧图方式,.png会先用ps工具转成.jpg,然后jpg太大则用在线压缩工具来进行压缩(另外gulp系列的gulp-imagemi ...

  10. Redis全方位详解--数据类型使用场景和redis分布式锁的正确姿势

    一.Redis数据类型 1.string string是Redis的最基本数据类型,一个key对应一个value,每个value最大可存储512M.string一半用来存图片或者序列化的数据. 2.h ...