Linux基础命令:作为开发人员,你还不知道嘛?

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

本文转载自公众号“读芯术”(ID:AI_Discovery)

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

[[355517]]

本文适用于想更好地使用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命令不可能做到这一点。 

  1. scp [target] [destination] 

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

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

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

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

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

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

3. cd -

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

  1. cd - 

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

Linux基础命令:作为开发人员,你还不知道嘛? 

4. diff

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

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

Linux基础命令:作为开发人员,你还不知道嘛? 

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

Linux基础命令:作为开发人员,你还不知道嘛? 

5. locate

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

locate命令的语法非常简单: 

  1. locate [filename] 

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

Linux基础命令:作为开发人员,你还不知道嘛? 

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

  1. locate -r /filename$ 

6. lsof

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

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

  1. lsof -i TCP:22 

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

  1. lsof -i TCP:20-30 

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

  1. kill -9 `lsof -t -u derk` 

7. history

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

Linux基础命令:作为开发人员,你还不知道嘛? 

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

  1. history | grep npm 

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

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

  1. !488 

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

8. wget

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

  1. wget https://picsum.photos/200 

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

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

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

 

 

责任编辑:华轩 来源: 读芯术
相关推荐

2011-09-05 14:21:29

webOS

2017-10-11 13:20:56

Linux命令工程师

2023-02-27 15:44:17

Java开发技巧

2016-07-22 17:55:07

云计算

2019-11-28 15:36:43

Redis数据库高延迟

2017-04-12 09:24:45

开发编程Java

2017-12-15 13:44:22

2020-01-27 16:28:57

开发命令远程服务器

2022-05-05 12:02:45

SCSS函数开发

2020-04-20 09:57:00

开发工具技术

2023-04-07 16:11:56

前端开发

2023-01-17 16:25:18

前端开发JSON

2024-03-07 07:58:26

Web开发响应媒体查询工具

2019-12-24 09:49:02

微软英语浏览器

2010-02-04 11:29:57

ibmdwLotus

2020-05-25 16:36:19

开发工具编码

2023-03-08 15:13:32

Git工具开发

2009-04-14 22:10:06

LinuxopenSUSE网络

2020-12-14 07:51:16

JS 技巧虚值

2022-07-17 06:53:24

微服务架构
点赞
收藏

51CTO技术栈公众号