linux常用命令續(2)

一、從ls命令詳解說起……


1、ls -l小寫的l

進行詳細的查看list list

dashuai@ubuntu:~$ ls -l
total 52
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Desktop
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Documents
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Downloads
-rw-r--r-- 1 dashuai dashuai 8445 May 15 08:47 examples.desktop
drwxrwxr-x 3 dashuai dashuai 4096 May 17 08:08 family
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Music
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Pictures
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Public
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Templates
drwxrwxr-x 2 dashuai dashuai 4096 May 16 23:57 Ubuntu One
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Videos

左邊開始,普通文件用-打頭,目錄用d打頭(directory的縮寫)

dashuai@ubuntu:~$ ls -l /bin
total 8632
-rwxr-xr-x 1 root root  920796 Sep 19  2012 bash
-rwxr-xr-x 1 root root   30240 Aug  3  2012 bunzip2
-rwxr-xr-x 1 root root 1631376 Apr 30  2012 busybox
-rwxr-xr-x 1 root root   30240 Aug  3  2012 bzcat
lrwxrwxrwx 1 root root       6 May 15 08:39 bzcmp -> bzdiff
-rwxr-xr-x 1 root root    2140 Aug  3  2012 bzdiff
lrwxrwxrwx 1 root root       6 May 15 08:39 bzegrep -> bzgrep

小寫l打頭表示軟鏈接,也就是快捷方式。

繼續看,x結尾表示是可執行文件。從後面開始是文件或者目錄名字,然後是建立的時間,然後是文件或者目錄的大小,然後兩個名字;第二個是組名,第一個是用戶名,在其次是一個個的數字,1,2,3不等,他們的意思是硬連接數目,也就是一個文件對應幾個名字啊?!


最重要的除了開頭的符號,後面的一串字母符號,代表了權限:

r代表readable可讀的,代表有權讀

w是writeable可寫的,代表有權寫

x是executable可執行的,代表有權利執行

用三個圈表示。第一個是自己,然後是同組的,最外面的是其他人。這個親密關係是不一樣的,首先沒有比自己更瞭解親近自己的了,其次是同宿舍的或者同班的。最次是外校的等等。

同樣權限也是三個圈子,一是自己的,是否可以讀寫執行,同組人是否可以,外部人是否可以,所以,數數,一共是9個字符(第一個代表文件或者目錄類型)分別表示自己的,同組的,外組的也就是其他的。



注意:

l和1很像!儘量不要兩個一起用!

文件或者目錄順序一般情況下按照字母順序來排列。

dashuai@ubuntu:~$ ls -r
Videos      Templates  Pictures  family            Downloads  Desktop
Ubuntu One  Public     Music     examples.desktop  Documents

2、使用r選項代表反過來排列。reverse的意思。但是沒什麼意思。


3、還可以按照建立的時間順序來排列,t代表時間

dashuai@ubuntu:~$ ls -t
family      examples.desktop  Documents  Music     Public     Videos
Ubuntu One  Desktop           Downloads  Pictures  Templates
dashuai@ubuntu:~$ 

dashuai@ubuntu:~$ ls -tl
total 52
drwxrwxr-x 3 dashuai dashuai 4096 May 17 08:08 family
drwxrwxr-x 2 dashuai dashuai 4096 May 16 23:57 Ubuntu One
-rw-r--r-- 1 dashuai dashuai 8445 May 15 08:47 examples.desktop
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Desktop
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Documents
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Downloads
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Music
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Pictures
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Public
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Templates
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Videos
按照的是時間越近,越靠前

注意

ls裏的total指的是佔據了多少空間多少字節,一般512字節是一個塊。


4、ls -F顯示標記,目錄和文件一目瞭然,斜槓表示目錄,並且目錄的顏色和文件的顏色不一樣的!



dashuai@ubuntu:~$ ls -F
Desktop/    Downloads/        family/  Pictures/  Templates/   Videos/
Documents/  examples.desktop  Music/   Public/    Ubuntu One/

5、ls -F 其他目錄
dashuai@ubuntu:~$ ls -F /bin
bash*                  initctl2dot*       ping*
bunzip2*               ip*                ping6*
busybox*               kbd_mode*          plymouth*
bzcat*                 kill*              plymouth-upstart-bridge*
bzcmp@                 less*              ps*
bzdiff*                lessecho*          pwd*
bzegrep@               lessfile@          rbash@
bzexe*                 lesskey*           readlink*
bzfgrep@               lesspipe*          rm*
bzgrep*                ln*                rmdir*
bzip2*                 loadkeys*          rnano@
星號表示是一個可執行文件,@表示這是一個軟鏈接或者符號鏈接。

