了解命令行:基本命令
两年前,我刚开始学习编程时,发现自己对命令行感到畏惧。我觉得很多初学者都有这种感觉。如果你以新手的视角观看视频教程,就很容易理解为什么他们会觉得命令行如此可怕。他们觉得经验丰富的开发人员可以轻松地通过git
命令行输入命令、更改目录,或者创建、移动和重命名文件和文件夹。这看起来就像魔术一样。问题是,他们不是魔法师,他们只是初次接触这种魔法的新手。
现在,我并不是说所有制作教程视频的开发者都需要停下来解释他们在命令行中输入的每个命令。我创建这个系列的目的是希望帮助初学者熟悉命令行,让它不再那么令人望而生畏。
对于正在阅读本文的新手来说,别担心!您将在命令行中使用的命令将成为您的第二天性,您会想知道为什么自己曾经害怕(就像我一样)!
在开始之前,需要快速说明一下,这篇博文不会介绍git
命令。我相信这可以单独写一篇博文,我会在本系列的下一篇博文中继续讲解。如果你想git
立即了解更多信息,DEV 上有很多很棒的文章。git
话虽如此,让我们开始吧!
命令
创建目录
对于那些想知道目录是什么的人,它只是一个文件夹,所以不要害怕。为了创建目录mkdir
,我们使用 (代表make directory)以及您希望分配给该目录的名称。完整的命令如下所示mkdir NewDirectory
。
您甚至可以通过添加您想要的目录名称来一次创建多个目录。如下所示:mkdir Directory1 Directory2 Directory3
。
更改目录
这是我最常用的命令。如果你想切换目录cd
,只需使用 (代表change directory)加上你想进入的目录名即可。假设你想进入你的目录,那么你可以在目录所在的目录中~/Development
使用该命令。cd Development/
~/Development
现在,如果您想返回之前所在的目录~/Development
,可以使用命令cd ..
。此命令向上导航一个目录。
创建文件
现在我们有了工作目录,并且知道如何切换到这个目录,让我们在这个目录中创建一个新文件。为此,我们使用命令touch
并加上要创建的文件名。完整的命令如下所示touch NewFile.rb
。
列出目录中的所有文件
现在,如果您在目录中,但不确定该目录中存在哪些文件,该怎么办?这时该ls
命令就派上用场了。您只需输入ls
并按下 即可enter
。
注意:还有一些更高级的命令,ls
但我不会在这里讨论它们。如果你想了解更多信息,可以参考这个参考资料。
打印工作目录
如果你不确定当前在哪个目录中工作,可以使用pwd
代表“打印工作目录”的命令。就我而言,当我在~/Development
目录中时,我使用“pwd
我收到”/Users/vfluharty/Development
作为当前文件路径。
复制文件
如果您想要复制一个文件,您只需使用命令cp
(copy 的缩写)结合您想要复制的文件名以及您想要保存该文件副本的目标位置即可。整个命令如下所示cp file_to_be_copied.rb /Desired/Destination
。
移动文件
如果要将文件从其当前位置移动,您需要使用命令mv
(move 的缩写),结合文件当前路径和所需的目标路径。此命令如下所示mv ~/Development/File.rb /Desired/Destination/
。
重命名文件
如果我们想通过命令行重命名文件,可以使用我们新学到的mv
命令。你可能会想“这怎么可能?”其实,你只需要将文件移动到相同的位置,但更改其名称即可。命令如下mv ~/Development/File.rb ~/Development/MyFile.rb
。
但这并不是重命名文件的唯一方法!如果您想复制文件并重命名您创建的副本,那么您可以使用该cp
命令。您可以使用与我们上面讨论的类似方法,但略有不同。您不必只在命令中指定新复制文件所在的文件路径,而是在命令中指定所有路径以及您想要的文件名称。如下所示cp ~/Development/File.rb ~/Development/MyDirectory/File1.rb
。
删除文件
有时你可能想要删除一个文件。为了实现这一点,我们将命令rm
与要删除的文件名一起使用。整个命令如下所示rm file.rb
。
删除目录
删除目录时,与删除文件类似,我们使用rm -r
带有目录名的命令。假设我想从我的~/Development
文件夹中删除一个名为的文件夹/MyFolder
。首先,我需要确保我位于我的~/Development
文件夹中,然后我要使用的命令是rm -r MyFolder
。
最后的想法
如果您是一位新手,觉得命令行令人望而生畏,我希望读到这里,您能有所缓解。如果您仍然感到害怕,请打开终端,再读一遍文章,尝试不同的命令。重复练习得越多,就会变得越容易,越不害怕。
对于那些想要一个很棒的交互式资源来帮助你学习每个命令的人来说,请看看explainshell 。Jochem Stoel在下面这个讨论中向我介绍了这个资源。我希望我早点知道这个资源,所以我想把它分享给那些可能不会阅读讨论帖中每条评论的人们。
无论如何,现在您的工具带中已经有一些很棒的命令行命令,快去使用它们吧!
