馬哥筆記07_01~~~07_04

vim 顯示行號:est numberlinux

也就顯示行號:vim ~/.vimrc正則表達式

添加:set nu數據庫

echo $1 使用空格隔開參數,vim

例如:echo user1,user2 中的「user1,user2」看作一個參數bash


例子:帶參數的sh腳本,!!!!(逗號隔開各參數)ide

運行格式:./SOMESHELL.sh OPTION1,OPTION2oop

例子功能:輸入用戶名,若是用戶存在,就顯示用戶已存在,若是用戶不存在,就差建立用戶,並用用戶名做爲密碼。測試

#!/bin/bashui

#spa

echo $1

 for I in `echo $1 | sed 's/,/ /g'`; do           ///////把逗號轉化爲空格;

  if id $I &> /dev/null; then

   echo "$I exists."

else

  useradd $I

  echo $I | passwd --stdin $I &> /dev/null

  echo "add $I finished."

fi

done


測試:

./addusertest.sh  user1,user2

組合條件測試

例子:讓某程序只識別q,Q,quit,Quit做爲退出命令的關鍵字

quitquit.sh

#!/bin/bash

#

if [ $1 == 'q' -o $1 == 'Q' -o $1 == 'Quit' -o $1 == 'quit' ];then

echo "quiting..."

  exit 0

else

  echo "Unknow commands."

fi

07_03

let I=$[ $I+1 ]

SUM = $ [$SUM+$I]

let SUM+=$I

let I+=1 至關於 let I++

同理:

-=

*=

/=

%=

declare -i EVENSUM = 0

declare -i ODDSUM = 0

grep,egrep,fgrep能夠用於文本查找

locate,find文件查找。

 locate命令,非實時查找。是根據全系統全系統文件數據庫進行(精確查找)。

linux天天會自動把本機全部信息放到數據庫中(何時存放,取決於你的任務計劃)。

手動執行更新文件數據庫的命令:

#updatedb

@@@須要很長時間來更新該文件數據庫,不過查找的速度很快。

find:實時、精確、慢(遍歷指定目錄中的全部文件完成查找,速度慢)(支持衆多查找標準)

find   查找路徑    查找標準  處理運做

@@@查找路徑省略後,默認當前目錄;    

@@@查找標準,默認爲指定目錄下的全部文件;

@@@處理運做 默認爲顯示;

示例:

find /etc -name 'passwd'

選項:

-name 按名字查找

-iname 不區分大小寫查找

-regex PATTERN:基於正則表達式查找            ??????????????

-user  UNAME:根據屬主查找

-group GROUPNAME:根據屬組查找

-uid UID:根據uid查找

-gid GID:根據GID查找

-nouser:查找無屬主文件

-nogroup:查找無屬組文件

-size:指定查找大小

 #K #M #G

-size [+|-] #K

(無單位的話默認字節)

例子:

find /etc  -name 'e*' -size +10k

查找/etc下大於10k的名字包含e的文件和文件夾

-type:

 f:普通文件

 d:目錄

 c:字符

 b:塊

 l:連接文件

 p:管道設備

 s:套接字設備

例子:find /etc -name 'e*' -type f

在etc內,查找名字包含e的普通文件。

一旦用戶被刪除,則以前屬於該用戶的文件都改爲屬於此用戶的ID號(UID)


例如:刪除hadoop用戶後用

find /tmp -uid 2003

☆組合條件查詢

-a且

-o或

-not非

例子:

找當前目錄下不是user1也不是user2的文件:

find ./ -not -user user1 -a -not -user user2

或者

find ./ -not\ (-user user1 -o -user user2)


@@@摩根定律:總體取反 等於單個取反  再把裏邊的符號反過來



07_04

特殊權限

passwd:s


SUID:

運行某些程序時,相應進程的屬主是程序文件自身的屬主,而不是啓動者。

SGID:

運行某些程序時,相應進程的屬組是程序文件自身的屬組,而不是啓動者所屬的基本組。

sticky:在一個公共目錄,每一個均可以建立文件,刪除掉本身的文件,但不能刪除別人的文件。

相關文章
相關標籤/搜索