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 / unix / Perguntas / 555041
Accepted
mike rodent
mike rodent
Asked: 2019-12-02 04:01:35 +0800 CST2019-12-02 04:01:35 +0800 CST 2019-12-02 04:01:35 +0800 CST

Problema com preenchimento automático no VPS

  • 772

Acabei de configurar um VPS com hostinger.com. O sistema operacional é o Ubuntu 18.04. Eu criei uma conta de usuário, Mike. Percebi rapidamente que o preenchimento automático aparentemente não estava instalado, então procurei como você faz isso. Por alguma razão (tipo de shell?) eu tenho que fonte com um ponto, não com a palavra source.

Logado como mike eu fiz isso:

sudo apt-get install bash-completion

(NB tentando resolver o problema que tentei mais tarde sudo apt-get install --reinstall bash-completion)

... e adicionei esta linha a /home/mike/.bashrc:

. /etc/bash_completion

Na verdade, este arquivo consiste em uma linha:

. /usr/share/bash-completion/bash_completion

A situação atualmente é que eu posso fazer o preenchimento automático funcionar quando estiver logado como root, fazendo isso:

$ . /home/mike/.bashrc

Mas quando logado como mike o mesmo comando dá:

$ . /home/mike/.bashrc
-su: 26: /usr/share/bash-completion/bash_completion: Syntax error: "(" unexpected

Procurando por respostas, imaginei que o problema pudesse ser causado por um conflito de alias. Mas agora não há aliases quando logado como mike e mesmo assim o problema persiste.

Estou tentando (entre outras coisas) entender o que "-su: 26" realmente significa. Isso parece ser uma referência de linha. Mas a linha 26 desse arquivo está de fato em branco.

O que estou pensando em fazer agora é passar por /usr/share/bash-completion/bash_completion, comentando as linhas até que as coisas comecem a fazer sentido. Mas é um arquivo grande!

Obviamente, um aspecto curioso disso é que funciona quando estou logado como root, mas não quando estou logado como mike.

depois
eu scpcoloquei meu arquivo bash_completion na minha máquina local para o VPS e o usei para substituir o existente (renomeado o último primeiro). Novamente, o fornecimento quando o root funcionou bem. Novamente, sourcing quando conectado como mike produziu (vários) erros:

$ . /home/mike/.bashrc
-su: 29: /usr/share/bash-completion/bash_completion: [[: not found
-su: 35: /usr/share/bash-completion/bash_completion: [[: not found
-su: 51: /usr/share/bash-completion/bash_completion: shopt: not found
-su: 57: /usr/share/bash-completion/bash_completion: complete: not found
-su: 62: /usr/share/bash-completion/bash_completion: complete: not found
[... more... ]

Alguma sugestão? Pode ser que a conta do microfone esteja, por algum motivo, usando um shell diferente? Uma gramática de shell diferente? Como posso verificar esse tipo de coisa?

autocomplete not-root-user
  • 1 1 respostas
  • 291 Views

1 respostas

  • Voted
  1. Best Answer
    mike rodent
    2019-12-04T10:05:12+08:002019-12-04T10:05:12+08:00

    (logado como root :)

    root@vps46990199:~# getent passwd mike
    mike:x:1000:1000::/home/mike:/bin/sh
    root@vps46990199:~# getent passwd root
    root:x:0:0:root:/root:/bin/bash
    

    ... um pouco de pesquisa encontra a resposta:

    root@vps46990199:~# usermod -s /bin/bash mike
    

    ... problema resolvido (graças a ender.qa)

    mais informações
    Lendo ao redor, primeiro verifico que de fato/bin/shnão é um arquivo, mas um link simbólico. De acordo com as versões modernas do Ubuntu, isso era (antes de executarusermod) link para/bin/dash, sobre o qual li:

    bash é um padrão de fato (muito usado), mas não é "padrão"; sh no Ubuntu usa dash, que é um shell compatível com Posix, então é realmente padrão. Meu conselho é usar o traço o mais rápido possível para scripts, especialmente para scripts do lado do servidor. Embora o bash seja mais expressivo, o dash roda muito mais rápido e é mais seguro ( aqui , comentário de Rick-777)

    O que faz você se perguntar por que a conta do Hostinger.com rootusa bashem vez de usar dashcomo padrão, como uma conta de usuário padrão criada. Além do meu salário.

    • 0

relate perguntas

  • Como fornecer a conclusão do Bash para um executável local do diretório?

  • systemctl --user não disponível para usuário www-data

  • Conclusão da guia bash personalizada mostrando possíveis conclusões, mas não concluindo a entrada

  • Como usar as setas e enter para selecionar a opção de preenchimento automático?

  • Como ignorar diretórios usando: e no vim?

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