天天看點

檔案查找及程序

檔案查找:;

locate ,find

locate,非實時,非精确,快速

find,實時,精确,慢速

#makewhatis

#whatis

#locate keyword

locate -c 統計行

-n 顯示前n行

如:

檔案查找及程式

find :

criteria:

-name “”

支援globbing方式的檔案名通配

#find /etc -name "passwd*"

#find /etc -name "passwd?"

#find /etc -name "*passwd*"

檔案查找及程式

-iname ""  不區分檔案中字母的大小寫

 -regex "pattern"

-user uid

# find /tmp -user redhat

# ls -l `find /tmp -user redhat`

-group gid

-uid uid

-gid gid

-nouser

-nogroup

-type

f d l b c p s

# find /tmp -type s

組合條件:

#

-a與

-o或

-not非

非優先級最高>與>或

-size #

      10M

      -10M

      +10M

-atime # 3天

      -3

      +3

-mtime

-ctime

-amin

-mmin

-cmin

-perm 755

     +755/755其中任何一個使用者的權限 任何一類使用者某一個權限位符合條件 

     -755 每一類使用者有一個權限符合都符合條件 所有類别使用者的所有權限位都符合條件

#find /tmp -not -user redhat

ctrl+a 到行首

ctrl+e 到行尾

ctrl+u删除光标到行首的内容

ctrl+k 删除光标到行尾的内容

ctrl+l;清屏

action:

 -print

 -ls

  -ok

  -exec

   -exec rm {} \;

    -exec mv {} {}.txt \;

1、查找/var目錄下屬主為root并且屬組為mail的所有檔案;

檔案查找及程式

2、查找/usr目錄下不屬于root,bin,或student的檔案;

檔案查找及程式

3、查找/etc目錄下最近一周内内容修改過且不屬于root及student使用者的檔案;

檔案查找及程式

4、查找目前系統上沒有屬主或屬組且最近1天内曾被通路過的檔案,并将其屬主屬組均修改為root;

檔案查找及程式

5、查找/etc目錄下大于1M的檔案,并将其檔案名寫入/tmp/etc.largefiles檔案中;

檔案查找及程式

6、查找/etc目錄下所有使用者都沒有寫權限的檔案,顯示出其詳細資訊;

 find /etc -not -perm /222 -ls

檔案查找及程式

break

中斷循環,而後執行循環後面的語句:

continue

中斷目前這一次循環,提前進入下一次循環

寫一個腳本,完成以下功能:

1、提示使用者輸入一個使用者名;

2、顯示一個菜單給使用者,形如:

U|u  show UID

G|g  show GID

S|s  show SHELL

Q|q  quit

3、提醒使用者選擇一個選項,并顯示其所選擇的内容;

如果使用者給的是一個非上述所提示的選項,則提醒使用者給出的選項錯誤,并請其重新選擇後執行;

檔案查找及程式

寫一個腳本:

1、判斷一個指定的腳本是否有文法錯誤;如果有錯誤,則提醒使用者鍵入Q或者q無視錯誤并退出,其它任何鍵可以通過vim打開這個指定的腳本;

2、如果使用者通過vim打開編輯後儲存退出時仍然有錯誤,則重複第1步中的内容;否則,就正常關閉退出。

檔案查找及程式

程序管理:process,instance

pc,cpu,memory

cpu timeslice,時間片

memory,線性記憶體

mmu

pid

ppid 父程序

init ,1,fork

程序狀态:

running

ready(runnable)就緒

sleep

     interruptable

     uninterruptable(I/)

stop: 停止

zombie:僵死

ppid收屍 ppid結束 pid僵死

pstree

ps :顯示目前程序;前台程序。

   -aux

   a 跟終端有關的程序

   x 跟終端無關的程序

   ax 所有程序

   u 以使用者為類别分類

 S 睡眠态可中斷

R運作态

D不可中斷的睡眠态

T停止态

z僵死态

<:高優先級的程序

s:會話程序的上司者

N:低優先級的程序

l:多線程的程序

+:前台程序

ps -ejh

ps -axjf 顯示父子程序清單

ps axo pid ,tty 顯示自定義格式

pgrep

 -U uid

 -G gid

 -t term 終端有關的程序

 -P ppid 父程序的子程序

pgrep pattern # pgrep httpd

pidof 檢視程序的Id号

#pidof httpd

kill -l 檢視信号

man 7 singal

signal:

1)SIGHUP 讓某程序或服務重讀其配置檔案卻不用重新開機

2)sigint ctrl+c 讓某個程序中斷

9)sigkill 殺死某程序 

15)sigterm 終止程序

18sigcont繼續

19)sigstop 停止

#kill -sighup大寫 pid

#killall - 15 httpd(command)

#killall -sigkill command

# pkill -signal [options] pattern

process ,優先級

靜态優先級 動态優先級

靜态優先級可手動調整

I/o bound

cpu bound

nice值:-20--19;40個

100-139

如)0:120

-5 115

通過調整nice值 調整優先級

普通使用者隻能調高自己的優先級

#nice nice -n command  啟動時賦予的nice值# ps -eo nice,comm,pid

#renice # pid

作業,程序

前台程序:

執行開始後結束之前始終占據了指令提示符的程序

背景程序

當程序開始後會立即釋放指令提示符,無論此程序是否結束

前台到背景:ctrl+z

背景到前台: fg

檢視目前所有在背景的程序清單jobs

fg 帶+号預設調出

fg %n #fg %2

bg %n 在背景運作

kill %n 終止

nohup command 可讓此程序和終端沒關系

程序檢視指令:

top

top -d n 延遲多少秒鐘

top -b -n 3

-b 批處理模式

-n 處理幾次

繼續閱讀