为了账号安全,请及时绑定邮箱和手机立即绑定
  • printf '%s\t%s\t%s\n' 1 2 3 4 5 6

    查看全部
  • ^[^a-z]  中括号内^代表取反

    查看全部
  • a* 匹配所有

    aa* 

    查看全部
  • 添加IP地址与更换IP地址(远程登录是改不了的)

    [root@localhost ~]# vim huan 

    #!/bin/bash

    read -p "Do you want to add or replace IP [add/rep] : " ar

    if [ -n $ar ]

            then

    case $ar in

            "add")

    read -p "please input your IP address: " ip

    read -p "please input your NETMASK : " net

    read -p "please input your GATEWAY : " gat

    read -p "please input your DNS : " dns

    if [ -n $ip -a -n $net -a -n $gat -a -n $dns ]

            then

                    sed "4s/dhcp/static/g" /etc/sysconfig/network-scripts/ifcfg-ens33

                    sed "6s/no/yes/g" /etc/sysconfig/network-scripts/ifcfg-ens33

                    sed "15s/no/yes/g" /etc/sysconfig/network-scripts/ifcfg-ens33

                    echo "IPADDR=$ip" >> /etc/sysconfig/network-scripts/ifcfg-ens33

                    echo "NETMASK=$net" >> /etc/sysconfig/network-scripts/ifcfg-ens33

                    echo "GATEWAY=$gat" >> /etc/sysconfig/network-scripts/ifcfg-ens33

                    echo "DNS1=$dns" >> /etc/sysconfig/network-scripts/ifcfg-ens33

                    systemctl restart network

            fi

            ;;


            "rep")

    t=$( cat /etc/sysconfig/network-scripts/ifcfg-ens33 | grep "IPADDR" |cut -f 2 -d "=" )

    u=$( cat /etc/sysconfig/network-scripts/ifcfg-ens33 | grep "NETMASK" |cut -f 2 -d "=" )

    v=$( cat /etc/sysconfig/network-scripts/ifcfg-ens33 | grep "GATEWAY" |cut -f 2 -d "=" )

    w=$( cat /etc/sysconfig/network-scripts/ifcfg-ens33 | grep "DNS1" |cut -f 2 -d "=" )

    read -p "please input your IP address: " i

    read -p "please input your NETMASK : " n

    read -p "please input your GATEWAY : " g

    read -p "please input your DNS : " d

    if [ -n $i -a -n $n -a -n $g -a -n $d ]

            then

            sed "4s/dhcp/static/g" /etc/sysconfig/network-scripts/ifcfg-ens33

            sed "6s/no/yes/g" /etc/sysconfig/network-scripts/ifcfg-ens33

            sed "15s/no/yes/g" /etc/sysconfig/network-scripts/ifcfg-ens33

            sed "17s/IPADDR=$t/IPADDR=$i/g" /etc/sysconfig/network-scripts/ifcfg-ens33

            sed "18s/NETMASK=$u/NETMASK=$n/g" /etc/sysconfig/network-scripts/ifcfg-ens33

            sed "19s/GATEWAY=$v/GATEWAY=$g/g" /etc/sysconfig/network-scripts/ifcfg-ens33

            sed "20s/DNS1=$w/GATEWAY=$d/g" /etc/sysconfig/network-scripts/ifcfg-ens33

            systemctl restart network

      fi

            ;;

            *)

            echo "Your input is wrong"

            ;;

    esac

    fi


     chmod 755 huan

    查看全部
  • [root@localhost ~]#  vim userdel.sh

    #!/bin/bash

    read -p "please you input yes or no delete anyuser [y/n] : " yn

    read -p "please you input delete number : " num

    if [ -n $yn ]

    then

    case $yn in

                    "y")

                            touch name

                            cat /etc/passwd | grep "/bin/bash" | grep -v "root" | cut -d ":" -f 1 >> name

                            for i in $( cat name )

                                    do

                                            a=0

                                            for (( a=0;a<=$num;a=a+1 ))

                                                    do

                                                            userdel $i

                                                    done

                                    done

                            rm -rf name


                            ;;

                    "n")

                            echo "[root@localhost ~]# "

                            ;;

                    *)

                            echo "no have it"

                            ;;

    esac

    fi

    [root@localhost ~]# chmod 755 userdel.sh

    查看全部
  • cat /etc/sysconfig/network-scripts/ifcfg-ens33 | grep "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" |cut -f 2 -d "=" 

    #提取IP地址、子网掩码、网关、dns


    查看全部
  • cat /etc/sysconfig/network-scripts/ifcfg-ens33 | grep "IPADDR" |cut -f 2 -d "="

    #提取IP地址

    查看全部
  • grep “a*” test.txt

    匹配多个a或者0个a的行

    查看全部
  • #!/bin/bash

    df -h | grep "/dev/vda1" | awk '{printf $5 "\n"}' | cut -f 1 -d "%"


    awk 'END{print "test"}{printf $2 "\n"}' student.txt


    echo "指定分隔符"


    cat /etc/passwd | grep "/bin/bash" | awk 'BEGIN{FS=":"}{printf $1 "\t" $3 "\n"}'


    echo "根据条件筛选"


    cat student.txt | grep -v "Name" | awk '$4>40{print $2}'

    查看全部
  • awk 语法:


    默认使用tab或者空格分割


    awk 有内置的一些函数可以调用 比如substr

    awk 也可以将正则作为条件,比如

    awk '/in/ {printf $2 "\n"}' student.txt


    查看全部
  • ID Name gender mark

    1 geek F 89

    2 jin F 70

    3 xin F 45


    #!/bin/bash
    cut -f 2,4 student.txt
    查看全部
  • cut 用来提取列



    -d 默认分隔符为tab


    查看全部
  • 字符处理命令

    etc/passwd 为当前保存的用户信息

    1. sort 

      不给参数按照行的字母顺序排列,默认分隔符为tab

      -r 取反

      echo "指定分隔符是: 用第三个字段开头 第三个字段结尾排序 就是只用第三个字段排序 使用数字进行排序"

      echo "对每行用冒号分割(-t)后的字段的第三个列用数字(-n)的方式进行排序 "

      sort -n -t ":" -k 3,3 /ect/passwd

    2. wc 是的缩写word count

      -l 只统计行数

      -w 只统计单词数

      -m 只统计字符数

    查看全部
  • sed 主要用来修改文档数据


    echo "删除第二行"

    sed '2d' student.txt


    echo "删除第二行到第四行"

    sed '2,4d' student.txt


    echo "删除第二行后追加字符串 a为append"

    sed '2a geek v5' student.txt


    echo "删除第二行前插入字符串 i 为insert"

    sed '2i geek v5' student.txt


    echo "替换整行"

    sed '2c geek v5' student.txt


    echo "替换行中的字符串 显示到屏幕 但不会改变文件的内容"

    sed '3s/28/70/g' student.txt


    echo "替换行中的字符串 不显示到屏幕 且会改变文件的内容 -i会改变文件内容"

    sed -i '3s/28/70/g' student.txt


    echo "多个动作同时执行 不加行号 搜索所有文件内容 70 置空 xin替换成hui"

    sed -e 's/70//g;s/xin/hui/g' student.txt

    查看全部
  • 定义:sed 是一种轻量级流编辑器,是Stream EDitor的缩写

    作用:sed 替换字符串内容 对数据进行选取 替换 删除 新增

    格式:sed [选项] '[动作]' 文件名

        选项:-n 一般sed命令会把所有的数据都输出到屏幕,如果加入此选择

    则只会把经过sed命令处理的行输出到屏幕

                 -e 允许对输入数据应用多条sed命令编辑

                  -i 用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出


    动作:

            a 追加,在当前行后添加一行或者多行

            c 行替换,用c后面的字符替换原数据行

            i  插入,在当前行前插入一行或多行

            d 删除,删除指定的行

            p 打印,输出指定的行

            s 字符替换,用一个字符串替换另一个字符串。格式为”行范围s/旧字符串/新字符串/g“(和vim中的替换格式类似)

    查看全部
  • 条件 动作

    http://img1.sycdn.imooc.com//626f9fe90001d3a211760652.jpg

    查看全部
  • awk 默认使用空格或者tab键作为分隔符

    使用{FS=":"}指定分隔符

    查看全部
  • cat stu.txt | printf  这种执行不成功 

    管道运算符返回的是数据流 而printf只认识字符串

    可以用 printf‘%s\t%s\t%s\t%s\t\n’$(cat stu.txt ) 实现对文件内容的打印


    某种意义上 printf是awk的子命令

    查看全部
  • awk 一行行的读取文件里的内容 文件为$0 第一列(字段)为$1 第二列(字段)为$2

    查看全部
  • 统计命令 wc

    • wc [选项] 文件名

    • 选项

      • -l:只统计行数

      • -w:只统计单词数

      • -m:只统计字符数

    查看全部
  • sort -t ":" -k 3,3 /etc/passwd 
    # 指定分隔符是“:”,用第三字段开头,第三字段结尾排序,就是只用第三字段排序
    sort -n -t ":" -k 3,3 /etc/passwd
    查看全部
首页上一页1234567下一页尾页

举报

0/150
提交
取消
课程须知
学习本门课程前,还请大家学习慕课网《Tony老师聊shell》系列的前三篇课程!
老师告诉你能学到什么?
1、掌握shell中的正则表达式 2、掌握常用字符截取命令的使用 3、掌握常用字符处理命令的使用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!