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
    • 最新
    • 标签
主页 / computer / 问题

问题[shell](computer)

Martin Hope
nyov
Asked: 2025-03-01 03:54:26 +0800 CST

捕获 wget 或 cURL 命令的下载文件名?

  • 8

我一直在试图弄清楚如何通过shell 脚本中的命令wget来“捕获”下载文件的文件名。curl

我想要的(似乎是不可能的)是这样的:

newfilename=$(wget --content-disposition --trust-server-names --timestamping "${myurl}")
xattr -w user.download.url "${myurl}" "${newfilename}"
chmod 0400 "${newfilename}"
setfacl -m u:lisa:r "${newfilename}"

或者使用 curl:

newfilename=$(curl --continue-at - --compressed --remote-name-all --remote-header-name --remote-time "${myurl}")
xattr -w user.download.url "${myurl}" "${newfilename}"

现在出于某种原因,我猜是出于安全考虑,两个命令似乎都不愿意返回服务器提供的文件名(以防它可能包含远程代码注入)?但是,当同一个命令完全愿意使用该远程文件名字符串在磁盘上创建文件时,这对我来说毫无意义?

有没有办法做到这一点,如果有必要,通过一些解决方法,通过inotify监视检查目标目录中是否创建了文件?

shell
  • 1 个回答
  • 335 Views
Martin Hope
Putnik
Asked: 2024-12-29 17:27:46 +0800 CST

如何更改 Windows 11 cmd 控制台(Windows 终端)菜单语言?

  • 5

请看截图:一些菜单是日语的,一个是波兰语的。

我如何才能将所有这些菜单的语言更改为波兰语?我安装了日语键盘布局,我需要它,因此“直接卸载”不是一个选项。

在此处输入图片描述 在此处输入图片描述 在此处输入图片描述

shell
  • 1 个回答
  • 47 Views
Martin Hope
Jounathaen
Asked: 2024-09-25 18:44:16 +0800 CST

使用 imagemagick 在两幅图像之间创建视觉差异并将其叠加在其中一幅图像上

  • 7

我有两张(示意图)图像,我想突出显示其中一张图像之间的差异: 示意图1 示意图2

使用 imagemagick 我可以创建视觉差异,也可以将其叠加在第二张图像上:

compare schematic.png schematic-new.png -compose src diff.png
composite -blend 35% diff.png schematic-new.png schematic_diff.png

这几乎满足了我的要求,但差异图像中相同的部分并非完全透明,而是半透明的灰色。另外,这样blend做也不合适,因为它也会给基础图像增加透明度。

差异图像 原理图上的差异

那么:我如何创建差异图像,以便非差异部分完全透明,以及如何将其正确地叠加在基础图像上(甚至可能具有自定义透明度)?

shell
  • 1 个回答
  • 29 Views
Martin Hope
Anthony Naddeo
Asked: 2024-04-28 02:12:03 +0800 CST

在多行上显示 Fish (ctrl+r) 历史记录中的长命令

  • 6

当您的历史记录充满长命令时,我正在寻找一种用 Fish 搜索历史记录的解决方案。例如,我经常在我的历史记录中使用包含 json 有效负载的curl命令,并且它们足够长,以至于它们不适合放在一行中,这使得很难一眼区分它们。我当前的解决方案是输入更多我想要的内容,但这很烦人。

外壳历史

有没有办法让历史条目在执行时显示,而不将它们减少到一行?有没有我不想要求的更聪明的解决方案?

shell
  • 2 个回答
  • 51 Views
Martin Hope
NilsK
Asked: 2024-01-24 04:39:01 +0800 CST

安装 Anaconda 和更新 conda 的脚本

  • 5

我想编写一个执行以下操作的 shell 脚本 (zsh):

  1. 通过 Homebrew 安装 Anaconda。
  2. 将 conda 添加到.zshrc.
  3. 更新 conda 基础环境。

我想出了以下解决方案:

# Installing Anaconda
if [ ! -d /opt/homebrew/Caskroom/anaconda ]; then brew install --cask anaconda; fi

# This adds conda to your PATH in .zshrc and makes sure that you can now use conda and activate conda environments
/opt/homebrew/anaconda3/bin/conda init zsh

# Sourcing zshrc
exec zsh

# Update conda base environment
conda update -n base -c defaults conda

问题是,它exec zsh替换了当前的 shell,因此 conda 更新不会发生。

有更好的解决问题的办法吗?

shell
  • 1 个回答
  • 17 Views
Martin Hope
hba
Asked: 2023-12-27 05:33:20 +0800 CST

从 shutdown 到 systemctl 的符号链接如何工作?

  • 7
which shutdown

回报

/usr/bin/shutdown

我也尝试过sudo which shutdown以防万一......但得到了相同的结果。

我理解了

lrwxrwxrwx 1 root root 9 Dec 13 03:38 /usr/bin/shutdown -> systemctl

我也可以做类似的事情(2小时内关闭机器)

sudo shutdown -h +120

但如果我尝试像这样的愚蠢的事情:

 sudo systemctl -h +120

我收到错误...

当我发出问题时,shutdown我实际上是在调用吗/usr/bin/shutdown?如果是这样,从 shutdown 到 systemctl 的链接实际上是如何工作的?

shell
  • 1 个回答
  • 33 Views
Martin Hope
xdhmoore
Asked: 2023-06-28 20:24:54 +0800 CST

zsh - 错误的数学表达式:非法字符:^A - 尝试从文件读取 0x01 时

  • 8

我正在 zsh 中读取二进制文件的前四个字节。前 3 个字节是0x00,第四个字节是0x01。我通过将文件作为字符串读取,然后将其分割并切片,创建了这些字节的数组,结果是:

