<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          TheFuck — 實用的命令自動糾正工具

          共 3339字,需瀏覽 7分鐘

           ·

          2022-04-16 01:15

          The Fuck 是一款功能強大的、Python編寫的應(yīng)用程序,可用于糾正控制臺命令中的錯誤,非常強大。此外,用戶還可通過寫Python代碼的方式自定義修復(fù)規(guī)則。

          修復(fù)效果如下動圖所示:


          更多示例如:

          自動識別沒有權(quán)限,在命令前面添加 sudo:

          ? 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
          ...


          識別到?jīng)]有推送到遠程分支,自動追加:

          ? 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)
          ...


          如果你不擔心fuck修正的結(jié)果是錯誤的,你可以禁用require_confirmation?選項,讓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
          [sudo] password?for?nvbn:
          Reading package?lists... Done
          ...


          在開發(fā)機上可以這么做,在生產(chǎn)機器上最好是謹慎一點,不推薦這么做。

          1.安裝

          在OS X上,可以通過Homebrew(或在Linux上通過Linuxbrew)安裝The Fuck

          brew install?thefuck


          在Ubuntu / Mint上,使用以下命令安裝The Fuck

          sudo apt update
          sudo apt install python3-dev python3-pip python3-setuptools
          sudo pip3 install thefuck


          在FreeBSD上,使用以下命令安裝The Fuck

          pkg install?thefuck


          在其他系統(tǒng)上,?使用pip安裝The Fuck

          pip install?thefuck

          2.配置

          接下來需要把這個命令寫入到啟動腳本中,根據(jù)你的終端類型,運行相應(yīng)的命令即可:

          Bash

          chcp.com?65001?
          eval?"$(thefuck --alias)"


          其中 chcp.com 65001 只有在windows環(huán)境下才需要運行。

          Zsh:

          eval?"$(thefuck --alias)"


          其他的可見:

          https://github.com/nvbn/thefuck/wiki/Shell-aliases

          3.原理

          其實TheFuck的原理就是規(guī)則匹配(正則表達式),如果找到匹配規(guī)則的命令,則創(chuàng)建一個命令給用戶選擇或直接運行。

          默認情況下的規(guī)則有:

          • cat_dir?- 當你嘗試cat目錄的時候,用ls替換cat;

          • cd_correction?– 拼寫檢查和糾正失敗的cd命令;

          • cd_mkdir?– 在進入目錄之前創(chuàng)建目錄;

          • cd_parent?– 更改?cd..?為cd ..

          • dry?– 修復(fù)類似的重復(fù)問題:git git push

          • fix_alt_space?– 用空格字符代替Alt + Space;

          等等,具體可以在官方文檔中找到:
          https://github.com/nvbn/thefuck


          4. 創(chuàng)建自己的修復(fù)規(guī)則

          要添加自己的規(guī)則,在 ~/.config/thefuck/rules?文件夾中,

          創(chuàng)建一個文件名為 your-rule-name.py?的規(guī)則文件,其中必須包含兩個函數(shù):

          match(command: Command) -> bool
          get_new_command(command: Command) -> str?| list[str]


          下面是簡單的 sudo 規(guī)則示例:

          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


          如果命令運行結(jié)果出現(xiàn) permission denied 或者 EACCES,則執(zhí)行 sudo xxx.

          此外,還可以配置side_effect,如果你配置了enabled_by_default = True,side_effect函數(shù)內(nèi)的操作將會被執(zhí)行,本例中是對當前目錄下的文件夾執(zhí)行賦權(quán)操作: chmod 777 .

          大家可以動手試試自己配一個修復(fù)命令,還是相當有意思的。

          老表薦書

          圖書介紹Vue.js全家桶零基礎(chǔ)入門到進階項目實戰(zhàn)

          Vue.js 是一套構(gòu)建用戶界面的漸進式框架,本書旨在幫助讀者全面掌握 Vue.js 全家桶技術(shù)和單頁面前后端分離項目開發(fā),理解 MVVM 框架思想,讓前端和后端開發(fā)人員快速精通 Vue.js 全家桶技術(shù)。

          本書包含的主要技術(shù):NPM/CNPM、VS Code、Vue.js、 MVVM、Axios、Vue Router、webpack、ECMAScript 6、Vue Loader、Vue CLI、Element UI、Vuex、 Mock.js、Easy Mock、ECharts 、Promise、攔截器、組件通信、跨域問題、上線部署等。


          【注意??】近三個月內(nèi)獲得贈書的讀者將無法再次獲得贈書,想要多次獲得贈書,可以查看下面的投稿規(guī)則及激勵。


          近期閱讀學(xué)習(xí)推薦

          服務(wù)器被黑客攻擊,用來挖礦!怎么辦?

          Python超好用的命令行界面實現(xiàn)工具

          Python自動化處理Excel表格實戰(zhàn)完整代碼分享(課表解析)

          如何找到我

          分享

          收藏

          點贊

          在看

          瀏覽 30
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日日做人人爱 | 天天狠天天插天天透 | 操逼网在线视频 | 国产A片一级 | 97Av电影手机版 |