问题列表 - 第5552页

存储 bash 脚本生成的半短期数据的最佳位置是什么?

更新

\n

想出了一个更好的解决方案:\n基目录/var/tmp

\n

因为想一想:\n https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

\n

| /var/tmp | Temporary files to be preserved between reboots. |

\n

该位置实际上与 /tmp 类似,只不过它致敬了使数据集不适合 /tmp 的唯一条件:它必须在重新启动后继续存在。

\n

从所有可能的角度来看,将所述数据集放入 /var/tmp 只有优点:

\n

\xe2\x80\xa2 很符合地点描述。

\n

\xe2\x80\xa2 bash 脚本 X 可以检查此位置并在此位置创建子目录,无需 sudo 或偏离建议不要在该位置为自己的 bash 脚本创建子目录的约定,这些脚本不随发行版一起提供。

\n

mkdir /var/tmp/bash_script_x_logs

\n

\xe2\x80\xa2 bash 脚本 x 可以在那里保存日志 - 对于每天第一次处理的每个文件 - 无需提升权限、sudo 或 root

\n
ls /var/tmp/bash_script_x_logs\n\nbash_script_A\nbash_script_B\nbash_script_Y\nbash_script_Z\n
Run Code Online (Sandbox Code Playgroud)\n

\xe2\x80\xa2 每个人都可以访问这个地方,它是可共享的,可以在处理后的 bash 脚本 Y 上进行协作工作。

\n

例如,假设有用户 A、B 和 C,位于一台主机上或分布在多台主机上。

\n

现在是上午 8 点,用户 C 是第一个处理 bash 脚本 …

filesystems bash shell-script data

6
推荐指数
1
解决办法
934
查看次数

如何使用 systemctl 列出可以在安装新单元文件后启用的服务和计时器单元?

我的情况

我在下面安装了一些新的单元文件$HOME/.local/share/systemd/user/

ls -1 $HOME/.local/share/systemd/user/
some.service
some.timer
some_other.service
Run Code Online (Sandbox Code Playgroud)

我运行了以下命令以正确加载它们:systemctl --user daemon-reload

它们出现在 的自动完成中systemctl --user enable <tab> <tab>。我正在寻找的是一种稍后用口香糖编写脚本的方法,以向我显示当前未启用的那些单元的列表。

我的问题

还有比ls -1 $HOME/.local/share/systemd/user/获取我正在寻找的列表更好的方法吗?

systemctl通过自动完成了解单位,但对于一个看似相当简单的问题,我不想那么深入。我查看了systemctl list 所有可能的(包括禁用的)服务和 Systemd 文档的某些部分,但我还无法找到我正在寻找的内容。它不一定是完美的,自动完成列表还有一些我可以过滤掉的其他条目。这对我来说不会是问题。

systemd systemctl

3
推荐指数
2
解决办法
375
查看次数

.. 和 . 的分辨率如何?在Linux系统中继续进行吗?

我正在阅读 Sobell 的《Linux 命令、编辑器和 Shell 编程实用指南》,4e。早些时候,他谈到了...,并说它们是工作目录和工作目录父目录的“路径名的同义词”。我的问题是我是否应该将它们视为相对路径名或绝对路径名的同义词。最后,我认为我的误解与不了解 Linux 系统如何解析路径名有关。

举个例子:假设我输入如下命令

cd ..

我是否应该将 shell 视为用 .. 替换当前工作目录的父目录的绝对路径名?或者,当我给出相对路径名时,“分辨率”的行为是否有所不同(这里似乎是这种情况,因为我没有以斜杠 / 开始我的路径)?在某种程度上,我想这个问题可以表述为“相对路径命名是绝对路径命名的特殊情况吗?因为每个相对路径名都替换为适当的绝对路径?”

linux path resolution

5
推荐指数
1
解决办法
1477
查看次数

为什么将 sudo umount /mnt 放入 shell 脚本中执行失败,但在命令行中执行成功?

当我在环境中执行以下脚本时Debian 12 live,我发现在这个脚本中无法执行umount /mnt。提示是/mnt : target is busy. 但是,脚本执行后,我能够sudo umount /mnt在命令行上成功执行。我已经给这个脚本添加了777权限。问题是什么?

\n
#!/usr/bin/bash\nset +x\ncurrent_path=$(pwd)\necho $current_path\nhdstr=/dev/mmcblk0\nhdstr1=${hdstr}p1\nhdstr2=${hdstr}p2\nhdstr3=${hdstr}p3\n\nroot_path=/mnt\nboot_path=${root_path}/boot\ngrub_path=${boot_path}/grub\nefi_path=${boot_path}/efi\n\nlib64_path=${root_path}/lib64\nbin_path=${root_path}/bin\nlib_path=${root_path}/lib\n\necho "debug:function definition"\n    \nexecute_command() {\n    local command=$1\n    eval "$command"\n    local status=$?\n    if [ $status -eq 0 ]; then\n        echo "run the cmd:$command success"\n    else\n        echo "failed to run the cmd:$command" \n        exit 1\n    fi\n}\n\nadd_env_for_chroot() {\n    echo "add env for chroot"\n    execute_command "sudo mkdir -p ${lib64_path}"\n    execute_command "sudo ln -s ${lib_path} ${lib64_path}"\n    execute_command "sudo cp ${lib_path}/* ${lib64_path}/ -nra"\n}\n\n\nchange_root() {\n …
Run Code Online (Sandbox Code Playgroud)

linux shell debian

3
推荐指数
1
解决办法
2137
查看次数

将 Ubuntu Server 22.10 Kinetic Kudu 升级到 23.10 Mantic

