1、 總結sed和awk的詳細用法; 2、刪除/boot/grub/grub.conf文件中所有行的行首的空白字符; # sed 's@^[[:space:]]\+@@' /boot/grub/grub.conf 3、刪除/etc/fstab文件中所有以#開頭,后跟至少一個空白字符的行的行首的#和空白字符; # sed 's@^#[[:space:]]*@@' /etc/fstab 4、把/etc/fstab文件的奇數行另存為/tmp/fstab.3; # sed '1~2w /tmp/fstab.3' /etc/fstab 5、echo一個文件路徑給sed命令,取出其基名;進一步地,取出其路徑名; 取基名:echo "/etc/sysconfig/network-scripts/" | sed 's@^.*/\([^/]\+\)/\?$@\1@' 取路徑名:echo "/etc/sysconfig/network-scripts/" | sed 's@[^/]\+/\?$@@' 6、統計指定文件中所有行中每個單詞出現的次數; awk '{for(i=1;i<=NF;i++){count[$i]++}}END {for (i in count) {print i,count[i]}}' /etc/fstab 7、統計當前系統上所有tcp連接的各種狀態的個數; netstat -tan | awk '/^tcp\>/{state[$NF]++}END {for (i in state) {print i,state[i] }}' 8、統計指定的web訪問日志中各ip的資源訪問次數: awk '{ip[$1]++}END{for(i in ip) {print i,ip[i]}}' /var/log/httpd/access_log 9、寫一個腳本:定義一個數組,數組元素為/var/log目錄下所有以.log結尾的文件的名字;顯示每個文件的行數; #!/bin/bash declare -a files files=(/var/log/*.log) for i in `seq 0 $[${#files[@]}-1]`; do wc -l ${files[$i]} done 10、寫一個腳本,能從所有同學中隨機挑選一個同學回答問題;進一步地:可接受一個參數,做為要挑選的同學的個數; #!/bin/bash function duplicate() { #判斷是否重復選擇,如果重復在選一次,直到不重復 for ((j=$[${#student[@]}-2];j>=0;j--));do if [ ${student[$j]} -eq ${student[$i]} ] then student[$i]=$(($RANDOM % $a)) duplicate fi done } read -p "input the total student number,the first student no. is 0:" a total=($(seq 0 $[$a-1])) read -p "input how many student pick:" b if [ $b -gt $a ] then echo "pick tpo more student" elif [ $a -eq $b ] then echo "pick every student" else for ((i=0;i<$b;i++));do student[$i]=$(($RANDOM % $a)) duplicate echo ${student[$i]} done fi 11、授權centos用戶可以運行fdisk命令完成磁盤管理,以及使用mkfs或mke2fs實現文件系統管理; visudo User_Alias DISK_ADMINS = centos Cmnd_Alias DISK_COMMAND = /sbin/fdisk, /sbin/mkfs, /sbin/mke2fs DISK_ADMINS ALL=(root) NOPASSWD: DISK_COMMAND 12、授權gentoo用戶可以運行邏輯卷管理的相關命令; visudo User_Alias LVM_ADMINS = gentoo Cmnd_Alias LVM_COMMAND = /sbin/pv*, /sbin/vg*, /sbin/lv* LVM_ADMINS ALL=(root) NOPASSWD: LVM_COMMAND useradd centos echo "centos" | passwd --stdin centos useradd gentoo echo "gentoo" | passwd --stdin gentoo [centos@node6 ~]$ sudo -l 用戶 centos 可以在該主機上運行以下命令: (root) NOPASSWD: /sbin/fdisk, /sbin/mkfs, /sbin/mke2fs [gentoo@node6 ~]$ sudo -l 用戶 gentoo 可以在該主機上運行以下命令: (root) NOPASSWD: /sbin/pv*, /sbin/vg*, /sbin/vl* 13、基于pam_time.so模塊,限制用戶通過sshd服務遠程登錄只能在工作時間進行; [root@localhost ~]# vim /etc/pam.d/sshd account required pam_time.so [root@localhost ~]# vim /etc/security/time.conf *;*;*;MoTuWeThFr0900-1800#表示工作時間9點到下午6點允許訪問ssh 14、基于pam_listfile.so模塊,定義僅某些用戶,或某些組內的用戶可登錄系統;" [root@localhost ~]# vim /etc/sshd_userlist root centos gentoo [root@localhost ~]# chmod 600 /etc/sshd_userlist [root@localhost ~]# chown root /etc/sshd_userlist [root@localhost ~]# vim /etc/pam.d/sshd 添加 auth required pam_listfile.so item=user sense=allow file=/etc/sshd_userlist onerr=succeed
原創文章,作者:victorli88,如若轉載,請注明出處:http://www.www58058.com/72611
怎么沒有總結sed和awk的具體用法啊?