Skip to content

Debian

系统

允许以root用户登录操作系统

默认情况下debian是不允许以root用户登录的,只能以其他用户登录系统中,然后su到root用户下进行操作。

  1. 修改/etc/gdm3/daemon.conf文件,新增下面一行AllowRoot = true
bash
[security]
AllowRoot = true
  1. 修改/etc/pam.d/gdm-password,注释掉下面内容
bash
#auth required pam_succeed_if.so user != root quiet_success
  1. 然后重启(reboot),就可以使用root用户登录操作系统了。

显示

文本式终端(TTY)

按下 Ctrl + Alt + F1 到 F6 切换到不同的虚拟终端(tty1 到 tty6)。

Ctrl + Alt + F1 → 切换到 tty1

Ctrl + Alt + F2 → 切换到 tty2

...

Ctrl + Alt + F6 → 切换到 tty6

图形界面(GUI)

如果系统启用了图形界面(如 GNOME、KDE),通常会在 tty1 或 tty7 上运行。

从图形界面切换到虚拟终端:Ctrl + Alt + F2~F6

返回图形界面:Ctrl + Alt + F1 或 F7(取决于配置,部分系统可能为 F7 或 F8)。

安装GNOME

bash
apt install x-window-system-core gnome-core

root账户进入系统

  1. 修改/etc/gdm3/daemon.conf文件,在[security]下增加一行AllowRoot = true
  2. 修改/etc/pam.d/gdm-password文件,注释掉auth required pam_succeed_if.so user != root quiet_success

通过命令方式切换显示

在终端中,可以使用 chvt 命令切换 tty(需 root 权限):

bash
sudo chvt 2  # 切换到 tty2

或使用 openvt 启动新进程到指定 tty:

bash
sudo openvt -c 3  # 在 tty3 上启动新会话

查看当前 tty

在终端中运行以下命令查看当前所在的 tty:

bash
tty

输出示例: /dev/tty1 表示当前位于 tty1

运行级别

方法一:(通过命令来切换)

bash
1. 查看当前的运行级
systemctl get-default

2. 查看可供替换的运行级
systemctl list-units --type=target

3. 替换默认运行级
systemctl set-default multi-user.target (替换为多用户文本)

方法二:(创建软链接来替换)

bash
ln -sf /lib/systemd/system/runlevel5.target /lib/systemd/system/default.target

SSH

开启 ssh

  1. 修改sudo /etc/ssh/sshd_config
bash
#PermitRootLogin prohibit-password
  1. 修改为
bash
PermitRootLogin yes
  1. 重启ssh
bash
$ sudo service ssh restart

没有 ssh 服务 ?

bash
$ sudo apt install openssh-server
$ sudo apt install openssh-client
$ sudo apt install ssh

允许以root身份通过ssh登录操作系统

  1. 修改/etc/ssh/sshd_config
bash
#PermitRootLogin prohibit-password
  1. 修改为
bash
PermitRootLogin yes
  1. 重启ssh即可
bash
service sshd restart

bash
/etc/init.d/ssh restart

网络

ip

静态ip

​/etc/network/interfaces

bash
auto ens34
iface ens34 inet static
address 0.0.0.0
netmask 0.0.0.0
gateway 0.0.0.0

防火墙

Debian 11 默认使用 nftables

bash
# 查看UFW状态
sudo ufw status

# 如果状态是 active(活动),并且没有允许SSH,需要放行
sudo ufw allow ssh
# 或者直接放行22端口
sudo ufw allow 22/tcp

# 如果只是想快速测试是否为防火墙问题,可以临时关闭UFW(生产环境慎用)
sudo ufw disable

sudo

​在任意用户的shell提示符下输入“su -l”。(这不会保存当前用户的环境设定) ​ 在任意用户的shell提示符下输入“su”。(这会保存当前用户的一些环境设定)

命令别名

自定义命令的方法有两种:

  1. 一种是通过~/.bashrc文件添加alias
  2. 另一种是在PATH变量目录下写脚本(~/bin)
bash
$ alias la='ls -la'

现在,lals -al 的简写形式,并同样会以长列表形式列出所有的文件。

故障

bash
dmesg -H -l err

# 错误提示
journalctl -u xxx.service --no-pager

