作为前端Web开发者,这12个终端命令不可不会
msn217
7年前
<p><img src="https://simg.open-open.com/show/53ef74fd427730d8f15f2bf4f1d1273f.png"></p> <p>对于开发人员来说,终端是最重要的工具之一。掌握终端,能够有效的提升开发人员的工作流程。使用终端,许多日常任务都被简化为了编写简单的命令并按下 Enter 按钮。</p> <p>本文列举了一系列 Linux 命令,旨在帮助大家充分利用终端这个工具。其中一些终端命令是内置的,其它的则是免费的工具,并且经过测试这些工具可以在不到一分钟内进行安装。</p> <h2><a href="/misc/goto?guid=4959755020061689909" rel="nofollow,noindex">Curl</a></h2> <p>Curl 是一个命令行工具,用于通过 HTTP(s)、FTP 和数十种其它协议进行请求。使用Curl可以进行文件下载、检查响应标题和自由访问远程数据。</p> <p>在 Web 开发中,Curl 经常和 RESTful API 一起使用,用于测试连接。</p> <pre> # 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. </pre> <p>Curl 命令可能比上述代码更复杂。有许多选项用于控制 headers、Cookie、身份验证等。了解更多,请阅读 <a href="/misc/goto?guid=4959755020156892670" rel="nofollow,noindex">Everything curl</a> 。</p> <h2><a href="/misc/goto?guid=4959755020242097311" rel="nofollow,noindex">Tree</a></h2> <p>Tree 是一个小型的命令行实用程序,它将目录中的文件以可视化的方式进行显示。它采用递归运行的方式,遍历每个级别的嵌套并绘制所有内容的格式树。这样就能快速的浏览并查找需要的文件。</p> <pre> 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 </pre> <p>还可以使用简单的 regEx 模式来过滤结果:</p> <pre> tree -P '*.min.*' . ├── css │ ├── bootstrap.min.css ├── fonts └── js └── bootstrap.min.js </pre> <h2><a href="/misc/goto?guid=4958971311987039078" rel="nofollow,noindex">Tmux</a></h2> <p>根据维基的解释,Tmux 是一个终端复用器。通俗的说,它是一个能将多个终端连接到单个终端会话的工具。</p> <p><img src="https://simg.open-open.com/show/835a66d419c43c3006a788347a5deea2.jpg"></p> <p>Tmux 允许用户在终端中的程序之间切换,添加屏幕窗格,并将多个终端连接到同一个会话,使其保持同步。在远程服务器上工作时,Tmux 特别有用,因为它允许用户创建新的选项卡,而无需再次登录。</p> <h2><a href="/misc/goto?guid=4959755020348480989" rel="nofollow,noindex">du</a></h2> <p>du 命令用于生成关于文件和目录的空间使用情况的报告。du很容易使用,可以递归地运行,遍历每个子目录并返回每个文件的大小。</p> <p>du 的常见用例是:当某个驱动器的空间不足,用户不清楚每个存储器的大小。使用此命令可以快速查看每个文件夹所占用的存储空间,从而找到占用最大空间的存储器。</p> <pre> # 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 </pre> <p>还有一个相似的命令 <a href="/misc/goto?guid=4959755020432221340" rel="nofollow,noindex">df</a> (Disk Free),使用df会返回有关可用磁盘空间的各种信息。</p> <h2><a href="/misc/goto?guid=4958964328408675079" rel="nofollow,noindex">Git</a></h2> <p>Git 是迄今为止最流行的版本控制系统,也是现代 web 开发的定义工具之一。</p> <p>Git 有很多第三方应用和工具可以使用,但是大多数人都喜欢通过本地终端访问 git。git CLI 非常强大,可以处理最混乱的项目版本问题。</p> <p>想了解更多关于 git 的信息,推荐学习“ <a href="/misc/goto?guid=4959755020546981509" rel="nofollow,noindex">Learn Git in 30 Minutes</a> ”。</p> <h2><a href="/misc/goto?guid=4959755020632790655" rel="nofollow,noindex">Tar </a></h2> <p>Tar 是用于文件存档的默认 Unix 工具。Tar 允许用户将多个文件快速绑定到一个包中,从而使之更容易存储和移动。</p> <pre> tar -cf archive.tar file1 file2 file3 </pre> <p>使用-x选项也可以提取现有的 .tar 档案。</p> <pre> tar -xf archive.tar </pre> <p>请注意,其它大多数格式如 .zip 和 .rar 无法使用 tar 命令打开,要打开 .zip 和 .rar 这样的文件还需要 <a href="/misc/goto?guid=4959755020713135818" rel="nofollow,noindex">unzip</a> 这样的命令。</p> <p>许多现代 Unix 系统都在运行扩展版本的 tar(GNU tar),可以帮助压缩执行文件的大小:</p> <pre> # Create compressed gzip archive. tar -czf file.tar.gz inputfile1 inputfile2 # Extract .gz archive. tar -xzf file.tar.gz </pre> <p>如果你的操作系统没有该版本的 tar,则可以使用 <a href="/misc/goto?guid=4958869450451950904" rel="nofollow,noindex">gzip</a> , <a href="/misc/goto?guid=4959755020836953940" rel="nofollow,noindex">zcat</a> 或 <a href="/misc/goto?guid=4959755020918674446" rel="nofollow,noindex">compress</a> 来压缩归档文件的大小。</p> <h2><a href="/misc/goto?guid=4959755020999214736" rel="nofollow,noindex">md5sum</a></h2> <p>Unix 有几个内置的哈希命令,包括 <a href="/misc/goto?guid=4959755021088963514" rel="nofollow,noindex">md5sum</a> , <a href="/misc/goto?guid=4959755021171973195" rel="nofollow,noindex">sha1sum</a> 等。这些命令行工具在编程中有很多种应用,但是最重要的功能是它们可以用于检查文件的完整性。</p> <p>例如,如果从不受信任的源下载了 .iso 文件,那么该文件就有可能包含有害的脚本。为了确保 .iso 是安全的,用户可以从中生成 md5 或其它哈希。</p> <pre> md5sum ubuntu-16.04.3-desktop-amd64.iso 0d9fe8e1ea408a5895cbbe3431989295 ubuntu-16.04.3-desktop-amd64.iso </pre> <p>然后,可以将生成的字符串与原作者提供的字符串(例如UbuntuHashes)进行比较。</p> <h2><a href="/misc/goto?guid=4958974983448731085" rel="nofollow,noindex">Htop</a></h2> <p>Htop 是创建任务管理器中 top 任务的一个很强大的可选方案。它提供了一个高级界面,具有用于监视和控制系统进程的许多选项。</p> <p><img src="https://simg.open-open.com/show/87f26e5139a40def7e3fbc7e90c6a55a.jpg"></p> <p>虽然 Htop 在终端中运行,但是 Htop 对鼠标控件有非常好的支持。这也使得能够更容易地完成导航菜单,选择进程,并组织排序和过滤的任务。</p> <h2><a href="/misc/goto?guid=4959755021277450647" rel="nofollow,noindex">Ln</a></h2> <p>Unix 中的 Links 类似于 Windows 中的快捷方式,允许用户快速访问某些文件。Links是通过ln命令创建的,有两种类型:hard 或 symbolic。每种都有不同的属性,分别用于不同的对象。</p> <p>以下是使用链接的示例。假设桌面上有一个名为 Scripts 的目录。它包含了我们通常使用的 bash 脚本。每当我们想要调用脚本之一时,都必须这样做:</p> <pre> ~/Desktop/Scripts/git-scripts/git-cleanup </pre> <p>这样显然很不方便,因为每次都要写绝对路径。相反,我们可以创建一个从脚本文件夹到 /usr/local/bin 的符号链接,这样会使脚本更容易执行。</p> <pre> sudo ln -s ~/Desktop/Scripts/git-scripts/git-cleanup /usr/local/bin/ </pre> <p>通过创建符号链接,就可以在任何打开的终端中,通过简单地写入名称来调用脚本。</p> <pre> git-cleanup </pre> <h2><a href="/misc/goto?guid=4959755021359064250" rel="nofollow,noindex">SSH</a></h2> <p>使用 ssh 命令,用户可以快速连接到远程主机并登录到其 Unix shell。这也让用户可以直接从本地机器的终端操作远程的服务器,更方便地发出命令。</p> <p>要建立连接,只需要指定正确的 IP 地址或 URL。第一次连接到新服务器时,会有一些形式的身份验证。</p> <pre> ssh username@remote_host </pre> <p>如果要在服务器上快速执行命令而不进行登录,可以在URL之后添加一个命令。该命令将在服务器上运行,并返回该结果。</p> <pre> ssh username@remote_host ls /var/www some-website.com some-other-website.com </pre> <p>可以使用 SSH 做很多事情,例如创建代理和隧道、使用私钥保护连接、传输文件等等。 <a href="/misc/goto?guid=4959755021445800656" rel="nofollow,noindex">了解更多</a> 有关ssh。</p> <h2><a href="/misc/goto?guid=4959755021529981338" rel="nofollow,noindex">Grep</a></h2> <p>Grep 是一个用于在文本中查找字符串的标准 Unix 实用程序。Grep 以文件或直接流的形式进行输入,通过正则表达式运行其内容,并返回所有匹配的行。</p> <p>在对大文件进行过滤时,使用 Grep 会非常方便。下面我们使用 Grep 和 data 命令搜索来对一个大型日志文件进行搜索,并生成一个仅包含当天错误信息的新文件。</p> <pre> // 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 </pre> <p>处理字符串的另一个很强大的命令是 <a href="/misc/goto?guid=4959755021614954901" rel="nofollow,noindex">sed</a> ,它比 grep 更强大也更复杂,它可以执行几乎任何与字符串相关的任务,包括添加、删除或替换字符串。</p> <h2><a href="/misc/goto?guid=4959755021698968565" rel="nofollow,noindex">Alias</a></h2> <p>许多 Unix 命令,包括本文中的一些功能,在添加所有的选项后,会是一个很长串的命令。为了使这些很长串的命令更容易记忆,用户可以使用alias 命令来创建简短的别名:</p> <pre> # 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 ... </pre> <p>只要保持终端处于开启状态,该别名将一直可用。为了使别名永久可用,也可以将 alias 命令添加到 .bashrc 文件中。</p> <h2>总结</h2> <p>对于 Web 开发人员来说,如果上述的12个终端命令中,还有你不熟悉的命令,那么就应该通过本文快速的熟悉起来,并逐渐的运用到自己的开发工作中。</p> <p> </p> <p>来自:https://tutorialzine.com/2017/08/12-terminal-commands-every-web-developer-should-know</p> <p> </p> <p> </p> <p></p>