タイプミスのあるコマンドを無意識のうちに実行したことがありますか?上/下矢印を押すだけでコマンド履歴が表示され、スペルミスのあるコマンドを見つけてタイプミスを編集し、最後に再実行できます。これは私たちのほとんどが通常行うことです!ただし、以前に入力したコマンドのタイプミスを修正する方法は他にもあります。このチュートリアルでは、LinuxおよびUnixで以前のコンソールコマンドのエラーを修正するためのすべての可能な方法を説明します。
免責事項:
この記事にはNSFWが含まれています (仕事には安全ではありません)、および珍しい言葉 いくつかの場所で。その言葉を少し隠したのに、完全に避けられませんでした。その言葉を排除する方法はないので、この投稿があなたを不快にさせ、私が何らかの形であなたを怒らせた場合は、事前に私の謝罪を受け入れてください。
1。 'thef*ck'アプリを使用して以前のコンソールコマンドのエラーを修正する
f * ckユーティリティは、Linuxで以前に実行されたコマンドのエラーとタイプミスを修正するために使用されます。
急いでタイプミスのあるコマンドを実行しましたか? sudo
を追加するのを忘れましたか コマンドで?問題ない!このアプリケーションは、以前に実行されたコマンドに対して修正されたコマンドを自動的に表示します!!
正しいコマンドを選択し、Enterキーを押して実行できます。コマンドのタイプミスを手動で修正するためにコマンド履歴をナビゲートする必要はありません!
このアプリケーションの開発者は、ツイートからインスピレーションを得ました そして、このクールなアプリケーションを作りました。 Python言語で書かれています。これはオープンソースアプリケーションであり、そのコードはGitHubで公開されています。
1.1。インストール
PiPのいずれかを使用してインストールできます パッケージマネージャーまたはディストリビューションのデフォルトのパッケージマネージャー。
PiPがインストールされていることを確認してください 。
PiPをインストールした後、次のコマンドを実行して次のようにインストールします。
$ pip3 install --user thefuck
これにより、利用可能な最新バージョンがインストールされます。
また、多くのLinuxおよびUnixディストリビューション用にパッケージ化されているため、ディストリビューションのデフォルトのパッケージマネージャーを使用してインストールできます。 OSパッケージマネージャーを使用してプロジェクトをインストールする方法については、プロジェクトのGitHubページ(最後に表示)を参照してください。
1.2。構成
.bash_profile
に次の行を追加することをお勧めします 、.bashrc
、.zshrc
または他の起動スクリプト。
$ nano ~/.bashrc
次の行を追加します:
eval $(thefuck --alias fixthis)
ここでは、エイリアスとして「fixthis」を使用しました。エイリアスとして好きなものを使用できます。
Ctrl+o
を押します ENTERを押してファイルを保存し、Ctrl+x
閉じます。
次のコマンドを実行して、変更を更新します。
$ source ~/.bashrc
1.3。使用法
'fixthis'は、一連の組み込みルールに基づいて機能します。有効なルールの完全なリストは、ここにあります。独自のルールを作成することもできます。
入力ミスのあるコマンドを実行すると、前のコマンドをルールと一致させようとします。一致するものが見つかった場合、一致したルールを使用して新しいコマンドが作成され、実行されます。
いくつかの例を見てみましょう。
通常のユーザーとして次のコマンドを使用して、Manjaroシステムを更新します。
$ pacman -Syu
出力例:
error: you cannot perform this operation unless you are root.
ご覧のとおり、上記のコマンドは許可エラーを表示します。なぜなら、sudo
を追加しなかったからです コマンドの前。
sudo
を追加する必要はありません コマンドを再実行します。以下のように「fixthis」コマンドを実行するだけです。
$ fixthis
これで、以前に実行されたコマンドの有効なコマンド候補が一覧表示されます。
実行したい場合は、Enterキーを押して実行します。そうでない場合は、上/下矢印を押して、他の推奨コマンドを表示します。
私の場合、以下の出力に示すように、正しいコマンドである最初のコマンドを使用します。
sudo pacman -Syu [enter/↑/↓/ctrl+c]
見る?権限エラーのために前のコマンドが失敗した場合、「fixthis」アプリはコマンドの前にsudo
を追加します もう一度実行します。かっこいいですよね?コマンドの実行を中止するには、 ctrl + cを押します。 。
同様に、スペルミスのあるコマンドを実行すると、スペルミスが修正され、コマンドが再度実行されます。
$ pithon
出力例:
bash: pithon: command not found
$ fixthis python3 [enter/↑/↓/ctrl+c]
成功するまでコマンドを再帰的に修正する場合は、-r
を使用できます。 オプション:
$ fixthis -r
その他の例については、開発者が作成した以下の公式スクリーンキャストを参照してください。
Linuxコマンドのタイプミスやエラーをすばやく修正するのに非常に便利ですが、このアプリには機密性の高い不適切な名前が付いているため、状況によっては使用したくない場合があります。
このような状況でこのコマンドを実行しているときに不快に感じる場合は、上記の「構成」セクションに示すように、エイリアスを作成するだけです(たとえば、これを修正してください)。
2。修正を使用してコマンドのエラーを修正する
修正 コマンドのエラーやタイプミスをすばやく修正するのに役立つもう1つの優れたユーティリティです。修正はf*ckと同じように機能しますが、わずかに異なります。
Thef * ckは構文に強いのに対し、セマンティックの側面が重要な場合は修正の方が優れています。スクリプトの実行が機能しない場合、thef*ckはインストールするパッケージを教えてくれません。
修正ユーティリティは、自分で修正する方法がわからない場合に使用することを目的としています。入力ミスやスペルミスのコマンドに対するいくつかの解決策を提案します。
OpenAIのCodexAIを使用します コマンドのエラーを修正するためのすべての可能な解決策を提案します。コマンドの前に「fix」を付けるだけで、AIが最適なソリューションを提案します。
2.1。 LinuxにFixをインストールする
Fixのインストールは簡単です!
1.まず、OpenAIの Codex APIにアクセスする必要があります 。
2.リポジトリのクローンを作成します:
$ git clone https://github.com/tom-doerr/fix.git
プロジェクトのgithubリポジトリのコンテンツを'fix
という名前のローカルフォルダに複製します '。
3.「fix」ディレクトリにcdします:
$ cd fix
4. main.py
を追加します $ PATHへ:
$ cp $PWD/main.py ~/.local/bin/fix
2.2。使用法
入力ミスのあるコマンドを修正するには、次のようにコマンドの前に「fix」を追加するだけです。
$ fix mkdir abc/def
最後のコマンドを修正するには、次のようにします。
$ fix !!
AIはほとんど間違ったソリューションを生成しますが、生成されたソリューションの十分な数が実際に機能しているため、AIは有用です。
これがFixアプリケーションのビジュアルデモです。
推奨される読み物:
- Linuxで最後のコマンドを繰り返すさまざまな方法
3。 Caret記号を使用してスペルミスのあるBashコマンドを修正する
このトリックはBASHでのみ機能します。
このトリックは非常に簡単です。 誤入力された単語を置き換えるだけです 正しい単語 Caretを使用する ( ^ )シンボル。
'mkdir
を使用してディレクトリを作成するとします。 ' 指図。しかし、あなたは'i
を見逃しました コマンドに「」を入力し、「mkdr
」と入力しました '代わりに以下のように。
$ mkdr ostechnix bash: mkdr: command not found
上記のコマンドのタイプミスを修正するには、'dr
を置き換えるだけです。 'with' dir
'以下のようなCaret記号付き:
$ ^dr^dir^
これで、Bashはこれを'mkdir
として解釈します。 'そしてそれを実行し、以下に示すように出力を表示します。
mkdir ostechnix
4。 cdコマンドを使用する際のタイプミスを修正する
私はよくコンソールにすばやく入力しようとしましたが、cd
のときにタイプミスが発生しました ディレクトリに。
$ cd Pctures bash: cd: Pctures: No such file or directory
ディレクトリ名を入力するとき、私は一言か二言を逃します。私のような人なら、cd
を使用するときにタイプミスを自動的に修正する方法は次のとおりです。 コマンド。
この迷惑を修正するには、~/.bashrc
を編集します ファイル:
$ nano ~/.bashrc
最後に次の行を追加します:
shopt -s cdspell
Ctrl+o
を押します ENTERを押してファイルを保存し、Ctrl+x
閉じます。
次のコマンドを実行して、変更を更新します。
$ source ~/.bashrc
今後、タイプミスがあった場合でも、シェルは正しいディレクトリパスを自動的に認識します。
このトリックにはいくつかの欠点があります。ケースと順序が重要です。
たとえば、'pctures'を使用する場合 「Pctures」の代わりに 、パスを認識しません。ここでは、小文字の'p'を使用しました ディレクトリの場合「写真」 。
$ cd pctures bash: cd: pctures: No such file or directory
また、「Pctrues」を使用する場合 「Pctures」の代わりに 、正しいケースを使用し、そのようなファイルまたはディレクトリがないと文句を言っても、ディレクトリパスは認識されません。
$ cd Pctrues bash: cd: Pctrues: No such file or directory
ここでは、「写真」ディレクトリの文字の順序を変更しました。
また、ディレクトリパスに複数の文字が欠落している場合は、同様に機能しません。
このヒントは「cd
」のみを対象としていることに注意してください ' 指図。また、このヒントはBash専用です。 Fish and Zshには、この機能が組み込まれています。
ボーナス-不足しているコマンドを実行するときにパッケージのインストールを提案する
使用できないコマンドを実行すると、次のようなエラーメッセージが表示されることに注意してください。
bash: ....: command not found
不足しているコマンドを提供するパッケージがわかっている場合は、そのパッケージをインストールして、コマンドを再実行するだけです。ただし、わからない場合は、少し助けが必要な場合があります。
この問題を軽減するために、「 command-not-found」というパッケージがあります。 '。これにより、unavailableコマンドを使用するためにインストールするパッケージのリストが提案されます。
認識されないコマンドまたは使用できないコマンドを入力すると、公式リポジトリが自動的に検索されます。詳しくは以下のリンクをご覧ください。
- 使用できないコマンドを実行するときにパッケージのインストールを提案する
結論
どうぞ!これらは、LinuxおよびUnixシステムでのコマンドラインのタイプミスやエラーに対処するためのいくつかの方法です。自分に合ったものを選ぶか、2つ以上の組み合わせで使用できます。たとえば、コンソールコマンドのエラーやタイプミスを修正するために、「Fix」と「thef*ck」の両方を時々使用しています。