注意;這裏F就是標記的意思flag的縮寫


6、ls -a 

a是all的縮寫,就是查看所有的目錄或者文件,隱藏的也能看!

dashuai@ubuntu:~$ ls -a
.              Desktop           .ICEauthority     .pulse-cookie
..             .dmrc             .local            Templates
.bash_history  Documents         .mission-control  Ubuntu One
.bash_logout   Downloads         .mozilla          Videos
.bashrc        examples.desktop  Music             .Xauthority
.cache         family            Pictures          .xsession-errors
.compiz        .gconf            .profile          .xsession-errors.old
.config        .gnome2           Public
.dbus          .gtk-bookmarks    .pulse
dashuai@ubuntu:~$ 

點 . 打頭的文件表示隱藏文件,在一般的ls命令中是不顯示的,同樣在windows裏也有隱藏文件,是通過屬性實現的。

注意;有兩個特別的點,一個點表示當前目錄下,兩個點表示上一個目錄下。每一個目錄下都有這個東西,是隱藏的。所以我們使用這個的時候可以回得去。


7、ls -A

和a類似,但是會放過點點,比較仁慈,但是少了點那兩項。

dashuai@ubuntu:~$ ls -A
.bash_history  .dmrc             .ICEauthority     .pulse
.bash_logout   Documents         .local            .pulse-cookie
.bashrc        Downloads         .mission-control  Templates
.cache         examples.desktop  .mozilla          Ubuntu One
.compiz        family            Music             Videos
.config        .gconf            Pictures          .Xauthority
.dbus          .gnome2           .profile          .xsession-errors
Desktop        .gtk-bookmarks    Public            .xsession-errors.old
dashuai@ubuntu:~$ 
ls命令是多列顯示的。默認的。


並且命令的選項可以合成爲一個一起寫

dashuai@ubuntu:~$ ls -AF
.bash_history  .dmrc             .ICEauthority      .pulse/
.bash_logout   Documents/        .local/            .pulse-cookie
.bashrc        Downloads/        .mission-control/  Templates/
.cache/        examples.desktop  .mozilla/          Ubuntu One/
.compiz/       family/           Music/             Videos/
.config/       .gconf/           Pictures/          .Xauthority
.dbus/         .gnome2/          .profile           .xsession-errors
Desktop/       .gtk-bookmarks    Public/            .xsession-errors.old
dashuai@ubuntu:~$ 

或者分開合成一個一起寫

dashuai@ubuntu:~$ ls -A -F
.bash_history  .dmrc             .ICEauthority      .pulse/
.bash_logout   Documents/        .local/            .pulse-cookie
.bashrc        Downloads/        .mission-control/  Templates/
.cache/        examples.desktop  .mozilla/          Ubuntu One/
.compiz/       family/           Music/             Videos/
.config/       .gconf/           Pictures/          .Xauthority
.dbus/         .gnome2/          .profile           .xsession-errors
Desktop/       .gtk-bookmarks    Public/            .xsession-errors.old
dashuai@ubuntu:~$ 

8、具體的列出某個目錄的東東,ls直接加目錄即可,還有可以列出目錄以及子目錄的東西來

dashuai@ubuntu:~$ ls -R
.:
Desktop    Downloads         family  Pictures  Templates   Videos
Documents  examples.desktop  Music   Public    Ubuntu One

./Desktop:

./Documents:

./Downloads:

./family:
daughter.txt  father.txt  house  mother.txt  son.txt

./family/house:
rooma  roomb  roomc  sofa-son.txt

./family/house/rooma:
bed.txt  book.txt  doll.txt

./family/house/roomb:
bed.txt  book.txt

./family/house/roomc:

./Music:

./Pictures:

./Public:

./Templates:

./Ubuntu One:
Shared With Me

./Videos:
dashuai@ubuntu:~$ 
默認當前目錄下,列出整個的目錄樹

9、注意是大寫的R,小寫的r是反轉順序的選項。


