馬哥linux作業--第四周
阿新 • • 發佈:2018-12-02
處理動作 默認 第四周 lob 信息 追加內容 bar 刪除 pri Q1:定義一個對所有用戶都生效的命令別名,例如:Q2:顯示
Q3:找出
Q4:顯示
Q5:使用
Q6:找出
lftps=‘lftp 172.168.0.1/pub
編輯
/etc/bashrc
文件,在最後一行追加內容 "lftps=‘lftp 172.168.0.1/pub
",保存後執行source /etc/bashrc
Q2:顯示/etc/passwd
文件中不以/bin/bash
結尾的行
grep -v ".+/bin/bash" /etc/passwd
Q3:找出/etc/passwd
文件中,包含二位數字或者三位數字的行。
egrep "\b[[:digit:]]{2,3}\b" /etc/passwd
Q4:顯示/proc/meminfo
文件中以大寫或小寫S
開頭的行;用三種方式實現
egrep -i "^s" /proc/meminfo
egrep "^[s|S].*" /proc/meminfo
sed -n "/^[s|S]/p" /proc/meminfo
sed "/^[s|S]/! d" /proc/meminfo
Q5:使用echo
輸出一個絕對路徑,使用egrep
取出路徑名,類似執行dirname /etc/passwd
的結果
echo /etc/passwd | egrep -o ‘^/.+/‘
Q6:找出ifconfig
中的ip地址。要求結果只顯示IP地址。
ifconfig | egrep -o "(([[:digit:]]{1,2}|1[[:digit:]]{2}|2[0-5]{2})\.){3}([[:digit:]]{1,2}|1[[:digit:]]{2}|2[0-5]{2})"
Q7:vim定制自動縮進四個字符
編輯
/etc/vimrc
文件,追加如下內容set ai set ts=4
Q8:編寫腳本,實現自動添加三個用戶,並計算這三個用戶的uid之和。
#! /usr/bin/env bash sum=0 for uname in user1 user2 user3; do id $uname &> /dev/null && echo "$uname exists" || useradd $uname uid=$(id -u $uname) sum=$[$sum+$uid] done echo "uid sum = $sum"
Q9:find用法及常用用法的實例演示
- 常用用法:
find path 查找條件 處理動作
查找條件(可組合使用):
- -name string:根據文件名精確查找,可用glob通配符。
- -iname string:不區分大小寫的
-name
。- -regex PATTERN:根據正則查找,匹配範圍是整個路徑,比如要查找
./fubar3
,應該用.*bar.
或.*b.*3’
,而不是f.*r3
。- -user USERNAME/UID:查找指定屬主的文件。
- -group GNAME/GID:查找指定屬組的文件。
- -uid UID:查找指定屬主的文件
- -gid GID:查找指定屬組的文件。
- -nouser:查找沒有屬主的文件。
- -nogroup:查找沒有屬組的文件。
- -type [fdcblps]:根據文件類型查找。
- -size [+-]n:根據文件大小查找,可用單位
[bcwkMG]
;+
表示大於,-
表示小於,不加表示精確匹配(也沒那麽精確,10M表示9-10M都符合條件)- -mtime [+-]days:
-
表示days
內修改過,+
表示days
前修改過,不加表示正好在days
修改過。- -ctime [+-]days:改變時間,
+-
含義同-mtime
。- -atime [+-]days:訪問時間,
+-
含義同-mtime
。- -mmin n:
n分鐘
前修改過文件內容,- -cmin n:
n分鐘
前文件改變過。- -amin n:
n分鐘
前文件被訪問過。- -perm [=-/] MODE:按權限查找,
-
表示文件權限是MODE
超集,/
和+
表示權限中只要有一位能匹配就符合,不指定任何符號表示精確匹配。查找條件組合:
- -a:與條件
- -o:或條件
- -not:取反
處理動作
- -print:默認動作,打印結果到標準輸出。
- -ls:以類似
ls -l
的格式打印每個文件的信息。- -delete:刪除文件。
- -fls file:類似`-ls,但將結果保存到指定文件中。
- -ok COMMAND {};:交互模式執行指定命令,
{};
是固定寫法,表示文件名占位符。- -exec COMMAND {};:非交互模式執行指定命令,
{};
是固定寫法,表示文件名占位符。- 常用示例(引用課堂上的練習)
- 查找
/var
目錄下屬主為root
,且屬組為find /var -user root -group mail
- 查找
/usr
目錄下不屬於root
,bin
或hadoop
的所有文件或目錄;用兩種方法
find /usr -not -user root -not -user bin -not -user hadoop
find /usr -not \( -user root -o -user bin -o -user hadoop \)
- 查找
/etc
目錄下最近一周內
其內容修改過,且屬主不是root
用戶也不是hadoop
用戶的文件或目錄:find /etc -mtime 7 -not -user root -not -user hadoop
- 查找當前系統上沒有
屬主或屬組
,且最近一周內
曾被訪問過的文件或目錄:find / \( -nouser -o -nogroup \) -atime -7
- 查找
/etc
目錄下大於1M
且類型為普通文件
的所有文件:find /etc -size +1M -type f
- 查找
/etc
目錄下所有用戶
都沒有寫權限的文件:find /etc -not -perm +222 -type f
- 查找
/etc
目錄至少有一類用戶沒有執行權限的文件:find /etc -not -perm -111 -type f
- 查找
/etc/init.d/
目錄下,所有用戶都有執行權限,且其它用戶有寫權限的所有文件:find /etc/init.d -perm -113 -type f
馬哥linux作業--第四周