自以为前端工程师可能用不到Shell命令。但在学习Git时,发现除了Git命令,还有好多是需要Shell命令来配合的。所以,Shell命令需要系统的学习并进行总结,本文将详细介绍shell常用命令
特殊字符
特殊字符对shell具有特殊含义,不要把它们当作普通字符使用。某些特殊字符用于正则表达式匹配
& ; | * ? ' " ` [ ] ( ) $ < > { } # / \ ! ~
空白符
尽管RETURN、SPACE、TAB都不是特殊字符,但它们对shell具有特殊含义
RETURN键通常用于结束命令行并开始命令的执行
SPACE键和TAB键则用作命令行上的分隔符
转义字符
要将特殊字符当作普通字符使用,可对它们转义引用
[注意]斜杠(/)无法被转义,它总是表示路径名中的分隔符
在特殊字符前加反斜杠(\)即可将将、特殊字符转义。要将连续的两个或多个特殊字符转义,必须在每个字符前面加一个反斜杠(\)
另一种将特殊字符转义的方法是使用单引号将它们引起来('**'),也可以将特殊字符和普通字符一起用一对单引号引起来
目录相关
显示目录路径
【pwd】 显示当前目录
[注意]如果使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文
切换目录
【cd】 切换到另一个工作目录,参数direction为要指定为新工作目录的目录路径名
cd [options] [direction]
如果不带任何参数,或使用波浪号(~),切换到主目录
使用连字符(-)来切换到前一次的工作目录
使用双句点(..)来返回到当前目录下的上一级目录
创建目录
【mkdir】创建目录,如果已经存在同名目录,则无法创建成功
mkdir [option] directory-list
删除目录
【rmdir】删除目录,如果不是空目录,则无法删除成功
rmdir directory-list
文件相关
显示所有文件
【ls】 类似于dos下的dir命令,用于显示一个或多个文件的相关信息
默认情况下,ls按照文件名的字母顺序列出文件的信息
ls [options] [file-list]
options有很多选项,常用选项如下
ls –a 显示所有文件,包括隐藏文件 ls –F 在文件的后面添加表示文件类型的符号。*表示可执行,/表示目录,@表示连结文件 ls –l 列出每个文件更详细的信息 ls -R 递归地列出子目录的内容 ls -t 按最后一次修改时间的顺序显示文件
file-list包含目录时,ls将显示该目录的内容
ls mygit 显示mygit目录下的文件 ls g* 显示所有以g字母开头的文件
显示文件内容
【cat】 显示文本文件的内容,类似于dos下的type命令
cat [options] [direction]
cat file1 显示file1文件内容 cat file1 file2 依次显示file1,file2的内容 cat file1 file2 > file3 把file1,file2的内容结合起来,再重定向(>)到file3文件中
">"是右重定向符,表示将左边命令结果当成右边命令的输入。如果右侧文件是一个已存在文件,其原有内容将会被清空,而变成左侧命令输出内容。如果希望以追加方式写入,请改用">>"重定向符
重写文件
如果">"左边没有指定文件,如: cat >file1,将会等用户输入,输入完毕后再按[Ctrl]+[d],就会将用户的输入内容写入file1
删除文件
【rm】 删除文件,与dos下的del/erase命令相似
rm [options] file-list
options有很多选项,常用选项如下
rm –i 系统在删除文件之前会先询问确认,用户回复y或Y之后,文件才会真的被删除 rm –r 递归删除指定目录的内容,包含所有子目录和目录自身 rm –f 和-i参数相反,-f表示强制删除 rm -v 显示被删除的每个文件的文件名
复制文件
【cp】 复制文件
cp [options] source-file destination-file cp [options] source-file-list destination-directory
使用cp命令可以生成一个文件的一个副本
使用cp命令也可以把一个或者多个文件复制到某个目录
cp -R 递归地复制包含普通文件的目录层次结构
移动文件或重命名
【mv】重命名或移动文件
mv [options] existing-file new-filename mv [options] existing-file-list direction mv [options] existing-direction new-direction
使用mv命令可以重命名文件
使用mv命令可以将一个文件移动到另一个目录
使用mv命令可以将一个文件移动到另一个目录,并改名
使用mv命令也可以移动目录
新建文件
【touch】 新建文件,或改变文件的访问和修改时间
touch [options] file-list
同名文件不存在时,touch用于新建文件
同名文件存在时,touch用于修改文件的访问和修改时间
文件高级
比较文件
【cmp】 逐字节地比较两个文件,如果两个文件相同,则cmp不显示任何内容;否则,cmp将显示第1个不同处对应的字节数和行号
cmp [options] file1 [file2 [skip1 [skip2]]]
显示不同
【diff】 按行显示两个文本文件的不同。默认情况下,可以按照diff显示的不同来编辑其中的一个文件,使之与另一个文件相同
diff [options] file1 file2 diff [options] file1 directory diff [options] directory file2 diff [options] directory1 directory2
file1和file2为diff要比较的普通文本文件的路径名。当file2被directory参数替换时,diff将在directory目录下查找与file1同名的文件;类似地,当file1被directory替换,diff将在directory目录下查找与file2同名的文件;当指定两个目录参数时,diff将比较directory1目录下与directory2目录下具有相同的简单文件名的两个文件
1c1表示更改a.txt的第1行,使之与b.txt的第一行相同
统计
【wc】 显示行数、单词数和字节数
wc [options] [file-list]
本文转自 zddnd 51CTO博客,原文链接:http://blog.51cto.com/13013666/1943070