33、Linux 用户初始化配置与桌面系统解析

Linux 用户初始化配置与桌面系统解析

1. 用户默认配置

1.1 创建初始化文件

创建新用户初始化文件和选择默认配置的最佳方式是在系统中使用新测试用户进行实验。创建一个家目录为空的测试用户,避免将自己的配置文件复制到该测试用户的目录,要从零开始创建新的初始化文件。当你认为初始化配置可行后,以各种可能的方式(如在控制台、远程登录等)登录该测试用户,进行尽可能多的测试,包括测试窗口系统的操作和手册页面。若对该测试用户满意,可复制其初始化文件创建第二个测试用户。若一切正常,就得到了一套可分发给新用户的新配置文件。

1.2 默认 Shell

对于 Linux 系统中的任何新用户,默认 Shell 应选择 bash,原因如下:
- 用户使用的 Shell 与创建脚本时使用的一致(例如,csh 是出了名的不适合用于脚本编写,不要使用它)。
- bash 是 Linux 系统的标准 Shell。
- bash 使用 GNU readline,其界面与许多其他工具相同。
- bash 能对 I/O 重定向和文件句柄提供适当且易于理解的控制。

不过,许多 Unix 经验丰富的用户仍使用 csh 和 tcsh 等 Shell,因为他们不愿改变。如果你没有特别偏好,建议选择 bash 作为新用户的默认 Shell,用户可使用 chsh 命令更改自己的 Shell 以满足个人偏好。此外,还有其他一些 Shell(如 rc、ksh、zsh、es 等),其中 zsh 和 fish 有时在寻找替代 Shell 的新用户中很受欢迎,但有些 Shell 不适合初学者。

1.3 默认编辑器

在传统系统中,默认编辑器应为 vi 或 emacs,因为几乎所有 Unix 系统都有这两个编辑器,能为新用户减少长期使用中的问题。不过,Linux 发行版通常将 nano 配置为默认编辑器,因为它对初学者更友好。和 Shell 初始化文件一样,应避免使用大的编辑器初始化文件。在 .exrc 文件中添加一个小的 set showmatch 配置不会有问题,但要避免使用会显著改变编辑器行为或外观的配置,如 showmode 、自动缩进和外部边距等。

1.4 默认分页器

将环境变量 PAGER 默认设置为 less 是完全合理的。

1.5 初始化文件的陷阱

在初始化文件中应避免以下操作:
- 不要在 Shell 初始化文件中放置任何图形命令。
- 不要在 Shell 初始化文件中定义环境变量 DISPLAY 。
- 不要在 Shell 初始化文件中定义终端类型。
- 不要在默认初始化文件中过度节省描述性注释。
- 不要在初始化文件中执行在标准输出显示信息的命令。
- 永远不要在 Shell 初始化文件中定义 LD_LIBRARY_PATH 。

2. Linux 桌面系统组件

2.1 桌面系统概述

Linux 桌面系统具有很大的灵活性,用户体验大多来自应用程序或应用程序构建块。如果不喜欢某个应用程序,通常可以找到替代方案;如果所需的应用程序不存在,也可以自己编写。Linux 桌面系统没有像存储和网络那样明显的层次结构,每个组件执行特定任务,并在需要时与其他组件通信。部分组件共享图形工具包库等通用构建块,可将这些构建块视为简单的抽象层。

2.2 桌面组件分析

2.2.1 X Window 系统

X Window 系统是大多数桌面背后的核心基础设施,其基础发行版包括 X 服务器、客户端支持库和客户端。随着 GNOME 和 KDE 等桌面环境的出现,X 发行版的功能发生了变化,目前更侧重于管理渲染和输入设备的主服务器以及简化的客户端库。

X 服务器在系统中很容易识别,通常名为 X ,在进程列表中可看到它以多种选项运行,例如:

/usr/bin/X :0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch

其中 :0 称为显示(display),代表通过通用键盘和/或鼠标访问的一个或多个监视器。通常,显示对应于连接到计算机的单个监视器,但也可以在同一显示上连接多个监视器。在使用 X 会话时,环境变量 DISPLAY 会配置为该显示的标识符。

