久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

linux下的文件和目錄管理自我總結(jié)

 心不留意外塵 2016-05-16
http://blog.csdn.net/zg_hover/article/details/2572060
2008
	linux下的文件和目錄管理自我總結(jié)
  2
  3      摘要:主要總結(jié)了linux下的文件和目錄的管理,包括各種命令的使用和分類整理。
  4
  5  1, 目錄與路徑
  6  .相對(duì)路徑和絕對(duì)路徑
  7      以/打頭的就是絕對(duì)路徑,,它會(huì)從根路徑/開始尋找你要去的路徑名。而不以/打頭的就是相對(duì)路徑,
     例如:
  8      cd /home/zhengxh                    #絕對(duì)路徑
  9      cd ./mydir [和 cd mydir相同]         #相對(duì)路徑,,以當(dāng)前目錄為起始目錄
 10      cd ../mydir                         #相對(duì)路徑,以當(dāng)前目錄的上一層目錄為起始目錄
 11
 12  2, 目錄的相關(guān)操作
 13
 14  .目錄的相關(guān)符號(hào)
 15      .           #代表當(dāng)前目錄
 16      ..          #代表當(dāng)前目錄的父目錄
 17      -           #代表上一次進(jìn)入的目錄,即:$OLDPWD的值
 18      ~           #代表使用者的家(/home/username) 目錄
 19      ~user       #代表user的家目錄
 20
 21  .幾個(gè)常見的目錄處理命令
 22
 23  cd (變換目錄)
 24
 25  cd dirname
 26
 27  #如果不加任何路徑,,就默認(rèn)回到自己的家目錄了,,挺方便的把:)
 28      cd ./mydir      #就在當(dāng)前目錄下的mydir目錄
 29      cd ..           #切換到上層目錄
 30      cd -            #切換到上次所在的目錄
 31      cd ~            #切換到我的家目錄
 32      cd ~user        #切換到user的家目錄即:/home/user目錄
 33                      #注意:一般root用戶才能切換
 34      cd /tmp         #絕對(duì)路徑,切換到/tmp目錄
 35
 36
 37  pwd (顯示當(dāng)前所在路徑)
 38
 39  參數(shù):
 40      -P          #顯示實(shí)際的物理路徑,,而不是符號(hào)鏈接路徑
 41
 42  #以下例子可以看出-P參數(shù)加上后
 43  #顯示的是實(shí)際的物理路徑,,而不是符號(hào)鏈接路徑
 44  --------------------------------------------------------
 45  [zhengxh@hoverzg stdshell]$ ls -l md
 46  lrwxrwxrwx  1 zhengxh cvs 5  6月 14 10:44 md -> mydir
 47
 48  #上面的是一個(gè)鏈接文件
 49  [zhengxh@hoverzg stdshell]$ cd md
 50  [zhengxh@hoverzg md]$ pwd
 51  /home/zhengxh/stdshell/md
 52  [zhengxh@hoverzg md]$ pwd -P
 53  /home/zhengxh/stdshell/mydir
 54  --------------------------------------------------------
 55
 56
 57  mkdir (創(chuàng)建新目錄)
 58
 59  參數(shù):
 60      -m      #設(shè)定新創(chuàng)建目錄的權(quán)限-m $(umask -S)這是默認(rèn)的權(quán)限,
 61              #(-m 554) 設(shè)定自己的權(quán)限,,不需要關(guān)umask的值
 62      -p      #如果你創(chuàng)建的目錄中有任何不存在的目錄,,該參數(shù)都會(huì)為你創(chuàng)建
 63
 64  --------------------------------------------------------
 65  #可以看只有最后一層的目錄,權(quán)限都變成了777
 66  #注意:在-p 和-m參數(shù)一起使用時(shí),,只有最后一層的目錄變成你設(shè)定的目錄,,
 67  #而其他的則會(huì)使用默認(rèn)的目錄權(quán)限
 68
 69  [zhengxh@hoverzg stdshell]$ mkdir -p -m 777 dir1/dir2/dir3
 70  [zhengxh@hoverzg stdshell]$ ls -Rl dir1/
 71  drwxr-xr-x  3 zhengxh cvs 4096  6月 14 11:16 dir1
 72  drwxr-xr-x  3 zhengxh cvs 4096  6月 14 11:16 dir2
 73  drwxrwxrwx  2 zhengxh cvs 4096  6月 14 11:16 dir3
 74
 75  --------------------------------------------------------
 76
 77
 78  rmdir (刪除空的路徑)
 79
 80  注意:該命令只能刪除空目錄,而且是每個(gè)目錄必須都為空
 81  參數(shù):
 82      -p          #連同上層父目錄一起刪除
 83
 84  --------------------------------------------------------
 85  #注意:使用-p參數(shù)時(shí),,要指定刪除目錄的最后一層,,而不能只寫到第一層,
 86  #因?yàn)?,它不為空?)
 87  [zhengxh@hoverzg stdshell]$ mkdir -p test1/test2/test3
 88
 89  #要寫到最后一層為空的目錄,,否則會(huì)提示錯(cuò)誤
 90  [zhengxh@hoverzg stdshell]$ rmdir -p test1
 91  rmdir: ‘test1’: 目錄非空
 92  [zhengxh@hoverzg stdshell]$ rmdir -p test1/test2/test3/
 93
 94  --------------------------------------------------------
 95
 96  3, 文件和目錄的管理
 97
 98  ls (文件和目錄查看命令)
 99  用法:ls [選項(xiàng)]... [文件]...