包管理

/etc/apt/sources.list更换源地址

bash
# 搜索软件包
apt search [packagename]

# 删除配置文件
apt purge [packagename]
apt autoremove

# 修复依赖关系
apt-get install -f

# 查看安装的位置
dpkg -L [packagename]

# 只检查,不更新(已安装的软件包是否有可用的更新,给出汇总报告)
apt update

# 更新已安装的软件包
sudo apt upgrade [packagename]

# 进行安装deb文件
dpkg -i deb 文件名
# 查看已经安装的软件
dpkg -l
# 卸载已安装包
dpkg -r [packagename]

应用软件

>transmission

transmission安装

bash
sudo apt-get install transmission-daemon

安装过程中会顺带把transmission-cli也安装上,所以安装完毕后系统会多出如下一些命令行工具。

transmission-cli: 独立的命令行客户端。

transmission-create: 用来建立.torrent种子文件的命令行工具。

transmission-daemon: 后台守护程序。

transmission-edit: 用来修改.torrent种子文件的announce URL。

transmission-remote: 控制daemon的程序。

transmission-show:查看.torrent文件的信息。

transmission配置

bash
# 查看transmission是否运行:
sudo service transmission-daemon status
bash
# 在更改配置前,将进程停止,否则不能更改。
sudo service transmission-daemon stop

配置文件在/etc/transmission-daemon/settings.json进行更改。

主要配置内容

"download-dir": "/mnt/sda6/bt-download" #下载目录的绝对路径,根据自己的硬盘情况来设定

"incomplete-dir": "/mnt/sda6/bt-temp" #临时文件路径

"rpc-authentication-required": true #启用rpc验证

"rpc-host-whitelist":"localhost" #这是主机名称白名单,比如localhost、www.baidu.com等

"rpc-host-whitelist-enabled":true #主机名白名单开启

"rpc-bind-address": "0.0.0.0" #允许任何IP通过RPC协议访问

"rpc-enabled": true #允许通过RPC访问

"rpc-password": "123456" #RPC验证密码(保存并启动后daemon会计算并替换为HASH值以增加安全性)

"rpc-port": 9091 #RPC端口

"rpc-username": "user" #RPC验证用户名

"rpc-whitelist": "*" #RPC访问ip地址白名单

"rpc-whitelist-enabled": true #RPC访问ip地址白名单功能开启

注意事项:

  1. rpc-host-whitelist和rpc-whitelist的区别,一个是主机名,一个ip地址。
  2. rpc-host-whitelist,域名,允许使用通配符,比如".baidu.com","",默认是""。
  3. rpc-whitelist,ip地址,允许使用通配符,比如:"127.0.0.,192.168..", "127.0.0.1,192.168..*"默认是: "127.0.0.1"

更改配置之后,需要重新启动transmission-daemon。

bash
sudo service transmission-daemon start

transmission-create

说明
js
// -h	帮助显示此帮助页并退出

// -p	private允许此torrent仅与指定的跟踪器

// -o	outfile<file>将生成的.torrent保存到此文件名

// -s	piecesize<size in KiB>设置每个片段应该有多少KiB,覆盖优先违约

// -c	注释<comment>添加注释

// -t	tracker<url>添加跟踪器的公告url

// -V	版本显示版本号并退出
bash
# -p 指定的私有种子 -o 输出目录 -t pt的tracker -s 对齐方式 源文件
transmission-create -p -o /mnt/torrent/1.torrent -t https://tracker.m-team.cc/announce.php -s 4096 /mnt/downloads2/ultraman

>samba

samba使用 /etc/samba/smb.conf 中的配置文件,如果更改此配置文件,则在重新启动samba守护程序之前更改不会生效。

创建samba共享的目录

bash
sudo mkdir -p /home/zhw/share

配置samba共享

bash
sudo vim /etc/samba/smb.conf
无需身份验证
bash
sudo chmod 777 /home/zhw/share

提示

[Docs]

path = /home/zhw/share

writable = yes

guest ok = yes

guest only = yes

create mode = 0777

directory mode = 0777

需要身份验证
  1. 将samba共享目录的组所有权设置为sambashare组:
bash
sudo chgrp sambashare /home/zhw/share
  1. 创建samba共享用户,将smbzhw替换为要创建的samba共享用户:
