Làm thế nào để tôi tạm thời bỏ qua một bí danh trong tcsh?


17

Tôi đang sử dụng tcsh. bash và zsh và các đề xuất khác sẽ không giúp đỡ ở đây.

Tôi có một số bí danh được đặt tên giống như một lệnh khác, vì vậy nếu tôi thực hiện unalias nó, gõ cùng một thứ sẽ làm điều gì đó khác đi.

Hầu hết thời gian tôi muốn lệnh bí danh, đó là lý do tại sao tôi có chúng. Tuy nhiên, đôi khi tôi muốn lệnh không thiên vị.

Nếu không thực sự không định vị và xác định lại lệnh, có cách nào đơn giản để nói với tcsh sử dụng lệnh không thiên vị thay thế không?

Ví dụ, vi được đặt bí danh cho vim, nhưng đôi khi tôi chỉ muốn sử dụng vi. cd được đặt bí danh để thay đổi tiêu đề cửa sổ của tôi, nhưng đôi khi tôi muốn để nó một mình.

Rõ ràng tôi có thể gõ / usr / bin / vi nhưng vì cd là lệnh tích hợp shell nên không có tương đương. Có một giải pháp chung?

Câu trả lời:


29

Bạn có thể sử dụng dấu gạch chéo ngược:

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

Đối với các nội dung shell, hóa ra là một gotcha: dấu gạch chéo ngược hàng đầu ngăn cả bí danh và nội dung được sử dụng, nhưng dấu gạch chéo ngược bên trong chỉ ngăn chặn bí danh.

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

(Tôi muốn gọi đó là một lập luận khác chống lại việc sử dụng cshhọ vỏ.)


Tôi tiếp tục nhận được "lệnh: Lệnh không tìm thấy." cho lệnh và "cd: Không tìm thấy lệnh" cho \ cd. Là 'lệnh' một tcsh tích hợp?
piCookie

thở dài kỳ lạ POSIX ... có hàng giả ở /usr/binđây. Nhưng hướng dẫn xác nhận rằng dấu gạch chéo ngược sẽ hoạt động ... và hóa ra là như vậy, nhưng bạn phải trích dẫn một ký tự bên trong để ngăn răng cưa trong khi vẫn hỗ trợ các nội trang. BTW, Nếu bạn đang cố gắng làm điều gì đó sau một cd, hãy nhìn vào alias cwdcmdtrong tcsh(1); điều này cũng giúp bạn không phải đối phó với pushd/ popdv.v.
geekizard

commandthường là một vỏ POSIX tích hợp và cần phải có command -[Vv]. Sử dụng dấu gạch chéo ngược để bỏ qua bí danh chỉ hoạt động đối với các lệnh thông thường, không phải cho các nội trang (vì các nội dung không thể được trích dẫn trong (t) csh nhiều hơn các bí danh có thể).
Gilles 'SO- ngừng trở nên xấu xa'

Có vẻ như lệnh đó không có sẵn trên hệ thống của tôi (ngoài ra: bạn đã định dạng nó như thế nào để nổi bật?), Nhưng dấu gạch chéo nội bộ hoạt động với tôi. Cảm ơn!
piCookie

Chúc mừng @geekizard - Tôi không biết về hành vi này và tôi nghĩ nó sẽ khá tiện lợi khi tôi bắt đầu sử dụng bí danh ngày càng thường xuyên hơn. :)
boehj

1

tiền tố lệnh của bạn với từ 'lệnh'. Ví dụ.

command ls

1
Điều này có hoạt động trong tcsh, như câu hỏi yêu cầu? Nó có hoạt động với các lệnh tích hợp không?
dhag

0

Đừng tạo bí danh mà tích hợp vỏ clobber. Cuộc sống của bạn sẽ dễ dàng hơn nhiều . Có rất nhiều tổ hợp phím còn lại, hãy thử cwbí danh tiêu đề cửa sổ thay đổi của bạn :)

Chỉnh sửa: Giải pháp hai bước để sửa bí danh không phải của bạn:

  1. Tìm con khỉ đã đặt bí danh cdcho thứ gì đó ngoài lệnh thay đổi thư mục và yêu cầu chuyển đến cột oped của tờ báo địa phương. Anh ta không nên nắm giữ một công việc mà anh ta có thể ép những ý tưởng như thế đó vào vỏ của người khác!
  2. echo unalias cd >> ~/.bashrc

Một số bí danh tôi không phải là của riêng tôi. Tôi đánh giá cao lời khuyên của bạn và sẽ cố gắng hết sức để chú ý đến nó nếu có thể. Bây giờ có những bí danh tôi muốn bỏ qua, làm thế nào để tôi?
piCookie

Chắc chắn rồi. unalias cd.
Caleb

Rõ ràng, tôi không rõ ràng chút nào, Caleb và tôi xin lỗi. Hãy gọi trường hợp 'cd' được giải quyết. Tôi đã cố gắng tìm ra cách để làm điều này cho các bí danh khác mà không có sự thiên vị. Tôi xin lỗi tôi đã không hiểu điều đó. Có vẻ như một dấu gạch chéo nội bộ chính xác là những gì tôi đang tìm kiếm.
piCookie

Các cdbí danh có thể thiết lập các tiêu đề thay đổi thư mục. Đó là một thực tế khá phổ biến từ những ngày trước precmdPROMPT_COMMAND.
Mikel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.