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-288274

Chris's questions

Martin Hope
Chris
Asked: 2023-07-07 02:57:13 +0800 CST

从 Udev 以本地用户身份 su 的正确方法是什么?

  • 5

当运行与显示相关的命令时,类似的命令似乎xrandr只有在作为本地用户运行时才起作用。

但是,当通过 udev 规则以本地用户身份运行脚本时:

SUBSYSTEM=="drm", ACTION=="change", RUN+="su -l --shell=/bin/bash -c /opt/echo-foo.sh chris"

定义为echo-foo.sh:

#!/bin/bash
echo "foo"

准备udev调试:

udevadm control --log-priority=debug
journalctl -f # tail the logs

udev插入/拔出显示器时出现以下错误:

Starting 'su -l --shell=/bin/bash -c /opt/echo-foo.sh chris'
Sucessfully forked off '(spawn)' as PID #####
Process 'su -l --shell=/bin/bash -c /opt/echo-foo.sh chris' failed with exit code 1.

但是,从 root 开始,该命令可以工作。有没有正确的方法来做到这一点,而我遗漏了一些细节?


其他详情:

-rwxr-xr-x root root 3.3K ... /opt/echo-foo.sh

-- 3.3K:我的真实脚本被注释掉了。

udev
  • 2 个回答
  • 25 Views
Martin Hope
Chris
Asked: 2023-01-29 11:08:39 +0800 CST

如何同时更改 shell 和更改启动脚本?-

  • 5

我在使用opkgentware 包管理器运行的嵌入式发行版上。我有一个bash安装,现在或永远都不支持制表符补全。所以,我要切换到zsh.

切换成功了zsh,但是在这个精简版的linux中,换壳后viarc启动时读取的文件不会自动改变。它仍然是,这在很大程度上是良性的。zshexec zsh~/.bashrc

但是,它打破了zsh提示。

