zoukankan      html  css  js  c++  java
  • shell学习笔记1 【linux shell 编程从初学到精通第2版】

    1. 已登录用户的个数: who | wc -l
    2. 查看系统有哪些用户登录 who
    3. 新建一个文件/bin/ct11,在文件中输入一条命令,chmod为该文件设置执行权限

    # cat > /bin/ct11

    Who | wc -l

    ctrl+d

    #  cd /bin

    # chmod +x ct11

    # ./ct11

    执行结果:

    2

    1. # echo 转义序列:

    c :指示echo 不要打印 最后的换行符号

    a :警示字符,通常是ASCIIBEL字符

     :退格

    f : 换页

    :换行

    :回车

    :水平制表符

    v:垂直制表符

    \ :反斜杠字符

    oddd:将字符变成3位的八进制数值

    1. Printf 语句printf “i said ‘%s,%s1,%s2,%s3’ ” this is my pen
    2. 清楚屏幕 clear
    3. Echo输入一段文字分行追加到文件cc11echo -e “werw sfsd” >>cc11
    4. aa.txt文件中的ascii回车去除,内容写到file.txt

    # tr -d ‘ ’ < aa.txt > file.txt

    1. aa.txt文件中的回车去除,然后利用管道对其文件内容排序后输入到文件file.txt

    # tr -d ‘ ’ <aa.txt | sort >file.txt

    1. 关闭自动打印输入字符的功能 stty -echo
    2. 回复自动打印输入字符的功能 stty echo
    3. 跟踪功能 set -x 是执行跟踪功能打开,set +x是关闭跟踪功能

    Eg: cat > aa.sh

    Set -x

    Echo ss echo

    Set +x

    Echo sdf echo

    Ctrl +d

    Chmod +x aa.sh

    ./aa.sh执行

    1. 自动化测试课程目录

     

     

    1. Shell 传递参数

      新建一个tst.sh脚本,

    nano -w tst.sh

    编辑脚本内容如下,$1以后是以此类推第一第二个参数,$0是文件名称参数

    #!/bin/sh

    name=$1

    echo "my name is ${name}!"

    编辑结束后保存 ctrl +o ,退出时ctrl+c

    Chmod +x tst.sh 给脚本有执行权限

    ./tst.sh zhang

    执行结果:

    My name is zhang

    如果是vi模式编辑模式按i,保存并退出按Esc ,:wq!

    1. unset命令可以删除变量,删除后不能再次使用,unset命令不能删除只读变量
    2. 例如:echo -e “jdkfja ” 输出结果:jdkfja
    3. 这里 -e 表示对转义字符进行替换。如果不使用 -e 选项,将会原样输出:jdkfja
    4. 命令替换是指Shell可以先执行命令,将输出结果暂时保存,在适当的地方输出。命令替换的语法:

    `command`

    注意是反引号,不是单引号,这个键位于 Esc 键下方。
      下面的例子中,将命令执行结果保存在变量中:

    • if...then...fi 是条件语句,后续将会讲解。

    算术运算符列表

    运算符

    说明

    举例

    +

    加法

    `expr a+a+b` 结果为 30。

    -

    减法

    `expr a−a−b` 结果为 10。

    *

    乘法

    `expr a*a*b` 结果为  200。

    /

    除法

    `expr b/b/a` 结果为 2。

    %

    取余

    `expr bba` 结果为 0。

    =

    赋值

    a=$b 将把变量 b 的值赋给 a。

    ==

    相等。用于比较两个数字,相同则返回 true。

    [ a==a==b ] 返回 false。

    !=

    不相等。用于比较两个数字,不相同则返回 true。

    [ a!=a!=b ] 返回 true。


    1.   注意:条件表达式要放在方括号之间,并且要有空格,例如 [a==a==b] 是错误的,必须写成 [ a==a==b ]。

    Shell注释

    1.1 shell注释 # 整段代码注释可以采用花括号括起来,类似函数

    1.2 Shell字符串

    1.2.1 单引号 str=’this is a string’ 单引号里不能出现单引号

    1.2.2 双引号  str=”this is a string” 双引号可以有变量,可以出现转义字符

    1.2.3 拼接字符串 yourname=”jkhj” greeting=”hello,”$yourname”!” 

    1.2.4 获取字符串长度 string=”dfa” echo ${#string}

    1.2.5 提取子字符串 string=”my name is ending” echo ${string:1:4}  输出结果:y na

    1.2.6 查找字符串  string=”my name is ane”  echo `expr index “$string” is `

    1.3 Shell 数组

    Bash支持一维数组,不支持多维数组,并且没有限定数组的大小

    1.3.1 定义数组

    Array_name={1 2 3 4}

    或者Array_name={

    1

    2

    3

    4

    }

    单独定义数组的各个分量:

    Array_name[0]=1

    Array_name[0]=2

    1.3.2 读取数组

    Value=${Array_name[0]}

    使用@或者*可以获取数组中的所有元素

    Value=${Array_name[*]}

    Value=${Array_name[@]}

    1.3.3 获取数组的长度

    num=${#Array_name[@]}  获取数组元素的个数

    Length=${#Array_name[0]}  取得数组第一个元素的长度

    1.3 echo 命令

    1.3.1 echo “”It is a test”” 输出结果: “It is a test”

    1.4 换行

    1.4.1 echo “ok! ”  echo “It is a cat” 

    输出结果:

    Ok!

    It is a cat

    1.5 显示不换行

    1.5.1 echo ok!c”echo “It is a dog”

    输出结果: ok! It is a dog

    1.6 显示结果重定向至文件 echo “It is a test” > myfile

    1.7 原样输出字符串(不进行转义),使用单引号 echo ‘$name”’

    1.8 显示当前日期 echo `date`

    1.9 算术运算

    1. Echo `expr 2 + 2`
    2. 乘法,echo `expr 4 * 2`

    1.10 关系运算

    if [ 3 -lt 8 ]

    then

            echo 'true'

    else

            echo 'false'

    Fi

    1.11 关闭防火墙

    Systemctl stop firewalld.service

    1.12 查看shell种类 cat  /etc/shells

    1.13 新建文件  touch filename

  • 相关阅读:
    Data Wrangling文摘:Non-tidy-data
    Data Wrangling文摘:Tideness
    Python文摘:Mixin 2
    Python文摘:Mixin
    Python文摘:Python with Context Managers
    Python学习笔记11
    SQL学习笔记9
    SQL学习笔记8
    SQL学习笔记7
    Python学习笔记10:内建结构
  • 原文地址:https://www.cnblogs.com/bokeyuan228/p/8335289.html
Copyright © 2011-2022 走看看