欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux/Unix/Cygwin 常用命令

程序员文章站 2023-04-05 10:18:42
以下只说明各指令的基本用法,若需详细说明,请用man去读详细的manual。[Cygwin通常没有安装 man相关的文件,所以没有man功能] 1.关于文件/目录处理的指令: 1.1 ls 这是最基本的文件指令。ls的意义为“list”,也就是将某一个目录下的内容显示出来。如果你在ls指令后 没有跟 ......

以下只说明各指令的基本用法,若需详细说明,请用man去读详细的manual。[cygwin通常没有安装 man相关的文件,所以没有man功能]

1.关于文件/目录处理的指令: 1.1 ls 这是最基本的文件指令。ls的意义为“list”,也就是将某一个目录下的内容显示出来。如果你在ls指令后 没有跟任何文件,它将会显示出目前目录中所有文件。也可以在ls后面加上所要察看的目录名称或文 件的名称,如 $ls /home/

ls有一些参数,可以给予使用者更多有关的资讯,如下: -a:(a 代表 all)在linux中若一个目录或文件名字的第一个字元为“.”,则使用ls将不会显示出这个文 件的名字,我们称此类文件为隐藏文件,如”.bashrc”文件。如果我们要察看这类文件,则必须加上参 数“-a”。 -l:(l 代表 long)这个参数代表使用ls的长格式,可以显示更多的资讯,如文件存取权,文件拥有者 (owner),文件大小,文件最后更新日期。比如: ls -l drwxr-xr-x 4 lix staff 136 oct 9 07:19 dir -rw-r--r-- 1 lix staff 25 nov 8 2015 hain.h -rw-------@ 1 lix staff 1537750 aug 27 22:49 lang.pdf -rw-r--r-- 1 lix staff 5438 nov 4 2015 main.h -rwxr-xr-x 1 lix staff 51 nov 8 2015 rename.sh

第一个字母如果是”d”, 则是目录(d 代表 directory);如果是”-“,那么就是文件。上面dir是目录, hang.h, lang.pdf, main.h, rename.h 都是文件。请注意,这里打印的顺序是按照英文字母排列: dir, hain.h, lang.pdf, main.h, rename.sh.

如果指令改为: ls –lrt (r代表reverse,颠倒; t 代表 time, 时间) -rw-r--r-- 1 lix staff 5438 nov 4 2015 main.h -rw-r--r-- 1 lix staff 25 nov 8 2015 hain.h -rwxr-xr-x 1 lix staff 51 nov 8 2015 rename.sh -rw-------@ 1 lix staff 1537750 aug 27 22:49 lang.pdf drwxr-xr-x 4 lix staff 136 oct 9 07:19 dir

这时候打印出来的顺序就是按照建立或者修改的时间,从最老的到最新的。如上显示,main.h是2015 年11月4日建立或者修改的,hain.h是2015年11月8日,rename.sh也是2015年11月8日(几点几分几秒, 这里没有显示,rename.sh应该是比hain.h新的文件)。这个例子也说明,几个参数是可以一起使用的。

上面的打印结果显示,文件main.h的大小是5438 byte,文件hain.h的大小是25 byte,…,文件 lang.pdf的大小是1537750 byte。这让人读起来很不方便,因为人们通常都是说kilobyte(kb), megabyte(mb), gigabyte(gb). 1kb = 1000byte, 1mb = 1000kb, 1gb = 1000mb. 这时候可以使用参 数”-h” (h: human,意思是人读起来方便) ls –lrth (r代表reverse,颠倒; t 代表 time, 时间)
-rw-r--r-- 1 lix staff 5.4k nov 4 2015 main.h -rw-r--r-- 1 lix staff 25b nov 8 2015 hain.h -rwxr-xr-x 1 lix staff 51b nov 8 2015 rename.sh -rw-------@ 1 lix staff 1.5mb aug 27 22:49 lang.pdf drwxr-xr-x 4 lix staff 136b oct 9 07:19 dir