\[\033[00;37m\]this-comp\[\033[01;31m\]: \[\033[01;37m\]$(echo -n "${PWD/#$HOME/\~}" | awk -F "/" '{
if (length($0) > 50) { if (NF>4) print $1 "/" $2 "/.../" $(NF-1) "/" $NF;
else if (NF>3) print $1 "/" $2 "/.../" $NF;
else print $1 "/.../" $NF; }
else print $0;}')/\[\033[00m\]

如何在更改 shell 时配置或强制启动文件而不是.zshrc?.bashrc否则,我将不得不修改.bashrc设备更新程序提供的脚本。

bash
  • 1 个回答
  • 29 Views
Martin Hope
Chris
Asked: 2022-12-21 07:32:07 +0800 CST

如何在 Mac 上使用现代 coreutils?

  • 6

如何在 Mac 上获取现代 coreutils?


我遇到了这个问题使用csplit:

foo.txt:

foo
1
foo
2
foo
3
$: csplit foo '^foo$' '{*}'
# error

仔细检查manpage, man csplit,csplit在 Mac 上是 FreeBSD 版本并且不提供该'{*}'选项。事实上,我必须提前提供确切的拆分次数。这将触发czplit我重新实施,或者我可以GNU coreutils在 mac 上使用。

有办法吗?

macos
  • 1 个回答
  • 27 Views
Martin Hope
Chris
Asked: 2022-09-24 05:51:34 +0800 CST

是否有一个无管道、简单的单行程序来为文件中的每一行执行命令?

  • 2

例如,

# a demonstration of the functionality
cat dependencies | xargs -n 1 pip install -U  

# expressed as a non-simple, pipeless one liner
awk '{system("pip install -U $0")}' dependencies

似乎应该有一些命令用于这个确切的任务,只有一个标志,但我不知道它是什么。有这样的事吗?

bash command
  • 2 个回答
  • 94 Views
Martin Hope
Chris
Asked: 2022-01-08 07:53:59 +0800 CST

如何手动确保 tmux 以 bash 完成启动?

  • 0

这里的问题可能是一个跨平台问题(我正在运行安装tmux了 Brew的 MacOSX BrewBASH和 bash 完成。

当我第一次安装tmux时,一个新的打开窗口的运行方式与具有完全初始化的 bash 环境的原生 linux tmux 会话完全一样。尤其是 Bash 补全工作。


最近,bash 完成在打开新窗口时停止运行。我有以下“微不足道”的解决方法:

$: tmux new -s foo
$: vi 
(from vi)
:sh
$: echo "bash completion is now working again"

但是,几周后,这已经有资格修复。


我认为这个问题是一个 X 或 Y 问题:要么我tmux在 MacOSX 上进行修复(并学习如何tmux, bash, 并bash-completion在引擎盖下工作更多一点),

- 或者 -

我弄清楚了如何在创建窗口时tmux运行vi并将“:sh”键发送到窗口。vi

一方面,后一种选择更容易,但有一些缺点会导致我回到解决方案一:每次我想杀死一个窗口时我都必须CTRL-D+ SHIFT[colon]q!+ (这通常是)。CTRL-D


我的问题与第一个选项有关:

如何管理或控制tmux启动和/或特定于窗口的启动,以便我可以手动初始化bash并bash-completion在 mac 上使用我需要的任何适当(或 hackish)修复来恢复新tmux窗口的典型工作顺序?

bash tmux
  • 1 个回答
  • 111 Views
Martin Hope
Chris
Asked: 2021-10-08 08:53:35 +0800 CST

可以使 GNU Parallel 输出在 linewise 模式下运行时执行的命令行吗?

  • 3

假设我在 file 中有一个命令列表cmd_file。

我通过以下方式运行这些命令:

cat cmd_file | parallel -k -I {} "{}"

其中一个命令失败。所有命令都使用具有不同输入的完全相同的 CLI 工具。

现在,我必须一次运行所有命令,以通过将命令列表替换为命令生成器循环来查找错误命令(涉及更多):

for ...; do
  # assemble the vars for the command
  echo "<command>"
  <command>
done

例如,是否有一种机制可以并行显示失败的命令,或者将执行顺序显示到 stderr 上?

gnu-parallel
  • 3 个回答
  • 421 Views
Martin Hope
Chris
Asked: 2020-02-12 13:06:16 +0800 CST

粘贴:合并每一行的行,最多只包含最小的row-ct文件中的行数

  • 0

假设我有两个文件,

// foo
a
b
c
d

// bar
x,y,z
p,d,q

问题是:

paste -d ',' foo bar

... 

a,x,y,z
b,p,d,q
c
d

相反,我想(以某种方式)产生以下内容:

a,x,y,z
b,p,d,q

但是,目前,我看到的唯一方法是编写一个小程序来检查最小文件的行数,并在截断的文件上运行粘贴。

最坏的情况是,我必须编写一个已编译的自制工具来保持命令行“简单”,以实现快速脚本和敏捷性。

必须有某种方法可以使用已经存在的工具来做到这一点,但我不知道如何。有没有办法进行这种保守的粘贴操作?

我目前最好的解决方案是:

paste -d ',' foo bar | awk -F ',' '{if(NF > 2){print $0}}'
bash paste
  • 1 个回答
  • 112 Views
Martin Hope
Chris
Asked: 2020-02-11 07:38:35 +0800 CST

awk:绕过标头而不编写代码

  • 0

这是我在常规基础上输入的一个表达式,因为每个人都使用带头的 CSV 文件,而且我也必须传递标题以达到我的目的:

cat foo.csv | awk -F',' 'BEGIN{start=0}{if(start==0){start = 1; print $0; next;} ...}'

必须有一些简单的设置来允许标头通过,并避免创建 BASH 脚本包装器(并在我的大脑中拖曳它)或一遍又一遍地编写它。

有这样的设置吗?

bash shell
  • 1 个回答
  • 975 Views
Martin Hope
Chris
Asked: 2020-02-06 07:19:39 +0800 CST

SSV/CSV 操作:计算比率

  • 0

请注意,我知道datamash并且是一位经验丰富的awk用户。我正在寻找比awk. 假设我有以下内容:

// data_file
foo bar biz
10  100 1000
11  150 990
10  95  1010
9   99  950
// usage goal, in pseudo code
cat data_file | <tool> --ratio foo,bar --ratio foo,biz --ratio bar,biz
// desired output
foo bar biz foo_bar foo_biz bar_biz
10  100 1000 0.1    0.01    0.1  
11  150 990  0.073  0.011   0.1515
10  95  1010 0.105  0.0099  0.094
9   99  950  0.09   0.0095  0.1042

为了得到这个接口,我将用 C++ 构建一些微不足道的东西。

在此之前,在 Unix 中是否有一个解决方案?

bash awk
  • 2 个回答
  • 138 Views
Martin Hope
Chris
Asked: 2020-02-01 08:54:59 +0800 CST

GNU datamash:将字段操作应用于所有列?

  • 0

在GNU datamash中,如何countunique在所有列上运行字段操作(在我的情况下是 )?

例如,在伪代码中:

cat BFCSV.csv | datamash -t',' countunique *
datamash
  • 1 个回答
  • 91 Views
Martin Hope
Chris
Asked: 2020-01-23 12:16:25 +0800 CST

jq:通配符可能吗?[复制]

  • 0
这个问题在这里已经有了答案:
用 jq 检索嵌套元素 1 个答案
去年关闭。

我有以下 json 输出:

{ x0: { scores: { small, human readable }, payload: { huge data } }
{ x1: ... }
{ x2: ... }
...
{ xn: ... }

我想做的是,当我完成生成此报告时,将其放入一个文件和 jq 中,像这样,在伪代码中:

{json content} | tee out.json | jq '.*.scores'

一个 glob 如何与 jq 这样?

bash json
  • 1 个回答
  • 271 Views
Martin Hope
Chris
Asked: 2019-12-08 12:20:55 +0800 CST

仅产生 linux 发行版名称的命令 [重复]

  • 2
这个问题在这里已经有了答案:
如何在简单的 shell 脚本中获取发行版名称和版本号? (20 个回答)
2年前关闭。

假设我需要为许多 Linux 发行版中的任何一个安装一组先决条件。在这种情况下,我需要根据发行版切换我的安装表达式。

我知道uname -v,并且我知道我可以使用一些易碎的字符串表达式和逻辑来检查此命令的输出。但是我真正需要的是:

V=$(something-like-uname)
echo $V

"Debian"
# or
"Gentoo"
# or
"Redhat"
# or 
"Arch"
# etc.

这个命令是什么?(它存在吗?)

linux distributions
  • 3 个回答
  • 289 Views
Martin Hope
Chris
Asked: 2019-09-24 14:38:58 +0800 CST

构建包:产生“amd64”的命令(如uname)

  • 2

假设我有一个构建我的包的 makefile,并且我只希望在包文件不存在时构建包:

package: foo_0.0.0_amd64.deb
  cd foo-0.0.0 && debuild -uc -us

所以我是 debian 构建过程的新手,但我预计我会找到一种为不同架构构建的方法,或者我将在本地使用不同的架构并且文件名会改变。所以,我将它设置为一个变量:

major=0
minor=0
update=0
release=amd64
package: foo_${major}.${minor}.${update}_${release}.deb

我有一台机器可以uname -r产生#.##.#-#-amd64. amd64在 unix/linux中获取它的防弹方法是什么?

debian
  • 1 个回答
  • 790 Views
Martin Hope
Chris
Asked: 2019-09-21 13:50:39 +0800 CST

Debian 软件包:如何处理需要向 bashrc 添加内容才能激活的安装?

  • 0

假设我有一组脚本和一个支持它们及其依赖项的 python 环境。

我想自动激活 python 环境,以便对于我的特定用例,.bashrc/.zshrc更新用户以便“获取”python 环境。

.bashrc当内容被推送到主目录文件时,处理这个问题的正确/debionic 方法是什么?

dpkg
  • 2 个回答
  • 40 Views
Martin Hope
Chris
Asked: 2019-09-18 10:14:20 +0800 CST

Dpkg dh_install:从构建目录而不是 debian/tmp 目录复制文件?

  • 3

假设我有一个 debian 包,如下所示:

project_pkg/
  .git
  project_0.0-1/
     debian/
        install
        ...
     project (git submodule with tagged commit)

使用以下安装文件:

// .../debian/install
#!/usr/bin/env bash
find $(pwd)/project/path/to/binaries -type f -executable -printf "$(pwd)/project/path/to/binaries/%f usr/bin\n"

并且项目有一个make入口点,make -C project build例如生成我需要打包的所有必要文件。

整个打包过程的制作/构建组件现在可以工作。但是,理想情况下,我会从安装文件夹中找到我需要安装的所有必要文件。

我现在有一个解决方案,这将涉及将项目中的二进制文件debian/tmp/从外部/debian或从/debian/rules.

但是我可以很容易地设置dh_install从项目中获取文件,如果有办法这样做的话..

A)有没有办法dh_install从项目中获取文件,

B)只是运行两个find命令并将二进制文件复制到debian/tmp目录中吗?

printfC)我是否应该破解它并在安装查找命令中添加前缀../..

debian
  • 1 个回答
  • 1348 Views
Martin Hope
Chris
Asked: 2019-09-18 08:24:46 +0800 CST

Dpkg Debuild dh_helper:如何将 /opt/package 中安装的二进制文件符号链接到 /usr/local/bin?

  • 3

我正在打包我的第一个 debian 项目,并且我已经完成了 100% 的工作gnu-make(对我来说,这里一切皆有可能,所以我现在的困难完全在于导航dpkg/debuild系统)。

我现在只有一些虚拟编译,具有以下规则文件和兼容性:

// debian/compat
10

// debian/rules

#!/usr/bin/make -f
%:
  dh $@

override_dh_auto_install:
  cat binaries.txt | xargs -I arg install -D -m 0755 arg $$(pwd)/debian/package/opt/package/arg

假设所有编译和源文件都通过 make 在包含debian目录的目录中进行管理——我有一个按预期工作的最小案例。

// binaries.txt
foo
bar

只是一个二进制文件,列出了我的微不足道的制作过程产生的虚拟二进制文件。

我正在尝试根据此处的文档编写符号链接deb_helper以符号链接我的二进制文件:/opt/package/usr/local/bin

https://manpages.debian.org/stretch/dpkg/dpkg-maintscript-helper.1.en.html

但我运气不太好。这方面的程序是什么?

debian
  • 1 个回答
  • 1552 Views
Martin Hope
Chris
Asked: 2019-07-19 10:38:35 +0800 CST

ssh:订阅 nohup.out

  • 1

假设我在远程机器上启动了一个长时间运行的任务nohup:

nohup command &

有没有办法让我将内容流式传输nohup.out到终端ssh,使其在nohup.out发布时得到更新?

ssh nohup
  • 1 个回答
  • 121 Views
Martin Hope
Chris
Asked: 2019-03-13 12:08:49 +0800 CST

GNU Parallel:像文件一样重定向管道标准输入

  • 1

假设我要并行化以下命令:

my_command --file <(my | pipeline)

现在,我想在特定的块中并行化:

my | pipeline | parallel --spreadstdin my_command --file <(parallel's stdin)

我将如何使用 gnu 并行完成此重定向?

gnu-parallel
  • 1 个回答
  • 368 Views
Martin Hope
Chris
Asked: 2018-12-03 10:08:11 +0800 CST

Debian:通过 flatpak 安装的应用程序,从搜索栏运行,从 cmd 行中丢失

  • 1

我razerCommander在 Debian 9.0 上通过 flatpak 安装。

如果我按下键盘上的“windows”键并搜索razerCommander,应用程序会出现并在单击时运行(因此它通过操作系统 gui 运行)。

但是,它没有出现在命令行中,我找不到它。

flatpak 将可执行文件存放在哪里,为什么它会出现在应用程序列表中,而不是通过命令行?

debian software-installation
  • 1 个回答
  • 92 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