马哥教育N36第三周作业

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

以bash shell 为例,用户命令别名生效的顺序,用户登录bash后首先读取当前用户目录中的 .bashrc 文件,然后读取 /etc/bashrc 文件,最后读取所有 /etc/profile.d/*.sh脚本。因此在/etc/profile.d/目录中新建一个.sh脚本,然后在脚本中写入需要的命令别名。

2.显示/etc/passwd文件中不以/bin/bash结尾的行
grep -v '/bin/bash$' /etc/passwd
3.找出/etc/passwd文件中,包含二位数字或者三位数字的行
grep -E '[0-9]{2,3}' /etc/passwd
4.显示/proc/meminfo文件中以大写或小写S开头的行(用三种方式实现)
#方法一:
grep '^[Ss]' /proc/meminfo
#方法二:
sed -n '/^[sS]/p' /proc/meminfo
#方法三:
awk '/^[sS]/{print}' /proc/meminfo
5.使用echo输出一个绝对路径,使用egrep取出路径名,类似执行dirname /etc/passwd 的结果

这个题目暂时这样实现,更好的实现我觉得应该编写脚本

echo /etc/passwd | egrep -o '^/.*/'
6.找出ifcofnig中的ip地址(要求结果只显示IP地址)

下面的正则表达式并不能准确匹配IP,但是在这个题目中能满足要求

ifconfig | grep -woE '([0-9]{1,3}\.){3}[0-9]{1,3}'
7.vim定制自动缩进四个字符

在用户家目录中的.vimrc 配置文件中添加 下面的行

set autoindent
set shiftwidth=4
8.编写脚本,实现自动添加三个用户,并计算这三个用户的uid之和
echo newuser1 newuser2 newuser3 | xargs -n1 useradd &>/dev/null
declare -i uid1=$(id -u newuser1)
declare -i uid2=$(id -u newuser2)
declare -i uid3=$(id -u newuser3)
declare -i sum=$uid1+$uid2+$uid3
echo "the three new users uid's sum is $sum"
9.find用法以及常用用法的示例演示

它是实时查找工具,通过遍历指定的路径来完成文件的查找。注意:一个命令作用在多个条件时,要加括号,否则命令将默认只作用在相邻的条件上。
语法规则如下:
find [option]… [查找路径] [查找条件] [处理动作]

查找条件 解释
-name 后接文件名称,支持使用通配符 * 、?、[]、[^]
-iname 后接文件名,不区分大小写
-inum 后接inode号
-samefile 后接文件名,查找与之相同inode号的文件
-links 后接连接数,查找连接数为n的文件
-regex 以pattern匹配整个文件路径字符串
-user 查找属主为指定用户的文件
-group 查找属组是指定组的文件
-uid 查找属主为指定uid的文件
-gid 查找属主为指定gid的文件
-nouser 查找没有属主的文件
-nogroup 查找没有属组的文件
-type 后接文件类型,常见类型有:f,d,l,s,b,c,p
-a 组合条件关系,表示与的关系
-o 组合条件关系,表示或的关系
-not 组合条件关系,表示非的关系
-size 后接 +或者- n Unit ,这个值表示的是一个区间。-n 表示的区间是 [0,n-1],n 表示的区间是(n-1,n], +n 表示的区间是 (n,∞)。常用单位是:k,M,G,c(byte)
-atime 以天为单位查询文件时间。-n 表示[0,n) ,n 表示 [n,n+1),+n 表示[n+1,∞)
-mtime 查找文件的修改时间
-ctime 查找文件的状态时间
-amin 以分钟为单位查询文件时间。-n 表示[0,n) ,n 表示 [n,n+1),+n 表示[n+1,∞)
-mmin 查找文件的修改时间
-cmin 查找文件的状态时间
-perm 后接权限模式,常用数字格式的权限模式。755 表示匹配的权限恰好是755,/755 只要ugo任意一个中任何一个rwx位权限能匹配就OK,-755 ugo都必须要拥有对应的权限,可以大于这个权限。
处理动作 解释
-print 默认的处理动作
-ls 类似于 ls -l 结果
-delete 删除查找到的文件,慎用
-fls 后接文件,将查找到的结果保存到文件中
-ok cmd {} \; 对查找到每个文件执行cmd
-exec cmd {} \; 同上就是不会每一个都询问了

常见用法:

用法 解释
find / -name file -type [f|d] 根据名字从根目录开始查找文件或目录
find / -user username 根据用户名查找
find -name ‘*.[ch]’ 使用通配符模糊查找时,一定要单引号括起来
find -iname snow.png 忽略大小写
find -user joe -group joe 指定用户和组
find -user joe -o -user jane 指定用户名或组
find -not \ ( -user joe -o -user jane \ ) 查找既不是joe也不是jane用户的文件,标记的地方中间是没有空格,博客的原因如没有空格显示有问题
find / -user joe -o -uid 500 在/ 下查找属主是joe或者uid是500的文件
find /tmp \ ( -not -user root -a -not -name ‘f*’ \ ) -ls 找出/tmp目录下,属主不是root,且文件名不以f开头的文件
find /etc -path ‘/etc/sane.d’ -a -prune -o -name “*.conf” 查找etc目录中除了sane.d目录,其他以conf结尾的文件
find -perm 755 查找当前目录中权限是755的文件
find /tmp -ctime +3 -user joe -ok rm {} \; 提示删除存在时间超过3天以上的joe的临时文件
find ~ -perm -002 -exec chmod o-w {} \; 在你的主目录中寻找可被其它用户写入的文件

猜你喜欢

转载自blog.csdn.net/me0607040211/article/details/87873577