最近用Mac做一些开发,用到了一些命令行的内容,先将常用的命令行进行总结。由于会不断的用到新的,所以将会持续的总结进来。每一个命令行的使用可能都会比较复杂,我只会总结最常用的使用方法。

echo命令

显示注释作用,用于一些批命令中需要注释给用户看的地方,比如前一条命令执行会花很长时间,常规来会用echo显示一条信息让用户知道这个时候比较慢,稍微等待一会之类的信息。



1




echo "Hello World" // 执行后会打印 i am a boy


rm 删除命令

即remove的缩写,它后面有两个参数。

-r 删除文件夹内的子文件夹及内容,一般情况下rm只能删 除文件或者空的文件夹。

-f 强制删除参数



1




rm -r -f f1 f2 f3 …..


ls命令

这是最基本的档案指令。 ls 的意义为 “list”,也就是将某一个目录或是某一个档案的内容显示出来。

如果你在下 ls 指令後头没有跟著任何的档名,它将会显示出目前目录中所有档案。

也可以在 ls 後面加上所要察看的目录名称或档案的名称



1
2
3
4




ls
ls desktop
ls -a
ls -l


ls 有一些特别的参数,可以给予使用者更多有关的资讯,如下:

-a : 在 UNIX 中若一个目录或档案名字的第一个字元为 “.” , 则使用 ls将不会显示出这个档案的名字,我们称此类档案为隐藏档。如 tcsh的初设档 .tcshrc;如果我们要察看这类档案,则必须加上参数 -a 。

-l : 这个参数代表使用 ls 的长( long )格式,可以显示更多的资讯,如档案存取权,档案拥有者( owner ),档案大小,档案最後更新曰期,甚而 symbolic link 的档案是 link 那一个档等等。

cp拷贝命令

cp 这个指令的意义是复制(“COPY”) , 也就是将一个或多个档案复制成另一个档案或者是将其复制到另一个目录去。



1
2
3




cp f1 f2 : 将档名为 f1 的档案复制一份为档名为 f2 的档案。
cp f1 f2 f3 … dir : 将档案 f1 f2 f3 … 都以相同的档名复制一份放到目录 dir 里面。
cp -r dir1 dir2 : 将 dir1 的全部内容全部复制到 dir2 里面。


cp 也有一些参数,如下:

-i : 此参数是当已有档名为 f2 的档案时,若迳自使用 cp 将会将原来 f2的内容掩盖过去,因此在要盖过之前必须先询问使用者一下。如使用者的回答是y(yes)才执行复制的动作。

-r : 此参数是用来做递回复制用,可将一整颗子树都复制到另一个目录中。

mv移动命令

mv 的意义为 move , 主要是将一档案改名或换至另一个目录。如同 cp ,它也有三种格式:



1
2
3




mv f1 f2 : 将档名为 f1 的档案变更成档名为 f2 的档案。
mv dir1 dir2 : 将档名为 dir1 的目录变更成档名为 dir2 的目录。
mv f1 f2 f3 … dir : 将档案 f1 f2 f3 … 都移至目录 dir 里面。


mv 的参数有两个,-f 和 -i , 其中 -i 的意义与 cp 中的相同,均是 interactive询问之意。而 -f 为强迫( force ) , 就是不管有没有同名的档案,反正我就是要搬过去,所有其他的参数遇到 -f 均会失效。

export 命名

在shell中使用这个命令后,变量VAR将成为所有后续命令的环境变量.

比方说你有一个脚本叫 a.sh,内容是



1
2




#!/bin/bash
echo "VAR=$VAR"


现在你新打开一个终端,执行



1
2




$ export VAR=123
$ ./aaa.sh


会输出



1




VAR=123


再打开一个新终端(这里一定要重新打开一个终端,不能用前面执行过export VAR的那个终端),执行



1
2




$ VAR=123
$ ./aaa.sh


就只会输出



1




VAR=