高级CLI:开发人员都应该知道的命令

wangchao 2020-01-27

在本文中,我们不会介绍ls,rm和cd等基本命令。看到这些命令应该不会令您感到震惊。您甚至可能对它们非常熟悉,特别是如果您非常了解命令行的方式。我假设您之前至少已经在命令行上工作(或尝试过工作)。如果您以前从未使用过命令行,建议您先阅读一些基础知识。

本文适合那些对命令行有一定经验并了解基本命令的用户。对于那些觉得是时候该深入研究使用命令行的可能性的人来说。我在本文中为您列出了六个命令,并且提供了一些技巧。

高级CLI:开发人员都应该知道的命令

wget

在类似Unix的操作系统上,wget命令通过网络下载HTTP、HTTPS或FTP服务的文件。默认情况下,它包含在所有自重的Linux发行版中。

使用wget的最简单方法是为它提供要通过HTTP下载的文件的位置。使用wget下载文件

http://website.com/static/images/header.jpg可以通过以下命令完成:

wget http://website.com/static/images/header.jpg 

wgetwget的一大优点是它是非交互式的,这意味着它可以在用户未登录时在后台运行。这使您可以开始检索并与系统断开连接,让wget完成工作。

scp

您是否曾经遇到过需要从本地计算机上的远程服务器获取文件的问题?例如,获取用户上传的文件会造成一些麻烦。

您可以使用scp命令通过命令行下载此文件。Scp是安全拷贝的简称。但是,更重要的是它是一个远程安全拷贝。该命令类似于您可能已经知道的cp命令,但是源或目标位于另一个系统上。

以下命令将文件foobar.txt从远程服务器复制到本地目录。

scp [email protected]:/path/to/foobar.txt / some / local / directory 

但是scp也可以用于将文件从本地目录复制到远程服务器。

scp /some/local/directory/foobar.txt [email protected]:/ destination / path / 

使用-r选项可以对目录执行相同的操作,该选项以递归方式复制整个目录。

ssh-keygen

ssh-keygen命令用于生成新的SSH密钥对。可以在Gitlab或Bitbucket中使用此命令生成的公共SSH密钥来建立安全连接。

将SSH密钥添加到Gitlab或Bitbucket后,每次尝试将文件推送到远程分支时都不会提示您输入密码。

要生成SSH密钥对,请使用以下命令:

ssh-keygen -t ed25519 

请注意,在上面的示例中,我们使用了ED25519签名算法。尽管ED25519被认为是最佳实践,但您应该始终对不同的可用签名算法进行一些研究。

生成SSH密钥对并在Gitlab或Bitbucket中正确设置它最多花费十分钟(大约三分钟),但这是完全值得的!

chmod

在Unix和类似Unix的操作系统中,chmod是命令和系统调用,用于更改文件系统对象(文件和目录)的访问权限。

根据Wikipedia,这是chmod命令的定义。由于文件权限配置错误,导致服务器无法访问某个文件。

chmod命令本身非常简单,但是赋予文件和目录正确的权限又是另一回事。

ssh-keygen -t ed25519 

第一个示例向robots.txt文件的用户和组授予读写权限。对该文件授予了他人读取权限。

第二个示例为public / images文件夹授予用户和组读取、写入和执行权限。其他人被授予对该文件夹的读取和执行权限。

如果您想了解有关设置文件和目录的正确权限的更多信息,建议您阅读有关chmod的Wikipedia页面。

tar

Linux tar代表磁带存档。它用于将许多文件收集到一个存档文件中。Tar是创建压缩归档文件最广泛使用的命令。

让我们从如何为特定目录创建存档文件开始:

tar -cvf my-archive.tar /path/to/directory 

该命令将导致一个名为my-archive.tar的存档文件,tar文件,它包含在当前工作目录中创建的/path/to/目录的所有文件。

创建存档文件是第一步。第二部分包括解压缩存档文件,因为在某些时候我们想使用tar文件中的文件。您可以通过键入以下命令将文件解压缩到特定目录:

tar -xvf my-archive.tar -C / home / myfolder / 

alias

每个人都使用一些太长或太复杂而无法完全记住的命令。幸运的是,您可以为该命令创建一个alias,因此您不必记住整个命令。

alias short-command="your custom and very long command here" 

尽管以这种方式创建alias存在一个问题:此alias是临时的。如果以此方式创建,则该alias仅可用于当前的终端会话。

要在会话之间保留alias,可以将其保存在用户的Shell配置配置文件中。如果您分别使用Bash或ZSH,则此配置文件可能位于〜/ .bashrc或〜/ .zshrc中。

技巧1:直接输出

屏幕是标准输出设备。但有时您不想在屏幕上输出所有内容。在某些情况下,您可能希望将某些命令的结果输出到文件中。

例如,用于日志记录的目的。要重定向输出,可以使用>。在以下命令中,ls -al的输出重定向到文件myfile而不是屏幕。

ls -al> myfile 

在此示例中,我使用了ls,但实际上它可以是任何具有某些输出的命令。为了确认这是可行的,您可以检查myfile文件。

技巧2:合并命令

一次可以运行两个或多个命令。分号(;)运算符允许您执行此操作。您可以连续执行多个命令,而不管每个先前的命令是否成功。

ls -al; pwd; 

如果要仅在第一个命令成功的情况下运行第二个命令,请使用逻辑和操作符(即&&)分隔命令。

mkdir images && cd images 

相关推荐