作为前端Web开发者,这12条基本命令不可不会

开发 前端
本文列举了一系列 Linux 命令,旨在帮助大家充分利用终端这个工具。其中一些终端命令是内置的,其它的则是免费的工具,并且经过测试这些工具可以在不到一分钟内进行安装。

[[206625]]

对于开发人员来说,终端是最重要的工具之一。掌握终端,能够有效的提升开发人员的工作流程。使用终端,许多日常任务都被简化为了编写简单的命令并按下 Enter 按钮。

本文列举了一系列 Linux 命令,旨在帮助大家充分利用终端这个工具。其中一些终端命令是内置的,其它的则是免费的工具,并且经过测试这些工具可以在不到一分钟内进行安装。

Curl

Curl 是一个命令行工具,用于通过 HTTP(s)、FTP 和数十种其它协议进行请求。使用Curl可以进行文件下载、检查响应标题和自由访问远程数据。

在 Web 开发中,Curl 经常和 RESTful API 一起使用,用于测试连接。

  1. Fetch the headers of a URL. 
  2. curl -I http://google.com 
  3. HTTP/1.1 302 Found 
  4. Cache-Control: private 
  5. Content-Type: text/html; charset=UTF-8 
  6. Referrer-Policy: no-referrer 
  7. Location: http://www.google.com/?gfe_rd=cr&ei=0fCKWe6HCZTd8AfCoIWYBQ 
  8. Content-Length: 258 
  9. Date: Wed, 09 Aug 2017 11:24:01 GMT 
  10.  
  11. # Make a GET request to a remote API. 
  12. curl http://numbersapi.com/random/trivia 
  13. 29 is the number of days it takes Saturn to orbit the Sun.  

Curl 命令可能比上述代码更复杂。有许多选项用于控制 headers、Cookie、身份验证等。了解更多,请阅读Everything curl。

Tree

Tree 是一个小型的命令行实用程序,它将目录中的文件以可视化的方式进行显示。它采用递归运行的方式,遍历每个级别的嵌套并绘制所有内容的格式树。这样就能快速的浏览并查找需要的文件。

  1. tree 
  2. ├── css 
  3. │   ├── bootstrap.css 
  4. │   ├── bootstrap.min.css 
  5. ├── fonts 
  6. │   ├── glyphicons-halflings-regular.eot 
  7. │   ├── glyphicons-halflings-regular.svg 
  8. │   ├── glyphicons-halflings-regular.ttf 
  9. │   ├── glyphicons-halflings-regular.woff 
  10. │   └── glyphicons-halflings-regular.woff2 
  11. └── js 
  12.     ├── bootstrap.js 
  13.     └── bootstrap.min.js  

还可以使用简单的 regEx 模式来过滤结果:

  1. tree -P '*.min.*' 
  2. ├── css 
  3. │   ├── bootstrap.min.css 
  4. ├── fonts 
  5. └── js 
  6.     └── bootstrap.min.js  

Tmux

根据维基的解释,Tmux 是一个终端复用器。通俗的说,它是一个能将多个终端连接到单个终端会话的工具。

 

Tmux 允许用户在终端中的程序之间切换,添加屏幕窗格,并将多个终端连接到同一个会话,使其保持同步。在远程服务器上工作时,Tmux 特别有用,因为它允许用户创建新的选项卡,而无需再次登录。

du

du 命令用于生成关于文件和目录的空间使用情况的报告。du很容易使用,可以递归地运行,遍历每个子目录并返回每个文件的大小。

du 的常见用例是:当某个驱动器的空间不足,用户不清楚每个存储器的大小。使用此命令可以快速查看每个文件夹所占用的存储空间,从而找到占用***空间的存储器。

  1. # Running this will show the space usage of each folder in the current directory. 
  2. # The -h option makes the report easier to read
  3. # -s prevents recursiveness and shows the total size of a folder. 
  4. # The star wildcard (*) will run du on each file/folder in current directory. 
  5.   
  6. du -sh * 
  7.   
  8. 1.2G    Desktop 
  9. 4.0K    Documents 
  10. 40G     Downloads 
  11. 4.0K    Music 
  12. 4.9M    Pictures 
  13. 844K    Public 
  14. 4.0K    Templates 
  15. 6.9M    Videos  

还有一个相似的命令 df(Disk Free),使用df会返回有关可用磁盘空间的各种信息。

Git

Git 是迄今为止***的版本控制系统,也是现代 web 开发的定义工具之一。

Git 有很多第三方应用和工具可以使用,但是大多数人都喜欢通过本地终端访问 git。git CLI 非常强大,可以处理最混乱的项目版本问题。

想了解更多关于 git 的信息,推荐学习“ Learn Git in 30 Minutes”。

Tar

Tar 是用于文件存档的默认 Unix 工具。Tar 允许用户将多个文件快速绑定到一个包中,从而使之更容易存储和移动。

  1. tar -cf archive.tar file1 file2 file3 

使用-x选项也可以提取现有的 .tar 档案。

  1. tar -xf archive.tar 

请注意,其它大多数格式如 .zip 和 .rar 无法使用 tar 命令打开,要打开 .zip 和 .rar 这样的文件还需要 unzip 这样的命令。

许多现代 Unix 系统都在运行扩展版本的 tar(GNU tar),可以帮助压缩执行文件的大小:

  1. Create compressed gzip archive. 
  2. tar -czf file.tar.gz inputfile1 inputfile2 
  3.   
  4. # Extract .gz archive. 
  5. tar -xzf file.tar.gz  