bash
# 我们在samba共享父目录中创建了一个用户的主目录,并将所有权设置为samba共享组,让我们创建另一个用户:
sudo useradd -M -d /home/zhw/share/smbzhw -s /usr/sbin/nologin -G sambashare smbzhw

sudo mkdir /home/zhw/share/smbzhw

sudo chown smbzhw:sambashare /home/zhw/share/smbzhw

sudo chmod 2770 /home/zhw/share/smbzhw

创建并设置用户

bash
sudo smbpasswd -a smbzhw
	
New SMB password:

Retype new SMB password:

Added user smbzhw

使用以下命令设置密码后启用samba帐户:

bash
sudo smbpasswd -e smbzhw

Enabled user smbzhw.

配置安全Samba共享:

提示

[smbzhw]

path = /home/zhw/share/smbzhw

read only = no

browseable = yes

force create mode = 0660

force directory mode = 2770

valid users = @smbzhw @sambashare

[smbadmin]

path = /home/zhw/share/smbadmin

read only = no

browseable = yes

force create mode = 0660

force directory mode = 2770

valid users = @sambashare @smbadmin

进行更改后重新启动samba守护程序:

bash
sudo systemctl restart nmbd.service
	
sudo systemctl restart smbd.service

使用windows客户端访问共享目录:

\\172.31.18.24\smbzhw

smbzhw

7966

>screen

screen 属于多重视窗管理程序,在制作大种子体积时会占用当前的shell,重开或者等待都很不方便。

bash
apt install screen

基础操作:

创建一个Screen:

bash
screen -S test1

保留Screen: 按住Ctrl+A+D,即可保留Screen

退出Screen:

bash
exit

查看Screen:

bash
screen -ls

恢复Screen:

screen -r test1 (or [id])

> mongodb

mongodb5 安装

  1. 导入 MongoDB 的 GPG 密钥和添加仓库源
bash
# 安装依赖工具
apt install -y gnupg curl

# 导入 MongoDB 的 GPG 密钥
curl -fsSL https://www.mongodb.org/static/pgp/server-5.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb.gpg

# 为 Debian 11 (Bullseye) 创建 MongoDB 5.0 的源列表文件
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb.gpg ] https://repo.mongodb.org/apt/debian bullseye/mongodb-org/5.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

# 更新本地软件包索引
apt update
  1. 安装 MongoDB 5.0
bash
apt install -y mongodb-org
  1. 启动 MongoDB 服务
bash
# 启动 MongoDB 服务
systemctl start mongod

# 设置 MongoDB 在系统启动时自动启动
systemctl enable mongod

# 检查 MongoDB 服务的运行状态(这是最关键的一步!)
systemctl status mongod
  1. 验证 MongoDB 是否正在监听端口
bash
# 检查 MongoDB 默认的 27017 端口是否处于监听状态
sudo ss -tulpn | grep 27017
# 或者使用 netstat
sudo netstat -tulpn | grep mongod
  1. 连接数据库
bash
mongo

配置数据库

使用管理员

use admin

您将切换到 DB 主目录。编写以下命令添加一个用户来创建用户,用户名是“mongoAdmin”,密码是“abc123”,你可以相应地更改用户名和密码:

 db.createUser({
  	user: "dxData",
  	pwd:  "Numb8520",
 	roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase"  ]
 })


// 超级管理员
db.createUser({
	user:"root",
	pwd:"Numb9870",
	roles:[{role:"root",db:"admin"}]
})
 
 输出显示用户已成功添加。完成后键入“quit()”退出 MongoDB 环境。

要启用 MongoDB 的安全性,请打开 MongoDB 的配置文件。

sudo nano /etc/mongod.conf

找出Security,通过删除“#”取消注释并在它旁边写一行。

authorization: enabled

sudo systemctl restart mongod

要验证用户是否已添加,我们将运行以下命令,将命令中的“mongoAdmin”更改为您的用户名,执行后会要求输入密码,在我们的例子中输入密码“abc123”。

mongo -u mongoAdmin -p --authenticationDatabase admin

远程访问 Linux 服务器中的MongoDB 数据库

允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0 bind 0.0.0.0

mongodump 备份

