Linux 诞生的发展:虚拟团队
强大的通信和联网功能:支持种类繁多的连接设备(如网卡),支持上层网络协议,提供强大的网络服务(如FTP,MAIL等)。 应用程序支持:包括编译器,数据库,办公软件,游戏等
文件和目录操作命令
pwd、cd
1. pwd——显示(打印)用户当前所处的目录 这是再常用不过的命令了,如果不知道自己当前所处的目录,就必须使用它。这个命令和DOS下的不带任何参数的cd命令的作用是一样的。其用法如下:[test @redflag test]$pwd /home/test 说明当前目录是/home/test。
cd目录名——改变当前所处的目录或处理绝对目录和相对目录 如果用户当前处于/bin目录,想进入/etc目录,可以键入: [test @redflag /bin]$cd /etc
is、tree
1. ls [参数] 路径或文件名——列出文件或子目录的信息 参数选项: -a:显示所有的文件,包括以“.”开头的文件(即隐含文件)。 -l:以长格式显示文件或子目录的信息。 -i:显示每个文件的索引(节点)号。 执行命令[test @redflag test]$ls -a 显示当前目录下的所有文件,输出: bak chap1.txt Desktop txt Linux系统用颜色来区分文件类别。缺省时,蓝色代表目录,绿色代表可执行文件,红色代表压缩文件,浅蓝色代表链接文件,灰色代表其他文件。
tree 目录名——以树的形式显示指定目录下的内容 [test @redflag test]$tree 这是不带任何参数的tree命令,以树的形式显示当前目录下的文件和子目录,会递归到各子目录。例如: [test @redflag test]$tree /etc/rc.d 以树的形式显示目录/etc/rc.d下的文件和子目录。
mkdir、rmdir
1. mkdir [参数] 目录名——建立目录 目录可以是绝对路径,也可以是相对路径。 参数选项: -p:建立目录时,如果父目录不存在,则此时可以与子目录一起建立。
例如: [test @redflag test]$mkdir dir1 在当前目录下建立dir1目录。 [test @redflag test]$mkdir -p dir2/bak 在dir2目录下建立bak目录,如果dir2目录不存在,那么同时建立dir2目录。
rmdir [参数] 目录名——删除目录 目录同样可以是绝对路径,也可以是相对路径。 参数选项: -p:一起删除父目录时,父目录下应无其他目录。 例如: [root @redflag /root]#rmdir test 删除当前目录下的test目录。删除目录时,被删除的目录下应无文件或目录存在。 [root @redflag /root]#rmdir -p longkey/test 删除当前目录下的longkey/test目录。删除目录test时,如果父目录longkey下无其他内容,则一起删除longkey目录。
cp、rm、mv、ln
1. cp [参数] 源文件 目标文件——拷贝文件或目录 相当于DOS下的copy命令。 参数选项: -f:如果目标文件或目录存在,先删除它们再拷贝(即覆盖),并且不提示用户。 -i:如果目标文件或目录存在,提示是否覆盖已有的文件。 -R:递归复制目录,即包含目录下的各级子目录。 rm [参数] 文件名或目录名——删除文件或目录 相当于DOS下的del命令。 参数选项: -f:删除文件或目录时不提示用户。 -i:删除文件或目录时提示用户。 -R:递归删除目录,即包含目录下的文件和各级子目录。
例如: [test @redflag test]$rm * 删除当前目录下的所有文件,但子目录和以“.”开头的文件(即隐含文件)不删除。 [test @redflag test]$rm –iR bak 删除当前目录下的子目录bak,包含其下的所有文件和子目录,并且提示用户确认。
mv [参数] 源文件或目录 目标文件或目录——移动文件或目录 相当于DOS下的move命令。 参数选项: -i:如果目标文件或目录存在时,提示是否覆盖目标文件或目录。 -f:不论目标文件或目录是否存在,均不提示是否覆盖目标文件或目录。 值得注意的是,mv可以用来更改文件名或目录名。 例如: [test @redflag test]$mv 1.txt 2.txt 这里移动文件时并不改变文件的目录,如果2.txt原来不存在,则实际上是1.txt更名为2.txt。 [test @redflag test]$mv ~/txtbak /bak 把个人主目录下的目录txtbak移动到/bak目录下。
ln [参数] 源文件或目录 链接名——建立链接 参数选项: -s:建立符号链接(即软链接),不加该项时建立的是硬链接。 例如: [test @redflag test]$ln telno.txt telno2.txt 给源文件telno.txt建立一个硬链接telno2.txt,这时telno2.txt可以看作是telno.txt的别名,它和telno.txt不分主次。telno.txt和telno2.txt实际上都指向硬盘上的相同位置,使用telno.txt作为文件名所做的更改,会在telno2.txt得到反映。硬链接有局限性,不能建立目录的硬链接。
chmod、chown、chgrp
1. chmod 模式 文件或目录名——改变文件或目录的访问权限 Linux系统是个多用户系统,应该能做到不同的用户能同时访问不同的文件,因此一定要有文件权限控制机制。Linux系统的权限控制机制和Windows的权限控制机制有着很大的差别。Linux的文件或目录都被一个用户拥有时,这个用户称为文件的拥有者(或所有者),同时文件还被指定的用户组所拥有,这个用户组称为文件所属组。
要说明的是,一个用户可以是不同组的成员,这可以由管理员控制,我们将在用户管理这一章介绍如何控制的问题。文件的权限由权限标志来决定,权限标志决定了文件的拥有者、文件的所属组、其他用户对文件访问的能力。可以使用“ls –l”命令来显示权限标志。例如: [test @redflag test]$ls -l -rw-rw-r-- 1 longkey root 16 20A 24 22:23 chap1.txt
本例中,文件chap1.txt的拥有者是longkey,所属组是root。这里我们特别关心的是输出行前面的第1~10个字符。第1个字符代表文件类别,第2~4个字符“rw-”是文件拥有者的权限,第5~7个字符“rw-”是文件所属组的权限,第8~10个字符“r--”是其他用户(即除了root用户和longkey用户组里的用户之外的用户)文件拥有者的权限。而权限均用三个字符表示,依次为读(r)、写(w)、执行(x),如果某一位为“-”,则表示没有相应的权限,例如:“rw-”表示有读、写的权限,没有执行的权限。在本例中,文件拥有者longkey用户对文件有读、写的权限,root组的所有用户对文件也有读、写的权限,而其他用户对文件只有读的权限。
设定文件权限时,在模式中常用以下的字母代表用户或用户组:
u——文件的拥有者;
g——文件的所属组;
o——其他用户;
a——代表所有用户(即u+g+o)。
权限用以下字符表示: r ——读权限;
w——写权限;
x——执行权限;
最后要指明是增加(+)还是减少(-)权限,或是绝对权限(=)。
[root @redflag /root]#chmod o+w chap1.txt
chap1.txt的权限由原来的“rw-rw-r--”变为“rw-rw-rw-”,表示增加其他用户对文件的写权限。
[root @redflag /root]#chmod u=rw,g=rw,o=r chap1.txt chap1.txt的权限变为“rwxrw-r---”,不论原来的权限是什么,这表示拥有者对文件有读、写的权限,所属组的用户对文件也有读、写的权限,而其他用户只有读的权限 我们在以上设置权限时,用字符表示权限和用户,实际上我们也经常使用八进制来表示。读、写、执行依次各自对应一个二进制位“???”,如果某位为“0”,则表示无权限;如果某位为“1”,则表示有权限。例如:文件权限为r---w---x时,用二进制表示为100010001,用八进制可以表示为421。例如: [root @redflag /root]#chmod 664 chap1.txt 等同于: [root @redflag /root]#chmod u=rw,g=rw,o=r chap1.txt
chown 用户名 文件或目录名——改变文件(或目录)的拥有者或所属组 例如: [root @redflag /root]#chown longkey chap1.txt 把文件chap1.txt的拥有者改为longkey用户。 [root @redflag /root]#chown longkey:root chap1.txt 把文件的拥有者改为longkey用户,同时文件的所属组改为root组。
chgrp组 文件或目录——改变文件或目录的所属组 chown可以同时改变文件拥有者和所属者,chgrp只具有改变所属组的功能。例如: [root @redflag /root]#chgrp root chap1.txt 文件chap1.txt的所属组设为root组。
find、grep
1. find 路径 匹配表达式——查找文件所在的目录 路径可以是多个路径,路径之间用空格隔开。查找时,会递归到子目录。 匹配表达式: -name:指明要查找的文件名,支持通配符“*”和“?”。 -user username:查找文件的拥有者为username的文件。 -group grpname:查找文件的所属组为grpname的文件。 例如: [root @redflag /root]#find / -name passwd -print 从根目录起查找名为passwd的文件,并把结果输出到标准设备。 [root @redflag /root]#find /home /etc -user longkey -print 在目录/home和目录/etc中查找longkey用户所拥有的文件
stat、touch
1. stat 文件名——显示文件或目录的各种信息
例如: [test @redflag test]$stat /etc/passwd File: "/etc/passwd" Size: 1323 Blocks: 8 Regular File Device: 301h/769d Inode: 111261 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: Thu Feb 27 23:18:00 2003 Modify: Mon Feb 24 22:22:28 2003 Change: Mon Feb 24 22:22:28 2003
显示文件passwd的被访问时间、修改时间、变更时间、文件大小、文件所有者、所属组、文件权限等项内容
touch [参数] 文件或目录名——修改文件的存取和修改时间 参数选项:
-d yyyymmdd:把文件的存取/修改时间改为yyyymmdd。
-a:只把文件的存取时间改为当前时间。
-m:只把文件的修改时间改为当前时间。
例如: [test @redflag test]$touch *
把当前目录下的所有文件的存取和修改时间改为当前系统的时间。
[test @redflag test]$touch -d 20030224 chap1.txt 把文件chap1.txt的存取和修改时间改为2003年2月24日。
[test @redflag test]$touch test.txt
把test.txt的存取和修改时间改为当前系统的时间,如果test.txt文件不存在,则生成一个空文件(即0字节的文件)。 touch还有另外一种形式: touch MMDDhhmm[YY] 文件名 例如: [test @redflag test]$touch 0102120099 chap1.txt 把chap1.txt文件的存取和修改时间改为1999年01月02日12:00 。
2.2.1 cat、more、less
1. cat 文件名1 文件名2 …… ——显示文件的内容 相当于DOS下的type命令。 例如: [test @redflag test]$cat chap1.txt chap2.txt 把文件chap1.txt、chap2.txt在标准的输出设备(通常是显示器)上显示出来。
2. more 文件名——逐页显示文件中的内容
如果文件太长,用cat命令只能看到文件的最后一页,而用more命令时可以一页一页地显示。执行more命令后,进入more状态,用【Enter】键可以向后移动一行;用【Space】键可以向后移动一页;用“q”键可以退出。在more状态下还有许多功能,可用man more命令获得。
3. less 文件名——逐页显示文件中的内容
less实际上是more的改进版,其命令的直接含义是more的反义。less的功能比more更灵活。例如:用【Pgup】键可以向前移动一页,用【Pgdn】键可以向后移动一页,用向上光标键可以向前移动一行,用向下光标键可以向后移动一行。“q”键、【Enter】键、【Space】键的功能和more类似。
2.2.2 head、tail
1. head [参数] 文件名——显示文件的前几行
参数选项:
-n num:显示文件的前num行。
-c num:显示文件的前num个字符。
缺省时,head显示文件的前10行。
例如: [test @redflag test]$head -n 20 chap1.txt 显示文件chap1.txt的前20行。
2. tail [参数] 文件名——显示文件的末尾几行
参数选项:
-n num:显示文件的末尾num行。
-c num:显示文件的末尾num个字符。 tail命令和head命令相反,它显示文件的末尾。缺省时,tail命令显示文件的末尾10行。
例如: [test @redflag test]$tail -n 20 chap1.txt 显示文件chap1.txt的末尾20行。
2.2.3 sort、uniq
1. sort [参数] 文件列表——将文件中的内容排序输出 参数选项: -r:反向排序。 -o filename:把排序的结果输出到文件filename。 如果文件a.txt的内容为
b c a d a 则执行sort a.txt命令后的显示结果为 a a b c d
例如: [test @redflag test]$sort -o c.txt a.txt 把a.txt文件的内容排序,并输出到文件c.txt。 [test @redflag test]$sort a.txt b.txt c.txt 把文件a.txt、b.txt、c.txt的内容联合排序输出。
2. uniq 文件名——比较相邻的行,显示不重复的行 如b.txt文件的内容为 b c c a d a
则执行uniq b.tx命令后的显示结果为 b c a d a
2.2.4 file、locate、which
1. file 文件名或目录——显示文件或目录的类型 例如: [root @redflag /root]#file /etc/passwd 则可能输出: /etc/passwd:ASCII text 说明passwd是个ASCII文本文件。
2. locate 字符串——查找绝对路径中包含指定字符串的文件
例如: [test @redflag test]$locate chap1 则可能输出: /etc/longkey/chap1.txt /usr/share/doc/qt-devel-2.3.0/html/designer/chap10_1.html /usr/share/doc/qt-devel-2.3.0/html/designer/chap1_1.html /home/longkey/chap1.txt /root/home/longkey/chap1.txt
3. which 命令——确定程序的具体位置 例如: [test @redflag test]$which find 则输出find命令所处的位置: /usr/bin/find