今天,Linus Torvalds 宣布了 Linux 6.5 内核系列的最终发布,这是一个重大更新,引入了多项新功能,更新和新的驱动程序以获得更好的硬件支持,以及其他更改。

经过七个RC版本的测试,Linux内核6.5现已发布,新功能包括在ALSA中支持MIDI 2.0,为RISC-V架构提供ACPI支持,为UML(User-Mode Linux)提供Landlock支持,更好地支持AMD“Zen”系统,以及对ARMv8.8 memcpy/memset指令的用户空间支持,改进 Btrfs 性能等。

Linux内核6.5现在可以从Linus Torvalds’ Git treekernel.org网站下载。但这是源代码,需要手动编译。如果这不符合你的口味,你将不得不等待Linux 6.5出现在你的GNU/Linux发行版的稳定软件存储库中以进行更新。

Ubuntu是站长个人常用的系统镜像,当然有些在运维的时候还是需要用到一些命令操作的。这里整理常用的20个Ubuntu常用命令。

1、ls:列出当前目录下的文件和文件夹。

示例:ls

2、cd:切换到指定目录。

示例:cd /home/user/Documents

3、pwd:显示当前工作目录的路径。

示例:pwd

4、mkdir:创建一个新的目录。

示例:mkdir new_directory

5、rm:删除文件或目录。

示例:rm file.txt 或 rm -r directory

6、cp:复制文件或目录。

示例:cp file.txt new_file.txt 或 cp -r directory new_directory

7、mv:移动文件或目录,可以同时用于重命名文件或目录。

示例:mv file.txt new_location/file.txt 或 mv file.txt new_name.txt

8、cat:显示文件内容。

示例:cat file.txt

9、grep:在文件中搜索指定的字符串。

示例:grep “search_string” file.txt

10、chmod:修改文件或目录的权限。

示例:chmod 755 file.txt

11、chown:修改文件或目录的所有者。

示例:chown user:group file.txt

12、chgrp:修改文件或目录的所属组。

示例:chgrp group file.txt

13、apt-get:用于安装、更新和卸载软件包。

示例:sudo apt-get install package_name

14、dpkg:用于管理Debian软件包。

示例:sudo dpkg -i package.deb

15、wget:从网络上下载文件。

示例:wget http://example.com/file.txt

16、tar:打包和解压缩文件。

示例:tar -cvf archive.tar file1 file2 或 tar -xvf archive.tar

17、ssh:通过SSH协议远程登录到另一台计算机。

示例:ssh username@remote_host

18、top:显示系统中运行的进程和资源占用情况。

示例:top

19、ifconfig:显示和配置网络接口信息。

示例:ifconfig

20、ping:测试与另一台计算机之间的连通性。

示例:ping 192.168.0.1

OpenSSL 是一个用于安全通信的开放源代码项目,可以用来检查证书。下面是使用 OpenSSL 检查证书的步骤

1.下载并安装 OpenSSL

在你的计算机上下载并安装 OpenSSL 工具。可从官网https://www.openssl.org/source/下载。下载后按照官网提供的安装方法进行安装。

2.导入证书

将证书导入 OpenSSL,可以通过以下命令将证书导入 OpenSSL 中:

openssl x509 -in cert_file.pem -text

复制

上述命令指出打印 cert_file.pem 证书文件的详细信息,其中包括证书持有人、颁发机构、有效期等。

3.验证证书

可以使用 OpenSSL 验证证书的有效性,可以使用以下命令:

openssl verify cert_file.pem

如果证书是有效的,命令将返回以下信息:

cert_file.pem: OK

如果证书无效,命令将返回以下信息:

cert_file.pem: C = US, O = Example Company, CN = example.com
error 18 at 0 depth lookup:self signed certificate
error cert_file.pem:self signed certificate

4.检查证书链

可以检查整个证书链的有效性,可以使用以下命令:

openssl verify -CAfile ca_file.pem cert_file.pem

上述命令用于检查 cert_file.pem 证书文件是否在 ca_file.pem 证书链中,同时也可以检查证书链的有效性。如果证书链有效,则命令将返回以下信息:

cert_file.pem: OK

如果证书链无效,则命令将返回以下信息:

cert_file.pem: C=US,O=Example Company,CN=example.com
error 20 at 0 depth lookup:unable to get local issuer certificate
error cert_file.pem: verification failed

复制

上述异常错误信息也可能有多种,可以根据具体的错误类型进行诊断。

5.其他操作

OpenSSL 还支持其他证书查询与操作,如通过 OCSP 验证证书状态等。

综上所述,OpenSSL 提供了丰富的功能来检查证书,可以通过简单的命令行操作来实现。同时,需要注意正确安装 OpenSSL 后才能进行上述的检查操作。

