Debain11系统(纯命令行)安装笔记
本文是为提高自己的Linux开发能力而进行的一个尝试,在自己的笔记本上安装基于图形桌面的Debain11后,觉得和之前安装的Ubuntu并无本质区别,为了训练自己熟悉Linux系统、Vim编辑器以及ssh等知识,有必要进行纯命令行安装。为了方便进行调试,决定现在虚拟机上试安装运行Debian11纯命令行版本,后续在笔记本上安装。
简介
本文是为提高自己的Linux开发能力而进行的一个尝试,在自己的笔记本上安装基于xfce图形桌面的Debain11后,觉得和之前安装的Ubuntu并无本质区别,为了训练自己熟悉Linux系统、Vim编辑器以及ssh等知识,有必要进行纯命令行安装。
为了方便进行调试,决定现在虚拟机上试安装运行Debian11纯命令行版本,后续在笔记本上安装。
安装过程
镜像选择
在Debian – 感谢您下载 Debian!中,由于可能需要无线网卡等固件,因此点击含有固件软件包的非官方非自由映像连接;
因为不需要图形桌面,所以选择版本+nonfree 的路径进入,选择符合机型的amd64,然后选择iso-cd路径,下载ISO镜像文件即可。

VirtualBox配置
选择新建虚拟电脑,这里要勾选Skip Unattended Installation,否则会默认进行域名、主机名、地址等配置,后续安装中可能会出错。
其余部分如内存空间的分配,按默认方案选择,或自行配置即可。

系统安装步骤
GNU安装选择
因为是准备安装纯命令行形式,所以仅选择install即可
语言选择
虽然有中文的选项,但不要选中文,因为安装完成后,Shell会以中文输出提示信息,但不知是否由于没有中文编码,导致输出的信息全为菱形。所以此处选择English。
其他的地区选择之类的,选择other - China即可;文本编码格式选择en-us
此外,由于缺少中文编码,中文笔记、中文命名的文件夹也全都是菱形,也无法进行中文输入,需要做好纯英文开发、记笔记的准备。

基本配置
-
HostName:主机名,可自定义

-
root用户密码
-
用户


磁盘分配
对于新手,直接选择全部磁盘空间即可,后续分区也直接选择全部磁盘(第一个选项)即可。

额外软件选择
因为没有含有其他软件的介质,需要我们通过apt安装,此处选择no即可

软件源选择
对于国内,选择China - mirrors.ustc.edu.cn,或者其他国内镜像源都可以。
修改软件源
如果发现所选择的源不可用,如被公司内网屏蔽,可以修改软件源,修改过程需要使用root用户,步骤如下:
-
切换到root用户
# 添加 - 是为了在切换用户的同时切换工作目录,否则某些工具,如service可能不可用 su - root -
使用root用户,备份原软件源配置文件
# {}会自动展开,等同于 # cp /etc/apt/sources.list /etc/apt/sources.list.backup cp /etc/apt/sources.list{,.backup} -
使用root权限修改软件源配置文件,添加自己需要的软件源(软件源可以从网上寻找,多为大学或大厂的镜像源)
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free -
更新
apt update

代理配置
如果是在公司电脑上使用,可能需要配置公司内网的代理。
此处的代理主要用于apt软件源,如果要修改/删除代理配置,修改/etc/apt/apt.conf即可。
软件选择
因为我们安装的是纯命令行形式,所以只需要安装SSH server 和standard system utilities即可。

Grub配置
此处选择yes以及整个磁盘就可以。
关于Grub引导,可以在配置文件中修改,后续可以直接跳过。

SSH配置
SSH是在安装过程中折磨了我最久的问题。
在安装完Debian后,我尝试进行SSH的连接,却总是得到Port 22 Connection Refused的提示。我在网上查找了很久,各种方法都尝试了,却始终不行,我甚至都准备放弃了,但抱着最后再挣扎一下的想法,我突然想到可能是虚拟机的问题,而最后也证明确实是虚拟机的问题,虽然中途还是遇到一些问题,但还好最后还是完成了SSH的成功连接。
SSH配置文件
使用root用户,修改/etc/ssh/sshd_config 文件。
su - root
vim /etc/ssh/sshd_config
- 使用
#注释掉的,删除#打开 - 图中有而自己的文件中没有的,自行添加


虚拟机配置端口转发
-
在电脑中找到虚拟机的IP地址:192.168.56.1

-
输入
ip addr命令,在Debian中查看ip地址:10.0.2.15
-
配置端口转发


