
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.
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
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á-losudo
para 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, substituindoSCRIPTNAME
pelo nome que deseja dar. Este nome será o comando que você deverá digitar para executá-lo. A.sh
extensão do arquivo não é necessária.sudo mv ~/myscript.sh /usr/local/bin/SCRIPTNAME
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
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 .bashrc
arquivo (e então executar source ~/.bashrc
ou abrir uma nova guia de terminal), você pode executar este comando de qualquer lugar sem ter ~/bin
adicionado à sua PATH
variá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 ~/.bashrc
na 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.c
em 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