系统安装

4277 字
21 分钟
系统安装

系统安装#

[TOC]


2025年-12月-01日

今天正式开始学习oldboy老男孩教育课程,一切从0开始

  • 任何时候都==保持空杯心态==
  • 将自己之前学的知识都倒出去,只有这样才能更好的学习新知识
  • 不骄不躁,认真跟着老师的实验走,重新学一遍又如何
  • 一定要跟着老师的步骤,一步一步操作,不要跳步
  • 主打听话就可以了,你引以为傲的那些基础,掌握的很不牢靠
  • 你感觉自己会,实际上根本不行,好好沉淀!

vmware虚拟化软件#

  • 这个是从外到内,可以有多台虚拟机
Tip
  • “虚拟化”的欺骗行为,不是说你给虚拟机分 20G 硬盘,他就占那么多

    • 内存、硬盘、你分给虚拟机的时候随便分

    • 实际使用不会超过你的宿主机中的配置

  • 你虚拟机用多少,给你多少 —> 就是不会超过你分配的最大的资源

⚠️ 否则会立马,分配对应的磁盘空间,非常耗费空间

安装vmware#

Terminal window
"默认下一步"
⚠️ 不要安装在C盘
✅️ 点击许可证 --> 输入秘钥
vmware 17
JU090-6039P-08409-8J0QH-2YR7F
ZF3R0-FHED2-M80TY-8QYGC-NPKYF
FC7D0-D1YDL-M8DXZ-CYPZE-P2AY6

⚠️ 注意vmware安装完成后不要移动安装目录

通过是否拥有 ==vmnet8网卡== 来检查是否安装成功

vmnet8网卡#

  • 查看是否有vmnet8网卡,如果没有 ---> 说明安装失败❌
    • 后续未启用VMnet8会影响虚拟机网络的连接

⚠️ 即使是未连接也没有关系,只要有这一张网卡就行

Kylin V10安装#

Tip
  • 右边的限制,就是我们最高能使用的资源
Note

为什么我们用VMware安装 ==麒麟v10== (Kylin V10)的时候,安装版本选为Centos 7

  • VMware 官方未内置对银河麒麟的直接支持
  • VMware 的虚拟机创建向导中只列出了主流或广泛使用的操作系统,而银河麒麟属于国产操作系统,尚未被 VMware 官方列入支持列表
  • 银河麒麟 V10 基于 CentOS / RHEL 生态
    • 银河麒麟 V10(特别是服务器版)早期版本是基于 CentOS 7 / RHEL 7 的源码构建的
    • 因此,其内核版本、驱动模型、启动机制、文件系统结构等与 CentOS 7 高度相似
  • 合理选择安装版本可让 VMware:
    • 自动加载适配的虚拟硬件驱动
    • 合理分配默认资源(内存、磁盘 I/O 模式)
    • 避免因操作系统类型不匹配导致的兼容性问题(如无法识别磁盘、黑屏、卡死等)

image-20260620113708679
image-20260620113708679

CPU & 核心#

  • 下图为一个CPU & 4个核心
    • CPU比作工厂,把核心比作工人

image-20260620112831540
image-20260620112831540

这里相当于是,一个工厂里面有四个工人 —> 总共4个工人

Note

这里并没有涉及到运行内存

image-20260620113310715
image-20260620113310715

当然我们也可这样子配 —> 这样也是4个核心

image-20260620113236038|346
image-20260620113236038|346


具体步骤#

往下拉,还有两个工具 系统工具和Mac手册

Important

这个根据优先级,==自动连接==,就是相当于开机自启动

image-20260620153056744
image-20260620153056744


  • 刚开始我打开的时候挺懵的,为什么是这个样子呢???
    • 我还以为我配置安装有错误呢!

翻译后

  • ⚠️ 注意 选择顺序 有时候不同

Kylin 桌面版安装#

  • 软件选择安装

image-20260620152733201
image-20260620152733201

下面还有东西要安装

image-20260620152756924
image-20260620152756924

image-20260620152949617
image-20260620152949617

多用户,多任务#

image
image

image
image

📌 不管哪个终端切进去,操作的都是这一个系统,互不影响