10、什麼是軟連接呢? 使用ln -s命令建立(link的縮寫 s是soft的縮寫),也叫符號鏈接。就是相當於一個快捷方式。通過這個鏈接可以間接操作其他目錄下的目標文件。它本身也是一個文件,只不過是記錄了目標的指向,本身大小很小,一般就幾個字節到十幾個字節不等。這比起來windows很節省空間,很乾淨,簡單。沒有其他的一些垃圾信息,就是單純的字節。

11、相對的就是硬連接,使用ln命令。他比軟鏈接還要省資源,根本就連新建的文件都沒有,就是給目的文件再起一個新的名字,也就是多個名字對應一個文件。


12、還可以建立管道,使用mkfifo命令

dashuai@ubuntu:~$ mkfifo a
dashuai@ubuntu:~$ ln -s /bin b
dashuai@ubuntu:~$ ls -l
total 52
prw-rw-r-- 1 dashuai dashuai    0 May 20 00:39 a
prw-rw-r-- 1 dashuai dashuai    0 May 20 00:37 abc
lrwxrwxrwx 1 dashuai dashuai    4 May 20 00:40 b -> /bin
lrwxrwxrwx 1 dashuai dashuai    4 May 20 00:39 bin -> /bin
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Desktop
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Documents
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Downloads
-rw-r--r-- 1 dashuai dashuai 8445 May 15 08:47 examples.desktop
drwxrwxr-x 3 dashuai dashuai 4096 May 17 08:08 family
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Music
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Pictures
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Public
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Templates
drwxrwxr-x 2 dashuai dashuai 4096 May 16 23:57 Ubuntu One
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Videos
可以看到剛剛新建的一個管道a,和一個快捷方式b

再新建一個文件

dashuai@ubuntu:~$ echo "asd">new.txt
dashuai@ubuntu:~$ ls -l
total 56
prw-rw-r-- 1 dashuai dashuai    0 May 20 00:39 a
prw-rw-r-- 1 dashuai dashuai    0 May 20 00:37 abc
lrwxrwxrwx 1 dashuai dashuai    4 May 20 00:40 b -> /bin
lrwxrwxrwx 1 dashuai dashuai    4 May 20 00:39 bin -> /bin
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Desktop
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Documents
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Downloads
-rw-r--r-- 1 dashuai dashuai 8445 May 15 08:47 examples.desktop
drwxrwxr-x 3 dashuai dashuai 4096 May 17 08:08 family
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Music
-rw-rw-r-- 1 dashuai dashuai    4 May 20 00:42 new.txt
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Pictures
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Public
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Templates
drwxrwxr-x 2 dashuai dashuai 4096 May 16 23:57 Ubuntu One
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Videos

那麼,管道的前綴p,就是pipe的縮寫

n.管子;菸斗;管樂器;(管風琴的)音管

vt.以管輸送;用管樂器演奏;尖聲唱

vi.吹奏管樂器;尖叫;尖聲地說(或唱),尖聲啼鳴;[航海] 吹長哨


管道的標記是|,豎線符號

dashuai@ubuntu:~$ ls -F
a|    bin@        Downloads/        Music/     Public/      Videos/
abc|  Desktop/    examples.desktop  new.txt    Templates/
b@    Documents/  family/  


再建立一個硬鏈接

先把home目錄下roomB下的一個文件bed.txt文件複製到桌面上,使用cp命令。



再建立硬鏈接


查看下

dashuai@ubuntu:~/Desktop$ ls -l
total 0
-rw-rw-r-- 2 dashuai dashuai 0 May 20 04:01 bed.txt
-rw-rw-r-- 2 dashuai dashuai 0 May 20 04:01 zzz
dashuai@ubuntu:~/Desktop$ 
發現數字是2了,說明這個文件對應兩個名字,代表的是硬鏈接的名字。前提是必須在同一個設備上,才能建立硬鏈接!!!!否則不行!!!!

注意;

1、軟鏈接沒有這個限制!

2、硬連接還有一個附帶作用,如果我們刪除一個文件,只是刪除了一個名字而已。

dashuai@ubuntu:~/Desktop$ rm bed.txt
dashuai@ubuntu:~/Desktop$ ls
zzz
dashuai@ubuntu:~/Desktop$ 
數字變爲了1,而文件本身沒有刪除!仍然在磁盤裏。前提是硬連接還有!即還有名字!!!就是這樣的。只是刪除了名字,只是硬連接數量減去1,只有名字沒有即硬連接數量爲0的時候,文件才真正的從磁盤中被刪除!

