Como criar meus próprios comandos de terminal

Como criar meus próprios comandos de terminal

Eu sei como criar meus comandos de terminal personalizados e isso seria muito útil para compilar todas as minhas classes Java em uma pasta. Vejo também que para fazer isso as pessoas costumam criar uma pasta ~/bin e colocar arquivos .sh com as linhas que desejam que rodem, mas não consegui entender bem, crio um compile.sh com algumas linhas por exemplo

-gcc file -o file
-gcc file1 -o file1

mas enquanto lia também precisei adicionar uma linha a um arquivo chamado .bashrc que está escondido na minha pasta pessoal e não sei como fazer isso, existe alguma maneira mais fácil de editar esse arquivo? Depois de fazer isso, meu comando personalizado será o nome do arquivo .sh (compilar)?

Responder1

A maneira mais fácil de disponibilizar scripts Bash para todos os usuários do seu computador é colocá-los no formato /usr/local/bin. Isso requer que você tenha privilégios de administrador.

  1. Crie seu script:

    Abra seu editor de texto favorito e escreva todos os comandos que deseja que o script execute, um comando por linha.

    Você pode adicionar comentários aos scripts Bash iniciando uma linha com #.

    Quando terminar, adicione exatamente esta linha abaixo como primeira linha no topo do seu script. É chamado de "shebang" e informa ao shell com qual interpretador executar seu script.

    #!/bin/bash
    

    Aqui está um exemplo simples de script completo, executando os dois comandos que você mencionou na sua pergunta:

    #!/bin/bash
    
    # Compile 'file':
    gcc file -o file
    # Compile 'file1':
    gcc file1 -o file1
    
  2. Mova seu script para o local correto:

    O local onde você deve colocar os próprios scripts para todos os usuários é /usr/local/bin.

    Como este diretório pertence ao usuário root, você deve ser um administrador e usá-lo sudopara mover arquivos para lá.

    Presumo que você criou seu script em seu diretório inicial, ~/my_script.sh. Basta abrir um terminal e digitar o comando abaixo, substituindo SCRIPTNAMEpelo nome que deseja dar. Este nome será o comando que você deverá digitar para executá-lo. A .shextensão do arquivo não é necessária.

    sudo mv ~/myscript.sh /usr/local/bin/SCRIPTNAME
    
  3. Defina o proprietário e as permissões corretos:

    O script deve pertencer e ser gravável root, mas legível e executável para todos. Os dois comandos abaixo garantem isso:

    sudo chown root: /usr/local/bin/SCRIPTNAME
    sudo chmod 755 /usr/local/bin/SCRIPTNAME
    
  4. Execute seu script e aproveite:

    Agora você pode simplesmente digitar SCRIPTNAME(ou como você o chamou) em seu terminal e o script será executado.

Responder2

Embora escrever scripts seja uma maneira muito conveniente de executarmuitos comandos de um arquivo, eu sugeriria usar funções onde requer apenas um ou dois comandos.

Tomemos por exemplo a definição de função abaixo

compile()
{
  gcc "$1" -o "${1%%.*}" && printf "<<< Compiled successfully\n"
}

Ao colocá-lo em seu .bashrcarquivo (e então executar source ~/.bashrcou abrir uma nova guia de terminal), você pode executar este comando de qualquer lugar sem ter ~/binadicionado à sua PATHvariável e fornecer um nome de arquivo como argumento de linha de comando como este

compile somecode.c

Além disso, você pode editar esse arquivo apenas chamando gedit ~/.bashrcna linha de comando

Para aqueles que estão se perguntando o que faz "$1"e "${1%%.*}", "$1"refere-se ao primeiro parâmetro da linha de comando (neste caso "somecode.c"), quanto a "${1%%.*}"- esse é o parâmetro expansion , particularmente aquele que faz a remoção do sufixo e jogará fora qualquer coisa após o ponto. Em outras palavras, isso se transforma somecode.cem somecode . Para mais informações, leiapágina de manual do bashseção sobre expansão de parâmetros

Responder3

Antes de entrar nisso, gostaria de esclarecer que você não está criando novos comandos, mas sim scripts que podem ser executados como executáveis. Mas eles podem se comportar da mesma forma que um comando porque você pode executá-los de qualquer lugar.

Se você não tiver uma pasta chamada “bin” em sua pasta pessoal, crie uma.

Agora abra uma janela de terminal e digite nano ~/.bashrc.

Isso abrirá um editor. Na parte inferior deste arquivo, adicione uma nova linha que diz PATH="$HOME/bin:$PATH".

Agora salve o arquivo pressionando CTRL+O (a letra o, não zero) e pressione ENTER. Saia do editor com CTRL+X. Saia e faça login novamente para que as alterações tenham efeito ou reinicie o computador se isso não funcionar.

Agora, todos os scripts que você criar na pasta bin estarão acessíveis em qualquer lugar da janela do terminal.

Você pode criar esses scripts com nano ou gedit (o editor de texto gráfico do Ubuntu) ou qualquer editor de texto que desejar. Lembre-se de salvar seu script na pasta ~/bin e tornar seu arquivo executável. Existem 2 maneiras de fazer isso:

GUI: Clique com o botão direito no arquivo e vá até a aba de permissões e marque a caixa "Permitir execução como um programa".

TERMINAL :chmod +x /location/of/your/file

informação relacionada