Shell常用命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell常用命令相关的知识,希望对你有一定的参考价值。

前面的话

  自以为前端工程师可能用不到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]

技术分享


以上是关于Shell常用命令的主要内容,如果未能解决你的问题,请参考以下文章

提效小技巧——记录那些不常用的代码片段

shell脚本简介及常用文本编辑命令

常用的shell变量

代码片段:Shell脚本实现重复执行和多进程

hadoop常用shell命令怎么用

Linux shell常用命令