「sudo apt-get remove [write]」でUbuntuを破壊できますか?


59

「書き込み」アプリを削除したかったので、サイトでこれを見つけました:パッケージタイプを削除するには:

sudo apt-get remove [package_name]

だから私は入力しました:

sudo apt-get remove [write]

そしてその後、私はプロンプトに同意しました:「はい、私が言うことをしてください!」またはそのようなもの。そして出来上がり!Ubuntuが削除されていました!誰に理由を教えてもらえますか?


29
完全な出力を読むことについて教えられる瞬間。私たちの多くは、似たようなことを一度行っています。
user535733

7
あなたは何が起こるかわからない場合は良いチップがフラグを使用することである--simulate-saptapt-get:例-最初のsudo apt -s remove php7.2-pspell実際には削除されません。削除/影響を受けるものを表示するだけです(インストールされている場合)。「インストール」でも同じです。
bshea

touch w最初に自分の悲しみを救います;-)。
スティーブンキット

@ B.Tanner私の答えは、単に偏光するのではなく、実際に役立つと聞いてうれしいです。さらなる(または他の)質問がある場合、または単に挨拶したい場合は、AUの一般的なチャットルームでいつでも歓迎します!
デザート

また、manページの表記規則についての良いレッスンです。
クリリス

回答:


92

指定されたパッケージを削除する正しいコマンドwriteは次のとおりです。

sudo apt remove write

[write]は、文字「w」、「r」、「i」、「t」、および「e」に一致する文字セットであり、一致はによる部分文字列によって行われaptます。あなたが走ったコマンドは、このようにマッチした、その中にこれらの文字のいずれかですべてのパッケージを当然のものであり、多くのaptの出力リストを引用するには、重要なものだけを引用します。

WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  apt adduser (due to apt) gpgv (due to apt) ubuntu-keyring (due to apt) libapt-pkg5.0 (due to apt) libc6 (due to apt) libgcc1 (due to apt) libgnutls30 (due to apt) libseccomp2 (due to apt)
  libstdc++6 (due to apt) base-files base-passwd libdebconfclient0 (due to base-passwd) bash libtinfo5 (due to bash) debianutils (due to bash) bsdutils libsystemd0 (due to bsdutils) coreutils
  libacl1 (due to coreutils) libattr1 (due to coreutils) libselinux1 (due to coreutils) dash dpkg (due to dash) diffutils libbz2-1.0 (due to dpkg) liblzma5 (due to dpkg) libzstd1 (due to dpkg)
  zlib1g (due to dpkg) tar (due to dpkg) e2fsprogs libblkid1 (due to e2fsprogs) libcom-err2 (due to e2fsprogs) libext2fs2 (due to e2fsprogs) libss2 (due to e2fsprogs) libuuid1 (due to e2fsprogs) fdisk
  libfdisk1 (due to fdisk) libmount1 (due to fdisk) libncursesw5 (due to fdisk) libsmartcols1 (due to fdisk) findutils grep libpcre3 (due to grep) install-info (due to grep) gzip hostname init
  systemd-sysv (due to init) init-system-helpers (due to init) perl-base (due to init-system-helpers) libc-bin login libaudit1 (due to login) libpam0g (due to login) libpam-runtime (due to login)
  libpam-modules (due to login) mount util-linux (due to mount) ncurses-base ncurses-bin sed sysvinit-utils libudev1 (due to util-linux)
0 upgraded, 0 newly installed, 2503 to remove and 0 not upgraded.
After this operation, 7238 MB disk space will be freed.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'

複数の警告と文字通り入力する必要性

はい、私が言うとおりにします!

システムのパッケージマネージャaptがそれを完全に実行できるため、システムを破壊しないようにするためのセキュリティ手段が用意されています。実行するコマンドは、sudo慎重かつ思慮深く実行する必要がありますが、心配しないでください。Ubuntuの経験豊富なユーザーのほぼ全員が、少なくとも1回はシステムを破壊しました。

参考文献


1
コメントは詳細なディスカッション用ではありません。この会話はチャットに移動さました
トーマスウォード

15

他の人が言ったことに追加するために、ブロガーが彼らの投稿で頻繁に使用した構文を見るでしょう。

コマンドの使用方法に関するドキュメントを作成するときに使用されるかなり一貫した標準があります。すべてのマニュアルページに、ほぼ同じ構造が表示されます。

何かがオプションの場合、通常は括弧で囲まれます。ls [folder](lsにフォルダーを与える必要はありませんが、可能です。したがって、オプションです)。

何かがファイルまたはメールである場合、通常は山括弧で表示されます。<likeThis.php>

あなたが持っている場合は、物事の有限数の選択(すなわちヶ月間)を、次のように括弧の中に表示されます:{September,October,November,December}

これらのいずれか...を使用すると、これが複数指定できることを示すことがわかります。

最後に、何かが絶対に必須である場合、そのドキュメントが一覧表示され、おそらく下線が表示されます。たとえばman mv、mvのマニュアルには次のように書かれています。

mv [OPTION]... [-T] SOURCE DEST

技術的に言えば、パッケージ名(書き込み)はコマンドの必須部分ではありません。それを試してみてください。apt-get installまたはapt-get remove単にプログラムを正常に実行して終了します。それが、そのブログの括弧内に表示できる理由の1つです。


9

を実行する前にsudo apt-get、シミュレーションを実行するのが賢明です。

$ apt-get remove [write] -s | wc -l
65280

システムにインストールされている場合、削除の対象となる65,280近いパッケージがあります。以下を含む場合、すべてのパッケージが選択される正規表現一致の検索パターンです 。[write]

  • 手紙wまたはrまたはiまたはtまたはe

出力はを使用してWord Countコマンドにパイプされます| wc -l。からの出力行はapt-getによって抑制されwcます。-lスイッチは指示wcのみ印刷行の数ではなく単語数や文字数に。

シミュレーション-sフラグで指定されます。--simulateフラグを使用して読みやすくすることもできます。シミュレーションのもう1つの利点は、sudo私たちの多くが時々危険になる可能性があることを学んだパワーが必要ないことです。

lessコマンドへのパイプ出力に関係するパッケージ名のアイデアを得るには:

$ apt-get remove [write] --simulate | less

NOTE: This is only a simulation!
      apt-get needs root privileges for real execution.
      Also keep in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Reading package lists...
Building dependency tree...
Reading state information...
Package 'libpam-pin' is not installed, so not removed
Package 'activity-log-manager-common' is not installed, so not removed
Package 'libnet-patricial-perl' is not installed, so not removed
Package 'pe' is not installed, so not removed

   (.... Plus 65,269 more packages ....)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.