我正在尝试将我的 ubuntu 服务器 22.10 Kinetic Kudu 升级到 23.10 mantic。

我可以使用此sources.list将我的Kinetic版本升级到最新更新:

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://old-releases.ubuntu.com/ubuntu kinetic main restricted
# deb-src http://old-releases.ubuntu.com/ubuntu kinetic main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://old-releases.ubuntu.com/ubuntu kinetic-updates main restricted
# deb-src http://old-releases.ubuntu.com/ubuntu kinetic-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in …
Run Code Online (Sandbox Code Playgroud)

linux ubuntu

5
推荐指数
1
解决办法
2773
查看次数

如何拆分文本文件中给定列的字符串值

我在 Linux 机器上有一个包含两列的文本文件:

  • 第1列 = id_no(大部分为5位,有的为6位);
  • 第 2 列 = Genetic_markers(全部长度为 50674 位);
12345 0102010205
54322 2221110051
123456 1122011510
Run Code Online (Sandbox Code Playgroud)

我想将文件更改为如下所示:

 12345 0 1 0 2 0 1 0 2 0 5
 54322 2 2 2 1 1 1 0 0 5 1
123456 1 1 2 2 0 1 1 5 1 0
Run Code Online (Sandbox Code Playgroud)
  1. 如何更改第一列,使其向右对齐(如数字所示)?

  2. 有人可以帮我用最可靠的方法来更改第二列数字之间的空格吗?请解释代码的元素及其作用。

谢谢

sed awk text-processing bioinformatics

2
推荐指数
2
解决办法
407
查看次数

意外削减产量

我从 cut 中得到了意想不到的输出。我期望没有输出,因为没有基于指定分隔符的第三个字段。前两行有意使用逗号作为分隔符,第三行同时使用逗号和分号。我知道 cut 通常是如何工作的,但我试图表明在这个例子中这不应该产生输出,但它确实产生了输出。

输入文件:students.txt

Fred,Jones,sophomore
Mary,Adams,freshman
Sam,Fredrick;senior
Run Code Online (Sandbox Code Playgroud)

剪切命令:

cut -f3 -d ';' students.txt
Run Code Online (Sandbox Code Playgroud)

意外的输出:

Fred,Jones,sophomore
Mary,Adams,freshman

Run Code Online (Sandbox Code Playgroud)

cut

0
推荐指数
1
解决办法
49
查看次数

sed 命令出现错误标签太长:在Solaris 上

给定数据库名称oltt206DB01我希望从下面的 xml 中提取其各自的username,password和:connection string

wladmin@myremhost:/tmp$ cat /web/bea_apps/uat/Tomcat_Home_v9.0.56/TomcatNode01/conf/server.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy …
Run Code Online (Sandbox Code Playgroud)

grep solaris xml sed

0
推荐指数
1
解决办法
73
查看次数

如何使用 miller 创建新列并向其添加随机标识符

我想在我的csv文件中添加一列,其中包含随机创建的“案例编号”。案例编号的前 2 个字母必须是 AZ 中的任意大写字母。接下来是 5 个随机数。

输入:

COMPANY,NAME,STREET,ZIP,CITY,IBAN
Test Ltd,John,Big Ben 343,4343,London,UK2348020384
Test Ltd,Kate,Big Ben 343,4343,London,UK4389223892
Test Ltd,Jake,Big Ben 343,4343,London,UK3892898999
Run Code Online (Sandbox Code Playgroud)

输出

COMPANY,NAME,STREET,ZIP,CITY,IBAN,CASENUMBER
Test Ltd,John,Big Ben 343,4343,London,UK2348020384,IN84903
Test Ltd,Kate,Big Ben 343,4343,London,UK4389223892,TY93842
Test Ltd,Jake,Big Ben 343,4343,London,UK3892898999,OL34307
Run Code Online (Sandbox Code Playgroud)

如何与米勒一起做到这一点?我准备好了以下命令

mlr -I --csv put '${CASENUMBER}=xxx' then \
    reorder -f COMPANY,NAME,STREET,ZIP,CITY,IBAN,CASENUMBER input/input.csv
Run Code Online (Sandbox Code Playgroud)

到底要在上面的命令中添加什么?

linux shell text-processing csv miller

3
推荐指数
1
解决办法
395
查看次数

sed 字边界:用命令替换命令宏

我继承了一段代码,其中使用“命令宏”代替要运行的底层命令,例如,$TR使用 代替tr. 我想用来sed将命令宏转换回它们引用的 shell 命令。问题出在单词边界上:

$ echo '$TR $TRUE $TRUNCATE "$TR ($TR' | sed s/\$TR/tr/g
tr trUE trUNCATE "tr (tr
Run Code Online (Sandbox Code Playgroud)

显然是错误的。但是,当我尝试使用\b设置翻译的单词边界时,这也不起作用:

$ echo '$TR $TRUE $TRUNCATE "$TR ($TR' | sed s/\$TR\b/tr/g
$TR $TRUE $TRUNCATE "$TR ($TR
Run Code Online (Sandbox Code Playgroud)

按宏长度逆序搜索(即,首先替换$TRUNCATE,然后$TRUE,然后$TR)并不是一个完整的解决方案,因为还存在诸如$TS $TS_FORMAT仅将独立的内容$TS转换为 之类的情况ts

\b单词边界标签在这里不起作用有什么原因吗?我需要做什么来解决这个问题?

$ sed --version
sed (GNU sed) 4.7
Packaged by Debian
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: …
Run Code Online (Sandbox Code Playgroud)

sed regular-expression

2
推荐指数
1
解决办法
209
查看次数