转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。
原文出处:https://tutorialzine.com/2017/08/12-terminal-commands-every-web-developer-should-know

在开发者的弹药箱里,命令行是最具生产力的工具之一。掌握它们可以给你的工作流程带来非常积极的影响。因为,许多日常任务都可以用一条命令然后按回车来解决。

在本文中,我们为你准备了一系列常用命令,帮你充分利用你的终端。这其中有些命令是系统内置的,另外的一些则是需要另外安装的免费工具,不过这些免费工具是经历了时间的考验,所以你可以分分钟将他们安装完成。

curl

curl是一个发送请求的命令行工具。可使用HTTP(s)、FTP,以及一些你可能从未听过的协议发送请求。它可以下载文件,检查响应头,自由地访问远程数据。

在web开发中,curl常用于测试连接和RESTful APIs。

# 获取一个URL的HTTP HEADER
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 # 向远程API发出GET请求
curl http://numbersapi.com/random/trivia
29 is the number of days it takes Saturn to orbit the Sun.

curl命令可以远比上面的情况复杂。它有一大堆的选项来控制请求头、cookies、权限验证等等。你可以在这本相当棒的免费书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

根据维基百科所说,tmux是一个终端复用器,翻译为人话就是说,它是一个把多给终端连接为一个终端会话的工具。

一个tmux分为3块屏的终端如下:

它让你在终端中的程序间切换,添加分屏,并讲多个终端连接到同一个会话,并使之保持同步。尤其在远程服务器上工作时,tmux特别有用,因为它允许你无需再登录即可创建新的终端标签页。

disk usage - du

du命令能生成有关文件和文件夹磁盘空间占用情况的报告。它非常易于使用,能递归地遍历每个子目录,并返回单个文件的大小。

一个du的常见用例是,你的磁盘空间不足了,而你不知道为啥。使用此命令,可快速看到每个文件夹占用了多少存储量,从而找到最占空间的那个东西。

# 运行此命令将显示当前目录中每个文件夹的空间占用情况。
# 使用 -h 命令选项将使报告更易读。
# -s 可防止递归并显示文件夹的总大小。
# 通配符(*),将在当前目录中的所有文件及文件夹上显示所有信息 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相反的是,df返回的关于可用空间的许多信息。

git

Git是目前最流行的版本控制系统。 它是现代web开发所使用的最典型的工具之一,我们绝不能将它排除在本文的列表之外。

有许多关于git的第三方应用和工具,但大部分人还是倾向于使用命令行原生的git。git的命令行界面真的很强大,甚至足以处理最杂乱的项目历史。

如果你想学习关于git的更多知识,建议你查看我们的30分钟学会git的教程。

tar

tar是处理文件打包的默认Unix工具。它让你快速地把多个文件打成一个包,这样之后存储和移动它们就会很方便。

tar -cf archive.tar file1 file2 file3

使用-x选项也可以解压缩.tar格式的包文件。

tar -xf archive.tar

请注意,大多数其他格式(如.zip和.rar)无法通过tar打开。它们需要其他命令行工具才行,比如unzip

许多现代Unix系统上有tar的扩展版本(比如GNU tar),它也能进行文件压缩:

# 创建 gzip 压缩包.
tar -czf file.tar.gz inputfile1 inputfile2 # 解压 .gz 压缩包.
tar -xzf file.tar.gz

如果你的操作系统里没有那个版本的tar,你可以使用gzipzcat或者compress来减少文件存档大小。  

md5sum

Unix里有几个内置的做hash运算的命令,包括md5sumsha1sum以及其他。

这些命令行工具在编程中有各种应用,但最重要的是,它们可用于检查文件的完整性。

例如,如果您从不受信任的源下载了.iso文件,可能里面就包含有害脚本。 你可以从中生成md5或其他哈希,以此确保该.iso是安全的。

md5sum ubuntu-16.04.3-desktop-amd64.iso 

0d9fe8e1ea408a5895cbbe3431989295  ubuntu-16.04.3-desktop-amd64.iso

