国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

樓主: changyongid
打印 上一主題 下一主題

一天一個Linux命令

[復制鏈接]
81
 樓主| 發表于 2009-9-16 08:59:33 | 只看該作者
由于cp過于是默認覆蓋已存在文件的,所以直接使用這個命令時會有一點危險。在~/.bashrc里面用alias將其替換成 cp -i 即可,加上-i參數,每次要覆蓋之前,它都會提示,這樣就安全了一些,防止誤操作。
82
 樓主| 發表于 2009-9-16 19:51:18 | 只看該作者
命令 : rm
使用 : rm [選項]... 文件...
說明 : 刪除文件

  -f, --force      強制刪除,不需要提示
  -i                  每次刪除行為之前,都提示刪除動作(需要用戶確認刪除)
  -I                  當一次刪除文件數為3個或3個以上時,或在遞歸刪除一個目錄時,只提示一次.與 -i 相比,這個選項即保障了安全又避免了刪除多個文件時的多次打擾。

  -r, -R, --recursive  遞歸刪除目錄和其中的文件
  -v, --verbose         交互動作,顯示正在進行的動作
   
默認情況下,rm命令不會刪除目錄。使用 -r 或 -R 選項來刪除目錄和目錄內的文件。

如果一個文件名以“-”開頭,比如“-foo”,用下面兩個命令中任一個來刪除:
  rm -- -foo

  rm ./-foo

注意,當使用rm來刪除文件時,被刪除的文件是可恢復的。也就是說rm只刪除了它的索引結點而已。如果想要真正的刪除,不可恢復,可以考慮使用shred。

我們刪除一個文件,可以直接的rm刪除。
刪除一個目錄,可使用 rm -rf ... 注意,此處的f是強制。

默認的情況下,我們的刪除是不會提示信息的,顯然這樣是有些危險的。我就曾經犯過一個錯誤,錯將/bin/目錄里面的內容全部刪除掉了,結果可想而知。當然,我當時犯的錯誤跟我使用超級用戶root有直接的關系。
為了使我們的操作更安全,可以在.bashrc里用alias添加一行
rm='rm -i'
這樣,每次我們使用rm命令時都相當于使用 rm -i ,那么每次刪除都需要我們的確認了。這樣做是有一定好處的,當然還要考慮到個人的習慣問題。
83
 樓主| 發表于 2009-9-16 20:00:48 | 只看該作者
命令 : mv --help
使用 : mv [選項]... [-T] SOURCE DEST
    or:  mv [選項]... SOURCE... DIRECTORY
    or:  mv [選項]... -t DIRECTORY SOURCE...
將SOURCE 重命名為 DEST, 或將 SOURCE(s) 移動到 DIRECTORY.

  -f, --force                  強制,在覆蓋之前不進行提示
  -i, --interactive            覆蓋之前進行提示
  -n, --no-clobber          不覆蓋已存在的文件
注意:如果使用 -i, -f, -n, 這三個中的多個,則只有最后一個起作用。

  -t, --target-directory=DIRECTORY  將所有的 SOURCE 都移動到 DIRECTORY

學習了之前的命令之后,相信這個命令也會使用了。mv除了可以移動一個文件或目錄之外,還是一種對文件或目錄重命名的方法。
84
 樓主| 發表于 2009-9-16 20:01:57 | 只看該作者
加班是一件不好玩的事情,特別是在餓肚子的時候加班,而且還沒什么事情做的時候卻硬被拖著。
所以學習兩個命令,純當消遣……
85
 樓主| 發表于 2009-9-21 10:29:28 | 只看該作者
安排一下接下去要學的幾個命令:
echo  basename  ln  lndir  paste  stat  tee tree touch file split dirname

乍一看,好像太多了。
其中除了ln touch 之外,其它的都用的比較少,屬于雜類且有點偏的命令。它們每個都只完成一個小小的功能,但完成的很好。

學習每一個命令,都在自己電腦里多試幾次,多試幾個參數,一下就可以熟悉大概。這就是學習中的“多動手”吧。
86
 樓主| 發表于 2009-9-21 22:17:28 | 只看該作者
echo
英文“echo”是 “回聲”的意思。在Linux的命令里,它的作用是顯示一行內容。

