Невозможно получить цветное приглашение, несмотря на установку PS1 в .bashrc

Проблема заключается в том, что у вас нет разрешения на запись в /opt/lampp/htdocs/vivek.s в качестве обычного пользователя. Выполнение mysqldump с правами root вызывает mysqldump (необязательно), но перенаправление происходит с разрешениями оболочки - работает как ваш обычный пользователь.

Существует несколько обходных путей:

Запустите корневой оболочки, например sudo -i или sudo -s. Вы не должны использовать sudo для запуска следующей команды - mysqldump. Используйте tee: mysqldump -u root -p vive.se | sudo tee 07feb.sql> / dev / null

Это запустит процесс tee как root, записывает одну копию в файл и перенаправляет stdout на /dev/null, поскольку он нам не нужен. [ ! d8]

Другим обходным решением было бы записать резервную копию в место, где у вашего пользователя есть разрешение на запись, например, ваш домашний каталог.

1
задан 13 February 2018 в 23:47

3 ответа

При использовании ssh вы получаете оболочку для входа.

Из ~/.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.

Поэтому убедитесь, что этот файл существует в домашнем каталоге пользователя, в котором вы находитесь пытаясь войти в систему. Если он не существует, создайте файл и заставьте его прочитать файл ~/.bashrc, набрав это -

if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi
2
ответ дан 22 May 2018 в 13:07

При использовании ssh вы получаете оболочку для входа.

Из ~/.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.

Поэтому убедитесь, что этот файл существует в домашнем каталоге пользователя, в котором вы находитесь пытаясь войти в систему. Если он не существует, создайте файл и заставьте его прочитать файл ~/.bashrc, набрав это -

if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi
2
ответ дан 17 July 2018 в 20:53

При использовании ssh вы получаете оболочку для входа.

Из ~/.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.

Поэтому убедитесь, что этот файл существует в домашнем каталоге пользователя, в котором вы находитесь пытаясь войти в систему. Если он не существует, создайте файл и заставьте его прочитать файл ~/.bashrc, набрав это -

if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi
2
ответ дан 23 July 2018 в 21:33

Другие вопросы по тегам:

Похожие вопросы: