您的位置:首页 > 运维架构 > Shell

grep find shell 基础

2019-08-25 23:46 1396 查看

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指定的命令,每次操作不需要用户确认
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: