'sudo apt-get remove [write]'가 우분투를 파괴 할 수 있습니까?


59

'쓰기'앱을 제거하고 싶었으므로 사이트에서 이것을 찾았습니다. 패키지 유형을 제거하려면 :

sudo apt-get remove [package_name]

그래서 나는 타이핑했다 :

sudo apt-get remove [write]

그리고 나서 나는 프롬프트에 동의했다. '네, 내가하는 말을하십시오!' 또는 그런 것. 그리고 짜잔! 우분투가 삭제되었습니다! 아무도 이유를 말해 줄 수 있습니까?


29
완전한 출력을 읽는 것에 관해 가르치는 순간. 우리 중 많은 사람들이 비슷한 일을 한 번했습니다.
user535733

7
당신은 무슨 일이 일어날 지 확실하지 않은 경우 좋은 팁은 플래그를 사용하는 것입니다 --simulate또는 -s아래 aptapt-get: 예 - 첫번째 sudo apt -s remove php7.2-pspell실제로 제거되지 않습니다. 제거 / 영향 (설치된 경우)을 보여줍니다. '설치'와 동일합니다.
bshea

touch w먼저 슬픔을 구하기 위해 ;-).
Stephen Kitt

@ B.Tanner 내 대답이 실제로 편광 대신 도움이된다는 것을 알게되어 기쁩니다. 추가 질문 (또는 다른 질문)이 있거나 인사를하고 싶은 경우 AU 일반 대화방 에서 언제든지 환영합니다 !
디저트

매뉴얼 페이지의 표기법에 대한 좋은 교훈도 있습니다.
chrylis

답변:


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 install또는 apt-get remove프로그램을 성공적으로 실행하고 종료합니다. 그것이 블로그에서 괄호 안에 표시 될 수있는 한 가지 이유입니다.


9

를 수행하기 전에 sudo apt-get시뮬레이션을 수행하는 것이 좋습니다.

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

시스템에 설치된 경우 제거 수 있는 거의 65,280 개의 패키지가 있습니다. 다음을 포함하는 경우 모든 패키지가 선택되도록 하는 정규식 일치 검색 패턴입니다 .[write]

  • 편지 w또는 r또는 i또는 t또는e

을 사용하여 단어 개수 명령으로 출력이 파이프됩니다 | 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 ....)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.