Як я можу тимчасово обійти псевдонім у tcsh?


17

Я використовую tcsh. bash і zsh та інші пропозиції тут не допоможуть.

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

Більшу частину часу я хочу отримати команду aliase, саме тому я їх маю. Однак іноді мені хочеться невпевненої команди.

Не маючи насправді недозволення та переназначення команди, чи є простий спосіб сказати tcsh використовувати замість нього невстановлену команду?

Наприклад, vi є псевдонім vim, але іноді я хочу просто використовувати vi. Компакт-диск є псевдонімом, щоб змінити назву вікна, але іноді хочеться залишити його в спокої.

Очевидно, я міг набрати / usr / bin / vi, але оскільки CD є вбудованою командою оболонки, немає еквівалента. Чи є загальне рішення?

Відповіді:


29

Ви можете використовувати зворотний нахил:

% alias ls ls -a
% ls
# ls -a output here
% \ls
# plain ls output here

Для вбудованих оболонок, як виявилося, є готча: провідний зворотний косий перешкоджає використанню псевдонімів та вбудованих модулів, але внутрішній зворотний косий перешкоджає лише згладжуванню.

% alias cd pushd
% cd /tmp
/tmp /tmp 
% c\d
% dirs
~ /tmp

(Мені спокуса назвати ще один аргумент проти використання cshродини снарядів.)


Я продовжую отримувати "команду: Команда не знайдена." для команд та "cd: Команда не знайдена" для \ cd. Чи вбудований 'command' tcsh?
piCookie

зітхання POSIX дивацтва ... тут є підробки /usr/bin. Але посібник підтверджує, що зворотна косої риси повинно працювати ... і виявляється, що вона є, але вам потрібно навести внутрішній символ, щоб запобігти згладжуванню, зберігаючи вбудовані файли. До речі, якщо ви намагаєтеся зробити що - то після того cd, подивіться на alias cwdcmdв tcsh(1); це також позбавляє вас від необхідності мати справу з pushd/ popdі т. д.
geekosaur

commandзазвичай є вбудованою в оболонки POSIX, і її потрібно мати command -[Vv]. Використання зворотної косої риски для обходу псевдоніма працює лише для звичайних команд, а не для вбудованих (оскільки вбудовані файли не можуть бути цитовані в (t) csh більше, ніж можуть псевдоніми).
Жил 'ТАК - перестань бути злим'

Здається, що команда недоступна в моїй системі (осторонь: як ти відформатував це, щоб виділитися?), Але внутрішній зворотний косий рядок працює для мене. Спасибі!
piCookie

Будьте здорові @geekosaur - я не знав про це \ поведінку, і думаю, це буде досить зручно, оскільки я все частіше і частіше починаю використовувати псевдоніми. :)
boehj

1

префікс вашої команди словом «команда». Вих.

command ls

1
Чи працює це в tcsh, як вимагає запитання? Це працює з вбудованими командами?
даг

0

Не створюйте псевдоніми, які вбудовують оболонки клобери. Ваше життя буде набагато простішим . Залишилося багато комбінацій клавіш, спробуйте cwстворити псевдонім назви вікна зміни :)

Редагувати: двоступеневе рішення для виправлення псевдонімів, які не є вашими:

  1. Знайдіть мавпу, якій присвоєно cdщось інше, ніж команду змін-каталогу, і попросіть його перенести до стовпця «oped» місцевої газети. Йому не слід займатися роботою, де він може змусити такі ідеї на оболонках інших людей!
  2. echo unalias cd >> ~/.bashrc

Деякі псевдоніми, які я маю, не власні. Я ціную вашу пораду і докладу всіх зусиль, щоб прислухатися до неї, де це можливо. Тепер, коли є псевдоніми, які я хотів би обійти, як це зробити?
piCookie

Звичайно. unalias cd.
Калеб

Очевидно, що я зовсім не був зрозумілий, Калеб, і вибачаюся. Давайте назвемо розв’язаний випадок 'cd'. Я намагався з’ясувати, як це зробити для інших псевдонімів, не зважаючи на це. Мені шкода, що я цього не перебрав. Схоже, внутрішній зворотний кут - саме те, що я шукав.
piCookie

cdІм'я користувача може бути установка заголовка і зміни каталогу. Це досить поширена практика за часи до precmdта PROMPT_COMMAND.
Мікель
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.