每个Web开发者都该了解的12条命令行
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。
原文出处: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
,你可以使用gzip,zcat或者compress来减少文件存档大小。
md5sum
Unix里有几个内置的做hash运算的命令,包括md5sum,sha1sum以及其他。
这些命令行工具在编程中有各种应用,但最重要的是,它们可用于检查文件的完整性。
例如,如果您从不受信任的源下载了.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工具,用于在文本中查找字符串。它以文件或流作为输入,让其内容跟正则表达式做运算,并返回所有匹配的行。
需要过滤大型文件时,此命令很实用。具体来讲就是,我们可以把grep
和date
命令一起使用,用来搜索大的日志文件,并生成只包含今天错误信息的新文件。
// 搜索今天的日期(格式为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条命令行的更多相关文章
- 每一个web开发者都应该了解的HTTP/2
我认为每一个 web 开发者都应该对这个支撑了整个 Web 世界的 HTTP 协议有所了解,这样才能帮助你更好的完成开发任务.在这篇文章中,我将讨论什么是 HTTP,它是怎么产生的,它的地位,以及我们 ...
- HTTPS是如何保证连接安全:每位Web开发者都应知道的
“HTTPS协议的工作原理是什么?”这是我在数天前工作项目中需要解决的问题. 作为一名Web开发者,我当然知道 HTTPS 协议是保障用户敏感数据的好办法,但并不知道这种协议的内在工作机制. 它怎么保 ...
- 每个Web开发者都需要具备的9个软技能
对于一份工作,你可能专注于修炼自己的内功,会在不自觉中忽视软技能.硬技能决定你是否能得到工作,而软技能能够表明你是否适合这份工作和适应工作环境等.所有的公司都有属于自己的文化,并努力将这些文化传承下去 ...
- 每个Web开发者都需要具备的9个软技能--ZT
本文原始链接:http://www.cnblogs.com/oooweb/p/soft-skills-every-web-developer-should-master.html 对于一份工作,你可能 ...
- 大家都说好用的 Python 命令行库:click
作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...
- Python进阶:都说好用的 Python 命令行库click
click 是一个以尽可能少的代码.以组合的方式创建优美的命令行程序的 Python 包.它有很高的可配置性,同时也能开箱即用. 它旨在让编写命令行工具的过程既快速又有趣,还能防止由于无法实现预期的 ...
- 每个Web开发者都应该知道的关于URL编码的知识
本文首先阐述了人们关于统一资源定位符(URL)编码的普遍的误读,其后通过阐明HTTP场景下的URL encoding 来引出我们经常遇到的问题及其解决方案.本文并不特定于某类编程语言,我们在Java环 ...
- 每个Web开发者都应该知道的SOLID原则
面向对象的编程并不能防止难以理解或不可维护的程序.因此,Robert C. Martin 制定了五项指导原则,使开发人员很容易创建出可读性强且可维护的程序.这五项原则被称为 S.O.L.I.D 原则. ...
- 一步一步从原理跟我学邮件收取及发送 12.telnet命令行收一封信pop3
本系列上一篇文章中我们就说到了,这一次我们要说 pop3 收信了.虽然我觉得应该先说完 mime 格式,不过估计大家已经不耐烦了 -- 怎么老在说发送啊?我们要看收取! 好吧,来啦,来啦!收取邮 ...
随机推荐
- xpath-房价爬取
xpath xpath两种使用方式 和bs类似,一种是调用本地资源,一种是网络资源 etree.parse(filePath) etree.HTML('page_text') xpath表达式 层级: ...
- PyCharm 2019.3激活破解教程(永久)
2019.12.02 jetbrains公司发布了Python的最强编辑器PyCharm 2019.3版本.本次大版本主要对Jupyter notebooks .MongoDB.Python3.8功能 ...
- 带着canvas去流浪系列之八 碰撞
[摘要] canvas动画-碰撞仿真 示例代码托管在:http://www.github.com/dashnowords/blogs 经过前面章节相对枯燥的练习,相信你已经能够上手canvas的原生A ...
- 链接脚本(Linker Script)用法解析(二) clear_table & copy_table
可执行文件中的.bss段和.data段分别存放未赋初值的全局变量和已赋初值的全局变量,两者的特点分别为: (1).bss段:①无初值,所以不占ROM空间:②运行时存储于RAM:③默认初值为0 (2). ...
- MySql数据基础之数据表操作
MySql数据库中主要利用多个数据表进行数据的存储,我们可以将数据表理解成一个Excel表格,Excel表格的第一列可以将它看为id列,主要任务是数据表中数据的唯一标识,不能重复.不能为空.如果将数据 ...
- [译]C#8.0中一个使接口更加灵活的新特性-默认接口实现
9月份的时候,微软宣布正式发布C#8.0,作为.NET Core 3.0发行版的一部分.C#8.0的新特性之一就是默认接口实现.在本文中,我们将一起来聊聊默认接口实现. 众所周知,对现有应用程序的接口 ...
- USB3.0 图像视频传输 开发 CYUSB3014开发基础(导入官方例程) 转
CYPREE提供的FX3_SDK开发包里面有很多基础的内容,除了前面提到的几个pdf文件外,还有三个文件夹,是官方提供的基础例程.学习CYUSB3014应该就从这里开始,从这几个例程开始.例程共有三个 ...
- 《JavaScript 模式》知识点小抄本(下)
介绍 最近开始给自己每周订个学习任务,学习结果反馈为一篇文章的输出,做好学习记录. 这一周(02.25-03.03)我定的目标是<JavaScript 模式>的第七章学习一遍,学习结果的反 ...
- 1.使用大clob入库出错问题
在代码中调用pstm.setString(str) str>4000,这种大字符串插入时出现字符过长插入报错问题. 解决问题:用声明变量方式: <insert id ="inse ...
- 大数据学习笔记——HDFS理论知识之编辑日志与镜像文件
HDFS文件系统——编辑日志和镜像文件详细介绍 我们知道,启动Hadoop之后,在主节点下会产生Namenode,即名称节点进程,该节点的目录下会保存一份元数据,用来记录文件的索引,而在从节点上即Da ...