Linux基础练习题之(四)

时间:2023-02-23 12:12:57

Linux基础练习题

请详细总结vim编辑器的使用并完成以下练习题

1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;

使用vim实现

[root@bj-1-160-enzhi ~]# cp /etc/rc.d/rc.sysinit /tmp/
[root@bj-1-160-enzhi ~]# vim /tmp/rc.sysinit
# 在末行模式下输入
:% s@^\([[:space:]]\+\)@#\1@g

使用sed命令实现

[root@bj-1-160-enzhi ~]# sed -r 's@^([[:space:]]+)@#\1@gp' /tmp/rc.sysinit

2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符;

使用vim实现

:% s@^\([[:space:]]\+\)@@g

3、删除/tmp/rc.sysinit文件中的以#开头,且后面跟了至少一个空白字符的行行的#和空白字符

使用vim实现

:% s@^#[[:space:]]\+@@g

4、为/tmp/grub.conf文件中前三行的行首加#号;

使用vim实现

:1,3 s@^@#@g

使用sed命令实现

[root@bj-1-160-enzhi ~]# sed -n '1,3s@^@#@gp' /tmp/grub.conf
## grub.conf generated by anaconda
##
## Note that you do not have to rerun grub after making changes to this file

5、将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改为1;

[root@bj-1-160-enzhi ~]# sed -n -e 's@enabled=0@enabled=1@gp' -e 's@gpgcheck=0@gpgcheck=1@gp' /etc/yum.repos.d/CentOS-Media.repo
gpgcheck=1
enabled=1

6、每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形如etc-201504020202;

00 */4 * * * cd / && /bin/tar -Jcf /backup/etc-$(date +\%Y\%m\%d\%H\%M).tar.xz  etc/

7、每周2,4,6备份/var/log/messages文件至/backup/messages_logs/目录中,保存的文件名形如messages-20150402

00 00 * * 2,4,6 cd /var/log/ && tar -Jcf /backup/messages_logs/messages-$(date +\%Y\%m\%d).tar.xz messages

8、每天每两小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/stats/memory.txt文件中

00 */2 * * * /bin/grep "^S" /proc/meminfo > /stats/memory.txt

9、工作日的工作时间内,每两小时执行一次echo "howdy";

00 9-18/2 * * 1-5 echo "howdy"

10、创建目录/tmp/testdir-当前日期时间;

[root@bj-1-160-enzhi ~]# mkdir /tmp/testdir-$(date +%Y%m%d%H%M)

11、在此目录创建100个空文件:file1-file100;

[root@bj-1-160-enzhi ~]# touch  /tmp/testdir-201701172339/file{1..100}
You have new mail in /var/spool/mail/root
[root@bj-1-160-enzhi ~]# ls /tmp/testdir-201701172339/
file1    file15  file21  file28  file34  file40  file47  file53  file6   file66  file72  file79  file85  file91  file98
file10   file16  file22  file29  file35  file41  file48  file54  file60  file67  file73  file8   file86  file92  file99
file100  file17  file23  file3   file36  file42  file49  file55  file61  file68  file74  file80  file87  file93
file11   file18  file24  file30  file37  file43  file5   file56  file62  file69  file75  file81  file88  file94
file12   file19  file25  file31  file38  file44  file50  file57  file63  file7   file76  file82  file89  file95
file13   file2   file26  file32  file39  file45  file51  file58  file64  file70  file77  file83  file9   file96
file14   file20  file27  file33  file4   file46  file52  file59  file65  file71  file78  file84  file90  file97

12、显示/etc/passwd文件中位于第偶数行的用户的用户名;

[root@bj-1-160-enzhi ~]# awk -F: '{if(NR%2==0) print NR,$1}' /etc/passwd
2 bin
4 adm
6 sync
8 halt
10 uucp
12 games
14 ftp
16 dbus
18 abrt
20 postfix
22 ntp
24 tcpdump
26 avahi-autoipd
28 pulse
30 apache

[root@bj-1-160-enzhi ~]# sed -n '2~2p' /etc/passwd|cut -d: -f1
bin
adm
sync
halt
uucp
games
ftp
dbus
abrt
postfix
ntp
tcpdump
avahi-autoipd
pulse
apache