AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-342980

Z0OM's questions

Martin Hope
ReflectYourCharacter
Asked: 2025-03-27 21:50:30 +0800 CST

如何使用 lsblk 显示除我的根/主“sda”设备(其中我的根文件系统为“/”)之外的所有设备?

  • 6

我不会想到实现这个结果会如此困难,这正是我想要从我的设置中获得的输出。

我使用 LUKS(所以我的系统是加密的)和 LVM。

我不想显示 sda,因为那是我的根文件系统所在的地方,也是我的根设备。该解决方案也适用于没有 LUKS 或 LVM 的系统,这意味着它必须处理所有场景。

我在 Debian 12.x 上,如果可能的话,我想在一行命令中显示所有主要设备,除了我的根设备,无论它是否是 LVM、LUKS 等。

命令应该灵活,如果可能的话,我不想使用固定的规格*--vg-root等。

@bertieb 评论: 从添加的输出来看,似乎根挂载点位于设备上加密卷的卷组中,并显示为 sda - OP 希望省略整个设备和所有相关块“设备”?即删除根卷组和交换、crypt、包含分区(sda3)以及其他分区,最后是设备(sda)

这应该是我的结果,因此所有主要设备均不需要, sda因为这是我的根设备,我的根文件系统位于其中/,并且不需要我指定详细信息,所以我也可以在其他设备/系统上使用它,无论是 LVM、LUKS 等,而不需要知道根叫什么,或者 UUID 是什么,等等。

我不想看到分区,只想看到没有根设备的主设备,就像在这个命令中lsblk -d -o NAME,SIZE --sort SIZE

这是我需要的输出:

  • 没有 sda(因为它是包含我的根文件系统 / 的根设备)

  • 仅显示主要设备(无论有多少个)

  • 不包含来自其他设备的分区

我不知道该如何更好地解释它。

我需要的结果:
NAME     SIZE
nvme0n1  238.5G

我的设置:

$ lsblk -d -o NAME,SIZE --sort SIZE
NAME      SIZE
sda      57,3G
nvme0n1 238,5G
$ lsblk -fs -o NAME
# ROOT DEVICE
sda1
`-sda
sda2
`-sda
desktop--vg-root
`-sdb3_crypt
  `-sda3
    `-sda
...
...
$ lsblk
NAME                 MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
sda                    8:0    1  57,3G  0 disk  
├─sda1                 8:1    1   512M  0 part  /boot/efi
├─sda2                 8:2    1   488M  0 part  /boot
└─sda3                 8:3    1  56,3G  0 part  
  └─sdb3_crypt       254:0    0  56,3G  0 crypt 
    ├─desktop--vg-root   254:1    0  55,3G  0 lvm   /
    └─desktop--vg-swap_1 254:2    0   980M  0 lvm   [SWAP]
nvme0n1              259:0    0 238,5G  0 disk  
└─nvme0n1p1          259:1    0 238,5G  0 part  /user/backup

我不想要那个,例如/dev/mapper/desktop--vg-root,,不sdb3_crypt。sda3sda

但是从这个例子来看sda,这是根设备,我不需要输出中的这个设备。

不幸的是,这两个答案都未能解决我的问题。

我的设备,我的设置:

NAME           SIZE      
sda            57.3G     
|-sda1         512M      
|-sda2         488M      
`-sda3         56.3G     
`-sdb3_crypt   56.3G     
`-desktop--vg-swap_1980M      
nvme0n1        238.5G    
`-nvme0n1p1    238.5G 

我需要的结果:

NAME     SIZE
nvme0n1  238.5G
系统设置Debian、lsblk和其他信息:
Operating System: Debian GNU/Linux 12 (bookworm)  
Kernel: Linux 6.1.0-22-amd64
Architecture: x86-64

lsblk from util-linux 2.38.1

$ apt-get install --only-upgrade util-linux

util-linux is already the newest version (2.38.1-5+deb12u3)
来自@terdon结果:

mylsblk(){ lsblk -o NAME,SIZE,MOUNTPOINT | awk '$NF!="/"{printf "%-15s%-10s\n", $1,$2}'; }

NAME           SIZE      
sda            57.3G     
|-sda1         512M      
|-sda2         488M      
`-sda3         56.3G     
`-sdb3_crypt   56.3G     
`-desktop--vg-swap_1980M      
nvme0n1        238.5G    
`-nvme0n1p1    238.5G 

$ lsblk -o NAME,SIZE,MOUNTPOINT

NAME                   SIZE MOUNTPOINT
sda                   57.3G 
|-sda1                 512M /boot/efi
|-sda2                 488M /boot
`-sda3                56.3G 
  `-sdb3_crypt        56.3G 
    |-desktop--vg-root    55.3G /
    `-desktop--vg-swap_1  980M [SWAP]
