Fish - A phenomenal Unix Shell
Bài đăng này đã không được cập nhật trong 3 năm
Là một engineer, chắc hẳn bạn đã quen với việc sử dụng một công cụ đầy sức mạnh trên Linux hay MacOS, đó là Terminal. Tuy nhiên có thể bạn đã chán ngấy với giao diện nhàm chán của chương trình Bash mặc định ?
Bài viết này sẽ giới thiệu đến bạn một chương trình Shell nổi tiếng, với rất nhiều những chức năng nổi bật hơn so với Bash. Đó chính là Fish.
Những tính năng nổi bật của Fish
Support nhiều màu sắc
Không đơn điệu như Bash, Fish cho phép người dùng sử dụng tất cả 256 màu sắc khác nhau. Ta có thể tùy ý config những màu mà mình thích, cho những đối tượng thích hợp trong một câu command.
Khả năng gợi ý - Autosuggestions
Fish mang trong mình khả năng gợi ý câu lệnh một cách tuyệt vời.
Nó có thể báo cho bạn biết một câu lệnh có gõ sai hay không, một thư mục có tồn tại hay không ... hay cả những gợi ý về các câu lệnh bạn đã gõ từ trước, gợi ý về câu lệnh dựa trên document của câu lệnh đó (có thể xem thông qua câu lệnh man
)
Khả năng gợi ý về một câu lệnh đã từng gõ
Một đường dẫn sai (thư mục không tồn tại) và đường dẫn đúng được hiển thị khác nhau
Config dễ dàng
Bên cạnh việc cho phép người dùng tự thiết lập config qua một file config riêng, Fish còn cho phép người dùng tùy biến thông qua một giao diện web trực quan, để những người mới làm quen cũng có thể có được những thiết lập mang đầy phong cách cá nhân.
Ngoài ra còn rất nhiều tính năng hữu ích khác, bạn có thể tham khảo thêm ở trang chủ của Fish.
Cài đặt
Phiên bản 2.1, phiên bản mới nhất của Fish thật sự là có một bước nhảy lớn, khi cho phép sử dụng các alias
, hay các câu lệnh vốn có của Bash như là source
. Bởi thế mình khuyên các bạn nên cài đặt bản Fish 2.1 (Nhiều phiên bản Ubuntu nếu cài qua sudo apt-get
một cách bình thường thì sẽ chỉ cài được bản 2.0 mà thôi).
Ubuntu
Đầu tiên bạn cài đặt Fish thông qua các câu lệnh sau đây.
sudo apt-add-repository ppa:fish-shell/release-2
sudo apt-get update
sudo apt-get install fish
Sau đó, thiết lập để đưa Fish làm Shell mặc định của Ubuntu.
echo "/usr/bin/fish" | sudo tee -a /etc/shells
chsh -s /usr/bin/fish
Như vậy là công việc của bạn đã hoàn tất, giờ chỉ việc logout ra rồi vào lại để những thiết lập có hiệu lực. Sau đó hãy bật Terminal lên và bạn sẽ thấy Fish đã được thay thế cho Bash.
Nếu không muốn dùng Fish, và muốn quay về trình Bash mặc định thì bạn có thể dùng câu lệnh sau
chsh -s /bin/bash
Thao khảo hướng dẫn cài đặt trên các distribution khác tại đây
Mac OS
Cách đơn giản nhất để cài đặt trên Mac là cài đặt thông qua Homebrew
brew install fish
Sau khi cài đặt xong thì bạn cũng làm tương tự như phần ở Ubuntu để đưa Fish làm trình Shell mặc định.
echo "/usr/local/bin/fish" | sudo tee -a /etc/shells
chsh -s /usr/local/bin/fish
Config
Như đã nói ở phần trên, bạn có thể thực hiện việc các thiết lập cho Fish thông qua một giao diện web trực quan. Hãy sử dụng câu lệnh fish_config
, để rồi bắt đầu tùy chỉnh những gì mình thích.
Ngoài ra, bạn còn có thể tự viết những config của mình ra một file riêng có tên config.fish
, đặt nó bên trong thư mục ~/.config/fish/
, để có thể config mà không cần phải sử dụng đến giao diện web.
Cách này rất thích hợp trong trường hợp bạn sử dụng Fish trên một remote server, và không access vào giao diện web config của nó được.
Dưới đây là nội dung file config mà mình vẫn đang sử dụng.
# Greeting when start
set -g -x fish_greeting 'HI, TRAN DUC THANG'
# fish git prompt
set __fish_git_prompt_showdirtystate 'yes'
set __fish_git_prompt_showstashstate 'yes'
set __fish_git_prompt_showupstream 'yes'
set __fish_git_prompt_color_branch yellow
# Status Chars
set __fish_git_prompt_char_dirtystate '⚡'
set __fish_git_prompt_char_stagedstate '→'
set __fish_git_prompt_char_stashstate '↩'
set __fish_git_prompt_char_upstream_ahead '↑'
set __fish_git_prompt_char_upstream_behind '↓'
set fish_color_error c35359
function fish_prompt
set_color 18974e
printf (date "+$c2%H$c0:$c2%M$c0:$c2%S>")
set_color f2777a
printf '%s@%s%s%s%s> ' (whoami) (set_color ff8a00) (hostname | cut -d . -f 1) \
(set_color $fish_color_cwd) (prompt_pwd)
set_color $fish_color_error
printf '%s ' (__fish_git_prompt)
set_color normal
end
Config như trên rất thích hợp với những ai hay thường xuyên sử dụng git CLI, nó giúp bạn theo dõi được mình đang ở branch nào, và có gì thay đổi hay không.
TL;DR
All rights reserved