- cp [OPTION]... SOURCE(原文件)... DIRECTORY(目录)
- sed [options] ‘command‘ file(s)
-i∶直接修改读取的档案内容,而不是由萤幕输出。
- vi中的末行模式:
#,+#从左侧#表示的行起始,加上右侧#表示的行数;
%:全文
s:在末行模式下完成查找替换操作
s/要查找的内容/替换为的内容/修饰符
要查找的内容:可使用模式
替换为的内容:不能使用模式,但可以使用\1,\2,...等后向引用符号;还可以使用"g"引用前面查找时查找到的整行内容;
- crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]
-e [UserName]: 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
-r [UserName]: 删除目前的时程表
-l [UserName]: 列出目前的时程表
-v [UserName]:列出用户cron作业的状态
crontab -e
# 此时会进入 vi 的编辑画面让您编辑工作!注意到,每项工作都是一行。
#分 时 日 月 周 |<==============任务的完整命令行
* */2 */1 * * grep "^S" /proc/meminfo
- cut [OPTION]... [FILE]...
-d DELIMITER: 指明分隔符
-f FILEDS:
#: 第#个字段
#,#[,#]:离散的多个字段,例如1,2,4
#-#:连续的多个字段,例如1-6
1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;
- [[email protected]ost ~]# cp /etc/rc.d/rc.sysinit /tmp/
- [[email protected] ~]# sed -i ‘s/\(^[[:space:]]\)/#\1/g‘ /tmp/rc.sysinit
|
- [[email protected] ~]# cp /etc/rc.d/rc.sysinit /tmp/
- [[email protected] ~]# vi /tmp/rc.sysinit
- 在末行模式下输入
- :%s/^[[:space:]]/#&/g
|
2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符;
- [[email protected] ~]# cp /boot/grub/grub.conf /tmp/
- [[email protected] ~]# sed -i ‘s/^[[:space:]]\+//g‘ /tmp/grub.conf
|
- [[email protected] ~]# cp /boot/grub/grub.conf /tmp/
- [[email protected] ~]# vi /tmp/grub.conf
- 在末行模式下输入
- :s/^[[:space:]]\+//g
|
3、删除/tmp/rc.sysinit文件中的以#开头,且后面跟了至少一个空白字符的行行的#和空白字符
- [[email protected] ~]# sed -i ‘s/^#[[:space:]]\+//g‘ /tmp/rc.sysinit
|
- [[email protected] ~]# vi /tmp/rc.sysinit
- 在末行模式下输入
- :%s/^#[[:space:]]\+//g
|
4、为/tmp/grub.conf文件中前三行的行首加#号;
- [[email protected] ~]# sed -i ‘1,+2s/^/#&/g‘ /tmp/grub.conf
|
- [[email protected] ~]# vi /tmp/grub.conf
- 在末行模式下输入
- :1,+2s/^/#&/g
|
5、将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改为1;
- [[email protected] /]# sed -i ‘/enabled/s/0/1/g;/gpgcheck/s/0/1/g;‘ /etc/yum.repos.d/CentOS-Media.repo
|
- [[email protected] ~]# vi /etc/yum.repos.d/CentOS-Media.repo
- 在末行模式下输入
- :%s/enabled=0/enabled=1/g
:%s/gpgcheck=0/gpgcheck=1/g
|
6、每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形如etc-201608300202
- [[email protected] /]# cat /do/crond-shell.sh
#!/bin/bash
cd /
tar zcf /backup/etc-`date +\%Y\%m\%d\%H\%M` ./etc > /dev/null 2>&1
- [[email protected] ~]# chmod +x /do/crond-shell.sh
- [[email protected] /]# crontab -e
crontab: installing new crontab * */4 * * * sh /do/crond-shell.sh
|
[[email protected] /]# crontab -e crontab: no changes made to crontab * */4 * * * cp -r /etc/ /backup/etc-`date +%Y%m%d%H%M` |
7、每周2,4,6备份/var/log/messages文件至/backup/messages_logs/目录中,保存的文件名形如messages-20160830
- [[email protected] /]# cat /do/week-shell.sh
#!/bin/bash
cd /
tar zcf /backup/messages-‘date+%Y%m%d‘ ./var/log/messages > /dev/null 2>&1
- [[email protected] ~]# chmod +x /do/crond-shell.sh
- [[email protected] /]# crontab -e
crontab: no changes made to crontab
* * * * */2,4,6 /do/week-shell.sh > /dev/null 2>&1
|
- [[email protected] /]# crontab -e
crontab: no changes made to crontab
* * * * */2,4,6 cp -r /var/log/messages /backup/messages_logs/messages-`date +%Y%m%d`
|
8、每天每两小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/stats/memory.txt文件中
[[email protected] /]# crontab -e
crontab: no changes made to crontab
* */2 */1 * * grep "^S" /proc/meminfo >> /stats/memory.txt
|
9、工作日的工作时间内,每两小时执行一次echo "howdy"
[[email protected] /]# crontab -e
crontab: no changes made to crontab
* 9-18/2 * * */1-5 echo "howdy" |
脚本编程练习
10、创建目录/tmp/testdir-当前日期时间;
- [[email protected] /]# cat mkdir.sh
#!/bin/bash mkdir -pv /tmp/testdir-$(date +%F-%H-%M-%S)
- [[email protected] /]# chmod +x mkdir.sh
- [[email protected] /]# ./mkdir.sh
mkdir: 已创建目录 "/tmp/testdir-2016-08-16-22-50-03
|
11、在此目录创建100个空文件:file1-file100
- [[email protected] testdir-2016-08-16-22-50-03]# cat mkdir1-100.sh
#!/bin/bash for i in {1..100};do mkdir file$i done
- [[email protected] testdir-2016-08-16-22-50-03]# chmod +x mkdir1-100.sh
- [[email protected] testdir-2016-08-16-22-50-03]# ./mkdir1-100.sh
- [[email protected] testdir-2016-08-16-22-50-03]# ls
file1 file16 file23 file30 file38 file45 file52 file6 file67 file74 file81 file89 file96 file10 file17 file24 file31 file39 file46 file53 file60 file68 file75 file82 file9 file97 file100 file18 file25 file32 file4 file47 file54 file61 file69 file76 file83 file90 file98 file11 file19 file26 file33 file40 file48 file55 file62 file7 file77 file84 file91 file99 file12 file2 file27 file34 file41 file49 file56 file63 file70 file78 file85 file92 mkdir1-100.sh file13 file20 file28 file35 file42 file5 file57 file64 file71 file79 file86 file93 file14 file21 file29 file36 file43 file50 file58 file65 file72 file8 file87 file94 file15 file22 file3 file37 file44 file51 file59 file66 file73 file80 file88 file95
|
12、显示/etc/passw d文件中位于第偶数行的用户的用户名;
- [[email protected] ~]# sed -n ‘p;n‘ /etc/passwd | cut -d: -f1
root daemon lp shutdown mail operator gopher nobody saslauth sshd mageia bash basher user1 hadoop
|
13、创建10用户user10-user19;密码同用户名;
[[email protected] ~]# cat /do/useradd.sh #!/bin/bash for i in {10..19};do if id user$i &>/dev/null;then echo "user$i exists." else useradd user$i if [ $? -eq 0 ];then echo "user$i" | passwd --stdin user$i &> /dev/null echo "Add user$i finished." fi fi done [[email protected] ~]# chmod +x /do/useradd.sh [[email protected] ~]# ../do/useradd.sh UserAdd user10 finish. UserAdd user11 finish. UserAdd user12 finish. UserAdd user13 finish. UserAdd user14 finish. UserAdd user15 finish. UserAdd user16 finish. UserAdd user17 finish. UserAdd user18 finish. UserAdd user19 finish |
14、在/tmp/创建10个空文件file10-file19;
[[email protected] home]# cat /do/file.sh #!/bin/bash for i in {10..19};do touch /tmp/file$i done [[email protected] home]# chmod +x /do/file.sh [[email protected] home]# ../do/file.sh [[email protected] home]# ll /tmp/ | grep ‘file‘ -rw-r--r--. 1 root root 0 8月 16 23:17 file10 -rw-r--r--. 1 root root 0 8月 16 23:17 file11 -rw-r--r--. 1 root root 0 8月 16 23:17 file12 -rw-r--r--. 1 root root 0 8月 16 23:17 file13 -rw-r--r--. 1 root root 0 8月 16 23:17 file14 -rw-r--r--. 1 root root 0 8月 16 23:17 file15 -rw-r--r--. 1 root root 0 8月 16 23:17 file16 -rw-r--r--. 1 root root 0 8月 16 23:17 file17 -rw-r--r--. 1 root root 0 8月 16 23:17 file18 -rw-r--r--. 1 root root 0 8月 16 23:17 file19 |
15、把file10的属主和属组改为user10,依次类推。
[[email protected] home]# cat /do/file-user.sh #!/bin/bash cd /tmp for i in {10..19};do chown user$i:user$i /tmp/file$i
done
[[email protected] home]# chmod +x /do/file-user.sh [[email protected] home]# ../do/file-user.sh
[[email protected] home]# ll /tmp/ | grep ‘file‘ -rw-r--r--. 1 user10 user10 0 8月 16 23:17 file10 -rw-r--r--. 1 user11 user11 0 8月 16 23:17 file11 -rw-r--r--. 1 user12 user12 0 8月 16 23:17 file12 -rw-r--r--. 1 user13 user13 0 8月 16 23:17 file13 -rw-r--r--. 1 user14 user14 0 8月 16 23:17 file14 -rw-r--r--. 1 user15 user15 0 8月 16 23:17 file15 -rw-r--r--. 1 user16 user16 0 8月 16 23:17 file16 -rw-r--r--. 1 user17 user17 0 8月 16 23:17 file17 -rw-r--r--. 1 user18 user18 0 8月 16 23:17 file18 -rw-r--r--. 1 user19 user19 0 8月 16 23:17 file19
|
时间: 2024-10-15 15:33:11