Posso fazer meus próprios comandos?

12

Eu queria saber se eu poderia fazer meus próprios comandos como se digitasse 'music' na linha de comando, meu vlc deveria abrir e começar a tocar minha playlist. A coisa vlc é apenas um exemplo, mas a questão permanece.

Posso fazer meus próprios comandos? Se sim, como?

harisibrahimkv
fonte
você pode criar scripts, se é isso que você quer?
Alvar

Respostas:

19

Sim - crie um arquivo chamado music e coloque o seguinte dentro dele:

#!/bin/bash
echo "Hello world"

Em seguida, digite chmod +x music- isso torna o arquivo executável. Agora você pode digitar ./musicpara executar este script.

É uma boa idéia digitar echo $PATHe copiar o script em um desses diretórios. Eu sugeriria criar $HOME/bine adicionar isso ao seu PATH via ~/.bash_profileou ~/.profile. Isto pode ser feito através da adição (a um desses arquivos): export PATH="$HOME/bin:$PATH". Você precisará executar source .bash_profile(supondo que você coloque isso nesse arquivo) para recarregá-lo.

Outra alternativa seria adicionar o comando que você deseja executar como um alias do bash. Você pode fazer isso adicionando o seguinte a um arquivo nomeado .bash_aliasesno diretório inicial:

alias music='vlc --some-option --foo'

Executar source ~/.bash_aliasesou sair e fazer login e deve funcionar :-)

usuario
fonte
3

A melhor maneira de fazer isso é modificar (ou criar) um arquivo chamado .bash_aliasesna sua pasta pessoal.

A sintaxe é bastante simples:

alias install='sudo apt-get -y install'

Com este comando, se você digitar installum terminal, ele será interpretado como

sudo apt-get -y install

No entanto, esses comandos não funcionarão em qualquer lugar fora de um terminal.

Basscal
fonte
1

Qualquer arquivo executável em um diretório em seu caminho pode ser um "comando". Pode ser um script, conforme sugerido em outras respostas, mas também pode ser um programa compilado em qualquer idioma suportado que você conheça.

Os aliases também funcionarão, mas são limitados porque são "one-liners", de modo que fazer qualquer coisa intrincada com eles rapidamente gera código que é muito difícil de ler. Além disso, como eles são executados no mesmo escopo de variável que o shell em que você os digita, eles podem facilmente ter efeitos colaterais indesejados, como deixar você em outro diretório ou deixar variáveis ​​definidas que são necessárias apenas pela tarefa que o alias executa. (Claro, às vezes você pode querer usar um alias precisamente porque ele tem efeitos colaterais desejáveis.)

Se você colocar seus novos comandos em um diretório em seu caminho, eles poderão ser encontrados pelo shell e executados. O local mais comum para colocá-los é em $ HOME / bin. Se esse diretório existir, ele será adicionado automaticamente ao seu caminho.

Duas coisas a ter em mente ao configurar isso são: 1) Geralmente, é melhor usar nomes exclusivos para seus comandos que não correspondam aos que já estão definidos em seu sistema. Há muito debate sobre isso, mas o ponto principal é que comandos familiares não devem ter resultados inesperados se alguém estiver usando o seu sistema e que se acostumar com um comando comum fazendo algo especial pode causar problemas quando você trabalha em outro sistema onde não está definido dessa maneira.

2) Você pode adicionar $ HOME / bin no início ou no final do seu caminho (ou em qualquer outro lugar, mas isso geralmente não é feito).

Adicioná-lo à frente do caminho é a opção mais conveniente, pois sua versão de um comando sempre será a que será executada e será encontrada mais rapidamente. Também é uma vulnerabilidade de segurança, porque qualquer pessoa que possa obter permissão de gravação no seu $ HOME / bin (muito mais fácil do que obter acesso root) pode substituir comandos comuns por códigos potencialmente maliciosos com muita facilidade. Além disso, se você precisar pedir ajuda a alguém que não conhece seu sistema, é provável que ele seja desarmado pelo comportamento especial de seus comandos personalizados, a menos que você gaste muito esforço extra explicando tudo, além de fazendo sua pergunta.

Adicioná-lo ao final de sua instrução de caminho é um pouco mais seguro, pois qualquer comando com o mesmo nome que já está em seu caminho será encontrado primeiro e executado - e qualquer outra coisa que dependa desse comando funcionando conforme o esperado ainda funcionará .

Para evitar tudo isso (à custa de um pouco de digitação extra), você também pode colocar seu comando em um diretório que não está no seu caminho, de modo que quase nunca será executado acidentalmente porque você precisará digitar o nome completo do caminho para executá-lo.

Como a maioria das coisas no Linux, existem muitas maneiras de criar e usar novos comandos e cada uma delas tem suas próprias vantagens e limitações.

Joe
fonte