一日を台無しにする、一見無害に見える 4 つの Linux コマンド
Linux を使用している場合は、最終的にはターミナルに慣れておきたいと思うでしょう。ワークフローを合理化し、グラフィカル アプリでは実現できないまったく新しいコンピューティング方法を切り開きます。これには、システム管理と自動化のための Bash スクリプトの作成、または SSH 経由でのリモート マシンの管理が含まれます。
とはいえ、始めたばかりでオンライン ガイドや AI チャットボットに頼っている場合は、特に注意する必要があります。一部のコマンドは完全に無害に見えますが、数秒でシステムを破壊します。ここでは、一見何の疑問も抱かないかもしれないが、あなたの一日を完全に台無しにしてしまう可能性がある、無害に見えるコマンドのトップ 5 を紹介します。
rm -rf ~ /ダウンロード/old
あなたがこれまで犯した中で最も高価なタイプミス
このコマンドの従来の危険なバージョンは次のようになります。
sudo rm -rf /
ここでは、基本的に削除を実行しています(rm) コマンドを昇格された特権で実行し、再帰的に (-r)そして強制的に(-f)以下のものをすべて削除します /、ファイルシステムのルート。
したがって、明らかに、 rm -rf 危険な場合もありますが、決して触れてはいけない禁止されたコマンドではありません。実際、これはディレクトリとその中のすべてを削除する標準的な方法です。削除したい古いダウンロード フォルダーがあるとします。それを行う最も簡単な方法は次のとおりです。
rm -rf ~/Downloads/old
問題は、スペースを 1 つ間違えただけですべてが変わってしまう可能性があることです。正しいコマンドでは、チルダ (~) とパスが 1 つの連続した文字列を形成します。 ~/ダウンロード/古い、シェルはホーム ディレクトリの下のパスに展開します。 /home/dibakar/ダウンロード/古い。
しかし、誤ってチルダの後にスペースを追加したとします。
rm -rf ~ /Downloads/old
これで、シェルは 2 つの別々の引数を認識します。 1つ目は ~、ホーム ディレクトリ全体に展開されます。したがって、このコマンドは、ドキュメント、写真、構成ファイル、その他ホーム ディレクトリ内のすべてのものを喜んで消去し、指定した別のパスに移動します。
echo “新しい行のテキスト” > imp.config
ファイルへの追加と上書きの違い

ターミナルで作業している場合、構成ファイルに新しい行を追加する 1 つの方法は、Nano や Micro などのテキスト エディターでファイルを開いて入力することです。ただし、より迅速な方法は、1 つのコマンドで同じ行をファイルに直接エコーすることです。
echo "a new line of text" >> imp.config
このコマンドは追加します 「新しいテキスト行」 の底まで imp.config ファイル。
ただし、急いでいたために次のように誤って入力したとします。
echo "a new line of text" > imp.config
これで、古いファイルの内容が置き換えられました imp.config ファイルを 1 行だけ含む新しいファイルに置き換えます。 「新しいテキスト行。」 唯一の違いは、「>>」の代わりに「>」を入力したことです。
これは、「>>」演算子が追加を意味するためです。既存の内容はそのままにして、コマンドの出力をファイルの末尾に追加します。一方、単一矢印「>」演算子は、書き込みまたは上書きを意味します。新しいファイルを作成してそこに出力を書き込みます。または、同じ名前のファイルがすでに存在する場合は、その内容を新しい出力で置き換えます。
それで、言ってください imp.config 元々は注意深く書かれた 10 行の設定があり、次のコマンドを実行します。 エコー コマンドには「>>」の代わりに「>」を使用してください。その10行は消えています。ファイルには、最後のコマンドで入力した 1 行が正確に含まれています。私は個人的にこれを自分に対して行いました .bashrcには、時間をかけて何百行ものカスタマイズが蓄積されていました。
「」とは言っていません。>” 「」よりも危険です>>」。各演算子には適切な役割があり、それらを適切に使用できるように違いを理解することが重要です。
sudo ufwを有効にする
それは自分自身を自分の家から締め出すのと同じです
このコマンドは紙に書いてあるのと同じくらい無害です。これはファイアウォールを有効にします。これはセキュリティの観点から見て本当に良い習慣であり、新しいシステムを構成するときの多くの日常的なセットアップ チェックリストの一部です。
SSH 経由で実行すると問題が発生します。
たとえば、リモート マシンをセットアップし、次のように入力するとします。 sudo ufwを有効にする ファイアウォールを開始します。 SSH 接続がまだ許可されていない場合 (新しいセットアップではその可能性は低いですが)、ファイアウォールによって追い出され、再接続できなくなります。これを修正するには、コンソールまたはマシンへの物理的なアクセスが必要です。
マシンが隣の部屋にある場合、これは軽い迷惑になる可能性がありますが、別の都市からサーバーを管理している場合、またはさらに悪いことに、休暇中に自宅のラボにリモート接続している場合は大惨事になります。
この事故を回避するには、まず SSH サービスがファイアウォールを通過できるようにします。 sudo ufw で ssh を許可します (またはカスタム SSH ポートを明示的に許可して)、その後でのみ実行します sudo ufwを有効にする。これにより、ファイアウォールがアクティブ化される前にファイアウォール ルールが作成されるため、SSH 接続はファイアウォールを通過し続けることができます。
これはUFWに限ったことではありません。同じ一般的な問題が、firewalld などの他のホストベースのファイアウォールでも発生する可能性があります。
:():& ;:
読めないコマンドは貼り付けないでください
最後になりましたが、フォークボムがあります。と同じくらい有名です rm -rf Linux コミュニティではこれが使用されていますが、初心者の場合は、その存在を知らず、不用意に入力してしまう可能性があります。実際、私はこれがオンライン フォーラムでいたずらとして使用されているのを個人的に見たことがあります。
誰かが、退屈なデフォルトのテキストの代わりに、派手なレタリング (フォントの合字) を端末にレンダリングする方法を尋ねました。そして、この邪悪な人物は、フォーク ボムに入るように彼らに言いました。表面的には、奇妙な記号の文字列がそれ自体を派手な文字としてレンダリングすることはほとんど論理的であるように感じられます。ただし、実際にはシステム リソースが急速に消費され、すべての速度が異常に遅くなり、システムが使用できなくなる可能性があります。
その理由を理解するために、その仕組みの概要を以下に示します。
- :() 「:」という名前の関数を宣言します。
- : 関数本体です。関数が実行されるたびに、「:|:&」が実行されます。
- :|:& 関数への 2 つの呼び出しを含むパイプラインを作成し、そのパイプラインをバックグラウンドで実行します
- ; 関数定義を終了します。
-
決勝戦 : 初めて関数を呼び出します。
したがって、これは本質的には自分自身を呼び出し続ける関数です。最初の呼び出しが 2 になり、次に 2 が 4 になり、次に 8 になり、次に 16 になり、そのまま継続します。プロセスの数は、システムが限界に達するまで非常に急速に増加します。速度が大幅に低下したり、システムが完全に応答しなくなったりすることがあります。
コマンド自体はファイルを削除したりマルウェアをインストールしたりしませんが、結果として発生したロックアップから回復するにはハード再起動が必要になります。システムの更新、バックアップ、ファイル転送中など、システムがデータの書き込み中である場合、これにより問題が発生する可能性があります。同様に、開いたものの保存しなかったものは失われる可能性があります。壊滅的な事態になることはめったにありませんが、迷惑行為になることは確かです。
このテーマについてさらに詳しく知りたい方は以下をご覧ください