池偏一 | 博客 DEDICATED OPERATION AND MAINTENANCE DEVELOPMENT.
登录
X
X
  • Linux 特殊变量

  • Linux 系统中存在的常用特殊变量如: $$ $# $* $@ $? $n($0,$1,$2,$3......)


    一、$$ 表示当前运行的进程号 pid。


    二、$# 表示脚本传入的参数总个数。


    三、 $* 和$@都表示所有参数集合,区别在于当$*和$@被引号单独引起来时,$@仍然表示参数集合,$*则变成所有参数拼接成的字符串以空格分开。


    四、$? 表示当前脚本执行到变量处时的返回值,0 表示正常,其他表示异常


    五、$n 表示传入的参数,$0 表示脚本名称,$1表示第一个参数,$2表示第二个参数以此类推。




    --综合实验脚本 vim test.sh


    #!/bin/bash
    #__author__: cpy
    echo "该脚本名称为:$0"
    echo "当前脚本运行的PID为:$$"
    echo "当前脚本共传入: $# 个参数"
    echo "当前脚本传入参数的列表以@表示为: $@"
    echo "当前脚本传入参数的列表以*表示为: $*"
    echo "当前脚本传入参数遍历结果以@表示如下:"
    for a in $@
    do
        echo $a
    done
    echo "当前脚本传入参数遍历结果以*表示如下:"
    for b in $*
    do
        echo $b
    done
    echo "当前脚本传入参数遍历结果以@表示并用引号单独引起时如下:"
    for i in "$@"
    do
        echo $i
    done
    echo "当前脚本传入参数遍历结果以*表示并用引号单独引起时如下:"
    for x in "$*"
    do
        echo $x
    done
    echo "脚本传入第一个参数为$1,第二个参数为$2,第三个参数为:$3"
    echo "一切正常时返回值为: $?"
    ps -ef |grep "不存在的进程" |grep -v "grep"
    echo "找不到指定进程时,返回值为:$?"


    --传入参数执行脚本 sh test.sh 123 456 789


    -- 执行结果如下:


    image.png


  • posted @ 2019-01-29 by 池偏一 阅读(46) 评论(0)
  • shell 三剑客

  • grep:文本搜索匹配


        语法: grep -[option] "paratemer" files
        -c :count 统计条目数,以行为单位
        -n :number 输出及行号及匹配内容
        -v :反向匹配,除此之外
        -i: 不区分大小写匹配
        -l: 列出包含文本的文件

    sed:文本搜索匹配修改


            p:打印,一般配合 -n使用
               示例:sed -n ‘/str/p’ file : 输出匹配行,不加-n 则匹配字段打印两遍
        d:删除
               示例:sed ‘/str/d’ file : 打印file中删除包含str的行后的内容
                    sed ‘^d’ file :打印删除首行的内容
                    sed ‘$d’ file:打印删除尾行的内容
                    sed ‘nd’ file : 打印删除第n行后的内容
                    sed ‘n,md’ file : 打印删除第n行到第m行后的内容
        s:替换
               示例:sed ‘s/str1/str2/g’ file :打印出把str1 替换成str2 的结果,”/” 可以是任意特殊不冲突字符。
               例如:sed ‘s%str1%str2%g’ file或 sed ‘s/str1/&str2/’ file:打印出把匹配的str1的内容后面添加str2的结果
        -e: 叠加编辑,多重编辑
               示例:sed -e ‘1,5d’ -e ‘s/str1/str2/g’ file : 打印出 将file文件1至5行删除后剩余内容str1 替换成str2 的内容
        -i:不打印修改文件
               上面的内容除p外全部适用,在之前加入-i 后直接将文件本身进修改,且不打印。



    awk:awk可作为一门专门处理文本内容的脚本,功能强大,效率极高


        NR: 当前记录数,可以看做一个自增的ID
        NF:该记录字段总数
        $0: 当前记录
        $1:第一个字段,以此类推
        -F:指定分隔符
        printf: 格式化打印
        BEGIN{xxx} END{yyy}:循环执行xxx 语句后,输出yyy
            完整示例:
        awk '{if ($1 ~/^Jan/) {print $0}}' /var/log/messages|awk -F ':' '{print $2}' |awk '{print NR,NF,$1,$NF}' |awk 'BEGIN {sum=0} \
        {sum+=$1}END {printf "第一个字段值相加的结果为:%d\n",sum}'


  • posted @ 2019-01-29 by 池偏一 阅读(37) 评论(0)
  • vim 编辑器
  • -- ESC 代表"未编辑状态"


    -- : 代表 "设置状态"



    增:


    i:未编辑状态下,在光标前插入
    a:未编辑状态下,在光标后插入
    ^:未编辑状态下,光标移动到行首
    $:未编辑状态下,光标移动到行尾

      


    删:


    dd:未编辑状态下,删除光标所在行
    n,md:设置状态下,删除n到m行



    改:


    yy:未编辑模式下,复制光标所在行
    pp: 未编辑模式下,粘贴到光标所在行下一行
    n,m copy z: 冒号开始设置模式下,拷贝n-m行至z行
    %s/str1/str2/g : 将str1 替换成str2 g是全文替换,不加g则替则逐个替换
               “/” 可以换成任何不与系统冲突的特殊符号
    #: 行首加#号表示注释该行
    :<<! 
    Str
     !:多行注释



    查:


    set number: 设置模式下,显示行号
    /str: 设置模式下,高亮显示str,支持正则表达式
    number:设置模式下,自动寻找到number行



    存:


    X: 保存退出,修改则重新编译,修改文件时间。不修改则不变
    w:保存
    q:退出


  • posted @ 2019-01-29 by 池偏一 阅读(35) 评论(0)
© 2017 池偏一 | 赣ICP备 17014207号