Linux运维学习笔记

今天在自学shell编程的过程中碰到一个题,是计算/etc/passwd文件中第10个用户和第20个用户的id号之和。在没有使用head和tail的情况下,学习了另一个命令。

sed命令:

#####
#!/bin/bash
#vesion 2.0
echo "Add userid.id11 and id22."
#Made by abc
echo "Creation-time 20160720"
echo "Time Now: $(date +%Y-%m-%d)"

ID_Num11=$(cut -d: -f3 /etc/passwd | sed -n 11p)
echo "ID_Num11=$ID_Num11."

ID_Num22=$(cut -d: -f3 /etc/passwd | sed -n 22p)
echo "ID_Num22=$ID_Num22."

ID_SUM=$[$ID_Num11+$ID_Num22]
echo "The id sum: $ID_SUM."
#####

此处用到选项是-n,安静模式,经过处理的行会被列出。

将cut之后的内容送给sed后,列出第十一行的内容,也就是第十一个用户的ID号。

第二个程序,写一个脚本计算/etc/rc.d/init.d/functions和/etc/inittab文件的空白行数之和。

#####
#!/bin/bash
#vesion 2.1
#made by GJy
echo "Creation-time 2016720"
echo "Function:Count empty line"
echo "Date Now: $(date +%Y-%m-%d)"

line_num1=$(grep -n ^#[[:space:]]*$ /etc/inittab | wc -l)
echo "The empty line number of /etc/inittab is $line_num1"

line_num2=$(grep -n ^[[:space:]]*$ /etc/rc.d/init.d/functions | wc -l)
echo "The empty line number of /etc/rc.d/init.d/functions is $line_num2"

emptyline_sum=$[$line_num1+$line_num2]
echo "The sum of empty line is $emptyline_sum."

echo "END"
#####

用到的是grep正则表达式,

grep -n   显示匹配行及行号;此处则为匹配到的空行传给wc命令,统计行数。

时间: 07-20

Linux运维学习笔记的相关文章

Linux运维学习笔记之一:运维的原则和学习方法

一直在用Linux,但从未系统学习过,从1月1日开始学习到7月16日结束,近七个月学习,让自已对Linux有了新的认识,老男孩老师的课真的不错,实战性很强.由于只能中午和晚上10点以后才有时间,所以所有的实验是在不同电脑上完成的,文中IP可能有点问题,但应该不会影响实验.同时,为了保证笔记的完整,在做笔记的时候,从网上也下载了些图片和内容. 第一章 运维的原则: 一.简单.易用.高效 二.修改前做备份 1.以便回滚 2.以便事后比对改过的内 三.最小化原则 1.安装系统最小化 2.开启服务最小化

​通过chkconfig设置linux开机自启动服务- 老男孩Linux运维学习笔记1

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处.作者信息和本声明.否则将追究法律责任. 更多内容请查看老男孩老师的书籍:<跟老男孩学习Linux运维:Web集群实战>或者运维课程. 首先查看当前开启的服务有哪些: 老男孩老师的经验告诉我们默认只需要开通下面5个必要服务即可: sshd |sysstat|crond|network|rsyslog 首先查看当前自启动的服务有哪些.由于工作环境基本上使用文本模式3级别,只需要查找3级别上开启的服务即可. 命令如下: [[email 

Linux下创建文件和文件夹的方法-老男孩Linux运维学习笔记2

我们可以在Linux里面通过多个命令来创建文件: touch命令创建文件: -创建单个文件: [[email protected] oldboy]# touch oldboy [[email protected] oldboy]# ll 总用量 0 4325378 -rw-r--r-- 1 root root 0 2017-05-27 13:30 oldboy -创建多个文件: [[email protected] oldboy]# touch oldboy1 oldboy2 oldboy3 

Linux运维学习笔记之二:常用命令3

101.paste :将多个文件按列队列合并 说明 paste命令用于将多个文件按照列队列进行合并 语法 paste (选项) 指定需要合并的文件列表 选项 -d<间隔字符>或--delimiters=<间隔字符>:用指定的间隔字符取代跳格字符: -s或--serial串列进行而非平行处理. 实例 paste inotify_client_100.log inotify_server_100.10g paste inotify_client_100.log inotify_serv

Linux运维学习笔记之二:常用命令2

71.passwd:修改用户密码 语法 passwd [参数]username 选项 -k  --keep-tokens :保留即将过期的用户在期满后仍能使用 -l  --lock :锁定用户无权更改其密码,只能root才能操作 -u --unlock :解除锁定 -S --status :查看用户状态 -d --delete :删除用户密码,只能root才能操作 -f --force :强制操作,只能root才能操作 -n mindays :修改密码的最小天数,也就是mindays天内不能再次

Linux运维学习笔记之二:常用命令1

第三章 常用命令 1.mkdir : 创建目录,make directorys,-p 递归创建目录 mkdir-p /a/b/c 2.ls  : -l(long)d(directory)显示目录或文件,全称list -l#列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等 -d#只查看目录 -F#会在不同类型的文件后面加上*/=>@|等符号,以便区分不同类型文件 -p#会在目录后面加上/,以便区分目录和文件 -h#人类可读模式,显示K.M.G -i#显示inode,也就是文件的ind

Linux运维学习笔记-通配符及正则表达式知识总结

通配符: * 代表所有   ? 任意一个字符   : 两个命令的分隔符   # 注释   | 管道,将|前命令的执行结果作为|后命令的输入   ~ 用户的家目录   - 上一次的目录   $ 变量前面需要加的符号 echo $LANG / 路径分隔符   > 重定向(覆盖)   >> 追加重定向   < 输入重定向 xargs.tr << 追加输入重定向 cat '' 单引号,不具有变量置换功能,输出时所见即所得 echo 'date' "" 具有变

Linux运维学习笔记-软硬链接知识总结

文件链接   硬链接,通过索引节点来进行链接 硬链接原理图 硬链接的创建: 直接执行命令"ln 源文件 硬链接文件",即可完成创建硬链接. 硬链接知识小结: 1.具有相同Inode节点号的多个文件是互为硬链接文件. 2.删除硬链接文件或者删除源文件任意之一,文件实体并未被删除. 3.只有删除了源文件及所有对应的硬链接文件,文件实体才会被删除. 4.当所有硬链接文件及源文件被删除后,再存放新的数据会占用这个文件的空间,或者磁盘fsck检查的时候,删除的数据也会被系统回收. 5.硬链接文件

Linux运维学习笔记-目录知识点总结

目录知识点总结: Note: 1.创建一个/server/scripts目录,用于存放脚本(命令:mkdir -p /server/scripts) 2.安装软件时,安装路径统一为/usr/local/软件名-版本号 3.安装完软件后,需做软链接(ln -s /usr/local/软件名-版本号/ /usr/local/软件名) 重要子目录 文件作用 /etc/sysconfig/network-scripts/ifcfg-eth0 网卡配置 /etc/resolv.conf 本地DNS配置 /