一、从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不可读,不可执行!
这样记忆;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:~$
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$
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'
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
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命令,只能删除文件。