-r: (r 代表 recursive;请注意,这里必须是大写,不是小写。小写的”-r”上面已经使用。) 使用这 个参数,会显示当前目录的内容,以及所有下面的子目录,子子目录内容。(你如果用鼠标在资源管 理器上点击,你则需要点击各个子目录来查看里面的内容,很不方便。)

1.2 cp cp这个指令的意义是复制(“copy”),也就是将一个或多个文件复制成另一个文件或者是将其复制到另 一个目录去。请注意,这是复制,既原来的文件,或者目录,没有任何改变,依然存在。

cp的用法如下: cp f1 f2:将文件名为f1的文件复制一份为文件名为f2的文件。请注意:如果f2已经存在,会怎样?请 用不重要的文件尝试。答案:原来的f2文件会被一下子冲掉,所以使用这个命令要小心。

现在,f2同样是事先存在的,请运行这个指令: cp –i f1 f2 i: interactive 互动模式。回答”y”,意思是”yes”; 回答”n”, 意思是”no”。

cp f1 f2 f3 f3 f5 dir/.:将文件f1, f2, f3 …复制一份放到目录dir里面。请注意,末尾是”dir/.”。注意那 一点”.”。

cp f1 f2 f3 … dir/:作用与上面一样。请注意末尾是”dir/”,没有那一点。

cp –r dir1 dir2:将目录dir1的全部内容(包括里面的文件,子目录,子目录下面的子目录,子子目录) 全部复制为dir2。”r” means recursive,上面已经提到。对cp而言,r可以大写,或者小写,功能相同。

cp –r dir1/ dir2/: same function as above.

1.3 mv mv的意义为move,有两个功能:一是更改文件或者目录的名字;二是转移文件或者目录到另外一个地 方: mv f1 f2:将文件名为f1的文件变更成文件名为f2的文件。提问:如果f2事先已经有了,会如何?请注 意使用参数”-i” (这与cp指令的是同样的参数)。

mv f1 /dira/dirb/.: 把文件f1移到dirb里面(请注意那个点)。

mv dir1 dir2:将文件名为dir1的目录变更成文件名为dir2的目录。提问:如果dir2事先已经有了,会 如何?请注意使用参数”-i”。

mv dir1 dir2/.:这是把目录dir1移到目录dir2里面(dir2必须是事先存在的)。注意与上面指令的区别。

mv f1 f2 f3 f4 dir/.:将文件f1,f2,f3…都移至目录dir里面。

1.4 rm rm的意义是remove,也就是用来删除一个文件或者目录的指令。一个被删除的文件除非系统有备份, 通常是不能够救回来的。所以在做rm动作的时候使用者应该要特别小心。

rm的格式如下: rm f1 f2 f3:删除文件f1, f2, f3。

而rm的参数比较常用的有几个: -i:(i: interactive.这在上面的cp和mv指令中已经介绍)在除去文件之前询问是否真要除去。

rm –rf dir1/:删除目录dir1,无论里面是空的,还是有文件,子目录,子子目录,一次全部删除。

-r:(r: recursive,递回式的)。 -f: (f: force, 强制性的)。

小心不要随便使用rm -rf,否则有一天你会“欲哭无泪”  1.5 mkdir mkdir是一个让使用者建立一个目录的指令。你可以在一个目录底下使用mkdir建立一个子目录,使用 的方法如下: mkdir dirname

再比如: mkdir -p dirnamea/dirnameb/dirnamec/ 一次性建立三层目录,目录里面有子目录,孙目录。这是用鼠标无法一次做到的。

1.6 cd 这是让使用者用来转移工作目录用的。 cd的用法如下: cd dirname 如此你就可以将目前的目录转移到dirname这一个目录去。

cd -: 回到你上一次所在的目录。

1.7 rmdir 相对于mkdir,rmdir是用来将一个“空的”目录杀掉的。这个目录必须是空的,里面没有任何文件和子目 录。rmdir的使用法如下: rmdir dirname1

如果一个目录底下有其他的文件,rmdir将无法将这个目录杀掉。参见上面使用rm ,陪上参数,删除 目录的指令。也就是因为这样的原因,我从不使用rmdir,而是使用rm。

1.8 pwd pwd 会将目前目录的路径(path working directory)显示出来。