Fish - shell interaktif yang ramah
(github.com/fish-shell)- fish adalah shell baris perintah yang ramah pengguna dan berjalan di macOS, Linux, serta keluarga terkait, dengan penyorotan sintaks, saran otomatis saat mengetik, dan pelengkapan tab tanpa perlu konfigurasi terpisah
- Shell ini umumnya bekerja mirip dengan shell lain seperti bash atau zsh, tetapi perbedaan utamanya yang dapat dicari dengan “unlike other shells” dirangkum dalam tutorial resmi
- Jalur instalasi dibagi menurut platform, dan di macOS mendukung Homebrew, MacPorts, installer dari fishshell.com, serta aplikasi mandiri
- Versi minimum macOS yang didukung adalah 10.12
- Paket Debian, Fedora, openSUSE, dan Red Hat Enterprise Linux/CentOS untuk Linux disediakan melalui openSUSE Build Service
- Paket Ubuntu dapat dipasang melalui fish PPA
- Di Windows 10/11, instalasi dapat dilakukan melalui prosedur distribusi Linux di WSL atau build dari source, dan di semua versi Windows didukung instalasi lewat Cygwin atau MSYS2
- Setelah instalasi, penggunaan dimulai dengan menjalankan
fishdi shell saat ini, dan dokumentasi pengguna dapat dilihat melalui perintahhelpdi dalam fish maupun dokumentasi resmi - Untuk menjalankannya diperlukan utilitas POSIX dasar dan utilitas sistem *nix umum seperti
mktemp, sementara beberapa fitur opsional memerlukan alat tambahan- Pembuatan pelengkapan otomatis berbasis halaman manual dan alat konfigurasi web
fish_configmemerlukan Python 3.5+ - Integrasi clipboard sistem memerlukan salah satu dari
xsel,xclip,wl-copy/wl-paste, ataupbcopy/pbpaste - Pelengkapan penuh untuk
yarndannpmmemerlukan modul NPMall-the-package-names
- Pembuatan pelengkapan otomatis berbasis halaman manual dan alat konfigurasi web
- Build dari source memerlukan Rust 1.85 atau lebih baru, CMake 3.15 atau lebih baru, serta kompiler C, sementara PCRE2 dan gettext diperlakukan sebagai dependensi opsional
- Mendukung build CMake maupun Cargo; build Cargo menempatkan biner mandiri di
~/.cargo/bin/, dan instalasi penuh CMake menyediakan halaman man di lokasi standar, salinan lokal dokumentasi HTML, serta opsi direktori tambahan untuk fungsi, pelengkapan, dan konfigurasi
2 komentar
Saat ini saya memakai zsh, jadi kalau nanti ada kesempatan saya juga ingin mencoba fish.
Opini Hacker News
Keunggulan terbesar fish adalah hampir tidak perlu konfigurasi. Saya berusia 41 tahun dan punya keluarga, jadi sama sekali tidak punya kesabaran untuk membuang waktu mengatur tool; zsh terasa selalu menghalangi setiap kali saya mencoba membuatnya nyaman dipakai.
Berbagai skrip zsh juga sulit dibilang kokoh, dan kalau sering memakai shell, pada akhirnya Anda akan menemui kasus pinggir yang tidak tertangani dalam kumpulan skrip pengguna yang sumbernya kebanyakan hasil salin-tempel.
Dotfiles fish saya ada di https://github.com/mattgreen/dotfiles/tree/master/fish, dan isinya hanya sistem plugin berbasis submodule, prompt git asinkron, alias, serta beberapa variabel lingkungan.
fish sudah menyediakan hampir semuanya, jadi tidak perlu pemeliharaan; kini satu-satunya yang saya harapkan adalah menjadikan prompt asinkron sebagai fitur kelas satu, karena pelacakan status lebih baik ditangani shell daripada kode pengguna.
Yang lebih menyebalkan adalah ketika mereka meminta bantuan, perintah yang saya beri tahu tidak ada satu pun yang berjalan di fish, sehingga pemecahan masalah menjadi sangat lambat.
Sebagian besar konfigurasi zsh lainnya adalah utilitas prompt dan hal-hal yang saya tambahkan selama bertahun-tahun; saya tidak memakai maupun membutuhkan plugin. Kalau memang perlu, zplug yang pernah saya coba dulu sangat mudah dikonfigurasi dan dipakai.
[1]: https://github.com/mid-kid/config/blob/master/shell/.zshrc#L...
/bin/sh, saya mungkin sudah pindah ke Fish karena alasan serupa.Dari sudut pandang pengalaman pengguna, Fish jauh mengungguli shell lain, dan cukup mengejutkan bahwa ia belum dijadikan default di sistem operasi seperti Mac. Dengan Fish, saya bisa memandu anggota keluarga melakukan pekerjaan di terminal tanpa ada yang kesal atau menyerah, tetapi sulit mengatakan hal yang sama untuk shell lain.
Beberapa tahun lalu saya menghabiskan sekitar satu jam untuk memilih plugin yang saya inginkan dan membuat repo; sekarang mesin baru siap dalam 5–10 menit.
Saya sudah memakai Fish sebagai login shell selama lebih dari 10 tahun, dan tidak seperti banyak orang lain, saya juga memakainya untuk scripting. Untuk tugas sederhana, fish punya lebih sedikit jebakan dibanding bash, sehingga jauh lebih enak untuk menulis skrip.
Saat membaca penjelasan online, memindahkan contoh bash ke fish itu hal sepele. Saya tidak paham mengapa itu dianggap masalah, dan dalam praktiknya saya tidak pernah kesulitan.
set -edi bash. Saya tahu sulit membuatnya berfungsi baik di semua kasus, misalnya sampai pipefail, tetapi tanpa fitur ini saya tidak ingin menulis banyak skrip.Saya memakai fish sekitar 5 tahun dan sekarang tidak ingin kembali. Tanpa memasang fitur tambahan apa pun, dalam kondisi default fish sudah melakukan semua yang dulu dilakukan konfigurasi zsh saya yang dilengkapi package manager dan plugin.
Satu-satunya yang saya ubah adalah menambahkan spacefish, dan sekarang starship.rs.
zjuga layak dicoba. Dan saya tidak bisa melihat konfigurasi saya sekarang, tetapi ada plugin yang memberi tahu ketika perintah background yang berjalan lama selesai; itu cukup berguna.Karena sudah lama, saya coba kumpulkan thread-thread terkait. Ada lagi?
What's Happening with Fish Releases? - https://news.ycombinator.com/item?id=36875727 - Juli 2023
My shell setup with Fish and Tmux (2021) - https://news.ycombinator.com/item?id=35672358 - April 2023
Ask HN: Are alternative (oil, nu, etc.) shells usable as daily drivers? - https://news.ycombinator.com/item?id=34722208 - Februari 2023
Rewrite it in Rust - https://news.ycombinator.com/item?id=34588340 - Januari 2023
Fish 3.6.0 - https://news.ycombinator.com/item?id=34298157 - Januari 2023
Fish Shell 3.5.0 - https://news.ycombinator.com/item?id=31768405 - Juni 2022
Fish 3.4.0 - https://news.ycombinator.com/item?id=30734072 - Maret 2022
Fish 3.4.0 Released - https://news.ycombinator.com/item?id=30660587 - Maret 2022
Ask HN: Oil or Fish Shell? - https://news.ycombinator.com/item?id=30154652 - Januari 2022
The fish shell is amazing - https://news.ycombinator.com/item?id=29341390 - November 2021
Nsh: A fish/bash-like Posix shell in Rust - https://news.ycombinator.com/item?id=28967257 - Oktober 2021
Fish Shell 3.3 - https://news.ycombinator.com/item?id=27663637 - Juni 2021
Fish shell - https://news.ycombinator.com/item?id=27180420 - Mei 2021
Fish Shell 3.2 - https://news.ycombinator.com/item?id=26302678 - Maret 2021
Fish is not operational on a VT220 terminal (2015) - https://news.ycombinator.com/item?id=25526237 - Desember 2020
New Features in the Fish Shell - https://news.ycombinator.com/item?id=24631138 - September 2020
Dolphins learn from their peers to use empty shells to catch fish - https://news.ycombinator.com/item?id=23660910 - Juni 2020
Fish Shell 3.1.0 - https://news.ycombinator.com/item?id=22314671 - Februari 2020
Fish: A command line shell for the 90s - https://news.ycombinator.com/item?id=21361696 - Oktober 2019
Show HN: Fisher 3.0 – the package manager for the fish-shell - https://news.ycombinator.com/item?id=18920972 - Januari 2019
Fish shell 3.0 - https://news.ycombinator.com/item?id=18776765 - Desember 2018
Fish: A user-friendly command line shell for macOS, Linux, etc - https://news.ycombinator.com/item?id=15910897 - Desember 2017
Fish (Shell) for a Week - https://news.ycombinator.com/item?id=14422672 - Mei 2017
Why I'm Hooked on Fish Shell (and How to Set It Up Right) - https://news.ycombinator.com/item?id=14417046 - Mei 2017
The fish shell is awesome - https://news.ycombinator.com/item?id=14179081 - April 2017
Fish Shell Design Principles - https://news.ycombinator.com/item?id=11102941 - Februari 2016
Fish shell 2.2 - https://news.ycombinator.com/item?id=9873090 - Juli 2015
Fish shell - https://news.ycombinator.com/item?id=9566441 - Mei 2015
FISH Shell: A dynamic shell - https://news.ycombinator.com/item?id=8783150 - Desember 2014
Fish shell 2.1 - https://news.ycombinator.com/item?id=6626635 - Oktober 2013
fish shell - https://news.ycombinator.com/item?id=6224524 - Agustus 2013
Fish shell 2.0 - https://news.ycombinator.com/item?id=5723235 - Mei 2013
Fish 2.0 shell beta - https://news.ycombinator.com/item?id=5567639 - April 2013
Fish: Finally, a command line shell for the 90s - https://news.ycombinator.com/item?id=4073162 - Juni 2012
Fish sucks (but your shell sucks more) - https://news.ycombinator.com/item?id=2031110 - Desember 2010
Fish - The friendly interactive shell - https://news.ycombinator.com/item?id=820677 - September 2009
Fish Shell: A User-Friendly Shell or Like a Heavily Customized zsh - https://news.ycombinator.com/item?id=811113 - September 2009
https://news.ycombinator.com/item?id=23660910 mungkin tautan jebakan untuk melihat siapa yang memperhatikan :)
Saya sempat memakai zsh dulu, tetapi dalam keadaan bawaan rasanya pada dasarnya mirip bash, dan untuk melihat keunggulannya harus meluangkan waktu untuk kustomisasi. Saya tidak ingin menghabiskan waktu untuk konfigurasi shell; saya hanya ingin langsung bekerja
Fish terasa jauh lebih baik daripada bash tanpa konfigurasi apa pun, dan autocomplete yang terasa seperti sihir benar-benar bisa mengubah hidup
Saat kuliah saya memakai fish di Ubuntu, dan MacBook yang saya terima di pekerjaan pertama juga saya setel memakai fish. Saat itu hanya ada satu orang yang menangani DevOps, sementara dokumen dan skrip konfigurasi aplikasi hanya dibuat untuk zsh atau bash, dan sejujurnya saya pikir tidak masalah kalau saya beralih ke zsh
Namun orang itu mencegah saya, lalu menghabiskan setengah hari mempelajari fish dan menambahkan semua skrip fish ke dokumentasi. Benar-benar orang yang patut disyukuri
Hal bagus dari fish adalah sejak awal sudah menyediakan cukup banyak fitur kenyamanan tanpa perlu memasang plugin. Saya hanya menambahkan integrasi starship.rs dan fzf
Saya sangat suka tagline fish, dan cukup lucu. Saya memakainya cukup lama dan sebenarnya cukup baik, tetapi sebagai strategi pengembangan, fish secara eksplisit menghindari opsi yang bisa dikonfigurasi
Ada beberapa hal yang terus mengganggu saya, tetapi tidak ada cara untuk mengubah perilakunya, jadi saya pindah ke zsh dan membuatnya berperilaku seperti fish tetapi dengan cara yang saya inginkan. Bagi saya itu keputusan yang baik dan layak direkomendasikan. Saya juga tidak terlalu suka oh-my-zsh atau manajer plugin
Saya memakai fish, zsh, dan sekarang juga elvish; bagi saya yang penting adalah autosuggestion dan fitur mengambil riwayat dengan tombol panah atas. zsh punya modul autosuggestion, dan elvish punya riwayat dengan panah atas, tetapi hanya mencocokkan bagian awal
Jadi fish masih unggul, dan elvish berada di posisi kedua karena mengetik perintah lalu menekan panah atas sekali terasa hampir seperti autosuggestion. Saya belum menemukan cara melakukan itu di zsh, dan untuk penanganan blok saya juga lebih suka cara fish dan elvish dibanding gaya tradisional keluarga sh
Kesalahan terbesar fish adalah tidak kompatibel dengan bash. Saya terlalu terbiasa dengan bash, dan di beberapa sistem perusahaan hanya bash yang bisa diakses serta fish tidak bisa dipasang, jadi saya tidak ingin beralih
Harus terus berpindah-pindah antara bahasa scripting yang berbeda itu menyakitkan, dan tidak akan bisa dilakukan dengan nyaman lewat muscle memory
#!/bin/bashdi bagian atas skrip dan tetap melakukan scripting dengan bash, sementara shell interaktifnya saja memakai fish?Secara pribadi saya hampir tidak pernah memasukkan hal serumit itu ke shell; kalau sudah sampai titik itu, saya memindahkannya menjadi skrip
bass, saya tidak terlalu merasa perlu beralihhttps://github.com/edc/bass
Saya tidak memakai fish, tetapi ada satu fitur hebat yang belum direplikasi di zsh. Fish membuat autocomplete dari halaman man, sehingga kita bisa mendapatkan penyelesaian flag dasar secara otomatis untuk hampir semua program