参数解释
js
--host <hostname><:port>, -h <hostname><:port>  # 指定备份的主机ip和端口号,默认值localhost:27017

--port # 指定端口号 默认27017
 
--username <username>, -u <username> # 指定用户名

--password <password>, -p <password> # 指定密码

--authenticationDatabase <dbname> # 指定认证的数据库

--authenticationMechanism <name> # 指定认证的算法 ,默认值 SCRAM-SHA-1

--db <database>, -d <database> # 指定备份的数据库,未指定的话,备份所有的数据库,但不包含local库

--collection <collection>, -c <collection> # 指定备份的集合,未指定则备份指定库中的所有集合。

--query <json>, -q <json>  # 指定 json 作为查询条件。来备份我们过滤后的数据。

--queryFile <path>  # 指定 json 文档路径,以该文档的内容作为查询条件,来备份我们过滤后的数据。

--quit # 通过抑制 MongoDB的复制,连接等活动,来实现备份。

--gzip  # 开启压缩,3.2版本后可以使用,输出为文件的话会带有后缀.gz

--out <path>, -o <path>  # 输出的目录路径
 
--repir # 修复数据时使用 下面有详细介绍

--oplog # mongodump 会将 mongodump 执行期间的 oplog 日志 输出到文件 oplog.bson,这就意味着从备份开始到备份结束的数据操作我们都可以记录下来。

--archive <file> # 输出到单个存档文件或者是直接输出。
 
--dumpDbUsersAndRoles # 只有在 使用 --db 时才适用,备份数据库的包含的用户和角色。

--excludeCollection string # 排除指定的集合,如果要排除多个,使用多个--excludeCollection 

--numParallelCollections int, -j int # 并行导出的集合数,默认为4
 
--ssl  # 指定 TLS/SSL 协议

--sslCAFile filename # 指定认证文件名

--sslPEMKeyFile <filename>

--sslPEMKeyPassword <value>

--sslCRLFile <filename>

--sslAllowInvalidCertificates

--sslAllowInvalidHostnames

--sslFIPSMode

自用备份

mongodump -h 127.0.0.1 --port 27017 --authenticationDatabase admin -d Print -u='admin' -p='123456' -o ./backup/
mongodump -h 192.168.0.2 --port 27017 --authenticationDatabase admin -d DongXiang -u="root" -p="Numb9870" -o ./backup/

mongorestore 恢复

详情
js
--help # 查看帮助

--quiet # 通过抑制 MongoDB的复制,连接等活动,来实现数据恢复。

--host <hostname><:port>, -h <hostname><:port>  # 指定恢复的主机ip和端口号,默认值localhost:27017

--port # 指定端口号 默认27017

--username <username>, -u <username> # 指定用户名

--password <password>, -p <password> # 指定密码

--authenticationDatabase <dbname> # 指定认证的数据库

--authenticationMechanism <name> # 指定认证的算法 ,默认值 SCRAM-SHA-1

--objcheck # 开启验证,验证还原操作,确保没有无效的文档插入数据库。会有较小的性能影响

--oplogReplay # 恢复备份数据并将 mongodump 执行期间的操作(记录在导出的日志)恢复。

--oplogLimit  # 指定恢复

--oplogFile # 指定 Oplog 路径

--keepIndexVersion # 阻止mongorestore在还原过程中将索引升级到最新版本。

--restoreDbUsersAndRoles # 还原指定的数据库用户和角色。

--maintainInsertionOrder # 默认值为False,如果为 True,mongorestore 将按照输入源的文档顺序插入,否则是 随机执行插入。

--numParallelCollections int, -j int # 指定并行恢复的集合数。

--numInsertionWorkersPerCollection int # 默认值为 1,指定每个集合恢复的并发数,大数据量导入增加该值可提高 恢复速度。

--gzip # 从压缩文档中 恢复。

--archive # 从归档文件中恢复。

--dir # 指定还原数据储存目录。

-d,--db:代表连接的数据库;

-c,--collection:代表连接数据库中的集合;

-o, --out:代表导出的文件输出目录;

--drop导入前删除数据库中集合;

自用恢复

mongorestore --authenticationDatabase admin -u="root" -p="Numb9870" -d Print ./Print

Released under the MIT License.