Điều gì đang xảy ra là FreeBSD và Linux sử dụng các shell khác nhau theo mặc định. FreeBSD mặc định là tcsh , có tính năng tương tác tốt hơn bash trước đây (nhưng bash đã bắt kịp) nhưng các tính năng kịch bản kém hơn rõ rệt .
Cách đơn giản nhất để có được môi trường mà bạn đã từng sử dụng là chuyển vỏ của bạn sang tcsh trên Linux. Với điều kiện tcsh được cài đặt toàn hệ thống (nếu không, hãy yêu cầu quản trị viên hệ thống của bạn cài đặt nó), chạy chsh -s tcsh
để thay đổi trình bao mặc định của bạn.
Ngoài ra, bạn có thể thiết lập bash để sử dụng lệnh này. Theo mặc định, các mũi tên Upvà Downđiều hướng trong số tất cả các lệnh trong lịch sử, không chỉ các lệnh bắt đầu bằng tiền tố bạn đã nhập. Để thay đổi hành vi này thành hành vi bạn đã quen, hãy đặt các dòng sau vào tệp khởi tạo của bash, .bashrc
trong thư mục chính của bạn. Hoặc là chạy. ~/.bashrc
hoặc bắt đầu một shell mới để đọc lại tệp khởi tạo.
bind '"\eOA": history-search-backward'
bind '"\e[A": history-search-backward'
bind '"\eOB": history-search-forward'
bind '"\e[B": history-search-forward'
Trình tự thoát là những gì thiết bị đầu cuối của bạn gửi đến shell khi bạn nhấn phím mũi tên. Upcó thể là \eOA
(thoát O
,, A
) hoặc\e[A
tùy thuộc vào thiết bị đầu cuối của mình, và tương tự cho Down.
Theo mặc định, bash cung cấp các ràng buộc khóa khác nhau để tìm kiếm lịch sử lệnh. Bạn có thể nhấn Ctrl+ R, sau đó nhập một số ký tự để tìm kiếm lệnh chứa chuỗi con này ở bất cứ đâu trên dòng. Nhấn Ctrl+ Sđể đi tiếp thay vì lùi. Tìm kiếm là tăng dần (tức là theo kiểu bạn); Alt+ PvàAlt + Ncung cấp cho bạn một tìm kiếm không gia tăng.
Thay vì bash và tcsh, bạn có thể chuyển sang zsh, có một số tính năng gọn gàng không có trong các shell khác . Zsh có Ctrl+ Rvà
Ctrl+ Stheo mặc định giống như bash. Để có được Upvà Downgiống như bạn đã có trong tcsh, hãy đặt các dòng sau vào ~/.zshrc
:
bindkey '\eOA' history-beginning-search-backward
bindkey '\e[A' history-beginning-search-backward
bindkey '\eOB' history-beginning-search-forward
bindkey '\e[B' history-beginning-search-forward
Nếu bạn muốn sử dụng cùng một vỏ ở mọi nơi, bạn cũng có thể sử dụng bash hoặc zsh trên FreeBSD, miễn là cổng được cài đặt (một lần nữa, hãy hỏi quản trị viên hệ thống của bạn).