debian使用记录

vim安装

  • Debian12最小化安装后,需要单独安装vim
sh体验AI代码助手代码解读复制代码rz@debian:~$ su
Password:
root@debian:/home/rz# apt update
root@debian:/home/rz# apt install vim
root@debian:/home/rz# exit
exit
rz@debian:~$

[vim命令详解:](Linux vi/vim | 菜鸟教程)

sudo配置

  • 安装sudo
sh体验AI代码助手代码解读复制代码rz@debian:~$ su
Password:
root@debian:/home/rz# apt install sudo
  • 配置sudo,将普通用户rz加入到sudo组,使其具备sudo组权限:
ruby体验AI代码助手代码解读复制代码root@debian:/home/rz# /sbin/usermod -aG sudo rz
root@debian:/home/rz# groups rz
rz : rz cdrom floppy sudo audio dip video plugdev users netdev
root@debian:/home/rz# exit
exit
rz@debian:~$ newgrp sudo

静态IP配置

  • 使用sudo vim命令编辑网络配置文件/etc/network/interfaces
bash体验AI代码助手代码解读复制代码# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug ens33
# iface ens33 inet dhcp
iface ens33 inet static
address 192.168.152.3/24
network 192.168.152.0
broadcast 192.168.152.255
gateway 192.168.152.2
  1. 设置静态IP地址为192.168.152.3
  2. VMware中,默认路由一般最后一位为2
  • 重启网络服务:
bash体验AI代码助手代码解读复制代码rz@debian:~$ sudo systemctl restart networking.service
rz@debian:~$ sudo systemctl status networking.service
● networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; preset: en>
Active: active (exited) since Wed 2024-12-25 08:59:48 EST; 27s ago
Docs: man:interfaces(5)
Process: 8267 ExecStart=/sbin/ifup -a --read-environment (code=exited, statu>
Process: 8292 ExecStart=/bin/sh -c if [ -f /run/network/restart-hotplug ]; t>
Main PID: 8292 (code=exited, status=0/SUCCESS)
CPU: 44ms

Dec 25 08:59:48 debian systemd[1]: Starting networking.service - Raise network i>
Dec 25 08:59:48 debian systemd[1]: Finished networking.service - Raise network i>

q键退出查看服务状态。 若配置的静态IP地址与当前IP地址不一致时,重启network服务(networking.service)时,已经登录的SSH用户会掉线。重新使用新静态IP地址进行登录即可。

bash配置

  • ~目录配置,使用vim编辑~/.bashrc
config体验AI代码助手代码解读复制代码 ...
90 │ # some more ls aliases
91 │ alias ll='ls -l'
92 │ alias la='ls -A'
93 │ alias l='ls -CF'
...

删除91-93行的注释

  • 使用sudo vim命令编辑/etc/bash.bashrc,启用bash命令补全功能:
config体验AI代码助手代码解读复制代码 ...
34 │ # enable bash completion in interactive shells
35 │ if ! shopt -oq posix; then
36 │ if [ -f /usr/share/bash-completion/bash_completion ]; then
37 │ . /usr/share/bash-completion/bash_completion
38 │ elif [ -f /etc/bash_completion ]; then
39 │ . /etc/bash_completion
40 │ fi
41 │ fi
...

删除35-41行的注释

  • 加载配置,使生效:
sh体验AI代码助手代码解读复制代码rz@debian:~$ source /etc/bash.bashrc
rz@debian:~$ source .bashrc

安装源配置

  • 因为在实验与演示环境中,不需要考虑安全更新,同样也不考虑从源代码进行编辑,为加速每次安装软件与更新速度,注释掉安全源与源码源。使用sudo vim命令编辑/etc/apt/sources.list
sh体验AI代码助手代码解读复制代码deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main non-free-firmware
# deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main non-free-firmware

# deb http://security.debian.org/debian-security bookworm-security main non-free-firmware
# deb-src http://security.debian.org/debian-security bookworm-security main non-free-firmware

deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main non-free-firmware
# deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main non-free-firmware

修改完之后,需要执行sudo apt update更新可用软件列表。

sshd服务允许root远程登录

  • 修改sshd服务配置文件,使用sudo vim命令编辑/etc/ssh/sshd_config
config体验AI代码助手代码解读复制代码#PermitRootLogin prohibit-password
PermitRootLogin yes
  • 重启ssh服务:
sh体验AI代码助手代码解读复制代码rz@debian:~$ sudo systemctl daemon-reload
rz@debian:~$ sudo systemctl restart sshd
rz@debian:~$ sudo systemctl status sshd
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; preset: enabled)
Active: active (running) since Wed 2024-12-25 21:51:31 EST; 12s ago
Docs: man:sshd(8)
man:sshd_config(5)
Process: 6721 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
Main PID: 6723 (sshd)
Tasks: 1 (limit: 2264)
Memory: 1.4M
CPU: 23ms
CGroup: /system.slice/ssh.service
└─6723 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