在 Linux 中,X 服务器在虚拟终端上运行,上述示例中的 vt7 表示服务器指定在 /dev/tty7 上运行(通常服务器从第一个可用的虚拟终端开始)。可以在 Linux 上同时运行多个 X 服务器,但每个服务器需要唯一的显示标识符,可使用 Ctrl - Alt - Fn 键或 chvt 命令在服务器之间切换。

2.2.2 显示管理器

通常不会使用命令行启动 X 服务器,因为仅启动服务器不会定义要在其上运行的客户端,启动后只会得到一个空白屏幕。最常见的启动 X 服务器的方式是通过显示管理器,它会启动服务器并在屏幕上显示登录框。登录后,显示管理器会启动一组客户端,如窗口管理器和文件管理器,以便用户开始使用计算机。

常见的显示管理器有 gdm (用于 GNOME)和 kdm (用于 KDE),上述 X 服务器调用参数中的 lightdm 是一个多平台显示管理器,可启动 GNOME 或 KDE 会话。若想从虚拟控制台启动 X 会话而不使用显示管理器,可执行 startx 或 xinit 命令,但得到的会话可能很简单,与使用显示管理器得到的会话不同,因为其功能和初始化文件不同。

2.2.3 网络透明性

X 的一个特性是网络透明性,客户端通过协议与服务器通信,因此可以直接通过网络运行连接到不同计算机上运行的服务器的客户端,X 服务器监听 6000 端口以等待 TCP 连接。连接到该端口的客户端可以进行身份验证,然后向服务器发送窗口。但这种方法通常不提供加密,不安全。目前大多数发行版通过服务器的 -nolisten tcp 选项禁用 X 服务器的网络监听。不过,仍可使用 SSH 隧道从远程计算机运行 X 客户端,将 X 服务器的 Unix 域套接字连接到远程计算机的套接字。

2.3 探索 X 客户端

虽然人们通常不会从命令行操作图形用户界面,但有许多实用工具可用于探索 X Window 系统的各个部分,特别是可以在客户端运行时对其进行检查。

2.3.1 xwininfo 工具

xwininfo 是最简单的工具之一,无参数运行时,它会提示你点击一个窗口:

$ xwininfo
xwininfo: Please select the window about which you
          would like information by clicking the
          mouse in that window.

点击后,会显示该窗口的信息列表,如位置和大小:

xwininfo: Window id: 0x5400024 "xterm"
  Absolute upper-left X: 1075
  Absolute upper-left Y: 594

注意窗口的 ID,X 服务器和窗口管理器使用该标识符来监控窗口。可使用 xlsclients -l 命令获取所有窗口 ID 和客户端的列表。

2.3.2 X 事件

X 客户端通过事件系统获取输入数据和服务器状态的其他信息。X 事件的工作方式与其他异步进程间通信事件(如 udev 事件和 D - Bus 事件)类似,X 服务器从输入设备等源接收信息,然后将该输入以事件的形式重新分发给任何感兴趣的 X 客户端。

可使用 xev 命令进行事件实验,运行该命令会打开一个新窗口,你可以在其中移动鼠标、点击和输入。操作时, xev 会生成输出描述从服务器接收到的 X 事件。例如,鼠标移动的输出示例如下:

$ xev
--trecho omitido--
MotionNotify event, serial 36, synthetic NO, window 0x6800001,
    root 0xbb, subw 0x0, time 43937883, (47,174), root:(1692,486),
    state 0x0, is_hint 0, same_screen YES
MotionNotify event, serial 36, synthetic NO, window 0x6800001,
    root 0xbb, subw 0x0, time 43937891, (43,177), root:(1688,489),
    state 0x0, is_hint 0, same_screen YES

括号内的坐标,第一个表示鼠标指针在窗口内的 x 和 y 坐标,第二个( root: )表示指针在整个显示中的位置。

其他低级事件包括按键和按钮点击,一些更高级的事件表示鼠标是否进入或离开窗口,或者窗口是否获得或失去窗口管理器的焦点。例如,对应于离开和失去焦点的事件如下:

LeaveNotify event, serial 36, synthetic NO, window 0x6800001,
    root 0xbb, subw 0x0, time 44348653, (55,185), root:(1679,420),
    mode NotifyNormal, detail NotifyNonlinear, same_screen YES,
    focus YES, state 0