100
101    -a, --all                  不隱藏任何以 . 字符開始的項(xiàng)目
102    -A, --almost-all           列出除了 . 及 .. 以外的任何項(xiàng)目
103    -d, --directory            列出目錄而不是列出文件名
104    -f                         不進(jìn)行排序,-aU 選項(xiàng)生效,,-lst 選項(xiàng)失效
105    -l                         以列表的形式列出文件的完整信息
106    -h                   以人類可讀的方式列出文件的大小(K,M)
107    -F                   加上文件類型的指示符號(hào) (*/=@| 其中一個(gè))
108                          *:代表可執(zhí)行檔,; /:代表目錄;@:代表鏈接文件
109                       =:代表 socket 檔案,; |:代表 FIFO 檔案,;
110    -i, --inode                印出每個(gè)文件的 inode 號(hào)
111    -n, --numeric-uid-gid      類似 -l,但列出 UID 及 GID 號(hào)
112    -Q, --quote-name           將項(xiàng)目名稱括上雙引號(hào)
113    -r, --reverse              依相反次序排列
114    -R, --recursive            同時(shí)列出所有子目錄層
115    -S                         以文件大小排序
116    -t                         以修改的時(shí)間先后順序排序
117    -X                         根據(jù)擴(kuò)展名排序
118    -1                                每行只列出一個(gè)文件
119    -u                         配合 -lt:顯示訪問時(shí)間而且依訪問時(shí)間排序
120                                 配合 -l:顯示訪問時(shí)間但根據(jù)名稱排序
121                                 否則:根據(jù)訪問時(shí)間排序
122
123    --full-time                顯示完整的時(shí)間,,包括年份
124    --color=[never,always,auto]   顯示顏色的方式
125
126  --------------------------------------------------------
127  [zhengxh@hoverzg stdshell]$ ls -lF --full-time
128  總用量 1732
129  -rw-r--r--  1 zhengxh cvs         56 2008-06-04 13:51:35.000000000 +0800 22
130  -rw-r--r--  1 zhengxh cvs         30 2008-05-31 18:30:01.000000000 +0800 33
131  --------------------------------------------------------
132
133  cp, rm, mv (復(fù)制轉(zhuǎn)移與刪除)
134
135  cp (復(fù)制文件或目錄)
136      將<來源>文件復(fù)制至<目的地>,,或?qū)⒍鄠€(gè)<文件>復(fù)制至<目錄>,。
137      用法:cp [選項(xiàng)]... 來源 目的地
138          或:cp [選項(xiàng)]... 來源... 目錄
139
140    -a, --archive                等於 -dpR
141    -d                           不會(huì)找出符號(hào)鏈接指示的真正目的地
142    -f, --force                  強(qiáng)制進(jìn)行,而不會(huì)讓用戶確認(rèn)
143    -i, --interactive            覆蓋文件前需要確認(rèn)
144    -H                           使用命令列中的符號(hào)鏈接指示的真正目的地
145    -l, --link                   鏈接而非復(fù)制文件
146    -L, --dereference            一定先找出符號(hào)鏈接指示的真正目的地
147    -u                           當(dāng)源和目的文件有差異時(shí),,將會(huì)覆蓋原來的文件
148    -p/-c                        保留/不保留源文件的屬性
149    -R, -r, --recursive          復(fù)制目錄及目錄內(nèi)的所有項(xiàng)目
150    -s, --symbolic-link          只創(chuàng)建符號(hào)鏈接而不是復(fù)制文件
151                         注意:和ln -s的效果一樣,,創(chuàng)建時(shí)要在目標(biāo)目錄下
152
153  --------------------------------------------------------
154  [zhengxh@hoverzg stdshell]$ ls -l
155  lrwxrwxrwx  1 zhengxh cvs          5  6月 14 10:44 md -> mydir
156
157  [zhengxh@hoverzg stdshell]$ cp -a md mytestdir/
158  [zhengxh@hoverzg stdshell]$ ls -F mytestdir/
159  md@
160
161  [zhengxh@hoverzg stdshell]$ cp -aL md mytestdir/
162  [zhengxh@hoverzg stdshell]$ cd mytestdir/
163  [zhengxh@hoverzg mytestdir]$ ls -F
164  md/
165
166  #可以看到開始沒有加L參數(shù)之前,我們復(fù)制到mytestdir中的僅僅是一個(gè)符號(hào)鏈接,。
167  而且一般這個(gè)符號(hào)鏈接由于路徑改變所以已經(jīng)沒有意義,。而加了L參數(shù)后,把整個(gè)
168  目錄都復(fù)制過去了,,目錄名是符號(hào)鏈接的名字,。
169
170  [zhengxh@hoverzg stdshell]$ ls -l
171  drwxrwxrw-  2 zhengxh cvs       4096  6月 14 11:20 ff
172  [zhengxh@hoverzg stdshell]$ cp -R ff mytestdir/
173  [zhengxh@hoverzg mytestdir]$ ls -l
174  drwxr-xr--  2 zhengxh cvs 4096  6月 15 10:20 ff
175
176  #請(qǐng)看上面的復(fù)制過來的目錄時(shí)間和權(quán)限都改變了
177  #如果要保持它原來的屬性,請(qǐng)加上-p選項(xiàng),。
178
179
180  #cp的其他用法
181  (1)cp /dev/cdrom xxxx.iso  將光盤做成iso文件
182
183  --------------------------------------------------------
184
185  rm (刪除文件和目錄)
186
187  用法:rm [選項(xiàng)]... 目錄...
188    -f, --force           強(qiáng)制刪除,不提示用戶
189    -i, --interactive     在刪除前要尋問用戶
190    -r, -R, --recursive   輪訓(xùn)刪除
191    -d, --directory       可以用來刪除符號(hào)鏈接目錄
192    --                    刪除一個(gè)頭是-的文件
193
194
195  --------------------------------------------------------
196  [zhengxh@hoverzg stdshell]$ rm -hh
197  rm:無效選項(xiàng) -- h
198  請(qǐng)嘗試執(zhí)行‘rm --help’來獲取更多信息,。
199  [zhengxh@hoverzg stdshell]$ rm -- -hh
200  rm:是否刪除一般文件‘-hh’? y
201
202  --------------------------------------------------------
203
204  mv (刪除文件或更改目錄/文件名)
205
206  用法:mv [選項(xiàng)]... 來源 目的地
207    或:mv [選項(xiàng)]... 來源... 目錄
208
209    -f, --force           強(qiáng)制刪除,不提示用戶
210    -i, --interactive     在刪除前要尋問用戶
211    -u, --update          只在<來源>文件比目的地文件新,或目的地文件
212                                不存在時(shí)才會(huì)移動(dòng)
213
214
215
216  rename  (批量文件名的更改)
217
218      rename [現(xiàn)有文件包含字符串] [更改后的字符串] [文件列表]
219
220  --------------------------------------------------------
221
222  #把所有.exe文件中的.exe的文件名字符串,,改變成.out
223  [zhengxh@hoverzg stdshell]$ rename .exe .out *.exe
224
225  --------------------------------------------------------
226
227  .取得文件名或目錄名
228
229  basename
230      basename [filename] [后綴字符串]
231
232  dirname
233
234      dirname [dirname] [取得父目錄]
235
236
237  4, 文件內(nèi)容查看
238
239      * cat  由第一行開始顯示檔案內(nèi)容
240      * tac  從最後一行開始顯示,,可以看出 tac 是 cat 的倒著寫!
241      * nl   顯示的時(shí)候,,順道輸出行號(hào),!
242      * more 一頁一頁的顯示檔案內(nèi)容
243      * less 與 more 類似,但是比 more 更好的是,,他可以往前翻頁,!
244      * head 只看頭幾行
245      * tail 只看尾巴幾行
246      * od   以二進(jìn)位的方式讀取檔案內(nèi)容!
247
248
249  cat (將文件內(nèi)容或標(biāo)準(zhǔn)輸入-,連續(xù)的輸出到標(biāo)準(zhǔn)輸出)
250
251  用法: cat [-AEnTv] [FILE]...
252
253    -A,--show-all            相當(dāng)于-vET的組合,,可以列出一些特殊的字符
254    -e                       相當(dāng)于-vE選項(xiàng)的組合
255    -E, --show-ends          在行的末尾顯示$符號(hào)
256    -n, --number             在輸出行的前面加上行號(hào)
257    -s, --squeeze-blank      只打印多個(gè)連續(xù)空白行的一行
258    -t                       相當(dāng)于-vT選項(xiàng)的組合
259    -T, --show-tabs          顯示TAB鍵為^I
260    -v, --show-nonprinting   顯示非打印字符^和 M-, 除了LFD and TAB
261
262  --------------------------------------------------------
263
264  [zhengxh@hoverzg stdshell]$ cat -A file
265  rwxrwsrwx^Igprs^I512^IGPRS$
266  12345wxrwsrwx^Igprs^I512^Izhengxh$
267  $
268  adf$
269  adf$
270  a$
271  fd$
272  $
273  $
274  $
275  adfadsf$
276  $
277  [zhengxh@hoverzg stdshell]$ cat -sn file
278       1  rwxrwsrwx       gprs    512     GPRS
279       2  12345wxrwsrwx   gprs    512     zhengxh
280       3
281       4  adf
282       5  adf
283       6  a
284       7  fd
285       8
286       9  adfadsf
287      10
288  #可以看到多個(gè)空白行只顯示了一個(gè)空白行
289
290  --------------------------------------------------------
291
292  tac (反向顯示)
293
294    -r, --regex              按正則表達(dá)式作為分隔符,,把內(nèi)容反轉(zhuǎn)
295    -s, --separator=STRING   使用STRING而不是默認(rèn)的/n把內(nèi)容反轉(zhuǎn)
296
297
298  --------------------------------------------------------
299
300  [zhengxh@hoverzg stdshell]$ tac t
301  d
302  dfa
303  adfa
304  adf
305  this is a test
306  [zhengxh@hoverzg stdshell]$ cat t
307  this is a test
308  adf
309  adfa
310  dfa
311  d
312  --------------------------------------------------------
313
314  nl (給輸出的文件內(nèi)容加上行號(hào))
315      nl 可以對(duì)行號(hào)進(jìn)行比較多的樣式的設(shè)計(jì),包括:
316      (1) 行號(hào)的位數(shù)
317      (2) 行號(hào)的補(bǔ)零設(shè)計(jì)
318
319  參數(shù):
320  -b  :指定行號(hào)指定的方式,,主要有兩種:
321        -b a :表示不論是否為空行,,也同樣列出行號(hào);
322        -b t :(默認(rèn))如果有空行,,空的那一行不要列出行號(hào),;
323  -n  :列出行號(hào)表示的方法,主要有三種:
324        -n ln :行號(hào)在螢?zāi)坏淖钭蠓斤@示,;
325        -n rn :行號(hào)在自己欄位的最右方顯示,,且不加 0 ;
326        -n rz :行號(hào)在自己欄位的最右方顯示,,且加 0 ,;
327  -w  :行號(hào)欄位的佔(zhàn)用的位元數(shù)。
328
329  -----------------例子來自于鳥哥---------------------------
330
331  [root@linux ~]# nl -b a -n rz -w 3 /etc/issue
332  001     Fedora Core release 4 (Stentz)
333  002     Kernel /r on an /m
334  003
335  # 變成了僅有三位數(shù)的行號(hào)了...
336
337  nl 可以將輸出的檔案內(nèi)容自動(dòng)的加上行號(hào),!其結(jié)果與 cat -n 有點(diǎn)不太一樣,,
338  nl 可以將行號(hào)做比較多的顯示設(shè)計(jì),,包括位數(shù)與是否自動(dòng)補(bǔ)齊 0
339  等等的功能呢~
340
341  --------------------------------------------------------
342
343  .文件內(nèi)容的翻頁查看
344
345  more (一頁一頁的翻看文件)
346
347  常見的操作:
348      (回車鍵)Enter    向下翻一行
349      (空白鍵)space    向下翻一頁
350      /               向下查找 n 向下查找下一處
351      q               退出
352
353
354  --------------------------------------------------------
355
356  less (可以上下翻動(dòng),功能強(qiáng)大的文件瀏覽器)
357
358      * 空白鍵    :向下翻動(dòng)一頁,;
359      * [pagedown]:向下翻動(dòng)一頁,;
360      * [pageup]  :向上翻動(dòng)一頁;
361      * /字串     :向下搜尋『字串』的功能,;
362      * ?字串     :向上搜尋『字串』的功能,;
363      * n         :重複前一個(gè)搜尋 (與 / 或 ? 有關(guān)!)
364      * N         :反向的重複前一個(gè)搜尋 (與 / 或 ? 有關(guān),!)
365      * q         :離開 less 這個(gè)程式;
366
367  具體的功能請(qǐng)查看 man less 或 less -?/--help
368
369  --------------------------------------------------------
370
371  .取檔案內(nèi)容
372      head, tail, awk, sed, grep
373      后面的三種是專門的語言,,會(huì)專門進(jìn)行筆記,。這里只是說明一下前兩種的用法。
374
375  head (顯示從文件頭開始的前10行-默認(rèn))
376
377      用法:head [選項(xiàng)]... [文件]...
378
379      -c num      顯示前<num>bytes的文件內(nèi)容
380      -n num      顯示前<num>行
381      -v/q        是否顯示/不顯示(默認(rèn))文件名
382
383  ------------------------例子------------------------------
384  [zhengxh@hoverzg stdshell]$ head -q -n 5 test.c
385  #include <stdio.h>
386  #include <unistd.h>
387
388  int
389  main(void)
390  [zhengxh@hoverzg stdshell]$ head -v -n 5 test.c | nl
391       1  ==> test.c <==
392       2  #include <stdio.h>
393       3  #include <unistd.h>
394
395       4  int
396       5  main(void)
397
398  --------------------------------------------------------
399
400  tail (顯示文件的最后10行-默認(rèn))
401
402      用法:tail [選項(xiàng)]... [文件]...
403
404      -c num/+num     顯示前<num>bytes的文件內(nèi)容/從<num>行開始顯示后面的內(nèi)容
405      -n num/+num     顯示前<num>行/從<num>開始顯示后面的內(nèi)容
406      -v/q            是否顯示/不顯示(默認(rèn))文件名
407
408  --------------------------------------------------------
409
410  [zhengxh@hoverzg stdshell]$ head -n 3 test.c | nl -b a
411       1  #include <stdio.h>
412       2  #include <unistd.h>
413       3
414
415  [zhengxh@hoverzg stdshell]$ tail -n +3 test.c | nl -b a
416       1
417       2  int
418       3  main(void)
419       4  {
420       5          int i;
421       6
422       7          for(i=0; i<100; i++){
423       8                  fprintf(stderr, "put %d/n", i);
424       9                  sleep(1);
425      10          }
426      11          return ;
427      12  }
428  [zhengxh@hoverzg stdshell]$ tail -n 3 test.c | nl -b a
429       1          }
430       2          return ;
431       3  }
432
433  --------------------------------------------------------
434
435  擴(kuò)散:
436
437  .取第10行到20行的內(nèi)容
438  --------------------------------------------------------
439
440  [zhengxh@hoverzg stdshell]$ head -n 20 abs.txt | tail -n 10 | nl -b a
441
442  --------------------------------------------------------
443
444
445  .按照不同編碼顯示文件內(nèi)容
446      主要命令有: od , vim(也可以在編輯器里面轉(zhuǎn)變), hexdump
447
448  od (把文件內(nèi)容用2進(jìn)制的編碼形式顯示出來)
449
450      用法: od [OPTION]... [FILE]...
451
452     -t  :後面可以接各種『類型 (TYPE)』的輸出,,例如:
453        a       :利用預(yù)設(shè)的字元來輸出,;
454        c       :使用 ASCII 字元來輸出
455        d[size] :利用十進(jìn)位(decimal)來輸出資料,每個(gè)整數(shù)佔(zhàn)用 size bytes ,;
456        f[size] :利用浮點(diǎn)數(shù)值(floating)來輸出資料,,每個(gè)數(shù)佔(zhàn)用 size bytes ;
457        o[size] :利用八進(jìn)位(octal)來輸出資料,,每個(gè)整數(shù)佔(zhàn)用 size bytes ,;
458        x[size] :利用十六進(jìn)位(hexadecimal)來輸出資料,每個(gè)整數(shù)佔(zhàn)用 size bytes ,;
459
460    -a   same as -t a,  使用預(yù)設(shè)的字符輸出
461    -b   same as -t oC, 用八進(jìn)制輸出
462    -c   same as -t c,  使用 ASCII 字符輸出
463    -d   same as -t u2, select unsigned decimal shorts
464    -f   same as -t fF, select floats
465    -h   same as -t x2, select hexadecimal shorts
466    -i   same as -t d2, select decimal shorts
467    -l   same as -t d4, select decimal longs
468    -o   same as -t o2, select octal shorts
469    -x   same as -t x2, select hexadecimal shorts
470
471  --------------------------------------------------------
472
473  .建立新文件和修改文件時(shí)間
474  touch (建立新文件和修改文件時(shí)間-mtime和atime)
475      .建立新文件
476      .修改文件的atime 和 mtime 兩個(gè)時(shí)間
477
478  [root@linux ~]# touch [-acdmt] 檔案
479  參數(shù):
480          -a  :僅僅修改 access time,;
481          -c  :僅修改時(shí)間,而不創(chuàng)建文件,;
482          -d  :后面可以接日期,,也可以使用 --date="日期或時(shí)間"
483          -m  :僅修改 mtime ;
484          -t  :后面可以接時(shí)間,,格式為[YYMMDDhhmm]
485
486  * modification time (mtime):該文件的內(nèi)容最后的修改時(shí)間,。
487  * status time (ctime):        該文件的狀態(tài)(訪問權(quán)限、用戶ID,、鏈接數(shù)等)的修改時(shí)間,。
488  * access time (atime):        文件的最后訪問時(shí)間。如 cat ~/.bashrc ,,就更新 atime 了,。
489
490  --------------------------------------------------------
491
492  [zhengxh@hoverzg stdshell]$ touch -t 200706151910 awkf
493  [zhengxh@hoverzg stdshell]$ ls -l awkf
494  -rw-r--r--  1 zhengxh cvs 95 2007-06-15  awkf
495
496  #注意我們系統(tǒng)默認(rèn)顯示的是mtime,也就是文件的內(nèi)容最后改變的時(shí)間,。
497  #但在復(fù)制文件時(shí),,我們卻無法復(fù)制文件的ctime,。
498
499  [root@linux ~]# ls -l /etc/man.config
500  -rw-r--r--  1 root root 4506 Apr  8 19:11 /etc/man.config
501  [root@linux ~]# ls -l --time=atime /etc/man.config
502  -rw-r--r--  1 root root 4506 Jul 19 17:53 /etc/man.config
503  [root@linux ~]# ls -l --time=ctime /etc/man.config
504  -rw-r--r--  1 root root 4506 Jun 25 08:28 /etc/man.config
505
506  --------------------------------------------------------
507
508  .文件和目錄的權(quán)限操作
509  umask, chattr/lsattr, chown, chmod,
510
511  umask (目前建立文件或目錄的預(yù)設(shè)值)
512      用法:   umask [-Sp]
513          -S      以字符的形式打印出預(yù)設(shè)權(quán)限
514          -p      以數(shù)字的形式打印出預(yù)設(shè)的權(quán)限
515                  沒有參數(shù)時(shí)數(shù)值形式打印預(yù)值
516  注意:目錄:預(yù)設(shè)的權(quán)限是777減去umask的值
517        文件:預(yù)設(shè)的權(quán)限是777減去umask的預(yù)設(shè)值和每組的可執(zhí)行權(quán)限值,
518      即:每組的可執(zhí)行位--x--x--x也就是文件的最大權(quán)限是666
519      計(jì)算時(shí),,對(duì)于文件要先挖掉文件的可執(zhí)行權(quán)限,,再相減
520       umask 為 003 ,所以拿掉的屬性為 --------wx,,因此:
521       對(duì)于文件要先挖掉可執(zhí)行權(quán)限即: 002: (-rw-rw-rw-) - (--------wx) = -rw-rw-r--
522       目錄: (drwxrwxrwx) - (--------wx) = drwxrwxr--
523
524  --------------------------------------------------------
525
526  #預(yù)設(shè)權(quán)限
527  [zhengxh@hoverzg stdshell]$ umask
528  0022
529  [zhengxh@hoverzg stdshell]$ cat > ee
530  adfa
531
532  #666和022(110-110-110)相減 (000-010-010)
533  [zhengxh@hoverzg stdshell]$ ls -l ee
534  -rw-r--r--  1 zhengxh cvs 5  6月 19 07:35 ee
535  [zhengxh@hoverzg stdshell]$ ls -l eee
536  -rw-rw-r--  1 zhengxh cvs 0  6月 19 07:36 eee
537
538  #重新設(shè)定預(yù)設(shè)值
539  [zhengxh@hoverzg stdshell]$ umask 0002
540  [zhengxh@hoverzg stdshell]$ mkdir ffff
541  [zhengxh@hoverzg stdshell]$ ls -l | grep ffff
542  drwxrwxr-x  2 zhengxh cvs       4096  6月 19 07:36 ffff
543
544  --------------------------------------------------------
545
546  chattr (修改文件的隱藏屬性)
547      用法: chattr [-RV] [-+=AacDdijsSu] [-v version] files...
548      -R          改變其子目錄的文件,,符號(hào)文件會(huì)被忽略
549      -v          顯示出修改過程
550      ---
551      參數(shù):
552      +   :增加某一個(gè)特殊參數(shù),其他原本存在參數(shù)則不動(dòng),。
553      -   :移除某一個(gè)特殊參數(shù),,其他原本存在參數(shù)則不動(dòng)。
554      =   :設(shè)定一定,,且僅有後面接的參數(shù)
555
556      i  :對(duì)于一個(gè)文件:不能被刪除,、改名、設(shè)定鏈接也無法寫入或新添加內(nèi)容
557           對(duì)于系統(tǒng)文件安全性有很大的益處,。
558      a  :如果a屬性被設(shè)定,,這文件就只能增加內(nèi)容,而不能刪除,,只有 root
559           才能設(shè)定這個(gè)屬性,。
560      A  :如果 A 這個(gè)屬性,該文件(或目錄)的存取時(shí)間 atime (access)
561           將不可被修改,,可避免例如手手提電腦容易有磁盤I/O 的錯(cuò)誤發(fā)生,!
562      S  :如果S屬性被設(shè)定,就類似sync 的功能,!它會(huì)把內(nèi)容同步寫入磁盤中,!
563           可以有效避免文件內(nèi)容的丟失。
564      c  :這個(gè)屬性設(shè)定之後,,將會(huì)自動(dòng)的將此檔案『壓縮』,,在讀取的時(shí)候?qū)?huì)自動(dòng)解壓縮,
565           但是在儲(chǔ)存的時(shí)候,,將會(huì)先進(jìn)行壓縮後再儲(chǔ)存(看來對(duì)於大檔案似乎蠻有用的,!)
566      d  :當(dāng)dump(備份)程序被執(zhí)行的時(shí)候,設(shè)定 d 屬性將可使該檔案(或目錄)不具有dump功能
567      j  :當(dāng)使用 ext3 這個(gè)檔案系統(tǒng)格式時(shí),,設(shè)定 j 屬性將會(huì)使檔案在寫入時(shí)先記錄在
568           journal 中,!但是當(dāng) filesystem 設(shè)定參數(shù)為 data=journalled 時(shí),由於已經(jīng)設(shè)定了
569           日誌了,,所以這個(gè)屬性無效,!
570      s  :當(dāng)檔案設(shè)定了 s 參數(shù)時(shí),他將會(huì)被完全的移除出這個(gè)硬碟空間。
571      u  :與 s 相反的,,當(dāng)使用 u 來設(shè)定檔案時(shí),,則資料內(nèi)容其實(shí)還存在磁碟中,
572           可以使用來 undeletion.
573      注意:這個(gè)屬性設(shè)定上面,,比較常見的是 a 與 i 的設(shè)定值,,而且很多設(shè)定值必須要身為
574      root 才能夠設(shè)定的喔!
575
576  [root@linux ~]# cd /tmp
577  [root@linux tmp]# touch attrtest
578  [root@linux tmp]# chattr +i attrtest
579  [root@linux tmp]# rm attrtest
580  rm: remove write-protected regular empty file `attrtest'? y
581  rm: cannot remove `attrtest': Operation not permitted
582
583  --------------------------------------------------------
584
585  lsattr (顯示文件的隱藏屬性)
586      Usage: lsattr [-RVadlv] [files...]
587
588      -R      遞歸顯示文件夾和子文件夾里的所有內(nèi)容
589      -a      顯示文件夾里的所有文件包括.
590      -d      顯示目錄,,而不是顯示內(nèi)容
591
592
593  --------------------------------------------------------
594
595  [zhengxh@hoverzg aa]$ lsattr -a
596  ------------- ./cc.back
597  ------------- ./bb
598  ------------- ./bc.tar
599
600  [zhengxh@hoverzg aa]$ lsattr -R
601  ------------- ./cc.back
602  ------------- ./bb
603
604  ./bb:
605  ------------- ./bb/test1
606  ------------- ./bb/test2
607  ------------- ./bb/cc
608
609  ./bb/cc:
610  ------------- ./bb/cc/cc2
611
612  --------------------------------------------------------
613
614  chown (改變文件和目錄的所有者)
615  chgrp (改變文件和目錄的組)
616
617  用法:chown [選項(xiàng)]... 所有者[:[組]] 文件...
618    或:chown [選項(xiàng)]... :組 文件...
619    或:chown [選項(xiàng)]... --reference=參考文件 文件...
620
621    -c, --changes          當(dāng)文件所有者改變了顯示出詳細(xì)信息
622    -f, --silent, --quiet  不輸出錯(cuò)誤消息
623        --reference=RFILE  使用RFILE文件的模式作為目標(biāo)模式而不是OWNER:GROUP的值
624    -R                遞歸改變?cè)撃夸浖捌渥幽夸浐瓦@些目錄下的文件的所有者和組所有者
625
626
627
628
629  chmod (改變文件的屬性)
630
631  用法:chmod [-cfvR]... [ugoa][+-=][rwxXst] 文件...
632    或:chmod [-cfvR]... 八進(jìn)制模式 文件...
633    或:chmod [-cfvR]... --reference=參考文件 文件...
634
635    -c, --changes           當(dāng)文件模式改變了顯示出詳細(xì)信息
636    -f, --silent, --quiet   不輸出錯(cuò)誤信息
637    -v, --verbose           顯示改變的詳細(xì)信息
638        --reference=RFILE   使用RFILE文件的模式作為目標(biāo)模式
639    -R, --recursive         遞歸的改變文件和目錄的屬性
640
641
642      * 4 為 SUID            :用戶設(shè)置ID,,把可執(zhí)行文件的權(quán)限在執(zhí)行時(shí)改成文件的所者
643      * 2 為 SGID            :組設(shè)置ID
644      * 1 為 Sticky bit      :對(duì)目錄設(shè)置,只有對(duì)該目錄有寫權(quán)限的用戶,,并且(1),擁有該文件 (2),擁有此目錄
645                          (3),是超級(jí)用戶 滿足這三者之一時(shí)才能更名或刪除該文件,。
646
647  --------------------------------------------------------
648
649  drwxrwxrwt  61 root root 57344  6月 19 18:32 tmp
650
651  #設(shè)置用戶組ID位
652  [zhengxh@hoverzg stdshell]$ chmod u+s t1.sh
653  [zhengxh@hoverzg stdshell]$ ls -l t1.sh
654  -rwsrw-r--  1 zhengxh zhengxh 143  1月  6 11:02 t1.sh
655  #設(shè)置粘著位
656  [zhengxh@hoverzg stdshell]$ chmod a+t h1.sh
657  [zhengxh@hoverzg stdshell]$ ls -l h1.sh
658  -rwxrw-r-T  1 zhengxh zhengxh 75  4月 11 11:33 h1.sh
659
660  --------------------------------------------------------
661
662  .文件和目錄查找命令
663      file, which, whereis, find, locate, xargs
664
665  file (查看文件的格式)
666      報(bào)告文件類型。
667
668  which (查看命令的位置)
669      用法:   which [-a] [程序文件名1] [程序文件名2] [...]
670              該指令會(huì)在PATH所列出的路徑中,,尋找后面列出的程序文件名,。
671      -a      會(huì)尋找包括alias在內(nèi)的程序名
672
673  --------------------------------------------------------
674
675  [zhengxh@hoverzg ~]$ which -a ls pwd whoami hh
676  alias ls='ls --color=tty'
677          /bin/ls
678  /bin/pwd
679  /usr/bin/whoami
680  /usr/bin/which: no hh in
681  (/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin)
682
683  --------------------------------------------------------
684
685  whereis (查看程序的位置)
686      用法:whereis [ -bmsu ] [ -BMS directory...  -f ] filename ...
687         -b     只搜索二進(jìn)制文件
688         -m     只找在說明文件 manual路徑下的文件
689         -s     只尋找sources來源文件
690         -u     沒有說明文件的文件
691
692  --------------------------------------------------------
693  [zhengxh@hoverzg ~]$ whereis -b ls
694  ls: /bin/ls
695  [zhengxh@hoverzg ~]$ whereis ls
696  ls: /bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz
697  [zhengxh@hoverzg ~]$
698
699  --------------------------------------------------------
700
701  locate (查詢和搜索文件)
702
703    搜索用法:     locate [-qi] [-d <path>] [--database=<path>] <search string>...
704                  locate [-r <regexp>] [--regexp=<regexp>]
705  數(shù)據(jù)庫用法:    locate [-qv] [-o <file>] [--output=<file>]
706                  locate [-e <dir1,dir2,...>] [-f <fs_type1,...> ] [-l <level>]
707                         [-c] <[-U <path>] [-u]>
708    一般用法:     locate [-Vh] [--version] [--help]
709
710     -q                 - 不輸出錯(cuò)誤信息
711     -i                 - 大小寫敏感.
712     -d                 - 說明locate數(shù)據(jù)庫建立的路徑
713     -u                 - 創(chuàng)建從/開始的索引數(shù)據(jù)庫
714     -U <dir>           - 創(chuàng)建從<dir>開始的索引數(shù)據(jù)庫
715     -c                 - 解析原來locate的配置文件 '/etc/updatedb.conf'
716                          當(dāng)使用-u or -U 選項(xiàng)時(shí),如果'updatedb'鏈接到locate則會(huì)自動(dòng)使用該文件
717     -e <dir1,dir2,...> - 使用-u和-U選項(xiàng)時(shí)從locate數(shù)據(jù)庫中排除目錄
718     -f <fs_type1,...>  - 使用-u和-U選項(xiàng)時(shí)從locate數(shù)據(jù)庫中排除文件系統(tǒng)類型(ie. NFS, etc)
719     -r <regexp>        - 使用基本的正則表達(dá)式查詢
720     --regexp=<regexp>  - 使用標(biāo)準(zhǔn)正則表達(dá)式
721
722  --------------------------------------------------------
723
724  #使用正則表達(dá)式
725  [zhengxh@hoverzg writemybook]$ locate -r "上海"
726  /home/zhengxh/music/上海灘.mp3
727
728  #一次搜索多個(gè)文件
729  [zhengxh@hoverzg music]$ locate -q "上海" "天空"
730  /home/zhengxh/music/上海灘.mp3
731  /home/zhengxh/music/classic/天空之城.mp3
732  /home/zhengxh/music/hope/海闊天空.mp3
733
734
735  --------------------------------------------------------
736
737  find (查找文件的位置)
738      用法: find [PATH] [option] [-print -exec -ok]
739
740  選項(xiàng)[option]:
741  1. 與時(shí)間有關(guān)的參數(shù):
742     -atime n :n 為數(shù)字,在 n 天之前的'一天之內(nèi)'被 access 過的文件,;
743     -ctime n :n 為數(shù)字,在 n 天之前的『一天之內(nèi)』被 change 過狀態(tài)的文件,;
744     -mtime n :n 為數(shù)字,,在 n 天之前的『一天之內(nèi)』被 modification 過的文件;
745     -newer file :比file 新的文件就輸出
746
747  2. 與使用者或組名有關(guān)的參數(shù):
748     -uid n :n 為數(shù)字,,這個(gè)數(shù)字是使用者的帳號(hào) ID,,亦即 UID ,這個(gè) UID 是記錄在 /etc/passwd
749     -gid n :n 為數(shù)字,,這個(gè)數(shù)字是群組名稱的 ID,,亦即 GID,這個(gè) GID 記錄在 /etc/group
750     -user name :name 為使用者賬號(hào)名稱,!例如 dmtsai
751     -group name:name 為用戶的組名,,例如 users ;
752     -nouser    :選找文件的擁有者不存在 /etc/passwd 的人,!
753     -nogroup   :選找文件的組名不存在 /etc/group 的文件,!
754
755  3. 與文件權(quán)限及文件名有關(guān)的參數(shù):
756     -name filename:查詢文件名為 filename 的文件;
757     -size [+-]SIZE:查詢比 SIZE 還要大(+)或小(-)的文件,。這個(gè) SIZE 的規(guī)格有:
758                     c: 代表 byte,, k: 代表 1024bytes。所以,,要找比 50KB
759                     還要大的文件,,就是『 -size +50k 』
760     -type TYPE    :尋找類型為TYPE 的文件,類型主要有:一般文件 (f),
761                     裝置文件 (b, c), 目錄 (d), 連接文件 (l), socket (s),
762                     及 FIFO (p) 等。
763     -perm mode  :查詢文件的屬性等于 mode 的文件,,這個(gè) mode 為類似 chmod
764                   的屬性值,,例如, -rwsr-xr-x 的屬性為 4755 ,!
765     -perm -mode :查詢文件的屬性『必須要全部包括 mode 的屬性為』的文件,,例如,
766                   要查詢 -rwxr--r-- ,,即 0744 的文件,,使用 -perm -0744,
767                   如果一個(gè)文件的屬性為 -rwsr-xr-x ,,即 4755 時(shí),,也會(huì)被列出來,
768                   因?yàn)?-rwsr-xr-x 的已經(jīng)包括了 -rwxr--r-- 的屬性了,。
769     -perm +mode :查詢文件的屬性『包含任一 mode 的屬性』的文件,,例如,查詢
770                   -rwxr-xr-x ,,亦即 -perm +755 時(shí),,但一個(gè)文件屬性為-rw-------
771                   也會(huì)被列出來,因?yàn)樗?-rw.... 的屬性存在,!
772  4. 動(dòng)作選項(xiàng):
773     -exec command :command 為其他指令,,-exec 後面可再接額外的指令來處理搜尋到
774                     的結(jié)果。
775     -print        :將結(jié)果列印到螢?zāi)簧?,這個(gè)動(dòng)作是預(yù)設(shè)動(dòng)作,!
776
777  --------------------------------------------------------
778
779  範(fàn)例:
780  範(fàn)例一:將過去系統(tǒng)上面 24 小時(shí)內(nèi)有更動(dòng)過內(nèi)容 (mtime) 的檔案列出
781  [root@linux ~]# find / -mtime 0
782  # 那個(gè) 0 是重點(diǎn)!0 代表目前的時(shí)間,,所以,,從現(xiàn)在開始到 24 小時(shí)前,
783  # 有變動(dòng)過內(nèi)容的檔案都會(huì)被列出來,!那如果是三天前的 24 小時(shí)內(nèi),?
784  # find / -mtime 3 ,意思是說今天之前的 3*24 ~ 4*24 小時(shí)之間
785  # 有變動(dòng)過的檔案都被列出的意思,!同時(shí) -atime 與 -ctime 的用法相同,。
786
787  範(fàn)例二:尋找 /etc 底下的檔案,如果檔案日期比 /etc/passwd 新就列出
788  [root@linux ~]# find /etc -newer /etc/passwd
789  # -newer 用在分辨兩個(gè)檔案之間的新舊關(guān)係是很有用的,!
790
791  範(fàn)例三:搜尋 /home 底下屬於 dmtsai 的檔案
792  [root@linux ~]# find /home -user dmtsai
793  # 這個(gè)東西也很有用的~當(dāng)我們要找出任何一個(gè)使用者在系統(tǒng)當(dāng)中的所有檔案時(shí),,
794  # 就可以利用這個(gè)指令將屬於某個(gè)使用者的所有檔案都找出來喔!
795
796  範(fàn)例四:搜尋系統(tǒng)中不屬於任何人的檔案
797  [root@linux ~]# find / -nouser
798  # 透過這個(gè)指令,,可以輕易的就找出那些不太正常的檔案,。
799  # 如果有找到不屬於系統(tǒng)任何人的檔案時(shí),不要太緊張,
800  # 那有時(shí)候是正常的~尤其是您曾經(jīng)以原始碼自行編譯軟體時(shí),。
801
802  範(fàn)例五:找出檔名為 passwd 這個(gè)檔案
803  [root@linux ~]# find / -name passwd
804  # 利用這個(gè) -name 可以搜尋檔名?。?805
806  範(fàn)例六:搜尋檔案屬性為 f (一般檔案) 的檔案
807  [root@linux ~]# find /home -type f
808  # 這個(gè) -type 的屬性也很有幫助喔,!尤其是要找出那些怪異的檔案,,
809  # 例如 socket 與 FIFO 檔案,可以用 find /var -type p 或 -type s 來找,!
810
811  範(fàn)例七:搜尋檔案當(dāng)中含有 SGID/SUID/SBIT 的屬性
812  [root@linux ~]# find / -perm +7000
813  # 所謂的 7000 就是 ---s--s--t ,,那麼只要含有 s 或 t 的就列出,
814  # 所以當(dāng)然要使用 +7000 ,,使用 -7000 表示要含有 ---s--s--t 的所有三個(gè)權(quán)限,,
815  # 因此,就是 +7000 ~瞭乎,?
816
817  範(fàn)例八:將上個(gè)範(fàn)例找到的檔案使用 ls -l 列出來~
818  [root@linux ~]# find / -perm +7000 -exec ls -l {} /;
819  # 注意到,,那個(gè) -exec 後面的 ls -l 就是額外的指令,
820  # 而那個(gè) {} 代表的是『由 find 找到的內(nèi)容』的意思~所以,, -exec ls -l {}
821  # 就是將前面找到的那些檔案以 ls -l 列出長(zhǎng)的資料,!至於 /; 則是表示
822  # -exec 的指令到此為止的意思~意思是說,整個(gè)指令其實(shí)只有在
823  # -exec (裡面就是指令下達(dá)) /;
824  # 也就是說,,-exec 最後一定要以 /; 結(jié)束才行,!這樣瞭解了嗎?,!
825
826  範(fàn)例九:找出系統(tǒng)中,大於 1MB 的檔案
827  [root@linux ~]# find / -size +1000k
828  # 雖然在 man page 提到可以使用 M 與 G 分別代表 MB 與 GB,,
829  # 不過,,俺卻試不出來這個(gè)功能~所以,目前應(yīng)該是僅支援到 c 與 k 吧,!
830
831  --------------------------------------------------------
832
833  xargs ()
834      當(dāng)使用find時(shí),,參數(shù)過長(zhǎng)時(shí)可能會(huì)產(chǎn)生內(nèi)存不足的問題。而用xargs則不會(huì),,因?yàn)樗蛔x一部分,。
835      man xargs可以看出:
836      xargs從標(biāo)準(zhǔn)輸入中讀取數(shù)據(jù),并以空白和換行符分割每個(gè)參數(shù)(引號(hào)中的空白不作為分割符),。
837  然后執(zhí)行指定的命令(并把分解后的參數(shù)附加到命令后面),。
     如果沒有指定具體的命令,默認(rèn)使用/bin/echo命令,。