>  echo -n "${(j::)bytes}" | xxd
00000000: 0000 0001                                ....

现在我尝试使用适当的幂从右端(第 4 个字节)开始将它们相加以获得总和。问题是,当我尝试在算术评估或整数变量中使用第四个字节时:

integer -i 10 b=${bytes[-1]} # This is the offending line
sum=$((sum + b * (256 ** i)))

我收到以下错误:

 bad math expression: illegal character: ^A

这是0x01.

如何告诉 zsh 将字节解释为数字?我注意到(#)扩展标志,它强制将表达式解释为数字,然后解释为字符,但我遇到了相反的问题。它似乎被解释0x01为一个角色。

更新:

我怀疑问题是数组的类型是字符(如果 zsh 集合有类型?),因为我使用(s::)整个文件的字符串创建了它,但我不确定如何转换数组元素返回整数。我尝试过

b=$(printf '%d' "$bytes[4]")

但这给了我一个类似的错误。我似乎可以通过以下任何一种方式重现:

printf '%d' $'^A'
integer b=$'^A'

其中由两个文字字符和^A组成。^A

shell
  • 1 个回答
  • 55 Views
Martin Hope
vim_overlord
Asked: 2023-05-29 13:48:13 +0800 CST

如何删除后面跟着另一个单词的每个单词,而不改变空格?

  • 8

假设我的文件如下所示:

foo  bar
 foo    bar bar
foo foo      bar  foo

我想要做的是删除foo后面跟着 a 的每个bar(即它们之间只有空格),而不更改任何空格。在下面,我用下划线替换了所有应该删除的字符,以明确这一点:

___  bar
 ___    bar bar
foo ___      bar  foo

该命令应生成以下文件:

  bar
     bar bar
foo       bar  foo

我怎样才能用 sed 或 awk 实现这一点?

shell
  • 3 个回答
  • 515 Views
Martin Hope
LukeMA82
Asked: 2023-05-21 23:41:42 +0800 CST

更改 macOS 的 zsh 完成缓存文件的默认位置

  • 6

我正在尝试更改 macOS 中 zsh 完成缓存文件的默认位置。我已阅读完成时的 zsh 文档,其中说“或者,可以通过 'compinit -d dumpfile' 给出显式文件名”,我设置了 ZCOMPCACHE 变量并继续执行以下代码:

  ZCOMPCACHE="$HOME/.cache/zsh/zcompcache"

# Create the parent directory if it doesn't exist
[[ -d $ZCOMPCACHE ]] || mkdir -p $ZCOMPCACHE

# Set the custom location for zcompdump files
_comp_files=($HOME/.cache/zsh/zcompcache(Nm-20))
if (( $#_comp_files )); then
    compinit -i -C -d "$HOME/.cache/zsh/zcompcache/.zcompdump-${ZSH_VERSION}"
else
    compinit -i -d "$HOME/.cache/zsh/zcompcache/.zcompdump-${ZSH_VERSION}"
fi

# `unset` the temporary variable
unset _comp_files

该代码运行并在 .cache/zsh 下创建 zcompcache 目录,并将缓存文件转储到该位置。

如图所示: 缓存文件的位置

但是,即使我设置了特定位置,我仍然会在 $HOME 目录中转储一个 .zcompdump 文件。

如图所示:
主目录中的 .zcompdump

我曾经使用 oh-my-zsh,但我发现它对于我的要求来说太臃肿了,之前的 oh-my-zsh 配置是否留下了任何残留设置,可能会导致我的 $HOME 目录中出现额外的 .zcompdump?

shell
  • 1 个回答
  • 235 Views
Martin Hope
Ярослав Рахматуллин
Asked: 2022-12-17 18:01:50 +0800 CST

为什么 bash 和 zsh 将 [-1] 评估为 1?

  • 5

我注意到了这种令人惊讶的行为,并且不太了解发生了什么:

$ bash -c 'echo [-1]'
1

$ zsh -c 'echo [-1]'
1

命令解析器似乎试图评估一个表达式:

$ echo [1,2,3]
1
$ echo [123-33]
1

因为如果表达式被引用,或者表明一个括号只是一个括号,那么奇怪的评估就被省略了。

$ echo \[123-33]
[123-33]

$ echo [123-33\]
[123-33]

$ echo '[123-33]'
[123-33]

在寻找线索时,我发现了这句话:

https://github.com/mvdan/sh

注意事项

索引 Bash 关联数组时,始终使用引号。否则静态解析器将不得不假定索引是一个算术表达式。

$ echo '${array[spaced string]}' | shfmt
1:16: not a valid arithmetic operator: string
$ echo '${array[dash-string]}' | shfmt
${array[dash - string]}

不知道该怎么做,因为在上下文中没有数组可言echo [1-1]

这当然可能是我自己环境中的某些东西引起的,但是当我检查时,它似乎不是:

$ env -i HOME=$(mktemp -d) bash --noprofile --norc
bash-5.1$ echo [1-1]
1

$ env -i HOME=$(mktemp -d) /bin/bash-4.4  --noprofile --norc
bash-4.4-4.4$ echo [1-1]
1

但是话又说回来,在 ubuntu 盒子上我得到了不同的结果:

$ bash --version | sed 1q; echo [1-1]
GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)
[1-1]

禁用所有选项不会改变此行为。

for i in `shopt | awk '/on$/ { print $1}'`; do shopt -u $i;done

你知道是什么导致这个括号表达式被求值吗?为什么结果是 1?

bash shell
  • 1 个回答
  • 22 Views

Sidebar

Stats

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

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Vickel Firefox 不再允许粘贴到 WhatsApp 网页中? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve