作为前端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>