838  如果沒有特別指定,,xargs會(huì)把`_'當(dāng)作結(jié)束標(biāo)志。
839  綜上所述,xargs不適合用作文本處理,,特別是重要的數(shù)據(jù)處理,。
840  xargs處理標(biāo)準(zhǔn)輸入,然后把處理過后的內(nèi)存?zhèn)鹘o后續(xù)的命令作為參數(shù),。
841  使用xargs的主要理由是控制參數(shù)的個(gè)數(shù)和位置,,避免命令行過長(zhǎng)而出現(xiàn)錯(cuò)誤。
842
843
844  --------------------------------------------------------
845  #這樣的話出現(xiàn)了錯(cuò)誤
846  [zhengxh@hoverzg music]$ find /home/zhengxh/music  -print | xargs file
847  xargs: unmatched 單 quote; by default quotes are special to xargs unless you
848  use the -0 option
849
850  #請(qǐng)使用tr -d
851  [zhengxh@hoverzg music]$ find .  -print | tr -d "/"'"  | xargs file
852  .:                                       directory
853  ./月牙泉.mp3:                            MPEG ADTS, layer III, v1, 160 kBits,
854  44.1 kHz, JntStereo
855  ./pub1195955560195.mp3:                  MP3 file with ID3 version 2.3.0 tag
856
857
858  --------------------------------------------------------

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多