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命令,只能删除文件。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值