Linux基础学习总结(六)

一、完成如下练习
1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;
vim:
  1. cp /etc/rc.sysinit /tmp/rc.sysinit
  2. vim/tmp/rc.sysinit
  3. :%s@^[[:space:]]\+@#&@g
sed:
  1. sed "s/\(^ \)/#\1/g" /tmp/rc.sysinit > tmp
  2. cat tmp > /tmp/rc.sysinit
2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符;
  1. cp /boot/grub/grub.conf /tmp/
  2. vim /tmp/grub.conf
  3. :%s@^[[:space:]]\+@@g
3、删除/tmp/rc.sysinit文件中的以#开头,且后面跟了至少一个空白字符的行行的#和空白字符
  1. vim/tmp/rc.sysinit
  2. :%s@^#[[:space:]]\+@@g
4、为/tmp/grub.conf文件中前三行的行首加#号;
vim编辑器
  1. :1,3s/^/#&/
5、将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改为1;
vim编辑器
  1. :%s@\(enabled\|gpgcheck\)=0@\1=1@g
6、每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形如etc-201504020202
  1. 0 */4 * * * cp -r /etc/ /tmp/backup/etc-$(date +%Y%m%d%H%M)
7、每周2,4,6备份/var/log/messages文件至/backup/messages_logs/目录中,保存的文件名形如messages-20150402
  1. 0 0 * * 2,4,6 cp -r /var/log/messages /backup/messages_logs/messages-$(date +%Y%m%d)
8、每天每两小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/stats/memory.txt文件中
  1. 0 */2 * * * cat /proc/meminfo |grep "^S" >> /starts/menory.txt
9、工作日的工作时间内,每两小时执行一次echo “howdy”
  1. 0 9-18/2 * * 1,2,3,4,5 echo "howdy"
二、脚本编程练习
10、创建目录/tmp/testdir-当前日期时间; 
  1. mkdir -p /tmp/testdir-$(date +%F)
11、在此目录创建100个空文件:file1-file100
  1. #!/bin/bash
  2. cd /tmp
  3. for i in $(seq 1 100);do
  4. touch file-$i
  5. done
12、显示/etc/passwd文件中位于第偶数行的用户的用户名;
命令实现:
  1. sed -n 'n;p' /etc/passwd |awk -F: '{print $1}'
脚本实现:
  1. #!/bin/bash
  2. declare -i i=0;
  3. cat /etc/passwd | while read -r line; do
  4. if [ $[ $i%2 ] == 0 ]; then
  5. echo $(echo $line | cut -d":" -f1);
  6. fi
  7. i=$i+1;
  8. done
13、创建10用户user10-user19;密码同用户名;
  1. #!/bin/bash
  2. for i in {10..19};do
  3. useradd user$i && echo "创建user$i用户成功"|passwd --stdin user$1 &> /dev/null
  4. done
14、在/tmp/创建10个空文件file10-file19; 
  1. #!/bin/bash
  2. for i in {10..19};do
  3. touch /tmp/file$i &> /dev/null
  4. done
15、把file10的属主和属组改为user10,依次类推。
  1. #!/bin/bash
  2. for i in {10..19};do
  3. chown user$i user$i /tmp/file$i &> /dev/null
  4. done

原创文章,作者:Leexide,如若转载,请注明出处:http://www.178linux.com/56180

(0)
LeexideLeexide
上一篇 2016-10-30
下一篇 2016-10-30

相关推荐

  • shell脚本清空系统message日志

      1 #/bin/bash   2 #此脚本用来清空系统message日志文件   3 #author:wyf date:16/10/30   4 LOG_DIR=/var/log   5 ROOT…

    Linux干货 2016-10-30
  • 马哥教育网络班21期第5周课程练习

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; # grep '^[[:space:]]\+' /boot/grub2/grub.cfg 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; # grep…

    Linux干货 2016-08-05
  • 磁盘管理之磁盘分区,主引导分区表修复

    磁盘管理: I/O Ports: I/O设备地址 一切皆文件: open(), read(), write(), close() 设备类型: 块设备:block,存取单位“块”,磁盘 字符设备:char,存取单位“字符”,键盘 设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信 设备号码: 主设备号:major number, 标识设备类型…

    Linux干货 2016-08-25
  • Linux的哲学思想

    Linux的哲学思想 一切皆文件  几乎把所有的资源系统抽象为文件形式:包括硬件设备,甚至通信接口等 由众多功能单一的程序组成:一个程序只做一件事,并且做好;组合小程序完成复杂任务  力求使程序精简凝练,出现地完成最核心的需求;尽量避免使其膨胀成为一个臃肿的程序,致使大部分代码很少被需要和执行。 小程序易于理解,维护,消耗系统资源较少,易…

    Linux干货 2017-07-03
  • AOP面向方面编程

    1.引言         软件开发的目标是要对世界的部分元素或者信息流建立模型,实现软件系统的工程需要将系统分解成可以创建和管理的模块。于是出现了以系统模块化特性的面向对象程序设计技术。模块化的面向对象编程极度极地提高了软件系统的可读性、复用性和可扩展性。向对象方法的焦点在于选择对象作为模块的主要单元,并将对象与系统的…

    Linux干货 2015-04-07
  • php 设计模式-数据映射模式(应用程序与数据库交互模式)

    前面提到的设计模式大大提高了代码的可读性与可维护性。然而,在WEB应用设计与开发中一个基本的需求与挑战:数据库应用,这些设计模式都没有涉及到。数据映射模式使您能更好的组织你的应用程序与数据库进行交互。 下面我将用实际代码说明,如果一个表发生变动。我们要修改客户端代码就可以了。特别是游戏项目,需求经常可能会经常变动。修改表结构,可能引起大片代码的改动。 首先我…

    Linux干货 2015-04-07