1.常用指令
ls 顯示文件或目錄
-l 列出文件詳細信息l(list)
-a 列出當前目錄下所有文件及目錄,包括隱藏的a(all)
mkdir 創建目錄
-p 創建目錄,若無父目錄,則創建p(parent)
cd 切換目錄
touch 創建空文件
echo 創建帶有內容的文件。
cat 查看文件內容
cp 拷貝
mv 移動或重命名
rm 刪除文件
-r 遞歸刪除,可刪除子目錄及文件
-f 強制刪除
find 在文件系統中搜索某文件
wc 統計文本中行數、字數、字元數
grep 在文本文件中查找某個字元串
rmdir 刪除空目錄
tree 樹形結構顯示目錄,需要安裝tree包
pwd 顯示當前目錄
ln 創建鏈接文件
more、less 分頁顯示文本文件內容
head、tail 顯示文件頭、尾內容
ctrl+alt+F1 命令行全屏模式
2.系統管理命令
stat 顯示指定文件的詳細信息,比ls更詳細
who 顯示在線登陸用戶
whoami 顯示當前操作用戶
hostname 顯示主機名
uname 顯示系統信息
top 動態顯示當前耗費資源最多進程信息
ps 顯示瞬間進程狀態 ps -aux
查看目錄大小 -h /home帶有單位顯示目錄信息
df 查看磁碟大小 df -h 帶有單位顯示磁碟信息
ifconfig 查看網路情況
ping 測試網路連通
netstat 顯示網路狀態信息
man 命令不會用了,找男人 如:man ls
clear 清屏
alias 對命令重命名 如:alias showmeit="ps -aux" ,另外解除使用unaliax showmeit
kill 殺死進程,可以先用ps 或 top命令查看進程的id,然後再用kill命令殺死進程。
3.打包壓縮相關命令
tar: 打包壓縮
-c 歸檔文件
-x 壓縮文件
-z gzip壓縮文件
-j bzip2壓縮文件
-v 顯示壓縮或解壓縮過程 v(view)
-f 使用檔名
例:
tar -cvf /home/abc.tar /home/abc 只打包,不壓縮
tar -zcvf /home/abc.tar.gz /home/abc 打包,並用gzip壓縮
tar -jcvf /home/abc.tar.bz2 /home/abc 打包,並用bzip2壓縮
當然,如果想解壓縮,就直接替換上面的命令 tar -cvf / tar -zcvf / tar -jcvf 中的「c」 換成「x」 就可以了。
3.關機/重啟機器
shutdown
-r 關機重啟
-h 關機不重啟
now 立刻關機
halt 關機
reboot 重啟
4.Linux管道
將一個命令的標准輸出作為另一個命令的標准輸入。也就是把幾個命令組合起來使用,後一個命令除以前一個命令的結果。
例:grep -r "close" /home/* | more 在home目錄下所有文件中查找,包括close的文件,並分頁輸出。
5.Linux軟體包管理
dpkg(Debian Package)管理工具,軟體包名以.deb後綴。這種方法適合系統不能聯網的情況下。
比如安裝tree命令的安裝包,先將tree.deb傳到Linux系統中。再使用如下命令安裝。
sudo dpkg -i tree_1.5.3-1_i386.deb 安裝軟體
sudo dpkg -r tree 卸載軟體
註:將tree.deb傳到Linux系統中,有多種方式。VMwareTool,使用掛載方式;使用winSCP工具等;
APT(Advanced Packaging Tool)高級軟體工具。這種方法適合系統能夠連接互聯網的情況。
依然以tree為例
sudo apt-get install tree 安裝tree
sudo apt-get remove tree 卸載tree
sudo apt-get update 更新軟體
sudo apt-get upgrade
6.將.rpm文件轉為.deb文件
.rpm為RedHat使用的軟體格式。在Ubuntu下不能直接使用,所以需要轉換一下。
sudo alien abc.rpm
7.vim使用
vim三種模式:命令模式、插入模式、編輯模式。使用ESC或i或:來切換模式。
命令模式下:
:q 退出
:q! 強制退出
:wq 保存並退出
:set number 顯示行號
:set nonumber 隱藏行號
/apache 在文檔中查找apache 按n跳到下一個,shift+n上一個
yyp 復制游標所在行,並粘貼
h(左移一個字元←)、j(下一行↓)、k(上一行↑)、l(右移一個字元→)
8.用戶及用戶組管理
/etc/passwd 存儲用戶賬號
/etc/group 存儲組賬號
/etc/shadow 存儲用戶賬號的密碼
/etc/gshadow 存儲用戶組賬號的密碼
useradd 用戶名
userdel 用戶名
adser 用戶名
groupadd 組名
groupdel 組名
passwd root 給root設置密碼
/etc/profile 系統環境變數
bash_profile 用戶環境變數
.bashrc 用戶環境變數
su user 切換用戶,載入配置文件.bashrc
su - user 切換用戶,載入配置文件/etc/profile ,載入bash_profile
更改文件的用戶及用戶組
sudo chown [-R] owner[:group] {File|Directory}
例如:還以jdk-7u21-linux-i586.tar.gz為例。屬於用戶hadoop,組hadoop
要想切換此文件所屬的用戶及組。可以使用命令。
sudo chown root:rootjdk-7u21-linux-i586.tar.gz
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程序和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。
UNIX操作系統(尤尼斯),是一個強大的多用戶、多任務操作系統,支持多種處理器架構,按照操作系統的分類,屬於分時操作系統,最早由KenThompson、Dennis Ritchie和Douglas McIlroy於1969年在AT&T的貝爾實驗室開發。目前它的商標權由國際開放標准組織所擁有,只有符合單一UNIX規范的UNIX系統才能使用UNIX這個名稱,否則只能稱為類UNIX(UNIX-like)。
Ⅱ dos命令全集
dos命令全集 :
cp 復制文件
mv 移動文件
rm 文件名 刪除文件,rm -a 目錄名刪除目錄及子目錄
mkdir 目錄名 建立目錄
rmdir 刪除子目錄,目錄內沒有文檔。
chmod 設定檔案或目錄的存取許可權
grep 在檔案中查找字元串
diff 檔案文件比較
find 檔案搜尋
date 現在的日期、時間
who 查詢目前和你使用同一台機器的人以及Login時間地點
w 查詢目前上機者的詳細資料
whoami 查看自己的帳號名稱
groups 查看某人的Group
passwd 更改密碼
history 查看自己下過的命令
ps 顯示進程狀態
kill 停止某進程
gcc 黑客通常用它來編譯C語言寫的文件
su 許可權轉換為指定使用者
telnet IP telnet連接對方主機(同win2K),當出現bash$時就說明連接成功。
ftp ftp連接上某伺服器(同win2K)。祝你好運。
Ⅲ dos命令中怎麼刪除空目錄
dos命令中刪除空目錄的方法有:
1、方法一,刪除文件命令 del
若是想刪除文件,輸入del 盤符名:文件名,比如,我想刪除一個在F盤的名為123.txt的文件,則輸入 del f:123.txt 按回車就能刪除該文件了。當然,該命令只能刪除文件,不能刪除文件夾。若要用該命令刪除一個文件夾,會顯示找不到文件123.txt。
2、方法二,刪除文件夾命令 rm
若是想刪除文件夾,輸入rd 盤符名:文件夾名稱,比如,我想刪除一個在D盤的名為wo的文件夾,則輸入 rd d:wo 這樣就能刪除文件夾了。當然這種刪除方法必須要該文件夾是空文件夾,不然刪除不了。
3、方法三,文件夾和文件一起刪除
若是想將文件夾和文件一起刪除,輸入rd /s /q 盤符名:文件夾名,這樣會將文件夾和它裡面的文件一起刪除。比如,我想刪除一個在F盤的名為wo的文件夾和它裡面的名為123.txt的文件,輸入: rd /s /q f:wo 即可。
(3)rm命令dos擴展閱讀:
DOS命令可分為三類:
1、內部命令
屬DOS命令中常駐內存的一部分,它是在當系統作冷、熱啟動時由磁碟上的系統文件裝入內存的。用戶使用時僅僅是調用內存中系統區的某一程序段來執行。例如,DIR、TYPE、COPY等命令都屬內部命令。
2、外部命令
是以可執行的程序文件形式(通常後綴為.EXE或.COM)存在於磁碟上。這就意味著該命令文件必須記錄在磁碟或已插入驅動器的軟盤上,否則DOS是找不到該命令的。例如,FORMAT.COM,DISKCOPY.COM等。
3、批處理命令
在使用磁碟命令過程中,有時需要連續使用幾條DOS命令,有時則要多次重復使用若干條DOS命令,還有的時候需要有選擇地使用某些DOS命令。為了滿足這些要求,DOS提供了一些特殊文件——後綴為BAT的文件。該文件允許用戶組織鍵盤命令語言程序,一次建立,多次執行。這個BAT文件可用字處理軟體來建立。最典型的例子是在DOS系統盤上一個名為AUTOEXEC.BAT的批命令文件,當系統作冷、熱啟動時,機器會自動執行該文件上的DOS命令。
Ⅳ 在dos下查詢文件
分類: 電腦/網路 >> 操作系統/系統故障
問題描述:
用什麼命令呀?就象windows搜索這個功能差不多 的命令,有嗎?
解析:
在運行中輸入cmd,進入dos,輸入cd\進入C盤的目錄,然後輸dir就是c盤文件的列表. 輸入cd windows進入windows文件夾,輸入tree就是目錄樹的意思. 輸入D;進入D盤
搜索的話就用find命令,和windows搜索這個功能差不多.
Dir c:*.exe/b/s就可以把C盤的所有.exe文件搜索出來
語法:find 起始目錄 尋找條件 操作
以下是摘抄的內容.
find命令
功能:在目錄結構中搜索文件,並執行指定的操作。此命令提供了相當多的查找條件,功能很強大。
語法:find 起始目錄 尋找條件 操作
說明:find命令從指定的起始目錄開始,遞歸地搜索其各個子目錄,查找滿足尋找條件的文件並對之採取相關的操作。
該命令提供的尋找條件可以是一個用邏輯運算符not、and、or組成的復合條件。邏輯運算符and、or、not的含義為:
(1)and:邏輯與,在命令中用「-a」表示,是系統預設的選項,表示只有當所給的條件都滿足時,尋找條件才算滿足。例如:
$ find –name 』tmp』 –xtype c -user 』inin』
該命令尋找三個給定條件都滿足的所有文件。
(2)or:邏輯或,在命令中用「-o」表示。該運算符表衫宴中示只要所給的條件中有一個滿足時,尋找條件就算滿足。例如:
$ find –name 』tmp』 –o –name 』mina*』
該命令查詢文件名為』tmp』或是匹配』mina*』的所有文件。
(3)not:邏輯非,在命令中用「!」表示。該運算符表示查找不滿足所給條件的文件。例如:
$ find ! –name 』tmp』
該命令查詢文件名不是』tmp』的所有文件。
需要說明的是:當使用很多的邏或山輯選項時,可以用括弧把這些選項括起來。為了避免Shell本身對括弧引起誤解,在話號前需要加轉義字元「」來去除括弧的意義。
例:$ find (–name 』tmp』 –xtype c -user 』inin』 )
尋找條件有以下選項:
首先,下列各個選項中的n值可以有三種輸入祥攜方式,假設n為20,則:
+20 表示20以後(21,22,23等)
-20 表示20以前(19,18,17等)
20 表示正好是20
1. 以名稱和文件屬性查找。
- name 』字串』 查找文件名匹配所給字串的所有文件,字串內可用通配符*、?、〔 〕。
- lname 』字串』 查找文件名匹配所給字串的所有符號鏈接文件,字串內可用通配符*、?、〔 〕。
-gid n 查找屬於ID號為n的用戶組的所有文件。
-uid n 查找屬於ID號為n的用戶的所有文件。
-group 』字串』 查找屬於用戶組名為所給字串的所有的文件。
-user 』字串』 查找屬於用戶名為所給字串的所有的文件。
-nogroup 查找無有效所屬組的文件,即該文件所屬的組在/ e t c / g r o u p s中不存在。
-nouser 查找無有效屬主的文件,即該文件的屬主在/ e t c / p a s s w d中不存在。
-newer file1 ! file2 查找更改時間比文件f i l e 1新但比文件f i l e 2舊的文件。
-empty 查找大小為0的目錄或文件。
-path 』字串』 查找路徑名匹配所給字串的所有文件,字串內可用通配符*、?、〔 〕。
-perm 許可權 查找具有指定許可權的文件和目錄,許可權的表示可以如711,644。
-size n〔bckw〕 查找指定文件大小的文件,n後面的字元表示單位,預設為b,代表512位元組的塊。
-type x 查找類型為x的文件,x為下列字元之一:
b 塊設備文件
c 字元設備文件
d 目錄文件
p 命名管道(FIFO)
f 普通文件
l 符號鏈接文件(symbolic links)
s socket文件
-xtype x 與-type基本相同,但只查找符號鏈接文件。
2. 以時間為條件查找
- amin n 查找n分鍾以前被訪問過的所有文件。
- atime n 查找n天以前被訪問過的所有文件。
- cmin n 查找n分鍾以前文件狀態被修改過的所有文件。
- ctime n 查找n天以前文件狀態被修改過的所有文件。
- mmin n 查找n分鍾以前文件內容被修改過的所有文件。
- mtime n 查找n天以前文件內容被修改過的所有文件。
3. 可執行的操作
- exec 命令名稱 {} \; 對符合條件的文件執行所給的unix 命令,而不詢問用戶是否需要執行該命令。{}表示命令的參數即為所找到的文件,命令的末尾必須以「 \;」結束,"{}"和"\;"之間必須有一個空格。
- ok 命令名稱 {} \; 對符合條件的文件執行所給的Linux 命令,與exec不同的是,它會詢問用戶是否需要執行該命令。
- ls 詳細列出所找到的所有文件。
- fprintf 文件名 將找到的文件名寫入指定文件。
- print 在標准輸出設備上顯示查找出的文件名。
- printf 格式 格式的寫法請參考有關C語言的書。
使用name選項
文件名選項是f i n d命令最常用的選項,要麼單獨使用該選項,要麼和其他選項一起使用。
可以使用某種文件名模式來匹配文件,記住要用引號將文件名模式引起來。
不管當前路徑是什麼,如果想要在自己的根目錄$ H O M E中查找文件名符合* . t x t的文件,
使用~作為' p a t h n a m e參數,波浪號~代表了你的$ H O M E目錄。
$ find ~ -name "*.txt" -print
想要在當前目錄及子目錄中查找所有的' * . t x t'文件,可以用:
$ find . -name "*.txt" -print
想要的當前目錄及子目錄中查找文件名以一個大寫字母開頭的文件,可以用:
$ find . -name "[A-Z]*" -print
想要在/ e t c目錄中查找文件名以h o s t開頭的文件,可以用:
$ find /etc -name "host*" -print
想要查找$ H O M E目錄中的文件,可以用:
$ find ~ -name "*" -print 或find . -print
要想讓系統高負荷運行,就從根目錄開始查找所有的文件。如果希望在系統管理員那裡
保留一個好印象的話,最好在這么做之前考慮清楚!
$ find / -name "*" -print
如果想在當前目錄查找文件名以兩個小寫字母開頭,跟著是兩個數字,最後是* . t x t的文
件,下面的命令就能夠返回名為a x 3 7 . t x t的文件:
$ find . -name "[a-z][a-z][0--9][0--9].txt" -print
使用perm選項
如果希望按照文件許可權模式來查找文件的話,可以採用- p e r m選項。你可能需要找到所有
用戶都具有執行許可權的文件,或是希望查看某個用戶目錄下的文件許可權類型。在使用這一選
項的時候,最好使用八進制的許可權表示法。
為了在當前目錄下查找文件許可權位為7 5 5的文件,即文件屬主可以讀、寫、執行,其他用
戶可以讀、執行的文件,可以用:
$ find . -perm 755 -print
如果希望在當前目錄下查找所有用戶都可讀、寫、執行的文件(要小心這種情況),我們
可以使用f i n d命令的- p e r m選項。在八進制數字前面要加一個橫杠-。在下面的命令中- p e r m代
表按照文件許可權查找,而' 0 0 7'和你在c h m o d命令的絕對模式中所採用的表示法完全相同。
$ find . -perm -007 -print
忽略某個目錄
如果在查找文件時希望忽略某個目錄,因為你知道那個目錄中沒有你所要查找的文件,
那麼可以使用- p r u n e選項來指出需要忽略的目錄。在使用- p r u n e選項時要當心,因為如果你同
時使用了- d e p t h選項,那麼- p r u n e選項就會被f i n d命令忽略。
如果希望在/ a p p s目錄下查找文件,但不希望在/ a p p s / b i n目錄下查找,可以用:
$ find /apps -name "/apps/bin" -prune -o -print
使用user和nouser選項
如果希望按照文件屬主查找文件,可以給出相應的用戶名。例如,在$ H O M E目錄中查找
文件屬主為d a v e的文件,可以用:
$ find ~ -user dave -print
在/ e t c目錄下查找文件屬主為u u c p的文件:
$ find /etc -user uucp -print
為了查找屬主帳戶已經被刪除的文件,可以使用- n o u s e r選項。這樣就能夠找到那些屬主
在/ e t c / p a s s w d文件中沒有有效帳戶的文件。在使用- n o u s e r選項時,不必給出用戶名; f i n d命令
能夠為你完成相應的工作。例如,希望在/ h o m e目錄下查找所有的這類文件,可以用:
$ find /home -nouser -print
使用group和nogroup選項
就像u s e r和n o u s e r選項一樣,針對文件所屬於的用戶組, f i n d命令也具有同樣的選項,為
了在/ a p p s目錄下查找屬於a c c t s用戶組的文件,可以用:
$ find /apps -group accts -print
要查找沒有有效所屬用戶組的所有文件,可以使用n o g r o u p選項。下面的f i n d命令從文件
系統的根目錄處查找這樣的文件
$ fine/-nogroup-print
按照更改時間查找文件
如果希望按照更改時間來查找文件,可以使用m t i m e選項。如果系統突然沒有可用空間了,
很有可能某一個文件的長度在此期間增長迅速,這時就可以用m t i m e選項來查找這樣的文件。
用減號-來限定更改時間在距今n日以內的文件,而用加號+來限定更改時間在距今n日以前的
文件。
希望在系統根目錄下查找更改時間在5日以內的文件,可以用:
$ find / -mtime -5 -print
為了在/ v a r / a d m目錄下查找更改時間在3日以前的文件,可以用:
$ find /var/adm -mtime +3 -print
查找比某個文件新或舊的文件
如果希望查找更改時間比某個文件新但比另一個文件舊的所有文件,可以使用- n e w e r選
項。它的一般形式為:
newest_file_name ! oldest_file_name
其中,!是邏輯非符號。
這里有兩個文件,它們的更改時間大約相差兩天。
下面給出的f i n d命令能夠查找更改時間比文件a g e . a w k新但比文件b e l t s . a w k舊的文件:
如果想使用f i n d命令的這一選項來查找更改時間在兩個小時以內的文件,除非有一個現成
的文件其更改時間恰好在兩個小時以前,否則就沒有可用來比較更改時間的文件。為了解決
這一問題,可以首先創建一個文件並將其日期和時間戳設置為所需要的時間。這可以用t o u c h
命令來實現。
假設現在的時間是2 3 : 4 0,希望查找更改時間在兩個小時以內的文件,可以首先創建這樣
一個文件:
一個符合要求的文件已經被創建;這里我們假設今天是五月四日,而該文件的更改時間
是2 1 : 4 0,比現在剛好早兩個小時。
現在我們就可以使用f i n d命令的- n e w e r選項在當前目錄下查找所有更改時間在兩個小時以
內的文件:
$ find . -newer dstamp -print
使用type選項
U N I X或L I N U X系統中有若干種不同的文件類型,這部分內容我們在前面的章節已經做了
介紹,這里就不再贅述。如果要在/ e t c目錄下查找所有的目錄,可以用:
$ find /etc -type d -print
為了在當前目錄下查找除目錄以外的所有類型的文件,可以用:
$ find . ! -type d -print
為了在/ e t c目錄下查找所有的符號鏈接文件,可以用:
$ find /etc -type l -print
使用size選項
可以按照文件長度來查找文件,這里所指的文件長度既可以用塊( b l o c k)來計量,也可
以用位元組來計量。以位元組計量文件長度的表達形式為N c;以塊計量文件長度只用數字表示即
可。
就我個人而言,我總是使用以位元組計的方式,在按照文件長度查找文件時,大多數人都
喜歡使用這種以位元組表示的文件長度,而不用塊的數目來表示,除非是在查看文件系統的大
小,因為這時使用塊來計量更容易轉換。
為了在當前目錄下查找文件長度大於1 M位元組的文件,可以用:
$ find . -size +1000000c -print
為了在/ h o m e / a p a c h e目錄下查找文件長度恰好為1 0 0位元組的文件,可以用:
$ find /home/apache -size 100c -print
為了在當前目錄下查找長度超過1 0塊的文件(一塊等於5 1 2位元組),可以用:
$ find . -size +10 -print
使用depth選項
在使用f i n d命令時,可能希望先匹配所有的文件,再在子目錄中查找。使用d e p t h選項就
可以使f i n d命令這樣做。這樣做的一個原因就是,當在使用f i n d命令向磁帶上備份文件系統時,
希望首先備份所有的文件,其次再備份子目錄中的文件。
在下面的例子中, f i n d命令從文件系統的根目錄開始,查找一個名為C O N . F I L E的文件。
它將首先匹配所有的文件然後再進入子目錄中查找。
$ find / -name "CON.FILE" -depth -print
使用mount選項
在當前的文件系統中查找文件(不進入其他文件系統),可以使用f i n d命令的m o u n t選項。
在下面的例子中,我們從當前目錄開始查找位於本文件系統中文件名以X C結尾的文件:
$ find . -name "*.XC" -mount -print
使用cpio選項
c p i o命令可以用來向磁帶設備備份文件或從中恢復文件。可以使用f i n d命令在整個文件系
統中(更多的情況下是在部分文件系統中)查找文件,然後用c p i o命令將其備份到磁帶上。
如果希望使用c p i o命令備份/ e t c、/ h o m e和/ a p p s目錄中的文件,可以使用下面所給出的命令,不過要記住你是在文件系統的根目錄下:
(在上面的例子中,第一行末尾的\告訴s h e l l命令還未結束,忽略\後面的回車。)
在上面的例子中,應當注意到路徑中缺少/。這叫作相對路徑。之所以使用相對路徑,是
因為在從磁帶中恢復這些文件的時候,可以選擇恢復文件的路徑。例如,可以將這些文件先
恢復到另外一個目錄中,對它們進行某些操作後,再恢復到原始目錄中。如果在備份時使用
了絕對路徑,例如/ e t c,那麼在恢復時,就只能恢復到/ e t c目錄中去,別無其他選擇。在上面
的例子中,我告訴f i n d命令首先進入/ e t c目錄,然後是/ h o m e和/ a p p s目錄,先匹配這些目錄下的文件,然後再匹配其子目錄中的文件,所有這些結果將通過管道傳遞給c p i o命令進行備份。
順便說一下,在上面的例子中c p i o命令使用了C 6 5 5 3 6選項,我本可以使用B選項,不過這
樣每塊的大小隻有5 1 2 位元組,而使用了C 6 5 5 3 6 選項後,塊的大小變成了6 4 K 位元組
(6 5 5 3 6 / 1 0 2 4)。
使用exec或ok來執行shell命令
當匹配到一些文件以後,可能希望對其進行某些操作,這時就可以使用- e x e c選項。一旦
f i n d命令匹配到了相應的文件,就可以用- e x e c選項中的命令對其進行操作(在有些操作系統
中只允許- e x e c選項執行諸如l s或ls -l這樣的命令)。大多數用戶使用這一選項是為了查找舊文
件並刪除它們。這里我強烈地建議你在真正執行r m命令刪除文件之前,最好先用l s命令看一
下,確認它們是所要刪除的文件。
e x e c選項後面跟隨著所要執行的命令,然後是一對兒{ },一個空格和一個\,最後是一個
分號。
為了使用e x e c選項,必須要同時使用p r i n t選項。如果驗證一下f i n d命令,會發現該命令只
輸出從當前路徑起的相對路徑及文件名。
為了用ls -l命令列出所匹配到的文件,可以把ls -l命令放在f i n d命令的- e x e c選項中,例如:
上面的例子中,f i n d命令匹配到了當前目錄下的所有普通文件,並在- e x e c選項中使用ls -l
命令將它們列出。
為了在/ l o g s目錄中查找更改時間在5日以前的文件並刪除它們,可以用:
$ find logs -type f -mtime +5 -exec rm {} \;
記住,在s h e l l中用任何方式刪除文件之前,應當先查看相應的文件,一定要小心!
當使用諸如m v或r m命令時,可以使用- e x e c選項的安全模式。它將在對每個匹配到的文件
進行操作之前提示你。在下面的例子中, f i n d命令在當前目錄中查找所有文件名以. L O G結尾、
更改時間在5日以上的文件,並刪除它們,只不過在刪除之前先給出提示。
按y鍵刪除文件,按n鍵不刪除。
任何形式的命令都可以在- e x e c選項中使用。在下面的例子中我們使用g r e p命令。f i n d命令
首先匹配所有文件名為" p a s s w d *"的文件,例如p a s s w d、p a s s w d . o l d、p a s s w d . b a k,然後執
行g r e p命令看看在這些文件中是否存在一個r o u n d e r用戶。
find命令的例子
我們已經介紹了f i n d命令的基本選項,下面給出f i n d命令的一些其他的例子。
為了匹配$ H O M E目錄下的所有文件,下面兩種方法都可以使用:
$ find $HOME -print
$ find ~ -print
為了在當前目錄中查找s u i d置位,文件屬主具有讀、寫、執行許可權,並且文件所屬組的用
戶和其他用戶具有讀和執行的許可權的文件,可以用:
$ find . -type f -perm 4755 -print
為了查找系統中所有文件長度為0的普通文件,並列出它們的完整路徑,可以用:
$ find / -type f -size 0 -exec ls -l {} \;
為了查找/ v a r / l o g s目錄中更改時間在7日以前的普通文件,並刪除它們,可以用:
$ find /var/logs -type f -mtime +7 -exec rm {} \;
為了查找系統中所有屬於a u d i t組的文件,可以用:
$find /-name -group audit -print
我們的一個審計系統每天創建一個審計日誌文件。日誌文件名的最後含有數字,這樣我
們一眼就可以看出哪個文件是最新的,哪個是最舊的。A d m i n . l o g 文件編上了序號:
a d m i n . l o g . 0 0 1、a d m i n . l o g . 0 0 2等等。下面的f i n d命令將刪除/ l o g s目錄中訪問時間在7日以前、
含有數字後綴的a d m i n . l o g文件。該命令只檢查三位數字,所以相應日誌文件的後綴不要超過
9 9 9。
$ find /logs -name 'admin.log[0-9][0-9][0-9] '-atime +7 -exec rm {} \;
為了查找當前文件系統中的所有目錄並排序,可以用:
$ find . -type d -print -local -mount |sort
為了查找系統中所有的r m t磁帶設備,可以用:
$ find /dev/rmt -print
xargs
在使用f i n d命令的- e x e c選項處理匹配到的文件時, f i n d命令將所有匹配到的文件一起傳遞
給e x e c執行。不幸的是,有些系統對能夠傳遞給e x e c的命令長度有限制,這樣在f i n d命令運行
幾分鍾之後,就會出現溢出錯誤。錯誤信息通常是"參數列太長"或"參數列溢出"。這就是
x a rg s命令的用處所在,特別是與f i n d命令一起使用。F i n d命令把匹配到的文件傳遞給x a rg s命
令,而x a rg s命令每次只獲取一部分文件而不是全部,不像- e x e c選項那樣。這樣它可以先處理
最先獲取的一部分文件,然後是下一批,並如此繼續下去。在有些系統中,使用- e x e c選項會
為處理每一個匹配到的文件而發起一個相應的進程,並非將匹配到的文件全部作為參數一次
執行;這樣在有些情況下就會出現進程過多,系統性能下降的問題,因而效率不高;而使用
x a rg s命令則只有一個進程。另外,在使用x a rg s命令時,究竟是一次獲取所有的參數,還是分
批取得參數,以及每一次獲取參數的數目都會根據該命令的選項及系統內核中相應的可調參
數來確定。
讓我們來看看x a rg s命令是如何同f i n d命令一起使用的,並給出一些例子。
下面的例子查找系統中的每一個普通文件,然後使用x a rg s命令來測試它們分別屬於哪類
文件:
下面的例子在整個系統中查找內存信息轉儲文件(core mp) ,然後把結果保存到
/tmp/core.log 文件中:
$ find . -name "core" -print | xargs echo "" >/tmp/core.log
下面的例子在/ a p p s / a u d i t目錄下查找所有用戶具有讀、寫和執行許可權的文件,並收回相應
的寫許可權:
$ find /apps/audit -perm -7 -print | xargs chmod o-w
在下面的例子中,我們用g r e p命令在所有的普通文件中搜索d e v i c e這個詞:
$ find / -type f -print | xargs grep "device"
在下面的例子中,我們用g r e p命令在當前目錄下的所有普通文件中搜索D B O這個詞:
$ find . -name \ *-type f -print | xargs grep "DBO"
注意,在上面的例子中, \用來取消f i n d命令中的*在s h e l l中的特殊含義。
小結
f i n d命令是一個非常優秀的工具,它可以按照用戶指定的准則來匹配文件。使用e x e c和
x a rg s可以使用戶對所匹配到的文件執行幾乎所有的命令。
Ⅳ 給些DOS、UNIX/LINUX下的命令
AIX 的常用命令AIX操作系統基本命令系統的進入和退出
login: 輸入用戶名(例如:user01)
password: 輸入用戶口令
若用戶名及口令均正確,則用戶將登陸成功。
此時系統會出現命令提示符$或#,即表示可接收用戶輸入的操作系統命令。
退出系統:或 exit或logout。
例:#(or$)exit
#(or$)Ctrl^D
注,#為ROOT用戶的命令提示符,$為一般用戶
password
password命令用於建立或修改用戶的密碼。
如:
#password
passwd: —輸入舊口令
new passwd: —輸入新口令
re-enter new paswd: —重新輸入新口令
mkdir、rm、mv和cd
mkdir:用於創建目錄
$ mkdir oracle
$ ls
oracle
$
rm:用於刪除文件或目錄(rm –r 刪除目錄時目錄內有內容,用-r一起刪除)
$ rm -r oracle
$ ls
$
mv:用於改變文件或目錄名
$ mkdir ll
$ ls
ll
$ mkdir kk
$ ls
kk ll
$ mv ll kk
$ ls
kk
$ cd kk
$ ls
ll
$
cd:用於進入系統某一級目錄中去
$ cd /
$ pwd
/
$ cd /home/oracle
$ pwd
/home/oracle
$
ls
功能:顯示目錄中的內容,列出當前目錄中所有文件的文件名
參數說明:
a:列出目錄中所有文件
d:列出所有子目錄
l:列出長格式文件信息
舉例:
ls –a:列出當前目錄中的所有文件
$ ls -a
#UNTITLED# .dt createdbscripts oracle
. .dtprofile dead_letter smit.log
.. .profile ll smit.script
.TTauthority .sh_history make.log websm.log
.Xauthority afiedt.buf mbox websm.script
$
ls –l:顯示文件的詳細信息
$ ls -l
total 295
-rw-r--r-- 1 201 dba 3 Sep 01 15:24 #UNTITLED#
-rw-r--r-- 1 201 dba 51 Jul 08 18:18 afiedt.buf
drwxrwxr-x 2 201 dba 512 May 08 11:49 createdbscripts
drwx------ 2 201 dba 512 Jun 19 09:27 dead_letter
drwxr-xr-x 2 201 dba 512 Sep 22 10:17 ll
-rw-r--r-- 1 201 dba 95987 Apr 18 14:51 make.log
-rw------- 1 201 dba 11174 Sep 17 09:15 mbox
drwxr-xr-x 3 201 dba 512 Sep 22 10:21 oracle
-rw-r--r-- 1 201 dba 8971 Sep 20 11:08 smit.log
-rw-r--r-- 1 201 dba 5437 Sep 20 11:08 smit.script
-rw-r--r-- 1 201 system 1682 Sep 02 15:18 websm.log
-rw-r--r-- 1 201 system 21441 Sep 02 15:10 websm.script
$
date
功能:顯示當前日期和時間,超級用戶可以進行修改
舉例:$ date
Mon Sep 22 10:28:26 BEIST 2003
$
wc
功能:計算文件中的行數、字數和字元數
參數說明:
c:計算字元數
l:計算行數
w:計算字數
舉例:
# wc profile
13 53 381 profile
| | |
行數 字數 字元數
$ wc smit.log
422 1162 8971 smit.log
$
who
功能:列出當前系統注冊的用戶
舉例:$who am i-- 列出當前系統使用者身份
$ who
oracle lft0 Sep 22 09:05
oracle pts/0 Sep 22 10:17 (192.168.100.79)
oracle pts/4 Sep 22 09:05 (:0.0)
$ who am i
oracle pts/0 Sep 22 10:17 (192.168.100.79)
$
finger
顯示當前登陸到系統中的用戶的信息
舉例:
# finger
Login Name TTY Idle When Site I
nfo
oracle ??? *l0 2:02 Mon 09:05
oracle ??? p4 1:59 Mon 09:05
root ??? p0 Mon 11:06
# finger oracle
Login name: oracle
Directory: /usr/oracle/ora90 Shell: /usr/bin/ksh
On since Sep 22 09:05:35 on lft0, 2 hours 2 minutes Idle Time
(messages off)
On since Sep 22 09:05:41 on pts/4, 1 hour 59 minutes Idle Time
from :0.0
No Plan.
#
ps
功能:顯示後台進程的有關信息。單獨使用ps將顯示由
當前終端啟動的後台進程的PID、終端號、進程已執行時間以及啟動該進程的命令
語法:ps -options
參數說明:
-e:顯示系統內當前運行的所有後台進程
-f:除ps所提供的信息外,還顯示用戶名、PPID(父進程ID)及啟動時間
-l:除ps所提供的信息外,還顯示 User ID, PPID 和進程優先順序
例:
# ps
PID TTY TIME CMD
803034 pts/0 0:00 -ksh
917524 pts/0 0:00 ps
# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 09:03:04 - 0:00 /etc/init
root 90262 1 0 09:03:42 - 0:00 /usr/ccs/bin/shlap64
root 106572 139368 0 09:03:30 - 0:01 /usr/lpp/X11/bin/X -D /usr
oracle 123030 155720 0 09:05:36 - 0:00 dtwm
root 139368 1 0 09:03:29 - 0:00 /usr/dt/bin/dtlogin -daemo
oracle 155720 172088 0 09:05:35 - 0:00 /usr/dt/bin/dtsession
root 163946 245824 0 09:04:28 - 0:00 /usr/sbin/rsct/bin/rmcd -r
root 172088 139368 0 09:03:30 - 0:00 dtlogin <:0> -daemo
oracle 180378 188526 0 09:06:20 pts/4 0:00 -ksh
root 188526 483470 0 09:06:10 pts/4 0:00 -ksh
root 196670 303186 0 09:04:34 - 0:00 rpc.ttdbserver 100083 1
root 204866 245824 0 09:04:34 - 0:00 /usr/sbin/rsct/bin/IBM.Aud
oracle 221370 581780 0 09:05:41 - 0:03 /usr/dt/bin/dtterm
root 229440 1 0 09:03:41 - 0:01 /usr/sbin/syncd 60
root 237626 1 0 09:03:42 - 0:00 /usr/lib/errdemon
root 245824 1 0 09:03:47 - 0:00 /usr/sbin/srcmstr
root 262240 245824 0 09:03:50 - 0:00 /usr/sbin/syslogd
root 278642 245824 0 09:04:28 - 0:00 /usr/sbin/rsct/bin/ctcasd
root 286806 245824 0 09:04:30 - 0:00 /usr/sbin/rsct/bin/IBM.CSM
oracle 295050 1 0 09:07:03 - 0:00 ora_dbw0_ORCL
root 303186 245824 0 09:03:59 - 0:00 /usr/sbin/inetd
root 311380 245824 0 09:03:53 - 0:00 sendmail: accepting connec
root 319566 245824 0 09:03:56 - 0:00 /usr/sbin/portmap
root 327760 245824 0 09:04:02 - 0:00 /usr/sbin/snmpd
root 335954 245824 0 09:04:06 - 0:00 /usr/sbin/dpid2
root 344150 245824 0 09:04:09 - 0:00 /usr/sbin/hostmibd
oracle 368788 1 0 11:09:35 - 0:00 oracleORCL (LOCAL=NO)
root 376946 1 0 09:04:18 - 0:00 /usr/sbin/cron
root 385122 245824 0 09:04:12 - 0:00 /usr/sbin/biod 6
oracle 393320 1 0 09:07:03 - 0:00 ora_reco_ORCL
daemon 401510 245824 0 09:04:15 - 0:00 /usr/sbin/rpc.statd
root 409726 1 0 09:04:28 - 0:00 /usr/bin/itesmdem itesrv.i
root 417902 245824 0 09:04:18 - 0:00 /usr/sbin/rpc.lockd