功能說明:顯示文字。
語   法:echo [-ne][字符串]或 echo [--help][--version]
補充說明:echo會將輸入的字符串送往標準輸出。輸出的字符串間以空白字符隔開, 并在最后加上換行號。
參   數:-n 不要在最后自動換行
     -e 若字符串中出現以下字符,則特別加以處理,而不會將它當成一般
     文字輸出:
     \a 發出警告聲;
        \b 刪除前一個字符;
        \c 最后不加上換行符號;
        \f 換行但光標仍舊停留在原來的位置;
        \n 換行且光標移至行首;
       \r 光標移至行首,但不換行;
       \t 插入tab;
        \v 與\f相同;
        \\ 插入\字符;
        \nnn 插入nnn(八進制)所代表的ASCII字符;
      –help 顯示幫助
      –version 顯示版本信息
我們可以利用echo打印出上一次程序執行后的退出狀態。
87
 樓主| 發表于 2009-9-21 22:18:31 | 只看該作者
basename打印出文件名,不打印其路徑。若指定后綴,則也不打印后綴。
例:
  1. [changyongid@Fedora ~]$ basename /usr/include/stdio.h
  2. stdio.h
  3. [changyongid@Fedora ~]$ basename  /usr/include/stdio.h .h
  4. stdio
復制代碼
88
 樓主| 發表于 2009-9-21 22:24:57 | 只看該作者
dirname
作用:打印路徑名。
其參數是一個文件名。輸出除文件名之外的路徑。
例:
  1. [changyongid@Fedora ~]$ dirname ../linux/.bashrc
  2. ../linux
  3. [changyongid@Fedora ~]$ dirname /etc/passwd
  4. /etc
復制代碼
89
 樓主| 發表于 2009-9-23 14:12:01 | 只看該作者
file
使用: file [OPTION...] [FILE...]
測定文件的類型

  -m, --magic-file LIST      use LIST as a colon-separated list of magic
                               number files
  -z, --uncompress          試著探測壓縮文件類型
  -b, --brief                打印輸時不打印文件名
  -c, --checking-printout    打印輸出分析的詳細過程。與m連用,便于調試所用。

  -f, --files-from FILE     從FILE中讀取要分析的文件名列表

  -L, --dereference          顯示符號鍕接所指向的文件類型

file命令可以知道某個文件究竟是二進制的可執行文件還是shell腳本文件,或是其他格式的文件。其能識別目錄、shell腳本、英文文本、二進制可執行文件、C語言源文件、文本文件、DOS的可執行文件。能探測包括圖形、音頻等在內的多種媒體格式文件。
90
 樓主| 發表于 2009-9-23 14:14:26 | 只看該作者
本帖最后由 changyongid 于 2009-9-23 14:17 編輯

  1. 匯編文件
  2. $ file head.S
  3. head.S: ASCII C program text

  4. c源文件
  5. $ file main.c
  6. main.c: ASCII C program text

  7. mp3文件
  8. $ file ~/Documents/music/english/001.At\ last.MP3
  9. /home/changyongid/Documents/music/english/001.At last.MP3: MPEG ADTS, layer III, v1, 320 kbps, 44.1 kHz, JntStereo

  10. 下載到板上的
  11. $ file -b vivi
  12. DBase 3 index file

  13. 可執行的
  14. $ file -b tmp.o
  15. ELF 32-bit LSB executable, ARM, version 1, statically linked, not stripped

  16. 目錄
  17. $ file study/
  18. study/: directory
復制代碼
91
 樓主| 發表于 2009-9-24 20:33:16 | 只看該作者
用法:touch [選項]... 文件...
更新文件的訪問和修改時間,更新為當前時間。

如果參數指定的文件不存在,則創建它,創建的文件為空。

A FILE argument string of - is handled specially and causes touch to
change the times of the file associated with standard output.
// 這一句不知道怎么翻。

長選項必須用的參數在使用短選項時也是必需的。
  -a                     只更改訪問時間access
  -c, --no-create        不創建任何文件
  -d, --date=字符串        使用<字符串>表示的時間而不是目前的時間
  -f                     (此選項不作處理)
  -m                     只更改修改時間modify
  -r, --reference=FILE   使用指定文件的時間屬性而非目前的時間
  -t STAMP               使用[[CC]YY]MMDDhhmm[.ss] 格式的時間而非當前時間