dashuai@ubuntu:~/Desktop$ ls -l
total 0
-rw-rw-r-- 1 dashuai dashuai 0 May 20 04:01 zzz
dashuai@ubuntu:~/Desktop$ 


所以,我們可以在一個隱蔽的地方,爲一個文件偷偷的建立一個硬連接,這樣就可以保證一個文件不被刪除掉!只有文件的硬連接數量爲0的時候,文件才能被真正刪除!這樣很好!

3、目錄是不能建立硬連接的,有別的方法去統計的,不是建立出來的。一般是這樣的,一個目錄最少有兩個子目錄,一點和二點。因此,我們建立一個目錄的時候,它的硬連接是2!此外目錄的硬連接是統計出來的!不是建立的。


不過,目錄的硬連接不需要理會!不用管他了。

4、硬連接一旦建立就是和原來的文件是平等的!不是上下級關係。


=================================================================================================================

文件權限的修改

先查看權限ls -l

dashuai@ubuntu:~$ ls -l
total 60
drwxrwxr-x 2 dashuai dashuai 4096 May 20 04:23 aaa
drwxr-xr-x 2 dashuai dashuai 4096 May 20 04:15 Desktop
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Documents
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Downloads
-rw-r--r-- 1 dashuai dashuai 8445 May 15 08:47 examples.desktop
drwxrwxr-x 3 dashuai dashuai 4096 May 17 08:08 family
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Music
-rw-rw-r-- 1 dashuai dashuai    4 May 20 00:42 new.txt
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Pictures
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Public
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Templates
drwxrwxr-x 2 dashuai dashuai 4096 May 16 23:57 Ubuntu One
drwxr-xr-x 2 dashuai dashuai 4096 May 15 00:55 Videos
dashuai@ubuntu:~$ 


然後新建一個空文件夾me,作爲實驗


修改me目錄的外組人的權限,是可讀的可執行的,不讓寫,我們讓me不可讀,不可執行!


使用chmod 命令 是英文change mode的縮寫。後面的參數跟需要修改權限的文件,u代表自己人,g代表同組人,o代表外組人,ugo,不是ufo!!嘿嘿……

這樣記憶;other是其他人,外部人的意思,group是組的意思,剩下的user就是用戶自己的意思啦!


減去權限,使用減號-,我們消去me外組人的可執行x,和可讀r的權限,所以我們就用o- 就可以了,後面再跟一個名字即可。


同理,增加權限,用+號,比如,增加me的外組人的可讀權限



人爲直接設定權限,使用=號就行,比如設置外組人具有所有權限(可讀r,可寫w,可執行x)

dashuai@ubuntu:~$ chmod o=wrx me
結果

drwxrwxrwx 2 dashuai dashuai 4096 May 20 20:01 me

同理設置爲什麼權限都沒有,直接用等於一個 - 號就行

dashuai@ubuntu:~$ chmod o=- me
結果

drwxrwx--- 2 dashuai dashuai 4096 May 20 20:01 me

還可以一次性指定多個的權限,比如同時指定自己的,同組的等,使用逗號隔開即可



這樣略顯繁瑣,開發的時候比較專業的是用數字直接表示權限

比如:w是2,r是4,x是1,-什麼都沒有是0,最後一個0最好記憶,前面熟悉也不難。

如果三個權限都有,就是4+2+1=7即可

如果只有讀,就是4

如果只有讀和可執行,那就是5

如果只有讀和可寫,那就是6

如果只有可執行和寫,那就3

以此類推,這樣相加即可,0-7八個數字,用一個這樣的8進制數字就能表示所有的權限,我們使用一個三位的八進制數字來表示權限,正合適對應三個組的權限。


比如700,就是自己有所有權限,但是同組人和外組人什麼都沒有



再看如果是755,那就是自己有所有權限,同組和外組是讀和可執行



另外,我們可以使用a這個字母(all的縮寫),來表示對所有的(自己,同組,外組)的權限進行統一設置,不用單獨寫u,g,o,浪費時間了。



這樣寫其實還不算專業,在專業的話,應該是0打頭的八進制,因爲c和c++裏,八進制也是這樣規定的。


0644表示自己有可讀,可寫權限,同組只有可讀,外組可讀。


注意;

只有管理員有權利修改所有用戶的權限,而單個的用戶,只能修改自己的權限。

刪除文件的命令rm,是不能恢復的,在使用這種破壞性的刪除的時候,必須備份。

