- 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++ 코드를 대체함