sudo apt-get remove [write]是否可以销毁我的Ubuntu?


59

我想删除我的“写”应用程序,所以我在一个网站上找到了它:删除包类型:

sudo apt-get remove [package_name]

所以我输入:

sudo apt-get remove [write]

之后,我同意了提示:“是的,按照我说的做!” 或类似的东西。瞧!我的Ubuntu正在删除!谁能告诉我为什么?


29
关于阅读完整输出的可教的时刻。我们许多人曾经做过类似的事情。
user535733

7
如果您不确定会发生什么,一个很好的提示是使用该标志--simulate-s下面apt或下面的标志apt-get-示例:sudo apt -s remove php7.2-pspell实际上并未删除该标志。仅向您显示将删除/受影响的内容(如果已安装)。与“安装”相同。
bshea

touch w首先为自己省去一些悲伤;-)。
斯蒂芬·基特

@ B.Tanner我很高兴听到我的回答确实有所帮助,而不仅仅是两极分化。如果您还有其他(或其他)问题,或者只是想打个招呼,我们总是欢迎您在AU一般聊天室中!
甜点

也是有关手册页中的符号约定的一课。
克莱里斯(罢工)-

Answers:


92

删除名为的软件包的正确命令write是:

sudo apt remove write

[write]是一个与字符“ w”,“ r”,“ i”,“ t”和“ e”匹配的字符集,并且通过子字符串by进行匹配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
评论不作进一步讨论;此对话已转移至聊天
托马斯·沃德

15

要补充其他人所说的内容,您会经常看到博客作者在其帖子中使用的语法。

在编写有关如何使用命令的文档时,使用了相当一致的标准。在每个手册页中,您将看到几乎相同的结构。

如果某些内容是可选的,则通常放在方括号中。ls [folder](您不需要给ls文件夹,但是可以。因此,是可选的)。

如果是文件电子邮件,通常会在尖括号中看到它。<likeThis.php>

如果您可以在有限数量的事物(例如,月份)之间进行选择,则会在大括号中看到以下内容:{September,October,November,December}

使用这些中的任何一个,您可能会看到...哪个表示可以给出多个。

最后,如果绝对必须执行某些操作,则将看到其文档已列出并可能带有下划线。例如,man mvmv的手册说:

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

从技术上讲,程序包名称(写)不是命令的必需部分。试试吧。apt-get installapt-get remove只会成功运行并退出程序。这是它可以在该博客的括号中显示的原因之一。


9

在进行之前sudo apt-get,进行模拟是明智的:

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

如果已安装在系统上,则有将近65,280个软件包可以删除。是正则表达式匹配的搜索模式, 如果包含以下内容,则会选择每个包:[write]

  • 字母write

输出通过传递到Word Count命令| wc -l。的输出线apt-get被抑制wc。该-l开关指示wc到行只打印计数,而不是字数或字符数。

通过-s标志指定仿真。您也可以使用该--simulate标志来提高可读性。模拟的另一个优点是,您不需要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 ....)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.