Dec 25 21:51:31 debian systemd[1]: Starting ssh.service - OpenBSD Secure Shell s>
Dec 25 21:51:31 debian sshd[6723]: Server listening on 0.0.0.0 port 22.
Dec 25 21:51:31 debian sshd[6723]: Server listening on :: port 22.
Dec 25 21:51:31 debian systemd[1]: Started ssh.service - OpenBSD Secure Shell se>

主机名配置

  • 配置主机名,此处设置主机名为debase,域名为debase.rz
bash

体验AI代码助手
代码解读
复制代码rz@debian:~$ sudo hostnamectl set-hostname debase --static
  • 使用sudo vim命令编辑/etc/hosts文件,修改内容如下:
bash体验AI代码助手代码解读复制代码127.0.0.1       localhost
127.0.1.1 debase
192.168.152.3 debase.rz

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

使用sudo vim /etc/hosts时,会给出警告信息:sudo: unable to resolve host hub: Name or service not known,是由于此时/etc/hosts内容未做同步变更造成的。

  • 重新登录,使主机名生效。
  • 使用ping命令,验证主机名与域名:
bash体验AI代码助手代码解读复制代码rz@debase:~$ ping debase
PING debase (127.0.1.1) 56(84) bytes of data.
64 bytes from debase (127.0.1.1): icmp_seq=1 ttl=64 time=0.013 ms
64 bytes from debase (127.0.1.1): icmp_seq=2 ttl=64 time=0.034 ms
^C
--- debase ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1024ms
rtt min/avg/max/mdev = 0.013/0.023/0.034/0.010 ms
rz@debase:~$ ping debase.rz
PING debase.rz (192.168.152.3) 56(84) bytes of data.
64 bytes from debase.rz (192.168.152.3): icmp_seq=1 ttl=64 time=0.017 ms
64 bytes from debase.rz (192.168.152.3): icmp_seq=2 ttl=64 time=0.025 ms
^C
--- debase.rz ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1029ms
rtt min/avg/max/mdev = 0.017/0.021/0.025/0.004 ms

使用Ctrl+C中止ping命令。

常用工具batcat、tree、curl

  • 安装batcattree
bash体验AI代码助手代码解读复制代码rz@debase:~$ sudo apt update
Hit:1 http://mirrors.tuna.tsinghua.edu.cn/debian bookworm InRelease
Hit:2 http://mirrors.tuna.tsinghua.edu.cn/debian bookworm-updates InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
rz@debase:~$ sudo apt install bat tree curl

设置系统时区

  • timedatectl是一个现代的命令行工具,用于查询和更改系统时间和日期设置。设置时区为Asia/Shanghai
sh体验AI代码助手代码解读复制代码rz@debase:~$ timedatectl
Local time: Wed 2024-12-25 22:00:36 EST
Universal time: Thu 2024-12-26 03:00:36 UTC
RTC time: Thu 2024-12-26 03:00:36
Time zone: US/Eastern (EST, -0500)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
rz@debase:~$ sudo timedatectl set-timezone Asia/Shanghai
rz@debase:~$ timedatectl
Local time: Thu 2024-12-26 11:01:07 CST
Universal time: Thu 2024-12-26 03:01:07 UTC
RTC time: Thu 2024-12-26 03:01:07
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no