FocusOut event, serial 36, synthetic NO, window 0x6800001,
    mode NotifyNormal, detail NotifyNonlinear

xev 的一个常见用途是在重新映射不同键盘时提取键码和键符号。例如,按下 L 键的输出显示键码为 46:

KeyPress event, serial 32, synthetic NO, window 0x4c00001,
    root 0xbb, subw 0x0, time 2084270084, (131,120), root:(197,172),
    state 0x0, keycode 46 (keysym 0x6c, l), same_screen YES,
    XLookupString gives 1 bytes: (6c) "l"
    XmbLookupString gives 1 bytes: (6c) "l"
    XFilterEvent returns: False

xev 还可通过 -id id 选项关联现有的窗口 ID(使用从 xwininfo 获取的 ID 或使用 -root 监控根窗口)。

2.4 理解 X 输入和偏好设置

X 的一个潜在令人印象深刻的特点是通常有多种方式配置偏好设置,且有些方法可能不起作用。例如,在 Linux 系统中,常见的键盘偏好是将 Caps Lock 键重新映射为 Control 键,有多种方法可以实现,从使用旧的 xmodmap 命令进行小调整到使用 setxkbmap 实用程序提供全新的键盘映射。确定使用哪种方法可能很困难,因为桌面环境可能会提供自己的配置和覆盖设置。

2.4.1 输入设备(一般情况)

X 服务器使用 X Input Extension 管理来自不同设备的输入数据。基本的输入设备有两种类型:键盘和指针(鼠标),可以关联任意数量的设备。为了同时使用多个相同类型的设备,X Input Extension 创建一个“虚拟核心”设备,将设备的输入数据传输到 X 服务器。核心设备称为主设备(master),连接到计算机的物理设备成为从设备(slaves)。

要查看计算机上设备的配置,可执行 xinput --list 命令:

$ xinput --list
  Virtual core pointer               id=2    [master pointer (3)]
      Virtual core XTEST pointer     id=4    [slave pointer (2)]
      Logitech Unifying Device       id=8    [slave pointer (2)]
  Virtual core keyboard              id=3    [master keyboard (2)]
      Virtual core XTEST keyboard    id=5    [slave keyboard (3)]
      Power Button                   id=6    [slave keyboard (3)]
      Power Button                   id=7    [slave keyboard (3)]
      Cypress USB Keyboard           id=9    [slave keyboard (3)]

每个设备都有一个关联的 ID,可用于 xinput 和其他命令。上述输出中,ID 为 2 和 3 的是核心设备,ID 为 8 和 9 的是实际设备。注意,计算机的电源按钮也被视为 X 的输入设备。

大多数 X 客户端期望从核心设备获取输入数据,因为它们无需关心事件的具体来源设备。实际上,大多数客户端对 X Input Extension 一无所知,但客户端可以使用该扩展选择特定的设备。每个设备都有一组关联的属性,可使用 xinput 命令和设备编号查看属性,例如查看 ID 为 8 的设备属性:

$ xinput --list-props 8
Device 'Logitech Unifying Device. Wireless PID:4026':
        Device Enabled (126):   1
        Coordinate Transformation Matrix (128): 1.000000, 0.000000, 0.000000,
0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        Device Accel Profile (256):     0
        Device Accel Constant Deceleration (257):       1.000000
        Device Accel Adaptive Deceleration (258):       1.000000
        Device Accel Velocity Scaling (259):    10.000000
--trecho omitido--

可以使用 --set - prop 选项更改许多有趣的属性(更多信息请参考 xinput(1) 手册页)。

2.4.2 鼠标

可以使用 xinput 命令操作与设备相关的配置,许多最有用的配置与鼠标(指针)有关。许多配置可以直接作为属性更改,但通常使用 xinput 的 --set - ptr - feedback 和 --set - button - map 等专用选项更方便。例如,如果你有一个三按钮鼠标,想反转按钮顺序(这对左撇子用户很实用),可执行以下命令:

$ xinput --set-button-map disp 3 2 1
2.4.3 键盘