如果你的操作系统没有该版本的 tar,则可以使用 gzip,zcat 或 compress 来压缩归档文件的大小。

md5sum

Unix 有几个内置的哈希命令,包括 md5sum,sha1sum 等。这些命令行工具在编程中有很多种应用,但是最重要的功能是它们可以用于检查文件的完整性。

例如,如果从不受信任的源下载了 .iso 文件,那么该文件就有可能包含有害的脚本。为了确保 .iso 是安全的,用户可以从中生成 md5 或其它哈希。

  1. md5sum ubuntu-16.04.3-desktop-amd64.iso 
  2.  
  3. 0d9fe8e1ea408a5895cbbe3431989295 ubuntu-16.04.3-desktop-amd64.iso  

然后,可以将生成的字符串与原作者提供的字符串(例如UbuntuHashes)进行比较。

Htop

Htop 是创建任务管理器中 top 任务的一个很强大的可选方案。它提供了一个高级界面,具有用于监视和控制系统进程的许多选项。

 

虽然 Htop 在终端中运行,但是 Htop 对鼠标控件有非常好的支持。这也使得能够更容易地完成导航菜单,选择进程,并组织排序和过滤的任务。

Ln

Unix 中的 Links 类似于 Windows 中的快捷方式,允许用户快速访问某些文件。Links是通过ln命令创建的,有两种类型:hard 或 symbolic。每种都有不同的属性,分别用于不同的对象。

以下是使用链接的示例。假设桌面上有一个名为 Scripts 的目录。它包含了我们通常使用的 bash 脚本。每当我们想要调用脚本之一时,都必须这样做:

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

这样显然很不方便,因为每次都要写绝对路径。相反,我们可以创建一个从脚本文件夹到 /usr/local/bin 的符号链接,这样会使脚本更容易执行。

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

通过创建符号链接,就可以在任何打开的终端中,通过简单地写入名称来调用脚本。

  1. git-cleanup 

SSH

使用 ssh 命令,用户可以快速连接到远程主机并登录到其 Unix shell。这也让用户可以直接从本地机器的终端操作远程的服务器,更方便地发出命令。

要建立连接,只需要指定正确的 IP 地址或 URL。***次连接到新服务器时,会有一些形式的身份验证。

  1. ssh username@remote_host 

如果要在服务器上快速执行命令而不进行登录,可以在URL之后添加一个命令。该命令将在服务器上运行,并返回该结果。

  1. ssh username@remote_host ls /var/www 
  2.  
  3. some-website.com 
  4.  
  5. some-other-website.com  

可以使用 SSH 做很多事情,例如创建代理和隧道、使用私钥保护连接、传输文件等等。了解更多有关ssh。

Grep

Grep 是一个用于在文本中查找字符串的标准 Unix 实用程序。Grep 以文件或直接流的形式进行输入,通过正则表达式运行其内容,并返回所有匹配的行。

在对大文件进行过滤时,使用 Grep 会非常方便。下面我们使用 Grep 和 data 命令搜索来对一个大型日志文件进行搜索,并生成一个仅包含当天错误信息的新文件。

  1. // Search for today's date (in format yyyy-mm-dd) and write the results to a new file.  
  2. grep "$(date +"%Y-%m-%d")" all-errors-ever.log > today-errors.log  

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

Alias

许多 Unix 命令,包括本文中的一些功能,在添加所有的选项后,会是一个很长串的命令。为了使这些很长串的命令更容易记忆,用户可以使用alias 命令来创建简短的别名:

  1. Create an alias for starting a local web server. 
  2. alias server="python -m SimpleHTTPServer 9000" 
  3.   
  4. Instead of typing the whole command simply use the alias. 
  5. server  
  6.   
  7. Serving HTTP on 0.0.0.0 port 9000 ...  

只要保持终端处于开启状态,该别名将一直可用。为了使别名***可用,也可以将 alias 命令添加到 .bashrc 文件中。

前端开发工具推荐

SpreadJS 纯前端表格控件是基于 HTML5 的 Java 电子表格和网格功能控件,提供了完备的公式引擎、排序、过滤、输入控件、数据可视化、Excel 导入/导出等功能,适用于 .NET、Java 和移动端等各平台在线编辑类 Excel 功能的表格程序开发。

总结

对于 Web 开发人员来说,如果上述的12个终端命令中,还有你不熟悉的命令,那么就应该通过本文快速的熟悉起来,并逐渐的运用到自己的开发工作中。 

责任编辑:庞桂玉 来源: 葡萄城控件技术团队 的博客
相关推荐

2015-05-11 10:28:11

Web开发者编码原则

2015-05-25 19:13:13

KPI开发者

2010-05-21 09:21:48

PHPPHP开发者

2023-06-12 00:38:55

开源Java库工具

2023-06-08 13:10:04

2023-12-13 18:06:39

微服务设计模式

2023-10-17 18:03:30

Code更改函数

2023-09-08 10:23:13

JavaScriptNPM模块

2017-09-22 11:00:28

OracleRAC命令

2020-11-30 13:12:04

Linux文本命令

2023-12-16 22:21:42

Linux网络命令

2015-07-30 17:30:43

Linux命令

2020-04-20 17:16:58

Python数据处理

2020-06-23 17:30:44

前端Sublime

2014-10-31 10:10:49

2011-10-08 14:42:16

2021-04-08 10:40:24

前端工具代码

2021-01-28 10:17:54

人工智能AI机器学习

2018-11-16 11:03:34

Java乐观锁无锁

2010-06-11 14:46:38

可路由协议
点赞
收藏

51CTO技术栈公众号