注意 -d 和 -t 選項接受不同格式的時間表達式。
92
 樓主| 發表于 2009-9-24 20:34:44 | 只看該作者
來實例一下。
[changyongid@localhost test]$ ll
總計 32
drwxrwxr-x   8 changyongid changyongid 4096 09-03 16:59 2410

[changyongid@localhost test]$ touch 2410/
[changyongid@localhost test]$ ll
總計 32
drwxrwxr-x   8 changyongid changyongid 4096 09-24 20:34 2410

看到時間的變化了吧。
93
 樓主| 發表于 2009-9-24 20:39:33 | 只看該作者
本帖最后由 changyongid 于 2009-9-24 20:43 編輯

如果文件不存在,touch則以這個名字創建一個普通文件。
這個可以去試一下。我還記得我用touch創建的第一個文件是.vimrc。當時是配置vim的時候。很早了,記得當時在~/下怎么也找不到.vimrc,很急,后來別人告訴我touch一下。果然,用了這個命令之后就有了,我當時很奇怪。現在想起來,真是有些可笑……

當然,touch可以指定特定的時間。這個是比較重要的。來試一下吧。
----------------------
[changyongid@localhost test]$ touch  -t 01061803 aaa
[changyongid@localhost test]$ ll
-rw-rw-r--   1 changyongid changyongid    0 2009-01-06 aaa
----------------------
從上面可以看到,創建的文件為空。
注意一下它的時間。我指定的是01月06日18分03秒。默認為今年。
如果我在它前面再加上02,會怎么樣呢?
----------------------
[changyongid@localhost test]$ touch  -t 0201061803 aaa
[changyongid@localhost test]$ ll
-rw-rw-r--   1 changyongid changyongid    0 2002-01-06 aaa
----------------------
看到了吧。變成02年了。

再看
--------------------
[changyongid@localhost test]$ touch -d "6:03pm 02/06/2000" aaa
[changyongid@localhost test]$ ll aaa
-rw-rw-r-- 1 changyongid changyongid 0 2000-02-06 aaa
----------------------
這是用-d來指定。重點體會一下。
關于這里的時間格式,可以參考date命令。感覺有點麻煩。
94
 樓主| 發表于 2009-9-24 20:48:58 | 只看該作者
再來看下-r選項。即把目標文件指定跟另一個文件一樣的時間。
-------------------------------------------
[changyongid@localhost test]$ ll
總計 32
drwxrwxr-x   8 changyongid changyongid 4096 09-24 20:34 2410
-rw-rw-r--   1 changyongid changyongid    0 2002-01-06 aaa
-------------------------------------------
[changyongid@localhost test]$ touch -r 2410/ aaa
[changyongid@localhost test]$ ll
總計 32
drwxrwxr-x   8 changyongid changyongid 4096 09-24 20:34 2410
-rw-rw-r--   1 changyongid changyongid    0 09-24 20:34 aaa
這樣操作之后,aaa就跟2410一樣的時間了。注意,2410是個目錄。所以這里無論是指定目錄還是普通文件都是可行的。

ps:那么從哪里可以看出2410是個目錄呢?
我從終端下,他的顏色就可以直觀的表現出來。
貼出來以后,你可以看到最左邊的 “d”了么?那個就表示文件的屬性。
在UNIX Linux下,一切皆為文件。不管是目錄、普通文件、設備等等,對于我們用戶來說,它們都是文件。這個可以看看UNIX環境高級編程。
95
 樓主| 發表于 2009-9-24 20:52:19 | 只看該作者
本帖最后由 changyongid 于 2009-9-24 21:07 編輯

tree 也是一個很實用的命令。有時候我們想了解一個目錄下的所有文件,并希望以資源管理器的樹形視圖方式顯示文件之間的結構,那么就可以用tree命令來實現這個功能。

