首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >开发人员都应该知道的 12 个终端命令

开发人员都应该知道的 12 个终端命令

作者头像
开发者技术前线
发布2020-11-23 10:26:31
发布2020-11-23 10:26:31
79000
举报
运行总次数:0

终端CMD 是开发人员工具中最重要的提高生产力工具之一。掌握它可以对你的工作流程产生非常有用的帮助。

之前推荐了一篇 开发者应该了解的 10 个 Linux 命令,在本文中,我将为你准备有逼格的一组Unix命令,这些命令将帮助你充分利用终端。其中一些是内置的,其他的是经过时间考验并且可以在一分钟内安装的免费工具。

Curl

Curl是一个命令行工具,用于通过HTTP(s),FTP和许多您可能没有听说过的其他协议发出请求。它可以下载文件,检查响应标题,并可以自由访问远程数据。

在Web开发中,curl通常用于测试连接和使用RESTful API。

代码语言:javascript
代码运行次数:0
运行
复制
# 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.

Curl 命令可能比这更复杂。有很多选项可用于控制标题,Cookie,身份验证等

Tree

树是一个小命令行实用程序,向你显示目录中文件的可视化表示。它同过递归地工作,遍历每个嵌套级别并绘制所有内容的合成树。通过这种方式,你可以快速浏览并查找要查找的文件。

代码语言:javascript
代码运行次数:0
运行
复制
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

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

代码语言:javascript
代码运行次数:0
运行
复制
tree -P '*.min.*'.
├── css
│   ├── bootstrap.min.css
├── fonts
└── js
   └── bootstrap.min.js

Tmux

根据Wiki,Tmux是一种终端复用器,翻译成人类语言意味着它是将多个终端连接到单个终端会话的工具。

带3个分屏的Tmux终端

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

Disk usage - du

du命令生成关于文件和目录空间使用情况的报告。它非常易于使用,并且可以递归地工作,遍历每个子目录并返回每个文件的个体大小。

du的一个常见案例是当你的某个驱动器空间不足时。使用此命令可以快速查看每个文件夹的存储量,从而找到最大的内存囤积器。

代码语言:javascript
代码运行次数:0
运行
复制
# 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    
Desktop4.0K   
 Documents40G     
Downloads4.0K   
 Music4.9M  
  Pictures844K   
 Public4.0K   
 Templates6.9M   
 Videos

还有一个类似的命令叫做df(Disk Free),它返回有关可用磁盘空间的各种信息(与du相反)。

Git

Git是目前最流行的版本控制系统。它是现代Web开发的定义工具之一,我们不能将它从我们的列表中排除。

有很多第三方应用程序和工具可用,但大多数人更喜欢通过终端本地访问git。git CLI非常强大,可以处理最混乱的项目历史。

如果你想了解更多关于git的知识,建议查看教程在30分钟内学习Git

Tar

Tar是使用文件归档的默认Unix工具。它允许您快速将多个文件捆绑到一个软件包中,以便日后更轻松地存储和移动它们。

代码语言:javascript
代码运行次数:0
运行
复制
tar -cf archive.tar file1 file2 file3

使用-x选项,它也可以提取现有的.tar文件。

代码语言:javascript
代码运行次数:0
运行
复制
tar -xf archive.tar

请注意,大多数其他格式(如.zip和.rar)不能通过打开tar并需要其他命令实用程序(如解压缩)。

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

代码语言:javascript
代码运行次数:0
运行
复制
# Create compressed gzip archive.tar -czf file.
tar.gz inputfile1 inputfile2

# Extract .gz archive.
tar -xzf file.
tar.gz

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

md5sum

Unix有几个内置的散列命令,包括md5sum,sha1sum和其他。这些命令行工具在编程中有各种应用程序,但最重要的是它们可用于检查文件的完整性。

例如,如果你从不受信任的来源下载了.iso文件,则该文件可能包含有害的脚本。为了确保.iso是安全的,你可以从中生成md5或其他散列。

代码语言:javascript
代码运行次数:0
运行
复制
md5sum ubuntu-16.04.3-desktop-amd64.iso 
0d9fe8e1ea408a5895cbbe3431989295  
ubuntu-16.04.3-desktop-amd64.iso

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

Htop

Htop是内置top任务管理器的一个更强大的替代品。它提供了一个高级界面,提供了许多监视和控制系统过程的选项。

htop任务管理器正在运行。

虽然它在终端中运行,但htop对鼠标控制有很好的支持。这使得浏览菜单,选择过程以及组织考虑排序和过滤的任务变得更容易。

Ln

Unix中的链接类似于Windows中的快捷方式,使您可以快速访问某些文件。链接通过ln命令创建,可以是两种类型:硬或符号。每种都有不同的属性,用于不同的事情。

以下是您可以使用链接的众多方法之一的示例。假设我们的桌面上有一个名为Scripts的目录。它包含我们通常使用的整齐组织的bash脚本。每次我们想要调用我们的脚本时,我们都必须这样做:

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

显然,这是不是很方便,因为我们必须每次写绝对路径。相反,我们可以从我们的Scripts文件夹创建一个符号链接到/ usr / local / bin,这将使脚本可以从所有目录执行。

代码语言:javascript
代码运行次数:0
运行
复制
sudo ln -s ~/Desktop/Scripts/git-scripts/git-cleanup /usr/local/bin/

通过创建符号链接,我们现在只需在任何打开的终端中写入其名称即可调用我们的脚本。

代码语言:javascript
代码运行次数:0
运行
复制
git-cleanup

SSH

通过该ssh命令,用户可以快速连接到远程主机并登录到它的Unix shell。这使得可以直接从本地机器的终端在服务器上发出命令。

要建立连接,只需指定正确的IP地址或URL即可。当年第一次连接到新服务器时,会有某种形式的身份验证。

代码语言:javascript
代码运行次数:0
运行
复制
ssh username@remote_host

如果你想在不登录的情况下快速执行服务器上的命令,只需在url后添加一条命令即可。该命令将在服务器上运行,并返回结果。

代码语言:javascript
代码运行次数:0
运行
复制
ssh username@remote_host ls /var/wwwsome-website.com
some-other-website.com

SSH可以做很多事情,比如创建代理和隧道,保护与私钥的连接。

Grep

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

当处理需要过滤的大文件时,该命令会派上用场。下面我们grep结合使用该date命令来搜索大型日志文件,并生成仅包含今日错误的新文件。

代码语言:javascript
代码运行次数:0
运行
复制
// 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

使用字符串的另一个重要命令是sed。它比grep更强大(也更复杂),并且可以执行几乎任何与字符串相关的任务,包括添加,删除或替换字符串。

Alias

许多Unix命令(包括本文中的一些命令)在将所有选项添加到它们之后往往会变得很长。为了便于记忆,可以使用别名 bash内置命令创建简短的别名:

代码语言:javascript
代码运行次数:0
运行
复制
# 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.serverServing HTTP on 0.0.0.0 port 9000 ...

只要你确保该终端打开,别名就可以使用。要使其成为永久的,你可以将alias命令添加到.bashrc文件中。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-05-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开发者技术前线 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Tree
  • Tmux
  • Disk usage - du
  • Git
  • Tar
  • md5sum
  • Htop
  • Ln
  • SSH
  • Grep
  • Alias
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档