错误信息 “/lib64/libm.so.6: version `GLIBC_2.27′ not found” 表示程序运行需要 GLIBC 2.27 版本的 libc 库,而系统中安装的 libc 库的版本较低,因此无法找到所需的库。

要解决这个问题,一种可行的方法是更新 libc 库的版本。可以按照以下步骤进行操作:

  1. 检查系统中 libc 库的版本。可以使用以下命令查看:
ldd --version

该命令会返回系统中的 libc 库版本以及其他相关信息。

  1. 下载 GLIBC 2.27 版本的源码包。可以从 GLIBC 的官方网站下载(http://ftp.gnu.org/gnu/glibc/glibc-2.27.tar.gz)。
  2. 解压源码包并进入源码目录。
  3. 编译并安装 GLIBC 2.27。可以使用以下命令:
./configure --prefix=/usr/local/glibc-2.27
make
sudo make install

请注意,安装的目录可以根据实际情况进行修改。

  1. 将新的 libc 库路径添加到 LD_LIBRARY_PATH 环境变量中。可以使用以下命令:
export LD_LIBRARY_PATH=/usr/local/glibc-2.27/lib:$LD_LIBRARY_PATH
  1. 重新运行程序,查看是否仍然出现错误。

请注意,更新系统的 libc 库版本可能会影响到其他程序的运行,因此在执行此操作之前,请仔细考虑潜在的影响,并在操作之前备份重要数据。

在大部分 Linux 系统中,cat 命令是通过 coreutils 包默认安装的。但是如果您在 Alpine Linux 中找不到 cat 命令,您可以按照以下步骤安装 Coreutils 包:

1. 使用 apk 命令更新索引:

apk update   

2. 安装 Coreutils 包:

apk add coreutils   

安装完成后,您就可以使用 cat 命令了。

注意:在 Alpine Linux 中,cat 命令位于 coreutils 包中,该包提供了其他常见的 Linux 命令,如 chgrp、chmod、chown、cp、date、dd、df等等,因此安装 coreutils 包是非常重要的。

在 Alpine Linux 中,可以使用多种命令来检查 CPU 利用率。以下是其中一些命令:

1. top 命令

   top 命令是一种交互式的进程监视器,它可以实时显示系统中正在运行的进程、CPU 利用率、内存使用情况等信息。启动 top 命令后,按下大写字母 P 键可以按 CPU 占用率排序,在第三行中可以看到 CPU 利用率的统计信息。

top -n 1

2. mpstat 命令

   mpstat 命令用于监视多处理器系统中每个处理器的使用情况。以下命令将显示每个 CPU 的利用率百分比。

mpstat -P ALL 1

   该命令使用 -P 参数指定要监视的处理器,并指定每秒钟进行一次采样。

3. vmstat 命令

   vmstat 命令用于监视系统的虚拟内存、进程、系统CPU、硬盘和CPU的使用情况,其中包括 CPU 利用率。以下命令将显示 CPU 利用率的详细统计信息。

vmstat 1

   该命令使用 1 秒的采样间隔,并在第 4 列和第 13 列中显示 CPU 利用率的详细统计信息。

4. sar 命令

   sar 命令用于收集系统性能信息,包括 CPU 利用率、内存使用情况、磁盘和网络 I/O 等。以下命令将从当前时间开始每秒钟记录 CPU 利用率信息。

sar -u 1   

   该命令使用 -u 参数指定要监视的 CPU 利用率,并指定每秒钟进行一次采样。

以上是一些常见的获取 CPU 利用率的方法和命令,您可以根据需要进行选择和调整。同时,请注意在实际应用中综合使用多种命令,以充分了解系统的整体性能和各项指标。

本文将指导使用 xcaddy 自定义编译 Caddy。

PS:本文同时适用于 Debian 10 Buster 以及 Ubuntu 20.04 Focal

xcaddy 是 Caddy 官方制作的用于自定义编译 Caddy 的工具,它可以帮助我们快速的编译出符合自己需求的 Caddy。

安装 xcaddy

我们按照官方的安装方法,首先,安装一些必要的软件包:

apt update
apt upgrade -y
apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates

然后按照官方教程安装 Go:

wget https://go.dev/dl/go1.19.5.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.19.5.linux-amd64.tar.gz

然后把 go 加入系统环境变量:

echo "export PATH=\$PATH:/usr/local/go/bin" >> /etc/profile

然后加入 Caddy 的 GPG 公钥和 apt 源:

curl -sSL https://dl.cloudsmith.io/public/caddy/xcaddy/gpg.key | gpg --dearmor > /usr/share/keyrings/xcaddy.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/xcaddy.gpg] https://dl.cloudsmith.io/public/caddy/xcaddy/deb/debian any-version main" > /etc/apt/sources.list.d/xcaddy.list

然后更新系统后即可安装 xcaddy:

apt update
apt install xcaddy

重启打开 SSH 后检查一下 go 和 xcaddy 的版本:

root@debian ~ # go version
go version go1.19.5 linux/amd64

root@debian ~ # xcaddy version
v0.3.1 h1:XKmnGnGTeB53hLUgnGr/R4JbTNSxh8IBAFcJkrtycso=

自定义编译 Caddy

我们可以选择一些自己喜欢的模块,比如缓存模块和 Brotli 压缩模块:

xcaddy build \
    --with github.com/caddyserver/cache-handler \
	--with github.com/ueffel/caddy-brotli

经过一段时间的编译以后,我们就可以在当前目录下看到一个名为 caddy 的二进制文件,这就是我们自定义编译的 Caddy 了。

自定义 Caddy 和系统 Caddy 共存

如果我们想要自定义 Caddy 和系统 Caddy 共存,可以使用官方的教程

首先,按照我们的教程安装 Caddy,安装完毕后,先停止 Caddy 服务:

systemctl stop caddy

然后使用 dpkg-divert 命令将系统 Caddy 的二进制文件移动到 /usr/bin/caddy.default 并做软链接:

dpkg-divert --divert /usr/bin/caddy.default --rename /usr/bin/caddy

然后把我们自己编译好的 Caddy 二进制文件移动到 /usr/bin/caddy.custom

mv ./caddy /usr/bin/caddy.custom

然后设置优先级,让我们的自定义 Caddy 优先启动:

update-alternatives --install /usr/bin/caddy caddy /usr/bin/caddy.default 10
update-alternatives --install /usr/bin/caddy caddy /usr/bin/caddy.custom 50

此时我们可以看到默认的 /usr/bin/caddy 已经是我们自定义的 Caddy 了:

root@debian ~ # ls -l /usr/bin/caddy
lrwxrwxrwx 1 root root 23 Jan 22 10:52 /usr/bin/caddy -> /etc/alternatives/caddy*

root@debian ~ # ls -l /etc/alternatives/caddy
lrwxrwxrwx 1 root root 21 Jan 22 10:52 /etc/alternatives/caddy -> /usr/bin/caddy.custom

我们也可以使用 update-alternatives --config caddy 命令来切换系统安装的 Caddy 和自定义的 Caddy:

root@be ~ # update-alternatives --config caddy
There are 2 choices for the alternative caddy (providing /usr/bin/caddy).

  Selection    Path                    Priority   Status
------------------------------------------------------------
* 0            /usr/bin/caddy.custom    50        auto mode
  1            /usr/bin/caddy.custom    50        manual mode
  2            /usr/bin/caddy.default   10        manual mode

Press <enter> to keep the current choice[*], or type selection number:

我们可以看到默认的 Caddy 二进制文件是我们自定义的,你可以输入 0(按照优先级自动) 1(手工切换自定义 Caddy) 或 2(使用系统默认 Caddy)来修改并切换默认的 Caddy 版本。

要将 Rocky Linux 更换为国内源,您可以按照以下步骤进行操作:

1. 备份当前源文件

在更改之前,最好备份一下当前的源文件,以防万一。可以使用以下命令将当前的源文件备份到 /etc/yum.repos.d/ 目录中:

sudo cp /etc/yum.repos.d/Rocky-*.repo /etc/yum.repos.d/Rocky-*.repo.backup

2. 下载新的源文件

您可以使用以下命令下载中国科技大学(USTC)的 Rocky Linux 源文件,并将其放置在 /etc/yum.repos.d/ 目录中:

sudo curl -o /etc/yum.repos.d/Rocky-BaseOS.repo http://mirrors.ustc.edu.cn/rocky/8/BaseOS/x86_64/os/Rocky-BaseOS.repo
sudo curl -o /etc/yum.repos.d/Rocky-AppStream.repo http://mirrors.ustc.edu.cn/rocky/8/AppStream/x86_64/os/Rocky-AppStream.repo

3. 清除缓存并更新

完成更改后,可以使用以下命令清除缓存,并使用新的源更新软件包:

sudo yum clean all
sudo yum update

完成这些步骤后,Rocky Linux 环境就成功更换为国内源了。

要更换Ubuntu 22的国内源,可以按照以下步骤操作:

1.打开终端,进入 /etc/apt/ 目录

cd /etc/apt/

2.备份原有的 sources.list 文件

sudo cp sources.list sources.list.backup

3.编辑 sources.list 文件

sudo nano sources.list

4.将文件内容替换为以下内容,这是清华大学镜像源的例子,可以根据自己的需要来修改

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ hirsute-proposed main restricted universe multiverse

5.保存并退出编辑器,运行以下命令更新软件包列表

sudo apt update

这样,Ubuntu 22 就已经成功更换了国内源。

该错误表示系统中没有找到可执行sudo命令。sudo是Linux和Unix系统中的特权命令,允许普通用户以超级用户(也称为root用户)的身份执行操作。

如果正在使用MacOS系统,则可以尝试通过在终端中输入以下命令来安装sudo:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

如果正在使用Ubuntu或Debian系统,则可以使用以下命令安装sudo:

apt-get update
apt-get install sudo

如果您正在使用其他Linux或Unix系统,请参考相关文档以了解如何安装sudo或联系系统管理员。