nvme0n1              238.5G 
$ lsblk -o NAME,SIZE,MOUNTPOINT | awk '$NF!="/"{printf "%-15s%-10s\n", $1,$2}';
NAME           SIZE      
sda            57.3G     
|-sda1         512M      
|-sda2         488M      
`-sda3         56.3G     
`-sdb3_crypt   56.3G     
`-desktop--vg-swap_1980M      
nvme0n1        238.5G

$ lsblk -o NAME,SIZE,MOUNTPOINT | awk '$NF=="/"'

|-desktop--vg-root 55.3G /

来自Chris Davies 的结果:
Root partition: mapper/desktop--vg-root
Root device: 
NAME      SIZE
sda      57.3G
nvme0n1 238.5G
来自@muru:

lsblk -d $(findmnt -no source /)

NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
desktop--vg-root 254:1    0 55,3G  0 lvm  /
debian
  • 2 个回答
  • 268 Views
Martin Hope
ReflectYourCharacter
Asked: 2025-03-26 18:37:42 +0800 CST

为什么 rsync '--delete src/*'、'--delete src/' 和 '--delete src/' 中的处理逻辑不同?

  • 5

我想在 Debian 系统上使用 bash 脚本或 shell 复制和rsync同步目录--delete。--delete-excluded

目录一开始没有同步,也就是说源里的文件被删除了。

我检查了这两个帖子,后来意识到这是由于*。

src/因此,src/.和之间存在差异src/*

这与隐藏文件或类似的东西无关。

  • rsync --delete 不起作用

  • rsync --delete 不会删除所有已删除的文件

  • rsync 不会删除目标目录中的文件

为什么选项 1 的处理方式在逻辑上与选项 2 和 3 不同?

选项 1(不起作用):

rsync -avr src/* dst/ --delete-excluded

rsync -avr src/* dst/ --delete

选项 2(有效):

rsync -avr src/ dst/ --delete-excluded

rsync -avr src/ dst/ --delete

选项 3(有效):

rsync -avr src/. dst/ --delete-excluded

rsync -avr src/. dst/ --delete

当我删除 中的文件和目录时src,它们不会被删除/同步/*,但它们会被删除/同步/和/.。

来自 man rsync:

--delete 这会告诉 rsync 从接收端删除无关文件(不在发送端的文件),但仅限于正在同步的目录。您必须要求 rsync 发送整个目录(例如 lqdirrq 或 lqdir/rq),而不使用通配符来表示目录的内容(例如 lqdir/*rq),因为通配符由 shell 扩展,因此 rsync 会收到传输单个文件的请求,而不是文件的父目录。除非您使用 --delete-excluded 选项或将规则标记为仅在发送端匹配(请参阅 FILTER RULES 部分中的 include/exclude 修饰符),否则从传输中排除的文件也不会被删除。

  • rsync(1) - Linux 手册页

这基本上不是同一件事吗?

rsync 看到的是,由于 shell 扩展了 a/*,rsync 不再知道父文件夹 a/ – 它只接收文件/子目录的列表。它只将传递的文件与目标进行比较,而不是整体状态。--delete 无法可靠地删除,因为 rsync 不知道 a/ 中应该有什么。

主目录是用 指定的src/,src/.这src/*在逻辑上是否正确,我不明白?

bash
  • 1 个回答
  • 55 Views
Martin Hope
ReflectYourCharacter
Asked: 2025-03-24 18:49:03 +0800 CST

bash 脚本如何确定它是如何启动的?[重复]

  • 6
这个问题已经有答案了:
脚本以“源”还是“可执行文件”开始? (1 个回答)
20 小时前关闭。

我目前正在 Debian 12.X 上使用以下 bash 运行各种脚本:

GNU bash, version 5.2.15(1)-release (x86_64-pc-linux-gnu)

我有以下方法/选项来执行脚本。

每种方法都有以下影响或选项:

Method        | New Process | Shell Ends with exit | Variables Persist |
------------------------------------------------------------------------
./script      |    YES      |         NO           |      NO           |
------------------------------------------------------------------------
bash script   |    YES      |         NO           |      NO           |
------------------------------------------------------------------------
. ./script    |    NO       |         YES          |      YES          |
------------------------------------------------------------------------
source script |    NO       |         YES          |      YES          |
------------------------------------------------------------------------

@terdon

请注意,. ./script 和 source script 完全相同。标准命令是 .,bash 也提供同义词 source,但两者除了名称之外没有区别。

根据我用来启动和结束脚本的方法,我可以在当前 shell 或终端会话中重用不同的变量和选项,如果它们没有被终止/关闭/注销,则可以不重用它们。

./script如果我使用或 bash运行脚本script,则会启动一个新的 shell 实例,并且其中设置的环境变量仅在该实例中有效。

脚本结束后,这些变量就会丢失。

但是,如果我使用 运行脚本. ./script,变量将保留在父 shell 会话中,因为它们直接影响当前 shell。

在这种情况下,如果我希望这些变量在会话的剩余时间内可用而无需手动重置它们,那么了解这些变量是否会在父会话中持续存在是至关重要的。

例如,我还可以决定脚本是以 exit 还是 return 结束,并且根据该决定是否发生注销或关闭 shell。

所以,它会影响后续的其他步骤。

我是否可以在脚本中检测它是如何简单易行地启动的,即使用了哪种方法,以便将值存储在变量中,然后在启动时不传递参数的情况下进一步处理它?

bash
  • 1 个回答
  • 46 Views
Martin Hope
Z0OM
Asked: 2024-10-15 21:55:23 +0800 CST

如何使用 setterm 或其他命令重新打开屏幕,仅使用 ssh 上的核心实用程序?

  • 5

我有一个没有图形界面/桌面环境的Debian 12系统。console-only

我使用设备本身关闭了屏幕setterm --blank force,现在我无法通过按下任何键将其重新打开,因为force会导致键盘输入被忽略。

SSH我可以通过 Debian 12 桌面环境进行访问,但是当我setterm -blank 0通过SSH作为进入时root,我收到消息terminal xterm-256-color does not support --blank。

我也无法TTYs在设备本身上切换不同的版本。

即使我在 Debian 桌面上切换到 TTY 并使用setterm --blank 0,我也没有收到任何错误消息,但什么也没有发生。

有了setterm --blank poke,我得到了cannot force unblank。

是否有其他命令core utilities可以用来唤醒屏幕而无需安装其他工具?

否则,我只需重新启动。

debian
  • 1 个回答
  • 58 Views
Martin Hope
Z0OM
Asked: 2024-10-08 18:35:52 +0800 CST

如何在 debian gnu/linux 中删除或停用主要组?

  • 5

我想删除我的 debian gnu/linux 系统中的某些组,但其中一些是主要组。

例如,如果我想news使用以下方法删除组/sbin/groupdel news

我收到消息了The primary group of the user "news" could not be removed。

  1. 我怎样才能使用 shell 命令删除它?

  2. 如果我手动删除文件中的特定组:

/etc/group

/etc/gshadow

/etc/passwd

/etc/security/group.conf

我是否还需要考虑或删除其他地方的内容?

  1. 如果我只是注释掉此文件中的行,这些组是否也会被删除/停用?

  2. 删除真正不需要的主要组的最佳方法是什么?

编辑:

我明白答案。不过,我还是想以删除游戏为例。

我现在已经检查过find / -group games 2>/dev/null哪些find / -user games 2>/dev/null文件使用用户或组或拥有游戏权限。

我找到了 4 个用于 dialout 的文件find / -group dialout 2>/dev/null,但没有找到用于游戏的文件。

我删除了用户和组游戏,但重新启动后,该条目再次出现在/etc/group。

我还应该在哪里寻找该条目被重新生成的原因?

我需要查找对应的包裹才能删除号码和标签吗?

如何找到与团体游戏相关的所有条目、包和文件?

因此,除了硬编码之外,这是不可能的。

我从所有答案中理解得正确吗?

如果我删除创建该用户的特定包,则该组将被删除,否则,我必须搜索整个系统,这可能会破坏我的系统。

如果能知道其他群组条目出现在何处就更好了。

我现在已经尝试了以下方法(即使并非所有方法都有意义):

检查群组数据
getent group games

搜索群组文件
find / -group games 2>/dev/null

搜索用户的文件
find / -user games 2>/dev/null

列出已安装的软件包
dpkg -l | grep games

检查包的依赖关系
apt-cache rdepends games

检查流程
ps aux | grep games

搜索系统日志
grep games /var/log/syslog

检查服务
systemctl list-units --type=service | grep games

检查配置文件
grep -r games /etc/

检查 / 中的所有文件
grep -r games /

使用最后一个命令,我发现了很多东西,但是正如答案所说,它太混乱了。

谢谢您的回答!

bash
  • 3 个回答
  • 67 Views
Martin Hope
Z0OM
Asked: 2024-09-03 20:46:24 +0800 CST

删除一些软件包后,我无法通过 Debian 的登录屏幕登录 KDE 桌面

  • 5

删除一些内容后,我无法登录我的KDE-Desktop12.6 。DebianKDE-specific packages

出现了登录屏幕,但是我输入密码时什么也没有发生。

我试图删除一些软件包以使系统更精简。

我应该怎么办?

debian
  • 1 个回答
  • 30 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve