1、程序第一行  指定执行Shell的程序

  #!/bin/bash

  #!用来告诉系统它后面的参数是用来执行该文件的程序

2、在控制台输出信息

  echo "Hello Shell"

#!/bin/bash
#向控制台输出信息
echo "Hello shell"

  保存,退出!
3、使脚本可执行,需要在DOS窗口 执行如下命令

   chmod +x fileName

4、执行脚本

  ./helloShell

5、变量的使用

  Shell中,变量不用声明,直接用即可(类似于Lua),变量名和等号之间不能有空格

  取出变量使用美元符号 $

#变量的使用
a="i am a variable"
echo $a
echo ${a}

  使用花括号是为了防止变量与字符串相邻时,不确定变量是什么!如:$numth  与 ${num}th  前者取变量名为numth的变量,后者取变量名为num的变量。

  变量类型有:局部变量(仅在当前实例中有效),环境变量,Shel变量

6、Shell常用命令

  文件统计命令:wc –l fileName,  wc -w fileName, wc -c fileName: 计算文件行数, 计算文件中的单词数, 计算文件中的字符数

  文件拷贝: cp sourcefile destfile
  重命名文件或移动文件: mv oldname newname
  删除文件: rm file

  文件中搜索字符串(支持正则表达式):grep 'str' fileName  会将搜索到的行输出到控制台

  输出文件内容到屏幕上: cat fileName

  获取用户输入: read varName           将用户输入,赋值给变量varName

  将一个变量设置为只读变量:readonly varName         这时候如果更改变量就会报错
  删除变量:unset -v varName  (不加$)

7、字符串拼接

  直接拼接,不需要任何连接字符,如变量var 与 "hello" 拼接

  echo ${var}"hello" 

8、获取字符串长度

  ${#var}

9、截取字符串

#截取字符串 从第三个截取到第四个
subStr=${a::}
echo $subStr

10、数组的使用

#数组 三种定义方式 注意,使用的是小括号 不是 花括号
arrayVar=("one" "two" "three" "four")
arrayVar2=(
""
""
""
)
arrayVar3[]="一"
arrayVar3[]="二" #使用时 下标从0开始
echo ${arrayVar[]}${arrayVar[]}
echo ${arrayVar2[]}${arrayVar2[]}
echo ${arrayVar3[]}${arrayVar3[]}

  数组遍历

#数组遍历
for num in ${arrayVar[*]}
do
echo ${num}
done

11、加减乘除 取余

  原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用

#运算符
num1=
num2= #加减乘除 取余 两项之间,必须有空格
#expr 只能对整形计算
echo `expr ${num1} + ${num2}`
echo `expr ${num1} - ${num2}`
echo `expr ${num1} \* ${num2}`
echo `expr ${num1} / ${num2}`
echo `expr ${num1} % ${num2}` #浮点运算
result=`echo "5.0-1.8"|bc`
echo "5.0-1.8="$result

12、数字比较 相等,大于,小于

#相等-eq  不等 -ne
eq1=
eq2=
if [ $eq1 -eq $eq2 ]
then
echo "eq1 = eq2"
else
echo "eq1 != eq2"
fi #大于-gt 小于 -lt
if [ $eq1 -gt $eq2 ]
then
echo "eq1 > eq2"
else
echo "eq1 <= eq2"
fi

13、布尔运算符

  或-o 与-a 非!

#字符串比较
str1="abcd"
str2="abcd"
str3="abcder"
#if 后面必须有空格,=作为判断是否相等时,两边必须有空格 [] 必须有空格
if [ $str1 = $str2 ]
then
echo "str1=str2"
else
echo "str1!=str2"
fi #或-o 与-a 非!
if [ $str1 = $str2 -a $eq1 = $eq2 ]
then
echo "true"
else
echo "false"
fi

14、检测端口

netstat -ntpl|grep 8082

  

  

Shell学习笔记 ——第一天的更多相关文章

  1. shell学习笔记

    shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...

  2. [转帖][Bash Shell] Shell学习笔记

    [Bash Shell] Shell学习笔记 http://www.cnblogs.com/maybe2030/p/5022595.html  阅读目录 编译型语言 解释型语言 5.1 作为可执行程序 ...

  3. shell学习笔记汇总

    1.shell脚本中函数使用 函数定义在前,调用在后,顺序反了就没有效果了.函数调用为:函数名 参数列表 函数内部通过以下变量访问函数的参数:shell脚本函数中: $0: 这个脚本的名字 $n: 这 ...

  4. shell 学习笔记2-shell-test

    一.字符串测试表达式 前面一篇介绍:什么是shell,shell变量请参考: shell 学习笔记1-什么是shell,shell变量 1.字符串测试表达式参数 字符串需要用""引 ...

  5. SHELL学习笔记----IF条件判断,判断条件

    SHELL学习笔记----IF条件判断,判断条件 前言: 无论什么编程语言都离不开条件判断.SHELL也不例外.  if list then           do something here   ...

  6. ActionBarSherlock学习笔记 第一篇——部署

    ActionBarSherlock学习笔记 第一篇--部署          ActionBarSherlock是JakeWharton编写的一个开源框架,使用这个框架,可以实现在所有的Android ...

  7. oracle学习笔记第一天

    oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字   1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...

  8. SHELL学习笔记三

    SHELL学习笔记一 SHELL学习笔记二 SHELL学习笔记三 for 命令 读取列表中的复杂值 从变量读取列表 从命令读取值 更改字段分隔符 用通配符读取目录 which 使用多个测试命令 unt ...

  9. Django学习笔记---第一天

    Django学习笔记 1.Django的安装 //如果不指定版本号,默认安装最新版 pip3 install django==1.11.8 关于Django的版本和python的版本依赖关系,请看下图 ...

随机推荐

  1. css3制作导航栏

    <!doctype html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  2. asp.net javascript客户端调用服务器端方法

    如何用js调用服务器端方法.首先服务器端方法的格式如下 [System.Web.Services.WebMethod]        public static void serverMethod(s ...

  3. javascript基础(五)函数

    原文http://pij.robinqu.me/ 通过call和apply间接调用函数(改变this) call 和 apply带有多个参数,call和apply把当前函数的this指向第一个参数给定 ...

  4. POJ 1094 Sorting It All Out(经典拓扑+邻接矩阵)

    ( ̄▽ ̄)" //判环:当入度为0的顶点==0时,则有环(inconsistency) //判序:当入度为0的顶点仅为1时,则能得到有序的拓扑排序,否则无序 //边输入边判断,用contin ...

  5. jquery获取li中的各项属性值attr

    发布新内容时的设计 默认显示一个按钮 如:发布按钮(放在h3字体里面)(鼠标上面时.显示发布到哪个模块下拉菜单发在li里面) $('#pup_model li , #pup_model h3').cl ...

  6. 单尺度二维离散小波重构(逆变换)idwt2

    clc,clear all,close all; load woman; %单尺度二维离散小波分解.分解小波函数haar [cA,cH,cV,cD]=dwt2(X,'haar'); %单尺度二维离散小 ...

  7. Lua手册中的string.len 不解

    Lua手册中的string.len (s) 接收一个字符串,返回其长度. 空串 "" 的长度为 0 . 内嵌零也统计在内,因此 "a\000bc\000" 的长 ...

  8. C#第八天

    ArrayList ArrayList list=new ArrayList(): list.Add()           //添加单个元素 list.AddRange()   //添加集合元素 l ...

  9. 判断一个值是不是DBNull.Value

    C#读取数据库返回DataTable,遍历 DataTable, 在DataRow dr, 假如dr[0]是一个可空的值类型的字段,那么要赋值给C#程序的一个值类型(可空类型变量这里不讨论)变量时, ...

  10. Infix to postfix conversion 中缀表达式转换为后缀表达式

    Conversion Algorithm 1.操作符栈压入"#": 2.依次读入表达式的每个单词: 3.如果是操作数则压入操作数栈: 4.如果是操作符,则将操作符栈顶元素与要读入的 ...