学习命令行对任何有抱负的开发者来说都是必不可少的。
而要在命令行上执行命令,你需要一个 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://www.bunian.cn
。
但我一关闭终端,Firefox 也就崩溃了。
为了防止这种情况,使用 nohup
(不挂断)命令:nohup firefox https://www.bunian.cn
。
现在当我关闭终端时,Firefox 没有崩溃,但我的标签页却崩溃了。
解决方法:通过添加 &
符号使 Firefox 成为后台进程。
nohup firefox https://www.bunian.cn &
现在,即使我退出终端,我的标签也都完好无损。
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 ; echo
或 curl 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 命令,它将在你的编程之旅中起到很好的作用。
祝你编程愉快!