91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

TheFuck:Python寫的超實用命令糾正工具

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-11-01 11:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

修復效果如下動圖所示:

圖片

更多示例如:

自動識別沒有權限,在命令前面添加 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
...

識別到沒有推送到遠程分支,自動追加:

? 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修正的結果是錯誤的,你可以禁用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
...

在開發機上可以這么做,在生產機器上最好是謹慎一點,不推薦這么做。

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

在其他系統上, 使用pip安裝 The Fuck

pip install thefuck

2.配置

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

Bash

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

其中 chcp.com 65001 只有在windows環境下才需要運行。

Zsh:

eval "$(thefuck --alias)"

其他的可見:

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

3.原理

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

默認情況下的規則有:

  • cat_dir - 當你嘗試cat目錄的時候,用ls替換cat;
  • cd_correction – 拼寫檢查和糾正失敗的cd命令;
  • cd_mkdir – 在進入目錄之前創建目錄;
  • cd_parent – 更改 cd..cd ..
  • dry – 修復類似的重復問題:git git push
  • fix_alt_space – 用空格字符代替Alt + Space;

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

4. 創建自己的修復規則

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

創建一個文件名為 your-rule-name.py 的規則文件,其中必須包含兩個函數:

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

下面是簡單的 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

如果命令運行結果出現 permission denied 或者 EACCES,則執行 sudo xxx.

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11509

    瀏覽量

    213687
  • 代碼
    +關注

    關注

    30

    文章

    4900

    瀏覽量

    70671
  • 應用程序
    +關注

    關注

    38

    文章

    3333

    瀏覽量

    59010
  • python
    +關注

    關注

    56

    文章

    4827

    瀏覽量

    86685
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Python命令補全工具argcomplete簡介

    在使用Python 命令或者 Python命令工具的時候,一個痛點是沒有補全。比如python
    發表于 07-04 10:19 ?582次閱讀

    Linux常用命令大全

    Linux常用命令是指在Linux操作系統中廣泛使用的命令工具,這些命令工具可以完成各種不同的任務,如管理文件和目錄、操作進程、網絡通信、軟
    的頭像 發表于 05-03 18:08 ?1110次閱讀

    cmd常用命令大全 cmd運行命令

    cmd常用命令大全 2K和XP下的CMD命令 accwiz.exe > 輔助工具向導
    發表于 01-08 09:12 ?3.2w次閱讀

    Ubuntu常用命令大全

    Ubuntu常用命令大全,包括常用管理目錄,系統命令,硬盤相關,內存相關,查看進程等命令
    發表于 01-06 11:16 ?0次下載

    vim常用命令

    vim常用命令
    發表于 01-08 15:59 ?3次下載

    linux常用命令手冊

    linux常用命令手冊免費下載。
    發表于 06-01 14:59 ?70次下載

    linux常用命令大全

    linux常用命令大全,一些常用的命令都可以找到
    發表于 03-03 09:20 ?0次下載

    Linux常用命令

    Linux常用命令
    的頭像 發表于 01-12 11:19 ?1402次閱讀

    Linux常用命令手冊分享

    linux常用命令合集
    發表于 04-26 11:46 ?1次下載

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

    The Fuck 是一款功能強大的、Python編寫的應用程序,可用于糾正控制臺命令中的錯誤,非常強大。此外,用戶還可通過Python代碼
    的頭像 發表于 10-31 10:46 ?755次閱讀

    用命令工具ADB(Android Debug Bridge)常見的ADB命令

    ADB(Android Debug Bridge)是一種通用命令工具,可以讓您通過計算機與設備通信。
    的頭像 發表于 11-05 11:26 ?2014次閱讀

    Python自帶的命令窗口

    Python自帶的命令窗口,也稱為Python交互式解釋器,是Python編程語言的一個重要工具,它允許用戶在
    的頭像 發表于 11-22 14:02 ?1280次閱讀

    Linux實用命令大全

    Linux實用命令大全
    的頭像 發表于 10-23 13:50 ?644次閱讀
    Linux實<b class='flag-5'>用命令</b>大全

    詳解kubectl常用命令

    詳解kubectl常用命令
    的頭像 發表于 11-05 15:39 ?1330次閱讀
    詳解kubectl常<b class='flag-5'>用命令</b>

    SSH常用命令詳解

    SSH常用命令詳解
    的頭像 發表于 06-04 11:30 ?585次閱讀
    主站蜘蛛池模板: 男女视频在线 | 久久www免费人成高清 | 亚洲伊人电影 | 444kk免费 | 天天草天天草 | 六月天丁香婷婷 | 在线免费视频手机版 | 欧美一级黄色影片 | 中文字幕首页 | videsgratis欧美另类 | 日本免费人成在线网站 | 夜夜夜夜曰天天天天拍国产 | 天天干夜夜玩 | 色多多视频在线观看免费大全 | 天天操天天射天天插 | 日日干夜夜操视频 | 成人久久久精品乱码一区二区三区 | 精品久久久久久中文字幕欧美 | 亚洲色播永久网址大全 | 久久天天丁香婷婷中文字幕 | 天天干天天爽天天操 | 免费看一级片 | 国产美女特级嫩嫩嫩bbb | 色黄网站成年女人色毛片 | 都市激情综合网 | 四虎国产精品永久地址49 | eeuss秋霞成人影院 | 国产综合在线视频 | 毛片特黄| 国产精品高清一区二区三区不卡 | 日韩欧美理论 | 欧美性狂猛bbbbbbxxxx | 美女视频大全美女视频黄 | 亚洲婷婷综合色高清在线 | 理论在线看 | 久久久一本波多野结衣 | 天天射天天干天天舔 | 69堂在线观看国产成人 | 午夜大片在线观看 | 五月婷婷在线观看视频 | 欧美一级免费观看 |