Vỏ cá

Giới thiệu người dùng về vỏ cá

Tôi đã sử dụngVỏ cátrong nhiều tháng, và tôi nghĩ đó là chiếc vỏ tốt nhất mà tôi từng sử dụng. Vì nhiều lý do.

Mọi người dường như gắn bó vớiBashlà mặc định trên nhiều hệ thống (cập nhật: bây giờ mặc định macOS là Zsh) hoặc sử dụng Zsh, với một công cụ tuyệt vời nhưOh My Zshđể làm cho nó thậm chí còn tuyệt vời hơn.

Bash, trong khi tuyệt vời, là một shell rất cơ bản, với một số tùy chọn có thể cấu hình hạn chế. Tôi có xu hướng sử dụng nó chủ yếu để chạyTập lệnh bash(là một chủ đề khác) chứ không phải là một trình bao tương tác. Zsh cung cấp rất nhiều tính năng nhưng yêu cầu một chút cấu hình để thiết lập, điều này có thể khiến người mới bắt đầu lo sợ. Ngoài ra, quá nhiều tùy chọn và sự tự do có nghĩa là bạn có thể rơi vào tình trạng tê liệt cấu hình khá dễ dàng và cuối cùng bạn phải thay đổi các tùy chọn 20 lần trong một tuần để đảm bảo rằng bạn không bỏ lỡ.

Tôi không muốn "bash" những dự án đó, những dự án này thật tuyệt vời và tôi đã sử dụng rất nhiều thời gian và đôi khi vẫn sử dụng. Mô tả này là nỗ lực của tôi trong việc nêu bật những lợi ích của Cá

Vỏ cá để giải cứu! Vỏ này cung cấp một môi trường tuyệt vời và cấu hình đầy đủ tính năng khi xuất xưởng.

Các tính năng yêu thích của tôi về Cá là:

  • nó có các tính năng tự động hoàn thành tốt hơn cho các lệnh bạn đã thực hiện và chỉ riêng điều này đã thực sự làm cho ngày của tôi nhanh hơn và ít căng thẳng hơn.
  • bạn bắt đầu nhập một lệnh và nhấnupđể xem tất cả các lần trong lịch sử trình bao mà bạn đã sử dụng lệnh đó trước đây.
  • bạn có thể cài đặt Fish trên bất kỳ hệ thống nào và nó hoạt động theo cùng một cách ở mọi nơi mà không cần phải tùy chỉnh quá nhiều để có được những thứ ưa thích.

Khi nói đến tập lệnh, nó khá khác với tập lệnh Bash (theo cách tốt hơn là IMHO), nhưng bạn có thể chạy bất kỳ tập lệnh Bash nào miễn là nó có tiền tố#!/bin/bash.

Ngay sau khi cài đặt, bạn sẽ nhận được những điều tốt đẹp đó:

  • tô sáng cú pháp
  • một lời nhắc tốt đẹp
  • tự động hoàn thành
  • gợi ý tham số với gợi ý trang người đàn ông
  • cấu hình dựa trên web

và theo ý kiến của tôi là shell thân thiện với người mới bắt đầu nhất.

Một trong những điều thú vị mà tôi nhớ tôi đã nhận thấy là trang chủ. Lúc đầu, tôi không thể hiểu liệu đó có phải là một loại di vật nào đó từ quá khứ hay không:

Đối với những người may mắn có máy tính đồ họa, bạn có thể đặt màu sắc của mình và xem các hàm, biến và lịch sử từ một trang web.

Sau đó, tôi nhận ra đó là sự hài hước của một lập trình viên và nó khiến tôi cười thầm. Công nghệ phải luôn vui vẻ, phải không?

Điều đầu tiên đầu tiên: shell là gì?

Vỏ là một giao diện với hệ điều hành cơ bản. Nó cho phép bạn thực hiện các hoạt động bằng cách sử dụng văn bản và lệnh, đồng thời cung cấp cho người dùng các tính năng nâng cao như có thể tạo tập lệnh.

Cài đặt

Cài đặt Cá bằng cách chạybrew install fishtrên macOS.

Kiểm tra của tôihướng dẫn thiết bị đầu cuối macOS

fishđược cài đặt trong/usr/local/bin/fish.

Vì điều đó có thể đã có trong đường dẫn của bạn, hãy chạyfishđể bắt đầu Vỏ cá (loạiexitđể quay lại trình bao mặc định của bạn)

Cấu hình

Một điều thú vị về Fish là một cấu hình dựa trên web. Chạyfish_configđể bắt đầu ứng dụng khách web.

configuration

