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 'n;d' /etc/fstab >/tmp/fstab.3
5、echo一個文件路徑給sed命令,取出其基名;進一步地,取出其路徑名;
# echo /etc/fstab | sed -r 's@(/.*/)@@g' #"/etc/sysconfig/qq" | sed 's@[^/]\+/\?$@@'
6、統計指定文件中所有行中每個單詞出現的次數;
# awk -F: '{for(i=1;i<=NF;i++){count[$i]++}}END{for(i in count) {print i,count[i]}}' /etc/passwd
7、統計當前系統上所有tcp連接的各種狀態的個數;
# netstat -nat| awk '{print $6}' |sort | uniq -c
8、統計指定的web訪問日志中各ip的資源訪問次數:
# awk '{ip[$1]++}END{for(i in ip) {print i,ip[i]}}' /var/log/httpd/access_log-20161023
9、寫一個腳本:定義一個數組,數組元素為/var/log目錄下所有以.log結尾的文件的名字;顯示每個文件的行數;
#!/bin/bash # filelist=(/var/log/*.log) for i in $(seq 0 $[${#filelist[@]}-1]) do wc -l ${filelist[i]} done
10、寫一個腳本,能從所有同學中隨機挑選一個同學回答問題;進一步地:可接受一個參數,做為要挑選的同學的個數;
#!/bin/bash # for i in {1..100};do k=$i-1 stud[$k]=boy_$i done a=$[$RANDOM % 100] echo this time phick student is :${stud[a]}
進一步地:可接受一個參數,做為要挑選的同學的個數;
#!/bin/bash # for i in {1..100};do k=$i-1 stud[$k]=boy_$i done num=$1 for a in $(seq 1 $num);do a=$[$RANDOM % 100] echo ${stud[a]} done
11、授權centos用戶可以運行fdisk命令完成磁盤管理,以及使用mkfs或mke2fs實現文件系統管理;
centos ALL=(root) NOPASSWD:/sbin/fdisk, /sbin/mke2fs, /sbin/mkfs
12、授權gentoo用戶可以運行邏輯卷管理的相關命令;
gentoo ALL=(root) lvm
13、基于pam_time.so模塊,限制用戶通過sshd服務遠程登錄只能在工作時間進行;
(1).# vim /etc/pam.d/sshd 在account required pam_nologin.so上插入一行: account required pam_time.so (2).編輯pam_time.so模塊的配置文件 # vim /etc/security/time.conf *;*;*;MoTuWeThFr0900-1800
14、基于pam_listfile.so模塊,定義僅某些用戶,或某些組內的用戶可登錄系統;
創建一個用戶的列表文件,例如/etc/sshd_userlist,然后編輯文件 root centos gentoo 然后修改文件的權限和屬主 # chmod 600 /etc/sshd_userlist # chown root /etc/sshd_userlist 再編輯/etc/pam.d/sshd文件,加入以下一行內容: auth required pam_listfile.so item=user sense=allow file=/etc/sshd_userlist onerr=succeed
原創文章,作者:N21-沉舟,如若轉載,請注明出處:http://www.www58058.com/57424
可以總結一下awk和sed