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?
command-line
harisibrahimkv
fonte
fonte
Respostas:
Sim - crie um arquivo chamado music e coloque o seguinte dentro dele:
Em seguida, digite
chmod +x music
- isso torna o arquivo executável. Agora você pode digitar./music
para executar este script.É uma boa idéia digitar
echo $PATH
e copiar o script em um desses diretórios. Eu sugeriria criar$HOME/bin
e adicionar isso ao seu PATH via~/.bash_profile
ou~/.profile
. Isto pode ser feito através da adição (a um desses arquivos):export PATH="$HOME/bin:$PATH"
. Você precisará executarsource .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_aliases
no diretório inicial:Executar
source ~/.bash_aliases
ou sair e fazer login e deve funcionar :-)fonte
A melhor maneira de fazer isso é modificar (ou criar) um arquivo chamado
.bash_aliases
na sua pasta pessoal.A sintaxe é bastante simples:
Com este comando, se você digitar
install
um terminal, ele será interpretado comosudo apt-get -y install
No entanto, esses comandos não funcionarão em qualquer lugar fora de um terminal.
fonte
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.
fonte