Casa > C > Como Corrigir 'Erro: -Bash: :Comando Não Encontrado'?

Como corrigir 'erro: -bash: :comando não encontrado'?

Outra resposta identificou o problema específico que você estava tendo.

Mais geralmente você precisa aprender o suficiente sobre a shell Unix/Linux (bash em particular, mas Bourne compatível em geral) para entender como os comandos que você're copiando e colando devem funcionar.

Você pode, é claro, fazer uma busca no Google em: bash tutorial ... para encontrar uma lista de pontos de partida online. Você também pode simplesmente ir a esta página: Lista de tutoriais online do Bash ... que parece ser uma lista razoável deles. Naquele site wiki eu só encontrei um link morto da dúzia ou mais na lista deles no topo; o conteúdo é principalmente textual. Se você realmente prefere assistir vídeos com uma narração em áudio, então também há muitos desses a serem encontrados no YouTube.

Para o exemplo que você'colou aqui, na sua pergunta I'vai explicar *por que* você estava recebendo o erro. Mas você deve passar por um tutorial para um fundo mais completo do que o I'vou fornecer aqui.

>It'é evidente que você colou um exemplo de alguma documentação ou página da web em algum lugar. mkdir /home//packages

O primeiro nesse exemplo é na verdade o prompt padrão da shell's. It's não faz parte do comando. As shells compatíveis com Bourne imprimem qualquer uma de algumas "strings de prompt diferentes" (PS1, PS2, etc). PS1 indica ao usuário (você) que o processamento de qualquer comando inserido anteriormente está completo e a shell está pronta para aceitar novos comandos para análise e execução. (As outras strings de prompt são para casos onde parte de um comando foi inserido e a conclusão de comandos complexos é necessária, e para outras situações especiais como descritas na página de manual).

Histórico a convenção é que o prompt primário termine com um (cifrão) quando a shell estiver rodando como qualquer usuário normal ou um # (octothorpe ou "hash" ou "pound sign") quando a shell estiver rodando como o usuário root (super).

Assim podemos dizer que o exemplo a partir do qual você está trabalhando é assumindo que você'executará este comando como um usuário normal.

O comando mkdir deve ser simples o suficiente. E os argumentos fornecidos a ele aqui uma única string consistindo de um caminho com uma variável de ambiente (ou variável shell) de referência interpolada nele.

é uma variável shell neste comando. Especificamente it's pretende representar um placeholder no comando no qual um valor (seu nome de usuário) será colocado pela shell antes do comando mkdir ser executado.

Existem diferenças técnicas entre variáveis de ambiente e variáveis shell. O USER é normalmente definido pelos scripts de perfil do sistema que são processados pela sua shell antes de ver pela primeira vez qualquer string de prompt ... para qualquer shell de login. Existe normalmente um comando de exportação listando USER entre os seus argumentos que leva esta variável shell e a exporta para o ambiente. A distinção é irrelevante neste caso mas importa para quaisquer subesquema ou outros programas que possam estar acessando valores herdados ou definidos por seus pais (geralmente sua shell).

Neste caso se você usar um comando como: echo então ele deve lhe dizer que sua shell tem configurações que são adequadas para este exemplo de comando. Qualquer sistema normal Linux, MacOS X, FreeBSD ou similar teria scripts de perfil padrão que definem variáveis USER, HOME, PATH e TERM ... e provavelmente algumas outras, como LANG e LOGNAME. Você pode ver uma lista inteira deles usando o seguinte comando: printenv (para ver uma lista de variáveis shell *e* variáveis de ambiente você pode usar o comando set sem argumentos. Infelizmente eu não'não sei de uma maneira simples de ver o que com as variáveis de ambiente omitidas. Aqui's um método para filtrá-las: set | grep -v "(printenv | sed -e 's/\([^=]*\)/^\1/')". ... mas isso'é um pouco feio e avançado para você e este ponto, e a distinção é, neste ponto, meramente acadêmica para sua pergunta imediata).

Se algum desses está faltando em seu ambiente, então você pode querer descobrir por quê (pergunte a um especialista local se você pode ou postar detalhes de que tipo de Linux ou UNIX você está usando e como, exatamente, você're-ingressando nele (sem seu nome de usuário e senha reais, é claro).

Se sua variável não estiver definida, então o comando mkdir verá /home//packages como seu argumento... comandos como este normalmente tratam strings de // como se fossem um único /... e it's provavelmente você'd então receberá uma mensagem de erro como "permissão negada" porque usuários normais podem't, normalmente, criar diretório sob /home (embora, é claro, nós normalmente podemos criá-los dentro de nosso próprio diretório home um pouco mais abaixo na árvore: /home/me/ por exemplo).

Vá ler pelo menos um ou dois desses tutoriais. Copiar e colar comandos na sua shell sem compreendê-los pode ser um pouco perigoso para os seus dados, para a sua conta e para o seu sistema.

De Rodi

Quantas horas dura a bateria do iPhone? :: Can a mobile phone be used to project videos without using a projector?