Debian 12
一、前言
最近发现了 Debian Linux 系统,使用的也是 deb 格式的安装包和 apt 管理器。另外由于使用最新版的 Ubuntu 的时候发现默认下载的 Snap 源的软件,导致更新后一些软件会有问题,不能正常使用。虽然可以关闭,但是 emmmm,一言难尽。
趁此机会,把玩一下,嘿嘿~本文基于 Debian12 版本。
二、基础配置
安装 sudo 命令
1apt install sudo
Debian12 默认没有安装该命令。
安装的时候虽然可以选择中国国内的镜像,但是默认的 安全更新
使用的源依旧是官方的地址,而且查阅部分(北京外国语、清华源)镜像的帮助说明,也不推荐使用镜像站安全更新软件源,因为镜像站往往有同步延迟。但是啊,使用官方地址更新时非常的慢!浪子更新的时候两个小时,两个小时啊还没更完!太恐怖了,所以浪子使用了镜像地址。修改 /etc/apt/sources.list
,浪子使用的 北京外国语镜像站
:
1# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
2deb https://mirrors.bfsu.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
3# deb-src https://mirrors.bfsu.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
4
5deb https://mirrors.bfsu.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
6# deb-src https://mirrors.bfsu.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
7
8deb https://mirrors.bfsu.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
9# deb-src https://mirrors.bfsu.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
10
11deb https://mirrors.bfsu.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
12# deb-src https://mirrors.bfsu.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
13
14# 默认使用的官方源,注释该行内容,禁止使用官方源
15# deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
16# deb-src https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
更新并安装一些常用工具
1# 更新
2apt update && apt upgrade
3# 安装常用构建工具
4apt install build-essential git iproute2 curl wget neovim -y
语言
1# 查看当前语言
2locale
3# 图形化选择语言
4sudo dpkg-reconfigure locales
5# 再次查看语言是否安装
6locale -a
7
8# 如果没有改变执行下面的语句
9export LANG=zh_CN.utf8
时区/时间
系统安装的时候如果选择的是中国地区,那么就已经配置好了。如果安装时候全是默认的配置,可以使用以下方式修改:
1# 查看当前的时区
2timedatectl
3# 查看支持的时区列表
4timedatectl list-timezones
5# 是否含有中国时区
6timedatectl list-timezones | grep Asia/Shanghai
7# 设置中国时区
8timedatectl set-timezone Asia/Shanghai
9# 再次查看
10timedatectl
允许 root 用户远程登录
默认情况下,Debian12 也是不允许 root 用户使用密码进行远程登录的 (好吧,其实是 SSH)。所以需要配置一下。编辑 sudo vim /etc/ssh/sshd_config
文件,修改/添加下面的内容,保存退出。
1#PermitRootLogin prohibit-password
2PermitRootLogin yes
然后重启 sshd
服务就可以开心的使用 root 用户密码登录啦!
1systemctl restart ssh
使用 SSH 密钥登录(推荐)
使用密码登录不如配置一个密钥,并且如果是自己玩集群完全可以一个密钥传至所有的服务器上,配置完成后直接使用终端执行 ssh 域名/user@ip
,非常简单,并且安全,也不需要 ssh 工具。
这里就简单介绍一下配置 SSH 密钥登录服务器吧,这种方式并不需要修改上面的文件(生产服务器建议),也是更推荐的安全做法。
首先,客户端生成一对 SSH 密钥对;
BASH1ssh-keygen -t ed25519 -f ~/.ssh/server_key
然后上传公钥到服务器,过程中会有一些提示并让你输入服务器的密码,自行填写;
BASH1ssh-copy-id -i ~/.ssh/pubkey user@ip
测试
BASH1ssh -i ~/.ssh/pubkey user@host
编辑
~/.ssh/config
文件:BASH1Host 随便起一个名称 2HostName server_ip 3User root 4port 22 5PreferredAuthentications publickey 6IdentityFile ~/.ssh/私钥文件路径 7IdentitiesOnly yes
随便打开一个终端,例如 windows11 自带的终端(确保终端的机器装了 ssh 工具哈)
BASH1ssh 随便起一个名称
现在应该可以直接连接服务器了,并且不需要使用 root 用户的密码进行访问,是不是非常的简单呢!
上传文件也很简单,但是下载就不太好用了。就浪子体验而言,推荐 SSH 连接 + 其它文件传输工具,因为传输文件这个确实不太方便,尤其是跨系统的情况下。
1scp file 随便起一个名称:/path/to
2
3# 传输目录下所有文件
4scp -r dir/ 随便起一个名称:/path/to/
ssh-copy-id 使用 SSH 协议连接到目标主机并上传 SSH 用户密钥。该命令编辑服务器上
authorized_keys
的文件。如果 .ssh 目录不存在,它将自动创建该目录;如果授权密钥文件不存在,它将自动创建该文件。因此推荐使用该命令上传而不是手动在服务端操作。另外,如果添加 -f 选项,可能会导致authorized_keys
文件中存在多个密钥副本。
bash 命令别名
除了部分发行版 Linux 中可以直接使用 ll
命令,其它系统默认是不支持的,所以使用自己喜欢的别名命令还是需要配置的。为了不污染 /etc/profile
中的原有内容,此处举例使用外部文件编写内容,然后引入系统配置中。
在 /etc
目录下创建自己的别名命令文件:sudo touch /etc/alias_bashrc
,Debian12 中默认是没有这个文件名的,可以直接使用,当然,各位少侠可以按照自己喜好自己取文件名,这里只是举例。
1alias ll='ls -al'
编写完毕仍然是不能直接在 bash 中使用命令的,在全局文件 /etc/profile
中引入,让系统加载自定义别名文件内容供系统识别(添加下面使用 # 包括的内容即可):
1...
2if [ -f /etc/bash.bashrc ]; then
3 . /etc/bash.bashrc
4fi
5
6############# 引入自己的别名文件 #############
7if [ -f /etc/alias_bashrc ]; then
8 . /etc/alias_bashrc
9fi
10...
然后刷新文件:source /etc/profile
,之后就可以在 bash 中使用 ll
啦,快去试试吧!
vim 配置
vim 配置,默认的感觉不太好用。这段配置并不使用任何插件。
1" 文件编码
2set encoding=utf-8
3set fileencoding=utf-8
4
5" 语法高亮
6set syntax=on
7
8" Tab键的宽度,tabstop 可简写为 ts
9set tabstop=4
10" 使用空格代替制表符
11set expandtab
12" 自动缩进时,缩进长度为4
13set shiftwidth=4
14" 可以用 Backspace 键一次删除4个空格
15set softtabstop=-1
16
17" 突出显示当前行
18set cursorline
19
20" 去掉输入错误的提示声音
21set noeb
22
23" 高亮显示匹配的括号
24set showmatch
25
26" 总是显示行号,number 简写 nu
27set number
28
29" 侦测文件类型
30filetype on
31" 高亮搜索的文本
32set hlsearch
33
34"代码补全
35set completeopt=preview,menu
36" 增强模式中的命令行自动完成操作
37set wildmenu
38
39" 状态行显示的内容(包括文件类型和解码)
40set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%Y-%m-%d\ -\ %H:%M\")}
41
42" 1=启动显示状态行, 2=总是显示状态行
43set laststatus=2
三、其他软件
docker
参考下面两篇文章: https://docs.docker.com/engine/install/debian/ https://u.sb/debian-install-docker/
如果出现类似下面的报错:
1Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on 192.168.47.2:53: server misbehaving
编辑 vim /etc/resolv.conf
文件在末尾添加以下内容:
1nameserver 8.8.4.4
2nameserver 8.8.8.8
podman
Debian12 官方版使用的版本为 4.3.1,如果你想更新到最新版的 Podman,请参考 更新至最新稳定版 :
附
关于 PPA
最近了解了 PPA(Personal Package Archives,个人软件包存档),和 Arch/Manjaro 的 AUR 类似,使用过 Linux 的应该都知道,Linux 上的软件包更新是需要经过审核的,而使用 apt 作为下载源的官方包里可能很长时间才更新。这个时候就可以考虑使用 PPA。使用 PPA 的时候需要用户确认信任该源,这要求用户对自己添加的源要负责。
可以使用以下命令添加 PPA:
1sudo add-apt-repository ppa:mmk2410/intellij-idea
2sudo apt update
部分的 PPA 下载速度也是感人,可以替换源:
1将所有的 http://ppa.launchpad.net 替换为 http://launchpad.proxy.ustclug.org
- 目前来看,PPA 中的包还较少,很多工具不是版本较旧就是没有,并且 PPA 只推荐喜欢命令行或者了解 Linux 的人使用,小白就不要用了。
- 搜索 PPA 可以在这个网站 搜索。
Debian12 系统版本库
Debian12 的官方软件包只支持 openjdk-17,嗯,对的。算了,列个表吧。
emmm,太懒了。后来在 Debian 官方文档 中找到了 Debian 各个版本中对应的软件版本号。文档 还是很不错的,有需要自行查看。
防火墙
Debian12 使用的是 nftables,没错,我之前一直没有听说过,直到现在才知道。吾生也有涯,而学也无涯。
介绍和常用操作,红帽的这篇文章还是非常不错的:https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/8/html/securing_networks/getting-started-with-nftables_securing-networks
APT 清理系统空间
删除包
1apt remove --purge [package]
–purge 会删除 package 的配置文件。
删除不需要的软件包
1apt autoremove
该选项会删除为满足某个已安装软件包的依赖关系而自动安装的库和软件包。如果该软件包被移除,这些自动安装的软件包在系统中将失去作用。它还会删除在系统升级中自动安装的旧 Linux 内核。
清理 apt 的缓存
APT 软件包管理系统将 DEB 软件包的缓存保存在 /var/cache/apt/archives
中。随着时间的推移,此缓存可能会变得非常大,并容纳许多不需要的包。
可以使用以下命令查看此缓存的大小:
1sudo du -sh /var/cache/apt
有两种方式清理 apt 的缓存,一种是只删除过时的软件包,比如那些被最近更新被取代的软件包:
1apt autoclean
或者完全删除:
1apt clean
清理系统日志
每个 Linux 发行版都有一个日志记录机制,可帮助调查系统中发生的情况:例如日志记录数据、系统日志消息、标准输出和错误。随着时间的推移,这些日志会占用大量的磁盘空间。您可以使用以下命令检查日志大小:
1journalctl --disk-usage
有一些方法可以清理 systemd 日志日志。最简单的方法是清除早于某些日期的日志。
1sudo journalctl --vacuum-time=3d
评论