history配置记录命令执行时间戳

  • 在Linux系统中,默认情况下,Bash shell(以及其他类似的shell,如Zsh)会记录输入的命令历史。然而,这些历史记录默认情况下并不会包含命令执行的时间戳。
  • 编辑~/.bashrc文件,添加如下内容到文件尾:
sh

体验AI代码助手
代码解读
复制代码export HISTTIMEFORMAT="%F %T "

HISTTIMEFORMAT环境变量设置为包含日期和时间(格式为YYYY-MM-DD HH:MM:SS)的字符串。

  • 重新加载配置文件:
sh

体验AI代码助手
代码解读
复制代码rz@debase:~$ source .bashrc
  • 使用history命令:
sh体验AI代码助手代码解读复制代码rz@debase:~$ tree ~/
/home/rz/

0 directories, 0 files
rz@debase:~$ history
...
53 2024-12-26 11:02:57 tree ~/
54 2024-12-26 11:03:08 history

每条命令前面有执行时间戳

安装docker

卸载旧版本

如果你之前安装过 Docker Engine 之前,你需要卸载旧版本,避免冲突:

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done

使用官方安装脚本自动安装

安装命令如下:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh


手动安装

1. 更新软件包

首先,更新现有的软件包和包缓存:

sudo apt update
sudo apt upgrade

2. 安装依赖包

安装一些需要的依赖包,这些包允许 apt 使用 HTTPS 协议来访问 Docker 仓库:

sudo apt install apt-transport-https ca-certificates curl software-properties-common

3. 添加 Docker 官方 GPG 密钥

使用下面的命令来添加 Docker 官方的 GPG 密钥:

sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

4. 添加 Docker 仓库

添加 Docker 官方的 APT 软件源:

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新
sudo apt-get update

5. 更新 APT 软件包缓存

添加仓库后,更新 APT 包索引:

sudo apt update

确保你现在从 Docker 官方仓库安装 Docker 而不是 Debian 默认仓库:

apt-cache policy docker-ce

你应该看到它指向 https://download.docker.com/,确保这就是官方的 Docker 仓库。

6. 安装 Docker

现在,你可以安装 Docker:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

7. 启动并验证 Docker

启动 Docker 并设置为开机自启:

sudo systemctl start docker
sudo systemctl enable docker

你可以使用以下命令来验证 Docker 是否安装成功:

# 任一个都可以
sudo docker --version
sudo docker info

安装 Docker Compose

(如果上面没有安装Docker Compose ,就按这个安装,安装了就不用管了)

因为我们已经安装了 docker-compose-plugin,所以 Docker 目前已经自带 docker compose 命令,基本上可以替代 docker-compose

root@debian ~ # docker compose version
Docker Compose version v2.27.1

如果某些镜像或命令不兼容,则我们还可以单独安装 Docker Compose:

我们可以使用 Docker 官方发布的 Github 直接安装最新版本:

curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

此时可以使用 docker-compose version 命令检查是否安装成功:

root@debian ~ # docker-compose version
Docker Compose version v2.27.1

修改 Docker 配置

以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘 (泪的教训):

cat > /etc/docker/daemon.json << EOF
{
"log-driver": "json-file",
"log-opts": {
"max-size": "20m",
"max-file": "3"
},
"ipv6": true,
"fixed-cidr-v6": "fd00:dead:beef:c0::/80",
"experimental":true,
"ip6tables":true
}
EOF

然后重启 Docker 服务:

systemctl restart docker

好了,我们已经安装好了 Docker 和 Docker Compose,然后就可以开始愉快的安装各种软件,限于篇幅,我们不再赘述,今后慢慢介绍安装各种 Docker 软件的方法。

运行以下测试命令确保 Docker 正常工作:

sudo docker run hello-world

卸载 docker

删除安装包:

sudo apt-get purge docker-ce

删除镜像、容器、配置文件等内容:

sudo rm -rf /var/lib/docker

安装宝塔面板

推荐安装,已经公测且稳定的版本,每月会更新新功能,推荐使用Debian12系统查看系统兼容列表

wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh && bash install_panel.sh ed8484bec
  1. 执行bt default获取默认账户密码
  2. 执行bt 5 重置宝塔面板密码
  3. 如果出现仍无法登录的情况,请联系客服