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. voa 2015.4.29

    Nepal has declared three days of mourning for the victims of Saturday's 7.8 magnitude earthquake tha ...

  2. 100+个MySQL调试和优化技巧

    MySQL是一个功能强大的开源数据库.随着越来越多的数据库驱动的应用程序,人们一直在推动MySQL发展到它的极限.这里是101条调节和优化MySQL安装的技巧.一些技巧是针对特定的安装环境的,但这些思 ...

  3. poj3320 (尺取法)

    n个数,求最小区间覆盖着n个数中所有的不相同的数字. 解题思路: AC代码: import java.util.HashMap; import java.util.HashSet; import ja ...

  4. Arcgis Engine axMapControl1.get_layer(index)中index意义

    像 ILayer pLayer = this.axMapControl1.get_Layer(0); 意思是获取axMapControl1中的第一个图层,复制给pLayer.

  5. CJOJ 2485 UVa 11991 生日礼物 / UVa 11991 Easy Problem from Rujia Liu?

    CJOJ 2485 UVa 11991 生日礼物 / UVa 11991 Easy Problem from Rujia Liu? Description (原题来自刘汝佳<训练指南>Pa ...

  6. Oracle 10gR2分析函数

    Oracle 10gR2分析函数汇总 (Translated By caizhuoyi 2008‐9‐19) 说明:  1. 原文中底色为黄的部分翻译存在商榷之处,请大家踊跃提意见:  2. 原文中淡 ...

  7. 集合的定义,操作及运算 (Python)

    集合的定义: 集合和列表([  ]) 与  字典 ( {    }) 不同,没有特别的特别的语法格式.可以使用set () 创建. 集合同字典一样是无序的.也是不具有重复性的.因此可以把列表变成集合进 ...

  8. 钉钉 机器人接入 自定义webhook

    钉钉出了个webhook机器人接入,自定义的机器人支持随时post消息到群里: 昨天就尝试着用C#写了个: 一开始用python写,但是莫名的提示  {"errmsg":" ...

  9. 【高斯消元】兼 【期望dp】例题

    [总览] 高斯消元基本思想是将方程式的系数和常数化为矩阵,通过将矩阵通过行变换成为阶梯状(三角形),然后从小往上逐一求解. 如:$3X_1 + 2X_2 + 1X_3 = 3$ $           ...

  10. Ubuntu上安装PHP环境-mysql+apache+php-Linux操作系统

    安装MYSQL   1. sudo apt-get install mysql-server 或者 apt-get isntall mysql-client   2. 安装过程中会提示设置密码,注意设 ...