系统别名、正则表达式、脚本基础知识

1.定义一个对所有用户都生效的命令别名,以systemctl restart network为例。

1.系统定义的别名
通常情况下,系统中已经定义了一些命令别名,要查看已经定义的命令别名,可以使用alias将输出所有已经定义的命令别名
在这里插入图片描述
从上面的结果中可以看出系统已经提前定义好的别名。用于设置系统别名的相关文件保存在/etc/profile.d/目录中(系统别名目录),管理员可在此目录下自定义系统别名脚本(全局有效),使用以下方式可以查看:
ll /etc/profile.d/
在这里插入图片描述
当系统重新启动或用户重新登录时,使用alias命令定义的别名将会丢失。可以在系统别名目录中添加别名配置文件,但这种方式定义的别名对所有的用户都生效,通常不建议使用这种方法。如果要定义全局别名,通常建议将命令添加到全局配置文件/etc/profile中(操作前最好对/etc/profile文件进行备份)。
例如定义全局别名:echo “alias rn='systemctl restart network '”>>/etc/profile 这条命令将alias rn='systemctl restart network '添加到文件/etc/profile中。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
注意:在对/etc/profile这样的系统配置文件进行操作时,一定要谨慎,否则有可能会损坏系统。因此上面的命令中使用的是">>“而不是”>",">>"表示将内容追加到文件结尾。
最后执行source /etc/profile或者. /etc/profile命令重新加载配置文件让其生效。

2.用户自定义别名

如果某个用户想要定义自己的命令别名,可以将别名命令添加到用户家目录中的文件.bashrc中。
例如要定义用户自己的别名:echo “alias look=‘cat’”>>~/.bash_profile,操作之前最好对文件进行备份。
在这里插入图片描述
上面的命令中,先为cat命令定义了一个名为look的别名。当用户使用命令look时,系统会自动使用cat命令将其替代。
最后执行source ~/.bashrc或者. ~/.bashrc命令重新加载配置文件让其生效。
3.取消定义的别名
要取消已经定义好的命令别名,可以对别名使用unalias命令:

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

cat /etc/passwd|grep ".*/bin/bash$"是显示出以/bin/bash结尾的行,加上-v选项则反选。
在这里插入图片描述在这里插入图片描述

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

执行命令grep “<[0-9]{2,3}>” /etc/passwd或者egrep -w “[0-9]{2,3}”
在这里插入图片描述
在这里插入图片描述

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

(1)、cat /proc/meminfo | grep “^(s|S)”
在这里插入图片描述
(2)、cat /proc/meminfo | grep -i “^s”
在这里插入图片描述
(3)、 cat /proc/meminfo | grep “^ [Ss]”
在这里插入图片描述

5、使用echo输出一个绝对路径,使用egrep取出路径名,类型执行dirname /etc/passwd 的结果(暂时没想到答案)。

在这里插入图片描述

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

ifconfig | egrep -o “<(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])>”
在这里插入图片描述

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

如果是对单个文本文件设置自动缩进四个字符,那么只需要在末行模式下设置,用户个人定制:~/.vimrc
:set ai
:set shiftwidth=4
:set tabstop=4
:set softtabstop=4
如果是对全局设置,需要修改vim的配置文件/etc/vimrc,在修改配置文件之前我们先备份。如下:
在这里插入图片描述
在这里插入图片描述

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

1、编写脚本adduser_sumid.sh,该脚本读取文本文件来添加用户,首先判断参数的个数,如果小于1则输出提示信息并退出,
在这里插入图片描述
2、编辑用户文本文件
在这里插入图片描述
3、执行结果。
在这里插入图片描述

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

find [OPTIONS] [查找起始路径] [查找条件] [处理动作]

查找起始路径:指定具体搜索目标起始路径,默认为当前目录
查找条件:指定的查找标准,可以根据文件名、大小、类型、从属关系、权限等等标准进行,默认为找出指定路径下的所有文件

根据文件的从属关系查找
-user USERNAME 找出属主指定用户的所有文件
-group RPUNAME 找出属组指定用户的所有文件
-uid UID 找出属主指定用户UID的所有文件
-gid GID 找出属组指定用户GID所有文件
根据文件的类型查找
-type TYPE
f 普通文件
d 目录文件
l 符合链接文件
b 块设备文件
c 字符设备文件
p 管道文件
s 套接字文件
根据文件大小查找
-size +。- unit
常用单位:k,M,G
根据时间戳查找
以“天”为单位
-atime 访问时间
-mtime 修改时间
-ctime 改变时间
以分钟为单位
-amin
-mmin
-cmin
组合测试
与:-a,默认组合
或:-o
非:-not,!
支持glob风格的通配符 *,?,[],[^]

处理动作:对符合查找条件的文件做出的操作,例如删除等操作,默认为输出至标准输出
-print 输出至标准输出,默认动作
-ls 类似于对查找到的文件执行ls -l 命令,输出文件的详细信息
-delete 删除查找到的文件
-fls 把查找到的所有文件的长格式信息保存至指定的文件中
-ok command {} ; 对查找到的每个文件有command表示的命令,每次操作需要用户确认
-exec comomand {} ; 对查找到的每个文件有command表示的命令,不需要用户确认
注意:find传递查找到的文件路径至后面的命令时,是先查找出所有符合条件的文件路径,并一次性传递给后面的命令,但是有些命令不能接受过长的参数,为了解决这个问题。用如下命令
find | xargs command
示例:
1、查找/var 目录下属主为root,且属组为mail的所有文件或目录
find /var -user root -a -group mail -ls
在这里插入图片描述
2、查找/etc/目录下最近一周内其内容修改过的
find /etc -mtime -7 -ls
在这里插入图片描述
3、查找当前系统上没有属主或属组,且最近一周内曾被访问过的文件或目录
find / -nouser -a -nogroup -atime -7 -exec ls -l {} ;
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值