Як послідовно визначати псевдоніми в Терміналі


18

Я хочу додати псевдоніми до свого оточення, щоб вони були доступні у всіх екземплярах Терміналу.

Я отримав цю відповідь :

Так, ви можете помістити його у свій .bashrc, .bash_profile або .profile. У деяких системах сценарії ініціальної оболонки також джерело .bash_aliases або .aliases, тож якщо один із цих файлів існує у вашій системі, можливо, їх має сенс використовувати. "

Але я не можу знайти жоден із цих файлів.

(Я налаштував OS X для перегляду прихованих файлів, але все ж не бачу жодного з перерахованих вище.)


Псевдоніми працюють лише в оболонці (у терміналі), і що саме ви маєте на увазі, додаючи псевдоніми у ваше середовище OS X? Ви хочете зробити псевдонім доступним для всіх користувачів?
nohillside

Я мав на увазі, що він буде встановлений для кожного екземпляра терміналу, який я відкрию в майбутньому
Elad Benda

Я відмовив вашу редакцію, оскільки це змінило фокус питання. Якщо ви все ще шукаєте відповідь про те, як додати псевдоніми до zsh, будь ласка, задайте нове запитання.
nohillside

Відповіді:


23

Якщо ви використовуєте bash, додайте команди псевдоніму до ~ / .bashrc і збережіть такий файл як ~ / .bash_profile:

. ~/.bashrc

Коли bash викликається як інтерактивна оболонка без входу, вона читає .bashrc, але не .bash_profile. Коли bash викликається як інтерактивна оболонка входу, вона зчитує .bash_profile, але не .bashrc.

Термінал та iTerm за замовчуванням відкривають нові оболонки як оболонки для входу, тому багато користувачів OS X просто використовують .bash_profile як свій особистий файл конфігурації. Наприклад, tmux та режим оболонки в Emacs відкривають нові оболонки як оболонки без входу.

.profile також читається іншими оболонками, такими як ksh. Якщо і .bash_profile, і .profile існують, bash зчитує .bash_profile лише тоді, коли він викликається як інтерактивна оболонка входу.

Див. Https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html для отримання додаткової інформації.


3
@EladBenda Якщо ви використовуєте zsh, додайте до нього команди псевдоніму ~/.zshrc. ~/.zshrcзчитується обома (інтерактивними) оболонками без входу та входу, тому вам не доведеться його джерело ~/.zprofile.
Лрі

Завжди хотів знати різницю між .bash_profile і .bashrc, тепер я знаю. Спасибі.
Дісбек

Кращим варіантом є збереження псевдонімів у файлі під назвою ~ / .aliases, якщо ви використовуєте oh-my-zsh. Якщо цей файл не існує, його можна додати в домашню папку і буде прихованим файлом.
Ануша

6

Відкрийте нове вікно терміналу та перейдіть до своєї домашньої каталоги (просто введіть cdта натисніть Enter).

Після цього введіть, ls .bash*а також ls .profile(будь-ласка, кожне з цих імен файлів починається з крапки). Якщо у вас є ці файли (і у вас повинен бути принаймні .profile), вам потрібно відредагувати їх і додати до них псевдоніми. Я використовую VI (або VIM) для редагування цих файлів, але ви можете скористатися іншим редактором (адже введення у вікно терміналу open .bash_profileвідкриє його в TextEditor, що може бути трохи зручнішим для користувачів, якщо ви не знайомі з VI) . Якщо з якихось причин у вас немає жодного з цих файлів, створіть новий (і назвіть його .bashrc), додайте до нього свої псевдонімові рядки (так що це буде одна команда на рядок, як і ви їх вводили. в оболонці), а потім збережіть файл. Потім ви можете створити посилання на .bash_profile та .profile, використовуючи ln -s .bashrc .bash_profile; ln -s .bashrc .profile.

Як правило, я роблю символічні посилання .bashrc та .bash_profile на .profile, а потім просто хвилююся лише про один файл.

Різниця між цими файлами полягає в тому, що bash буде створювати різні файли залежно від того, розпочато це як оболонка для входу (як правило, процес входу розпочинає оболонку як оболонку для входу) або як просто інтерактивну (але не вхідну) оболонку неінтерактивна оболонка. Маючи всі три файли по суті однакові, дає мені послідовне оточення незалежно від того, як було розпочато баш.

Ви отримаєте більше інформації, зробивши це man bash, але будьте готові, це довга сторінка. Ви зможете побачити, який із трьох файлів (.bashrc, .profile та .bash_profile) розміщений залежно від того, у якому режимі було запущено bash.

Сподіваюся, що це допоможе - якщо ні, то крикни.


3

Введіть наступні команди в термінал:

cd /etc
sudo vi bashrc

додати таке:

alias ll="ls -lrt"

Нарешті перезапустіть термінал.


2

Якщо вам потрібна ця машина широко, вам потрібно заглянути в /etcпапку. Однак вони можуть не існувати за замовчуванням, і тоді вам просто потрібно створити їх у вищевказаній папці та перезапустити термінал. Вам, швидше за все, потрібно буде sudoстворити їх, оскільки /etcпапка належить root.

Якщо вам це потрібно для кожного відкритого терміналу, вам не потрібно робити це на машині широко. Ви можете створити ці файли у власній домашній папці, і вони будуть читатись терміналом кожного разу, коли ви починаєте сеанс терміналу.

Крім того, як зазначено в коментарях, ви, як правило, зможете їх бачити лише за допомогою терміналу та використання ls -lha.


0

якщо у вас встановлений ruby, перегляньте цей сценарій ruby https://github.com/ytbryan/aka

Сценарій надає такі функції, як стійкість та автоматичне пошуку точкових файлів. Ви можете керувати псевдонімами через термінал, не порушуючи робочий процес і відкривати текстовий редактор.

відмова від відповідальності: я написав цей сценарій і використовую його щодня. Повідомте мене, чи є помилка / ідея. :)


0

Для тих, хто шукає команду ll, як у Linux BASH, вона створена так ...

alias ll="ls -laF"

Додайте цей рядок у свій .bashrcфайл, а потім дублюйте .bashrcфайл як .bash_profile, і у вас буде завжди і назавжди.

Для чого це варто, Lll на Linux BASH - це лише псевдонім " ls -laF".


-2

У мене була та сама проблема, що у мене не було .bash чи .profile у моєму профілі. я нарешті знайшов його в / тощо


1
/ і т.д. використовується для всієї системи. Настійно рекомендую не редагувати ці файли, а замість цього використовувати власні файли профілів у домашній папці, наприклад ~ / .bash_profile.
гр

Я не вважаю, щоб мати ~ / .bash_profile, це було першим, що я спробував, і якщо я створив його, він не використовується, навіть після перезавантаження, я вірю, що мої адміністратори, напевно, перешкодили цьому. Зараз я використовую zsh, а .zshrc працює добре
Лео Булангер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.