国际上可用的各种不同键盘布局给任何窗口系统的集成带来了特殊困难。X 在其核心协议中一直有一个内部键盘映射功能,可使用 xmodmap 命令进行操作,但任何相对现代的系统都使用 XKB(X 键盘扩展)以获得更精确的控制。XKB 比较复杂,很多人在需要快速更改时仍使用 xmodmap 。XKB 的基本思想是可以定义一个键盘映射,使用 xkbcomp 命令进行编译,然后使用 setxkbmap 命令将该映射加载并激活到 X 服务器中。该系统有两个特别有趣的功能:
- 能够定义部分映射以补充现有映射,这对于将 Caps Lock 键更改为 Control 键等任务特别实用,并且被许多桌面环境中的图形键盘偏好实用程序使用。
- 能够为每个连接的键盘定义单独的映射。

2.4.4 桌面背景

旧的 X 命令 xsetroot 可用于设置背景颜色和根窗口的其他特性,但在大多数计算机上不起作用,因为根窗口通常不可见。相反,大多数桌面环境会在所有其他窗口后面放置一个大窗口,以实现“动态壁纸”和桌面文件导航等功能。可以通过命令行更改背景(例如,后续可能会介绍具体方法)。

以下是一个简单的 mermaid 流程图,展示了 X 服务器启动和客户端交互的基本流程:

graph LR
    A[显示管理器] --> B[启动 X 服务器]
    B --> C[等待客户端连接]
    D[客户端] --> C
    C --> E[处理客户端请求]
    E --> F[渲染窗口]
    F --> G[显示窗口]
    H[输入设备] --> E
    E --> D[返回输入数据]

通过以上内容,我们对 Linux 用户的初始化配置和桌面系统的各个组件有了较为详细的了解,掌握这些知识有助于更好地使用和管理 Linux 系统。

3. 桌面系统其他组件

3.1 窗口管理器

X 的客户端不一定是带窗口的用户应用程序,它们可以作为其他客户端的服务或提供其他接口功能。窗口管理器可能是最重要的客户端服务应用程序,因为它决定了如何在屏幕上组织窗口,并提供交互式装饰,如标题栏,使用户能够移动和最小化窗口,这些元素对用户体验至关重要。

窗口管理器有多种实现方式。例如,Mutter/GNOME Shell 和 Compiz 设计得相对独立,而其他一些则包含在 Xfce 等环境中。大多数 Linux 发行版中包含的窗口管理器都努力为用户提供舒适的体验,但也有一些提供特定的视觉效果或采用简约的方法。由于用户的偏好和需求多种多样且不断变化,Linux 可能永远不会有一个标准的窗口管理器,因此新的窗口管理器不断涌现。

3.2 工具包

桌面应用程序包含一些常见元素,如按钮和菜单,这些被称为小部件(widgets)。为了加速开发并提供统一的外观,程序员使用图形工具包来提供这些元素。在 Windows 或 Mac OS X 等操作系统中,供应商提供一个通用的工具包,大多数程序员都会使用。在 Linux 中,GTK+ 工具包是最常见的之一,但也经常会看到使用 Qt 框架等创建的小部件。

工具包通常由共享库和支持文件组成,例如包含图像和主题信息的文件。

3.3 桌面环境

虽然工具包为用户提供了统一的外观,但桌面的一些细节需要不同应用程序之间进行一定程度的协作。例如,一个应用程序可能希望与另一个应用程序共享数据,或者更新桌面上的通用通知栏。为了满足这些需求,工具包和其他库被组合成更大的包,称为桌面环境。GNOME、KDE、Unity 和 Xfce 是一些常见的 Linux 桌面环境。

工具包是大多数桌面环境的核心,但为了创建一个统一的桌面,环境还必须包含各种支持文件,如图标和配置,这些构成了主题。所有这些都整合在描述设计约定的文档中,例如菜单和应用程序标题的显示方式以及应用程序对系统特定事件的响应方式。

3.4 应用程序

在桌面之上是应用程序,如 Web 浏览器和终端窗口。X 应用程序可以从简单的(如古老的 xclock 程序)到复杂的(如 Chrome 浏览器和 LibreOffice 套件)不等。这些应用程序通常是独立的,但通常使用进程间通信来了解相关事件。例如,一个应用程序可能对新存储设备连接、新电子邮件或即时消息接收等事件感兴趣。这种通信通常通过 D - Bus 进行,后续会详细介绍。