help一看,這個命令的參數還真是多呀!不過取其中的幾個了解一下,就夠我們使的了。
  1. tree --help
  2. usage: tree [-adfghilnpqrstuvxACDFNS] [-H baseHREF] [-T title ] [-L level [-R]]
  3.         [-P pattern] [-I pattern] [-o filename] [--version] [--help] [--inodes]
  4.         [--device] [--noreport] [--nolinks] [--dirsfirst] [--charset charset]
  5.         [--filelimit #] []
  6.   -a         列出所有文件
  7.   -d          只列出目錄
  8.   -l          如遇到符號鏈接,則直接列出其所指向的目錄
  9.   -f           顯示完整路徑
  10.   -i            不以階梯狀列出
  11.   -p           列出屬性
  12.   -u          列出屬主或UID
  13.   -g           列出所屬組或組id
  14.   -s            以字節形式列出文件大小
  15.   -h           以人性化閱讀方式列出
  16.   -D            列出修改時間
  17.   -t            以修改時間排序
  18.   -x            Stay on current filesystem only.將范圍局限在現在的文件性統中。比如把home放到別的分區里,則列出/時不會列出它下面的文件。
  19.   -L level      指定深度(層數)。這個很有用。一般列出某個目錄下,文件太多了。而我們只需要看當前層目錄下或最近兩層的。就用它來指定。
  20.   -o file        輸出到指定文件。有了這個就不用重定向了。
  21.   --inodes      列出每個文件的索引點節
  22.   --device      列出其所屬的設備的設備號

復制代碼


先列出這么多吧。。。其實看起來命令多,但使用起來真的很簡單。上面列出的參數我幾乎都試了一遍,確實還是挺有用的。
太簡單了,我就不麻煩舉列了。
你可以 tree -L -1看一下效果。再逐個添加別的參數。
96
發表于 2009-10-14 09:26:34 | 只看該作者
學習是永恒的!
97
發表于 2009-10-16 18:37:05 | 只看該作者
很久沒更新了。
98
 樓主| 發表于 2009-10-20 17:20:14 | 只看該作者
樓上很仔細嘛。。謝謝一直掛念著。。
99
 樓主| 發表于 2009-10-20 17:22:12 | 只看該作者
本帖最后由 changyongid 于 2009-10-20 17:52 編輯

[changyongid@localhost vacs]$ ln --help
用法:ln [選項]... [-T] 目標 鏈接名稱 (第一種格式)  為“目標”創建一個名為“鏈接名稱”的鏈接
  或:ln [選項]... 目標               (第二種格式)           在當前目錄創建一個指向“目標”的鏈接
  或:ln [選項]... 目標... 目錄       (第三種格式)        三、四兩種格式 :為目錄里的每個“目標”創建鏈接
  或:ln [選項]... -t 目錄 目標...    (第四種格式)


默認不加“選項”的時候是創建硬鏈接。如果要創建符號鏈接,則需要加上 “--symbolic”
如果創建硬鏈接,則命令行中的“目標”必須存在。符號鏈接能夠指向任意的文本,
長選項必須用的參數在使用短選項時也是必需的。

      --backup[=CONTROL]      為存在的目標文件創建備份
  -b                                         --backup,但是不接受參數
  -d, -F, --directory                  建立目錄的硬鏈接
  -f, --force                            強行建立文件或目錄的鏈接,不論文件或目錄是否存在。
  -n, --no-dereference            如果目的地是一個鏈接至某目錄的符號鏈接,會將
                                             該符號鏈接當作普通文件處理,先將該已存在的
                                             鏈接備份或刪除
  -i, --interactive                   確認是否刪除目的地文件
  -s, --symbolic                       創建符號鏈接而不是硬鏈接
  -S, --suffix=SUFFIX                  使用-b參數備份目標文件后,備份文件的字毛會被加上一個后綴。默認的是“~”,可以通過-S來改變它
  -t, --target-directory=DIRECTORY  指定創建鏈接的路徑

備份文件的后綴為“~”,除非以 --suffix 選項或是 SIMPLE_BACKUP_SUFFIX
環境變量指定。版本控制的方式可透過 --backup 選項或 VERSION_CONTROL 環境
變量來選擇。以下是可用的變量值:

  none, off       不會進行備份 (即使使用了 --backup 選項)
  numbered, t     備份文件會加上數字
  existing, nil   若有數字的備份文件已經存在則使用數字,否則使用普通方式備份
  simple, never   永遠使用普通方式備份

說明:這個命令是經常用到的。有人說鏈接跟windows下的快捷方式差不多。但我覺得還是千萬不要以windows的思維方式來理解。要完全的理解ln,需要對Linux里的文件系統有一定的了解。這里我引用網上的一些解釋(黑色部分為自己加的一點理解):
每個存儲設備或存儲設備的分區(存儲設備是硬盤、軟盤、U盤 ... ...)被格式化為文件系統后,應該有兩部份,一部份是inode,另一部份是Block,Block是用來存儲數據用的。而inode呢,就是用來存儲這些數據的信息,這些信息包括文件大小、屬主、歸屬的用戶組、讀寫權限等。inode為每個文件進行信息索引,所以就有了inode的數值。操作系統根據指令,能通過inode值最快的找到相對應的文件。做個比喻,比如一本書,存儲設備或分區就相當于這本書,Block相當于書中的每一頁,inode 就相當于這本書前面的目錄,一本書有很多的內容,如果想查找某部份的內容,我們可以先查目錄,通過目錄能最快的找到我們想要看的內容。雖然不太恰當,但還是比較形象。

在Linux 文件系統中,inode值相同的文件是硬鏈接文件,也就是說,不同的文件名,inode可能是相同的,一個inode值可以對應多個文件。理解鏈接文件并不難,看看例子就會了。在Linux中,鏈接文件是通過ln工具來創建的。 (那么創建硬鏈接,即是創建一個inode,它也指向某個文件。這樣,對于這個文件,同時就有兩個inode來指向它。刪除某個文件時,即刪除了它對應的inode,如果刪除了兩上inode中的一個,文件還是存在的。因為還有一個inode指向它。硬鏈接只能鏈接文件,而不能鏈接目錄。且不能鏈接別的文件系統里的文件(即不同分區的文件)

軟鏈接也叫符號鏈接,他和硬鏈接有所不同,軟鏈接文件只是其源文件的一個標記。當我們刪除了源文件后,鏈接文件不能獨立存在,雖然仍保留文件名,但我們卻不能查看軟鏈接文件的內容了
由上面的解釋可以了解到,鏈接好比一個指針一樣,我們通過它來訪問文件或目錄,修改它也實際上就修改了那個文件或目錄

100
 樓主| 發表于 2009-10-20 18:01:53 | 只看該作者
我們來試幾個例子吧。。。
[changyongid@localhost ~]$ mkdir ttt              創建一個測試文件夾
[changyongid@localhost ~]$ ln -s ttt/ ./aaa     為其創建一個符號鏈接
[changyongid@localhost ~]$ ll aaa
lrwxrwxrwx 1 changyongid changyongid 4 10-20 17:59 aaa -> ttt/
[changyongid@localhost ~]$ rm aaa/                試著這樣來刪除它,是行不通的
rm: 無法刪除 “aaa/”: 是一個目錄
[changyongid@localhost ~]$ rm -rf aaa/            如果強制呢???執行完后,兩者還是存在
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 四虎久久精品国产| 四虎国产精品永久在线看| 亚洲a视频在线观看| 亚欧免费视频一区二区三区| 亚洲综合精品一区二区三区中文| 欧洲综合色| 亚洲国产成人久久午夜| 日韩亚洲欧美综合| 先锋资源中文| 天天拍天天操| 色美女网站| 天天草综合| 青草青青在线视频| 欧美成人免费在线| 一级a性色生活片久久毛片| 日韩欧美偷拍| 深夜久久| 亚洲一级大黄大色毛片| 亚洲国产一区视频| 亚洲一区在线视频观看| 性夜影院爽黄a爽免费视 | 亚洲成a人片在线观看导航| 欧美成人一区二区三区不卡视频| 亚洲人成一区二区三区| 亚洲国产婷婷香蕉久久久久久| 青青操在线| 欧美区日韩区| 午夜无遮挡| 亚洲欧美日韩在线| 香蕉成人国产精品免费看网站| 无马赛克在线观看的| 亚洲天堂视频在线免费观看| 午夜激情在线视频| 如如影视理论三级| 无遮挡一级毛片视频| 亚州免费一级毛片| 日产免费线路一页二页| 午夜精品久久久久久久久| 欧美极品一区| 亚欧乱色精品免费观看| 啪啪网视频|