week 4

1.定義一個對所有用戶都生效的命令別名,例如:lftps='ftp 172.168.0.1/pub'

想要對所有用戶永久生效需要把alias命令寫入到/etc/profile文件中:
alias lftps='ftp 172.168.0.1/pub'

2.顯示/etc/passwd文件中不以/bin/bash結尾的行

grep -v "/bin/bash$" /etc/passwd

3.找出/etc/passwd文件中,包含二位數字或者三位數的行。

grep "\<[[:digit:]]\{2,3\}\>" /etc/passwd
grep -E "\<[0-9]{2,3}\>" /etc/passwd
egrep "\<[[:digit:]]{2,3}\>" /etc/passwd

4.顯示/proc/meminfo文件中以大寫或小寫S開頭的行;用三種方式實現

grep -i ^s /proc/meminfo
grep "^[sS]" /proc/meminfo
egrep "^(s|S)" /proc/meminfo

5.使用echo輸出一個絕對路徑,使用egrep取出路徑名,類似執行dirname /etc/passwd的結果

echo /etc/passwd |egrep -o ".*/\<"

6.找出ifconfig中的ip地址。要求結果只顯示IP地址

ifconfig | grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"
ifconfig | egrep -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"

7.vim定製自動縮進四個字符

/etc/vimrc文件添加:
set tabstop=4

8.編寫腳本,實現自動添加三個用戶,並計算這三個用戶的uid之和

[root@www ~]# vim uid_sum.sh
#!/bin/bash
id_sum=0
[ $# -lt 3 ] && echo "請輸入三個用戶:" && exit 1
for i in $* ;do
    useradd $i && echo "${i}創建成功"
    id_num=$(id -u $i)
    id_sum=$[${id_sum}+${id_num}]
done
echo "三個用戶uid之和爲: ${id_sum}"

[root@www ~]# bash uid_sum.sh us1 us2 us3
us1創建成功
us2創建成功
us3創建成功
三個用戶uid之和爲: 3039

9.find用法已經常用用法的實例演示。

find命令:

概述:find用於文件查找,它提供了非常多的查找條件,功能強大,可以通過遍歷指定起始路徑完成文件查找

用法:

find [OPTIONS] [path...] [expression] [action]

path: 查找起始路徑,需要指定搜索目標起始路徑,默認爲當前目錄

expression: 查找條件可以根據文件名、大小、類型、從屬關係、權限等標準進行,默認爲找出指定路徑下的所有文件

action:處理動作,對符合條件的文件做出的操作,例如刪除等,默認爲輸出至標準輸出

常用用法:

(1). 根據文件名查找:

    -name  "pattern" //根據文件名查找(精確查找)
    -iname "pattern" //根據文件名查找,但是不區分大小寫
    支持glob風格的通配符:
    *, ?, [], [^]
    例:find /tmp -name "[ab]*"  查找/tmp目錄下名稱包含ab任意字符的文件

(2). 根據文件從屬關係查找:

    -user     //根據屬主來查找文件;  find /var/log -user root  -ls
    -group    //根據屬組來查找文件;  find /var/log -group root  -ls
    -uid UID  //查找屬主指定的UID的所有文件; find /tmp -uid 500 
    -gid GID  //查找屬組指定的GID的所有文件; find  /tmp  -gid  1000 
    -nouser   //查找沒有屬主的文件;  find  /tmp -nouser
    -nogroup  //查找沒有屬組的文件;  find  /tmp -nogroup

(3). 根據文件類型查找:

 -type TYPE:
    f: 普通文件
    d: 目錄文件
    l: 符號鏈接文件
    b: 塊設備文件
    c: 字符設備文件
    p: 管道文件
    s: 套接字文件
例:find /tmp -type f  查找/tmp目錄下的普通文件

(4). 根據文件的大小查找:

-size [+|-]#UNIT
常用單位:k, M, G

find  /tmp  -size   2M           //查找在/tmp 目錄下等於2M的文件
find  /tmp  -size  +2M           //查找在/tmp 目錄下大於2M的文件
find  /tmp  -size  -2M           //查找在/tmp 目錄下小於2M的文件

(5). 根據時間戳查找:

以“天”爲單位:
 -atime  [+|-]#
例: find  /tmp  –atime  +5           //表示查找在五天內沒有訪問過的文件
    find  /tmp  -atime  -5            //表示查找在五天內訪問過的文件
 -mtime
 -ctime

以“分鐘”爲單位:
 -amin
 -mmin
 -cmin

(6). 根據文件權限查找文件

-perm  [/|-]mode
    mode:精確權限匹配;
    /mode:任何一類用戶(u,g,o)的權限中的任何一位(r,w,x)符合條件即滿足;9位權限之間存在“或”關係;
    -mode:每一類用戶(u,g,o)的權限中的每一位(r,w,x)同時符合條件即滿足;9位權限之間存在“與”關係;

find  /tmp  -perm  755           //查找在/tmp目錄下權限是755的文件
find  /tmp  -perm  +222          //表示只要有一類用戶(屬主,屬組,其他)的匹配寫權限就行
find  /tmp  -perm  -222          //表示必須所有類別用戶都滿足有寫權限

(7). 組合條件

與:-a, 默認組合邏輯;
或:-o
非:-not, !

處理動作:

-print      //默認的動作輸出至標準輸出;
-ls         //查找到後用"ls -l"命令顯示出來;
-delete     //刪除查找到的文件;
-fls /PATH/TO/SOMEFILE      //把查找到的所有文件的長格式信息保存至指定文件中;
-ok COMMAND {} \;           //對查找到的每個文件執行由COMMAND表示的命令;每次操作都由用戶進行確認;
-exec COMMAND {} \;         //對查找到的每個文件執行由COMMAND表示的命令;

例:find /tmp -atime +7 –exec rm –rf {} \;  //刪除查找到的超過7天沒有訪問過文件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章