文件查找及進程

文件查找:;
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 處理幾次


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章