然后,你就可以将本地生成的md5和原始作者提供的字符串相比较(比如UbuntuHashes)。

htop

htop是比内置的top任务管理更强大的命令。它提供了一个高级版的接口,具有丰富的选项,用于监视和控制系统进程。

尽管运行在命令行,htop仍支持很好的鼠标控制。这让它更加容易地在菜单间导航、选择进程,以及通过排序和过滤来组织任务。

ln

Unix中的Links就好比是Windnows里的快捷方式,它让你快速访问到某些文件。Links通过ln命令来创建。它可以有两种类型:hard和symbolic。每种类型都有不同的属性,用于不同的事务。(了解更多

这里有许多你可以使用Links的例子。比如,我们在桌面有一个文件夹叫做Scripts,干净地放着ix我们常用的bash脚本。每当想调用这些脚本时,我们需要这么做:

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

显然,每次输入此绝对路径,并不是很方便。相反,我们可以为Script文件夹在/usr/local/bin下创建一个symlink,这就让在所有目录下都可以执行Scripts里的脚本了。

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

有了创建好的symlink,我们现在可以打开任一个命令行窗口,然后直接通过脚本文件名执行它:

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工具,用于在文本中查找字符串。它以文件或流作为输入,让其内容跟正则表达式做运算,并返回所有匹配的行。

需要过滤大型文件时,此命令很实用。具体来讲就是,我们可以把grepdate命令一起使用,用来搜索大的日志文件,并生成只包含今天错误信息的新文件。

// 搜索今天的日期(格式为yyyy-mm-dd)并将结果写入新文件。
grep "$(date +"%Y-%m-%d")" all-errors-ever.log > today-errors.log

另一个很棒的、处理字符串的命令是sed。它比grep更强大(也更复杂),几乎可执行任何与字符串相关的任务,包括添加,删除或替换字符串。  

alias

许多Unix命令,包括本文提到的一些,在向它们添加所有选项后,往往变得很长。为让它们更好记,你可以使用内置的alias命令创建简短的别名:  

# 创建用于启动本地Web服务器的别名。
alias server="python -m SimpleHTTPServer 9000" # 不是键入整个命令只需使用别名。
server Serving HTTP on 0.0.0.0 port 9000 ...

只要保持命令窗口打开,别名就保持有效。要使其长久被记住,你可以将alias命令添加到.bashrc文件中。   

总结

以上就是我这总结出的12个Web开发者应该了解的命令行,可能不是那么完整和全面,那么希望如果大家还了解什么命令或没有在文中提到的,也欢迎大家补充和讨论。  

每个Web开发者都该了解的12条命令行的更多相关文章

  1. 每一个web开发者都应该了解的HTTP/2

    我认为每一个 web 开发者都应该对这个支撑了整个 Web 世界的 HTTP 协议有所了解,这样才能帮助你更好的完成开发任务.在这篇文章中,我将讨论什么是 HTTP,它是怎么产生的,它的地位,以及我们 ...

  2. HTTPS是如何保证连接安全:每位Web开发者都应知道的

    “HTTPS协议的工作原理是什么?”这是我在数天前工作项目中需要解决的问题. 作为一名Web开发者,我当然知道 HTTPS 协议是保障用户敏感数据的好办法,但并不知道这种协议的内在工作机制. 它怎么保 ...

  3. 每个Web开发者都需要具备的9个软技能

    对于一份工作,你可能专注于修炼自己的内功,会在不自觉中忽视软技能.硬技能决定你是否能得到工作,而软技能能够表明你是否适合这份工作和适应工作环境等.所有的公司都有属于自己的文化,并努力将这些文化传承下去 ...

  4. 每个Web开发者都需要具备的9个软技能--ZT

    本文原始链接:http://www.cnblogs.com/oooweb/p/soft-skills-every-web-developer-should-master.html 对于一份工作,你可能 ...

  5. 大家都说好用的 Python 命令行库:click

    作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...

  6. Python进阶:都说好用的 Python 命令行库click

    click 是一个以尽可能少的代码.以组合的方式创建优美的命令行程序的 Python 包.它有很高的可配置性,同时也能开箱即用. 它旨在让编写命令行工具的过程既快速又有趣,还能防止由于无法实现预期的 ...

  7. 每个Web开发者都应该知道的关于URL编码的知识

    本文首先阐述了人们关于统一资源定位符(URL)编码的普遍的误读,其后通过阐明HTTP场景下的URL encoding 来引出我们经常遇到的问题及其解决方案.本文并不特定于某类编程语言,我们在Java环 ...

  8. 每个Web开发者都应该知道的SOLID原则

    面向对象的编程并不能防止难以理解或不可维护的程序.因此,Robert C. Martin 制定了五项指导原则,使开发人员很容易创建出可读性强且可维护的程序.这五项原则被称为 S.O.L.I.D 原则. ...

  9. 一步一步从原理跟我学邮件收取及发送 12.telnet命令行收一封信pop3

    本系列上一篇文章中我们就说到了,这一次我们要说 pop3 收信了.虽然我觉得应该先说完 mime 格式,不过估计大家已经不耐烦了 -- 怎么老在说发送啊?我们要看收取!    好吧,来啦,来啦!收取邮 ...

随机推荐

  1. xpath-房价爬取

    xpath xpath两种使用方式 和bs类似,一种是调用本地资源,一种是网络资源 etree.parse(filePath) etree.HTML('page_text') xpath表达式 层级: ...

  2. PyCharm 2019.3激活破解教程(永久)

    2019.12.02 jetbrains公司发布了Python的最强编辑器PyCharm 2019.3版本.本次大版本主要对Jupyter notebooks .MongoDB.Python3.8功能 ...

  3. 带着canvas去流浪系列之八 碰撞

    [摘要] canvas动画-碰撞仿真 示例代码托管在:http://www.github.com/dashnowords/blogs 经过前面章节相对枯燥的练习,相信你已经能够上手canvas的原生A ...

  4. 链接脚本(Linker Script)用法解析(二) clear_table & copy_table

    可执行文件中的.bss段和.data段分别存放未赋初值的全局变量和已赋初值的全局变量,两者的特点分别为: (1).bss段:①无初值,所以不占ROM空间:②运行时存储于RAM:③默认初值为0 (2). ...

  5. MySql数据基础之数据表操作

    MySql数据库中主要利用多个数据表进行数据的存储,我们可以将数据表理解成一个Excel表格,Excel表格的第一列可以将它看为id列,主要任务是数据表中数据的唯一标识,不能重复.不能为空.如果将数据 ...

  6. [译]C#8.0中一个使接口更加灵活的新特性-默认接口实现

    9月份的时候,微软宣布正式发布C#8.0,作为.NET Core 3.0发行版的一部分.C#8.0的新特性之一就是默认接口实现.在本文中,我们将一起来聊聊默认接口实现. 众所周知,对现有应用程序的接口 ...

  7. USB3.0 图像视频传输 开发 CYUSB3014开发基础(导入官方例程) 转

    CYPREE提供的FX3_SDK开发包里面有很多基础的内容,除了前面提到的几个pdf文件外,还有三个文件夹,是官方提供的基础例程.学习CYUSB3014应该就从这里开始,从这几个例程开始.例程共有三个 ...

  8. 《JavaScript 模式》知识点小抄本(下)

    介绍 最近开始给自己每周订个学习任务,学习结果反馈为一篇文章的输出,做好学习记录. 这一周(02.25-03.03)我定的目标是<JavaScript 模式>的第七章学习一遍,学习结果的反 ...

  9. 1.使用大clob入库出错问题

    在代码中调用pstm.setString(str) str>4000,这种大字符串插入时出现字符过长插入报错问题. 解决问题:用声明变量方式: <insert id ="inse ...

  10. 大数据学习笔记——HDFS理论知识之编辑日志与镜像文件

    HDFS文件系统——编辑日志和镜像文件详细介绍 我们知道,启动Hadoop之后,在主节点下会产生Namenode,即名称节点进程,该节点的目录下会保存一份元数据,用来记录文件的索引,而在从节点上即Da ...