Từ đây bạn có thể

  • chọn một bảng màu từ một danh sách những cái được xác định trước
  • chọn một lời nhắc từ một danh sách những lời nhắc được xác định trước
  • kiểm tra các hàm và biến Fish được định cấu hình
  • xem lịch sử lệnh

Cấu hình được lưu trữ trong~/.config/fishvà đó là nơi bạn có thể chỉnh sửa nó mà không cần phải sử dụng cấu hình dựa trên web (tùy chọn).

Các tính năng của cá: đánh dấu cú pháp, tự động hoàn thành và đề xuất tham số với gợi ý trang người đàn ông

Fish cho phép bạn thực hiện các lệnh Unix thông thường có sẵn trên hệ thống của bạn. Các hoạt động của hệ thống tệp, ví dụ:

  • lsliệt kê các tập tin
  • cdđể thay đổi thư mục
  • rmđể xóa một tệp hoặc thư mục
  • mvđể di chuyển tệp sang thư mục khác hoặc thay đổi tên tệp
  • cpđể sao chép một tập tin

Nếu bạn chạy một trong những lệnh đó (hoặcanylệnh, thực sự) bạn sẽ bắt đầu thấy các từ bạn nhập có màu sắc khác nhau. Nó làm cho nó thực sự dễ dàng để đọc và hiểu các lệnh.

Fish cũng thêm tính năng tự động hoàn thành. Nếu bạn chạycd ~/.config/fish/trước đây, và bây giờ bạn gõcd, Fish sẽ đề xuất các lệnh bạn có thể muốn gõ và bạn chỉ cần nhấn vào mũi tên phải để chấp nhận đề xuất (hoặc bạn có thể tiếp tục gõ để thay đổi lệnh). Đề xuất này dựa trên lịch sử lệnh và đường dẫn tệp.

Các đề xuất dựa trên tính năng tự động hoàn thành cũng hoạt động đối với các lệnh. Đây tôi đã gõcvà nhấn tab:

autocomplete commands

Fish cũng gợi ý các thông số và cách sử dụng chúng. Kiểuls -và hãy nhấntab. Danh sách các tham số bạn có thể sử dụng và ý nghĩa của chúng được hiển thị ngay bên dưới:

autocomplete

Trợ giúp nội tuyến này được tạo từtrang người đàn ông, trợ giúp hữu ích của shell (thử chạyman lsđể được trợ giúp đầy đủ).

Đặt Cá làm vỏ mặc định

Nếu bạn thích Cá sau khi dùng thử và muốn đặt nó làm trình bao mặc định của mình, hãy mở tệp/etc/shells. tôi sử dụngpicođể thực hiện các chỉnh sửa tệp nhỏ đó, vớipico /etc/shells, nhưng bạn có thể sử dụng bất kỳ trình soạn thảo nào bạn thích, ngay cả VS Code vớicode /etc/shells.

Nó phải chứa một cái gì đó tương tự như:

# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash /bin/csh /bin/ksh /bin/sh /bin/tcsh /bin/zsh

Thêm dòng này vào cuối để thêm Vỏ cá:

/usr/local/bin/fish

next, run

chsh -s /usr/local/bin/fish

enter your password, and the shell will change for your user.

change shell

Plugins

You can install Fish plugins.

Fisher is a popular Fish package manager.

Install it using

curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish

and it’s available with the fisher command.

Now a package can be installed using fisher add <github-repository-path> and removed using fisher rm <github-repository-path>.

List all plugins installed using fisher ls.

Run fisher to update all the packages you installed.

Popular plugins are

Here is a list of packages you can install.

POSIX compliance

Various shells comply with the POSIX shell command standard.

POSIX means

  • Portable
  • Operating
  • System
  • Interface
  • X (for Unix)

and it’s a standard meant to unify the various Unix environment that were built over time. There is a shell command standard subset, which is meant as a way to unify how Unix shells work.

Unix is a specification/standard for a family of operating systems. Linux and macOS are based on Unix (Windows is not).

bash, ksh and others are POSIX compliant. Being POSIX compliant makes scripts written with POSIX compatibility work across POSIX compliant shells.

Fish (like sh or csh for example) is not compliant, so it’s not a POSIX shell, and this means that writing commands and scripts for Fish is different. Scripts written for Fish won’t work outside of Fish. Just like csh scripts only work on csh (and derivatives)

Why is it different? Various reasons, but I imagine having to support POSIX means the shell must adhere to a common language that might interfere with the shell philosophy and way of working. Not everyone want to have that baggage of tech to support forever.

This will very rarely be a problem with executing commands, but you need to keep it in mind when it comes to scripting and programming.

Download my free Linux Commands Handbook


More cli tutorials: