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

paradroid's questions

Martin Hope
paradroid
Asked: 2023-09-07 15:18:33 +0800 CST

如何格式化这个 awk 命令?

  • 5
$ echo "$(lastlog | grep $USER | awk '{print $(NF-5)" "$(NF-3)" "$(NF-4)" "$(NF-2)" "$(NF-1)" "$(NF-0)}')"
Thu 7 Sep 05:56:35 +0100 2023

我想用or替换该+0100位,如果该值是(我知道这个输出可能取决于区域设置)。BSTGMT+0000

$(NF-1)我确实测试了有条件设置变量的值,但我不知道如何将变量放入 awk print 命令中。

我还想在(日期)是单个数字时在$(NF-5)和之间添加额外的空格,但在它是两位数时则不添加空格。$(NF-3)$(NF-3)

如何最好地做到这一点?

awk
  • 1 个回答
  • 47 Views
Martin Hope
paradroid
Asked: 2023-05-17 03:18:06 +0800 CST

为什么这些 LESS_TERMCAP 变量在 Oracle Linux 上不起作用?

  • 5

很长一段时间以来,我一直在使用这些变量来为手册页着色:

# Colourise man pages
export LESS_TERMCAP_mb=$'\E[1;31m'      # begin bold
export LESS_TERMCAP_md=$'\E[1;36m'      # begin blink
export LESS_TERMCAP_me=$'\E[0m'         # reset bold/blink
export LESS_TERMCAP_so=$'\E[01;44;30m'  # begin reverse video
export LESS_TERMCAP_se=$'\E[0m'         # reset reverse video
export LESS_TERMCAP_us=$'\E[1;32m'      # begin underline
export LESS_TERMCAP_ue=$'\E[0m'         # reset underline
export LESS_TERMCAP_mr=$(tput rev)
export LESS_TERMCAP_mh=$(tput dim)
export LESS_TERMCAP_ZN=$(tput ssubm)
export LESS_TERMCAP_ZV=$(tput rsubm)
export LESS_TERMCAP_ZO=$(tput ssupm)
export LESS_TERMCAP_ZW=$(tput rsupm)

我正在考虑将它们放入一个函数中,这样它们就不会弄乱我的环境变量(但它们不能与 一起使用git apply --help,而是与 一起使用man git-apply)。

# Colourise man pages
man() {
  env \
    LESS_TERMCAP_mb=$'\E[1;31m' \
    LESS_TERMCAP_md=$'\E[1;36m' \
    LESS_TERMCAP_me=$'\E[0m' \
    LESS_TERMCAP_so=$'\E[01;44;30m' \
    LESS_TERMCAP_se=$'\E[0m' \
    LESS_TERMCAP_us=$'\E[1;32m' \
    LESS_TERMCAP_ue=$'\E[0m' \
    LESS_TERMCAP_mr=$(tput rev) \
    LESS_TERMCAP_mh=$(tput dim) \
    LESS_TERMCAP_ZN=$(tput ssubm) \
    LESS_TERMCAP_ZV=$(tput rsubm) \
    LESS_TERMCAP_ZO=$(tput ssupm) \
    LESS_TERMCAP_ZW=$(tput rsupm) \
    man "$@"
}

最近我开始使用 Oracle Linux,但它们在那里不起作用。Oracle Linux 基于 Scientific Linux(我认为),因此这可能不适用于 RHEL 和 CentOS/Fedora 等变体。

我怎样才能使它在所有类型的 Linux 上工作?

less
  • 1 个回答
  • 33 Views
Martin Hope
paradroid
Asked: 2023-05-16 06:28:55 +0800 CST

在 zsh 中获取脚本时混淆 pushd/popd 行为

  • 7

我有一个脚本,我在 bash 中使用它。它做各种事情并保留$PWD我在采购它之前的状态。

pushd ~/.dotfiles >/dev/null || exit 1

# Do various things

popd >/dev/null || exit 1

该脚本在 zsh 中也(大部分)运行良好,但是当我从该~/.dotfiles位置获取它时,我在获取它之后最终进入了前一个$OLDPWD。

pushd如果当前位置已经相同,zsh 似乎会忽略该行,因此该popd命令会转到$OLDPWD脚本来源之前的位置。

有没有办法阻止 zsh 忽略“冗余”pushd命令,同时保持脚本与 bash 兼容?

我的 中确实有以下内容.zshrc,但当我取消设置它们时也会发生这种情况:

setopt AUTO_PUSHD PUSHD_SILENT PUSHD_IGNORE_DUPS
zsh
  • 3 个回答
  • 31 Views
Martin Hope
paradroid
Asked: 2023-05-04 21:20:00 +0800 CST

有没有办法阻止 bash 解析 zsh 代码?

  • 13

我有一个文件,它来自.bashrc并.zshrc包含一些功能。它以前是两个单独的文件(对于每个 shell),但我现在使用一个文件,因为这些文件几乎相同,而且我更容易管理一个函数文件。

这两个 shell 有一个不同的函数,所以我想我可以使用条件语句以便使用正确的语句:

[[ $BASH_VERSION ]] && shell=bash
[[ $ZSH_VERSION ]] && shell=zsh

# Search man page for string
if [[ $shell == bash ]]; then
  mans() {
    local q="\'"
    local q_pattern="'${1//$q/$q\\$q$q}'"
    local MANPAGER="less -+MFX -p $q_pattern"
    man "$2"
  }
elif [[ $shell == zsh ]]; then
  mans() MANPAGER="less -+MFX -p ${(q+)1}" man $2
fi

这在 zsh 中似乎工作正常,但是当切换到 bash 时,我从 zsh 行收到错误,即使它不应该在 bash 中使用。有什么办法可以阻止它解析该行吗?

bash
  • 5 个回答
  • 1384 Views
Martin Hope
paradroid
Asked: 2023-04-29 08:53:33 +0800 CST

cp 命令要求确认覆盖,即使使用 -f 开关(zsh)

  • 5

我在一个文件中有以下内容来自~/.zshrc:

# Starship prompt
cp -f ~/.config/starship.toml ~/.config/starship-zsh.toml
export STARSHIP_CONFIG="$HOME/.config/starship-zsh.toml"
starship config character.success_symbol "[%](white)"
starship config character.error_symbol "[%](bold red)"
eval "$(starship init zsh)"

这样一来,我只需要为 bash 和 zsh 更新一个 starship 配置文件,但仍然有不同的提示字符。

登录时,系统询问我是否可以覆盖现有文件。这不会发生在我将上面的行放在.zshrc自己身上,但它会发生在这个源自.zshrc. 我有这样的文件,因为只有在安装了一组特定的软件包时才会有条件地获取该文件。

我可以通过先删除文件来解决这个问题,但我想知道为什么即使在切换时也会发生这种情况-f。

zsh
  • 1 个回答
  • 27 Views
Martin Hope
paradroid
Asked: 2022-09-11 17:26:55 +0800 CST

特定的 bash 完成文件在 /usr/share/bash-completion/completions 中不起作用,但在 /etc/bash_completion.d 中工作正常

  • 4

我有一个 git 存储库,在其中保存了一些静态链接的二进制文件以及相关的 man 文件和 bash 完成文件,这些文件都是使用GNU Stow进行“安装”来制作符号链接的。

我之前已经将 bash 完成文件的符号链接放入/etc/bash_completion.d没有问题,但最近我开始将它们放入/usr/share/bash-completion/completions,因为我认为这对它们来说是一个更正确的位置,因为二进制文件正在进入/usr/local/bin并且 man 文件在/usr/local/share/man.

除了四个特定的 bash 完成文件之外,一切都像以前一样工作,这些文件在放置在这个新位置时不再工作。这些是:

  • git-identity.bash-完成
  • tmux.completion.bash

这两个用于 fzf:

  • 完成.bash
  • 键绑定.bash

我还有 20 个其他 bash 完成文件可以正常工作。这些特定的 bash 完成文件是什么让它们在/etc/bash_completion.d没有问题但没有问题的情况下工作/usr/share/bash-completion/completions?

编辑: 它们也不起作用~/.local/share/bash-completion/completions。


附加信息:

这些文件来自标准的 Debian/Ubuntu.bashrc行:

# Enable programmable completion features
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

在这两个位置中,不是目录上的内容被获取,而是这两个文件:

/usr/share/bash-completion/bash_completion

/etc/bash_completion

如果 NOT ,第二个文件只是指向第一个文件shopt -oq posix。在我的设置中:

$ if ! shopt -oq posix; then echo "not posix"; fi
not posix

我认为答案必须在/usr/share/bash-completion/bash_completion中。


更多的:

我尝试用bash_completion最新版本替换,但这也不起作用。

https://github.com/scop/bash-completion

还..

这些文件在放入其中任何一个时都不起作用~/.local/share/bash-completion/completions。

bash autocomplete
  • 1 个回答
  • 86 Views
Martin Hope
paradroid
Asked: 2021-11-11 14:58:25 +0800 CST

当打开“colored-completion-prefix”时,如何设置 bash 选项卡完成的颜色?

  • 2

我已经colored-completion-prefix在我的~/.inputrc文件中设置了,但是当我完成选项卡时,已经输入的前缀部分是我不喜欢的颜色。

在 bash 手册中它说:

" coloured-completion-prefix (Off) 如果设置为 On,则在列出补全时,readline 使用不同的颜色显示可能补全集的公共前缀。颜色定义取自 LS_COLORS 环境变量的值。

由于我的配置,它目前是棕色并带有下划线,看起来不太好。它使用哪个条目LS_COLORS?

bash autocomplete
  • 1 个回答
  • 217 Views
