节省时间并提高工作效率的 Linux 终端小技巧

Linux Command Tricks

阅读时长: 7 分钟
共 3145字
作者: eimoon.com

在 Linux 中,掌握命令行对于开发人员、系统管理员和高级用户来说至关重要。通过正确的命令行技巧,您可以显著提高工作效率并简化工作流程。在本文中,我不介绍普通的命令以及用途,而是向您展示一些专业的 Linux 命令技巧,这些技巧将为您节省大量时间,在某些情况下,还能让您免于沮丧。不仅您的朋友或同事会对您赞叹不已,它还将帮助您提高工作效率,因为您需要的击键次数会更少,鼠标点击次数也会更少。

这些技巧并非只针对 Linux 初学者。即使是经验丰富的 Linux 用户也有可能发现一些隐藏的宝藏,尽管他们已经使用 Linux 多年,却从未意识到。其中一些技巧还取决于 shell 的配置方式。让我们开始吧!

1. 使用 tab 键自动完成

我将从一些简单但又至关重要的事情开始:制表符补全。 当您开始在 Linux 终端中输入某些内容时,您可以按 Tab 键,它会建议以您迄今为止输入的字符串开头的所有可能的选项。

例如,如果您尝试复制名为 my_best_file_1.txt 的文件,您只需键入“cp m”并按 Tab 键即可查看可能的选项。

alt text

您也可以使用 Tab 键移动来完成命令。利用此功能可以节省时间、减少拼写错误,并轻松浏览复杂的目录结构。

2. 切换回上一个工作目录

假设你最终进入了一个很长的目录路径,然后你移动到了完全不同路径的另一个目录。然后你意识到你必须返回到你之前所在的目录。

在这种情况下,您可以使用 cd 命令,如下所示:

cd -

这会将您带回到上一个工作目录。您无需再输入长目录路径或复制粘贴。 alt text

3. 返回主目录

当返回我们的主目录时候,您可以使用以下命令从 Linux 命令行中的任何位置移动到您的主目录:

cd ~

但是,您也可以仅使用 cd 返回主目录:

cd

大多数现代 Linux 发行版都已为该命令预先配置了 shell。这至少可以为您节省两次击键。

alt text

4.列出目录的内容

当需要列出目录内容的时候,大多数人使用 ls -l 列出目录的内容. 使用以下命令也可以完成相同的操作:

ll

强调一下,这取决于 Linux 发行版和 shell 配置,但您可能在大多数 Linux 发行版中都可以使用它。 alt text

5. 在一个命令中运行多个命令

假设你需要依次运行多个 Linux 命令。你是否要等待第一个命令运行完毕,然后再执行下一个命令?

您可以使用“;”分隔符来实现此目的。这样,您可以在一行中运行多个命令。无需等待前面的命令完成其任务。

command_1; command_2; command_3

alt text

6. 仅当前一个命令成功时,才在单个命令中运行多个命令

在上一个命令中,您了解了如何在一个命令中运行多个命令以节省时间。但如果您必须确保命令不会失败,该怎么办?

想象一下这样的情况:您想要构建一个代码,然后如果构建成功,则运行 make。

在这种情况下,您可以使用 && 分隔符。&& 确保仅当前一个命令成功时才会运行下一个命令。

command_1 && command_2

此命令的一个很好的例子是当您使用 sudo apt update && sudo apt upgrade 来升级您的系统时。

7. 轻松搜索并使用您过去使用过的命令

想象一下这样的情况:几分钟/几小时前你使用了一个很长的命令,现在必须再次使用它。问题是你再也记不住确切的命令了。

反向搜索是您的救星。您可以使用搜索词在历史记录中搜索命令。

只需使用 ctrl+r 键启动反向搜索并输入命令的某些部分。它将查找历史记录并显示与搜索词匹配的命令。

ctrl+r 你的搜索词

alt text

默认情况下,它只会显示一个结果。要查看更多符合搜索词的结果,您必须反复使用 ctrl+r。要退出反向搜索,只需使用 Ctrl+C。

请注意,在某些 Bash shell 中,您还可以将 Page Up 和 Down 键与搜索词一起使用,它将自动完成命令。

8. 移至行首或行末

假设您正在输入一条长命令,中途您意识到必须在开头更改一些内容。您可以使用几次左箭头键移动到行首。对于移动到行尾,方法也类似。

当然,您可以在这里使用 Home 和 End 键,但是您也可以使用 Ctrl+A 转到行首,使用 Ctrl+E 转到行末。

alt text

它比使用 Home 键和 End 键更方便,尤其是在笔记本电脑上。

9. 从光标位置删除整行

很多人要么不知道它,要么很少使用它。

在 Linux 终端中,如果按 Ctrl+U,它会删除从当前光标位置到行首的所有内容。

alt text

类似地,如果按 Ctrl+K,它会删除从光标位置到行尾的所有内容。

alt text

