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,则可以使用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是内置顶级任务管理器的更强大的替代方案。 它提供了一个高级界面,具有用于监视和控制系统进程的许多选项。

虽然它在终端中运行,但是htop对鼠标控件有非常好的支持。 这使得更容易浏览菜单,选择进程,并组织排序和过滤的任务。


Ln

Unix中的链接与Windows中的快捷方式类似,可快速访问某些文件。 链接是通过ln命令创建的,可以是两种类型:hardsymbolic。 每种都有不同的属性,用于不同的东西。

以下是使用链接的许多方法的一个示例。 假设我们的桌面上有一个名为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个终端命令的更多相关文章

  1. C#开发人员应该知道的13件事情

    本文讲述了C#开发人员应该了解到的13件事情,希望对C#开发人员有所帮助. 1. 开发过程 开发过程是错误和缺陷开始的地方.使用工具可以帮助你在发布之后,解决掉一些问题. 编码标准 遵照编码标准可以编 ...

  2. 每个JavaScript开发人员应该知道的33个概念

    每个JavaScript开发人员应该知道的33个概念 介绍 创建此存储库的目的是帮助开发人员在JavaScript中掌握他们的概念.这不是一项要求,而是未来研究的指南.它基于Stephen Curti ...

  3. 对于JavaScript的函数.NET开发人员应该知道的11件事

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 昨天小感冒今天重感冒,也不能长篇大论.如果你是.NET开发人员,在进入前端开发领域的时候,对 ...

  4. Web开发人员需知的Web缓存知识

    最近的译文距今已有4年之久,原文有一定的更新.今天踩着前辈们的肩膀,再次把这篇文章翻译整理下.一来让自己对web缓存的理解更深刻些,二来让大家注意力稍稍转移下,不要整天HTML5, 面试题啊叨啊叨的~ ...

  5. Web 开发人员需知的 Web 缓存知识

    今天踩着前辈们的肩膀,再次把这篇文章翻译整理下.一来让自己对web缓存的理解更深刻些,二来让大家注意力稍稍转移下,不要整天HTML5, 面试题啊叨啊叨的~~ 什么是Web缓存,为什么要使用它? Web ...

  6. Android开发人员应该知道的Kotlin

    本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2016/01/kotlin-android Android开发人员在语言限制方面面临着 ...

  7. WEB开发人员必知的20+HTML5技巧(转)

    互联网科技发展的速度真可谓惊人的快,一个稍不留神,你就可能无法跟上它的步伐. HTML5的变化和更新也压倒不少人,这篇文章将向大家介绍一些最基本也非常必要的 HTML技巧. 1. 新的文档类型(Doc ...

  8. ASP.NET 开发人员应该知道的8个网站

    1.CodeProject http://www.codeproject.com/ 2.DotNetNuke 3.4GuysFromRolla 4.DevSource 5.DevX http://ww ...

  9. 开发人员应该知道的SEO

    搜索引擎是如何工作的 > 如果你有时间,可以读一下谷歌的框架: http://infolab.stanford.edu/~backrub/google.html > 这是一个老的,有些过时 ...

随机推荐

  1. Visual Studio自动添加头部注释 -C#开发2010-2013验证

    在团队开发中,头部注释是必不可少的.但在开发每次新建一个类都要复制一个注释模块也很不爽,所以得想个办法让开发工具自动生成我们所需要的模板.....操作方法如下: 找你的vs安装目录, 比如我的是在D盘 ...

  2. python模块之os模块详解

    os.listdir(dirname):列出dirname下的目录和文件 os.getcwd():获得当前工作目录 os.curdir:返回当前目录('.') os.chdir(dirname):改变 ...

  3. java 关键字final

    一.最终的意思,可以修饰类,方法,变量.特点: A:它修饰的类,不能被继承. B:它修饰的方法,不能被重写. C:它修饰的变量,是一个常量.二.面试相关: 1.局部变量基本类型 值不能发生改变 例如: ...

  4. 面向对象JavaScript的基本概念

    一.类和对象 1, JavaScript对象分为三类:本地对象,内置对象,宿主对象. 本地对象有15种:Object Function Array String Number Boolean Date ...

  5. dotpeek的导出

    在开始写之前先说明下,搜了很久的度娘,就是没找到dotpeek的导出功能,····,看来用的人不多, ------------------------------------------------- ...

  6. (转)Bat Command

    1.Echo 命令 打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo 命令将显示当前回显设置.语法 echo [{on|off}] [message] Sample篅echo off ...

  7. MongoDB数据库的数据类型和$type操作符

    前面的话 本文将详细介绍MongoDB数据库的数据类型和$type操作符 数据类型 MongoDB支持以下数据类型 类型 数字 备注 Double 1 双精度浮点数 - 此类型用于存储浮点值 Stri ...

  8. How Django works?

    Django是如何工作的? 概念 以线上版本中Django和Nginx.uwsgi搭配,这里首先要了解uWSGI.uwsgi.WSGI分别代表着什么,其中uWSGI实现了uwsgi.WSGI.HTTP ...

  9. ios扫雷

    就这些代码敲了我两个小时...... //  ViewController.m //  扫雷 // //  Created by 晚起的蚂蚁 on 2017/3/22. //  Copyright © ...

  10. [BZOJ 2500]幸福的道路 树形dp+单调队列+二分答案

    考试的时候打了个树链剖分,而且还审错题了,以为是每天找所有点的最长路,原来是每天起点的树上最长路径再搞事情.. 先用dfs处理出来每个节点以他为根的子树的最长链和次长链.(后面会用到) 然后用类似dp ...