Gostaria de criar um alias para rm
comando, a fim de ter uma mensagem de confirmação depois de executar este comando. Então, eu estou criando um alias como este alias rm='rm -i'
. Mas, tanto quanto eu sei, esse é um apelido temporário e permanece até você fechar o terminal.
Como é explicado aqui para salvar o alias permanentemente, preciso executar ~/.bash_aliases
ou ~/.bashrc
comandos no terminal e adicionar meu alias lá. Mas quando executo ~/.bashrc
, recebo a seguinte mensagem de erro:
bash: /home/bakhtiyor/.bashrc: Permission denied
Quando executo ~/.bash_aliases
, recebo outra mensagem de erro como esta:
bash: /home/bakhtiyor/.bash_aliases: File or directory doesn't exist.
Qual é o problema real e como posso resolvê-lo?
alias rm='rm -i'
não resolve o problema de usar rmRespostas:
Para criar um alias permanentemente, adicione o alias ao seu
.bashrc
arquivoE adicione seu alias na parte inferior.
Agora execute
. ~/.bashrc
no seu terminal (deve haver um espaço entre o.
e~/.bashrc
.Agora você pode verificar seu alias.
fonte
source
. Com. ~/.bashrc
, você fornece sua festança. A execução do arquivo iniciaria um processo filho, executaria os comandos nesse processo e retornaria. Tudo o que é feito no processo filho não afeta o processo pai (o bash a partir do qual você executou). Em vez disso, a fonte (com o ponto) age exatamente como se você tivesse escrito o conteúdo do arquivo no terminal. Isso é o que você quer..bashrc
é fornecido sempre que você inicia uma festança. Se você fizer alterações, elas não serão aplicadas até que você inicie uma nova base ou fonte manualmente.Existem várias maneiras de criar um alias. As formas mais usadas são:
Adicione aliases diretamente no seu
~/.bashrc
arquivoPor exemplo: acrescente estas linhas ao
~/.bashrc
arquivoNa próxima vez em
. ~/.bashrc
que você digitar,rm
orm -i
comando será executado.O segundo método permite criar um arquivo de aliases separado, para que você não precise inseri-los
.bashrc
, mas para um arquivo de sua escolha. Primeiro, edite seu~/.bashrc
arquivo e adicione as seguintes linhas, se ainda não existirem, ou remova o comentário se houver:Salve-o e feche o arquivo. Depois disso, tudo que você precisa fazer é criar um
~/.bash_aliases
arquivo e adicionar seus aliases, com o mesmo formato especificado no primeiro método.Conteúdo do meu
~/.bash_aliases
arquivo:fonte
~/.bash_aliases
.alias aliases="xdg-open ~/.bash_aliases && source ~/.bash_aliases"
, então o apelido se tornou útil para salvar, e se você cometer algum erro, ele o anunciará.alias ls='ls -althr'
, algumas das sinalizações fornecidas não entrariam em vigor; nesse caso, a sinalização -t não entrou em vigor. Você sabe por quê?~/.bashrc
contém inclusão para~/.bash_aliases
, não há necessidade de editá-lo.Parece-me que seu único problema é simplesmente tentar executar .bashrc quando não é executável. Mas essa não é a maneira correta de fazer isso; sempre que você fizer uma alteração neste arquivo, você deve "executá-lo" pelo comando:
Caso contrário, ele simplesmente criará um novo shell, executará o arquivo no ambiente do novo shell e descartará esse ambiente quando ele sair, perdendo assim as alterações. Ao fornecer o script, ele é executado dentro do shell atual e, portanto, permanece em vigor.
Estou assumindo que o segundo erro foi porque bash_aliases não existe. Não é necessário, apenas recomendado para manter suas alterações separadas e organizadas. É usado apenas se existir, e você pode ver o teste em .bashrc:
Isso indica que, se o arquivo ~ / .bash_aliases existir, execute-o.
fonte
~/.bash_aliases
é melhor. askubuntu.com/questions/194111/…source
comando fez meus aliases funcionarem. +1. ~/.bash_aliases
tem o mesmo significado que o comando interno do shellsource
. Acho que essa é a resposta correta, explicando o que está acontecendo.O problema é que você está tentando executar um arquivo não executável: Você pode verificar isso com:
Observe que não há letra "x - executável" na primeira coluna (permissões de arquivo).
Os arquivos de perfil não são arquivos executáveis. Em vez de executá-los, você os carrega:
ou
fonte
Este é um exemplo que eu estava procurando, uma maneira de digitar algumas letras no terminal ("vps") para efetuar login remotamente em um servidor e ativar o encaminhamento X11 para que eu possa executar aplicativos de interface gráfica como "gedit" pela rede.
Qualquer que seja o comando / comando com alias, dessa maneira, com a instrução eco, aspas e o símbolo para anexar a saída de um comando a um arquivo (>>) funciona para mim. Apenas substitua meu comando pelo comando de alias necessário e digite-o no seu terminal.
fonte
se você estiver usando ruby, poderá instalar o aka usando rubygem.
gem install aka2
uso
o rubygem criará automaticamente seu arquivo de ponto para que você não precise. Confira.
fonte
Eu escrevi essa função útil para criar rapidamente um novo alias e, em seguida, escreva a definição do alias para
~/.bash_aliases
(se existir) ou~/.bashrc
.DICA : verifique se
~/.bash_aliases
existe e é executado em~/.bashrc
.fonte
.bashrc
com várias instâncias dealias
comando. Sua função definitivamente precisa implementar alguns exames para evitar essa confusão.Eu sugeriria usar
/etc/bash.bashrc
Você pode adicionar uma linha no final desse arquivo.
Depois de colocar os aliases por linha, você precisará reiniciar ou entrar novamente.
fonte
source /etc/bash.bashrc
tudo o que você deseja neste exemplo. Mas deve usar~/.bashrc
ou em~/.bash_aliases
vez dissoPelo que me lembro,
bashrc
tem, ou teve, uma linha sugerindo não usá-la para aliases diretamente. A solução é usar um arquivo externo. Os aliasesfoo
ebar
foram adicionados, mas para adicionarbaz
obashrc
arquivo deve ser "originário" (ou, basta abrir um novo terminal). Exemplo como:agora o
baz
apelido funciona. Só agora percebi que uma resposta anterior havia mencionado essa técnica, mas eles haviam enterrado o lede.fonte