Quero abrir o Terminator em um diretório específico, por exemplo /home/downloads/
, e depois executar um comando.
Eu fiz a primeira parte com esse "comando personalizado": O cd /home/downloads; bash
Terminator agora começa neste diretório, mas como posso fazer a segunda parte?
Agora que terminator foi iniciado no diretório de downloads, eu quero executar qualquer comando eu quero, por exemplo, ls
ou rake
de comando ou usar alguns aliases como comandos. Como posso fazer isso?
Pressiono o botão direito do mouse no terminador e escolho Parâmetros, depois Layouts e adiciono texto na seção de comando Personalizado.
Tudo isso deve ser realizado automaticamente após o início do terminador.
Respostas:
Execute
cd /home/downloads; exec bash
como o comando personalizado. (Oexec
componente interno garante quebash
ele será filho do emulador de terminal; sem ele, pode acabar sendo neto.) Você pode executarterminator -e 'cd /home/downloads; exec bash'
na linha de comando.Você não pode usar aliases no comando personalizado porque seus aliases são definidos por
~/.bashrc
, mas esse arquivo é carregado apenas por shells interativos, não pelo shell de script usado como cola aqui entre o emulador de terminal e o shell de script. Se você quiser usar aliases, precisará carregá-los explicitamente. Se você os mantiver em um arquivo separado, isso seria algo comoou na linha de comando
Se seus aliases estiverem ativados
~/.bashrc
, use. ~/.bashrc
, mas tenha cuidado, pois pode haver coisas.bashrc
que causem erros, porque o shell não é interativo. Se isso acontecer, a solução mais fácil é dividir seus aliases (e funções e qualquer outra configuração que você queira usar no código de cola) em um arquivo separado e usá-lo.
para incluí-los.bashrc
.fonte
Eu tive o mesmo problema para ativar ambientes virtuais com o Terminator .
O truque é fazer tudo com apenas comando "one":
bash
. Aproveitando sua-i
opção (interativa) e usando um costume--rcfile
no qualPROMPT_COMMAND
está definido como o que queremos executar. O resultado seria assim:Simplesmente substitua
your commands; go here;
pelos seus comandos reais. Veja esta resposta para uma explicação .fonte
Basta adicionar o outro comando da mesma maneira que você adicionou o primeiro. Por exemplo, para executar
ls
:Você pode adicionar isso à opção "comando" do seu perfil:
O motivo que você não entende
rake
é que ele não está no caminho padrão. Para usá-lo, você precisa especificar o caminho. Então, primeiro execute este comando no seu terminal:Isso retornará algo como
/foo/bin/rake
. Esse é o caminho que você precisa. Pegue-o e adicione-o ao comando Personalizado acima:Isso não funcionará para aliases. Os aliases são configurados pelo seu shell e não estarão disponíveis aqui. Uma solução alternativa é usar scripts. Portanto, se você tiver um alias como este:
Crie um script, chame-o
foo.sh
e salve-o/home/youruser/bin
com este conteúdo:E torne-o executável:
Em seguida, na seção "Comando personalizado", use:
fonte
rake
deve se usar o caminho completo/path/to/rake
.cd /path/to/rake; rake; bash
faça/path/to/rake; rake; bash
.Se você clicar com o botão direito do mouse em uma janela aberta do Terminator, poderá escolher "Preferências". Escolha o "Perfil" e, a partir daí, a guia "Comando". Há uma caixa de seleção intitulada "Executar um comando personalizado em vez do meu shell".
Eu acredito que é isso que você está procurando.
fonte
Apenas não use '
command =
' para alterar o diretório. Use-o para o seu comando real!Ao editar
.config/terminator/config
, basta especificardirectory = <dir>
' quando você desejar que o terminal faça cd automaticamente em um determinado diretório, oucommand = <cmd>; <your_shell>
' quando você deseja executar um comando personalizado, e não simplesmente alterar o diretórioPor exemplo:
Se você deseja apenas que o terminal entre em CD
<dir>
na inicialização, especifique 'directory' e deixe 'command' vazio:Se você deseja executar apenas um comando personalizado, especifique apenas o comando:
Se você deseja que ambos cdem em DIR e executem o comando:
fonte