查看原文
其他

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

逼格白 开发者技术前线 2019-05-24

终端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.1 302 Found Cache-Control: private
Content-Type: text/html;
charset=UTF-8
Referrer-Policy: no-referrer Location: http://www.google.com/?gfe_rd=cr&ei=0fCKWe6HCZTd8AfCoIWYBQ
Content-Length: 258
Date: Wed, 09 Aug 2017 11:24:01 GMT
# Make a GET request to a remote API.
curl http://numbersapi.com/random/trivia
29 is the number of days it takes Saturn to orbit the Sun.

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

Tree

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

tree. ├── css│   ├── bootstrap.css│   ├── bootstrap.min.css├── fonts│   ├── glyphicons-halflings-regular.eot│   ├── glyphicons-halflings-regular.svg│   ├── glyphicons-halflings-regular.ttf│   ├── glyphicons-halflings-regular.woff│   └── glyphicons-halflings-regular.woff2└── js    ├── bootstrap.js    └── bootstrap.min.js

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

tree -P '*.min.*'. ├── css │   ├── bootstrap.min.css ├── fonts └── js    └── bootstrap.min.js

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 -cf archive.tar file1 file2 file3

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

tar -xf archive.tar

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

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

# Create compressed gzip archive.tar -czf file.
tar
.gz inputfile1 inputfile2

# Extract .gz archive.
tar -xzf file.
tar
.gz

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

md5sum

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

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

md5sum ubuntu-16.04.3-desktop-amd64.iso
0d9fe8e1ea408a5895cbbe3431989295  
ubuntu-16.04.3-desktop-amd64.iso

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

Htop

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

htop任务管理器正在运行。

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

Ln

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

以下是您可以使用链接的众多方法之一的示例。假设我们的桌面上有一个名为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

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

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

ssh username@remote_host

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

ssh username@remote_host ls /var/www some-website.com some-other-website.com

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

Grep

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

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

// 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.

alias server="python -m SimpleHTTPServer 9000"

# Instead of typing the whole command simply use the alias.server Serving HTTP on 0.0.0.0 port 9000 ...

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

更多惊喜请看:确认过眼神,我就是你要的人

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存