Debian
系统
允许以root用户登录操作系统
默认情况下debian是不允许以root用户登录的,只能以其他用户登录系统中,然后su到root用户下进行操作。
- 修改/etc/gdm3/daemon.conf文件,新增下面一行AllowRoot = true
[security]
AllowRoot = true
- 修改/etc/pam.d/gdm-password,注释掉下面内容
#auth required pam_succeed_if.so user != root quiet_success
- 然后重启(
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
apt install x-window-system-core gnome-core
root账户进入系统
- 修改/etc/gdm3/daemon.conf文件,在[security]下增加一行
AllowRoot = true
- 修改/etc/pam.d/gdm-password文件,注释掉
auth required pam_succeed_if.so user != root quiet_success
通过命令方式切换显示
在终端中,可以使用 chvt 命令切换 tty(需 root 权限):
sudo chvt 2 # 切换到 tty2
或使用 openvt 启动新进程到指定 tty:
sudo openvt -c 3 # 在 tty3 上启动新会话
查看当前 tty
在终端中运行以下命令查看当前所在的 tty:
tty
输出示例: /dev/tty1 表示当前位于 tty1
运行级别
方法一:(通过命令来切换)
1. 查看当前的运行级
systemctl get-default
2. 查看可供替换的运行级
systemctl list-units --type=target
3. 替换默认运行级
systemctl set-default multi-user.target (替换为多用户文本)
方法二:(创建软链接来替换)
ln -sf /lib/systemd/system/runlevel5.target /lib/systemd/system/default.target
SSH
开启 ssh
- 修改sudo /etc/ssh/sshd_config
#PermitRootLogin prohibit-password
- 修改为
PermitRootLogin yes
- 重启ssh
$ sudo service ssh restart
没有 ssh 服务 ?
$ sudo apt install openssh-server
$ sudo apt install openssh-client
$ sudo apt install ssh
允许以root身份通过ssh登录操作系统
- 修改/etc/ssh/sshd_config
#PermitRootLogin prohibit-password
- 修改为
PermitRootLogin yes
- 重启ssh即可
service sshd restart
或
/etc/init.d/ssh restart
网络
ip
静态ip
/etc/network/interfaces
auto ens34
iface ens34 inet static
address 0.0.0.0
netmask 0.0.0.0
gateway 0.0.0.0
防火墙
Debian 11 默认使用 nftables
# 查看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”。(这会保存当前用户的一些环境设定)
命令别名
自定义命令的方法有两种:
- 一种是通过~/.bashrc文件添加alias
- 另一种是在PATH变量目录下写脚本(~/bin)
$ alias la='ls -la'
现在,la
是 ls -al
的简写形式,并同样会以长列表形式列出所有的文件。
故障
dmesg -H -l err
# 错误提示
journalctl -u xxx.service --no-pager
包管理
/etc/apt/sources.list更换源地址
# 搜索软件包
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安装
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配置
# 查看transmission是否运行:
sudo service transmission-daemon status
# 在更改配置前,将进程停止,否则不能更改。
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地址白名单功能开启
注意事项:
- rpc-host-whitelist和rpc-whitelist的区别,一个是主机名,一个ip地址。
- rpc-host-whitelist,域名,允许使用通配符,比如".baidu.com","",默认是""。
- rpc-whitelist,ip地址,允许使用通配符,比如:"127.0.0.,192.168..", "127.0.0.1,192.168..*"默认是: "127.0.0.1"
更改配置之后,需要重新启动transmission-daemon。
sudo service transmission-daemon start
transmission-create
说明
// -h 帮助显示此帮助页并退出
// -p private允许此torrent仅与指定的跟踪器
// -o outfile<file>将生成的.torrent保存到此文件名
// -s piecesize<size in KiB>设置每个片段应该有多少KiB,覆盖优先违约
// -c 注释<comment>添加注释
// -t tracker<url>添加跟踪器的公告url
// -V 版本显示版本号并退出
# -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共享的目录
sudo mkdir -p /home/zhw/share
配置samba共享
sudo vim /etc/samba/smb.conf
无需身份验证
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
需要身份验证
- 将samba共享目录的组所有权设置为sambashare组:
sudo chgrp sambashare /home/zhw/share
- 创建samba共享用户,将smbzhw替换为要创建的samba共享用户:
# 我们在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
创建并设置用户
sudo smbpasswd -a smbzhw
New SMB password:
Retype new SMB password:
Added user smbzhw
使用以下命令设置密码后启用samba帐户:
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守护程序:
sudo systemctl restart nmbd.service
sudo systemctl restart smbd.service
使用windows客户端访问共享目录:
\\172.31.18.24\smbzhw
smbzhw
7966
>screen
screen 属于多重视窗管理程序,在制作大种子体积时会占用当前的shell,重开或者等待都很不方便。
apt install screen
基础操作:
创建一个Screen:
screen -S test1
保留Screen: 按住Ctrl+A+D,即可保留Screen
退出Screen:
exit
查看Screen:
screen -ls
恢复Screen:
screen -r test1 (or [id])
> mongodb
mongodb5 安装
- 导入 MongoDB 的 GPG 密钥和添加仓库源
# 安装依赖工具
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
- 安装 MongoDB 5.0
apt install -y mongodb-org
- 启动 MongoDB 服务
# 启动 MongoDB 服务
systemctl start mongod
# 设置 MongoDB 在系统启动时自动启动
systemctl enable mongod
# 检查 MongoDB 服务的运行状态(这是最关键的一步!)
systemctl status mongod
- 验证 MongoDB 是否正在监听端口
# 检查 MongoDB 默认的 27017 端口是否处于监听状态
sudo ss -tulpn | grep 27017
# 或者使用 netstat
sudo netstat -tulpn | grep mongod
- 连接数据库
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 备份
参数解释
--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 恢复
详情
--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