可能输入密码时出错了?不用一直使用退格键,只需使用 Ctrl+U 并重新输入密码即可。您可以发现这些快捷键还有许多其他用途。

10. 实时读取日志文件

在应用程序运行时需要分析日志的情况下,可以使用带有 -f 选项的 tail 命令。

tail -f path_to_Log

您还可以使用常规 grep 选项仅显示对您有意义的行:

tail -f path_to_log | grep search_term

您也可以在此处使用选项 F。即使日志文件被删除,这也会保持 tail 运行。因此,如果再次创建日志文件,tail 将继续记录。

11. 不解压的情况下读取压缩日志

服务器日志通常使用 gzip 压缩以节省磁盘空间。这给开发人员或系统管理员分析日志带来了问题。您可能必须将其scp到本地,然后提取它才能访问文件,因为有时您没有提取日志的写入权限。

值得庆幸的是,z 命令可以在这种情况下拯救你。z 命令提供了用于处理日志文件的常规命令的替代方案,例如 less、cat、grep 等。

因此,您可以获得 zless、zcat、zgrep 等,并且不必显式提取压缩文件。 alt text

12. 使用 less 读取文件

要查看文件的内容,cat 并不是最好的选择,尤其是当文件很大时。cat 命令会在屏幕上显示整个文件。

您可以使用 Vi、Vim 或其他基于终端的文本编辑器,但如果您只想读取文件,less 命令是更好的选择。

less path_to_file

您可以在 less 中搜索关键词、按页移动、以行号显示等等。

13. 在当前命令中使用 !! 重复使用前一个命令

您可以使用 !! 调用整个前一个命令。当您必须运行命令并意识到它需要 root 权限时,这特别有用。

在这里,快速sudo !!可以节省大量的击键次数。 alt text

14. 使用别名修复拼写错误

你可能已经知道Linux 中的别名命令是什么。你可以用它们来修正拼写错误。

例如,您可能经常将 grep 误输入为 gerp。如果您以如下方式在 bashrc 中输入别名:

alias gerp=grep

这样您就不必再次重新输入命令。提醒一下,除非你的拼写无法纠正,否则尽量还是不要修改别名了。

15. 在 Linux 终端中复制并粘贴

这一点有点模棱两可,因为它取决于 Linux 发行版和终端应用程序。但一般来说,你应该能够使用以下快捷方式在终端中复制粘贴:

选择要复制的文本并右键单击粘贴(适用于 Putty 和其他 Windows SSH 客户端) 选择要复制的文本并单击鼠标中键(鼠标滚动按钮)进行粘贴 Ctrl+Shift+C 复制,Ctrl+Shift+V 粘贴

16. 对需要交互式响应的命令或脚本使用 yes 命令

如果某些命令或脚本需要用户交互,并且您知道每次需要输入时都必须输入 Y,则可以使用 Yes 命令。

只要按照下面的方式使用它:

yes | command_or_script

alt text

17. 清空文件但不删除它

如果只想清空文本文件的内容而不删除文件本身,可以使用类似这样的命令:

> filename

18. 查找是否存在包含特定文本的文件

在 Linux 命令行中有多种搜索和查找的方法。但如果您只想查看是否有包含特定文本的文件,则可以使用以下命令:

grep -Pri Search_Term path_to_directory

我强烈建议掌握 find 命令。

19.利用后台和前台任务:

&在命令末尾使用 在后台执行长时间运行的命令或任务。这可让您继续在前台工作。

例子:

long_running_command &

该命令在后台运行,释放您的终端以便进行进一步的工作。

要在 Linux 命令行中将后台运行的任务带到前台,可以使用该fg命令。操作方法如下:

1.首先使用命令检查当前正在运行的后台任务列表jobs。

例子:

$ jobs 
[1] 运行命令 1 & 
[2]- 运行命令 2 &

在上面的例子中,该jobs命令列出了两个正在运行的后台任务及其作业编号。

  1. 确定要置于前台的任务。每个作业都有一个关联的作业编号。

  2. 要将特定作业置于前台,请使用 fg 命令,后跟作业编号。

fg %1

通过使用fg %1,第一个作业被带到了前台。

一旦任务进入前台,您就可以像与任何前台进程交互一样与其交互。它将接收输入并在终端会话中显示输出

20. 使用任何命令的帮助

我将用一个更明显但又必不可少的“技巧”来结束本文,即使用命令或命令行工具的帮助。

几乎所有命令和命令行工具都带有帮助页面,其中显示了如何使用命令。通常使用帮助会告诉您工具/命令的主要用法。

只需按照以下方式使用它:

command_tool --help

我知道还有更多 Linux 命令技巧可以节省终端时间。你可以在这里分享一些你使用 Linux 的经验并与社区其他成员分享你的最佳技巧呢?下面的评论部分供你使用。

微信公众号

使用 Hugo 构建
主题 StackJimmy 设计