linux练习

1.编写脚本/root/bin/backup.sh,可实现每日将/etc/目录备份到/root/etcYYYY-mm-dd中

  1. 编写脚本
[root@centos6 bin]vim backup.sh
#!/bin/bash
echo -e "\e[1;31mStart backup...\e[0m"   
sleep 2
cp -av /etc /root/etc`date +%F` &> /dev/null
echo -e "\e[1;31mBackup is finished\e[0m"
  1. 测试结果
[root@centos6 bin]backup.sh
Start backup...
Backup is finished
[root@centos6 bin]ll -hd /root/etc2019-02-13/
drwxr-xr-x. 125 root root 12K Feb 13 04:44 /root/etc2019-02-13/
[root@centos6 bin]ll -hd /etc
drwxr-xr-x. 125 root root 12K Feb 13 04:44 /etc

2.编写脚本/root/bin/disk.sh,显示当前硬盘分区中空间利用率最大的值

  1. 编写脚本
[root@centos6 bin]vim disk.sh
#!/bin/bash
df | grep -E "^/dev/s[hd][a-z]" | grep -oE ' [0-9]+'% | grep -oE '[0-9]+' | sort -nr | head -1
  1. 测试结果
[root@centos6 bin]disk.sh 
12
[root@centos6 bin]df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        48G  5.1G   41G  12% /
tmpfs           491M   80K  491M   1% /dev/shm
/dev/sda1       976M   35M  891M   4% /boot
/dev/sda3        29G   44M   28G   1% /data
/dev/sr1        3.7G  3.7G     0 100% /media/CentOS_6.9_Final_
/dev/sr0        2.1G  2.1G     0 100% /media/CentOS_6.9_Final

3.编写脚本/root/bin/nologin.sh和login.sh,实现禁止和允许普通用户登录系统

  1. 编写脚本
[root@centos6 bin]vim nologin.sh
[ ! -e '/etc/nologin' ] && touch /etc/nologin && echo "DenyAccountLogon"
[root@centos6 bin]vim login.sh 
#!/bin/bash
[ -e '/etc/nologin' ] && `rm -rf /etc/nologin` && echo "Allow login account"

2.测试结果

[root@centos6 bin]nologin.sh
DenyAccountLogon
[root@centos6 bin]ls /etc | grep nologin
nologin
[root@centos6 ~]ssh xm11211@192.168.48.128
xm11211@192.168.48.128's password: 
Connection closed by 192.168.48.128

[root@centos6 bin]login.sh
Allow login account
[root@centos6 bin]ls /etc | grep nologin
[root@centos6 bin]!ssh
ssh xm11211@192.168.48.128
xm11211@192.168.48.128's password: 
[xm11211@centos6 ~]

4.查找/var目录下不属于root、lp、gdm的所有文件

[root@centos6 ~]find /var -not  \( -user root -o -user lp -o -user gdm -o -type d \)  -ls
394626    4 -rw-r--r--   1 xm11211  xm11211        32 Dec 28 14:35 /var/cache/gdm/xm11211/dmrc
264307    4 -rw-------   1 rpc      rpc           852 Jan 27 13:32 /var/cache/rpcbind/rpcbind.xdr
264308    4 -rw-------   1 rpc      rpc           164 Jan 27 13:32 /var/cache/rpcbind/portmap.xdr
264350    4 -rw-------   1 postfix  postfix        33 Feb 15 10:43 /var/lib/postfix/master.lock
264544    4 -rw-r--r--   1 ntp      ntp             8 Feb 11 18:42 /var/lib/ntp/drift
...

5.统计/etc/init.d/functions文件中每个单词的出现次数,并排序(用grep和sed两种方法分别实现)

[root@centos6 ~]grep -Eow '[[:alpha:]]+' /etc/init.d/functions | sort | uniq -c | sort -n
61 return
65 echo
72 fi
77 then
83 if
...

[root@centos6 ~]sed -r 's/[^[:alpha:]]+/\n/g' /etc/init.d/functions | sort | uniq -c | sort -n
61 return
72 fi
73 echo
75 pid
77 then
83 if
...

6.利用sed 取出ifconfig命令中本机的IPv4地址

[root@centos7 ~]ifconfig | sed -r '2!d;s/.*inet (.*)  netmask.*/\1/' 
192.168.48.129
[root@centos6 ~]ifconfig | sed -r '2!d;s/.*r:(.*) B.*/\1/'
192.168.48.128 

7.在CentOS7上编译安装apache 2.4源码包,并启动此服务(最简化版,待完善)

1.关闭firewalld并设置开机禁止启动

[root@centos7 bin]systemctl stop firewalld
[root@centos7 bin]systemctl disable firewalld

2.关闭SElinux

[root@centos7 bin]setenforce 0
[root@centos7 bin]vim /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled

3.安装开发包组

[root@centos7 bin]yum groupinstall "development tools"

4.编译安装httpd

[root@centos7 ~]tar -xf httpd-2.4.38.tar.gz
[root@centos7 ~]cd httpd-2.4.38/
[root@centos7 httpd-2.4.38]./configure --help
`configure' configures this package to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
  -h, --help              display this help and exit
      --help=short        display options specific to this package
      --help=recursive    display the short help of all the included packages
  -V, --version           display version information and exit
  -q, --quiet, --silent   do not print `checking ...' messages
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for `--cache-file=config.cache'
  -n, --no-create         do not create output files
      --srcdir=DIR        find the sources in DIR [configure dir or `..']
[root@centos7 httpd-2.4.38]./configure --prefix=/app --sysconfdir=/etc/httpd22
[root@centos7 httpd-2.4.38]make -j 4 && make install

5.输出二进制程序

[root@centos7 httpd-2.4.38]vim /etc/profile.d/env.sh
PATH=/app/bin:$PATH
[root@centos7 httpd-2.4.38]. /etc/profile.d/env.sh

6.启动httpd

[root@centos7 httpd-2.4.38]apachectl start
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少位数字的文件或目录 显示/etc目录下以任意一位...
    Aubin阅读 1,814评论 0 2
  • 创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为"Gentoo Dis...
    Aubin阅读 5,105评论 0 2
  • 将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中 将当前系统登录用户的信息转...
    Aubin阅读 2,407评论 0 1
  • 1. 将当前系统登录用户的信息转换为大写后保存至/tmp/who.out文件中 2. 计算1+2+3+..+99+...
    xm11211阅读 373评论 0 0
  • Linux面试题 下面关于i节点描述错误的是?。i节点和文件是一一对应的i节点能描述文件占用的块数i节点描述了文件...
    01_小小鱼_01阅读 783评论 0 0