Eu gostaria de criar um alias para rm comando a fim ter um mensagem de confirmação após ter executado este comando. Então, estou criando um alias como este alias rm='rm -i'. Mas, pelo que eu sei, este é um alias temporário e vive até você fechar o terminal.
Como é explicado aqui para salvar o alias permanentemente, preciso executar ~/.bash_aliases ou ~/.bashrc comandos no terminal e adicione meu alias lá. Mas quando eu executo ~/.bashrc Recebo a seguinte mensagem de erro :
bash: /home/bakhtiyor/.bashrc: Permission denied
Quando Eu corro ~/.bash_aliases Recebo outra mensagem de erro como esta:
bash: /home/bakhtiyor/.bash_aliases: File or directory doesn't exist.
Há muitas maneiras de criar um alias. As formas mais utilizadas são:
Adicione aliases diretamente em seu ~/.bashrc arquivo
Por exemplo: anexar essas linhas a ~/.bashrc arquivo
alias ll='ls -l'alias rm='rm -i'
Da próxima vez (depois de ter feito logout / in, ou feito . ~/.bashrc) quando você digita rm o rm -i o comando será executado.
O segundo método permite criar um arquivo de aliases separado, para que você não precise colocá-los .bashrc, mas para um arquivo de sua escolha. Primeiro, edite seu ~/.bashrc arquive e adicione as seguintes linhas se elas ainda não existirem ou descomente-as se existirem:
if [ -f ~/.bash_aliases ]; then. ~/.bash_aliasesfi
Salve - o e feche o arquivo. Depois disso, tudo o que você precisa fazer é criar um ~/.bash_aliases arquivo e adicione seus aliases lá, com o mesmo formato especificado no primeiro método.
Parece - me que seu único problema é simplesmente tentar executar .bashrc quando não é executável. Mas esta não é a maneira correta de fazer isso; sempre que você fizer uma alteração neste arquivo, você deve "executá - lo" pelo comando:
source ~/.bashrc
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 sua alteração. Ao obter o script, ele é executado dentro do shell atual, portanto, permanecerá em vigor.
Estou assumindo que o segundo erro foi porque bash_aliases não existe. Não é obrigatório, apenas recomendado manter suas alterações separadas e organizadas. Ele só é usado se existir, e você pode ver o teste para ele em .bashrc:
if [ -f ~/.bash_aliases ]; then. ~/.bash_aliasesfi
Isso diz que se o arquivo ~/.bash_aliases existe e, em seguida, execute-o.
Este é um exemplo que eu estava procurando, uma maneira de digitar algumas letras no terminal ("vps") para fazer login remotamente em um servidor e habilitar o encaminhamento X11 para que eu possa executar aplicativos gui como "gedit" pela rede.
>>Seja qual for o comando command / aliased, desta forma com a instrução echo, aspas e o símbolo para anexar a saída de um comando a um file () funciona para mim. Basta substituir meu comando pelo comando alias que você precisa e inseri-lo em seu terminal.
Escrevi esta função útil para criar rapidamente um novo alias e, em seguida, escrever a definição de alias para ~/.bash_aliases(se existir) ou ~/.bashrc.
DICA: Garantir ~/.bash_aliases existe & AMP; é executado em ~/.bashrc.
# -----------------------------------# Create a new permanent bash alias## @param $1 - name# @param $2 - definition# -----------------------------------new-alias () { if [ -z "$1" ]; then echo "alias name:" && read NAME else NAME=$1 fi if alias $NAME 2 > /dev/null > /dev/null; then echo "alias $NAME already exists - continue [y/n]?" && read YN case $YN in [Yy]* ) echo "okay, let's proceed.";; [Nn]* ) return;; * ) echo "invalid response." && return;; esac fi if [ -z "$2" ]; then echo "alias definition:" && read DEFINTION else DEFINTION="$2" fi if [ -f ~/.bash_aliases ]; then echo "alias $NAME=\"$DEFINTION\"" >> ~/.bash_aliases else echo "alias $NAME=\"$DEFINTION\"" >> ~/.bashrc fi alias $NAME="$DEFINTION"}
se você estiver usando ruby, você pode instalar aka usando rubygem.
gem install aka2
uso
aka generate hello="echo helloworld" #add an aliasaka g hello="echo helloworld" #add alias for lazy peopleaka destroy hello #remove aliasaka d hello #remove alias for lazy people
o rubygem irá auto-source seu arquivo dot para que você não precisa. Olha só.
Agora você pode digitar cp $ngse/my_file /destination_directory/destination_filename para copiar um arquivo do diretório habilitado para sites para um destino.
Nada disso funcionará até que você faça algo assim:
exec bash
Como alternativa, você pode registrar novamente ou reinicializar.
Pelo que me lembro, bashrc tem, ou teve, uma linha sugerindo não usá-lo para aliases diretamente. O solucao é usar um(S) arquivo (s) externo (s). O foo e bar aliases foram adicionados, mas para adicionar baz o bashrc o arquivo deve ser "originado" (ou, basta abrir um novo terminal). Exemplo como: