首页 > 代码库 > 第五周作业
第五周作业
1、显示当前系统上root、fedora或user1用户的默认shell;
grep -E ‘^root|fedora|allan:‘ /etc/passwd |cut -d: -f1,7 #显示root,allan默认shell
root:/bin/bash
allan:/bin/bash
2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello();
egrep ‘[_[:alpha:]]+\(\)‘ /etc/rc.d/init.d/functions
checkpid() {
__pids_var_run() {
__pids_pidof() {
daemon() {
killproc() {
pidfileofproc() {
pidofproc() {
status() {
echo_success() {
echo_failure() {
echo_passed() {
echo_warning() {
update_boot_stage() {
success() {
failure() {
passed() {
warning() {
action() {
strstr() {
is_ignored_file() {
is_true() {
is_false() {
apply_sysctl() {
3、使用echo命令输出一个绝对路径,使用grep取出其基名;
echo ‘/etc/networks‘ | egrep -o ‘[[:alpha:]]+/?$‘ | cut -d/ -f1
networks
扩展:取出其路径名
echo ‘/etc/networks‘ | egrep -o ‘.*/‘
/etc/
4、找出ifconfig命令结果中的1-255之间数字;
ifconfig | egrep ‘\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>
inet 192.168.113.128 netmask 255.255.255.0 broadcast192.168.113.255
inet6 fe80::20c:29ff:fe58:9f08 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:58:9f:08 txqueuelen 1000 (Ethernet)
RX packets 1232 bytes 110338 (107.7 KiB)
TX packets 877 bytes 95121 (92.8 KiB)
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
5、挑战题:写一个模式,能匹配合理的IP地址;
((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
6、挑战题:写一个模式,能匹配出所有的邮件地址;
var reEmail=/^(?:\w+\.?)*\w+@(?:\w+\.?)*\w+$/;
7、查找/var目录下属主为root,且属组为mail的所有文件或目录;
find /var/ -user root -a -group mail -ls
16819288 4 drwxrwxr-x 2 root mail 4096 Aug 29 11:30 /var/spool/mail
8、查找当前系统上没有属主或属组的文件;
find / -nouser -a -nogroup -ls
find: ‘/proc/3426/task/3426/fd/6’: No such file or directory
find: ‘/proc/3426/task/3426/fdinfo/6’: No such file or directory
find: ‘/proc/3426/fd/6’: No such file or directory
find: ‘/proc/3426/fdinfo/6’: No such file or directory
进一步:查找当前系统上没有属主或属组,且最近3天内曾被访问过的文件或目录;
find / -nouser -a -nogroup -a -atime -3 -exec stat {} \;
find: ‘/proc/3433/task/3433/fd/6’: No such file or directory
find: ‘/proc/3433/task/3433/fdinfo/6’: No such file or directory
find: ‘/proc/3433/fd/6’: No such file or directory
find: ‘/proc/3433/fdinfo/6’: No such file or directory
9、查找/etc目录下所有用户都有写权限的文件;
find /etc -perm -222 -ls>/tmp/findperm
10、查找/etc目录下大于1M,且类型为普通文件的所有文件;
find /etc/ -size +1M -a -type f -exec ls -lh {} \;
-r--r--r--. 1 root root 6.7M Aug 12 14:11 /etc/udev/hwdb.bin
-rw-r--r--. 1 root root 3.7M Nov 21 2015 /etc/selinux/targeted/policy/policy.29
11、查找/etc/init.d/目录下,所有用户都有执行权限,且其它用户有写权限的文件;
find /etc/init.d/ -perm -113 -ls
12、查找/usr目录下不属于root、bin或hadoop的文件;
find /usr/ -not \( -user root -o -user bin -o -user hadoop \) -ls
462063 0 drwx------ 2 polkitd root 6 Jun 10 2014 /usr/share/polkit-1/rules.d
26046807 16 -rwsr-sr-x 1 abrt abrt 15336 Dec 1 2015 /usr/libexec/abrt-action-install-debuginfo-to-abrt-cach
13、查找/etc/目录下至少有一类用户没有写权限的文件;
find ./ -not -perm -222 -ls
25165953 4 dr-xr-x--- 2 root root 4096 Aug 30 12:03 ./
26768063 4 -rw-r--r-- 1 root root 18 Dec 29 2013 ./.bash_logout
26870528 4 -rw-r--r-- 1 root root 176 Dec 29 2013 ./.bash_profile
26870529 4 -rw-r--r-- 1 root root 176 Dec 29 2013 ./.bashrc
26870530 4 -rw-r--r-- 1 root root 100 Dec 29 2013 ./.cshrc
26870531 4 -rw-r--r-- 1 root root 129 Dec 29 2013 ./.tcshrc
26873169 4 -rw------- 1 root root 1548 Aug 12 13:50 ./anaconda-ks.cfg
26873181 12 -rw------- 1 root root 11886 Aug 29 16:52 ./.bash_history
26880279 0 -rw-r--r-- 1 root root 0 Aug 30 12:03 ./findnouser
14、查找/etc目录下最近一周内其内容被修改过,且不属于root或hadoop的文件;
find ./ -mtime -7 -a -not \( -user root -o -user hadoop \) -ls
第五周作业