4. D - Bus 服务

4.1 D - Bus 简介

D - Bus 是一个进程间通信服务,在 Linux 系统的多个部分中使用。它允许不同的应用程序和服务之间进行通信,使得它们能够共享信息和协同工作。例如,当一个新的存储设备连接到系统时,相关的应用程序可以通过 D - Bus 接收到通知,并做出相应的处理,如自动挂载设备。

4.2 D - Bus 的作用

4.2.1 应用程序间通信

不同的应用程序可以通过 D - Bus 相互通信。比如,一个音乐播放应用程序可以通过 D - Bus 向系统的通知服务发送消息,当播放一首新歌时,通知服务会在系统托盘显示相应的提示信息。

4.2.2 系统服务交互

系统服务也可以利用 D - Bus 进行交互。例如,网络管理器服务可以通过 D - Bus 与其他服务通信,当网络状态发生变化时,通知其他依赖网络的服务进行相应的调整。

4.3 D - Bus 的使用示例

虽然一般不会直接在命令行与 D - Bus 交互,但可以使用一些工具来查看和监控 D - Bus 的活动。例如, dbus - monitor 命令可以用来监控 D - Bus 上的消息:

$ dbus-monitor

运行该命令后,它会实时显示 D - Bus 上传输的各种消息,包括消息的发送者、接收者、消息类型等信息。

5. 打印相关

5.1 Linux 打印系统概述

Linux 系统中的打印涉及多个组件,包括打印服务器、打印机驱动程序和打印队列等。打印服务器负责管理打印机和打印任务,打印机驱动程序则确保打印机能够正确处理不同类型的文档,打印队列用于存储等待打印的任务。

5.2 常见打印服务器

5.2.1 CUPS

CUPS(通用 Unix 打印系统)是 Linux 系统中最常用的打印服务器。它支持多种打印机类型和协议,并且提供了一个 Web 界面来管理打印机和打印任务。要访问 CUPS 的 Web 界面,可以在浏览器中输入 http://localhost:631 。

5.2.2 LPD

LPD(行式打印机守护进程)是一个较旧的打印服务器,在一些传统的 Unix 系统中仍然使用。虽然不如 CUPS 功能强大,但在某些特定环境中可能仍然会用到。

5.3 配置打印机

