开发人员应该知道的命令
2020-04-20宋茜
宋茜
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
wget的一大优点是它是非交互式的,这意味着它可以在用户未登录时在后台运行,这可以进行检索并与系统断开连接,让wget完成工作。
scp
在本地计算机上从远程服务器获取文件时是否出现过问题?例如,获取用户上传的文件会遇到一些麻烦。
这时可以使用scp命令通过命令行下载此文件。scp是安全拷贝的简称。但更重要的它是一个远程安全拷贝。该命令类似cp命令,但是源或目标位于另一个系统上。
例如使用以下命令将文件foobar.txt从远程服务器复制到本地目录:
scp username@remotehost.com:/path/to/foobar.txt / some / local / directory
scp也可以用于将文件从本地目录复制到远程服务器:
scp /some/local/directory/foobar.txt username@remotehost. com:/ 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是命令和系统调用,用于更改文件系统对象(文件和目录)的访问权限。
chmod命令本身非常簡单,但是赋予文件和目录正确的权限又是另一回事。
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:合并命令
一次可以运行2个或多个命令。分号(;)运算符允许执行此操作,可以连续执行多个命令,而不管每个先前的命令是否成功。
ls -al;pwd;
如果要在第一个命令成功的情况下运行第二个命令,可用逻辑和操作符(即&&)分隔命令。如果想在第一个命令不成功的情况下执行第二个命令,可以使用逻辑OR操作符,即||。