Bashシェルからコマンドを元に戻すことはできますか?

Bashシェルからコマンドを元に戻すことはできますか?

Bashシェルで実行されたコマンドをやり直す/元に戻す可能性があるかどうか疑問に思います。 (キャンセルする)

どのタスク(WordやLibreOfficeなど)をやり直すことができるctrl+組み合わせのようなものがありますか?z

ベストアンサー1

bashこれは単なる実行環境であることを理解する必要があります。これにより、ユーザーが呼び出したコマンドが実行されます。シェルはコマンドが何をしているのか気にせず、必要な実行可能ファイルを呼び出すことができます。ほとんどの場合、元に戻す機能が何であるかは不明です。たとえば、映画を「再生解除」できますか?メールを「送信解除」できますか?たとえば、「Firefoxの元に戻す」とはどういう意味ですか?この機能をオフにできますが、ブックマーク、ダウンロード、履歴は同じではありません。

コマンドを実行すると、何をしても実行されます。あなたが何をしているのかを知ることはあなた次第です。これは、個々のコマンドに「元に戻す」機能がないという意味ではありません。そうかもしれません。愚かな間違いから保護するためにラッパー関数を作成することもできます。

たとえば、mv上書きしない限り、ファイルを元の場所に戻すと簡単に元に戻すことができます。その-iため、上書きする前に尋ねるスイッチが存在します。技術的に何か再定義されない限り、cpisの反対です。より永久にファイルを回復するには、実際には低レベルのハッキング(ツール付き)を実行する必要があります。ファイルシステムをブラックボックスとして考えると、これは技術的にまったく可能ではありません(データの論理的、物理的なレイアウトの詳細だけがある程度の損傷を制御できます)。つまり、「ごみ箱」機能が必要な場合は、実際には事前にソートされたディレクトリ(およびそれを維持または空にするために予約されたサービス)に移動するだけです。特別なことはありません。ただし、削除する前にプロンプ​​トを使用できます。関数またはエイリアスを使用して、常にこれらのコマンドを含めることができます。rm-irmrmrmmv-i-i

ほとんどのアプリは、さまざまな方法でデータの損失からユーザーを保護します。ほとんどの(〜すべての)テキストエディタは、以前の~バージョンを復元したい場合に備えて、最後にバックアップファイルを作成します。一部のディストリビューションでは、エイリアスはデフォルトlsで非表示になるために使用されますが(-B)存在します。権限を正しく管理すれば、多くの保護を得ることができます。必要な場合以外はルートにならず、変更を望まない場合はファイルを読み取り専用にしてください。時々「サンドボックス」環境を持つことが役に立つかもしれません。コピーで何かを実行して動作していることを確認し、変更をマージ(または削除)します。chrootあるいは、lxcスクリプトがディレクトリから脱出して破損を引き起こすのを防ぎます。

echo一括してジョブを実行したい場合(たとえば、複雑なfindコマンド、whileループ、長いパイプ、または同様のコマンドがある場合)、実行したいコマンドのみを最初に実行するのが最善です。その後、コマンドが合理的に見える場合は、削除してecho実際に実行してください。もちろん、自分が何をしているのかわからない場合は、まずコピーを作成してください。時には現在のディレクトリのtarballを作成することもあります。

tarballについて言えば、tarbombとzipbombは不幸なことです(人々が適切なサブディレクトリなしでアーカイブするときに解凍すると、ファイルがあちこちに散らばり、途方もない混乱が発生します)。私は解凍する前に直接サブディレクトリを作成することに慣れています。できる物を一覧表示しますが、怠惰です)。コンテンツがサブディレクトリなしでアーカイブされている場合にのみサブディレクトリを生成するスクリプトを作成しようとしています。ただし、そのような場合は、ls -lrt最新のファイルを見つけて元の場所に配置するのが役立ちます。私は例を挙げた。プログラムには、シェルが知らない多くの副作用がある可能性があります(どのようにそれが可能ですか?他のプログラムが呼び出されています!)エラーを回避する唯一の確実な方法は注意することです(2回考えてください。一度実行)。

おそらく最も危険なコマンドは、mkfs、fdisk / gdiskなどのファイルシステムを扱うコマンドです。ファイルシステムを完全に損傷する可能性があります(適切なフォレンジックソフトウェアを使用すると、少なくとも部分的なリバースエンジニアリングも可能です)。コマンドを実行する前に、正しいデバイスとパーティションをフォーマットしていることを再確認してください。

おすすめ記事