原文:Bash Command Line Tips to Help You Work Faster,作者:Vinod Mathew Sebastian

学习命令行对任何有抱负的开发者来说都是必不可少的。

而要在命令行上执行命令,你需要一个 shell。

Bash shell 在 Mac 和 Linux 等类 Unix 操作系统中很流行。事实上,在大多数 Linux 发行版中,Bash 是默认的 shell。

你还可以通过 WSL(Windows 下的 Linux 子系统)在 Windows 中使用 Bash。

在学习了一些基本的 Bash 命令之后,现在是时候开始加速了。

这个教程不是为绝对的初学者准备的,但我希望新手和高级用户都可能从中得到一些东西。

下面是 10 个 Bash 命令,它们将帮助你在终端上更快地工作。

1. 使用 Control + L 清空屏幕,使用 Control + D 退出

要清空终端屏幕,在命令行上输入 clear

要退出,请输入 exit

更好的是,按 Ctrl + l(⌘ + l)清除屏幕,按 Ctrl + d(⌘ + d)关闭终端。

2. 使用 nohup 命令生成不随终端会话结束的进程

被加载到内存中的程序叫作进程。

有时,我从命令行中打开 Firefox:firefox https://freecodecamp.org

但我一关闭终端,Firefox 也就崩溃了。

为了防止这种情况,使用 nohup(不挂断)命令:nohup firefox https://freecodecamp.org

现在当我关闭终端时,Firefox 没有崩溃,但我的标签页却崩溃了。

解决方法:通过添加 & 符号使 Firefox 成为后台进程。

nohup firefox https://freecodecamp.org &

现在,即使我退出终端,我的标签也都完好无损。

3. 使用 pkill 只输入部分名称就可以关闭进程

通过使用 killall 命令,我们可以通过一个进程的名字关闭它:

killall firefox

更好的方法是使用 pkill,输入一部分名字就关闭它:

pkill fire*

4. 在前面添加 time 命令以了解某事的执行速度

你想知道在 shell 中执行某事需要多长时间吗?

只需要把 time 加到命令的前面:time gcc -g *.c.

5. 在 Linux 上,使用 cat /etc/*rel* 查看发行版名称

键入 uname -a 显示系统信息。

想仔细检查你正在运行的发行版吗?

只需在 shell 上键入 cat /etc/*rel* 并按回车键。

6. 在文本文件中使用 sed 命令查找和替换

你想替换一个文本文件中出现的多个词吗?

使用 sed 命令:

sed s'/apples/oranges/g' myfile.txt

在这里,所有出现的 “apples” 都被改成了 “oranges”。

如果你只需要替换每一行中出现的第一个词,只需去掉末尾的 “g” 后缀:sed s'/apples/oranges/' myfile.txt

“g” 是指全局。

正斜线 / 是分隔符。事实上,你可以使用任何定界符。

让我们用一个下划线 _ 作为分隔符:sed s'_apples_oranges_'g ` myfile.txt

简单地使用 sed 只在标准输出上进行替换。原始文件是不变的。

要改变文件,使用 -i 标志:sed -i s'_apples_oranges_g' myfile.txt

7. 使用 curl 了解你的计算机的公共 IP 地址

有两种类型的 IP 地址:私有和公共。

系统分配可以使用 ifconfig 命令检查的内部 IP 地址。

但是你想知道你的计算机的公共 IP——ISP 分配给你的接口的 IP 地址吗?

在线时,只需使用 curl ifconfig.me ; echocurl ifconfig.co ; echo

8. 使用 Ctrl + R(⌘ + R)反向搜索

按向上方向键显示你所输入的最后一条命令。

键入 history 显示你所键入的所有命令,这些命令都保存在 bash 历史中。

更好的是,在 shell 上输入 Ctrl + r(⌘ + r),然后开始输入命令。

当你输入时,shell 会从历史记录中自动完成。一旦你找到匹配的命令,就按回车键。

如果你在本教程中只记得一件事,请记住这个组合键:Ctrl + r(⌘ + r)。

它将为你节省大量时间,我保证!。

9. 使用 shell 做数学运算

对于不输入或输出分数的简单计算,你可以简单地使用:

:~$ echo $((19*34))
:~$ 646

对于涉及分数的计算,只需 echo 表达式并将其通过管道传递到 bc 命令。

:~$ echo "scale=2; 9*3/((2*2)+1)" | bc
:~$ 5.40

在这里,“scale” 是我们需要的精度。我已将其指定为两位小数。

10. 使用大括号扩展批量创建文件

我们如何在一个文件夹内创建 100 个文件?

file1.txt, file2.txt, file3.txt ... file100.txt

通过使用大括号扩展:touch file{1..100}.txt

我们需要为我们的项目创建三个文件:app.html、app.css 和 app.js。

我们可以简单地使用大括号扩展来一次性创建所有的文件,而不是一个一个地创建。

:~$ touch app.{html,css,js}
:~$ ls
app.html app.css app.js
:~$ 

或者在项目文件夹中,我们需要创建五个目录:images、css、src、templates 和 scripts。

我们可以使用:

:~$ mkdir {images,css,src,templates,scripts}
:~$ ls
images css src templates scripts
:~$ 

这里只有一个注意事项:需要确保大括号内的单词之间没有空格。

总结

我已经列出了 10 个 Bash 命令行的技巧,通过这些技巧你可以在终端上提高工作效率。

学习这些 Bash 命令,它将在你的编程之旅中起到很好的作用。

祝你编程愉快!