配置参数 说明 名称 用于对本条端口转发进行说明,自定义 协议 选择TCP协议 主机IP 即虚拟机(VirtualBox)的IP 主机端口 虚拟机未被其他应用占用的端口;
SSH连接时默认使用22端口,可以使用-p参数指定要使用的端口子系统IP Debian的IP 子系统端口 Debian用于SSH连接的端口,默认为22;
在SSH配置文件中可以修改SSH的端口 -
SSH连接:通过SSH连接虚拟机IP而不是Debain的IP
ssh root@192.168.56.1
SSH传输文件
连接配置
如果不进行连接配置,每次连接时,都需要输入username@ip,冗长且容易出错,毕竟纯数字串的IP地址并不利于人类记忆,为此有有必要进行配置来提高效率。
-
编辑本地的
~/.ssh/config文件,注意这里编辑的是用于连接远程服务器的主机的ssh配置Host RD # 自定义:用于ssh连接主机的别名 HostName 192.168.56.1 # 所要连接主机的IP地址 User root # 所要登录的用户 Port 22 # 使用的端口 -
通过Host进行连接
ssh RD -
在VSCode里搜索SSH插件,安装。按步骤提示进行ssh连接配置,即可通过VSCode连接远程服务器,进行远程代码编辑啦。
文件传输
基于ssh的远程文件传输工具有很多,我所使用的git Bash中默认安装了scp,因此这里就只介绍了通过scp在本地主机与远程服务器间传输文件的方法。
- scp可以使用ssh的配置
- 如果需要传输文件夹,需要添加
-r参数
本地文件 --> 远程服务器
scp [-r] localfiles username@ip:FilePath
# scp可以使用ssh的配置,如下:
scp a.txt RD:/home/
# 等同于
scp a.txt root@19.168.56.1:/home/
远程服务器 --> 本地文件
scp [-r] username@ip:FilePath localPath
# 示例:保存远程服务器文件到当前目录
scp RD:/home/a.txt .
SSH免密登录
主机生成密钥对
- 打开cmd命令行,输入命令
ssh-keygen -t rsa,然后全部回车 - 打开
c:\users\[用户名]\.ssh\id_rsa.pub,然后复制文件内容
在服务器中添加许可
- 进入
/home/[Server用户名]/.ssh下,如果没有.ssh文件夹,需要自己创建(root用户也在其家目录下创建),确认.ssh目录权限必须是700 - 创建
authorized_keys文件,确认authorized_keys文件权限必须是600 - 将
id_rsa.pub中的内容复制到authorized_keys中
修改服务器SSH配置
- 使用root权限打开
/etc/ssh/sshd_config文件 - 修改StrictModes属性:
StrictModes no - 启用AuthorizedKeysFile配置:
AuthorizedKeysFile .ssh/auauthorized_keys - 重启ssh服务:
service sshd restart - 重新使用ssh登录
修改主机SSH配置
Host RD
HostName 192.168.56.1
User root
Port 22
PreferredAuthentications publickey
IdentityFile "C:/Users/Victor/.ssh/id_rsa"
编译环境配置
使用纯命令行Debian的另一个原因是,公司提供的Ubuntu虚拟机,过大,比较臃肿,运行较慢。
使用虚拟机进行编译并不需要图形界面,只需要敲击命令即可,图形界面只会消耗公司电脑本就不多的内存资源,因此我决定使用纯命令行Debian对项目代码进行编译,而在编译之前,还需要安装一下必要的工具才行。
下面是我从公司提供的Ubuntu虚拟机中找到的环境配置文件,粘贴如下,只需要一行行的粘贴运行即可。
apt-get update
apt-get install openssh-server openssh-client -y
apt-get install cmake make rpm2cpio gawk wget git-core diffstat zip unzip texinfo gcc-multilib build-essential chrpath socat cpio -y
apt-get install python python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping libsdl1.2-dev xterm libarchive-zip-perl -y
apt-get install git gcc python3-git python3-jinja2 libegl1-mesa pylint3 mesa-common-dev automake autoconf lftp subversion p7zip-full -y
后台运行虚拟机
由于我安装的是纯命令行版的虚拟机,对虚拟机的使用大部分时候是通过VSCode使用SSH连接,因此一直显示着的虚拟机运行界面对我来说就有点碍眼。尤其是在通过alt + tab切换软件视图时,切到虚拟机后,由于纯命令行界面,不识别alt + tab这个命令,只能通过鼠标切换,很是麻烦,因此决定将虚拟机置于后台运行。
-
进入VirtualBox的安装目录,在该目录下打开命令行窗口
-
运行命令:
.\VBoxManage.exe startvm Debian11 --type headless -
解释:
- 其中
Debian11是虚拟机的名称 - Headless模式是系统的一种配置模式。在该模式下,系统缺少了显示设备、键盘或鼠标。
- Headless模式针对在该模式下工作,尤其是服务器端程序开发者。因为服务器(如提供Web服务的主机)往往可能缺少前述设备,但又需要使用他们提供的功能,生成相应的数据,以提供给客户端(如浏览器所在的配有相关的显示设备、键盘和鼠标的主机)
- 其中
更多推荐




所有评论(0)