Linux的DOS-like命令如表2-1所示。

  表2-1 DOS-like命令说明

简要中文说明

程序所在目录

ls

列示文件(相当于 DOS DIR

/bin

clear

清除屏幕(相当于 DOS CLS

/user/bin

date

显示或设置日期时间(类似于 DOS DATETIME

/bin

rm

删除文件(相当于 DOS DEL DELTREE

/bin

cat

链接文件,另兼有将文件内容显示的作用(类似 DOS TYPE

/bin

cp

复制文件(相当于 DOS COPY XCOPY

/bin

mv

移动文件(相当于 DOS MOVE,另兼有文件改名的作用(类似 DOS REN

/bin

cd

切换目录(相当于 DOS CD

Shell 内部提供

mkdir

创建新目录(相当于 DOS MD

/bin

rmdir

删除目录(相当于 DOS RD

/bin

mtools

MS-DOS兼容的操作命令集

/usr/bin

  ls [-选项] [文件名描述]

  列示文件 ( 相当于 DOS 的 DIR)

  ls 就相当于 DOS 的 dir 命令,所以当然是我们第一个要学的命令。

  ls 后面所接的 [文件名描述] 可以使用通配符。而UNIX的通配符策略和范围与DOS稍微有点不同。

  ls 所能列出的项目也比DOS多很多,譬如权限值。我们下面具体说明:

  因为UNIX(注:以后除非特别声明,否则UNIX就是统称,包含Linux在内)是一个多人多工的操作系统,所以对于每一个文件,都有“所有者”、“同一用户组的人”、“其他人”3种不同的权限范围,每一个权限范围又分为“读权限”、“写权限”、“执行权”3种权限,因此每个文件都具有9个属性值。

  所以当您用

  ls –l (小写的L)

  列出文件来的时候,就会看到这9个属性值(最前面还有一个属性值标明这是否是一个目录),分别依图2-1所示的顺序排列。

Linux的DOS-like命令_职场
图2-1 9个属性值

  例子中第3个项目autosave,最前面有一个“d”,表示它是一个目录。接着3个属性是“rwx”,表示所有者对它有“读权限”(r)、“写权限”(w)、“执行权”(对于目录来讲是进入权)。而同一用户组的人因为属性值是“r-x”,所以只能读取和执行,不能写入及删去。其他人也是一样“r-x”。其余依此类推。

  方才我们在ls后面加了一个-l,它叫做“选项”或者“参数”(选项可以合并使用)。ls 常用的选项有:

  l -l 会列出每个文件全部的详细资料,是long的意思。

  l -a 连同隐藏文件也列出来。UNIX有很多隐藏文件(通常是做设置用的),它的文件名开头就是一个“.”,平常我们用ls命令它们是不会列出来的。

  l -d 这个选项无法用几个字交待清楚。有些书上仅写“只列出目录而不列出内容”。相信这样的说明是无法让初学者了解的。

  我们以一个例子来阐述(尤其是DOS的高手反而要特别注意):

  譬如我们先用 ls 看看 /usr下面全部有哪些文件和目录,如图2-2所示。

Linux的DOS-like命令_职场_02
图2-2 /usr下面的文件和目录

  它们绝大部分都是目录名称。那么,如果我们下达:

  ls s*

  命令会出现什么呢?依照我们对DOS的了解,它应该会列出sbin,share,src三个目录。但结果不然,您下达这道命令之后,列出的居然是好几百个文件!如图2-3所示。

Linux的DOS-like命令_命令_03
图2-3 输入ls s*后列出的文件

  因为它把这3个目录下面的文件全都列出来了!

  所以,为了避免这种状况,加上–d选项就可以解决了,这是 DOS 所没有的观念,请特别注意。如图2-4所示。

Linux的DOS-like命令_命令_04
图2-4 输入ls –d s*命令

  --color(请注意前面要加两个减号)因为 ls 列出来的内容,我们常常看不出哪一个是目录,哪一个是执行文件,哪一个是普通资料文件,哪一个是链接文件。所以我们很希望它能以“彩色”显示出来。这个选项就可以实现此目的。默认的彩色如下:

  默认彩色 ls:

  目录 蓝色

  可执行文件 绿色

  一般文件 白色

  链接文件 浅蓝色

  Slackware 默认彩色 ls:(可不用加 --color 选项)

  目录 蓝色

  可执行文件 绿色

  一般文件 白色

  链接文件 浅蓝色

  图形文件 紫红色

  压缩文件 红色

  有人觉得,既然--color这么好,那为什么不默认这个选项?因为这个选项也有副作用的。我们试试看把它用 > 符号导向输出到一个文件,如图2-5所示。

Linux的DOS-like命令_命令_05
图2-5 使用 > 符号

  然后再把这个文件调出来,如图2-6所示。

Linux的DOS-like命令_Linux_06
图2-6 调出al.txt文件

  惨了吧!因为彩色是我们眼睛看到的而已。事实上它是用所谓的“ANSI 控制码”叫终端机变化颜色的,一旦导向输出到普通文件,这些控制码就“现形”了!因为有些时候我们会用 ls 输出的结果来写一些程序,一旦遇到这些控制码,程序很可能会出差错。

  如果您确定不会有程序被这些控制码影响,那么可以自己设置 --color 选项为 ls 的默认参数。

  -F 如果您还是不喜欢彩色,或者您希望它导向输出到文字文件后(请见上一个选项--color 的说明)仍然能辨识哪一个是目录,哪一个是普通文件等;或者,您的终端机是单色的(其实在中大型电脑的UNIX系统,很多终端机都只有单色,例如交通监理单位、户政单位、大型医院等),那么我们加上这个选项,它会在所有的目录后面标上“/”,链接文件标示“@”,可执行文件标示“*”,一般文件不标示。这样我们就仍然可以在单色下辨认它们的种类了,如图2-7所示。

Linux的DOS-like命令_休闲_07
图2-7 增加-F选项

  其实您若拿一本 UNIX 命令全集来看, ls 的选项共有高达23个以上。谁记得了那么多?本书定位在初学,相信您能把上述5个选项记牢(因为太常用了,所以值得记牢)就足够用了!

  练习:

  (1)其实Linux(UNIX尚无)也有一个dir命令,试试看,它相当于ls吗?

  (2)Linux还有一个vdir命令,也请试试看,它相当于ls加上什么选项?