Может ли 'sudo apt-get remove [write]' уничтожить мой Ubuntu?

Я хотел удалить свое приложение для записи, поэтому я нашел это на сайте: Чтобы удалить тип пакета:

sudo apt-get remove [package_name]

Я набрал:

sudo apt-get remove [write]

. А потом я согласился на подсказку: «Да, делай, что я говорю!» или что-то подобное. И вуаля! Моя Ubuntu удалялась! Кто-нибудь может сказать мне, почему?

59
задан 11 May 2019 в 04:33

3 ответа

Перед выполнением sudo apt-get целесообразно провести симуляцию:

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

Существует почти 65 280 пакетов, которые могут быть удалены , если [ 1119] установлено в вашей системе. [write] является шаблоном поиска для соответствия регулярному выражению , в результате чего выбирается каждый пакет, если он содержит:

  • Буква w или r или i или [ 117] или e

Выходные данные передаются в команду 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 ....)
0
ответ дан 11 May 2019 в 04:33

Чтобы добавить к тому, что сказали другие, вы увидите синтаксис, который блоггер использовал в своем сообщении довольно часто.

Существуют довольно непротиворечивые стандарты, которые используются при написании документации о том, как использовать команды. На каждой странице руководства вы увидите почти одинаковую структуру.

Если что-то является необязательным , оно обычно указывается в скобках. ls [folder] (вам не нужно давать ls папку, но вы можете. Таким образом, необязательно).

Если что-то является файлом или электронной почтой , вы обычно увидите это в угловых скобках. <likeThis.php>

Если у вас есть выбор между конечным числом вещей (т. Е. Месяцы), вы увидите это в скобках, например: {September,October,November,December}

С любым из них вы можете увидеть ..., что означает, что кратное из этого может быть дано.

И, наконец, если что-то является абсолютно обязательным, вы увидите его документацию в списке и, вероятно, подчеркнутый. Например, man mv, руководство mv, гласит:

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

Технически говоря, имя пакета (запись) не является обязательной частью команды. Попытайся. apt-get install или apt-get remove просто запустятся и успешно выйдут из программы. Это одна из причин, по которой он может быть представлен в скобках на этом блоге.

0
ответ дан 11 May 2019 в 04:33

Правильная команда для удаления пакета с именем write:

sudo apt remove write

[write] - это набор символов, соответствующий символам «w», «r», «i», «t» и «е», а так как сопоставление выполняется подстрокой из 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 сломал свою систему хотя бы один раз, на самом деле, это забавно, если вы спросите меня.

Дальнейшее чтение

0
ответ дан 11 May 2019 в 04:33

Другие вопросы по тегам:

Похожие вопросы: