linux打开开发模式,开发人员须知,如何更好地使用Linux命令行?

全文共2609字,预计学习时长7分钟

0d469bc57b637ac7b4ea1a25d65576d8.png图源:unsplash

熟悉终端是一种提高效率的好办法。别再用鼠标在GUI中点来点去了,你可以使用效率更高的命令行来完成相同的工作。如果想让命令行用得顺手,那么有些命令是必须了解的。这些命令很基本,且很重要。要为命令行的使用打下坚实的基础,就必须掌握这些命令。

本文适用于想更好地使用Linux命令行的读者。没有丰富的命令行经验也是完全可以读懂本文的,已经习惯使用Linux命令行的读者也不必担心从本文中学不到东西。那么我们开始吧!

1. tail -f

cat命令可以用来查看文件内容。但是在查看时会有更多的选项。cat命令输出整个文件,这有时是没必要的。如果只想输出第一行或最后某行,则可以使用tail或head命令来实现。默认情况下,head命令输出前10行,tail命令输出后10行。

tail命令通常用于查看日志文件,这是因为tail命令有一个-f选项,代表“follow”,可以用来查看文件。此选项将在文件内容增多时输出追加的数据,就可以立即显示附加到文件中的日志项。

2. scp

scp表示安全复制(secure copy),可以在互联网的主机间复制文件。使用scp的一种方法是将文件从个人计算机复制到远程服务器,反之亦然。scp与安全外壳协议(SSH)相互协作。

这个命令非常简单,工作原理与cp命令类似。唯一的区别是,可以用scp将文件复制到其他主机,而普通的cp命令不可能做到这一点。

scp[target][destination]

scp看起来就像熟悉的cp命令。要将文件从服务器复制到个人计算机,必须执行以下操作:

scp derk@127.0.0.1:/target/file.txt ~/destination

本例中,用户为“derk”,主机为127.0.0.1。主机地址后跟冒号。冒号后指定需要复制的文件的路径。第二个参数是destination,在本例中是个人计算机的一个文件夹。该命令的结果是将file.txt从服务器复制到本地计算机的~/destination文件夹。

例如,这很适用于从服务器下载数据库备份。如果想从个人计算机上传文件到远程主机,则需要切换参数。

scp ~/target/file.txt derk@127.0.0.1:/destination

这个命令将file.txt从个人计算机复制到远程主机上的destination文件夹。

3. cd -

cd是Linux命令行中使用最频繁的命令之一。然而,许多开发人员还不知道cd命令附带的一个很好的选项——连字符。

cd -

在cd命令后添加连字符可以返回到先前选择的目录。下面是实际操作的示例

691c098d1717f44c839f14b64c907751.png

4. diff

如果曾经使用过版本控制,那么很可能使用过diff命令。例如,在使用Git时,这个命令可以查看对某个文件所做的更改。

diff命令代表差异(difference),可以逐行比较文件。假设有两个文件都包含大陆的列表,这些文件之间唯一的区别是大陆的排列顺序。

f4e47ed3410c3f6daaf1cb7e9def61bc.png

对这两个文件使用diff命令,将得到以下输出。同时一定要添加-c选项,它可以输出上下文模式中的差异,从而使输出更具有可读性。

6addfac87a006624d45741a114245ac7.png

5. locate

locate命令是在计算机上搜索文件的一个非常强大的工具。与find命令相比,locate命令要快得多。之所以这么快,是因为它不读取文件系统来搜索文件或目录名,而是引用一个数据库来查找用户正在查找的内容,并基于搜索生成相应输出。

locate命令的语法非常简单:

locate [filename]

这个命令的输出将列出包含指定术语的所有文件,在下面的示例中,搜索的术语是“xml”。

a12cf10fcbb4c4ba740c363f5cbc4419.png

还可以使用正则表达式来搜索完全匹配。用-r选项指定正则表达式。

locate -r /filename$

6. lsof

lsof命令可以列出所有打开的文件。它的语法很简单,只需键入lsof即可。这个命令无其它选项,列出所有处于活动进程中的打开文件。

这个命令适用于多种情况,其中一种情况是查看哪些进程正在某个端口上运行。为此,必须指定-i选项。下例中,我们要查看哪些进程正在端口22上运行,即SSH的端口。

lsof-iTCP:22

也可以列出一系列端口。下例列出了端口范围为20-30中运行的所有进程。

lsof-iTCP:20-30

最后,lsof命令的输出可用于终止特定用户的所有进程——在本例中为derk。

kill -9`lsof -t -u derk`

7. history

history命令存储了从当前终端会话运行的所有其他命令的列表。下图是history命令输出的示例:

8fc94433340da826c802d201ba421557.png

可以将history命令与grep结合起来,使搜索更加精准。

history | grep npm

不仅可以使用history命令查看所有已运行的命令。还可以使用history命令再次快速执行其中一个先前执行过的命令。

每当执行history命令时,在每行前面都会显示一个数字。用感叹号后跟行号可以再次执行相同的命令。

!488

回顾之前的例子,上面的命令将再次执行ls -al命令。

8. wget

Wget可以从Web下载文件。下文展示了wget命令的语法,只需要指定要下载的资源即可。在本例中,我们将下载一个随机图像。

wget https://picsum.photos/200

wget采用最简单的形式,没有任何选项,它把URL中指定的资源下载到当前目录中。默认情况下会发现wget命令输出下载相关的大量细节,例如下载速度和进度条。要关闭输出,可以使用-q选项。如果想用不同的名称保存下载的文件,可以使用-0选项,后跟文件的名称。

wget -O my-image.jpg https://picsum.photos/200

希望本文介绍的这些命令,可以让开发人员的生活变得简单一些。

54092f000af7c0bb4e408eac3c65d9f7.png

留言点赞关注

我们一起分享AI学习与发展的干货

如转载,请后台留言,遵守转载规范

举报/反馈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值