Como criar comandos personalizados no Unix / Linux? [fechadas]

55

Alguém pode me orientar a criar comandos personalizados no Unix / Linux.

Qadir Hussain
fonte
2
Para referência futura, você deve verificar a página de fatos. Explica o que você deve colocar em suas perguntas. (como postar as coisas que você pesquisou e tentou). É provável que alguém tenha votado negativamente nesta pergunta.
Spuder

Respostas:

68

Crie um script bash na sua pasta / usr / bin, deve ser algo como isto

#!/bin/bash
Whatever combination of commands you want to run when you type this thing.

É realmente assim tão fácil.

Apenas nomeie o script bash como deseja digitar no terminal e torne-o executável: chmod +x filenamee você estará pronto !

Eric
fonte
11
Você poderia modificá-lo para ser um guia passo a passo, incluindo todas as etapas necessárias? Ainda não tenho certeza de como fazer meu próprio comando personalizado.
Yoda
5
@ AndersMB, você precisa ler um livro . Existem muitos bons, mesmo disponíveis gratuitamente. Comece com "A linha de comando do Linux" .
Wildcard
Umm .. ele estava brincando. Ele estava brincando, certo ?!
Somenath Sinha
11
executar com./filename
Squirrl
46
  1. Crie um diretório como "bin" no seu diretório pessoal.
  2. Atualize sua variável de caminho para incluir este diretório bin. Coloque isso .profileou .bash_proflearquivo para torná-lo permanente.

    export PATH=$PATH":$HOME/bin"

  3. Crie um script, diga "olá" e mantenha-o no diretório bin. Dê permissão de execução ao script hello por $ chmod +x hello.

    #!/bin/bash    
    echo My first program
  4. Recarregar .profileou .bash_profle:

    $ . ~/.bash_profile

  5. Em qualquer diretório, você simplesmente digita:

    $ hello
    My first program
Guru
fonte
Sei que isso é muito antigo, mas já vi sua sugestão de criar uma binpasta com muitas respostas aqui. Existe algum problema se for em .binvez de bin? Eu sou muito exigente quanto à minha homeaparência e não quero uma pasta extra apenas porque.
MO
Eu tentei usar isso sem sucesso e fiquei muito frustrado por um tempo pensando que havia algo errado com minha zshinstalação ou, $PATHmas acabou sendo que chmod -x hellonão estava funcionando, nem capital -X. Em vez disso, tentei chmod 755 hello, embora não tenha certeza dos riscos à segurança em relação a esse comando, ele realmente me deixou executar hello. Alguém tem uma explicação para isso? Estou assumindo que é um problema em relação à idade?
ConstantFun
11
@ConstantFun Use chmod +x hellopara adicionar privilégios de 'execução' ao script. chmod -x hellofaz exatamente o oposto - remove os privilégios de 'execução'. (Observe a diferença do sinal de mais / menos na resposta e no seu comentário.)
Filip Happy
25

Fácil, crie um alias.

Digamos que você queira escrever um comando para cd no diretório de download. E você quer chamá-lo de cdd.

alias cdd='cd ~/Downloads' 

Você pode criar qualquer comando que desejar.

Aqui está mais informações:
http://www.mediacollege.com/linux/command/alias.html

spuder
fonte
6
Isso não persiste nas sessões, no entanto. Este comando funciona, mas não é permanente. Uma maneira mais permanente seria modificar o arquivo ~ / .bash_aliases e adicionar a linha que você sugeriu lá.
Jeff Grimes
2
Também funciona, adicionando-o ao seu arquivo ~ / .bashrc
Delicia Brummitt
11

A maioria, se não todas até agora, distribuições Linux têm um pequeno script em ~ / .bashrc que parece quase idêntico a isso:

if [ -e ~/.bash_aliases ]
then
. ~/.bash_aliases
fi

Isso significa apenas que você pode criar seus próprios comandos (também conhecido como ' aliases' geralmente referido a um comando existente com alguns argumentos que você sempre deve usar ou uma lista de comandos que precisam ser executados em ordem).

Sua distribuição Linux provavelmente não terá o arquivo .bash_aliases criado em sua casa, a menos que você já tenha feito isso manualmente. Portanto, para criar o arquivo, digite o seguinte comando:
touch ~/.bash_aliases

Agora esse arquivo será executado automaticamente sempre que você disparar um novo Terminal.

O que você pode fazer agora é criar uma lista de aliases e adicioná-los a esse arquivo para usos posteriores. Por exemplo, o rmcomando (remover) por padrão NÃO solicita que você confirme sua solicitação quando você diz para excluir um arquivo / diretório. No entanto, há um argumento que rmsolicita que você confirme sua solicitação -i,. Portanto, rm -i filePathserá exibida uma mensagem perguntando se você tinha certeza de que deseja excluir o arquivo especificado. Agora, se você excluir um arquivo acidentalmente, provavelmente esquecerá de incluir a -iopção, e é aí que um aliasse torna muito benéfico. Digitando o seguinte comando

echo "alias rm='\rm -i'" >> ~/.bash_aliases

dirá Bashque toda vez que você solicitar a exclusão de um arquivo, uma mensagem de confirmação será exibida para você. Claro, há muito mais que você pode fazer - isso é apenas o básico.

Se você quiser aprender a usar alguns comandos básicos (ie cd, touch, rm, mkdir, pushd, popd, etc.) e / ou outras mais sofisticadas, eu recomendo um livro muito bom que você pode ter em sua estante como uma referência chamada

um guia prático para editores de comandos do linux e programação de shell , por Mark G. Sobell . ISBN: 978-0133085044

Fadi Hanna AL-Kass
fonte
11
por que a barra invertida?
precisa saber é