===========================================================================================================

mkdir命令開頭的詳解

mkdir可以同時建立多個目錄

dashuai@ubuntu:~$ mkdir a b c
dashuai@ubuntu:~$ ls
a    c          Downloads         me       Pictures   Ubuntu One
aaa  Desktop    examples.desktop  Music    Public     Videos
b    Documents  family            new.txt  Templates
dashuai@ubuntu:~$ 


mkdir不能跨級建立目錄

dashuai@ubuntu:~$ mkdir dd/d
mkdir: cannot create directory `dd/d': No such file or directory
dashuai@ubuntu:~$ 

必須分開建

dashuai@ubuntu:~$ mkdir dd
dashuai@ubuntu:~$ mkdir dd/d
dashuai@ubuntu:~$ ls
a    c        Documents         family  new.txt   Templates
aaa  dd       Downloads         me      Pictures  Ubuntu One
b    Desktop  examples.desktop  Music   Public    Videos
dashuai@ubuntu:~$ cd dd
dashuai@ubuntu:~/dd$ ls
d
dashuai@ubuntu:~/dd$ 


如果不想分開建,就帶一個選項p,代表建立多層目錄

dashuai@ubuntu:~$ mkdir -p aaa/aa/a
dashuai@ubuntu:~$ ls
a    c        Documents         family  new.txt   Templates
aaa  dd       Downloads         me      Pictures  Ubuntu One
b    Desktop  examples.desktop  Music   Public    Videos
dashuai@ubuntu:~$ cd aaa
dashuai@ubuntu:~/aaa$ cd aa
dashuai@ubuntu:~/aaa/aa$ ls
a
dashuai@ubuntu:~/aaa/aa$ 


也可以用ls -R開查看層級目錄,不用cd進入就行!

dashuai@ubuntu:~$ ls -R aaa
aaa:
aa

aaa/aa:
a

aaa/aa/a:


創建文件呢?

以前提過,使用touch,創建空文件,touch可以層級建立文件,可以同時建立多個文件。


使用 > 重定向符號,把左邊的內容輸出,寫到右邊的文件當中去。

當然也可以用記事本去寫也行,然後使用cat來查看內容

dashuai@ubuntu:~$ date > time
dashuai@ubuntu:~$ ls
a    c        Documents         family  new.txt   Templates   Videos
aaa  dd       Downloads         me      Pictures  time
b    Desktop  examples.desktop  Music   Public    Ubuntu One
dashuai@ubuntu:~$ cat time
Tue May 20 22:55:29 PDT 2014
dashuai@ubuntu:~$ 

dashuai@ubuntu:~$ pwd > pwd.txt
dashuai@ubuntu:~$ ls
a    c        Documents         family  new.txt   pwd.txt    Ubuntu One
aaa  dd       Downloads         me      Pictures  Templates  Videos
b    Desktop  examples.desktop  Music   Public    time
dashuai@ubuntu:~$ cat pwd.txt
/home/dashuai
dashuai@ubuntu:~$ 

並且,> 還會清空文件原來的內容,進行覆蓋

dashuai@ubuntu:~$ id > pwd.txt
dashuai@ubuntu:~$ cat pwd.txt
uid=1000(dashuai) gid=1000(dashuai) groups=1000(dashuai),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),107(lpadmin),124(sambashare)
dashuai@ubuntu:~$ 

發現內容改變了,以前的pwd的內容被新的id出來的內容覆蓋了。


如果不想清楚呢?

那就使用>>兩個重定向符號,追加到文件的末尾。

dashuai@ubuntu:~$ pwd >> pwd.txt
dashuai@ubuntu:~$ cat pwd.txt
uid=1000(dashuai) gid=1000(dashuai) groups=1000(dashuai),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),107(lpadmin),124(sambashare)
/home/dashuai

注意;

只要是左邊能輸出的,都會被重定向到右邊的指定文件中!去輸出!


比如ls的輸出也是沒問題的!!還有cal日曆命令,很漂亮!         英文單詞calendar的縮寫。

dashuai@ubuntu:~$ cal
      May 2014        
Su Mo Tu We Th Fr Sa  
             1  2  3  
 4  5  6  7  8  9 10  
11 12 13 14 15 16 17  
18 19 20 21 22 23 24  
25 26 27 28 29 30 31  
                      
dashuai@ubuntu:~$ cal > pwd.txt
dashuai@ubuntu:~$ cat pwd.txt
      May 2014        
Su Mo Tu We Th Fr Sa  
             1  2  3  
 4  5  6  7  8  9 10  
11 12 13 14 15 16 17  
18 19 20 21 22 23 24  
25 26 27 28 29 30 31  
                      
dashuai@ubuntu:~$ 


輸出整年的日曆

dashuai@ubuntu:~$ cal 2014
                            2014
      January               February               March          
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  
          1  2  3  4                     1                     1  
 5  6  7  8  9 10 11   2  3  4  5  6  7  8   2  3  4  5  6  7  8  
12 13 14 15 16 17 18   9 10 11 12 13 14 15   9 10 11 12 13 14 15  
19 20 21 22 23 24 25  16 17 18 19 20 21 22  16 17 18 19 20 21 22  
26 27 28 29 30 31     23 24 25 26 27 28     23 24 25 26 27 28 29  
                                            30 31                 

       April                  May                   June          
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  
       1  2  3  4  5               1  2  3   1  2  3  4  5  6  7  
 6  7  8  9 10 11 12   4  5  6  7  8  9 10   8  9 10 11 12 13 14  
13 14 15 16 17 18 19  11 12 13 14 15 16 17  15 16 17 18 19 20 21  
20 21 22 23 24 25 26  18 19 20 21 22 23 24  22 23 24 25 26 27 28  
27 28 29 30           25 26 27 28 29 30 31  29 30                 
                                                                  

        July                 August              September        
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  
       1  2  3  4  5                  1  2      1  2  3  4  5  6  
 6  7  8  9 10 11 12   3  4  5  6  7  8  9   7  8  9 10 11 12 13  
13 14 15 16 17 18 19  10 11 12 13 14 15 16  14 15 16 17 18 19 20  
20 21 22 23 24 25 26  17 18 19 20 21 22 23  21 22 23 24 25 26 27  
27 28 29 30 31        24 25 26 27 28 29 30  28 29 30              
                      31                                          

      October               November              December        
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  
          1  2  3  4                     1      1  2  3  4  5  6  
 5  6  7  8  9 10 11   2  3  4  5  6  7  8   7  8  9 10 11 12 13  
12 13 14 15 16 17 18   9 10 11 12 13 14 15  14 15 16 17 18 19 20  
19 20 21 22 23 24 25  16 17 18 19 20 21 22  21 22 23 24 25 26 27  
26 27 28 29 30 31     23 24 25 26 27 28 29  28 29 30 31           
                      30                                          
dashuai@ubuntu:~$ 


看某年某月的(這裏注意一點,需要習慣外國人的習慣,月在年前!)

dashuai@ubuntu:~$ cal 5 2014
      May 2014        
Su Mo Tu We Th Fr Sa  
             1  2  3  
 4  5  6  7  8  9 10  
11 12 13 14 15 16 17  
18 19 20 21 22 23 24  
25 26 27 28 29 30 31  
                      
dashuai@ubuntu:~$ 


自定義內容如何寫到文件?當然使用我們之前學過的echo命令,並且內容中間的空格如果有多個,會自動去掉,只留一個。

dashuai@ubuntu:~$ echo ha       ha
ha ha

dashuai@ubuntu:~$ echo hello
hello


如果想保留多個空格,怎麼弄?使用雙引號包起來,表示是一個整體,都要留着。

dashuai@ubuntu:~$ echo "ha          ha"
ha          ha

將輸入寫到其他文件

dashuai@ubuntu:~$ echo hello > hello.txt
dashuai@ubuntu:~$ cat hello.txt
hello


我們發現這樣需要寫兩個命令,很麻煩,我們可以將這些命令寫到一起,中間用分號隔開!

dashuai@ubuntu:~$ echo haha > haha.txt;cat haha.txt
haha

比如,顯示時間,我們讓時間延遲10秒鐘顯示怎麼辦?

datedashuai@ubuntu:~$ date;sleep 10;date
Tue May 20 23:17:09 PDT 2014
Tue May 20 23:17:19 PDT 2014
使用sleep命令,參數單位是秒鐘。


另外文件裏有一個特殊的文件,在dev設備目錄裏,有一個tty文件,代表終端屏幕或者終端鍵盤的意思。

dashuai@ubuntu:~$ id > /dev/tty
uid=1000(dashuai) gid=1000(dashuai) groups=1000(dashuai),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),107(lpadmin),124(sambashare)
dashuai@ubuntu:~$ id
uid=1000(dashuai) gid=1000(dashuai) groups=1000(dashuai),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),107(lpadmin),124(sambashare)
原本我們是重定向到了一個文件裏,但是因爲tty代表了終端的屏幕和鍵盤,依然輸入到了屏幕上。


還有個特殊的文件null,叫黑洞文件,是一個空文件,空設備,因爲在linux裏,一切都是文件,理所當然的,空設備也是文件。他是0長度的,一直是空,和黑洞一樣,塞多少,吃多少。都是空的。

dashuai@ubuntu:~$ ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 May 20 18:07 /dev/null

作爲了解,知道至少比不知道好些。


還有以前說過的移動命令,mv命令,可以是文件或者目錄都行。

格式;mv 目錄(文件)(可是多個文件或者目錄移動) 指定目錄路徑(同時可以修改所移動文件或者目錄的名字)

注意;

只有移動一個文件或者目錄的時候,纔可以修改名字。

如果想改名,那就只需原地移動就行了。移動到當前目錄下,改個名字就完了。

要和複製進行區分


cp(copy的縮寫),我們打算複製a dd new.txt到family目錄裏。

dashuai@ubuntu:~$ ls
a    dd         examples.desktop  me        Public     Ubuntu One
aaa  Desktop    family            Music     pwd.txt    Videos
b    Documents  haha.txt          new.txt   Templates
c    Downloads  hello.txt         Pictures  time
dashuai@ubuntu:~$ cp a dd new.txt family
cp: omitting directory `a'
cp: omitting directory `dd'


直接使用cp命令,會將目錄略過(a dd目錄),他只會複製文件,如果想複目錄,需要加選項 r

dashuai@ubuntu:~$ ls
a    dd         examples.desktop  me        Public     Ubuntu One
aaa  Desktop    family            Music     pwd.txt    Videos
b    Documents  haha.txt          new.txt   Templates
c    Downloads  hello.txt         Pictures  time
dashuai@ubuntu:~$ cp -r a aaa dd family
dashuai@ubuntu:~$ ls -l family
total 16
drwxrwxr-x 2 dashuai dashuai 4096 May 20 23:42 a
drwxrwxr-x 3 dashuai dashuai 4096 May 20 23:42 aaa
-rw-rw-r-- 1 dashuai dashuai    0 May 17 07:30 daughter.txt
drwxrwxr-x 3 dashuai dashuai 4096 May 20 23:42 dd
-rw-rw-r-- 1 dashuai dashuai    0 May 17 07:30 father.txt
drwxrwxr-x 5 dashuai dashuai 4096 May 17 19:30 house
-rw-rw-r-- 1 dashuai dashuai    0 May 17 07:30 mother.txt
-rw-rw-r-- 1 dashuai dashuai    0 May 17 07:30 son.txt
發現,都成功的複製過去了!


並且如果有覆蓋或者刪除的話,沒有任何提示!那麼我們可以人爲讓它加上提示!使用選項 i 意思是interactive交互的意思,拿rm刪除文件來試驗吧

dashuai@ubuntu:~/family$ ls
a  aaa  daughter.txt  dd  father.txt  house  mother.txt  son.txt
dashuai@ubuntu:~/family$ rm -i father.txt
rm: remove regular empty file `father.txt'? 
會提示是否真的刪除?!

y表示yes,n表示no


另外刪除目錄,必須是空目錄,需要使用rmdir命令,這樣比較安全

dashuai@ubuntu:~/family$ rmdir a
dashuai@ubuntu:~/family$ ls
aaa  daughter.txt  dd  father.txt  house  mother.txt  son.txt


如果使用rm -r,可以一擼到底!不管目錄或者文件都行,而且目錄不是空的也能刪除,但是很危險!容易誤刪東西!!!!

dashuai@ubuntu:~/family$ ls
aaa  daughter.txt  dd  father.txt  house  mother.txt  son.txt
dashuai@ubuntu:~/family$ rmdir aaa
rmdir: failed to remove `aaa': Directory not empty
dashuai@ubuntu:~/family$ rm -r aaa
dashuai@ubuntu:~/family$ ls
daughter.txt  dd  father.txt  house  mother.txt  son.txt

所以刪除目錄,注意是空目錄,有專業的命令rmdir命令。而單個的rm命令,只能刪除文件。


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