shell基础练习笔记

1.关闭不必要的服务
ntsysv chkconfig
必须开启的服务有: crond/messagebus/network/iptables/sshd/syslog/sysstat/snmpd
关闭不必要的服务脚本:
for i in `chkconfig --list |awk '/3:on/ {print $1}'|grep -v "crond\| messagebus\|sshd\|iptables\|network\|syslog\|snmpd\|sysstat"`; 
do  chkconfig --level 345 ${i} off; 
done
开启需要的服务脚本:
for i in "crond" "messagebus" "iptables" "network" "snmpd" "sshd"  "syslog" "sysstat";
do  chkconfig --level 345 ${i} on; 
done
3.检查服务的基本配置
dmidecode | grep "Product" | head -n 1  检查服务器型号
cat /proc/cpuinfo | grep name | cut -f2 -d: |uniq -c 检查CUP信号
free -m | grep Mem | awk '{print $2}'
ifconfig | grep "inet addr" | awk -F: '{print $2}'| awk '{print $1}'
4.系统优化修改/etc/sysctl.conf文件,sysctl -p 是修改生效;
关闭不必要的服务使用ntsysv;查看自启动服务chkconfig;
5.修改系统的文件句柄书/etc/security/limits.conf   确认句柄允许数据ulimit -n
6.修改sshd监听端口,并禁止密码验证登录配置文件/etc/ssh/sshd_config

7.账号安全,清除除root用户之外的其他用户的登录权限

     #!/bin/bash

    for k in `cat /etc/passwd | grep -i "\/bin\/bash" | grep -v "root" | cut -d: -f1`;

    do

    usermod -s /sbin/nologin ${k};

    done

    更改root用户密码:

    echo "xxxxxxxx" >/root/tmp.txt   “xxxxxxxx”为设定的密码

    passwd root --stdin </root/tmp.txt ;rm �Cf /root/tmp.txt

8.查看系统的基本信息脚本

    #!/bin/bash

    dmidecode | grep "Product" | head -n 1

    cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

    free -m | grep Mem | awk '{print $2}'

    ifconfig | grep "inet addr" | awk -F: '{print $2}'| awk '{print $1}'

    route -n 

    cat /etc/issue | head -n 1

    uname -a

    df -h | awk '{print $1,$2}'

9.加载ext4模块

    modprobe ext4

    lsmod | grep ext4

    yum -y install e4fsprogs

10.统计登陆用户数

uptime | cut -d',' -f 2 | sed 's/^[[:space:]]*//g'

who | wc -l 

11.添加用户脚本

#!/bin/bash

id $1 >/dev/null 2>&1

if [ $? -eq 0 ];then

        echo "$1 is exsit!"

else

        useradd $1

        echo "123456" | passwd --stdin "$1" >/dev/null 2>&1

        if [ $? -eq 0 ];then

                echo "$1 create seccuss!"

        fi

fi

12.sed删除空行  

    sed '/^$/d' file

13.sed删除行首的空格

    sed -i 's/^[[:space:]]*//' filename
    sed -i 's/[[:space:]]*//g' filename  ##删除所有空格
    sed s/[[:space:]]//g filename
    #sed 's/^[ ]*//g' file
    #sed 's/^ *//g' file
    #sed 's/^[[:space:]]*//g' file

14.#删除所有行尾空字符

sed -i  's/[[:blank:]]+$//' filename

15.删除行的首数字

sed  -i 's/^[0-9]*//g' filename
sed 's#^[0-9]{1,} ##g'  filename
sed 's#^[0-9]* ##g'  filename

15.cat >>/etc/init.d/boot.local<<end    //end代表EOF(End Of File)

test

end

   注释:shell将分界符之后直至下一个同样的分界符之前的所有内容都作为输入,遇到下一个分界符,shell就知道输入结束了。上面那个cat命令就是把输入的内容追加到/etc/init.d/boot.local 文件

16.&& || 用法

&&  方式:command1 && command2

    如果command1执行成功,则执行command2

||  方式:command1 || command2

    如果command1执行失败,则执行command2

17.给某些行加注释:
sed 's/^[^#]/#&/' file.txt >output.txt  
注:
s是sed中的替换命令。
第一个^表示行首位置,[^#]表示非#号,合起来就表示要匹配不以#开头的行;后面用&来原封不动引用前面匹配到的行内容,在其前面加上#号。



本文出自 “咚咚的博客” 博客,谢绝转载!

你可能感兴趣的:(shell,练习)