Martin Hope
paradroid
Asked: 2019-12-15 09:24:19 +0800 CST

bash 中的 alt-n 是做什么用的?

  • 4

Alt+n返回 a:并且显然是用于前向搜索,但是您如何使用它?

bash keyboard-shortcuts
  • 1 个回答
  • 611 Views
Martin Hope
paradroid
Asked: 2019-12-12 04:00:12 +0800 CST

如何在.inputrc中将组合键绑定到null?

  • 2

您可以像这样Ctrl-Left绑定键:Ctrl-Right.inputrc

# Ctrl-Left
"\033[1;5D": backward-word
# Ctrl-Right
"\033[1;5C": forward-word

我将如何绑定Ctrl-Up并且Ctrl-Down什么都没有?

# Ctrl-Up
"\033[1;5A": null
# Ctrl-Down
"\033[1;5B": null

这显然是行不通的。

我使用这些键在 tmux(嵌套配置)中执行操作,但是;3~当我使用其中任何一个键时,通常会输出到终端。

我希望我能够将它们绑定到任何东西,同时仍然让密钥适用于 tmux。

keyboard-shortcuts readline
  • 2 个回答
  • 168 Views
Martin Hope
paradroid
Asked: 2019-09-28 08:21:00 +0800 CST

如何整齐地将列表粘贴为列?[复制]

  • 2
这个问题在这里已经有了答案:
并排打印两列中的两个文件 4 个答案
3年前关闭。

我有两个单词列表:

$ head -n 15 words.txt > list1
$ tail -n 15 words.txt > list2

我将它们粘贴到列中:

$ paste list1 list2

结果是这样的,列之间有标签:

2       Zwiebel
1080    zwieselite
&c      Zwingle
10-point        Zwingli
10th    Zwinglian
11-point        Zwinglianism
12-point        Zwinglianist
16-point        zwitter
18-point        zwitterion
1st     zwitterionic
2,4,5-t Zwolle
2,4-d   Zworykin
20-point        ZZ
2D      zZt
2nd     ZZZ

我希望这样,在某些行的列之间有更多选项卡:

2               Zwiebel
1080            zwieselite
&c              Zwingle
10-point        Zwingli
10th            Zwinglian
11-point        Zwinglianism
12-point        Zwinglianist
16-point        zwitter
18-point        zwitterion
1st             zwitterionic
2,4,5-t         Zwolle
2,4-d           Zworykin
20-point        ZZ
2D              zZt
2nd             ZZZ

我该怎么做呢?

text-processing
  • 1 个回答
  • 67 Views
Martin Hope
paradroid
Asked: 2019-08-03 05:50:37 +0800 CST

$(logname) 的意义是什么?

  • 5
sudo sh -c 'echo "$(logname) ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/$(logname)' & sudo chmod 440 /etc/sudoers.d/$(logname)

我使用上面的单线来允许当前用户在远程连接的主机上执行 sudo 而无需密码。

但究竟是$(logname)什么?

在本地机器上,echo $(logname)什么都不返回,而返回echo $LOGNAME,所以它不是环境变量,尽管我从未见过远程机器上的值有任何不同。

另外,是否还有其他类似的$(foo)变量(或任何它们被称为的变量)?

environment-variables
  • 1 个回答
  • 632 Views
Martin Hope
paradroid
Asked: 2018-12-19 19:25:24 +0800 CST

从 echo 重定向输出时,如何避免这种意外行为?

  • 1

我想使用一行命令轻松添加到我的主机文件中,但我得到了意想不到的结果。

$ sudo sh -c 'echo -e "10.0.10.0\tserver.bananas.com\tserver" >> /etc/hosts'

$ cat /etc/hosts
-e 10.0.10.0        server.bananas.com        server

我在 echo 上使用 -e 开关来启用制表符的反斜杠转义,但 -e 包含在重定向输出中。

我怎样才能避免这种情况?

echo io-redirection
  • 1 个回答
  • 30 Views
Martin Hope
paradroid
Asked: 2018-11-24 13:05:00 +0800 CST

如何区分这两个命令的输出?[复制]

  • 0
这个问题在这里已经有了答案:
如何区分两个命令的输出?[重复] (2个答案)
3年前关闭。

我有一个别名,我用它来删除通过管道传输给它的评论:

alias decomment='egrep -v "(^#.*|^$)"'

我目前在 squid 代理设置方面遇到了一些困难,所以我想比较一下配置更改。我想使用我的 decomment 别名,因为 squid.config 文件有大量注释掉的行。

我如何diff在一行中比较(使用)这两个命令的输出?

$ cat squid.conf.old | decomment 

$ cat squid.conf.new | decomment

..我可以这样:

$ cat squid.conf.old | decomment > output1

$ cat squid.conf.new | decomment > output2

$ diff output1 output2
pipe io-redirection
  • 2 个回答
  • 344 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