要在 Linux 系统中配置打印机,可以按照以下步骤进行:
1. 打开 CUPS 的 Web 界面( http://localhost:631 )。
2. 点击“Administration”选项卡。
3. 点击“Add Printer”按钮。
4. 选择要添加的打印机类型(本地打印机或网络打印机)。
5. 按照提示完成打印机的配置,包括选择打印机驱动程序等。

5.4 打印任务管理

可以使用 lp 命令来提交打印任务,例如:

$ lp file.txt

该命令会将 file.txt 文件添加到打印队列中。要查看打印队列的状态,可以使用 lpstat 命令:

$ lpstat -t

该命令会显示当前打印队列中的所有任务的状态信息。

以下是一个简单的表格,总结了 Linux 打印系统的关键组件和命令:
| 组件/命令 | 描述 |
| — | — |
| CUPS | 通用 Unix 打印系统,常用的打印服务器 |
| LPD | 较旧的打印服务器 |
| lp | 提交打印任务的命令 |
| lpstat | 查看打印队列状态的命令 |

6. 总结与展望

6.1 总结

通过对 Linux 用户初始化配置和桌面系统的深入了解,我们知道了如何为新用户设置合适的默认配置,包括默认 Shell、编辑器、分页器等。同时,也详细了解了桌面系统的各个组件,如 X Window 系统、窗口管理器、工具包、桌面环境、应用程序等,以及 D - Bus 服务和打印系统的相关知识。这些知识对于更好地使用和管理 Linux 系统至关重要。

6.2 展望

随着技术的不断发展,Linux 桌面系统也在不断演进。未来可能会出现更多功能强大、用户友好的窗口管理器和桌面环境,同时,打印系统和进程间通信服务也会不断优化,以提供更好的用户体验。对于开发者来说,也将有更多的机会参与到 Linux 桌面系统的开发和改进中。

通过不断学习和实践,我们可以更好地掌握 Linux 系统的各种特性,充分发挥其优势,为我们的工作和生活带来便利。

以下是一个 mermaid 流程图,展示了 Linux 桌面系统组件之间的关系:

graph LR
    A[X Window 系统] --> B[窗口管理器]
    A --> C[工具包]
    B --> D[桌面环境]
    C --> D
    D --> E[应用程序]
    F[D - Bus 服务] --> E
    G[打印系统] --> E

通过以上内容,我们对 Linux 操作系统的用户初始化配置和桌面系统有了全面而深入的认识,希望这些知识能够帮助你更好地使用和管理 Linux 系统。

相关推荐

RV1126开发板AP6256 WiFi驱动移植保姆级教程(含硬件排查与Buildroot配置避坑)

本文详细介绍了RV1126开发板AP6256 WiFi驱动移植的全流程,包括硬件排查、内核配置、设备树调整及Buildroot系统配置。特别针对常见的RF-kill问题提供了解决方案,帮助开发者快速实现WiFi功能验证与优化。

weixin_26834815的博客 222

Ubuntu 16.04底层变革:systemd迁移、ZFS根支持与SSH安全加固

Linux发行版的init系统演进是理解现代服务管理的基础。systemd不仅替代了传统init,更通过声明式依赖(如After/Wants)、生命周期控制和journald日志统一重构了服务编排逻辑;ZFS则代表文件系统范式的跃迁,提供原生快照、端到端校验与写时复制能力,显著提升数据可靠性与运维弹性;OpenSSH在Ubuntu 16.04中强化FIPS合规、禁用弱密钥交换算法,并推动远程开发向零信任实践演进。这些技术共同构成企业级Linux基础设施的三大支柱,广泛应用于遗留系统维护、嵌入式部署及容器化过

weixin_33716941的博客 645

Ubuntu零基础入门到精通【1.7讲】:Ubuntu 适合哪些人群:学生、开发者、运维、云计算工程师?

🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。 本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。

**My Coding Family** 1736

33、Linux用户初始化配置与桌面系统解析

本文详细解析了Linux用户的初始化配置与桌面系统的组成。内容涵盖默认Shell、编辑器和分页器的选择,初始化文件的注意事项,以及Linux桌面系统的核心组件,如X Window System、窗口管理器、工具包和显示管理器等。同时深入探讨了X服务器的运行机制、客户端交互、输入设备配置等高级主题,旨在帮助用户更好地理解和配置Linux系统环境。

yhn456789的博客 117

在Linux中快速部署桌面及远程连接,安装虚拟机制作操作系统镜像,解决Windows系列版本系统出现蓝屏等问题,可用于openstack制作系统镜像,创建虚拟机的时候设置账号和密码等

在Linux中快速部署桌面及远程连接,安装虚拟机,制作操作系统镜像,解决Windows系列版本系统出现蓝屏等问题,可用于openstack制作系统镜像,创建虚拟机的时候设置账号和密码等。 在Linux中快速部署桌面远程连接和安装虚拟机,可以在任何客户端比如windows或者macos远程连接到linux桌面,可以用来制作openstack镜像,在镜像初始化的时候设置用户名和密码,解决虚拟机制作windows xp、windows 7、Windows 10等windows系列镜像在启动时候蓝屏等现象。如在使用

代码讲故事 825

Ubuntu零基础入门到精通【3.6讲】:一文带你在虚拟机中安装 Ubuntu:VMware、VirtualBox、Hyper-V

🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。 本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。

**My Coding Family** 1116

AWS入门实践-如何在AWS云上创建一个内外网隔离的生产环境

在 AWS 上建立一个内外网分离的生产环境,可以减少应用服务的暴露面,有效的保证你的应用服务器的安全。通常我们会将web应用放在外网的子网内,数据库服务器等放在内网的子网。我们将按照下图来部署动手实践环境,实现在public subnet的EC2虚拟机可以直接通过互联网可以访问,在Private subnet的EC2虚拟机不能通过互联网直接访问,但是却可以在内部来访问互联网安装应用等等。

weixin_39108752的博客 2994

基于QGIS的DEM地形数据精细化处理:从裁剪、合并到成果输出

本文详细介绍了使用QGIS进行DEM地形数据的精细化处理流程,包括数据获取、裁剪、合并及成果输出等关键步骤。通过实战技巧和注意事项,帮助用户高效处理地形数据,适用于GIS分析、三维建模等应用场景。

weixin_29093017的博客 450

聚类分析之——Kmeans算法(一)

原创地址:http://www.toutiao.com/i6399454239554273794/ 聚类分析是一种静态数据分析方法,常被用于数据挖掘、机器学习、模式识别等领域,聚类是一种无监督式的学习方法。它是在未知样本类别的情况下,通过计算样本彼此间的距离(欧式距离,马式距离,汉明距离,余弦距离等)来估计样本所属类别。从结构性来划分,聚类方法分为自上而下和自下而上两种方法。聚类的算法有很多

june2017的博客 3532

16. SAP Fiori Elements 应用里图片字段(Image)的显示原理介绍

很多朋友向我反映,学习了 一段时间的 SAP Fiori Elements 开发,但是感觉整套体系对于自己来说还是个黑盒子,很多技术点,看了 SAP 官方帮助文档后,觉得自己懂了,但是一旦需要自己动手做一些东西出来时,又觉得一片茫然。 其实笔者自己也经历过这个过程。究其原因,还是大家对 Fiori Elements 一些技术细节没有理解,对 SAP 官方的知识点仅仅停留在记忆,甚至是死记硬背上面。 不过没有关系,本教程笔者会刻意设置一些练习,让大家动手,在实战中逐渐熟悉 Fiori Elements 这

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 758

Claude Code Agents 进阶:多代理协作与任务委托

Agent 是一个独立运行的 Claude 实例,它有自己的上下文和任务焦点。│ 主 Claude ││ (协调者) ││ │ │▼ ▼ ▼│ 代码审查 │ │ 测试生成 │ │ 文档编写 ││ │ ││▼汇总结果,完成任务并行处理:多个 Agent 同时工作,提高效率任务隔离:每个 Agent 有独立的上下文专业分工:不同类型的 Agent 擅长不同任务灵活控制:可以指定运行模式、超时等参数。

gaoxiang_120的专栏 336

1、符号回归:原理、应用与实践

本文全面介绍了符号回归(Symbolic Regression)的原理、发展历程、核心算法及其在科学与工程领域的广泛应用。文章从基本概念出发,详细阐述了基于遗传编程的符号回归机制,并探讨了其在游艇水动力学、化学过程、锂离子电池、生物医学等多个领域的实际应用。同时,博文还涵盖了高级技术如知识集成、系数优化、预测区间计算及微分方程发现等内容,对比了开源与商业软件工具,并展望了未来发展趋势,旨在为研究人员和从业者提供一本实用的符号回归指南。

ipfs8storage的博客 248

uniapp - 最新详细实现web-view网页与安卓苹果App端之间互相通信功能,苹果app/安卓app平台与内嵌webview组件内的网页进行相互传值,内置网页与app双向实时通信,详细示例代码

uni-app,Android安卓,苹果ios,app,内嵌webview,第三方H5网页,app和web-view通信传值,web-view引入的页面向App主应用传递数据,App端与webview端相互通信,App端和H5端webview之间的通信,uniapp实现webview和APP之间的传值通信,如何互相传递对象数据,数据传递了接收不到,web-view页面向app内发送消息,监听传递的参数,uni-app和web-view页面相互传参,报错怎么办,跨域,屏幕空白出错,数据交互,解决手机物理返回按

🏆 前端领域优质创作者 4741

PCL 点云配准-ICP算法(精配准)

ICP(Iterative Closest Point)算法是一种常用的点云精细配准算法。它通过迭代计算将一组点云变换到另一组点云的最佳位置,最终实现精确的对齐。ICP算法在每次迭代中选择与目标点云最接近的点作为对应点,通过计算最小化源点云和目标点云之间的均方误差(MSE)来进行刚性变换(包括平移和旋转)。

纵马踏花向自由 1724

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: 24、JEWL与面向对象的镜像稳定存储技术解析
下一篇: 22、审批管理:动态生成审批人列表的实现
杠精协会主席
博客等级 码龄3年 75粉丝 1287原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值