Como criar meus próprios comandos de terminal [duplicados]

6

Eu sei como criar meus comandos de terminal personalizados e isso seria realmente útil para mim na compilação de todas as minhas classes java em uma pasta. Eu também vejo que para fazer isso as pessoas geralmente criam uma pasta ~ / bin e colocam arquivos .sh com as linhas que desejam rodar, mas não consegui entender direito, crio um compile.sh com algumas linhas por exemplo

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

mas, como eu estava lendo, também preciso adicionar uma linha a um arquivo chamado .bashrc que está oculto na minha pasta pessoal e não sei como fazer isso. Existe alguma maneira mais fácil de editar esse arquivo? Depois que eu fizer isso, meu comando personalizado será o nome do arquivo .sh (compilação)?

    
por Vitor Costa 20.06.2016 / 23:34

3 respostas

8

A maneira mais fácil de criar scripts Bash disponíveis para todos os usuários do computador é colocá-los em /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 você deseja que o script execute, um comando por linha.

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

    Quando terminar, adicione esta linha exata abaixo como primeira linha na parte superior do seu script. É chamado de "shebang" e diz ao shell com qual intérprete executar seu script.

    #!/bin/bash
    

    Aqui está um exemplo simples de um 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 scripts próprios para todos os usuários é /usr/local/bin .

    Como esse diretório é de propriedade do usuário root , você deve ser um administrador e usar sudo para mover arquivos para lá.

    Suponho que você tenha criado seu script em seu diretório inicial, ~/my_script.sh . Simplesmente abra um terminal e digite o comando abaixo, substituindo SCRIPTNAME pelo nome que você deseja dar. Este nome será o comando que você precisa digitar para executá-lo. A extensão do arquivo .sh não é necessária.

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

    O script deve pertencer e ser gravável para 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) no seu terminal e o script será executado.

por Byte Commander 21.06.2016 / 00:03
4

Enquanto escrever scripts é uma maneira muito conveniente de executar muitos comandos de um arquivo , sugiro usar funções onde ele requer apenas um ou dois comandos.

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

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

Colocando-o no arquivo .bashrc (e executando source ~/.bashrc ou abrindo a nova guia de terminal), você pode executar esse comando em qualquer lugar sem ter ~/bin adicionado à sua variável PATH e fornecer um nome de arquivo como argumento de linha de comando como assim

compile somecode.c

Em uma nota lateral, você pode editar esse arquivo apenas chamando gedit ~/.bashrc da linha de comando

Para quem está se perguntando o que é "" e "${1%%.*}" , o "" refere-se ao primeiro parâmetro de linha de comando (neste caso "somecode.c" ), como "${1%%.*}" - essa é a expansão de parâmetro, particularmente aquele que faz a remoção do sufixo, e jogará fora qualquer coisa depois do ponto. Em outras palavras, isso transforma somecode.c em somecode . Para mais informações, leia a página de manual do bash sobre expansão de parâmetros

    
por Sergiy Kolodyazhnyy 21.06.2016 / 01:00
2

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

Se você não tiver uma pasta na sua pasta pessoal chamada "bin", crie uma.

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

Isso abrirá um editor. Na parte inferior desse 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. Faça o logout e volte para as alterações entrem em vigor ou reinicie o computador se isso não funcionar.

Agora, qualquer script que você criar na sua pasta bin será acessível em qualquer lugar em uma janela de 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. Apenas 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á para a aba de permissões, e marque a caixa "Permitir execução como um programa".

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

    
por Dorian 20.06.2016 / 23:55