我作为开发人员在日常工作中使用的 Linux 命令和技巧 端口转发 在 VIM 中编辑文件(无需 sudo),但使用 sudo 保存 在终端 ll 中转到行首/行尾 执行您过去执行的命令 同意所有内容 在后台运行一个持久进程并关闭终端 检查谁偷了您最喜欢的端口 读取日志 排序过程 每 X 秒执行一次命令 安静模式 为 crontab 执行的脚本创建日志文件

2025-05-28

我作为开发人员在日常工作中使用的 Linux 命令和技巧

端口转发

在 VIM 中编辑文件时不使用sudo,但使用sudo

转到终端中的行首/行末

执行你过去执行过的命令

同意一切

在后台运行一个持久进程并关闭终端

检查谁偷走了你最喜欢的端口

阅读日志

排序过程

每 X 秒执行一次命令

安静模式

为 crontab 执行的脚本创建日志文件

这篇文章并非该命令系列文章中的一篇cd,只是我几乎每天都在使用的一些命令和技巧的列表。

端口转发

有时我需要连接数据库,当然我更喜欢使用我的 GUI 管理器(JetBrains DataGrip)。
所以,如果你的公司有安全策略,并且你的数据库端口没有暴露,你可以执行

ssh -L{port on your PC}:localhost:{database's port} root@{server IP}

以下命令将打开3308笔记本电脑上的端口,所有内容将转发到192.168.1.2:3306

ssh -L3308:localhost:3306 root@192.168.1.2

localhost表示数据库正在监听192.168.1.2。例如,您可以输入以下内容192.168.3.77,所有内容将通过 转发到.3.77服务器.1.2

在 VIM 中编辑文件时不使用sudo,但使用sudo

你有没有遇到过编辑配置文件后又忘记修改的情况sudo?我也是……不过有个小技巧可以保存,在 VIM 中输入:

:w !sudo tee %

解释

转到终端中的行首/行末

如果您在终端中输入了一条很长的命令,可能需要很长时间才能返回到行首添加缺失的sudo。然后再返回到行尾添加一些参数。
按 即可在终端中crtl + a移动到行首和crtl + e行尾。

一年中ll只需输入 即可节省几天时间ls -la。适用于大多数 Linux 服务器。

执行你过去执行过的命令

最后一个命令

要重新执行上一个命令,当然可以按 ↑ 键(向上箭头)。但你也可以输入!!。因此,以 root 身份执行上一个命令非常容易。

sudo !!

apt要运行以下列类型开头的最后一个命令!apt

搜索历史

/tmp要查找包含您过去执行过的命令,请按ctrl + r并输入/tmpctrl + r再次按 可显示下一个结果。
要显示所有命令或使用正则表达式搜索,请使用

history | grep "/tmp"

同意一切

要对每个问题回答“是”,您可以使用名为yes

yes | yum install curl

yes no来说“不”并丢弃。


警告

正如@patricnox在评论中提到的那样,使用yes可能会造成意想不到的后果。你可能会意外地安装10GB的依赖项或其他你不想做的事情。


在后台运行一个持久进程并关闭终端

如果你运行一个将在 3 天内结束的脚本,则无需等待终端窗口打开才能结束。你可以使用nohup命令

nohup wget http://large-files.com/10gb-super-movie.avi &

wget在后台工作,输出保存到nohup.out工作目录中的文件中。

检查谁偷走了你最喜欢的端口

当你试图运行 nginx 却因为 Apache 进程正在运行且 443 端口繁忙而无法运行的时候,这真的很烦人。
那么,如何确定哪个进程正在监听 80 端口呢?

$ netstat -tulpn | grep 80
tcp6       0      0 :::80                 :::*                   LISTEN     10177/java

10177是您要查找的 pid。现在执行

ps aux | grep 10177

了解更多详情。

阅读日志

大家都知道这less是一种读取日志文件的好方法。但你也可以直接读取 gzip 压缩的日志,无需解压!

less /var/log/my-app/my-app.log.2015.12.14.gz

现场朗读

tail -f /var/log/my-app/my-app.log | grep ERROR

上述命令将仅显示包含 的新行ERROR

排序过程

按 CPU 使用率排序显示前 3 个进程

ps aux --sort=-pcpu | head -n 4

按内存使用量排序显示前 3 个进程

ps aux --sort=-rss | head -n 4

每 X 秒执行一次命令

要每隔 X 秒打印一次命令的输出,可以使用watch命令。例如,创建时钟运行

watch -n 1 date

安静模式

许多标准命令都具有静默模式。在创建 Bash 脚本时非常有用。大多数情况下,只需添加-q或 即可-s(请参阅--helpman,或在 StackOverflow 上查看)。

zip -q archive.zip big-file.jpg

但有时(实际上总是使用内部脚本)您必须忽略输出(发送到/dev/null

./very-verbose.sh 1>/dev/null

为 crontab 执行的脚本创建日志文件

0 22 * * 1-5 /opt/scripts/send-report.sh 2>/var/log/scripts/report-error.log

所以下次当你的脚本失败时你不会失去理由

文章来源:https://dev.to/mateuszjarzyna/linux-s-commands-and-tricks-im-using-in-my-daily-job-as-a-developer-4cle
PREV
典型的 JavaScript 面试练习(解释)
NEXT
24 个鲜为人知的 HTML 属性,你可能想用一下 ✨📚