1,Linux指令的分類?
(1)系統指令: /bin 和 /sbin下的(管理者指令)
應用程式指令:/usr/bin 和 /usr/sbin下的
(2) 内部指令:打開了新的shell時會自動加載的
外部指令:通過安裝軟體包有的
2,關于$PATH這個變量?
$PATH 是指令搜尋路徑
[[email protected]_hosts test]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
which指令
(1)在PATH變量指定的路徑中,查詢指令存放的路徑;
(2)傳回第一個搜尋結果且不再繼續尋找;
(3)alias别名優先于PATH查找;(使用的時候也是優先别名的)
(4)找的對象必須具有可執行權限,且隻能查找外部指令
[[email protected]_hosts ~]# which cp
alias cp='cp -i'
/bin/cp
[[email protected]_hosts ~]# which alias //which alias 發現找不到,說明alias是内部指令
/usr/bin/which: no alias in (/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
whereis指令
(1)在PATH變量指定的路徑中,查詢指令存放的路徑、幫助檔案路徑;
(2)傳回所有搜尋到的結果;
[[email protected] ~]# whereis cp
cp: /bin/cp /usr/share/man/man1/cp.1.gz /usr/share/man/man1p/cp.1p.gz
locate指令
(1)locate string 可以檢視包含string字樣的所有的檔案路徑;
(2)locate指令使用時,會周遊locate專用的一個資料庫檔案 /var/lib/(整個linux目錄樹結構形成的),從中查找;
(3)updatedb指令可更新這個資料庫 //建立與删除後都要更新才能locate出效果。
find指令
一、按各種方式查找
(1)-name:按檔案名稱查找
(2)-size:按檔案大小查找(機關K、M、G)
“+n”表示大于這個值
“-n”表示小于這個值
“n” 表示等于這個值
(3)-type:按對象類型查找(目錄d,普通檔案f,連結檔案l,字元裝置檔案c,塊裝置檔案b,管道檔案p)
(4)-mtime:按對象内容修改時間查找(天數)
-atime:按對象被通路的時間查找(天數)
-ctime:按對象狀态被修改的時間去查找(天數)
-mmin/-amin/-cmin:(分鐘數)
“+ n” n天/分鐘前的
“- n” n天/分鐘内的
(5)-user:按檔案屬主查找
(6)-perm:按檔案權限查找
二、常配合exec和xargs使用
(1)-exec 表示執行後面的指令;“{}”表示存放find指令查找的結果 ;“\;”表示結束标志。
(2)xargs 表示将前面指令的輸出做為參數送給後面的指令使用。
[[email protected] ~]# find /boot -name "vmlinuz*" | xargs ls -l
-rwxr-xr-x. 1 root root 4044560 Jan 30 2013 /boot/vmlinuz-2.6.32-358.el6.x86_64
[[email protected] ~]# find /boot -name "vmlinuz*" -exec ls -l {} \;
-rwxr-xr-x. 1 root root 4044560 Jan 30 2013 /boot/vmlinuz-2.6.32-358.el6.x86_64
三、邏輯運算及一些特殊選項
(1)-a 且
(2)-o 或
(3)!/ -not 非
(4)-ok 提醒你是否要執行後面的删除指令
[[email protected] lianxi]# find / -name zhongguohehuoren -ok rm -rf {} \;
< rm ... /bin/zhongguohehuoren > ? y
< rm ... /lianxi/zhongguohehuoren > ? y
< rm ... /zhongguohehuoren > ? y</span>
(5)-maxdepth 後面跟數字num,表示在目前目錄下往下num層深度查找(預設為1層)
四,應用執行個體
find /boot -size +1024k -o -name "vmlinuz*" |xargs ls -l
find /boot -size +1M -a -name "vmlinuz*" -a -type f|xargs ls -l
find /boot -type d -name "grub*"|xargs ls -dlh
find /boot -size +1M ! -size +4M -exec ls -lh {} \;
find /boot -size +1M -size -4M -exec ls -lh {} \; //文法沒有問題,但結果并未完全顯示
find /etc/ -maxdepth 1 -name "p*" | grep passwd </span>