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