shell简单笔记

自动添加脚本说明
map <F5> ms:call AddTile()<cr>'s    ##设定快捷键
function AddTile()
    call append(0,"# Author         :wang")
    。。。
endfunction

常用命令
1.diff
作用1:
    比较两个文件的不同
使用方法:
    diff 文件1 文件2
显示结果的参数:
    a    ##添加
    c    ##改变
    d    ##删除
作用2:
    给文件打补丁
前提条件:
    需要下载patch
使用方法:
    diff -u 文件1 文件2 > file.path ##最好以path结尾
    patch 文件1|2 file.path     ##文件1或2都可以,这个补丁是双向的,执行文件1就把文件2的内容修改到文件1中,执行文件2就把文件1的内容执行到文件2中
    patch -b 文件 file.path     ##修改文件,并备份修改之前的原文件

2.grep    
作用:
    筛选
使用方法:
    grep    关键字 文件名    ##筛选文件中含有关键字的行
    grep -n  。。。        ##加行号显示
    grep -3         ##显示筛选结果和其上下三行
    grep -A3         ##显示筛选结果和其下三行
    grep -B3        ##显示筛选结果和其上三行
    grep -i            ##不区分关键字大小写    
    grep -v            ##反向筛选,不显示含关键字的行
    grep -E            ##多条件筛选,后面可以添加多个筛选条件
    grep ^test    文件名    ##行首出现test的行(必须行首就是test 空格都不行)
    grep test$    。。    ##行尾出现test的行
    grep "\<test"        ##以test开头的字符串的行(只包含数字字母下划线的串)
    grep "test\>"        ##以test结尾的字符串的行
    

3.cut
作用:切片字符串
使用方法:
    cut -c 1-4|1,4            ##切1-4个字符或第1和第4个字符
    cut -d 分隔符 -f 1-4|1,4     ##切以分隔符分隔的1-4个分隔的段或第1和第4个分隔的段

4.awk
作用:切片字符串
使用方法:
    awk -F 分隔符 'BEGIN {print A} {print $1} END{print B} ' 文件名
    A 在切片之前的输出,可以是字符串也可以是变量
    $1 切以分隔符分隔的第一个分隔段
    B 在切片之后的输出,可以是字符串也可以是变量
    -v 引入变量

cut 与 awk 在分隔方面的区别:
    主要的区别在于对空格的分隔,cut识别每一个空格
    awk只识别每一个字符串之间的空格,多少数量以一个来计

5.echo
使用方法:
    echo 字符串        ##显示字符串
    echo -n         ##不换行显示
    echo -e "\033[31m字符串\033[0m"        ##改变颜色
        \033[ 两个都是格式必须存在不能改变
        31m字符串表示颜色红色
        0m表示背景色此为默认
    echo -e "\r    \r"    ##回删之前打印的

6.sed
    sed 's/sbin/westos' 文件名    ##将文件中的sbin字符串替换成westos与vim中命令用法一样
        s 可以前面加数字,数字 表示多少行到多少行之间的替换
        s 也可以前面加/字符串/,/字符串/ 表示那个字符串到那个字符串之间的替换
        -e 加多个''命令
    sed 5d 文件名        ##删除第五行,并显示
    sed 5p 文件名        ##复制第五行,并显示
    sed -n 5p 文件名    ##只显示第五行
 


变量
环境级:只针对当前环境有效,环境关闭,变量失效
    export A=1    ##设置环境变量A=1,在shell中
用户级:只针对用户有效
    vim /root/.bash_profile    ##编写配置文件
    export A=1    ##设置用户级环境变量
    source /root/.bash_profile ##编写完成后需要加载
系统级:整个系统都有效
    vim /etc/profile    ##编写配置文件
    export A=1    ##设置系统级环境变量
    source /etc/profile    ##编写完成后需要加载
命令别名设定
环境级:
    alias xie='vim'
    unalias xie
用户级:
    vim ~/.bashrc
    alias xie='vim'
    source ~/.bashrc
系统级:
    vim /etc/bashrc
    alias xie='vim'
    source /etc/bashrc

变量的定义
    USER=root    ##直接定义变量名和值

    $0 $1 $2 $n $* $# $?    ##脚本中默认的变量
    $0     ##脚本名
    $1    ##执行时后面跟的第一串字符
    $2    ##执行时后面跟的第二串字符
    $n    ##执行时后面跟的第n串字符
    $*    ##执行时后面跟的第所有字符
    $#    ##执行时后面跟的字符串个数
    $?    ##执行的返回值 0 表示正确执行

    read -p "" IP     ##设定输入提示语,并将输入的值给设定的变量

    TEST()    ##创建一个函数
    {}
    TEST    ##直接用名称调用
变量的比较
test 变量1 比较符号 变量2
    变量也可以是数字字符串
    常见的比较符号 "=","!=",">","<"

    更多的可以查看man test
[变量1 比较符号 变量2]    与test用法一样

特殊字符的转义
\ 只能转义单个字符
'' 强引用,包含的所有字符均为显示意思(转义)
"" 弱引用,包含的"!","$","\","`"不能转义

运算
运算法则: ++  --  +=  -=  +  -  *  /  **  %
运算命令:
$[ 3+2 ]
$((3+2))
let A=3+2
expr 3+2    ##数字与运算符之间必须有空格,*必须转义,并且没有**

常用语句
1.for do done
2.while do done
3.if then elif then else fi
4.case $ in
        )

        ;;
        *)
  seac
5.语句 && echo yes || echo no
6.自动应答需要下载expect软件,并且编写时以.exp结尾
文件头为:
#!/usr/bin/expext
set timeout 2            ##设置输入的变量个数
set Num  [lindex $argv 0]    ##输入的变量
set Num2 [lindex $argv 1]

spawn 文件名|命令        ##需要应答的文件或命令
expect {
        ":关键字"       {send}    ##匹配关键字应答
    }
expect eof            ##应答完关闭命令状态
interact            ##应答万保持命令状态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值