2P by GN⁺ 2023-08-28 | ★ favorite | 댓글 2개
  • Fish는 macOS, Linux 및 기타 Unix 계열 운영체제를 위한 사용자 친화적인 커맨드라인 쉘
  • 구문 강조, 타이핑 중 자동 제안, 설정 없이 작동하는 탭 완성 등의 기능을 제공
  • bash 또는 zsh와 같은 다른 쉘과 유사하게 작동하지만, 주요 차이점이 있음
    • 변수를 설정할 때 다른 셸에서 사용하는 = 연산자 대신 set 명령어를 사용 : set name 'Mister Noodle'
    • 변수 치환 이후 추가로 값을 분리하지 않으며, 이는 공백이 포함된 값을 처리할 때 유용 : mkdir $name # 하나의 디렉토리 "Mister Noodle" 생성
    • 명령 치환에서 백틱(``) 대신 $() 또는 ()를 사용: echo "Current directory: $(pwd)"
    • 명령 치환의 출력값을 공백 대신 줄바꿈(newline)으로만 분리
    • 모든 변수를 리스트로 처리하며, 다른 셸의 문자열 기반 변수와 다름 : set PATH /usr/bin /bin
    • 리스트 요소를 접근할 때 1부터 시작하는 인덱스를 사용 : echo $PATH[1]
    • 별칭(alias)을 지원하지 않으며, 대신 함수(function)를 사용
    • &&, ||뿐만 아니라 and, or, not 키워드를 지원 : command1; and command2; or command3
    • 명령어와 히스토리를 기반으로 실시간 추천(autosuggestions)을 제공 : grep --ignore-case
    • .bashrc 대신 ~/.config/fish/config.fish 파일을 구성 파일로 사용
  • Homebrew, MacPorts 또는 공식 웹사이트를 통해 macOS에 설치할 수 있음. 지원되는 최소 macOS 버전은 10.10 "Yosemite"
  • curses 또는 ncurses, 일반적인 Unix 시스템 유틸리티, 그리고 선택적으로 번역 지원을 위한 gettext 라이브러리와 같은 특정 의존성이 있음
  • Fish를 기본 쉘로 사용하려면 chsh -s /usr/local/bin/fish 명령을 사용
  • Fish는 현재 Rust로 포팅되고 있으며, 모든 C++ 코드를 대체함

지금 zsh 사용 중인데 다음에 기회되면 한번 fish도 써봐야겠어요.

Hacker News 의견
  • Fish는 최소한의 설정 요구로 시간 효율적인 도구로 인정받음.
  • 사용자들은 Fish가 zsh보다 더 사용자 친화적이며, 설정 중 문제가 더 적다고 발견함.
  • Fish는 사용자 스크립트에서 잘 처리되지 않는 특이 사례가 적어 견고함으로 칭찬받음.
  • 일부 사용자들은 10년 이상 Fish를 사용해왔으며, bash보다 더 단순하고 직관적이라고 느낌.
  • Fish는 패키지 매니저와 플러그인을 사용하는 zsh 설정이 필요한 것을 추가 기능 없이도 달성할 수 있어 그 기능성을 인정받음.
  • 그러나 일부 사용자들은 bash 호환성의 부재가 단점으로 느껴짐, 다른 스크립트 언어로 전환하는 것이 필요하기 때문임.
  • 일부 사용자들은 Fish의 설정 가능한 옵션 부재로 인해 Fish에서 zsh로 전환함.
  • 이러한 단점에도 불구하고, 사용자들은 Fish를 자신의 기계에 좋은 추가로 여기며, 가끔 bash와 함께 사용함.
  • 전반적으로, Fish는 호환성과 설정 가능성의 일부 제한에도 불구하고 사용자 친화적이고 효율적이며 견고한 쉘로 간주됨.