每个Web开发人员应该知道的12个终端命令
Tips
原文作者:Danny Markov
原文地址:12 Terminal Commands Every Web Developer Should Know About

终端是开发人员的武器库中最重要的生产力工具之一。 掌握它可以对你的工作流程产生非常积极的影响,因为许多日常任务减少到编写简单的命令并按Enter键即可。
在本文中,我们为你准备了一系列Unix命令,可帮助你充分利用终端。 其中一些是内置的,其他的是免费的工具,经过时间测试,有些命令可以在不到一分钟内安装完成。
Tips
下文介绍的这些命令在Unix环境上是完全可用的,但是在Mac os或Ubuntu等其他系统上,个别命令可能会不可用。
Curl
curl是一个命令行工具,用于通过HTTP,HTTPs,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命令可以比这更复杂。 有许多选项用于控制header,Cookie,身份验证等。 你可以阅读Everything curl来获取更多的使用信息。
Tree
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
还可以使用简单的正则表达式模式来过滤结果:
tree -P '*.min.*'
.
├── css
│ ├── bootstrap.min.css
├── fonts
└── js
└── bootstrap.min.js
Tmux
根据它的Wiki解释,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 Desktop
4.0K Documents
40G Downloads
4.0K Music
4.9M Pictures
844K Public
4.0K Templates
6.9M Videos
还有一个类似的命令df(Disk Free),它返回有关可用磁盘空间的各种信息(与du正好相反)。
Git
git是迄今为止最流行的版本控制系统。 它是现代Web开发的定义工具之一,我们根本无法将其从我们的列表中删除。
有很多第三方应用和工具可用,但大多数人喜欢通过终端本地访问git。 git CLI真的很强大,可以处理最纠结的项目历史问题。
如果想了解更多有关git的信息,我们建议查看我们的教程Learn Git in 30 Minutes。
Tar
tar是使用文件存档的默认Unix工具。 它允许将多个文件快速捆绑到一个包中,从而更容易地存储和移动它们。
tar -cf archive.tar file1 file2 file3
使用-x选项,它也可以提取现有的.tar归档文件。
tar -xf archive.tar
请注意,大多数其他格式(如.zip和.rar)无法由tar打开,并需要其他命令实用程序(如unzip)。
许多现代Unix系统运行扩展版本的tar(GNU tar),还可以执行文件大小压缩:
# Create compressed gzip archive.
tar -czf file.tar.gz inputfile1 inputfile2
# Extract .gz archive.
tar -xzf file.tar.gz
如果你的操作系统没有该版本的tar,则可以使用gzip,zcat或compress来减小文件归档的大小。
md5sum
Unix有几个内置的哈希命令,包括md5sum,sha1sum等。 这些命令行工具在编程中有各种应用,但最重要的是它们可用于检查文件的完整性。
例如,如果从不受信任的源下载了.iso文件,那么该文件有可能包含有害的脚本。 为了确保.iso是安全的,可以从中生成md5或其他哈希值。
md5sum ubuntu-16.04.3-desktop-amd64.iso
0d9fe8e1ea408a5895cbbe3431989295 ubuntu-16.04.3-desktop-amd64.iso
然后,可以将生成的字符串与原始作者(例如UbuntuHashes)提供的字符串进行比较。
Htop
htop是内置顶级任务管理器的更强大的替代方案。 它提供了一个高级界面,具有用于监视和控制系统进程的许多选项。

