The Fuck is a magnificent app, inspired by a @liamosaur tweet, that corrects errors in previous console commands.
Is The Fuck too slow? Try the experimental instant mode!
[![gif with examples][examples-link]][examples-link]
More examples:
➜ 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 ...
If you're not afraid of blindly running corrected commands, the
require_confirmation
settings option can be disabled:
➜ 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 ...
On macOS or Linux, you can install The Fuck via [Homebrew][homebrew]:
brew install thefuck
On Ubuntu / Mint, install The Fuck with the following commands:
sudo apt update sudo apt install python3-dev python3-pip python3-setuptools pip3 install thefuck --user
On FreeBSD, install The Fuck with the following commands:
pkg install thefuck
On ChromeOS, install The Fuck using chromebrew with the following command:
crew install thefuck
On Arch based systems, install The Fuck with the following command:
sudo pacman -S thefuck
On other systems, install The Fuck by using pip
:
pip install thefuck
Alternatively, you may use an OS package manager (OS X, Ubuntu, Arch).
<a href='#manual-installation' name='manual-installation'>#</a>
It is recommended that you place this command in your .bash_profile
,
.bashrc
, .zshrc
or other startup script:
eval $(thefuck --alias) # You can use whatever you want as an alias, like for Mondays: eval $(thefuck --alias FUCK)
Or in your shell config (Bash, Zsh, Fish, Powershell, tcsh).
Changes are only available in a new shell session. To make changes immediately
available, run source ~/.bashrc
(or your shell config file like .zshrc
).
To run fixed commands without confirmation, use the --yeah
option (or just -y
for short, or --hard
if you're especially frustrated):
fuck --yeah
To fix commands recursively until succeeding, use the -r
option:
fuck -r
pip3 install thefuck --upgrade
Note: Alias functionality was changed in v1.34 of The Fuck
To remove The Fuck, reverse the installation process:
The Fuck attempts to match the previous command with a rule. If a match is found, a new command is created using the matched rule and executed. The following rules are enabled by default:
adb_unknown_command
– fixes misspelled commands like adb logcta
;ag_literal
– adds -Q
to ag
when suggested;aws_cli
– fixes misspelled commands like aws dynamdb scan
;az_cli
– fixes misspelled commands like az providers
;cargo
– runs cargo build
instead of cargo
;cargo_no_command
– fixes wrong commands like cargo buid
;cat_dir
– replaces cat
with ls
when you try to cat
a directory;cd_correction
– spellchecks and corrects failed cd commands;cd_cs
– changes cs
to cd
;cd_mkdir
– creates directories before cd'ing into them;cd_parent
– changes cd..
to cd ..
;chmod_x
– adds execution bit;choco_install
– appends common suffixes for chocolatey packages;composer_not_command
– fixes composer command name;conda_mistype
– fixes conda commands;cp_create_destination
– creates a new directory when you attempt to cp
or mv
to a non-existent onecp_omitting_directory
– adds -a
when you cp
directory;cpp11
– adds missing -std=c++11
to g++
or clang++
;dirty_untar
– fixes tar x
command that untarred in the current directory;dirty_unzip
– fixes unzip
command that unzipped in the current directory;django_south_ghost
– adds --delete-ghost-migrations
to failed because ghosts django south migration;django_south_merge
– adds --merge
to inconsistent django south migration;docker_login
– executes a docker login
and repeats the previous command;docker_not_command
– fixes wrong docker commands like docker tags
;docker_image_being_used_by_container
‐ removes the container that is using the image before removing the image;dry
– fixes repetitions like git git push
;fab_command_not_found
– fixes misspelled fabric commands;fix_alt_space
– replaces Alt+Space with Space character;fix_file
– opens a file with an error in your $EDITOR
;gem_unknown_command
– fixes wrong gem
commands;git_add
– fixes "pathspec 'foo' did not match any file(s) known to git.";git_add_force
– adds --force
to git add <pathspec>...
when paths are .gitignore'd;git_bisect_usage
– fixes git bisect strt
, git bisect goood
, git bisect rset
, etc. when bisecting;git_branch_delete
– changes git branch -d
to git branch -D
;git_branch_delete_checked_out
– changes git branch -d
to git checkout master && git branch -D
when trying to delete a checked out branch;git_branch_exists
– offers git branch -d foo
, git branch -D foo
or git checkout foo
when creating a branch that already exists;git_branch_list
– catches git branch list
in place of git branch
and removes created branch;git_branch_0flag
– fixes commands such as git branch 0v
and git branch 0r
removing the created branch;git_checkout
– fixes branch name or creates new branch;git_clone_git_clone
– replaces git clone git clone ...
with git clone ...
git_clone_missing
– adds git clone
to URLs that appear to link to a git repository.git_commit_add
– offers git commit -a ...
or git commit -p ...
after previous commit if it failed because nothing was staged;git_commit_amend
– offers git commit --amend
after previous commit;git_commit_reset
– offers git reset HEAD~
after previous commit;git_diff_no_index
– adds --no-index
to previous git diff
on untracked files;git_diff_staged
– adds --staged
to previous git diff
with unexpected output;git_fix_stash
– fixes git stash
commands (misspelled subcommand and missing save
);git_flag_after_filename
– fixes fatal: bad flag '...' after filename
git_help_aliased
– fixes git help <alias>
commands replacing <alias> with the aliased command;git_hook_bypass
– adds --no-verify
flag previous to git am
, git commit
, or git push
command;git_lfs_mistype
– fixes mistyped git lfs <command>
commands;git_main_master
– fixes incorrect branch name between main
and master
git_merge
– adds remote to branch names;git_merge_unrelated
– adds --allow-unrelated-histories
when requiredgit_not_command
– fixes wrong git commands like git brnch
;git_pull
– sets upstream before executing previous git pull
;git_pull_clone
– clones instead of pulling when the repo does not exist;git_pull_uncommitted_changes
– stashes changes before pulling and pops them afterwards;git_push
– adds --set-upstream origin $branch
to previous failed git push
;git_push_different_branch_names
– fixes pushes when local branch name does not match remote branch name;git_push_pull
– runs git pull
when push
was rejected;git_push_without_commits
– creates an initial commit if you forget and only git add .
, when setting up a new project;git_rebase_no_changes
– runs git rebase --skip
instead of git rebase --continue
when there are no changes;git_remote_delete
– replaces git remote delete remote_name
with git remote remove remote_name
;git_rm_local_modifications
– adds -f
or --cached
when you try to rm
a locally modified file;git_rm_recursive
– adds -r
when you try to rm
a directory;git_rm_staged
– adds -f
or --cached
when you try to rm
a file with staged changesgit_rebase_merge_dir
– offers git rebase (--continue | --abort | --skip)
or removing the .git/rebase-merge
dir when a rebase is in progress;git_remote_seturl_add
– runs git remote add
when git remote set_url
on nonexistent remote;git_stash
– stashes your local modifications before rebasing or switching branch;git_stash_pop
– adds your local modifications before popping stash, then resets;git_tag_force
– adds --force
to git tag <tagname>
when the tag already exists;git_two_dashes
– adds a missing dash to commands like git commit -amend
or git rebase -continue
;go_run
– appends .go
extension when compiling/running Go programs;go_unknown_command
– fixes wrong go
commands, for example go bulid
;gradle_no_task
– fixes not found or ambiguous gradle
task;gradle_wrapper
– replaces gradle
with ./gradlew
;grep_arguments_order
– fixes grep
arguments order for situations like grep -lir . test
;grep_recursive
– adds -r
when you try to grep
directory;grunt_task_not_found
– fixes misspelled grunt
commands;gulp_not_task
– fixes misspelled gulp
tasks;has_exists_script
– prepends ./
when script/binary exists;heroku_multiple_apps
– adds --app <app>
to heroku
commands like heroku pg
;heroku_not_command
– fixes wrong heroku
commands like heroku log
;history
– tries to replace command with the most similar command from history;hostscli
– tries to fix hostscli
usage;ifconfig_device_not_found
– fixes wrong device names like wlan0
to wlp2s0
;java
– removes .java
extension when running Java programs;javac
– appends missing .java
when compiling Java files;lein_not_task
– fixes wrong lein
tasks like lein rpl
;long_form_help
– changes -h
to --help
when the short form version is not supportedln_no_hard_link
– catches hard link creation on directories, suggest symbolic link;ln_s_order
– fixes ln -s
arguments order;ls_all
– adds -A
to ls
when output is empty;ls_lah
– adds -lah
to ls
;man
– changes manual section;man_no_space
– fixes man commands without spaces, for example mandiff
;mercurial
– fixes wrong hg
commands;missing_space_before_subcommand
– fixes command with missing space like npminstall
;mkdir_p
– adds -p
when you try to create a directory without a parent;mvn_no_command
– adds clean package
to mvn
;mvn_unknown_lifecycle_phase
– fixes misspelled life cycle phases with mvn
;npm_missing_script
– fixes npm
custom script name in npm run-script <script>
;npm_run_script
– adds missing run-script
for custom npm
scripts;npm_wrong_command
– fixes wrong npm commands like npm urgrade
;no_command
– fixes wrong console commands, for example vom/vim
;no_such_file
– creates missing directories with mv
and cp
commands;omnienv_no_such_command
– fixes wrong commands for goenv
,AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI小说写作助手,一站式润色、改写、扩写
蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。
全能AI智能助手,随时解答生活与工作的多样问题
问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游 玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵 盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能 设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号