Я не можу знайти .bash_profile
в Ubuntu 14.04 у своєму /home/user
каталозі. Я використовував ls -a
команду, щоб побачити .bash_profile
файл, але такого файлу немає.
Я не можу знайти .bash_profile
в Ubuntu 14.04 у своєму /home/user
каталозі. Я використовував ls -a
команду, щоб побачити .bash_profile
файл, але такого файлу немає.
Відповіді:
Використовує Ubuntu ~/.profile
.
ви можете створити свою програму .bash_profile
в Ubuntu, але вона .profile
не буде прочитана.
Якщо ми читаємо вміст .profile:
cat ~/.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.
Тому використовуйте ~/.profile
замість~/.bash_profile
vim ~/.bashrc
тоді редагувати .bashrc . ~/.bashrc
При виклику оболонки для входу bash шукає конфігураційні файли в такому порядку:
[0] ~/.bash_profile
[1] ~/.bash_login
[2] ~/.profile
Знайшовши перший, він перестає шукати інших, тому, якщо є .bash_profile
в моєму $HOME
башті, не шукатиму .bash_login
і .profile
більше.
З цих трьох імен файлів Ubuntu за замовчуванням використовує .profile
ви можете перейменувати його, .bash_profile
якщо вам подобається:
mv ~/.profile ~/.bash_profile
Тепер , якщо ми відкриваємо нову Баш оболонку , використовуючи bash -l
, su - $USER
, sudo -u $USER -i
або будь-які інші команди , яка працює Баш як шелл, ~/.bash_profile
отримають джерела.
Те, про що я говорив до цих пір, стосується лише самого Bash, коли ви входите в систему з графічного інтерфейсу, менеджер дисплеїв відповідає за пошук правильних файлів.
Ubuntu використовує gdm3
в якості свого диспетчера дисплеїв, якщо ми подивимось: /etc/gdm3/Xsession
ми можемо побачити, що жоден з файлів не буде отриманий, крім .profile
:
# First read /etc/profile and .profile
for file in /etc/profile "$HOME/.profile"; do
if [ -f "$file" ]; then
source_with_error_check "$file"
fi
done
тому якщо ви використовуєте графічний інтерфейс для входу, тримайте файл під .profile
назвою, інакше ви можете пропустити деякі змінні та налаштування у ваших середовищах.
Я вважаю, що кращим варіантом є створення символьної посилання на .profile
:
ln -s ~/.profile ~/.bash_profile
Тепер ваші дані живуть .profile
, gdm
нічого не пропускають, .bash_profile
насправді завантажують .profile
, і редагуючи кожну з них, ви отримуєте однаковий результат.
Якщо у вас немає, .profile
то захопіть його копію звідси:
cp /etc/skel/.profile ~/.profile
або
# Remember the note above
cp /etc/skel/.profile ~/.bash_profile
man bash
на Ubuntu все ще описується, як він спочатку буде шукати .bash_profile.
.bash_profile
перше він не може знайти його (бо він не існує) , то шукає .bash_login
не може знайти його знову (бо Ubuntu не використовує ці два імені) , нарешті він шукає .profile
і так там. Отже, якщо ви створюєте .bash_profile
в, ~
то ви перезаписуєте ubuntu ~/.profile
, це поведінка bash за замовчуванням тут нічого не змінено.
.bash_profile
, він не читається. Я щойно зрозумів, що це тому, що Ubuntu більше не використовує 'Bash' як оболонку входу в GUI. Натомість він використовує "Dash". Я думаю, що це правда приблизно з 18.04.
Це означає, що файл не існує. Але ви можете створити файл і bash
виконувати / джерела, якщо файл bash
викликається як оболонка для входу. Тож у будь-який час ви входите через оболонку (наприклад, через ssh
).
Якщо ви хочете, щоб вміст виконувався кожного разу, коли ви відкриваєте термінал, тоді вам слід змінити .bashrc
файл.
/etc/skel/
каталогу.
.bash_profile
відсутня (і не працює) на Ubuntu в коментарях до інших відповідей.
Топ відповідь, що використовувати ~/.profile
замість ~/.bash_profile
, не працював для мене.
Модифікація .bashrc
спрацювала
Просто:
vim ~/.bashrc
Примітка: я використовую Ubuntu WSL.
~/.profile
просто не завантажується за замовчуванням у ubuntu 18.04
Якщо ви маєте на увазі .bashrc, ви знайдете його у своїй домашній папці. Якщо його немає, ви можете скопіювати його з папки / etc / skel у свою домашню папку.
Якщо вам потрібна додаткова інформація з цього приводу, завітайте на сторінку стефана з ліпами.
~/.profile
замість цього.