Tag: Linux

如何使用 NVM 清理除了保留版本以外的所有 Node.Js 版本

如何删除除一个版本外的所有 NVM Node.js 版本 NVM是Node Version Manager,是NodeJS版本管理器。用NVM可以很容易的在一个服务器上同时管理多个版本的Node/NPM。NVM可以在github上安装: 使用场景 你正在使用 nvm(Node 版本管理器)来管理多个 Node.js 版本 你想清理系统,只保留一个版本:v22.16.0 步骤 1:列出所有已安装的 Node 版本 nvm ls 步骤 2:使用 Bash 脚本卸载除指定版本以外的所有版本 以下BASH脚本将删掉除了KEEP_VERSION以外的所有Node/NPM版本,所以使用前请确认需要保持的版本。 KEEP_VERSION="v22.16.0" for version in …

为什么 Linux Shell 命令前加空格会有影响?

理解 Linux Shell 中前导空格的行为 概述 在像 bash 这样的 Linux shell 环境中,命令前加一个空格可能会影响该命令是否被保存到命令历史中。 这个小技巧在处理敏感数据时非常有用,或者当你不希望某个命令被记录下来时也能派上用场。 关键变量:HISTCONTROL 这种行为是由一个叫做 HISTCONTROL 的 shell 环境变量控制的。 查看当前设置的方法如下: echo $HISTCONTROL 例如,你可能会看到: ignoredups:ignorespace 值的含义解释 选项 描述 ignoredups 防止连续重复的命令被保存到历史中。 ignorespace …

如何使用 GDB 或 LLDB 调试器重复运行程序直到错误

如何使用 GDB 或 LLDB 调试器重复运行程序直到发生错误 在调试程序时,有时候我们希望一直运行程序直到遇到错误。GDB(GNU 调试器)和 LLDB(LLVM 调试器)都提供了自动化此过程的方法。 这在调试一些不稳定的程序非常有用,例如有时候写的一些单元测试可能随机崩溃SegFault。最近我在调试一个测试每跑1000次就有一次崩溃的时候就发现gdb/lldb调试器非常有用。 简介:GDB vs LLDB GDB(GNU 调试器)和 LLDB(LLVM 调试器)是用于低级别应用程序调试的强大工具。GDB 传统上用于由 GCC 编译的程序,而 LLDB 是 LLVM 项目的一部分,与 Clang 无缝配合。两者都提供强大的功能,但 GDB 在 Linux …

BASH: 通过dd命令测试硬盘读写速度/性能

要使用 dd 命令测试磁盘速度,可以写入一个临时文件并测量写入和读取速度。以下是一些示例: 测试写入速度 此命令将 1GB 文件写入磁盘,并提供写入速度: dd if=/dev/zero of=testfile bs=1G count=1 oflag=dsync if=/dev/zero 使用空字节源。 of=testfile 指定输出文件。 bs=1G 设置块大小为 1 GB。 count=1 指定只写入一个块。 oflag=dsync 确保数据实际写入磁盘,从而提供更准确的速度测量。 示例输出: 1+0 records in …

为什么应该阻止 ChatGPT 和 Bytedance 爬虫抓取你的页面?

这几天,我发现我的一两个服务器过载(高于平常的CPU使用率),我查看了 Apache 日志,发现 ChatGPT Bot(也称为 GPTBot/1.0)和字节跳动 Bots(也称为 Bytespider)的访问记录。 您可以通过以下 BASH 命令检查访问您服务器的前 10 个 IP: #!/bin/bash awk '{a++}END{for(v in a)print v, a}' /var/log/apache2/*.log* | sort -k2 -nr | head -10 …

如何通过BASH命令把频繁访问服务器的IP找出来?

不知不觉建了好多网站, 也维护多个VPS服务器好多年了, 经常会碰到服务器被多种不良爬虫攻击, 不管是否恶意, 每次并发访问大的时候, 服务器的CPU使用率就飙升. 这时候我一般都会分析APACHE日志来找出在同一时间并发访问的IP. 然后找到IP后就很简单了, 通过CLOUDFLARE的防火墙添加一条IP规则永久禁止该IP的访问. CLOUDFLARE是个很不错的保护, 因为你服务器的IP地址永远不会被泄露, 而CLOUDFLARE会在你的服务器和访问者之间过滤掉恶意的访问. 通过在LINUX下BASH的几个命令, cat, awk, sort, uniq, head 可以用管道把这几个命令用起来, 分析APACHE的日志脚本, 找出访问最多的几个IP地址. cat access.log | awk '{print $1}' | sort …