「bla」というコマンドは見つかりませんでした。つまり、


7

それで、コマンドが見つからない場合、「どういう意味ですか」リストはどのように入力されますか?これらの代替コマンドを見つけるプログラムは何ですか?「(メイン)、(ユニバース)...」の意味は何ですか?これらを見つけるプログラムを変更できますか?


1
どのプログラムがこの機能を提供しているか、またはあなたの場合それは何ですか?後者の場合、提供する情報が少なすぎます。まず、どのシェルを使用しますか?
techraf 2016

私はbashを使用していますが、実際には、最も一般的な場合を意味します。どのプログラムがこれを提供し、ほとんどのシェルでプログラムを決定するためのかなり一貫した方法がありますか?

また、機能の実装方法に関して、使用しているUnix / Linuxのフレーバー/ディストリビューションにも大きく依存します。
Randall

回答:


2

あなたが/etc/apt/sources.listそれの内容を見ればフォーマットがあるでしょう

#Archive type  Repository URL                   Distribution Component
 deb           http://archive.ubuntu.com/ubuntu precise      main

アーカイブの種類

各行の最初の単語debまたはdeb-srcは、アーカイブのタイプを示します。Debは、アーカイブにバイナリパッケージ(deb)などが含まれていることを示します。

リポジトリURL

行の次のエントリは、パッケージをダウンロードするリポジトリへのURLです。

分布

'distribution'は、リリースコード名/エイリアス(wheezy、jessie、stretch、sid)またはリリースクラス(oldstable、stable、testing、unstable)のいずれかです。

「(メイン)、(ユニバース)...」の意味は何ですか?

成分

mainはDFSG準拠のパッケージで構成されており、contribパッケージにはDFSG準拠のソフトウェアが含まれていますが、mainには依存関係がなく、non-freeにはDFSGに準拠していないソフトウェアが含まれています。ヒント-リポジトリのURLの1つを確認してください。コンポーネントの名前が付いたフォルダが必要です。

パッケージマネージャー aptは、リポジトリ内のすべてのパッケージのリストを含むデータベースがあり、提案するのに十分スマートだと言います。

パッケージマネージャーはeof dpkg(例:Debian、Ubuntuなど)、apt(例:Debian、Ubuntuなど)にある可能性がありますが、現在は廃止されています(例:古いRedhatバージョンと新しいバージョンは互換性の理由で起動しません)、yum(例。Fedora、CentOS)、dnf-デントリファイされたyum(たとえば、新しいFedoraリリース)など。より包括的なリストについては、これをチェックしてください。1つのディストリビューションに複数のパッケージマネージャーが含まれている場合もあります。たとえばUbuntuでは、/ etc / apt / sources / listをフィードするdpkgが表示される場合があります。

入力すると

cleaq

それは言うかもしれません

cleaq: no command found. Did you mean clean.

「どういう意味ですか」リストはどのような意味で入力されていますか?

これには、パッケージマネージャーデータベース内のパッケージとのパターンマッチングが含まれます。

このデータベースは、次の操作を行うと更新されます apt-get update

わからない

これらを見つけるプログラムを変更できますか?

でも。これは変更できない機能だと思います。わからないけど

リファレンスDebian SourceList


1
@vondirac:はい、sources.listは/etc/apt。編集を参照してください。まあ、一般に、パッケージマネージャーがこのリストを管理していると言うことができ、パッケージマネージャーはapt(Debian、Ubuntuなどの場合)、rpm(Redhatとそのクローン)、yum(eg。Fedoraなど)にすることができます。 、CentOS)およびdnf(新しいFedoraリリース)
sjsam

あなたはいくつかのUbuntu docoを参照してこの答えを改善することができます。
JdeBP 2016

4

の場合bash、その動作はシェル関数command_not_found_handle(「man bash)。

その関数で定義されている動作を確認するには、次のコマンドを発行します。

declare -p -f command_not_found_handle

使用するプログラムを変更するには、 command_not_found_handle関数をます。

Debianベースのディストリビューション(Ubuntuを含む)では、パッケージcommand-not-foundは通常インストールされており/usr/lib/command-not-found 、リンクから入手できます:

インタラクティブbashセッションでのパッケージのインストールを提案する

このパッケージは、現在インストールされていないがリポジトリから利用可能なプログラムを検索するcommand_not_foundのハンドラーをインストールします。

以下も参照してください。


0

これはLinuxシェルの標準機能ではありません。少なくとも2つの可能性があります。

  • zsh 独自の提案リストを維持している
  • プロジェクトthefuckは別のものを提供しています
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.