第三周

Posted qq291035606

tags:

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

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

编辑/etc/bashrc文件,在最后一行追加内容 "lftps=‘lftp 172.168.0.1/pub",保存后执行source /etc/bashrc

二、 显示/etc/passwd文件中不以/bin/bash结尾的行

grep -v ".+/bin/bash" /etc/passwd

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

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

egrep "[[:digit:]]{2,3}" /etc/passwd

四、 显示/proc/meminfo文件中以大写或小写S开头的行;用三种方式实现。

  1. egrep -i "^s" /proc/meminfo
  2. egrep "^[s|S].*" /proc/meminfo
  3. sed -n "/^[s|S]/p" /proc/meminfo
  4. sed "/^[s|S]/! d" /proc/meminfo

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

echo /etc/passwd | egrep -o ‘^/.+/‘

六、 找出ifconfig中的ip地址。要求结果只显示IP地址。

ifconfig | egrep -o "(([[:digit:]]{1,2}|1[[:digit:]]{2}|2[0-5]{2}).){3}([[:digit:]]{1,2}|1[[:digit:]]{2}|2[0-5]{2})"

ifconfig | grep -o "[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}"

ifconfig | egrep -o "[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}"

? ?

七、 vim定制自动缩进四个字符。

编辑/etc/vimrc文件,追加如下内容

set ai

set ts=4

八、 编写脚本,实现自动添加三个用户,并计算这三个用户的uid之和。

#! /usr/bin/env bash

? ?

sum=0

? ?

for uname in user1 user2 user3; do

id $uname &> /dev/null && echo "$uname exists" || useradd $uname

uid=$(id -u $uname)

sum=$[$sum+$uid]

done

? ?

echo "uid sum = $sum"

九、 find用法及常用用法的实例演示。

常用用法:find path 查找条件 处理动作

查找条件(可组合使用):

(1)根据文件名查找

-name string:根据文件名精确查找,可用glob通配符。

-iname string:不区分大小写的-name。

-regex PATTERN:根据正则查找,匹配范围是整个路径,比如要查找./fubar3,应该用.*bar.或.*b.*3‘,而不是f.*r3。

(2)根据文件从属关系查找

-user USERNAME/UID:查找指定属主的文件。

-group GNAME/GID:查找指定属组的文件。

-uid UID:查找指定属主的文件

-gid GID:查找指定属组的文件。

-nouser:查找没有属主的文件。

-nogroup:查找没有属组的文件。

(3)根据文件类型查找

-type [fdcblps]:根据文件类型查找。

f: 普通文件

d: 目录文件

l: 符号链接文件

b: 块设备文件

c: 字符设备文件

p: 管道文件

s: 套接字文件

例:find /tmp -type f 查找/tmp目录下的普通文件

(4)根据文件大小查找

-size [+-]n:根据文件大小查找,可用单位[bcwkMG];+表示大于,-表示小于,不加表示精确匹配(也没那么精确,10M表示9-10M都符合条件)

(5)根据时间戳查找

-mtime [+-]days:-表示days内修改过,+表示days前修改过,不加表示正好在days修改过。

-ctime [+-]days:改变时间,+-含义同-mtime。

-atime [+-]days:访问时间,+-含义同-mtime。

-mmin n:n分钟前修改过文件内容,

-cmin n:n分钟前文件改变过。

-amin n:n分钟前文件被访问过。

(6)根据文件权限查找

-perm [=-/] MODE:按权限查找,-表示文件权限是MODE超集,/和+表示权限中只要有一位能匹配就符合,不指定任何符号表示精确匹配。

查找条件组合:

-a:与条件

-o:或条件

-not:取反

处理动作

-print:默认动作,打印结果到标准输出。

-ls:以类似ls -l的格式打印每个文件的信息。

-delete:删除文件。

-fls file:类似`-ls,但将结果保存到指定文件中。

-ok COMMAND {};:交互模式执行指定命令,{};是固定写法,表示文件名占位符。

-exec COMMAND {};:非交互模式执行指定命令,{};是固定写法,表示文件名占位符。

常用示例(引用课堂上的练习)

查找/var目录下属主为root,且属组为mail的所有文件或目录:find /var -user root -group mail

查找/usr目录下不属于root, bin或hadoop的所有文件或目录;用两种方法

find /usr -not -user root -not -user bin -not -user hadoop

find /usr -not ( -user root -o -user bin -o -user hadoop )

查找/etc目录下最近一周内其内容修改过,且属主不是root用户也不是hadoop用户的文件或目录:find /etc -mtime 7 -not -user root -not -user hadoop

查找当前系统上没有属主或属组,且最近一周内曾被访问过的文件或目录:find / ( -nouser -o -nogroup ) -atime -7

查找/etc目录下大于1M且类型为普通文件的所有文件: find /etc -size +1M -type f

查找/etc目录下所有用户都没有写权限的文件:find /etc -not -perm +222 -type f

查找/etc目录至少有一类用户没有执行权限的文件:find /etc -not -perm -111 -type f

查找/etc/init.d/目录下,所有用户都有执行权限,且其它用户有写权限的所有文件:find /etc/init.d -perm -113 -type f

? ?

以上是关于第三周的主要内容,如果未能解决你的问题,请参考以下文章

进度条--第三周

第三周学习进度

学习进度_第三周

第三周学习进度

第三周第二次作业

团队项目第三周总结