grep find shell 基础

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了grep find shell 基础相关的知识,希望对你有一定的参考价值。

1,定义一个对所有用户都生效的命令别名,例如:lftps=‘172.168.0.1/pub‘

        echo "alias lftps=‘172.168.0.1/pub‘" >> /etc/bashrc && source /etc/bashrc

2,显示/etc/passwd 文件中所有不以/bin/bash结尾的行

         grep -v "/bin/bash$" /etc/passwd

3,找出/etc/passwd文件中,包含二位数字或者三位数字的行

        grep "\<[0-9]\2,3\\>" /etc/passwd

4,显示/proc/meminfo文件中大小写s开头的行,用三种方式

        grep -i ‘^s‘ /proc/meminfo
        grep  ‘^[sS]]‘ /proc/meminfo
        grep -E ‘^(s|S)‘ /proc/meminfo

5, 使用echo输出一个绝对路径,使用egrep取路径名 类型执行dirname /etc/passwd的结果

        echo "/a/b/c/d" | egrep  -o  ‘.*/‘

6 找出 ifconfig中的ip地址,要求结果只显示ip地址

        ifconfig | egrep -o ‘inet (addr:)?([0-9]*\.)3[0-9]*‘ | egrep -o ‘([0-9]*\.)3[0-9]*‘ | head -n 1

7 vim 定制自动缩进4个字符
cat >> /etc/vimrc << EOF
set ai
set tabstop=4
EOF
8 编写脚本,实现自动添加三个用户,并计算这3个用户的uid之和

        #!/bin/bash
        #
        sum_uid=0
        for account in user1 user2 user3
        do
        if id $account &> /dev/null
        then echo "$account exists" 
        else
        useradd $account
        fi
        uid=$(id -u $account)
        sum_uid=$[$sum_uid+$uid]
        done
        echo "3个用户的UID之和是 $sum_uid"

9 find用法及常用实例

        fine [options] [查找起始路径] [查找条件] [处理动作]

            -name 文件名查找 支持glob
            -iname  忽略大小写
                    根据从属查找
                          -user USERNAME

                          -user groupname

                          -uid

                          -gid

                          -nouser 查找没有属主的文件

                          -nogroup
                    文件类型查找
                          -type

                            f 普通文件

                            d 目录文件

                            l 符号链接文件

                            b 块设备文件

                            c 字符设备文件

                            p 管道文件

                            s 套接字
                    组合查找
                            与:-a
                            或:-o
                            非:-not,!
                    文件大小

                        -size  [+|-]#unit

                        常用单位:k M G

                        #unit: (#-1, #]

                        -#unit: [0 - #-1 ]

                        +#unit: (#, 无穷大)
                    时间
                        以天为单位
                             -atime [+|-]# 访问
                             #: 过去第几天 [#,#-1)
                             -# (#, 0] 过去#天内
                             +#  (00, #-1] 超过多少天
                             -mtime 修改
                             -ctime 更改
                        以分为单位
                            -amin
                            -mmin
                            -cmin
                    权限
                        -perm [+|-]mode
                            mode:与mode精确匹配
                            +mode:ugo组有一组满足都可以
                            -mode:小于mode的权限即可
                    处理动作:
                        -print     输出至标准输出 默认的动作
                        -ls
                        -delete 删除
                        -fls /path 查找的文件详细信息保存到指定文件中
                        -ok COMMAND  \;  对查找到的每个文件执行由COMMAND指定的命令,每次操作由 用户确认
                        -exec COMMANd  \; 对查找到的每个文件执行由COMMAND指定的命令,每次操作不需要用户确认

以上是关于grep find shell 基础的主要内容,如果未能解决你的问题,请参考以下文章

shell 编程四剑客简介 find sed grep awk(微信公众号摘抄)

Linux 基础-文本处理命令

linux shell基础正则表达式与grep命令(编辑中)

《前端运维》一Linux基础--08Shell其他及补充

Linux基础(强大到流泪的find/grep)

Linux-Shell编程