我想将 Neovim 中的一些代码复制到 Firefox,但我复制的内容并不能保留到 Neovim 之外。
我检查后:checkhealth
,它是这样说的:
我应该怎么做才能处理这个问题?
几年后,我再次安装了 Ubuntu,并尝试根据自己的喜好配置它。我拥有一个具有 1 TB 云存储空间的 Microsoft 帐户。我已经在 Ubuntu 上安装了 Onedrive 客户端,但它似乎下载了所有文件,而我的笔记本电脑中没有足够的空间来存储它们,所以我只想以与 Nautilus 和 Google Drive 相同的方式使用 Onedrive,通过指向文件而不下载,直到我单击文件将其打开。有什么配置我应该尝试吗?我用谷歌搜索了一段时间,但不知道该怎么做。顺便问一下,如何启动 OnedriveGUI?我安装了它,但我不知道如何再次启动 GUI。
我正在使用一个为 Windows 设计的程序,我自己为 GNU/linux 编译了该程序。该程序在命令行中运行,一个参数如下所示:
prgm -arg1 abcd(10)(22) -i files.ext
其中(10)
和是诸如、和之(22)
类的标志。该命令失败,因为尝试解释内部内容并且存在语法错误。所以,我有两个问题:a
b
c
d
bash
()
我知道 grep 允许我在文件中搜索字符串,但是我没有找到正确的方法来搜索以下字符串:
"snapshot3" : {
"@custom_name" : true
所以我要查找的字符串包含一个换行符、引号、@ 符号...
知道如何在文本文件中准确查找该字符串吗?!或者,如果我可以搜索其中只有 2 或 3 个单词将“snapshot3”与“true”分隔开的文件,那对我来说就足够了
最近,我需要写下我的终端输出。我已经阅读了这个问题来寻找答案。但现在,我想写下我的命令(例如,我在终端中输入的命令:sudo apt update
等)来存储我之前所做的历史记录。
如何将我的输入保存到文件并同时运行该输入?
PSscript
包含太多类型的垃圾:^[[?
^[[m
等等。我想得到更简单的方法,只保存我的命令。
在我的环境中,桥中有三个 veth:
$ brctl show virbr1
bridge name bridge id STP enabled interfaces
virbr1 8000.52540071337a yes eth1
virbr1-nic
vnet1
我可以得到他们的mac地址:
$ brctl showmacs virbr1
port no mac addr is local? ageing timer
3 52:54:00:25:7a:ab yes 0.00
3 52:54:00:25:7a:ab yes 0.00
3 52:54:00:99:67:68 no 9.15
2 52:54:00:99:d8:05 no 8.48
2 fe:54:00:99:d8:05 yes 0.00
2 fe:54:00:99:d8:05 yes 0.00
但是我怎样才能得到bridge中那些veth的IP地址呢?目前,我可以通过以下方式获取IP地址arp
:还有其他方法可以获得更多详细信息吗?
~$ sudo arp
Address HWtype HWaddress Flags Mask Iface
192.168.252.246 ether 52:54:00:99:d8:05 C virbr1
192.168.252.254 ether 52:54:00:99:67:68 C virbr1
192.168.252.83 ether 52:54:00:99:d8:05 C virbr1
...
我有这个脚本
# 检查丢失+找到的文件夹 函数 chklnf { #DOC echo“chklnf - 列出已安装设备上丢失+找到的文件夹中的所有文件” x =“丢失+找到/” if [ "$EUID" != 0 ] ;那么 echo "请输入 sudoers 密码以允许访问 $x 文件夹。" 须藤回声“谢谢你……” 菲 for p in $(mount | sed -nre 's,^/dev/.+ on ([^ ]+).*$,\1,p') 做 如果 [ -d "$p/$x" ] ;那么 echo -n "--- $p/$x --- " 须藤 ls -l "$p/$x" 菲 完毕 }
我想在 .bash_profile 末尾运行一次,但是;
对于每个新的 shell 提示符都必须输入 passwd,这很不方便。
那么:是否有可能“摆脱”其中的“ls -l”?
或者:
如何检测“sudo 模式”是否已经存在?(参考:脚本中的“$EUID”)
$ sudo cat /etc/sudoers [sudo] hannu 的密码:**************** # # 该文件必须以 root 身份使用“visudo”命令进行编辑。 #... {剪}
# 特殊的单一脚本 hannu ALL=(root) NOPASSWD: /home/hannu/bin/checklostfound
$ ls -l /home/hannu/bin/checklostfound -rwx------ 1 hannu hannu 526 九月 24 16:30 /home/hannu/bin/checklostfound
$ sudo ~/bin/checklostfound --- //丢失+找到/ --- 总计 0
$
最后,对 $p 进行调整,/
最后有一个:
$ 猫 /home/hannu/bin/checklostfound #!/bin/env bash # 检查丢失+找到的文件夹 #DOC echo“chklnf - 列出已安装设备上丢失+找到的文件夹中的所有文件” x =“丢失+找到/” if [ "$EUID" != 0 ] ;那么 echo "请输入 sudoers 密码以允许访问 $x 文件夹。" 须藤回声“谢谢你……” 菲 for p in $(mount | sed -nre 's,^/dev/.+ on ([^ ]+).*$,\1,p') 做 九月=“/” if [ "${p: -1}" = "/" ]; 然后九月=“”;菲 如果 [ -d "$p$sep$x" ] ;那么 echo -n "--- $p$sep$x --- " sudo ls -l "$p$sep$x" 菲 完毕 $ sudo /home/hannu/bin/checklostfound -- /丢失+找到/ --- 总计 0 --- /media/hannu/Data8/lost+found/ --- 总计 0 $ /home/hannu/bin/checklostfound 请输入 sudoers 密码以允许访问lost+found/文件夹。 [sudo] hannu 的密码: 谢谢... --- /丢失+找到/ --- 总计 0 --- /media/hannu/Data8/lost+found/ --- 总计 0 $
例如,假设您df.uba.ar
通过查询 的uba.ar
名称服务器来查找 ns 记录,例如ns.uba.ar
。
该查询中的记录是否可以将您引向df.uba.ar
完全位于所查询的名称服务器域之外的地址(例如 at mynameserver.net
)的名称服务器,这可能吗?
在将照片从 microSD 卡传输到外部 HDD 时,我犯了一个严重的错误。
我将 microSD 卡和外部 HDD 连接到我的 iPad。我可以看到SD卡上的所有照片。我全选了,想复制到外接硬盘上,但找不到“复制”按钮,于是我点击了“移动”按钮(非常错误!我非常后悔)。
不幸的是,文件太多(超过 4000 个),而且我的 iPad 没电了,因此 MOVE 过程被中断。之后,外部 HDD 中的所有文件(约 2 000 个)虽然显示其名称,但大小均为 0 字节。microSD卡中的文件也只显示名称,大小均为0位。
我能做些什么?
当尝试从我的 SSD(其中包含我的 Arch Linux 分区)扩展分区时,Windows 将其转换为动态驱动器,这搞乱了我的 GRUB 启动,因为显然 Linux 无法读取动态驱动器。我按照几篇文章的建议,使用傲梅分区助手恢复到简单的驱动器。
然而,它似乎弄乱了分区表,因为我仍然无法启动到 GRUB,并且当从可启动 USB 进行检查时,gdisk 显示 MBR 和 GPT 分区表可用。以下是 gdisk 的所有输出:
磁盘信息:
[[email protected] ~]$ sudo gdisk /dev/nvme0n1
GPT fdisk (gdisk) version 1.0.9.1
Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: present
Found valid MBR and GPT. Which do you want to use?
1 - MBR
2 - GPT
3 - Create blank GPT
主引导记录:
Disk /dev/nvme0n1: 1953525168 sectors, 931.5 GiB
Model: Samsung SSD 970 EVO Plus 1TB
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 1A0E603E-51F0-4487-B502-11E625DF814E
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 1953525134
Partitions will be aligned on 2048-sector boundaries
Total free space is 211840366 sectors (101.0 GiB)
Number Start (sector) End (sector) Size Code Name
1 1426096128 1427144703 512.0 MiB 0700 Microsoft basic data
2 1427144704 1741717503 150.0 GiB 0700 Microsoft basic data
5 32768 1426096126 680.0 GiB 0700 Microsoft basic data
通用时间:
Disk /dev/nvme0n1: 1953525168 sectors, 931.5 GiB
Model: Samsung SSD 970 EVO Plus 1TB
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): A9089CC8-91CB-4A00-AB2F-F39D643718A8
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 1953525134
Partitions will be aligned on 8-sector boundaries
Total free space is 211807631 sectors (101.0 GiB)
Number Start (sector) End (sector) Size Code Name
1 34 2081 1024.0 KiB 4201 LDM metadata partition
2 2082 32767 15.0 MiB 0C01 Microsoft reserved ...
3 32768 1426096127 680.0 GiB 4200 LDM data partition
4 1426096128 1427144703 512.0 MiB EF02
5 1427144704 1741717503 150.0 GiB 8300
看起来 GPT 表是我转换回简单卷之前的,因为它像以前一样包含 LDM 数据。MBR 表在磁盘转换为动态之前的分区分布方式是正确的,但所有分区都显示为 Microsoft 基本数据,因此我不确定是否应该回滚到该分区。
打开gparted
驱动器时看起来不错,150Gb 分区甚至显示使用 ext4 文件系统(gparted 屏幕截图),这是正确的,我什至可以从命令行安装它,但是,我无法从可启动的文件管理器 GUI 安装它们。事实上,我无法通过 GUI 从该驱动器安装任何分区。GRUB 似乎在某些步骤中也已损坏,因为当我选择该启动分区时,我的 PC 启动到“选定的启动设备失败。按任意按钮重新启动”。我仍然可以启动到 Windows,因为它安装在另一个驱动器中。另外,除了这个之外的每个磁盘都有一个 GPT 分区表,在我弄乱 Windows 动态驱动器之前,我不确定这个是 GPT 还是 MBR。
我不知道在这里该怎么做,有没有办法恢复我的旧分区表而不丢失任何数据?
注意:我在 Windows 10 的双启动上使用 Arch Linux (EndeavourOS)。
编辑 1:转换回简单驱动器后,我的 arch 分区在 Windows 资源管理器和分区管理器中都是可见的(但当然无法访问),它显示为 RAW。
我正在尝试启动 Linux 内核而不切换到任何 vga 模式。所以,我只想要字符显示。我能以某种方式做到这一点吗?事实上,一些类似的东西vga=off
就很好了。
我需要在 Ubuntu 系统上重命名一堆文件(超过 100 个),并且想知道当文件的模式类似于 Windows 中的“Filename_01.jpg”到“NameOfFile_01.jpg”时如何执行此操作,我会输入:
ren Filename_*.jpg NameOfFile*.jpg
由于我发现的各种命令(重命名、mmv 等)的工作方式和语法示例非常复杂,我无法弄清楚这些命令的头绪或尾部。我不需要完整解释该命令如何工作,我只需要执行此操作的确切语法。
我正在构建一个家庭服务器来在 docker (Ubuntu LTS) 中托管一些自托管应用程序。我想将应用程序的所有文件放在用户主文件夹中,以便将它们保存在一个位置并轻松备份。我正在考虑 2 个主文件夹: /home/user/docker – 用于 docker compose 和所有 docker 卷以及 /home/user/data – 用于我的所有文件:
/home/user/
docker/
container1
container2
…
data/
entertainment/
movies
series
music
downloads/
documents/
photos/
personal files/
backups/
laptop_backups/
phone_backups/
我会将 data/ 文件夹分配给 Nextcloud,以便从家庭笔记本电脑和手机进行访问。
我有一个 500GB SSD、1TB HDD + 几个不同的较小尺寸 HDD + 将来可能会添加更多 HDD。也许还多了一个SSD。
我打算将存储划分为LVM:
SSD – 2 个分区:100GB 和 400GB HDD – 1 个分区:1TB
我将创建 3 个卷组:100GB –“系统”,400GB –“SSD”,1TB –“HDD”。
我正在考虑以下设置:
VG 100GB“系统” – LV“系统”用于/
VG“HDD” – LV“慢速数据”用于:
/home/user/data/entertainment
/home/user/data/backups
/home/user/data/downloads
VG“SSD” – LV“快速数据”用于:
/home/user/data/documents
/home/user/user/docker
我的问题是:如何最好地在卷组和逻辑卷之间划分存储?我希望有一个灵活的设置,以便将来可以调整磁盘存储的大小和更改磁盘存储,同时以最佳方式使用 SSD 空间。
我正在尝试编写一个 find 和 cd 函数,如下所示:
findcd () {
cd "$(dirname "$(find '$1' -type '$2' -name '$3')")"
}
像这样被调用:
find . f [FILE_NAME]
但它看到了美元符号,并期待更多的争论来反对执行里面的内容。我刚刚开始编写别名和函数,所以任何建议都会非常有帮助!
我使用的是 Raspberry Pi,但我认为这个问题不是特定于 Raspberry Pi 操作系统的。
我仅使用 SSH 密钥以用户 pi 身份登录。
我有一个调用当前要求 user 的密码的脚本。sudo -v
pi
我想让这一步变得简单,所以最好让它根本不要求密码或有一个非常简单的密码(如"pi"
)。
但我当然不想通过 SSH 使用如此简单的密码公开用户帐户。
我已经有一个文件/etc/sudoers.d
包含pi ALL=(ALL) NOPASSWD: ALL
但它不会禁用 的密码问题sudo -v
。
我有什么选择?
sudo -l
编辑:按照评论中的要求输出:
pi@klipper:~ $ sudo -l
Matching Defaults entries for pi on klipper:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, env_keep+=NO_AT_BRIDGE, env_keep+="http_proxy HTTP_PROXY", env_keep+="https_proxy HTTPS_PROXY", env_keep+="ftp_proxy FTP_PROXY",
env_keep+=RSYNC_PROXY, env_keep+="no_proxy NO_PROXY"
User pi may run the following commands on klipper:
(ALL : ALL) ALL
(ALL) NOPASSWD: ALL
我一直在阅读Paul Randal 撰写的关于 SQL Server 备份过程的博客文章,其中概述了完整备份的主要阶段。他提到的一点是,在完整备份期间,进程会读取“所有分配的盘区,无论该盘区中的所有 8 个页面是否都在使用中”。
完整备份有以下主要阶段:
- 执行检查点。
- 从数据文件中读取所有正在使用的数据(从技术上讲,读取所有分配的盘区,无论盘区中的所有 8 个页面是否都在使用)。
- 读取从初始检查点最旧的未提交事务开始到第 2 阶段完成的时间的所有事务日志。这是必要的,以便数据库可以在恢复过程中恢复到一致的时间点(有关更多详细信息,请参阅这篇文章)。
- (可选地测试所有页面校验和,可选地执行备份压缩,并且可选地执行备份加密)。
这个说法让我想知道到底备份了什么内容。具体来说,备份过程是否包括所有分配的扩展区,即使这些扩展区中的所有页面并未都在使用中?
如果您对此主题有任何见解或澄清,我将不胜感激。预先感谢您的帮助!
下面两个 sql 在 MariaDB 10.5.8 和 MySQL 5.7 上运行良好
SET @curRow=0;
select @curRow := @curRow + 1 AS row_number, `users`.`name` from `users`
或者
select ROW_NUMBER() OVER (ORDER BY users.id) AS row_number, `users`.`name` from `users`
但是当我在 MariaDB 11.1.2 中运行时,它会抛出错误:查询 1 错误:您的 SQL 语法中有错误;检查与您的 MariaDB 服务器版本相对应的手册,了解在 'row_number, 附近使用的正确语法users
。name
从users
第 1 行开始
我检查了 ChatGPT 3.5 它建议我
SELECT row_number FROM (
SELECT @curRow := @curRow + 1 AS row_number, name
FROM users, (SELECT @curRow := 0) r
) AS subquery_alias
您遇到的错误是因为您无法使用用户定义的变量直接在 SELECT 子句中生成行号,然后在 MariaDB 中的同一 SELECT 子句中引用它。相反,您应该使用子查询或公用表表达式 (CTE) 来实现此目的。以下是如何使用子查询重写查询。
但它不起作用。那么在 MariaDB 11 中该怎么做呢?
如果我有一个按照https://www.db-fiddle.com/f/arPEdUty3U6AJEQfqYEyRc/1的表格,其中包含版本列表:
INSERT INTO `releases` (`ReleaseID`, `ReleaseNumber`) VALUES
(1, '10.6'),
(2, '10.8'),
(3, '_TBD'),
(4, '10.9'),
(5, 'Future'),
(6, '10.10'),
(7, '10.11');
我如何对其进行排序,以便_
首先出现以开头的内容,然后是数字,顺序为10.6
, 10.8
, 10.9
, 10.10
, 10.11
, 然后是其他内容?
我当前的铸造尝试(CAST(ReleaseNumber as SIGNED INTEGER)
放在Future
后面_TBD
而不是放在最后。
这个例子的期望输出是
_TBD
,,,,,,,, 10.6
_ 10.8
_ 10.9
_ 10.10
_ 10.11
_Future
我喜欢使用 CTE 来创建漂亮且清晰的查询。但是,我很确定我创建的查询效率确实很低。
有没有更好的方法来做到这一点并使事情变得清晰?
with first_date as (
-- selecting just 1 date
-- namely: 1 full year ago
select (extract(year from current_date - interval '1 year')||'-01-01' )::date as date
)
, last_date as (
select date from star.dim_date where current_cal_day='Current'
)
, total_active_customers_ps_day as(
select
dd.date
, dd.is_first_day_in_month
, dd.is_last_day_in_month
, count(dc.id) as total_customers
from first_date, last_date,
star.dim_date dd
-- join with dim_client, using first_subscription_start_date & last_subscription_end_date
-- to get the ids of just the active clients
join star.dim_client dc on dd.date
between dc.first_subscription_start_date and coalesce(dc.last_subscription_end_date::date, '3000-01-01')
and dc.created <= dd.date
and dc.first_subscription_start_date >= dc.created::date
where
dd.date >= first_date.date
and dd.date <= last_date.date
group by
dd.date
, dd.is_first_day_in_month
, dd.is_last_day_in_month
)
select * from total_active_customers_ps_day ;
我认为我引起了一些笛卡尔连接,因为这个查询效率更高
with total_active_customers_ps_day as(
select
dd.date
, dd.is_first_day_in_month
, dd.is_last_day_in_month
, count(dc.id) as total_customers
from
star.dim_date dd
-- join with dim_client, using first_subscription_start_date & last_subscription_end_date
-- to get the ids of just the active clients
join star.dim_client dc on dd.date
between dc.first_subscription_start_date and coalesce(dc.last_subscription_end_date::date, '3000-01-01')
and dc.created <= dd.date
and dc.first_subscription_start_date >= dc.created::date
where
dd.date >= (extract(year from current_date - interval '1 year')||'-01-01' )::date
and dd.date <= (select date from star.dim_date where current_cal_day='Current')
group by
dd.date
, dd.is_first_day_in_month
, dd.is_last_day_in_month
)
select * from total_active_customers_ps_day ;
有什么更好的方法来做到这一点?
据我了解,要获取集群列表,pg_lscluster
我需要使用pg_createcluster
.
但是,我使用initdb
和pg_ctl
来创建集群。我知道它们正在运行,因为我可以使用 访问每个集群(我有三个集群)psql -p [port]
。
如何获取使用这些工具构建的集群的列表?