RAMクリーニング操作には再起動は必要ありません。

RAMクリーニング操作には再起動は必要ありません。

RAMに様々な変数を格納し、変数を拡張し、ファイルを参照しながら、リンクされた結果に対していくつかのタスクを実行するとします。この場合のように

再起動せずにすべての「人工」RAMデータをクリーンアップする最も近い方法は何ですか?

手動とは、変数宣言(または私が行った操作の結果として入力されたデータ)など、RAMに手動で挿入したデータを意味します。セッションで自然に発生しないもの(環境変数や継承されたデータなど)。

ベストアンサー1

RAMに別の変数を保存するとしましょう。

いいえ、おそらくRAMにはどの変数も保存しません。

使用しない限り/dev/mem(参照メモリ(4))奇妙でルートアクセスが必要です。

物理RAMはカーネルによってのみ管理されます。したがって、RAMに何かを格納する唯一の方法は、カーネルコードを使用することです。アプリケーションコード(またはあなたのUnixシェル)走るプロセス、それぞれが自分の仮想アドレス空間そして使用仮想メモリ

仮想アドレス空間は次のように初期化されます。実行(2)プログラムが開始された時間(たとえば、シェルを介して)。プロセスが終了するとexecve削除されます(または成功したタスクを実行するプログラムによって再初期化されます)。

再起動せずにすべての「人工」RAMデータをクリーンアップする最も近い方法は何ですか?

プロセスへのこれらの「変数」(実際には場所仮想アドレス空間)が終了し、データが消えます。プロセスがシェルの場合は、ただ終了できます。exit内蔵ケースまたは殺す(1)など...) しかし、再起動する必要はありません。

以下で設定した環境変数を忘れました。export 内蔵ケースunset組み込みシェルを使用します。また、見ることができます大きな打撃(1)そしてGNUドキュメントbash

たぶんあなたが使用したいかもしれませんbatch便利、おそらく一部とここのドキュメント。たぶんサブシェルまたはそれ自体を実行したいかもしれませんbash

たぶん明確で合理的な実行がbash非常に役に立つかもしれません。bashPuttyセッションで実行してみましたか?複数のネストされたシェルを持つことも、一部を実行することもできます。その他パテセッションのシェル(例fish:...)

Linuxプログラミングについてもっと読むことを検討する必要があります(おそらく古いアルカリ性ホスファターゼ;あなたはまた見ることができますはじめに(2))。以下についてもっと読むことができます。オペレーティングシステム、例えばオペレーティングシステム:3つの簡単な部分

シェルの状態は次のとおりです。いいえ 持続性。確かに、起動ファイルたとえば、$HOME/.bashrc各対話型シェルの起動時に実行されるコマンドが含まれます。これにより、「永続」設定を$HOME/.bashrcファイルにコマンドとして挿入できますexport

Unixシェルは一般的なプログラムです(次を使用してログインシェルを変更できます)。chsh(1);に新しいシェルをリストする必要があるかもしれません/etc/shellsシェル(5))。満足できない場合は、bash他のシェルを使用できます(例:扱いにくいまたはなど...)そして、独自のシェルを書くことができます(おそらくRust、C ++、Ocaml、C、Goなどのいくつかのコンパイルされた言語を使用して)。あなたの殻はほんの一部でなければなりません非常に低い周波数実行可能。

(実際に独自のシェルを作成することは非常に便利な練習であり、多くのことを理解するのに役立ちます。または、少なくとも一般的に使用されるいくつかの既存のシェルのソースコードを研究するのに役立ちます。フリーソフトウェア、おそらく次のように小さいかもしれませんウエストバンド)

また、いくつかのコマンドをグループ化することを検討することもできます。シェルスクリプトをクリックしてからputtyセッションでスクリプトを実行します(対話型の場合がありますbash)。

おすすめ記事