GNU/Linux >> Linux の 問題 >  >> Linux

端末で提案されたコマンドを実行するためのショートカットはありますか?

シェルに適したエイリアスを作成します。 bash で 、この行を ~/.bashrc に追加します :

alias sagi="sudo apt-get install"

次に、source ~/.bashrc alias を実行します エイリアスがリストに表示されることを確認します。その後、入力するだけです

sagi <package>

エイリアスを呼び出します。他のシェルの場合、alias コマンドの形式と rc ファイルの名前は異なりますが、source および alias


UPDATE:/bin/program のインストールを試みるようになりました 、/usr/bin/プログラム 、/sbin/プログラム 、または /usr/sbin/program .
これは完全に自動化されています...
g++ main.cpp と入力するとします。 g++ がインストールされていない場合は、パッケージ g++ をインストールするかどうかを尋ねられます。「はい」と答えると、パッケージをインストールして g++ main.cpp を実行します。 .

(これは 1 回限りのセットアップです...これを実行すれば準備完了です)

<オール>
  • apt-file をインストール... sudo apt-get install apt-file
  • キャッシュを更新... sudo apt-file update
  • ~/.bashrc を編集して、これを追加します:

    command_not_found_handle () {
    ask () {
      echo -ne "$1 (Y/n) ";
      read -N1 YES_ANSWER;
      echo "";
      YES_ANSWER=`echo $YES_ANSWER | sed 's/Y/y/; s/N/n/;'`;
      if [ "x$YES_ANSWER" == "xy" ]; then
        unset YES_ANSWER;
        return 0;
      elif [ "x$YES_ANSWER" == "xn" ]; then
        unset YES_ANSWER;
        return 1;
      elif [ "x$YES_ANSWER" == "x" ]; then
        unset YES_ANSWER;
        return 0;
      else
        ask_yes "$1";
        unset YES_ANSWER;
        return $?;
      fi;
    }
    if [ "x$1" == "x" ]; then
      echo "File name not provided.";
      return 1;
    fi;
    echo "Command not found: $1";
    echo "Searching for file in database...";
    FILE="`apt-file search /bin/$1 | sed 's/: /_/'`";
    if [ "x$FILE" != "x" ]; then
      FILE="`apt-file search /usr/bin/$1 | sed 's/: /_/'`";
    fi;
    if [ "x$FILE" != "x" ]; then
      FILE="`apt-file search /sbin/$1 | sed 's/: /_/'`";
    fi;
    if [ "x$FILE" != "x" ]; then
      FILE="`apt-file search /usr/sbin/$1 | sed 's/: /_/'`";
    fi;
    if [ "x$FILE" != "x" ]; then
      for f in "$FILE"; do
        if ask "\nDo you want to install package `echo $f | sed 's/_.*$//'` which provides `echo $f | sed 's/^.*_//'`?"; then
          sudo apt-get install `echo $f | sed 's/_.*$//'`;
          "[email protected]";
          return $?;
        fi;
      done;
    else
      echo "Could not find file $1.";
      return 1;
    fi;
    }
    
  • 私はまだこれをテストしていますが、予備テストではうまくいくようです。ときどき apt-file update を実行するとよいでしょう。 利用可能なファイルのリストを更新します。

    編集した ~/.bashrc を有効にするには、次のいずれかを実行します:ログアウトして再度ログインするか、. ~/.bashrc を実行します。 .


    グラフィカル ターミナルを使用している場合は、sudo apt-get で始まる行をトリプルクリックします。 全体をマークしてから、中クリックして端末に貼り付けます。または、出力から判断して、次のように入力します

    # $(program | tail -n 1)
    

    tail -n 1 の出力を実行するには program の出力が与えられた後のコマンド .これはおそらく短くはありません。ただし、これにより、理論的には次のようなエイリアスの定義が可能になるはずです

    # alias ii='$( $(history -p !!) | tail -n 1)'
    

    履歴の最後のコマンドを取得して実行し、最後の行を取得して再度実行する必要があります。残念ながら、これは機能しません。これは同様の問題について議論していますが、私はそれをこの問題に適応させることができませんでした.bashは通常、""が見つからないと文句を言います. .


    Linux
    1. Linuxターミナルでのmvコマンドの5つの使用

    2. gnome-terminal:コマンドが見つかりません

    3. env ファイルから環境変数を読み取り、コマンドを実行するユーティリティはありますか (フォアマンより軽量)?

    1. スケジュールされたコマンド

    2. エイリアスによってシャドウされているコマンドを実行しますか?

    3. RPM コマンドがハングする

    1. Linux用の私のトップ10ターミナルショートカット

    2. ターミナルが閉じても存続するコマンドを実行するにはどうすればよいですか?

    3. リモートアクティブターミナルでコマンドを実行しますか?