The Fuck 은 @liamosaur 트윗에서 영감을 받아 이전 콘솔 명령의 오류를 수정하는 훌륭한 앱입니다.
The Fuck이 너무 느린가요? 실험적인 인스턴트 모드를 사용해 보세요!
더 많은 예:
➜ apt-get install vim
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root ?
➜ fuck
sudo apt-get install vim [enter/↑/↓/ctrl+c]
[sudo] password for nvbn:
Reading package lists... Done
...
➜ git push
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin master
➜ fuck
git push --set-upstream origin master [enter/↑/↓/ctrl+c]
Counting objects: 9, done.
...
➜ puthon
No command ' puthon ' found, did you mean:
Command ' python ' from package ' python-minimal ' (main)
Command ' python ' from package ' python3 ' (main)
zsh: command not found: puthon
➜ fuck
python [enter/↑/↓/ctrl+c]
Python 3.4.2 (default, Oct 8 2014, 13:08:17)
...
➜ git brnch
git: ' brnch ' is not a git command. See ' git --help ' .
Did you mean this ?
branch
➜ fuck
git branch [enter/↑/↓/ctrl+c]
* master
➜ lein rpl
' rpl ' is not a task. See ' lein help ' .
Did you mean this ?
repl
➜ fuck
lein repl [enter/↑/↓/ctrl+c]
nREPL server started on port 54848 on host 127.0.0.1 - nrepl://127.0.0.1:54848
REPL-y 0.3.1
...
수정된 명령을 맹목적으로 실행하는 것이 두렵지 않다면 require_confirmation
설정 옵션을 비활성화할 수 있습니다:
➜ apt-get install vim
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root ?
➜ fuck
sudo apt-get install vim
[sudo] password for nvbn:
Reading package lists... Done
...
macOS 또는 Linux에서는 Homebrew를 통해 The Fuck을 설치할 수 있습니다.
brew install thefuck
Ubuntu/Mint에서는 다음 명령을 사용하여 The Fuck을 설치합니다.
sudo apt update
sudo apt install python3-dev python3-pip python3-setuptools
pip3 install thefuck --user
FreeBSD에서는 다음 명령을 사용하여 The Fuck을 설치합니다:
pkg install thefuck
ChromeOS에서는 다음 명령으로 chromebrew를 사용하여 The Fuck을 설치합니다.
crew install thefuck
Arch 기반 시스템에서는 다음 명령을 사용하여 The Fuck을 설치합니다.
sudo pacman -S thefuck
다른 시스템에서는 pip
사용하여 The Fuck을 설치합니다.
pip install thefuck
또는 OS 패키지 관리자(OS X, Ubuntu, Arch)를 사용할 수도 있습니다.
# 이 명령을 .bash_profile
, .bashrc
, .zshrc
또는 기타 시작 스크립트에 배치하는 것이 좋습니다.
eval $( thefuck --alias )
# You can use whatever you want as an alias, like for Mondays:
eval $( thefuck --alias FUCK )
또는 쉘 구성(Bash, Zsh, Fish, Powershell, tcsh)에서.
변경 사항은 새 셸 세션에서만 사용할 수 있습니다. 변경 사항을 즉시 사용 가능하게 하려면 source ~/.bashrc
(또는 .zshrc
같은 쉘 구성 파일)를 실행하세요.
확인 없이 고정 명령을 실행하려면 --yeah
옵션을 사용하십시오(간단히 -y
만 사용하거나 특히 불만스러운 경우 --hard
).
fuck --yeah
성공할 때까지 명령을 반복적으로 수정하려면 -r
옵션을 사용합니다.
fuck -r
pip3 install thefuck --upgrade
참고: 별칭 기능은 The Fuck v1.34에서 변경되었습니다.
The Fuck 을 제거하려면 설치 과정을 역으로 수행하십시오.
The Fuck은 이전 명령을 규칙과 일치시키려고 시도합니다. 일치하는 항목이 발견되면 일치하는 규칙을 사용하여 새 명령이 생성되고 실행됩니다. 다음 규칙은 기본적으로 활성화되어 있습니다.
adb_unknown_command
– adb logcta
와 같이 철자가 틀린 명령을 수정합니다.ag_literal
– 제안되면 ag
에 -Q
추가합니다.aws_cli
– aws dynamdb scan
과 같이 철자가 틀린 명령을 수정합니다.az_cli
– az providers
와 같이 철자가 틀린 명령을 수정합니다.cargo
- cargo
대신 cargo build
실행합니다.cargo_no_command
– cargo buid
와 같은 잘못된 명령을 수정합니다.cat_dir
– 디렉토리를 cat
하려고 할 때 cat
ls
로 바꿉니다.cd_correction
– 실패한 cd 명령의 철자를 검사하고 수정합니다.cd_cs
- cs
cd
로 변경합니다.cd_mkdir
– CD를 넣기 전에 디렉토리를 생성합니다.cd_parent
- cd..
cd ..
로 변경합니다.chmod_x
– 실행 비트를 추가합니다.choco_install
– 초콜릿 패키지에 공통 접미사를 추가합니다.composer_not_command
– 작곡가 명령 이름을 수정합니다.conda_mistype
- conda 명령을 수정합니다.cp_create_destination
– 존재하지 않는 디렉토리에 cp
또는 mv
시도할 때 새 디렉토리를 생성합니다.cp_omitting_directory
– cp
디렉토리에 -a
추가합니다.cpp11
– 누락된 -std=c++11
g++
또는 clang++
에 추가합니다.dirty_untar
– 현재 디렉토리에서 tar를 해제한 tar x
명령을 수정합니다.dirty_unzip
– 현재 디렉터리에 압축이 풀린 unzip
명령을 수정합니다.django_south_ghost
– ghost django south 마이그레이션 때문에 실패하도록 --delete-ghost-migrations
추가합니다.django_south_merge
- 일관성 없는 django south 마이그레이션에 --merge
추가합니다.docker_login
– docker login
실행하고 이전 명령을 반복합니다.docker_not_command
– docker tags
와 같은 잘못된 docker 명령을 수정합니다.docker_image_being_used_by_container
‐ 이미지를 제거하기 전에 이미지를 사용하고 있는 컨테이너를 제거합니다.dry
– git git push
와 같은 반복을 수정합니다.fab_command_not_found
– 철자가 틀린 패브릭 명령을 수정합니다.fix_alt_space
– Alt+Space를 공백 문자로 대체합니다.fix_file
– $EDITOR
에서 오류가 있는 파일을 엽니다.gem_unknown_command
– 잘못된 gem
명령을 수정합니다.git_add
– "pathspec 'foo'가 git에 알려진 어떤 파일과도 일치하지 않습니다."를 수정합니다. ;git_add_force
– 경로가 .gitignore일 때 git add <pathspec>...
에 --force
추가합니다.git_bisect_usage
– 양분할 때 git bisect strt
, git bisect goood
, git bisect rset
등을 수정합니다.git_branch_delete
– git branch -d
git branch -D
로 변경합니다.git_branch_delete_checked_out
– 체크아웃된 브랜치를 삭제하려고 할 때 git branch -d
git checkout master && git branch -D
로 변경합니다.git_branch_exists
– 이미 존재하는 브랜치를 생성할 때 git branch -d foo
, git branch -D foo
또는 git checkout foo
제공합니다.git_branch_list
– git branch
git branch list
포착하고 생성된 브랜치를 제거합니다.git_branch_0flag
– 생성된 브랜치를 제거하는 git branch 0v
및 git branch 0r
과 같은 명령을 수정합니다.git_checkout
– 브랜치 이름을 수정하거나 새 브랜치를 생성합니다.git_clone_git_clone
– git clone git clone ...
git clone ...
으로 대체합니다.git_clone_missing
– git 저장소에 연결되는 것으로 보이는 URL에 git clone
추가합니다.git_commit_add
– 아무것도 준비되지 않아 실패한 경우 이전 커밋 후에 git commit -a ...
또는 git commit -p ...
제공합니다.git_commit_amend
– git commit --amend
;git_commit_reset
– 이전 커밋 후 git reset HEAD~
제공합니다.git_diff_no_index
– 추적되지 않은 파일의 이전 git diff
에 --no-index
추가합니다.git_diff_staged
– 예상치 못한 출력으로 이전 git diff
에 --staged
추가합니다.git_fix_stash
– git stash
명령을 수정합니다(하위 명령 철자가 틀리고 save
누락).git_flag_after_filename
– fatal: bad flag '...' after filename
git_help_aliased
- git help <alias>
명령이 별칭 명령으로 바뀌는 문제를 수정합니다.git_hook_bypass
– git am
, git commit
또는 git push
명령 앞에 --no-verify
플래그를 추가합니다.git_lfs_mistype
– 잘못 입력된 git lfs <command>
명령을 수정합니다.git_main_master
– main
과 master
사이의 잘못된 브랜치 이름 수정git_merge
– 브랜치 이름에 원격을 추가합니다.git_merge_unrelated
– 필요할 때 --allow-unrelated-histories
추가합니다.git_not_command
– git brnch
와 같은 잘못된 git 명령을 수정합니다.git_pull
– 이전 git pull
실행하기 전에 업스트림을 설정합니다.git_pull_clone
– 저장소가 존재하지 않을 때 당기는 대신 복제합니다.git_pull_uncommitted_changes
- 변경 사항을 가져오기 전에 숨겨두고 나중에 팝합니다.git_push
– 이전에 실패한 git push
에 --set-upstream origin $branch
추가합니다.git_push_different_branch_names
– 로컬 브랜치 이름이 원격 브랜치 이름과 일치하지 않을 때 푸시를 수정합니다.git_push_pull
– push
거부되면 git pull
실행합니다.git_push_without_commits
– 잊어버린 경우 초기 커밋을 생성하고 git add .
, 새 프로젝트를 설정할 때;git_rebase_no_changes
– 변경 사항이 없으면 git rebase --continue
대신 git rebase --skip
실행합니다.git_remote_delete
– git remote delete remote_name
git remote remove remote_name
으로 대체합니다.git_rm_local_modifications
– 로컬로 수정된 파일을 rm
하려고 할 때 -f
또는 --cached
추가합니다.git_rm_recursive
– 디렉토리를 rm
하려고 할 때 -r
추가합니다.git_rm_staged
– 단계적 변경 사항이 포함된 파일을 rm
하려고 할 때 -f
또는 --cached
추가합니다.git_rebase_merge_dir
– git rebase (--continue | --abort | --skip)
제공하거나 리베이스가 진행 중일 때 .git/rebase-merge
디렉토리를 제거합니다.git_remote_seturl_add
– 존재하지 않는 원격에서 git remote set_url
실행하면 git remote add
실행합니다.git_stash
– 브랜치를 리베이스하거나 전환하기 전에 로컬 수정 사항을 보관합니다.git_stash_pop
– 스태시를 터뜨리기 전에 로컬 수정 사항을 추가한 다음 재설정합니다.git_tag_force
– 태그가 이미 존재하는 경우 git tag <tagname>
에 --force
추가합니다.git_two_dashes
– git commit -amend
또는 git rebase -continue
와 같은 명령에 누락된 대시를 추가합니다.go_run
- Go 프로그램을 컴파일/실행할 때 .go
확장자를 추가합니다.go_unknown_command
– 잘못된 go
명령을 수정합니다(예: go bulid
).gradle_no_task
– 찾을 수 없거나 모호한 gradle
작업을 수정합니다.gradle_wrapper
– gradle
./gradlew
로 대체합니다.grep_arguments_order
– grep -lir 과 같은 상황에서 grep
인수 순서를 수정합니다 grep -lir . test
;grep_recursive
– grep
디렉토리를 시도할 때 -r
추가합니다.grunt_task_not_found
– 철자가 틀린 grunt
명령을 수정합니다.gulp_not_task
- 철자가 틀린 gulp
작업을 수정합니다.has_exists_script
– 스크립트/바이너리가 존재할 때 ./
앞에 붙입니다.heroku_multiple_apps
– heroku pg
와 같은 heroku
명령에 --app <app>
추가합니다.heroku_not_command
– heroku log
와 같은 잘못된 heroku
명령을 수정합니다.history
– 명령을 역사에서 가장 유사한 명령으로 바꾸려고 시도합니다.hostscli
- hostscli
사용법을 수정하려고 시도합니다.ifconfig_device_not_found
– wlan0
과 같은 잘못된 장치 이름을 wlp2s0
으로 수정합니다.java
- Java 프로그램을 실행할 때 .java
확장자를 제거합니다.javac
– Java 파일을 컴파일할 때 누락된 .java
추가합니다.lein_not_task
– lein rpl
과 같은 잘못된 lein
작업을 수정합니다.long_form_help
– 짧은 형식 버전이 지원되지 않는 경우 -h
--help
로 변경합니다.ln_no_hard_link
– 디렉토리에서 하드 링크 생성을 포착하고 심볼릭 링크를 제안합니다.ln_s_order
- ln -s
인수 순서를 수정합니다.ls_all
– 출력이 비어 있으면 ls
에 -A
추가합니다.ls_lah
– ls
에 -lah
추가합니다.man
- 매뉴얼 섹션을 변경합니다.man_no_space
– 공백이 없는 man 명령을 수정합니다(예: mandiff
).mercurial
- 잘못된 hg
명령을 수정합니다.missing_space_before_subcommand
– npminstall
과 같이 누락된 공간이 있는 명령을 수정합니다.mkdir_p
– 상위 디렉토리 없이 디렉토리를 생성하려고 할 때 -p
추가합니다.mvn_no_command
– mvn
에 clean package
추가합니다.mvn_unknown_lifecycle_phase
– mvn
사용하여 철자가 틀린 수명 주기 단계를 수정합니다.npm_missing_script
– npm run-script <script>
에서 npm
사용자 정의 스크립트 이름을 수정합니다.npm_run_script
– 사용자 정의 npm
스크립트에 대해 누락된 run-script
추가합니다.npm_wrong_command
– npm urgrade
와 같은 잘못된 npm 명령을 수정합니다.no_command
– 잘못된 콘솔 명령을 수정합니다(예: vom/vim
).no_such_file
– mv
및 cp
명령을 사용하여 누락된 디렉터리를 생성합니다.omnienv_no_such_command
– goenv
, nodenv
, pyenv
및 rbenv
에 대한 잘못된 명령을 수정합니다(예: pyenv isntall
또는 goenv list
).open
– open
에 전달된 주소 앞에 http://
추가하거나 새 파일이나 디렉터리를 생성하여 open
에 전달합니다.pip_install
– --user
추가하거나 필요한 경우 sudo
앞에 추가하여 pip install
명령과 관련된 권한 문제를 수정합니다.pip_unknown_command
– 잘못된 pip
명령을 수정합니다(예: pip instatl/pip install
).php_s
– 로컬 PHP 서버를 실행하려고 할 때 -s
-S
로 대체합니다.port_already_in_use
– 포트를 바인딩한 프로세스를 종료합니다.prove_recursively
– 디렉토리와 함께 호출할 때 -r
추가합니다.python_command
– 실행 불가능하거나 ./
python 스크립트 없이 실행하려고 할 때 python
앞에 추가합니다.python_execute
– Python 파일을 실행할 때 누락된 .py
추가합니다.python_module_error
– 해당 모듈을 pip install
하여 ModuleNotFoundError를 수정합니다.quotation_marks
– args'를 포함할 때 '
및 "
의 고르지 않은 사용을 수정합니다.path_from_history
– 찾을 수 없는 경로를 기록의 유사한 절대 경로로 바꿉니다.rails_migrations_pending
– 보류 중인 마이그레이션을 실행합니다.react_native_command_unrecognized
– 인식되지 않는 react-native
명령을 수정합니다.remove_shell_prompt_literal
– 문서에서 명령을 복사할 때 일반적으로 사용되는 선행 쉘 프롬프트 기호 $
제거합니다.remove_trailing_cedilla
– 유럽 키보드 레이아웃의 일반적인 오타인 후행 cedillas ç
를 제거합니다.rm_dir
– 디렉토리를 제거하려고 할 때 -rf
추가합니다.scm_correction
– hg log
와 같은 잘못된 scm을 git log
로 수정합니다.sed_unterminated_s
– 누락된 '/'를 sed
s
명령에 추가합니다.sl_ls
- sl
ls
로 변경합니다.ssh_known_hosts
– 경고 시 known_hosts
에서 호스트를 제거합니다.sudo
– 권한 때문에 실패한 경우 이전 명령 앞에 sudo
추가합니다.sudo_command_from_user_path
– sudo
사용하여 $PATH
사용자의 명령을 실행합니다.switch_lang
– 명령을 로컬 레이아웃에서 en으로 전환합니다.systemctl
– 혼란스러운 systemctl
의 매개변수를 올바르게 정렬합니다.terraform_init.py
– 계획 또는 적용 전에 terraform init
실행합니다.terraform_no_command.py
- 인식할 수 없는 terraform
명령을 수정합니다.test.py
– test.py
대신 pytest
실행합니다.touch
– "터치"하기 전에 누락된 디렉토리를 생성합니다.tsuru_login
– 인증되지 않았거나 세션이 만료된 경우 tsuru login
실행합니다.tsuru_not_command
– tsuru shell
과 같은 잘못된 tsuru
명령을 수정합니다.tmux
– tmux
명령을 수정합니다.unknown_command
– hadoop hdfs 스타일 "알 수 없는 명령"을 수정합니다. 예를 들어 누락된 '-'를 hdfs dfs ls
의 명령에 추가합니다.unsudo
– 프로세스가 슈퍼유저 권한으로 실행을 거부하는 경우 이전 명령에서 sudo
제거합니다.vagrant_up
– 방랑 인스턴스를 시작합니다.whois
– whois
명령을 수정합니다.workon_doesnt_exists
– OS가 새로 생성하도록 제안하는 virtualenvwrapper
환경 이름을 수정합니다.wrong_hyphen_before_subcommand
– 잘못 배치된 하이픈을 제거합니다( apt-install
-> apt install
, git-log
-> git log
등).yarn_alias
- yarn ls
와 같은 별칭이 있는 yarn
명령을 수정합니다.yarn_command_not_found
– yarn
틀린 실 명령을 수정합니다.yarn_command_replaced
- 대체된 yarn
명령을 수정합니다.yarn_help
– yarn
문서를 더 쉽게 열 수 있습니다. 다음 규칙은 특정 플랫폼에서만 기본적으로 활성화됩니다.
apt_get
– apt가 설치되지 않은 경우 apt에서 앱을 설치합니다( python-commandnotfound
/ python3-commandnotfound
필요).apt_get_search
– apt-cache
사용한 검색과 함께 apt-get
사용한 검색 시도를 변경합니다.apt_invalid_operation
– apt-get isntall vim
과 같은 잘못된 apt
및 apt-get
호출을 수정합니다.apt_list_upgradable
– apt update
후 apt list --upgradable
실행하는 데 도움이 됩니다.apt_upgrade
– apt list --upgradable
이후에 apt upgrade
실행하는 데 도움이 됩니다.brew_cask_dependency
– 캐스크 종속성을 설치합니다.brew_install
– brew install
의 공식 이름을 수정합니다.brew_reinstall
– brew install <formula>
brew reinstall <formula>
>으로 바꿉니다.brew_link
– 연결이 실패하면 --overwrite --dry-run
추가합니다.brew_uninstall
– 여러 버전이 설치된 경우 brew uninstall
에 --force
추가합니다.brew_unknown_command
– 잘못된 Brew 명령을 수정합니다(예: brew docto/brew doctor
.brew_update_formula
– brew update <formula>
brew upgrade <formula>
>으로 바꿉니다.dnf_no_such_command
– 잘못 입력된 DNF 명령을 수정합니다.nixos_cmd_not_found
– NixOS에 앱을 설치합니다.pacman
– pacman이 설치되지 않은 경우 pacman
으로 앱을 설치합니다(사용 가능한 경우 yay
, pikaur
또는 yaourt
사용).pacman_invalid_option
– 소문자 pacman
옵션을 대문자로 바꿉니다.pacman_not_found
– pacman
, yay
, pikaur
또는 yaourt
로 패키지 이름을 수정합니다.yum_invalid_operation
– yum isntall vim
과 같은 잘못된 yum
호출을 수정합니다.다음 명령은 The Fuck 과 함께 번들로 제공되지만 기본적으로 활성화되어 있지 않습니다.
git_push_force
– git push
에 --force-with-lease
추가합니다( git_push_pull
과 충돌할 수 있음).rm_root
– rm -rf /
명령에 --no-preserve-root
추가합니다. 자신만의 규칙을 추가하려면 ~/.config/thefuck/rules
에 your-rule-name.py
라는 파일을 생성하세요. 규칙 파일에는 다음 두 가지 기능이 포함되어야 합니다.
match ( command : Command ) - > bool
get_new_command ( command : Command ) - > str | list [ str ]
또한 규칙에는 다음과 같은 선택적 기능이 포함될 수 있습니다.
side_effect ( old_command : Command , fixed_command : str ) - > None
규칙에는 선택적 변수 enabled_by_default
, requires_output
및 priority
도 포함될 수 있습니다.
Command
script
, output
및 script_parts
의 세 가지 속성이 있습니다. 규칙은 Command
변경해서는 안 됩니다.
3.0에서 변경된 규칙 API: 규칙 설정에 액세스하려면 from thefuck.conf import settings
사용하여 가져오세요.
settings
~/.config/thefuck/settings.py
에서 조합된 특수 객체이고 env 의 값입니다(자세한 내용은 아래 참조).
sudo
사용하여 스크립트를 실행하기 위한 간단한 예제 규칙:
def match ( command ):
return ( 'permission denied' in command . output . lower ()
or 'EACCES' in command . output )
def get_new_command ( command ):
return 'sudo {}' . format ( command . script )
# Optional:
enabled_by_default = True
def side_effect ( command , fixed_command ):
subprocess . call ( 'chmod 777 .' , shell = True )
priority = 1000 # Lower first, default is 1000
requires_output = True
규칙의 추가 예, 규칙에 대한 유틸리티 함수, 앱/OS별 도우미.
$XDG_CONFIG_HOME/thefuck/settings.py
파일에서 여러 The Fuck 매개변수를 변경할 수 있습니다( $XDG_CONFIG_HOME
기본값은 ~/.config
).
rules
– 기본적으로 활성화된 규칙 목록 thefuck.const.DEFAULT_RULES
;exclude_rules
– 기본적으로 비활성화된 규칙 목록 []
;require_confirmation
– 새 명령을 실행하기 전에 확인이 필요합니다. 기본적으로 True
.wait_command
– 이전 명령 출력을 가져오는 데 걸리는 최대 시간(초)입니다.no_colors
- 컬러 출력을 비활성화합니다.priority
– 규칙 우선순위가 있는 사전, 우선 priority
가 낮은 규칙이 먼저 일치됩니다.debug
– 기본적으로 False
로 디버그 출력을 활성화합니다.history_limit
– 스캔할 기록 명령 수의 숫자 값(예: 2000
;alter_history
– 고정된 명령을 기록에 푸시합니다. 기본적으로 True
.wait_slow_command
– 이전 명령 출력이 slow_commands
목록에 있는 경우 이를 가져오는 데 걸리는 최대 시간(초)입니다.slow_commands
– 느린 명령 목록;num_close_matches
– 제안할 근접 일치의 최대 수(기본적으로 3
.excluded_search_path_prefixes
– 명령을 검색할 때 무시할 경로 접두사, 기본적으로 []
. settings.py
의 예:
rules = [ 'sudo' , 'no_command' ]
exclude_rules = [ 'git_push' ]
require_confirmation = True
wait_command = 10
no_colors = False
priority = { 'sudo' : 100 , 'no_command' : 9999 }
debug = False
history_limit = 9999
wait_slow_command = 20
slow_commands = [ 'react-native' , 'gradle' ]
num_close_matches = 5
또는 환경 변수를 통해:
THEFUCK_RULES
– DEFAULT_RULES:rm_root
또는 sudo:no_command
와 같은 활성화된 규칙 목록입니다.THEFUCK_EXCLUDE_RULES
– git_pull:git_push
와 같은 비활성화된 규칙 목록입니다.THEFUCK_REQUIRE_CONFIRMATION
– 새 명령을 실행하기 전에 확인이 필요합니다( true/false
).THEFUCK_WAIT_COMMAND
– 이전 명령 출력을 가져오는 데 걸리는 최대 시간(초)입니다.THEFUCK_NO_COLORS
– 컬러 출력 비활성화, true/false
;THEFUCK_PRIORITY
– no_command=9999:apt_get=100
과 같은 규칙의 우선순위, 우선 priority
가 낮은 규칙이 먼저 일치됩니다.THEFUCK_DEBUG
– 디버그 출력을 활성화합니다 true/false
).THEFUCK_HISTORY_LIMIT
– 스캔할 기록 명령 수(예: 2000
;THEFUCK_ALTER_HISTORY
– 수정된 명령을 기록 true/false
에 푸시합니다.THEFUCK_WAIT_SLOW_COMMAND
– 이전 명령 출력이 slow_commands
목록에 있는 경우 이를 가져오는 데 걸리는 최대 시간(초)입니다.THEFUCK_SLOW_COMMANDS
– lein:gradle
과 같은 느린 명령 목록입니다.THEFUCK_NUM_CLOSE_MATCHES
– 제안할 근접 일치의 최대 수(예: 5
)THEFUCK_EXCLUDED_SEARCH_PATH_PREFIXES
– 명령을 검색할 때 무시할 경로 접두사, 기본적으로 []
.예를 들어:
export THEFUCK_RULES= ' sudo:no_command '
export THEFUCK_EXCLUDE_RULES= ' git_pull:git_push '
export THEFUCK_REQUIRE_CONFIRMATION= ' true '
export THEFUCK_WAIT_COMMAND=10
export THEFUCK_NO_COLORS= ' false '
export THEFUCK_PRIORITY= ' no_command=9999:apt_get=100 '
export THEFUCK_HISTORY_LIMIT= ' 2000 '
export THEFUCK_NUM_CLOSE_MATCHES= ' 5 '
특정 비공개 규칙 세트를 만들고 싶지만 다른 사람들과 공유하고 싶다면 다음 구조를 사용하여 thefuck_contrib_*
라는 패키지를 생성하세요.
thefuck_contrib_foo
thefuck_contrib_foo
rules
__init__.py
*third-party rules*
__init__.py
*third-party-utils*
setup.py
The Fuck은 rules
모듈에 있는 규칙을 찾습니다.
The Fuck 의 기본 동작은 이전 명령을 다시 실행하는 데 시간이 필요합니다. 인스턴트 모드에서 The Fuck은 스크립트로 출력을 기록한 다음 로그를 읽어 시간을 절약합니다.
현재 인스턴트 모드는 bash 또는 zsh가 포함된 Python 3만 지원합니다. thefuck이 제대로 작동하려면 zsh의 자동 수정 기능도 비활성화해야 합니다.
인스턴트 모드를 활성화하려면 .bashrc
, .bash_profile
또는 .zshrc
의 별칭 초기화에 --enable-experimental-instant-mode
추가하세요.
예를 들어:
eval $( thefuck --alias --enable-experimental-instant-mode )
CONTRIBUTING.md를 참조하세요.
프로젝트 라이센스는 여기에서 찾을 수 있습니다.