本文转载自公众号“读芯术”(ID:AI_Discovery)
熟悉终端是一种提高效率的好办法。别再用鼠标在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命令后添加连字符可以返回到先前选择的目录。下面是实际操作的示例:
4. diff
如果曾经使用过版本控制,那么很可能使用过diff命令。例如,在使用Git时,这个命令可以查看对某个文件所做的更改。
diff命令代表差异(difference),可以逐行比较文件。假设有两个文件都包含大陆的列表,这些文件之间唯一的区别是大陆的排列顺序。
对这两个文件使用diff命令,将得到以下输出。同时一定要添加-c选项,它可以输出上下文模式中的差异,从而使输出更具有可读性。
5. locate
locate命令是在计算机上搜索文件的一个非常强大的工具。与find命令相比,locate命令要快得多。之所以这么快,是因为它不读取文件系统来搜索文件或目录名,而是引用一个数据库来查找用户正在查找的内容,并基于搜索生成相应输出。
locate命令的语法非常简单:
locate [filename]
这个命令的输出将列出包含指定术语的所有文件,在下面的示例中,搜索的术语是“xml”。
还可以使用正则表达式来搜索完全匹配。用-r选项指定正则表达式。
locate -r /filename$
6. lsof
lsof命令可以列出所有打开的文件。它的语法很简单,只需键入lsof即可。这个命令无其它选项,列出所有处于活动进程中的打开文件。
这个命令适用于多种情况,其中一种情况是查看哪些进程正在某个端口上运行。为此,必须指定-i选项。下例中,我们要查看哪些进程正在端口22上运行,即SSH的端口。
lsof -i TCP:22
也可以列出一系列端口。下例列出了端口范围为20-30中运行的所有进程。
lsof -i TCP:20-30
最后,lsof命令的输出可用于终止特定用户的所有进程——在本例中为derk。
kill -9 `lsof -t -u derk`
7. history
history命令存储了从当前终端会话运行的所有其他命令的列表。下图是history命令输出的示例:
可以将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
希望本文介绍的这些命令,可以让开发人员的生活变得简单一些。
4493 阅读
5830 阅读
6560 阅读
6444 阅读
6793 阅读
6746 阅读
6481 阅读
7605 阅读
8496 阅读
7347 阅读
6829 阅读
7367 阅读
7486 阅读
7023 阅读
7516 阅读
17937 阅读
7475 阅读
9174 阅读
6474 阅读
6986 阅读
5454 阅读
5275 阅读
5668 阅读
4747 阅读
4652 阅读
本文转载自公众号“读芯术”(ID:AI_Discovery)
熟悉终端是一种提高效率的好办法。别再用鼠标在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看起来就像熟悉的cp命令。要将文件从服务器复制到个人计算机,必须执行以下操作:
本例中,用户为“derk”,主机为127.0.0.1。主机地址后跟冒号。冒号后指定需要复制的文件的路径。第二个参数是destination,在本例中是个人计算机的一个文件夹。该命令的结果是将file.txt从服务器复制到本地计算机的~/destination文件夹。
例如,这很适用于从服务器下载数据库备份。如果想从个人计算机上传文件到远程主机,则需要切换参数。
这个命令将file.txt从个人计算机复制到远程主机上的destination文件夹。
3. cd -
cd是Linux命令行中使用最频繁的命令之一。然而,许多开发人员还不知道cd命令附带的一个很好的选项——连字符。
在cd命令后添加连字符可以返回到先前选择的目录。下面是实际操作的示例:
4. diff
如果曾经使用过版本控制,那么很可能使用过diff命令。例如,在使用Git时,这个命令可以查看对某个文件所做的更改。
diff命令代表差异(difference),可以逐行比较文件。假设有两个文件都包含大陆的列表,这些文件之间唯一的区别是大陆的排列顺序。
对这两个文件使用diff命令,将得到以下输出。同时一定要添加-c选项,它可以输出上下文模式中的差异,从而使输出更具有可读性。
5. locate
locate命令是在计算机上搜索文件的一个非常强大的工具。与find命令相比,locate命令要快得多。之所以这么快,是因为它不读取文件系统来搜索文件或目录名,而是引用一个数据库来查找用户正在查找的内容,并基于搜索生成相应输出。
locate命令的语法非常简单:
这个命令的输出将列出包含指定术语的所有文件,在下面的示例中,搜索的术语是“xml”。
还可以使用正则表达式来搜索完全匹配。用-r选项指定正则表达式。
6. lsof
lsof命令可以列出所有打开的文件。它的语法很简单,只需键入lsof即可。这个命令无其它选项,列出所有处于活动进程中的打开文件。
这个命令适用于多种情况,其中一种情况是查看哪些进程正在某个端口上运行。为此,必须指定-i选项。下例中,我们要查看哪些进程正在端口22上运行,即SSH的端口。
也可以列出一系列端口。下例列出了端口范围为20-30中运行的所有进程。
最后,lsof命令的输出可用于终止特定用户的所有进程——在本例中为derk。
7. history
history命令存储了从当前终端会话运行的所有其他命令的列表。下图是history命令输出的示例:
可以将history命令与grep结合起来,使搜索更加精准。
不仅可以使用history命令查看所有已运行的命令。还可以使用history命令再次快速执行其中一个先前执行过的命令。
每当执行history命令时,在每行前面都会显示一个数字。用感叹号后跟行号可以再次执行相同的命令。
回顾之前的例子,上面的命令将再次执行ls -al命令。
8. wget
Wget可以从Web下载文件。下文展示了wget命令的语法,只需要指定要下载的资源即可。在本例中,我们将下载一个随机图像。
wget采用最简单的形式,没有任何选项,它把URL中指定的资源下载到当前目录中。默认情况下会发现wget命令输出下载相关的大量细节,例如下载速度和进度条。要关闭输出,可以使用-q选项。如果想用不同的名称保存下载的文件,可以使用-0选项,后跟文件的名称。
希望本文介绍的这些命令,可以让开发人员的生活变得简单一些。