Tcsh'de bir takma adı geçici olarak nasıl atlayabilirim?


17

TCsh kullanıyorum. bash ve zsh ve diğer öneriler burada yardımcı olmaz.

Başka bir komutla aynı şey olarak adlandırılan birkaç takma adım var, bu yüzden unalias yapsaydım, aynı şeyi yazmak artık farklı bir şey yapar.

Çoğu zaman takma ad komutunu istiyorum, bu yüzden onlara sahibim. Ancak, bazen önyargısız komutu istiyorum.

Gerçekte herhangi bir sapma olmadan ve komutu yeniden tanımlamadan, tcsh'a bunun yerine alias olmayan komutu kullanmasını söylemenin basit bir yolu var mı?

Örneğin, vi, vim ile diğer addır, ancak bazen sadece vi kullanmak istiyorum. Cd, pencere başlığımı değiştirmek için takma olarak kullanılıyor, ancak bazen yalnız bırakmak istiyorum.

Açıkçası ben / usr / bin / vi yazabilirim ama cd bir kabuk yerleşik komut olduğundan eşdeğeri yoktur. Genel bir çözüm var mı?

Yanıtlar:


29

Ters eğik çizgi kullanabilirsiniz:

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

Kabuk yerleşikler için bir gotcha olduğu ortaya çıkıyor: önde gelen bir ters eğik çizgi hem takma adların hem de yerleşiklerin kullanılmasını önler, ancak dahili bir ters eğik çizgi yalnızca takma adı bastırır.

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

(Buna cshkabuk ailesini kullanmaya karşı başka bir argüman demeye cazip geldim .)


"Command: Komut bulunamadı." komut için ve \ cd için "cd: Komut bulunamadı". 'Command' yerleşik bir tcsh mı?
piCookie

iç çek POSIX tuhaflığı ... burada sahte /usr/binvar. Ancak el kitabı, ters eğik çizginin çalışması gerektiğini onaylıyor ... ve işe yarıyor, ancak hala yerleşikleri desteklerken takma adı önlemek için bir karakter belirtmeniz gerekiyor. Bir sonra bir şeyler yapmaya çalışıyorsanız BTW, cd, bakmak alias cwdcmdiçinde tcsh(1); Bu da uğraşmak zorunda kaydeder pushd/ popdvs
geekosaur

commandgenellikle POSIX mermilerinde yerleşiktir ve olması gerekir command -[Vv]. Diğer adı atlamak için ters eğik çizgi kullanmak yerleşik komutlar için değil, yalnızca normal komutlar için çalışır (çünkü yerleşikler diğer adlardan (t) csh içinde alıntılanamaz).
Gilles 'SO- kötü olmayı bırak'

Komut sistemimde mevcut değil gibi görünüyor (bir yana: bunu öne çıkarmak için nasıl formatladınız?), Ancak iç ters eğik çizgi benim için çalışıyor. Teşekkürler!
piCookie

Şerefe @geekosaur - Bu \ davranış hakkında bilmiyordum ve takma adları daha sık kullanmaya başladığımda oldukça kullanışlı olacağını düşünüyorum. :)
boehj

1

komutunuza 'command' kelimesini önek olarak ekleyin. Ör.

command ls

1
Sorunun gerektirdiği gibi, bu tcsh'de çalışıyor mu? Yerleşik komutlarla çalışır mı?
dhag

0

Clobber shell'in oluşturduğu takma adlar yapmayın. Hayatınız çok daha kolay olacak . Çok sayıda tuş kombinasyonu kaldı, cwdeğişiklik penceresi başlığı takma adınızı deneyin :)

Düzenleme: Sizin olmayan diğer adları düzeltmek için iki adımlı çözüm:

  1. Change cd-directory komutundan başka bir şeye takma olan maymunu bulun ve yerel kağıdın açık sütununa aktarılmasını talep edin. Böyle fikirleri başkalarının mermilerine zorlayabileceği bir iş tutmamalı!
  2. echo unalias cd >> ~/.bashrc

Sahip olduğum bazı takma adlar benim yaptığım gibi değil. Tavsiyelerinizi takdir ediyorum ve mümkün olan her yere dikkat etmek için elimden geleni yapacağım. Şimdi oradaki vardır ben bypass etmek istiyorum takma adlar, nasıl yapılır?
piCookie

Elbette. unalias cd.
Caleb

Açıkçası, hiç net değildim Caleb ve özür dilerim. Çözülmüş 'cd' davasını çağıralım. Ben diğer takma adlar bunu nasıl öğrenmek için çalışıyordu olmadan unaliasing. Bunu anlamadığım için üzgünüm. Dahili ters eğik çizgi tam olarak aradığım şey gibi görünüyor.
piCookie

cdTakma başlığı ayarlıyor olabilir ve dizin değiştirme. Bu daha önce günlerden oldukça yaygın bir uygulamadır precmdve PROMPT_COMMAND.
Mikel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.