虽然它在终端中运行,但是htop对鼠标控件有非常好的支持。 这使得更容易浏览菜单,选择进程,并组织排序和过滤的任务。
Ln
Unix中的链接与Windows中的快捷方式类似,可快速访问某些文件。 链接是通过ln命令创建的,可以是两种类型:hard或symbolic。 每种都有不同的属性,用于不同的东西。
以下是使用链接的许多方法的一个示例。 假设我们的桌面上有一个名为Scripts的目录。 它包含我们通常使用组织的bash脚本。 每次我们想要调用我们的一个脚本,我们必须这样做:
~/Desktop/Scripts/git-scripts/git-cleanup
显然,这不是很方便,因为我们每次都要写绝对路径。 相反,我们可以从我们的脚本文件夹创建一个符号链接到/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内置命令alias创建简短的别名:
# 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文件中。
每个Web开发人员应该知道的12个终端命令的更多相关文章
- C#开发人员应该知道的13件事情
本文讲述了C#开发人员应该了解到的13件事情,希望对C#开发人员有所帮助. 1. 开发过程 开发过程是错误和缺陷开始的地方.使用工具可以帮助你在发布之后,解决掉一些问题. 编码标准 遵照编码标准可以编 ...
- 每个JavaScript开发人员应该知道的33个概念
每个JavaScript开发人员应该知道的33个概念 介绍 创建此存储库的目的是帮助开发人员在JavaScript中掌握他们的概念.这不是一项要求,而是未来研究的指南.它基于Stephen Curti ...
- 对于JavaScript的函数.NET开发人员应该知道的11件事
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 昨天小感冒今天重感冒,也不能长篇大论.如果你是.NET开发人员,在进入前端开发领域的时候,对 ...
- Web开发人员需知的Web缓存知识
最近的译文距今已有4年之久,原文有一定的更新.今天踩着前辈们的肩膀,再次把这篇文章翻译整理下.一来让自己对web缓存的理解更深刻些,二来让大家注意力稍稍转移下,不要整天HTML5, 面试题啊叨啊叨的~ ...
- Web 开发人员需知的 Web 缓存知识
今天踩着前辈们的肩膀,再次把这篇文章翻译整理下.一来让自己对web缓存的理解更深刻些,二来让大家注意力稍稍转移下,不要整天HTML5, 面试题啊叨啊叨的~~ 什么是Web缓存,为什么要使用它? Web ...
- Android开发人员应该知道的Kotlin
本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2016/01/kotlin-android Android开发人员在语言限制方面面临着 ...
- WEB开发人员必知的20+HTML5技巧(转)
互联网科技发展的速度真可谓惊人的快,一个稍不留神,你就可能无法跟上它的步伐. HTML5的变化和更新也压倒不少人,这篇文章将向大家介绍一些最基本也非常必要的 HTML技巧. 1. 新的文档类型(Doc ...
- ASP.NET 开发人员应该知道的8个网站
1.CodeProject http://www.codeproject.com/ 2.DotNetNuke 3.4GuysFromRolla 4.DevSource 5.DevX http://ww ...
- 开发人员应该知道的SEO
搜索引擎是如何工作的 > 如果你有时间,可以读一下谷歌的框架: http://infolab.stanford.edu/~backrub/google.html > 这是一个老的,有些过时 ...
随机推荐
- DELPHI XE5安装
1.安装XE5 2. HNFJ-DPADCW-BDWCFU-FPNN QDF4-CTSDHV-RDFCFE-FEAN HNFK-BCN8NN-78N53D-H4RS 破解补丁使用方法: (1).复制压 ...
- .NetCore~Json代替了Xml
回到目录 在进行.netCore时代后,最大的变化就是对Json的使用更加主动,基本代替了之前的XML,像一些用户配置,系统配置,包包配置等都是基于json的,而web.config这个文件基本变成一 ...
- Domains域
一个域是一个criteria(度量标准)列表,每个criterion(标准尺度)是一个三元列表或者元组:field_name,operator,value. field_name(str) 当前模型的 ...
- 【Unity游戏开发】SDK接入与集成——小白入门篇
一.简介 通常一款游戏开发到后期,一般都会涉及到第三方SDK的接入与集成,对于不熟悉SDK接入的同学来说,接SDK每次都是云里雾里,而熟悉SDK接入的同学又觉得不断地重复做接入SDK工作这样没有成就感 ...
- laravel数据库查询返回的数据形式
版本:laravel5.4+ 问题描述:laravel数据库查询返回的数据不是单纯的数组形式,而是数组与类似stdClass Object这种对象的结合体,即使在查询构造器中调用了toArray(), ...
- (转)Spring boot——logback.xml 配置详解(二)
文章转载自:http://aub.iteye.com/blog/1101260,在此对作者的辛苦表示感谢! 1 根节点<configuration>包含的属性 scan: 当此属性设置为t ...
- Java大数据应用领域及就业方向
最难毕业季,2017高校毕业生达到795万,许多学生面临着毕业即失业的尴尬.面对着与日俱增的竞争形势和就业压力,很多毕业生选择去知了堂学习社区镀金,以提高自己的就业竞争力,其中Java大数据是学生选择 ...
- jqthumb.js缩略图插件-让缩略图正常显示而不变形
插件介绍 项目中有图片的时候,有的宽大于高,有的宽小于高,尤其在做图片列表的时候,经常发现缩略图会有变形的.我们怎样来解决这一问题呢. 方法一:用photoshop来处理缩略图.小的项目还可以,大的项 ...
- 深入浅出数据结构C语言班(11)——简要介绍算法时间复杂度
在接下来的数据结构博文中,我们将会开始接触到一些算法,也就是"解决某个问题的方法",而解决同一个问题总是会存在不同的算法,所以我们需要在不同的算法之中做出抉择,而做出抉择的根据往往 ...
- [补档][Usaco2015 Jan]Grass Cownoisseur
[Usaco2015 Jan]Grass Cownoisseur 题目 给一个有向图,然后选一条路径起点终点都为1的路径出来,有一次机会可以沿某条边逆方向走,问最多有多少个点可以被经过? (一个点在路 ...