开发人员都应该知道的 12 个终端命令

终端CMD 是开发人员工具中最重要的提高生产力工具之一。掌握它可以对你的工作流程产生非常有用的帮助。

之前推荐了一篇开发者应该了解的 10 个 Linux 命令,在本文中,我将为你准备有逼格的一组Unix命令,这些命令将帮助你充分利用终端。其中一些是内置的,其他的是经过时间考验并且可以在一分钟内安装的免费工具。

Curl

Curl是一个命令行工具,用于通过HTTP(s),FTP和许多您可能没有听说过的其他协议发出请求。它可以下载文件,检查响应标题,并可以自由访问远程数据。

在Web开发中,curl通常用于测试连接和使用RESTful API。

# Fetch the headers of a URL.

curl -I http://google.com

HTTP/1.1302FoundCache-Control:private

Content-Type: text/html;

charset=UTF-8

Referrer-Policy: no-referrerLocation: http://www.google.com/?gfe_rd=cr&ei=0fCKWe6HCZTd8AfCoIWYBQ

Content-Length:258

Date: Wed,09Aug201711:24:01GMT

# Make a GET request to a remote API.

curl http://numbersapi.com/random/trivia

29is the number of days it takes Saturn to orbit the Sun.

Curl命令可能比这更复杂。有很多选项可用于控制标题,Cookie,身份验证等

Tree

树是一个小命令行实用程序,向你显示目录中文件的可视化表示。它同过递归地工作,遍历每个嵌套级别并绘制所有内容的合成树。通过这种方式,你可以快速浏览并查找要查找的文件。

还可以使用简单的regEx样式过滤结果:

Tmux

根据Wiki,Tmux是一种终端复用器,翻译成人类语言意味着它是将多个终端连接到单个终端会话的工具。

带3个分屏的Tmux终端

它可让您在一个终端中切换程序,添加拆分屏幕窗格,并将多个终端连接到同一会话,保持同步。在远程服务器上工作时,Tmux特别有用,因为它允许你创建新的选项卡,而不需要你再次登录

Disk usage - du

du命令生成关于文件和目录空间使用情况的报告。它非常易于使用,并且可以递归地工作,遍历每个子目录并返回每个文件的个体大小。

du的一个常见案例是当你的某个驱动器空间不足时。使用此命令可以快速查看每个文件夹的存储量,从而找到最大的内存囤积器。

# Running this will show the space usage of each folder in the current directory.

# The -h option makes the report easier to read.

# -s prevents recursiveness and shows the total size of a folder.

# The star wildcard (*) will run du on each file/folder in current directory.

du-sh *1.2G

Desktop4.0K

Documents40G

Downloads4.0K

Music4.9M

Pictures844K

Public4.0K

Templates6.9M

Videos

还有一个类似的命令叫做df(Disk Free),它返回有关可用磁盘空间的各种信息(与du相反)。

Git

Git是目前最流行的版本控制系统。它是现代Web开发的定义工具之一,我们不能将它从我们的列表中排除。

有很多第三方应用程序和工具可用,但大多数人更喜欢通过终端本地访问git。git CLI非常强大,可以处理最混乱的项目历史。

如果你想了解更多关于git的知识,建议查看教程在30分钟内学习Git。

Tar

Tar是使用文件归档的默认Unix工具。它允许您快速将多个文件捆绑到一个软件包中,以便日后更轻松地存储和移动它们。

tar-cfarchive.tarfile1file2file3

使用-x选项,它也可以提取现有的.tar文件。

tar-xfarchive.tar

请注意,大多数其他格式(如.zip和.rar)不能通过打开并需要其他命令实用程序(如解压缩)。

许多现代的Unix系统运行扩展版本的tar(GNU tar),它也可以执行文件大小压缩:

如果你的操作系统没有该版本的tar,则可以使用gzip,zcat或compress来减小文件归档的大小。

md5sum

Unix有几个内置的散列命令,包括md5sum,sha1sum和其他。这些命令行工具在编程中有各种应用程序,但最重要的是它们可用于检查文件的完整性。

例如,如果你从不受信任的来源下载了.iso文件,则该文件可能包含有害的脚本。为了确保.iso是安全的,你可以从中生成md5或其他散列。

md5sumubuntu-16.04.3-desktop-amd64.iso

d9fe8e1ea408a5895cbbe3431989295

ubuntu-16.04.3-desktop-amd64.iso

然后,您可以将生成的字符串与原始作者提供的字符串(例如UbuntuHashes)进行比较。

Htop

Htop是内置任务管理器的一个更强大的替代品。它提供了一个高级界面,提供了许多监视和控制系统过程的选项。

htop任务管理器正在运行。

虽然它在终端中运行,但htop对鼠标控制有很好的支持。这使得浏览菜单,选择过程以及组织考虑排序和过滤的任务变得更容易。

Ln

Unix中的链接类似于Windows中的快捷方式,使您可以快速访问某些文件。链接通过命令创建,可以是两种类型:硬或符号。每种都有不同的属性,用于不同的事情。

以下是您可以使用链接的众多方法之一的示例。假设我们的桌面上有一个名为Scripts的目录。它包含我们通常使用的整齐组织的bash脚本。每次我们想要调用我们的脚本时,我们都必须这样做:

~/Desktop/Scripts/git-scripts/git-cleanup

显然,这是不是很方便,因为我们必须每次写绝对路径。相反,我们可以从我们的Scripts文件夹创建一个符号链接到/ usr / local / bin,这将使脚本可以从所有目录执行。

sudo ln-s~/Desktop/Scripts/git-scripts/git-cleanup /usr/local/bin/

通过创建符号链接,我们现在只需在任何打开的终端中写入其名称即可调用我们的脚本。

git-cleanup

SSH

通过该命令,用户可以快速连接到远程主机并登录到它的Unix shell。这使得可以直接从本地机器的终端在服务器上发出命令。

要建立连接,只需指定正确的IP地址或URL即可。当年第一次连接到新服务器时,会有某种形式的身份验证。

sshusername@remote_host

如果你想在不登录的情况下快速执行服务器上的命令,只需在url后添加一条命令即可。该命令将在服务器上运行,并返回结果。

sshusername@remote_hostls /var/wwwsome-website.comsome-other-website.com

SSH可以做很多事情,比如创建代理和隧道,保护与私钥的连接。

Grep

Grep是用于在文本中查找字符串的标准Unix实用程序。它以文件或直接流的形式接受输入,通过正则表达式运行其内容,并返回所有匹配的行。

当处理需要过滤的大文件时,该命令会派上用场。下面我们结合使用该命令来搜索大型日志文件,并生成仅包含今日错误的新文件。

// Search for today's date (in format yyyy-mm-dd) and write the results to a new file.

grep"$(date +"%Y-%m-%d")"all-errors-ever.log> today-errors.log

使用字符串的另一个重要命令是sed。它比grep更强大(也更复杂),并且可以执行几乎任何与字符串相关的任务,包括添加,删除或替换字符串。

Alias

许多Unix命令(包括本文中的一些命令)在将所有选项添加到它们之后往往会变得很长。为了便于记忆,可以使用别名bash内置命令创建简短的别名:

# Create an alias for starting a local web server.

aliasserver="python -m SimpleHTTPServer 9000"

# Instead of typing the whole command simply use the alias.server Serving HTTPon0.0.0.0port9000...

只要你确保该终端打开,别名就可以使用。要使其成为永久的,你可以将alias命令添加到.bashrc文件中。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180504G1L0XI00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券