Я не можу знайти .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замість цього.