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 / computer / 问题

Perguntas[bash](computer)

Martin Hope
dmcblue
Asked: 2025-03-22 05:31:49 +0800 CST

Como descobrir chaves de terminal com telnet MUD?

  • 6

Comecei a testar o MUD recentemente. Pelo terminal no Mac, não tive problemas. Então tentei fazer login pelo meu computador Linux, em RXVT-unicode /Bash.

$ echo $TERM
rxvt-unicode-256color
$ telnet aardwolf.org
Trying 23.111.142.226...

Digamos que eu digite as teclas Backspace, Cima (seta), Baixo, Direita Esquerda, e vejo:

 > ^?^[[A^[[B^[[C^[[D

A exibição do texto proveniente do servidor MUD parece boa, com cores etc.

Tentei TERM=xterm telnet aardwolf.orgsem sucesso. Imagino que seja alguma configuração de terminal ou algo com Telnet, mas nenhuma quantidade de mecanismo de busca parece atingir o problema exato e não sou especialista o suficiente em todas as tecnologias que estão interagindo aqui para defini-lo.

Alguém pode explicar o que está errado aqui?

bash
  • 1 respostas
  • 34 Views
Martin Hope
hellork
Asked: 2025-03-17 14:33:06 +0800 CST

No Linux qterminal, pressionar Alt+Super (tecla do Windows) + qualquer outra tecla imprime hosts. Bug do QT? Nenhum programa está sendo executado.

  • 5

Pressionar Alt+ Super+ t(ou qualquer tecla) imprime uma lista de hosts em qterminal& konsole. Mas não em outros terminais como xtermou gnome-terminal.

::1                      tubular.k              localhost                localhost6.localdomain6  
moobear.k                   *.k                      localhost4               localhost.localdomain 
  • Esse comportamento persistiu em várias instalações e configurações novas do Fedora {39,40,41,42}

  • Os hosts parecem vir, /etc/hostsmas a formatação é diferente.

  • Digitar ssh k@loc[tab][tab] completa o nome do host,k@localhost

  • Digitar moo[tab][tab] não produz nada

  • Digitar moo Alt+ Super+ tàs vezes produz moobear.k s(completar nome de host, mas com um s extra no final).

  • Digitar moo Alt+ Super+ gcom mais frequência completa um nome de host (mas novamente com s extras).

  • Outras vezes, digitar moo Alt+ Super+ tapenas adiciona se produz "mudos".

bash
  • 1 respostas
  • 32 Views
Martin Hope
MMAX
Asked: 2025-02-21 15:59:58 +0800 CST

Registro PuTTY sem conclusão de tabulação

  • 6

Estou usando PuTTY (0,82) para sessões SSH em sistemas Linux.

O registro é ativado com a opção "Saída para impressão" .

Se eu usar a conclusão de comando por tabulação na janela SSH (bash), essa ação também será registrada no arquivo de log, o que dificulta a leitura dos comandos emitidos nos logs posteriormente.

Existe alguma opção para evitar isso?

Eu tentei com a opção de Logging "Saída imprimível" e "Saída de todas as sessões" , mas ambas não entregam o resultado esperado. Há alguma outra opção que eu tenha esquecido?

bash
  • 1 respostas
  • 36 Views
Martin Hope
shynur
Asked: 2025-02-19 16:24:35 +0800 CST

Por que o terminal congela toda vez que executo `$EDITOR >(cmd)`?

  • 8

>(cmd)é uma sintaxe Bash. Por exemplo,

$ echo 42 > >(cat)
42

Isso funciona bem.

Então, espero usar esse método para passar o arquivo recém-editado e salvo como entrada para outro comando (estou usando apenas catcomo exemplo):

$ EDITOR=nano  # or emacs, vi, ...
$ $EDITOR >(cat)

Então ele simplesmente congelou. Por quê?

bash
  • 1 respostas
  • 442 Views
Martin Hope
Ted
Asked: 2025-02-02 07:14:05 +0800 CST

Como posso descobrir onde um comando está sendo executado durante o login no Debian 12?

  • 5

Ao instalar meu servidor, instalei o neofetch, como se faz. Também o deixei rodar sempre que eu logava em um shell.

Pule para hoje, quando desinstalei o neofetch em favor do fastfetch.

Agora, quando entro, recebo uma mensagem de erro adorável no topo do meu terminal:

-bash: neofetch: command not found

Ok, eu espero isso. No entanto, não consigo, nem que me matem, encontrar de onde preciso remover a invocação.

Não está em .bashrc, ou .profile. Caramba, eu até tentei um grep recursivo (veja abaixo) no sistema de arquivos para neofetch, que retornou… 0 correspondências. Também não é uma RemoteCommandconfiguração SSH, pois acontece de vários clientes usando configurações diferentes.

Se for relevante, estou usando o tmux para persistência de terminal.

Obviamente reinstalar o Debian está fora de questão, e acho que eu poderia simplesmente ignorar isso, mas isso é muito chato.

Problemas do primeiro mundo no seu melhor, eu sei muito bem.


Comando Grep:

sudo grep -Rnwso / -e 'neofetch'

Isso retorna alguns resultados de arquivos .bash_historyneofetch config.conf, mas nada que faria o neofetch ser executado no login.

bash
  • 1 respostas
  • 36 Views
Martin Hope
plswork04
Asked: 2025-01-31 06:57:58 +0800 CST

Como ter .bash_history diferentes por espaço de trabalho do Visual Studio Code?

  • 6

Gostaria de ter um histórico de bash diferente por workspace do VSCode. Parece que está definindo:

"terminal.integrated.env.linux": { "HISTFILE": "${workspaceFolder}/.bash_history" ...

seria super perigoso.

Crie um log de histórico por diretório de trabalho no bash

... Mais cedo ou mais tarde você vai vazar alguns comandos confidenciais em um arquivo ou repositório exposto publicamente. Em uma máquina multiusuário, assim que você muda para o diretório de outro usuário e executa alguns comandos lá, eles podem modificar seus arquivos e provavelmente ganhar um backdoor para sua conta. E outros usuários, ou pessoas cujos arquivos você baixa, podem facilmente enganá-lo para executar comandos, injetando-os em seu histórico de shell.

– Gilles 'SO- pare de ser mau' Comentado em 24 de agosto de 2016 às 23:15

Salvar o histórico no seu espaço de trabalho é ruim porque você executará comandos com segredos (senhas, chaves, etc.) e vazará seu histórico para um diretório tar ou imagem do docker em algum momento, mesmo que esteja no seu git ignore.

Uma abordagem que encontrei:

  • Gist: DeveloperChris/LocalHistoryVSCODE.md Criação de arquivos de histórico por projeto/pasta no Visual Studio Code - VSCODE
bash
  • 2 respostas
  • 41 Views
Martin Hope
mjbatty
Asked: 2025-01-28 23:13:41 +0800 CST

Testar se um script está sendo executado dentro de outro script

  • 7

[ATUALIZAÇÃO] Obrigado pelos comentários e pensamentos até agora. Com base neles, atualizei e expandi a pergunta original com mais informações e exemplos.

Vamos supor que não haja nenhum caso de uso real por enquanto. O único objetivo é descobrir se isso é possível e, se for, como.

Quero executar um script e determinar se ele é executado diretamente pelo usuário ou chamado dentro de outro script. Também quero verificar se ele é originado ou não.

Isso significa que há 4 casos de teste principais:

  • executado no terminal, não originado
  • executar no terminal, originado
  • executar em script (não em terminal), não originado
  • executar em script (não em terminal), originado

Meu cérebro enferrujado, o Google e o ChatGPT me deram uma lista de verificações para testar se estavam sendo executadas em um terminal, mas nenhuma delas está dando resultados corretos em todas as 4 chamadas.

Os testes estão prontos check-terme há um script de chamada check-term-driver, ambos abaixo.

Se eu executar os 4 casos de teste na ordem dada acima, para que um determinado número de teste esteja correto (digamos, o número de teste n), quero que a saída seja:

n: in terminal:     not sourced: ...
n: in terminal:     sourced: ...
n: not in terminal: not sourced: ...
n: not in terminal: sourced: ...

O teste para saber se há ou não origem está correto em todas as 4 chamadas.

script de verificação de termo:

#!/usr/bin/env bash

IS_TERMINAL=true
NOT_TERMINAL=false
TEST_NUM=0
SOURCED_TEXT="undefined"

print_result() {
  TEST_NUM=$((TEST_NUM + 1))
  if [ "$1" = "$IS_TERMINAL" ]; then
    printf "%2d: %-16s %-12s %s\n" "$TEST_NUM" "in terminal:" "$SOURCED_TEXT:" "$2"
  else
    printf "%2d: %-16s %-12s %s\n" "$TEST_NUM" "not in terminal:" "$SOURCED_TEXT:" "$2"
  fi
}

# First check if script is sourced or not.
if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then
  SOURCED_TEXT="not sourced"
else
  SOURCED_TEXT="sourced"
fi

# Tests run individually in expanded if/else for clarity.
# - test condition described by the result text.
if [ -t 0 ]; then
    print_result "$IS_TERMINAL" "stdin is a terminal"
else
    print_result "$NOT_TERMINAL" "stdin is not a terminal"
fi

if [ -t 1 ]; then
    print_result "$IS_TERMINAL" "stdout is a terminal"
else
    print_result "$NOT_TERMINAL" "stdout is not a terminal"
fi

if [ -t 2 ]; then
    print_result "$IS_TERMINAL" "stderr is a terminal"
else
    print_result "$NOT_TERMINAL" "stderr is not a terminal"
fi

if [[ "$-" == *i* ]]; then
    print_result "$IS_TERMINAL" "interactive shell"
else
    print_result "$NOT_TERMINAL" "non-interactive shell"
fi

if [ -n "$(tty)" ]; then
    print_result "$IS_TERMINAL" "has a controlling terminal"
else
    print_result "$NOT_TERMINAL" "does not have a controlling terminal"
fi

if [ -p /dev/stdin ]; then
    print_result "$NOT_TERMINAL" "running in a pipeline"
else
    print_result "$IS_TERMINAL" "not running in a pipeline"
fi

if [ -z "$(jobs -p)" ]; then
    print_result "$IS_TERMINAL" "running in foreground"
else
    print_result "$NOT_TERMINAL" "running in background"
fi

# Get ID of process that started the script.
PPID_VALUE=$(ps -o ppid= -p $$ | awk 'NR==2 {print $1}')

# If ID can't be found, give it a default value.
[ -z "$PPID_VALUE" ] && PPID_VALUE=1

# Check if attached or not.
if [ "$PPID_VALUE" -ne 1 ]; then
    print_result "$IS_TERMINAL" "attached to a parent process"
else
    print_result "$NOT_TERMINAL" "detached from a parent process"
fi

# Check if the parent process is a shell
PARENT_CMD=$(ps -o args= -p "$PPID_VALUE" 2>/dev/null)
if echo "$PARENT_CMD" | grep -qE '/(bash|zsh|sh)(\s|$)'; then
    print_result "$IS_TERMINAL" "parent process is a shell"
else
    print_result "$NOT_TERMINAL" "parent process is not a shell"
fi

Script do driver:

#!/usr/bin/env bash

./check-term
echo ""
. ./check-term
bash
  • 2 respostas
  • 184 Views
Martin Hope
ReYuki
Asked: 2025-01-23 13:49:01 +0800 CST

O ffmpeg parece não conseguir detectar caracteres de escape no nome do arquivo?

  • 7

Tentei converter arquivos mp4 para mp3 com o bash:

IFS=$'\n'
for f in $(ls -1 --quoting-style=escape -R ./*.mp4); do ffmpeg -i "$f" "${f%.mp4}.mp3"; done

e, ffmpeg lança um erro:./Asu\ no\ Yozora\ Shoukaihan.mp4: No such file or directory

mas se eu tentar digitar manualmente, funciona sem nenhum erro, alguém sabe o motivo pelo qual ele se comporta assim?

bash
  • 1 respostas
  • 530 Views
Martin Hope
HWe
Asked: 2025-01-22 22:30:13 +0800 CST

Ubuntu 20LTS: Defina "bash -l" como login padrão para todos os usuários

  • 5

Embora todos os meus servidores RHEL usem "bash -l" como padrão ao iniciar um novo "terminal" ou "konsole" (basicamente executando os scripts "~/.bashrc" e "/etc/profile.d/..."), não consigo configurar isso em servidores Ubuntu20LTS.

Quero executar automaticamente os scripts "/etc/profile.d/..." ao abrir uma nova janela "terminal" ou "konsole" para todos os usuários.

Mas no Ubuntu20LTS esse não é o caso. Eu sempre tenho que executar "bash -l" no novo "terminal/konsole" para obter as configurações de ambiente adequadas carregadas de "/etc/profile.d/..".

Como posso alterar as configurações padrão do Ubuntu20LTS para que o "terminal/konsole" inicie um "bash -l" por padrão?

bash
  • 1 respostas
  • 46 Views
Martin Hope
Codemonkey
Asked: 2025-01-14 13:46:22 +0800 CST

`git add` deve ter conclusão de nome de arquivo "inteligente"?

  • 5

Sinto que quando eu digitava git add -> Tabele só oferecia arquivos que faziam sentido - ou seja, não rastreados ou modificados.

Já faz algum tempo que ele lista todos os arquivos, independentemente.

Eu fiz algumas pesquisas e encontrei /usr/share/bash-completion/completions/gito que eu acho que tem a funcionalidade que eu estou procurando. Alguma ideia do por que ele pode não estar funcionando?

Usando CentOS Stream 9 e git 2.43.5

bash
  • 2 respostas
  • 21 Views

Sidebar

Stats

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

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Vickel O Firefox não permite mais colar no WhatsApp web? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

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

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