bash: /home/rathin/.profile :: Nenhum arquivo ou diretório ao tentar recarregá-lo via “source ~ / .profile” depois de editá-lo através de “vi ~ / .profile”

2

Depois que editei o comando ~/.profile via vi , não consegui sair dele com êxito.

Então eu fechei o terminal e quando tentei novamente depois de reabrir o terminal, ele mostrou um arquivo duplicado chamado ~/.profile.swp . Então eu deletei.

Agora mostra

bash: /home/rathin/.profile:: No such file or directory

quando tento

source ~/.profile

Também mostra erro

Error loading /home/user/.profile no such file or directory found.

quando eu reiniciar meu laptop.

Esta é a saída de vi ~/.profile

~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

"~/.profile" 25 lines, 677 characters

Qualquer ajuda será muito apreciada.

    
por Rathin Shah 26.07.2015 / 06:42

2 respostas

3

Livre-se da primeira linha desse arquivo. Ele lê

~/.profile: ...

e o bash tenta executar este arquivo, cujo nome termina com : . Esse arquivo não existe, então o bash reclama, anote o double : no messsge de erro.

    
por Harald 26.07.2015 / 08:09
1

TL; DR A primeira linha deve ser um comentário

# ~/.profile: executed by the command interpreter for login shells.

Portanto, execute

perl -i.bak -0777 -pe 's/^/# /' ~/.profile

O comando adiciona # no início da primeira linha e cria um arquivo de backup: ~/.profile.bak

Explicação

  • -0777 altera o separador de linha para undef, permitindo que nós façamos "slurp" no arquivo, alimentando todas as linhas para Perl de uma só vez.

  • -p processa o arquivo linha por linha e imprime a saída.

  • -e é o que nos permite especificar o código Perl que queremos executar na linha de comando.

por A.B. 26.07.2015 / 12:04