切换终端的快捷键#

Terminal window
ctrl+alt+F3~F6 # 切命令行界面 --> 这些都是终端tty
'F1、F2是桌面'
ctrl+alt+(F1、F2) # 切回桌面

Ubuntu安装#

  • ==版本: 24.04==
    • 这里我们只说 不同的点

image-20260514131731202
image-20260514131731202

image-20260514131759230
image-20260514131759230

eth0#

  • 在Ubuntu安装启动时,在GRUB菜单中按’e’编辑启动项

  • 找到以linux开头的行,在末尾添加参数:

    • net.ifnames=0 biosdevname=0
  • 按 Ctrl+X 或 F10 继续启动安装

image-20260514133027506
image-20260514133027506

image-20260514131950126
image-20260514131950126

image-20260514132005208
image-20260514132005208

image-20260514132048208
image-20260514132048208

image-20260514132110009
image-20260514132110009

image-20260514132218211
image-20260514132218211

image-20260514133300382
image-20260514133300382

  • 这里来到网卡配置, 我们先把网络断开
    • 因为在安装过程中会去官方更新软件包, 速度非常慢

image-20260514133632702
image-20260514133632702

image-20260514133738894
image-20260514133738894

image-20260514133946634
image-20260514133946634

image-20260514134144299
image-20260514134144299

image-20260514134645702
image-20260514134645702

image-20260514134727553

image-20260514134755274
image-20260514134755274

image-20260514134914457
image-20260514134914457

image-20260514134943267
image-20260514134943267

image-20260514135100729
image-20260514135100729

image-20260514135114839
image-20260514135114839

image-20260514135403488
image-20260514135403488

image-20260514135437032
image-20260514135437032

image-20260514135512243
image-20260514135512243

image-20260514135537290
image-20260514135537290

image-20260514135659017
image-20260514135659017

image-20260514135714043
image-20260514135714043

image-20260514135829567
image-20260514135829567

image-20260514135957678
image-20260514135957678

image-20260514140100407
image-20260514140100407

Xshell连接#

Terminal window
[C:\~]$ ssh root@10.0.0.200
# 没有办法直接用root连接 <-- Ubuntu
[C:\~]$ ssh test@10.0.0.200
✅️ 可以通过test直接连上来!
Welcome to Ubuntu 24.04 LTS
System load: 0.0 Processes: 209
Usage of /: 32.3% of 18.53GB Users logged in: 1
Memory usage: 11% IPv4 address for eth0: 10.0.0.200
Swap usage: 0%
test@ubuntu:~$ whoami
test
'现在的用户是test'
test@ubuntu:~$ sudo su -
[sudo] password for test:
root@ubuntu:~#
root@ubuntu:~# whoami
root
✅️ 成功切换至root用户
1.但是每次都切换登录会不会太麻烦了点
2.Xshell有登陆的脚本的

image-20260514145303752
image-20260514145303752

image-20260514145324696
image-20260514145324696

Terminal window
test@ubuntu:~$ sudo su -
[sudo] password for test:
📌 '但每次连接时都需要输入密码'
1)修改sudo提权为vim编辑器
# 文件路径: /etc/sudoers
Defaults use_pty
'在它下面添加这一行!'
Defaults editor=/usr/bin/vim, env_editor
root@ubuntu:~# sed -i '/use_pty/a\Defaults editor=/usr/bin/vim, env_editor' /etc/sudoers
# visudo 修改编辑器为vim
2)所有用sudo命令的用户,都不需要使用密码
root@ubuntu:~# sed -i '/^%sudo/c\%sudo ALL=(ALL:ALL) ALL, NOPASSWD:ALL /etc/sudoers
# 以%sudo开头的行,全部替换为后面的内容
root@ubuntu:~# sed -n '/^%sudo/p' /etc/sudoers
%sudo ALL=(ALL:ALL) ALL, NOPASSWD:ALL
'完美修改!'
3)再次用Xshell测试登录
'双击选项卡,自动登录至Xshell'
test@ubuntu:~$ sudo su -
root@ubuntu:~#
# 无需密码直接登录进来了

⭐系统优化#

Terminal window
4)磁盘大小
root@ubuntu:~# ls
root@ubuntu:~# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 387M 1.6M 386M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 19G 6.0G "12G" 35% /
'我这一看根分区还剩12G,就赶紧分了点空间给它'
# 因为上面安装的时候 --> 我们分区用的是 逻辑卷LVM
5)逻辑卷扩容
root@ubuntu:~# vgdisplay
✅️ 查看卷组信息 --> 还有多少空闲空间
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size <38.00 GiB
PE Size 4.00 MiB
Total PE 9727
Alloc PE / Size 4863 / <19.00 GiB
Free PE / Size 4864 / 19.00 GiB
VG UUID ZOQclS-dI6E-Y4rs-MxKR-OeJE-Ipgg-bpVN3k
root@ubuntu:~# lvextend -L 30G -r /dev/mapper/ubuntu--vg-ubuntu--lv
✅️ 扩展逻辑卷 --> 扩展至30G
lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
# 将剩余的空间都给它
root@Ceph-201 ~# resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
# 让文件系统识别新空间 --> 使他立马生效
root@ubuntu:~# lvdisplay
✅️ 查看逻辑卷信息
--- Logical volume ---
LV Path /dev/ubuntu-vg/ubuntu-lv
.......
LV Size 30.00 GiB
'已经扩充至30G'
root@ubuntu:~# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 387M 1.6M 386M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 30G 6.0G "22G" 22% /
'现在可用剩余空间由 12G --> 22G'
6)PS1变量
root@ubuntu:~# cat >> /etc/profile <<EOF
# PS1变量
PS1="[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\] \W\[\e[0m\]]\\$ "
EOF
root@ubuntu:~# source /etc/profile
[root@ubuntu ~]$
============================
有问题❓⭐
1.两边的括号[ ], 给人的感觉就像在操作Centos一样!
2.Ubuntu ~/.bashrc 里自带 PS1 定义,会覆盖掉你在 /etc/profile 里设的值
# 因为.bashrc 后读取
⚠️ ~/.bashrc # 用户级变量文件 --> 只对当前用户生效
⚠️ /etc/profile # 系统系变量文件 --> 所有用户都生效
root@ubuntu:~# grep 'PS1' ~/.bashrc
[ -z "$PS1" ] && return
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
============================
# 把原来/etc/profile文件中的ps1变量删除掉
root@ubuntu:~# echo "PS1='\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\] \W\[\e[0m\]\$ '" >> ~/.bashrc
# 追加到最后一行
root@ubuntu:~# source ~/.bashrc
root@ubuntu ~$
'有bug --> 我登录的是root(#), 怎么提示符变为$'
✅️ root #,普通用户看 $
root@ubuntu ~$ tail -1 ~/.bashrc
PS1='xxx...\W\[\e[0m\]$ '
📌 丢了一个转义字符, 应该是 \$
'所以在 echo 或者 cat 的时候, \$ 前自行多加一个\转义字符'
PS1='xxx...\W\[\e[0m\]\\$ '
✅️ root@ubuntu ~# ✅️
7)软件源更换
root@ubuntu ~# cat /etc/apt/sources.list
'以前版本的位置'
# Ubuntu sources have moved to /etc/apt/sources.list.d/ubuntu.sources
'现在迁移了 --> sources.list.d/ubuntu.sources 子目录下'
root@ubuntu ~# ls /etc/apt/sources.list.d/ubuntu.sources
/etc/apt/sources.list.d/ubuntu.sources
root@ubuntu ~# cp /etc/apt/sources.list.d/ubuntu.sources{,.back}
'先备份'
root@ubuntu ~# ls /etc/apt/sources.list.d/ubuntu.sources*
/etc/apt/sources.list.d/ubuntu.sources
/etc/apt/sources.list.d/ubuntu.sources.back
📌 换清华源(Ubuntu 24.04 新格式)
"24.04 改用了 DEB822 格式"
root@ubuntu ~# cat /etc/apt/sources.list.d/ubuntu.sources
Types: deb
URIs: http://archive.ubuntu.com/ubuntu/
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Types: deb
URIs: http://security.ubuntu.com/ubuntu/
Suites: noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
'把URIs换成清华源的就行'
URIs: http://mirrors.tuna.tsinghua.edu.cn/ubuntu/
# 两条都换成一样的即可!
root@ubuntu ~# sed -i '/^URI/c\URIs: https://mirrors.tuna.tsinghua.edu.cn/ubuntu/' /etc/apt/sources.list.d/ubuntu.sources
root@ubuntu ~# apt update && apt upgrade -y
8)提高下载速度(小调优,不是核心)
# 文件需要手动创建
"放一些 apt 调优参数" --> 数字前缀 99 是为了最后加载,不会被系统自带的覆盖
root@ubuntu ~# cat > /etc/apt/apt.conf.d/99local << 'EOF'
# 允许同时下载多个包(并发下载)
# 默认是串行的(一个个下载)
Acquire::http::Pipeline-Depth "5";
# 同时建立多个连接
Acquire::Queue-Mode "access";
Acquire::Languages "none";
# 不用每次都下载翻译文件,省带宽
Acquire::http::No-Cache "false";
EOF
9)安装常用的软件包
root@ubuntu ~# apt-get install -y vim tree tar zip wget bash-completion lrzsz net-tools sysstat iotop iftop htop unzip netcat-openbsd nmap telnet bc psmisc apache2-utils dnsutils nethogs expect cowsay sl
'apt 或者是 apt-get 都是可以的'
root@ubuntu ~# cowsay "hhh"
_____
< hhh >
-----
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
10)字符优化(登录页面)
root@ubuntu ~# cat /etc/issue
Ubuntu 24.04 LTS \n \l
'把这两个文件里面的东西都清空掉!'
root@ubuntu ~# cat /etc/issue.net
Ubuntu 24.04 LTS
root@ubuntu ~# > /etc/issue && > /etc/issue.net
root@ubuntu ~# ls /etc/update-motd.d/
00-header 50-motd-news 91-contract-ua-esm-status 95-hwe-eol 98-reboot-required
10-help-text 85-fwupd 91-release-upgrad 97-overlayroot
50-landscape-sysinfo 90-updates-available 92-unattended-upgrade 98-fsck-at-reboot
'这些都是系统信息横幅'
📌 它们在您登录时显示,目的是提供系统状态、安全更新等信息
脚本名作用是否建议删除
00-header显示系统名、内核、时间等基础信息❌ 保留(通常很干净)
10-help-text显示帮助提示(如 To run a command as administrator...⚠️ 可删(纯文本,非广告)
50-motd-news核心广告源:显示 Ubuntu 新闻、Landscape、ESM 链接等✅ 强烈建议删除
85-fwupd显示固件更新状态(fwupd)⚠️ 可选删(非广告,但冗余)
90-updates-available显示可应用的更新数量(如 349 updates can be applied✅ 建议删除(您明确说“负载也不想要”)
91-contract-ua-esm-statusESM 广告:提示 ESM 订阅、pro 链接等✅ 必须删(您看到的 ESM Apps 就来自这里)
91-release-upgrade提示新版本升级(如 Noble → Oracular)⚠️ 可删(如果您不关心升级)
92-unattended-upgrades显示自动更新状态⚠️ 可删
95-hwe-eolHWE 内核生命周期提醒⚠️ 可删
97-overlayrootoverlayroot 状态(少见)⚠️ 可删
98-fsck-at-rebootfsck 检查提醒⚠️ 可删
98-reboot-required重启提醒(如内核更新后)⚠️ 可删(但实用,建议留或改)
Terminal window
root@ubuntu ~# ls /etc/update-motd.d/ | grep -v 00
10-help-text
50-landscape-sysinfo
50-motd-news
85-fwupd
90-updates-available
91-contract-ua-esm-status
91-release-upgrade
92-unattended-upgrades
95-hwe-eol
97-overlayroot
98-fsck-at-reboot
98-reboot-required
root@ubuntu ~# ls /etc/update-motd.d/ | grep -v 00 | xargs rm -rf
root@ubuntu ~# ls /etc/update-motd.d/
00-header 50-motd-news 91-contract-ua-esm-status 95-hwe-eol 98-reboot-required
10-help-text 85-fwupd 91-release-upgrad 97-overlayroot
50-landscape-sysinfo 90-updates-available 92-unattended-upgrade 98-fsck-at-reboot
'没有删除???'
✅️ 因为 ls 只输出文件名,不带路径
✅️ xargs rm -rf 在当前目录执行,而不是在 /etc/update-motd.d/ 里删
root@ubuntu ~# pwd
/root
# 当前路径并没有这些东西
root@ubuntu ~# cd /etc/update-motd.d/
root@ubuntu update-motd.d# ls | grep -v 00 | xargs rm -rf
root@ubuntu update-motd.d# ls
00-header
root@ubuntu update-motd.d# cat > /etc/update-motd.d/99-local << 'SCRIPT'
#!/bin/bash
cat << 'EOF'
(@) * (@) * (@)
: * (@) * (@) * .;
(@) * (@) * (@) * (@)
* ; * ; (@) * ; * :
;\ \ \ \| / / /;
\\ \ Y/ / /
`_\ |/ _' '
/ \\Y// \
( ,-}={-, )
\_//((\_/
//))(\
(/ ))
(/
EOF
SCRIPT
root@ubuntu update-motd.d# chmod +x 99-local
'重新登录终端 --> 自动显示'
11)ssh连接优化
root@ubuntu ~# cat >>/etc/ssh/sshd_config<<EOF
UseDNS no
# 相当于网络命令的-n选项,这个就是说不解析为主机名,直接成IP地址.
GSSAPIAuthentication no
# 关闭GSS认证.
EOF
root@ubuntu ~# systemctl restart ssh.service
# 不是sshd,就是ssh服务,没有d
12)时间优化,同步
# 时区,时钟
root@ubuntu ~# timedatectl status
Local time: Thu 2026-05-14 13:12:15 UTC ❌️ 本地时间也错误
Universal time: Thu 2026-05-14 13:12:15 UTC
RTC time: Thu 2026-05-14 13:12:15
Time zone: Etc/UTC (UTC, +0000) ❌️ 时区错误
root@ubuntu ~# timedatectl set-timezone Asia/Shanghai
root@ubuntu ~# timedatectl status
Local time: Thu 2026-05-14 21:15:14 CST
Universal time: Thu 2026-05-14 13:15:14 UTC
RTC time: Thu 2026-05-14 13:15:14
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes --> ✅️ 系统时钟已经成功与时间服务器同步过
NTP service: active --> ✅️ 负责时间同步的 NTP 服务正在运行中
RTC in local TZ: no
'Ubuntu 系统通常使用 systemd-timesyncd 服务来进行轻量级的时间同步'
13)字符集就用这个英文的就行了
root@ubuntu ~# echo $LANG
en_US.UTF-8
14)SElinux
"Ubuntu 默认用 AppArmor,不是 SELinux"
root@ubuntu ~# systemctl status apparmor
Active: active (exited) enabled
# 关闭 AppArmor --> 同时禁止开机自启
root@ubuntu ~# systemctl disable --now apparmor
root@ubuntu ~# systemctl status apparmor
Active: inactive (dead) disabled
15)防火墙
"Ubuntu 不用 firewalld(那是 CentOS/RHEL 的),Ubuntu 的防火墙叫 ufw(Uncomplicated Firewal)"
root@ubuntu ~# systemctl status ufw
Active: active (exited) enabled;
# server版默认是运行着的ufw的
root@ubuntu ~# systemctl disable --now ufw
Synchronizing state of ufw.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install disable ufw
Removed "/etc/systemd/system/multi-user.target.wants/ufw.service".
root@ubuntu ~# systemctl status ufw
Active: inactive (dead) disabled
'安装持久化工具 --> iptables'
root@ubuntu ~# apt install iptables-persistent -y
# 中间有弹窗,yes就行
16)允许root登录
#PermitRootLogin prohibit-password
1.Ubuntu 默认是 prohibit-password(禁止 root 密码登录)
# 即使被注释了 --> 默认也是禁止root密码登录的
2.你必须在配置里显式写 PermitRootLogin yes 才能覆盖
3.必须重启 ssh 服务!
root@ubuntu ~# echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
root@ubuntu ~# echo 'root:1' | sudo chpasswd
'解锁root + 设置密码'
root@ubuntu ~# systemctl restart ssh
17)文件描述符
echo "* - nofile 65535" >> /etc/security/limits.conf
# 在Rocky_Linux中添加完直接就生效了
==============================
* - nofile 65535
# - 表示同时设置 soft 和 hard limit,但某些 PAM 版本对此支持不一致
# 在 Ubuntu 上, * 通配符不匹配 root 用户, 很多服务(尤其是 systemd 管理的)不受 limits.conf 直接控制
root@ubuntu ~# cat >> /etc/security/limits.conf << 'EOF'
* soft nofile 65535
* hard nofile 65535
root soft nofile 65535
root hard nofile 65535
EOF
# Ubuntu 的 PAM 默认没有启用 pam_limits.so
root@ubuntu ~# echo "session required pam_limits.so" >> /etc/pam.d/common-session
root@ubuntu ~# echo "session required pam_limits.so" >> /etc/pam.d/common-session-noninteractive
# 手动添加
"Systemd 服务的限制(高频踩坑点)"
# 如果你的进程是通过 systemd 启动的(SSH、Nginx、Docker 等),limits.conf 完全不生效。systemd 有自己的限制机制
'设置全局 systemd 默认限制:'
root@ubuntu ~# echo "DefaultLimitNOFILE=65535" >> /etc/systemd/system.conf
root@ubuntu ~# echo "DefaultLimitNOFILE=65535" >> /etc/systemd/user.conf
root@ubuntu ~# ulimit -n
1024
root@ubuntu ~# reboot
# 重启系统生效
root@ubuntu ~# ulimit -n
65535

bash_config.sh#

#!/bin/bash
# author=Jiuzhao
sed -i '/use_pty/a\Defaults editor=/usr/bin/vim, env_editor' /etc/sudoers
# visudo 修改编辑器为vim
sed -i '/^%sudo/c\%sudo ALL=(ALL:ALL) ALL,NOPASSWD:ALL' /etc/sudoers
# 以%sudo开头的行,全部替换为后面的内容
# 所有用sudo命令的用户,都不需要使用密码
lvextend -L 30G -r /dev/mapper/ubuntu--vg-ubuntu--lv > /dev/null
# 扩容逻辑卷
# PS1 变量
cat >> ~/.bashrc <<EOF
# 我的PS1变量
PS1='\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\] \W\[\e[0m\]\\$ '
EOF
source ~/.bashrc
# 更换软件源
sed -i '/^URI/c\URIs: http://mirrors.tuna.tsinghua.edu.cn/ubuntu/' /etc/apt/sources.list.d/ubuntu.sources
apt-get update > /dev/null
# 优化下载速度(小调优,不是核心)
cat > /etc/apt/apt.conf.d/99local << 'EOF'
# 允许同时下载多个包(并发下载)
# 默认是串行的(一个个下载)
Acquire::http::Pipeline-Depth "5";
# 同时建立多个连接
Acquire::Queue-Mode "access";
Acquire::Languages "none";
# 不用每次都下载翻译文件,省带宽
Acquire::http::No-Cache "false";
EOF
# 安装常用的软件包
apt-get install -y vim tree wget bash-completion lrzsz net-tools sysstat iotop iftop htop unzip netcat-openbsd nmap telnet bc psmisc apache2-utils dnsutils sshpass nethogs expect cowsay sl
# 其他优化
> /etc/issue && > /etc/issue.net
# 字符花
cd /etc/update-motd.d/
ls | grep -v 00 | xargs rm -rf
cat > /etc/update-motd.d/99-local << 'SCRIPT'
#!/bin/bash
cat << 'EOF'
(@) * (@) * (@)
: * (@) * (@) * .;
(@) * (@) * (@) * (@)
* ; * ; (@) * ; * :
;\ \ \ \| / / /;
\\ \ Y/ / /
`_\ |/ _' '
/ \\Y// \
( ,-}={-, )
\_//((\_/
//))(\
(/ ))
(/
EOF
SCRIPT
chmod +x 99-local
# 赋权 --> 返回目录
cd -
# ssh连接优化
cat >>/etc/ssh/sshd_config<<EOF
UseDNS no
# 相当于网络命令的-n选项,这个就是说不解析为主机名,直接成IP地址.
GSSAPIAuthentication no
# 关闭GSS认证.
EOF
systemctl restart ssh.service
# 调整时区
timedatectl set-timezone Asia/Shanghai
# 类似于SElinux
systemctl disable --now apparmor &> /dev/null
# 关闭防火墙
systemctl disable --now ufw &> /dev/null
# 安装Iptables持久化工具
# 默认有弹窗
# 防止 debconf 交互
export DEBIAN_FRONTEND=noninteractive
debconf-set-selections << EOF
iptables-persistent iptables-persistent/autosave_v4 boolean true
iptables-persistent iptables-persistent/autosave_v6 boolean true
EOF
# 安装(不会卡住)
apt-get install -y iptables-persistent
# 开机自启
# systemctl enable --now iptables.service
systemctl daemon-reload
# ssh允许root登录
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
echo 'root:1' | sudo chpasswd
systemctl restart ssh
# 文件描述符
# 分开软硬限制
cat >> /etc/security/limits.conf << 'EOF'
* soft nofile 65535
* hard nofile 65535
root soft nofile 65535
root hard nofile 65535
EOF
# Ubuntu 的 PAM 默认没有启用 pam_limits.so
echo "session required pam_limits.so" >> /etc/pam.d/common-session
echo "session required pam_limits.so" >> /etc/pam.d/common-session-noninteractive
# 手动添加
# Systemd 服务的限制 --> 有些服务不受 limits.conf 直接控制
echo "DefaultLimitNOFILE=65535" >> /etc/systemd/system.conf
echo "DefaultLimitNOFILE=65535" >> /etc/systemd/user.conf
reboot
# 重启

change_host_ip.sh#

#!/bin/bash
#author: jiuzhao
#desc: change ip and hostname
#version: v1.0
[ $# -ne 2 ] && {
echo "Usage: $0 <hostname> <new_ip>"
echo "Example: $0 web01 192.168.1.200"
exit 1
}
# 获取IP地址的最后一段
# 例如192.168.1.200获取200,因为两个网卡都要进行修改
ip=$(hostname -I | awk '{print $1}' | awk -F. '{print $NF}')
# $NF最后一列
# -F. 以.为分隔符
new_ip=$(echo $2 | awk -F. '{print $NF}')
# $2是我们刚才输入进去的IP地址
# 新主机名
new_hostname=$1
# 修改IP(假设使用ifcfg-eth0)
sed -i "s#10.0.0.$ip#10.0.0.$new_ip#g" /etc/netplan/50-cloud-init.yaml
sed -i "s#172.31.128.$ip#172.31.128.$new_ip#g" /etc/netplan/50-cloud-init.yaml
# 修改主机名
hostnamectl hostname $new_hostname
# ubuntu中可以不要set-hostname --> 优化为hostname
# 重启网络
netplan apply
echo "hostname changed to $new_hostname IP changed to $2 "

虚拟机使用#

挂起#

Tip

✅️ “在不需要长期关机的情况下,建议优先使用 挂起(Suspend) 而非 关闭电源(Power Off),以保留当前运行状态并提高效率”

挂起就是把内存状态(以及其他运行时状态)写入磁盘,以便后续恢复

Note

⚠️ 同一个虚拟机,只能在一个页面进行运行

小技巧#

移除or删除#

  • 移除不是真正的删除
  • 右键->管理->从磁盘中删除

💡 不小心移除的虚拟机可以使用打开或者扫描功能

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

系统安装
https://www.kpyun.fun/posts/basics/core/core01/
作者
久棹
发布于
2025-07-15
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
久棹
只要胆子大,天天寒暑假!
公告
欢迎来到久棹的技术小站!本站专注 Linux 运维学习笔记分享,如有问题欢迎交流探讨 🎉
分类
标签
站点统计
文章
98
分类
11
标签
203
总字数
244,453
运行时长
0
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.13.5
文章许可
CC BY-NC-SA 4.0

文章目录