AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-1932

paradroid's questions

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

Como posso formatar este comando 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

Quero substituir o +0100bit por BSTou GMTse o valor for +0000(estou ciente de que essa saída provavelmente depende da localidade).

Eu testei o valor de $(NF-1)para definir condicionalmente uma variável, mas não sei como colocar a variável dentro do comando awk print.

Também quero colocar um espaço extra entre $(NF-5)e $(NF-3)quando $(NF-3)(a data) for um único dígito, mas não quando for dois dígitos.

Qual a melhor forma de fazer isso?

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

Por que essas variáveis ​​LESS_TERMCAP não funcionam no Oracle Linux?

  • 5

Eu tenho usado essas variáveis ​​por um longo tempo para colorir páginas de manual:

# 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)

Estou pensando em colocá-los em uma função para que não sobrecarreguem minhas variáveis ​​de ambiente (mas eles não funcionam com git apply --help, mas sim com 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 "$@"
}

Recentemente, comecei a usar o Oracle Linux e eles não funcionam lá. O Oracle Linux é baseado no Scientific Linux (eu acho), então isso provavelmente não funciona no RHEL e variantes como CentOS/Fedora etc.

Como posso fazer isso funcionar em todos os tipos de Linux?

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

Comportamento pushd/popd confuso ao fornecer script no zsh

  • 7

Eu tenho um script que procuro enquanto estou no bash. Ele faz várias coisas e retém o que $PWDeu estava antes de obtê-lo.

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

# Do various things

popd >/dev/null || exit 1

O script roda (principalmente) bem em zsh também, mas quando eu o procuro do ~/.dotfileslocal, acabo no anterior $OLDPWDdepois de procurá-lo.

Parece que o zsh desconsidera a pushdlinha se o local atual já for o mesmo, então o popdcomando vai para o $OLDPWDanterior quando o script foi originado.

Existe uma maneira de impedir que o zsh ignore o pushdcomando "redundante", ao mesmo tempo em que mantém o script compatível com o bash?

Eu tenho o seguinte no meu .zshrc, mas também acontece quando eu os desconfiguro:

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

Existe uma maneira de impedir que o bash analise o código zsh?

  • 13

Eu tenho um arquivo que é originário .bashrce .zshrcque contém algumas funções. Anteriormente, eram dois arquivos separados (para cada shell), mas agora estou usando um único arquivo, pois os arquivos eram quase idênticos e é mais fácil para mim gerenciar um único arquivo de funções.

Existe uma função que é diferente para os dois shells, então pensei em usar uma declaração condicional para que a correta seja usada:

[[ $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

Isso parece funcionar bem no zsh, mas ao mudar para o bash, recebo um erro da linha zsh, mesmo que não deva ser usado no bash. Existe alguma maneira de impedir que ele analise essa linha?

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

comando cp solicitando confirmação de substituição mesmo com a opção -f (zsh)

  • 5

Eu tenho o seguinte em um arquivo que é originário de ~/.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)"

Isso é para que eu precise manter apenas um arquivo de configuração de nave estelar atualizado para bash e zsh, mas ainda ter um caractere de prompt diferente para cada um.

Ao fazer login, sou perguntado se posso substituir o arquivo existente. Isso não acontece com eu coloquei as linhas acima em .zshrcsi, mas sim neste arquivo que é originário de .zshrc. Eu tenho assim, pois este arquivo é originado condicionalmente apenas quando um determinado conjunto de pacotes foi instalado.

Posso contornar isso excluindo o arquivo primeiro, mas gostaria de saber por que isso está acontecendo mesmo com a -ftroca.

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

Arquivos específicos de conclusão do bash não funcionam quando em /usr/share/bash-completion/completions, mas funcionam bem em /etc/bash_completion.d

  • 4

Eu tenho um repositório git onde mantenho alguns binários vinculados estaticamente junto com arquivos man relacionados e arquivos de conclusão do bash, que são todos 'instalados' usando o GNU Stow para fazer os links simbólicos.

Eu já coloquei os links simbólicos para os arquivos de conclusão do bash /etc/bash_completion.dsem problemas, mas recentemente comecei a colocá-los /usr/share/bash-completion/completions, pois pensei que era um local mais correto para eles, visto que os binários estavam entrando /usr/local/bine os arquivos man em /usr/local/share/man.

Tudo funciona como antes, exceto quatro arquivos específicos de conclusão do bash, que não estão mais funcionando quando colocados neste novo local. Estes são:

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

E esses dois para fzf:

  • conclusão.bash
  • key-bindings.bash

Eu tenho 20 outros arquivos de conclusão do bash que funcionam bem. O que há nesses arquivos de conclusão de bash específicos que os fazem funcionar /etc/bash_completion.dsem problemas, mas não em /usr/share/bash-completion/completions?

EDIT: Eles também não funcionam em ~/.local/share/bash-completion/completionsqualquer um.


Informação adicional:

Os arquivos são originados pelas .bashrclinhas padrão Debian/Ubuntu:

# 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

Em ambos os locais, não é o conteúdo dos diretórios que está sendo originado, mas esses dois arquivos:

/usr/share/bash-completion/bash_completion

/etc/bash_completion

O segundo arquivo simplesmente aponta para o primeiro arquivo se NÃO shopt -oq posix. Na minha configuração:

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

Acho que a resposta deve estar em /usr/share/bash-completion/bash_completion .


Mais:

Tentei substituir bash_completionpela versão mais recente, mas também não funcionou.

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

Também..

Esses arquivos não funcionam quando colocados em ~/.local/share/bash-completion/completionsqualquer um.

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

Como você define a cor da conclusão da guia bash quando o `colored-completion-prefix` está ativado?

  • 2

Eu colored-completion-prefixconfigurei no meu ~/.inputrcarquivo, mas quando eu concluo a tabulação, a parte do prefixo que já foi digitada é uma cor que eu não gosto.

No manual do bash diz:

" coloured-completion-prefix (Off) Se definido como On, ao listar os preenchimentos, readline exibe o prefixo comum do conjunto de possíveis preenchimentos usando uma cor diferente. As definições de cores são obtidas do valor da variável de ambiente LS_COLORS."

Atualmente está marrom e sublinhado devido à minha configuração, que não parece muito boa. Qual entrada LS_COLORSele usa?

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

Para que serve o alt-n no bash?

  • 4

Alt+ nretorna a :e aparentemente é para pesquisa avançada, mas como você o usa?

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

Como vincular uma combinação de teclas a null em .inputrc?

  • 2

Você pode vincular chaves como Ctrl-Lefte Ctrl-Rightassim .inputrc:

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

Como eu me ligaria Ctrl-Upe Ctrl-Downa nada?

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

Isso obviamente não funciona.

Eu uso essas teclas para fazer coisas no tmux (configuração aninhada), mas geralmente ;3~obtém saída no terminal quando uso qualquer uma das teclas.

Espero ser capaz de vinculá-los a nada enquanto ainda tiver as chaves funcionando para o tmux.

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

Como colar listas ordenadamente como colunas? [duplicado]

  • 2
Essa pergunta já tem respostas aqui :
Imprima dois arquivos em duas colunas lado a lado (4 respostas)
Fechado há 3 anos .

Tenho duas listas de palavras:

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

Eu colo-los juntos em colunas:

$ paste list1 list2

O resultado é este, com abas entre as colunas:

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

Eu gostaria disso, onde há mais guias entre as colunas em determinadas linhas:

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

Como eu faço isso?

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

Qual é o significado de $(logname)?

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

Eu uso o one-liner acima para permitir que o usuário atual execute sudo sem uma senha, em hosts conectados remotamente.

Mas o que é exatamente $(logname)?

Em uma máquina local, echo $(logname)não retorna nada, enquanto echo $LOGNAMEfaz, então não é a variável de ambiente, embora eu nunca tenha visto o valor ser diferente em máquinas remotas.

Além disso, existem outras $(foo)variáveis ​​semelhantes (ou como elas são chamadas)?

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

Como evito esse comportamento inesperado ao redirecionar a saída do echo?

  • 1

Eu queria adicionar ao meu arquivo hosts facilmente usando um comando de uma linha, mas recebo um resultado inesperado.

$ 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

Estou usando a opção -e no eco para habilitar o uso de escapes de barra invertida para as guias, mas o -e está sendo incluído na saída redirecionada.

Como posso evitar isso?

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

Como faço para diferenciar a saída desses dois comandos? [duplicado]

  • 0
Essa pergunta já tem respostas aqui :
Como faço para diferenciar as saídas de dois comandos? [duplicado] (2 respostas)
Fechado há 3 anos .

Eu tenho um alias que eu uso para remover comentários que são canalizados para ele:

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

Atualmente estou tendo alguma dificuldade com uma configuração de proxy squid, então quero comparar as mudanças de configuração. Eu quero usar meu alias decomment, pois o arquivo squid.config tem um grande número de linhas comentadas.

Como eu compararia (usando diff) a saída desses dois comandos, em uma linha?

$ cat squid.conf.old | decomment 

$ cat squid.conf.new | decomment

..da maneira que eu posso desta forma:

$ cat squid.conf.old | decomment > output1

$ cat squid.conf.new | decomment > output2

$ diff output1 output2
pipe io-redirection
  • 2 respostas
  • 344 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve