Bilgisayarınızı çökertmek için gerçekten Terminal'i kullanabilir misiniz?


48

Terminal'i anlamayan insanlar, genellikle emirlerini bozabilecekleri ve bilgisayarlarını çökertebilecekleri korkusuyla kullanmaktan korkuyorlar. Terminal'i daha iyi bilenler bunun böyle olmadığını bilir - genellikle Terminal sadece bir hata verir. Ama aslında bilgisayarınızı çökertecek komutlar var mı?

UYARI: Özellikle bu yazın veya kopyalayıp yapıştırarak takdirde verileri kaybedebilirsiniz sudove rmkomutlar.


Bir adam yanlışlıkla tüm şirket bilgisayarlarını bir satırda sildi, birkaç yıl önce bu sitede gördüm, sahte idi, ancak yine de kolayca olabilirdi. Onu bulabilirsem bağlantı kuracağım.
Noah Cristino

7
Terminal, programları çalıştıran komut satırı arayüzüdür . Bir grafiksel kullanıcı arayüzüne bir alternatiftir . Her ikisinden de keyfi programlar çalıştırabilirsiniz. Bu nedenle sorunuz çok fazla bir anlam ifade etmiyor; Bunun yerine şunu sormalısınız: Bir program çalıştırarak bilgisayarınızı çökertebilir misiniz?
jamesdlin

"Kaza" ile ne demek istiyorsun? Terminalde çalışan komutlar çoğu zaman güçlü olabilir ve çoğu zaman Mac OS X GUI komutlarının aksine, "ne demek istediğinizi değil, ne anlama geldiğini" sormaz. Ama kasıtlı olarak denemeden , makineyi çarpma ihtimaliniz yoktur . (Bilerek kasıtlı olarak yapmanın birkaç yolunu düşünebilirim)
Josh

1
Ağdan yapıştırma komutları çok tehlikeli olabilir . Makinenizi asma ihtimalinden bağımsız olarak. En azından belli belirsiz anladığınız komutları yazmak yine de tehlikeli olmamalı. Aksi halde, bilgisayarınızı vidalamanın birçok yolu vardır. GUI'deki rasgele sistem yapılandırma ayarlarına tıklamak gibidir ancak GUI'de en azından olasılıklar daha sınırlıdır. komutları yapıştırma tehlikesiyle - görsel olarak kopyalandığını gördüğünüz metin kopyalanan gerçek metinden farklı olabilir, bu nedenle karıştırılmış kötü amaçlı komutlar içerebilir.
akostadinov

Yanıtlar:


51

Bir bilgisayarı çökertmenin bir yolu çatal bomba denilen bir şey yapmaktır .

Bunu bir unix-sytem üzerinde şu şekilde çalıştırabilirsiniz:

:(){ :|: & };:

İşletim sistemi o kadar meşgul olana kadar işlemleri tekrarlı bir şekilde ortaya çıkaran bir komut, artık herhangi bir eyleme yanıt vermeyecek.


49
@bunyaCloven komutunuzu doğru anladıysam, sormadan tüm klasörleri kaldırmak için bir komuttur , işe yararsa çok tehlikelidir . Keşke bunun için bir uyarı notu yazsaydın.
Andrew T.

80
@AndrewT. İnsanlar internette buldukları rastgele komutları yazarken kesinlikle kullanmamalı. (özellikle "bilgisayarınızı terminalden
John Hamilton

34
OP, silme işleminden değil terminalden çarpma talebinde bulundu.
piersb

16
Çatal bombası, Mac OS X'te işlem sayısı için üst sınırlara sahip olduğundan asgari düzeyde hasar verecektir.
GDP2,

7
yerine @bunyaCloven ;bir ile &ve aynı anda tüm dosyaları ve çatal bomba kaldırmak için olsun ve ilk sistem kırar görmek!
Muzer

41

Bilgisayarı çökertmek derken neyi kastettiğinizden emin değil - 'bilgisayarı kullanılamaz hale getirmek' şeklinde bir ifade verirseniz, evet. Elbette, tüm bunlar tek bir başıboş komuttur - sadece ne yaptığınız hakkında net bir şekilde düşünmediğiniz bir an, düşünmeden konuştuğunuz zamana benzer ve hasar çok büyük ve neredeyse anında olabilir. Klasik örnek:

$ sudo rm -rf /

Bu komutun yalnızca bir saniye bile çalışmasına izin verirseniz, sisteminizi önyüklenemez hale getirecek kadar silebilir ve muhtemelen geri dönüşü olmayan veri kaybına neden olabilir. Yapma


2
Ve sadece neden yeniden ifade etmeyi açıklığa kavuşturmak istediğimi ... paylaşmak için geleneksel anlamda bilgisayarı 'çökertmek' - kilitlemek için - CPU'ya cevap veremeyecek kadar çalışmanız gerekecek. Diğer işlere zamanında ... .. grafiklerin güncellenmesi ve imleci hareket ettirmek gibi. Eminim bunu komut satırından yapmanın bir yolu vardır.
Harv,

6
@DonielF -r, dizindeki dosyaları tekrar tekrar silmek anlamına gelir. -fVerilen dosyanın izinlerinden bağımsız olarak onay istemediğiniz gibi "zorla" anlamına gelir. /dosya sisteminin kök dizinidir, bu da tipik dosyalar gibi davranmayan bazı özel dosyalar dışında, her şeyi ve her şeyi yok edeceği anlamına gelir. Ayrıca, sisteminizi root / admin izinleri olmadan çökertecek kısa bir komut bulmakta zorlanacaksınız.
GDP2

11
rm -rf /Bir süre önce denedim ve rmkök kaldırmak istiyorsanız, böyle bayrak kullanın. Veri kaybı olmadı. Görünüşe göre kör bir şekilde çalışmaya karşı bir güvenlik koruması var rm -rf /.
alexyorke

27
- no-preserve-root bayrağı 2006’dan bu yana amaçlandığı gibi çalışması için gerekli oldu
Encaitar

6
İşte bunun gerçekten gerçekleştiği gerçek bir dava - yasal rm -rf
olana

30

Ne yaptığınızı ve bazı sabit disklerin yedeğini almaya çalıştığınızı bilmediğinizi varsayalım.

dd if=/dev/disk1 of=/dev/disk2 

Bunları karıştırırsanız (eğer ve ile değiştirirseniz), eski verilerin bulunduğu taze verilerin üzerine yazacaktır, soru sorulmaz.

Benzer araçlar, arşiv araçlarıyla da gerçekleşebilir. Ve açıkçası çoğu komut satırı aracı ile.

Sisteminizin çökmesine neden olacak bir karakter karışımı örneği istiyorsanız, şu senaryoyu inceleyin: Geçerli dizindeki tüm dosyaları bir başkasına taşımak istiyorsanız:

 mv -f ./* /path/to/other/dir

./Şimdiki dizini göstermek için kullanmayı öğrendiğin gerçeğini kabul edelim . (Yaparım) Eğer noktayı atlarsanız, tüm dosyalarınızı taşımaya başlayacaktır . Sistem dosyalarınız dahil. Şanslısın ki, böyle bir şey yapmadın. Fakat 'sudo -i' ile bir daha asla sudo yazmak zorunda kalmayacağınız bir yerde okursanız, şimdi root olarak giriş yapmış olursunuz. Ve şimdi sisteminiz kendi gözlerinizin önünde kendini yiyor.

Fakat yine de, değerli kod dosyalarımın üzerine çöp atmak gibi şeyler olduğunu düşünüyorum, çünkü bir karakteri karıştırdım ya da parametre sırasını karıştırdığım için daha fazla sorun.

Diyelim ki gcc'nin ürettiği assembler kodunu kontrol etmek istiyorum:

gcc -S program.c > program.s

Diyelim ki zaten bir programım var ve TAB tamamlamayı kullanıyorum. Acelem var ve iki kez TAB'ı unutma:

gcc -S program.c > program.c

Şimdi benim program.c içinde assembler kodu var ve artık c kodu yok. Bu, en azından bazıları için gerçek bir gerilemedir, ancak diğerlerine sıfırdan başlayarak başlar.

Bence bunlar gerçek "zarar" verebilecek olanlardır. Sistemimin çökmesi umrumda değil. Verilerimin kaybolmasını önemserdim.

Ne yazık ki bunlar, terminali uygun önlemlerle kullanmayı öğrenene kadar yapılması gereken hatalardır.


16
Son noktanız, herkesin sürüm kontrolünü kullanmasının nedenlerinden biri
Darren H,

4
Bir keresinde gcc program.c -o program.c, sekme tamamlama işlemi için kullandığım bir programı yok ettim . Ondan sonra versiyon kontrolünü dini olarak kullanmayı öğrendim.
nneonneo

2
Şimdiye kadarki en iyi cevap, basit bir yazım hatası sonucu olabilecek ve yine de ciddi bir hasara yol açabilecek yasal görünümlü komutlar yayınlamak .
gaazkam

1
"Şimdi programcımda assembler kodu var." Hayır. Hiçbir şeyin yok. Yönlendirme, GCC açmadan önce dosyayı kesmiştir.
muru,

1
Ah dostum, GCC’deki kullanıcı arayüzü iyileştirmesini ekledikleri için gerçekten çok mutluyum. Son yıldırımlığımdan beri bir süre geçti, ama bir dahaki sefere biraz korumam olacağıma sevindim.
nneonneo

28

Bir çekirdek paniğine neden olmak, şimdiye dek burada gördüğüm diğer cevaplardan daha fazla çökmeye benzer:

sudo dtrace -w -n "BEGIN{ panic();}"

(kod alınan burada ve Apple'ın kendi belgelerinde de bulunan )

Ayrıca deneyebilirsiniz:

sudo killall kernel_task

İkincisinin gerçekten çalıştığını doğrulamamıştım (ve şu anda açık bir işim olduğu için niyetim yok).


2
Sadece bir tane 10.12.3’te ikinci olanı denedim ve sadece şöyle diyor:No matching processes were found
Alexander O'Mara

3
Ayrıca, ilki işe yaramadı, en azından SIP etkinse,dtrace: system integrity protection is on, some features will not be available dtrace: description 'BEGIN' matched 1 probe dtrace: could not enable tracing: Permission denied
Alexander O'Mara

@ AlexanderO'Mara İkinci komuttaki sonuçlarınıza pek şaşırmayın; Mac OS X'in çekirdek işlemlerini bu şekilde gerçekleştirmenize izin vermeyeceğini düşündüm. İlk komutun sonuçlarının, dtraceSIP tarafından etkin bir şekilde kısaltıldığı
GDP2

1
kernel_tasknormal bir işlem değil. Ölümsüzdür; Kendi hatalarından başka bir şey öldürülemez (buna KP denir ve tüm makineyi yıkar). kernel_task'nin PID ismen 0 olmakla birlikte, bu tedarik eğer kill(pid, sig)sistem çağrısı manuel sayfa varsa pid, sonra 0 eşittir sigçağıran sürecin süreç grubundaki her sürece gönderilir. . Yani sadece kernel_taskbir sinyal gönderemiyorsunuz .
Iwillnotexist Idonotexist

@IllillexistIdonotexist Evet, olacağı gibi düşündüm; bilgi için teşekkürler olsa. Aklında olması iyi şeyler.
GDP2,

19

Modern macOS, makinenizi ayrıcalıklı olmayan bir kullanıcı olarak (örneğin, kullanmadan ) çökertmeyi gerçekten zorlaştırır sudo, çünkü UNIX sistemleri, binlerce kullanıcının tüm sistemi bozmasına izin vermeden işlemeyi amaçlamaktadır. Bu yüzden, neyse ki, makinenizi yok eden bir şey yapmadan önce genellikle sizden uyarılması gerekecek.

Ne yazık ki, bu koruma yalnızca sistemin kendisi için geçerlidir. Xkcd gösterildiği gibi, sürü var sen , root veya şifre sorar Sistem Bütünlüğü Koruması tarafından korunmaz olduğunu umurumda:

XKCD 1200

Bu yüzden, eğer dikkatli olmazsanız kullanıcı hesabınızı ve tüm dosyalarınızı mahvedecek tonlarca yazabileceğiniz şeyler var. Birkaç örnek:

  • rm -rf ${TEMPDIR}/*. Ortam değişkeninin yazıldığını anlayana kadar bu tamamen mantıklı görünüyor TMPDIR. TEMPDIRgenellikle tanımsızdır, bu da bunu yapar rm -rf /. Olmasa bile sudo, bu, genellikle ana klasörün tamamını içerecek şekilde, silme izniniz olan her şeyi mutlu bir şekilde kaldırır. Bunun yeterince uzun çalışmasına izin verirseniz, genellikle bunlara yazma izniniz olduğundan, makinenize bağlı herhangi bir sürücüyü de kopyalar.
  • find ~ -name "TEMP*" -o -print | xargs rm. findnormalde belirli kriterlere uyan dosyaları bulur ve yazdırır. Bu olmadan, -obekleyeceğiniz her şeyi yapar ve silen her dosyayı siler TEMP*( yolda boşluklar olmadığı sürece ). Ancak, -o"veya" ("çıktı" değil diğer birçok komut için olduğu gibi!), Bu komutun aslında tüm dosyalarınızı silmesine neden olur. Aylak.
  • ln -sf link_name /some/important/file. Bu komutun sözdizimini ara sıra yanlış alıyorum ve gereksiz bir sembolik bağlantıyla önemli dosyanızın üzerine yazmaktan mutluluk duyacağız.
  • kill -9 -1 Programlarınızın her birini öldürür, sizi hızlı şekilde kapatır ve muhtemelen veri kaybına neden olur.

3
FYI (bunu okuyanlar için) borulardan çok daha güvenli olan findbir -deletetartışmaya sahipxargs rm
Josh

Modern MacOS gerçekten daha fazla darbeye dayanıklı mı? Bu sistemlerin çoğu tek bir kullanıcı içindir. Gerçekten aklı başında maxprocs / cpulimits var mı? Bir referans verebilir misiniz?
user2497

1
Sen, bütün insanların, hasar iyi bilemez ln -sf... yapabilir ve nasıl :-) ondan kurtarmak için
Iwillnotexist Idonotexist

1
@Josh: Bunu işaret ettiğiniz için teşekkürler. Ve genel durumda, find -print0 | xargs -0dosya isimlerindeki garip karakterleri güvenli bir şekilde ele almak için kullanmak gerekir .
nneonneo

1
Kabul. Daha faydalı xargs tavsiyesi: <whatever> | xargs echo <something>önce, xargs'in hangi komutların çalışacağının komutlarını görmek için kullanın. xargs, CLI'nın neden bu kadar güçlü olduğuna harika bir örnektir: sinir bozucu onaylama ve el tutma olmadan birçok, bir çok öğede aynı anda çalışabilirsiniz ... sadece istediğiniz şeyi yapmasını söylediğinizden emin olun.
Josh,

16

Yapabileceğiniz bir başka (daha önce yanlışlıkla yapmış olduğum):

sudo chmod 0 /

Bu, kök sistem dışındaki tüm dosya sisteminize (tüm komutlar ve programlar anlamına gelir) erişilemez hale getirir. Bu, doğrudan root kullanıcısı olarak oturum açmanız ve dosya sistemini geri yüklemeniz gerektiği anlamına gelir; ANCAK, sudokomuta (veya bu konuda herhangi bir başka komutu giremezsiniz) erişemezsiniz . Tekli kullanıcı moduna geçerek, dosya sistemini ekleyerek ve geri yükleyerek komutlara ve dosyalara erişimi geri yükleyebilirsiniz chmod 755 /.

Eğer bu işlem tekrar tekrar yapılırsa chmod -R 0 /, sistem kullanılamaz hale gelir. Bu noktada uygun düzeltme, disk izinlerini onarmak için kurtarma bölümündeki Disk Yardımcı Programını kullanmaktır . Özyinelemeyle çalışması durumunda, dosya sisteminizin anlık görüntüsünü veya yedeğini geri yüklemek için daha iyi olabilirsiniz.


8
"Bunu düzeltebilirsiniz ... chmod 755 /" - Hayır, yapamazsınız. Pek çok dosya, güvenlik için veya hiç çalışması için 755'ten farklı izinler gerektirir. chmod 755 /sisteminizi güvensiz ve ince şekillerde bozacaksınız. Yalnızca tam kurtarma, chmod 0 /anlık görüntü geri yükleme, yedekleme geri yükleme ve / veya yeniden yükleme işleminden geçer.
marcelm

2
@ marcelm İyi nokta. Önerim kalıcı bir düzeltme olarak değil, yalnızca komutlara erişimi yeniden sağlamaktı. Bunu yansıtacak şekilde cevabımı güncelledim. Bildiğim kadarıyla, -Rbayrak kullanmadığınız sürece chmod özyinelemeli değil - bu yüzden alt dizinlerin izinlerinin etkilenmeyeceğini düşündüm?
musicman523

5
@ marcelm haklısınız, ancak gösterilen komut özyinelemeli değil , bu yüzden sadece /etkilenir.
Andrea Lazzarotto

Bir zamanlar sudo chmod -R 700 /yeni bir bilgisayar yaptım, çok daha güvenli olacağını düşündüm. Şaşırtıcı bir şekilde, açılış ve boş bir menü çubuğu ve boş bir masaüstü ile sona erdi. Başka hiçbir şey işe yaramadı, ancak kurtarma bölümünün Disk Yardımcı Programı Geri Yükleme İzinleri neredeyse her şeyi doğru ayarlamayı başardı!
nneonneo

2
@ marcelm Disk yardımcı programı, tam sistem geri yüklemesi olmadan bunu düzeltmesi gereken "Düzeltme İzinleri" seçeneğine sahip
Josh

10

Bu aramanın cevapları sudogeçersiz sayılmalıdır. Bunlar zaten sisteme idari erişim sağlamıştır.

Dene perl -e 'exit if fork;for(;;){fork;}'. OSX şimdi buna karşı bir miktar güvenceye sahip olabilir. Terminal uygulamasını ve alt işlemlerini sonlandırmak isteyip istemediğinizi soran bir elma balonu varsa, (neredeyse) iyisinizdir.

while true ; do cat /dev/zero > /dev/null & doneAyrıca çok kullanışlı, esp. Eğer yoksa perl.

for i in 1 2 3 4 ; do cat /dev/zero > /dev/null & donesadece küçük komik bir CPU yükleme testi yapacağız. Soğutucu ve fanınızın eşit durumda olup olmadığını kontrol etmek için çok iyi.


Bu bir Fork Bomb olarak bilinir ve sistemi kullanılamaz hale getirir ("çarpma" olarak kabul edilebilir) ancak kalıcı bir hasara neden olmaz. Ama bu iğrenç!
Josh

@Josh "ancak şu anda açık olmayan kaydedilmemiş işler dışında" kalıcı bir hasara neden olmayacaktır ".
reirab

@reirab Josh ifadesine "hepsini yakalama" ihtimalini ekledi. Ancak MacOS çoğunlukla fotoğrafları ve videoları düzenlemek içindir. Adobe programlarının otomatik otomatik kaydetme özelliği yok mu?
user2497, 16

1
Ayrıca, kaydedilmemiş işler kaydedilene kadar her zaman risk altındadır. Bilgisayarınız kullanılamaz duruma getirilirse, açık olan hiçbir şeyi kaydedemezsiniz :)
Josh

@Josh MacOS eşyaları kurtarmak çok kolay. Her zaman 🍎-S. 'Olası' 👋🏾
user2497

7

Emin olun, yedeğiniz olduğundan emin olun ve ilgilendiğiniz dosyaları kaydedin, ardından halt

Daha sonra sudoroot olarak kullandığınızı varsayarsak , Mac çökecektir.

Komut satırından en büyük risk veri kaybıdır. MacOS arayüzü, insanları şaşırtmamak, verilerini veya ayarlarını veya uygulamalarını parçalamamak için onlarca yıldan beri tasarlanmıştır. MacOS grafik arayüzü aynı zamanda öğrenme eğrisini (dik bir) güvenli hale getirmek ve kabuk komut dosyası oluşturma konusunda uzmanlaşmak için de mevcuttur.

Bu korumaları kaybedersiniz, bu yüzden insanları terminal uygulaması veya ssh ile başlayanlara karşı uyarıyorum. Bildiğiniz bir yedeğiniz varsa, işe yaradığını ve geri yükleme yapmak için zaman ve güven / beceriye sahipseniz, o zaman dalmalı, öğrenmeli ve hatta bir şeyler kırmalısınız.


3
“... ve hatta bir şeyleri bozmak” dedin, bu sanal bir makinede riskli şeyler yapmak için iyi bir kullanımdır. :)
user3439894

1
Bu nasıl çökecek? Sadece sistemi hemen kapatır. Hatta çekirdek arabelleklerini temizler, böylece (kaydedilmiş) veri kaybı olmaz. developer.apple.com/legacy/library/documentation/Darwin/…
Josh

7
sudo kill -9 -1  

Yanlışlıkla kill -9 -1perl betiğinde, root olarak çalışarak çalıştım . Güç kablosunu çekmek kadar hızlıydı. Yeniden başlatıldığında, sunucu bir dosya denetimi yaptı ve düzgün çalışmaya devam etti.

sudo kill -9 -1Komut satırında bu komutu hiç denemedim . "-1" işlem kimliği "arayanın işlem grubuna ait tüm işlemleri öldür" anlamına gelmediğinden işe yaramayabilir.

Emin değilim, eğer sudo ile, bu aynı zamanda init ve tüm çekirdekleri ifade eder ... Ancak, kök kullanıyorsanız, kill -9 -1tıpkı güç kablosunu çekmek gibi, kesinlikle hemen durur. Bu arada - kütük dosyalarında hiçbir şey görünmeyecek, çünkü bu komut batıdaki en hızlı katil!

Aslında, iyileşmek için, sistem yöneticilerimize gittim ve onlara ne yaptığımı söyledim. Sert bir yeniden başlatma yaptılar, çünkü bu sunucuda oturum açmanın bir yolu yoktu (RHEL6).

Bir kill -9 -1kök olarak root olarak çalışan her süreci, öldürür. Yani sshd. Bu beni hemen kapattı ve kimsenin tekrar giriş yapmasını engelledi. İnit tarafından başlatılan herhangi bir işlem - init dahil, UID veya GID değişmediyse öldürüldü. Seri konsol üzerinden giriş yapmak bile mümkün değildi. ps -eaf | grep rootbir SIGKILL'e varsayılan şekilde tepki verirlerse, HD'ye temel yazmayı bile durduracak olan bazı fantezi işlemlerini gösterir.

Bunu şimdi dizüstü bilgisayarımda denemeyeceğim :-) Bir kill -9 165([ext4-rsv-conver]) gerçekten HD'ye yazmayı keserse bunu öğrenecek kadar meraklı değilim .


Çekirdeği "öldüremezsin" ve bu da kendi başına bir dosya sistemi kontrolüne neden olmamalıdır. Durumdan nasıl kurtuldun? Sert bir yeniden başlatma yaptınız mı? Çünkü bu muhtemelen dosya sistemi kontrolüne sebep olan şeydi :)
Josh

Düzenlenmiş cevabınız mantıklı. Aslında initnormal şekilde öldüremezsiniz, ancak tüm getty ve SSH oturumlarını öldürebilir ve makineyi kullanılamaz hale getirebilirsiniz. Bir Magic SysRq temiz bir yeniden başlatmaya izin vermeliydi, ancak güç döngüsünü kullanmak ve FS günlüğüne güvenmek genellikle daha kolay olur :)
Josh

5

Evet, sisteminizi tamamen yok edebilirsiniz. Yanlışlıkla sudoayrıcalıklarla bir şeyler yapmak, terminale istediğinizden tamamen farklı bir şey yapmasını söyleyen birkaç karakterin unutulup unutulmadığına dair bir örnektir. rming /yerine /tmp/\*sadece 5 karakter farkıdır. Boş yere yanlış yere koymak da tamamen farklı bir şey yapabilir. Diğer zamanlarda, görünüşe göre iyi niyetli talimatlar, içine gizlenmiş kötü amaçlı kodlara sahip olabilir. İnternetteki bazı insanlar kodları gizlemekte çok başarılılar.

Ayrıca html kullanarak yazı tipi boyutunun sıfıra getirilebileceği, dolayısıyla panoya kopyalandığında aslında birinin zarar görmemesi gibi bir şeyin aslında güvenilir bir kaynak olarak gitmekte olan bir deposunu yükleyip kötü amaçlı yazılım indirebileceği komutları vardır.

Sizi sömürmeye başlatan veya tamamen iyi niyetli olabilecek, ancak önemli dosyaları veya programları kaldıran veya diskinizi bozan çalıştırabileceğiniz komutlar var. Aslında, araçları yanlış kullanmak, önyükleme sektörünüzde veya diskinizin başında ya da başka birçok konuda yanlışlıkla yazmak kadar basit bir şey yapabilir.

Yayınlanmayan daha az yıkıcı bir şeyin bir örneği, ikili dosyaları açmaktır vi. Hiç denediyseniz, terminalinizi kullanana kadar kullanılamayacak bir noktaya kadar karıştırabileceğini bileceksiniz reset.

Alternatif olarak, aşağıdaki gibi makinenizi yavaşlatacak komutlar vardır:

yes >> /dev/null & yes >> /dev/null & yes >> /dev/null & yes >> /dev/null & 

Bunu deneyebilirsiniz, zarar vermeyecek, ancak işlemcinizi hızlandıracak ve ortaya koyduğunuz her işlemi öldürmek zorunda kalacaksınız.

Olduğu söyleniyor, hesaplamada genellikle birkaç yumurta kırmadan bir omlet yapamamanız gerekir. Terminalde dikkatli olmalısınız, ancak işletim sistemi kullanımında daha iyi hale gelmenin tek yolu öğrenme ve pratik yapmaktır.


İlk örneğiniz çok zararlı değil. Vim aslında ikili dosyaları düzenlerken oldukça mantıklı. Ve en kötü durumda, pencereyi kapatabilirsiniz. “Evet” i gösteren ikinci örnek can sıkıcıdır ve adil bir bit kullanıcı CPU'su kullanır, ancak sistem duyarlı kalır ve ana terminal penceresini kolayca öldürebilirsiniz.
nneonneo

1
"Terminalinizi yeniden başlatana kadar kullanılamayacak bir noktaya kadar karıştırmak" ile aynı fikirde değilim reset. ya da, sadece yeni bir TTY spawn
Josh

1
Cool, nw @ JFA. Bu resetnumarayı öğrenmem beni yıllarca aldı ! Daha fazla bilgi için: unix.stackexchange.com/questions/79684
Josh

1
@Josh bunun için teşekkür ederim, çok yardımcı oldu. Gerçekten benim için uzun yıllar oldu: P
JFA

1
@Josh O zaman 'stty sane ^ M' ve 'tput reset' sizin için de heyecan verici olmalı.
user2497

4

Ben sadece bir acemi acemiyim, ancak bir süre True ayarlayabilirsiniz; KOMUTANLIYOR; yapılan; Çoğu kişi harici işlemi değil (sonra da öldürülmesi gereken) ctrl + C komutunu durduracaktı. Komut, çok sayıyı kendi gücüyle çarpmak gibi ağır bir işlemse, kaynaklarınıza zarar verebileceğini tahmin ediyorum. Ancak, gerçekten de, modern işletim sistemi genellikle bu tür karmaşalara karşı korunmaktadır.


2
Sadece çok hızlı çalışıyor, hiçbir şey çökmeyecek. Sadece biraz yoğun hesaplamalar yapmalısınız, böylece çekirdek maxprocs sizi üzmez. deneyinwhile true do cat /dev/zero > /dev/null & done
user2497 14

Teşekkürler. Bilgisayarı yavaşlatmak için çok sayıda işlem yapmayı umuyordum, bazen makine öğrenirken kullandığım çok basit java / python programlarında oluyordu.
Ando Jurai

1
Sıfırdan boştaki kedi, en azından G / Ç'de büyük bir sayı işlemidir. Bunlardan birini termal testler yapmak için bir CPU'nun çekirdeği başına kullanıyorum.
user2497

1
Ve ^C edecek da while döngüsü öldürmek, ama sadece kesme yakalanabilmesi için çok hızlı tekrarlar. Basılı tutmak ^Cdöngüden kopabilir. Terminalin kapanması da :)
Josh

2
@Josh CPU yoğun bir görevden sonra, uyku 0.1 gibi küçük bir duraklama varsa, INT yakalamak daha kolaydır.
user2497

3

Elbette Terminal ile girilen komutları kullanarak sistemin çökmesine neden olabilirsiniz.

Yıllar geçtikçe, uygulanan her türlü sınırlama ve koruyucu önlem nedeniyle muhtemelen daha da zorlaşıyor, ancak Murphy benzeri yasaların belirttiği gibi: "Hiçbir şey yeterince yetenekli bir aptala aptal değildir".

“Çatal bombaları” ve rm -rfsenaryo çocuklarının hepsi UNIX için bilinen bir şey. Mac OS X ile GUI alt sistem parçalarını ( WindowServerbahsetmek) ya da PFApple mühendislerinin getirdiği ancak 2008 durumundan bu yana hiçbir zaman güncelleme yapamadığı OpenBSD firewall aka gibi şeyleri kullanarak daha fazla eğlenebilirsiniz . PFBir cilvesi yakalar çekirdekte çalışıyor bu yüzden Apple siz "söyler zamanı Eğer böyle ya malzeme nedeniyle paniğe bilgisayarı yeniden".

Bunun en kötü yanı, asla paniğe neden kapıldığını asla bilemezsiniz - çünkü Apple anlamlı yığın izleri sağlamaz; yalnızca onaltılık yığın yığını dönüş adresi sayısına sahip olabilirsiniz.


İyi cevap ve mükemmel puan. OS X'in dans pistinde paniklemesini kişisel favorim olarak paniklemesine, ancak senaryo kiddie aptallıklarından kaçınmak için açık terimler olmadan güzel bir şekilde listenize eklemek isterim. NFC ile ilgili bir çekirdek uzantısını kaldırıyorum. Her zaman, anında çalışır. Kişi, 5 dakika gibi bölünebilir bir sayıya bölünerek bunu kolayca bir DOS'a silahlandırabilir. Bu yüzden daha sonra kuğu dalışını başlatır. Bu, çoğu yöneticiye verilen işletim sisteminin yeniden kurulmasını gerektirir ve hatta teknisyenler bile bunu özleyecektir ....
Francis, ResponseBase'den

3

Başka bir cevapta bazı faydalı örnekler olmasına rağmen, bilgisayarınızı "çökertmek" derken ne demek istediğinizi biraz belirsiz bulabilirsiniz ... ve bunun için kesin bir cevap yok. Sorunuz daha belirsiz ve genel olduğundan, sorunun niteliğine odaklanmak ve daha genel bir cevap vermek istiyorum.

Terminal'i anlamayan insanlar, genellikle emirlerini bozabilecekleri ve bilgisayarlarını çökertebilecekleri korkusuyla kullanmaktan korkuyorlar.

Bence komut satırı iki ucu keskin bir kılıç ve genellikle çok keskindir. En büyük gücü aynı zamanda yeni kullanıcılar için en büyük zayıflığıdır: CLI programları söylediklerinizi yapar, gerçekten ne demek istediğinizi sormadan. Genellikle onay istemezler, elde tutma veya etkileşimli yardım sağlamazlar ve seçenekleri kısadır, sıklıkla kısa ve bazen de metin tabanlı dizeleri karıştırırlar. Onlar unutmayın edilir genellikle çok iyi belgelenmiş bir sadece (neredeyse her zaman kılavuzu okumak zorunda man <command you are about to run>) ve yapacakları çalıştırmak için neler komut satırı anlamak için zaman ayırın.

Bu çalışma modu güçlüdür - bu, tecrübeli CLI kullanıcılarının, tek komutlarla karmaşık görevler yapan uzun komut "boru hatları" oluşturabildiği anlamına gelir. Bunun nedeni görevin "Emin misiniz?" yolun her adımında, söyleneni yapar. Ancak, bu kimliği bilmeyen ve çevrimiçi yardımın bir tık öten bir kullanıcı arayüzüne alışkın, kullanıcı tarafından bilinmeyen ve korkutucu olan bir kullanıcı için.

Ama aslında bilgisayarınızı çökertecek komutlar var mı?

CLI kullanarak bilgisayarınızı "çökertebilir" mi? Olabilir. Yanlış bir şekilde yıkıcı bir komut kullanırsanız kesinlikle veri kaybına neden olabilirsiniz. EG, buradaki cevapların çoğundan, rmdosyaları silen bir komuttan bahseder . Açıkçası, bu komutla veri kaybına neden olabilirsiniz , komutun yapması için tasarlanmıştı.

Diğer yanıtların da belirttiği gibi, makinenizi bir süre için neredeyse kullanılamaz hale getirmek için komut satırını kullanabilirsiniz: onay almadan kapanabilir, bir işlemin mevcut kaynaklarınızın% 100'ünü onaylamadan kullanmasına neden olabilir, tüm programlarınızı sonlandırabilirsiniz veya dosya sisteminizi imha edin. Gerçekten yapmak istersen, CLI'yi çekirdeğin paniklemesine neden olan bir çekirdek uzantısı oluşturmak için kullanabilirsin (ki bu düşünebildiğim bir "çarpışmaya" en yakın olanı).

Komut satırı (Terminal üzerinden erişilen) güçlü bir araçtır. Genellikle Terminal kullanarak bir sorunu çözmek, GUI'den daha hızlıdır. Bazı çözümler yalnızca Terminal komutlarını kullanarak kullanılabilir. Ancak, CLI'nin anahtarı anlayıştır . Çevrimiçi gördüğünüz rastgele komutları çalıştırmayın. Man sayfalarını okuyun ve komutların ne yaptığını anlayın. Emin değilseniz, çalıştırmadan önce bir kişiye sorun veya bir komut hakkında daha fazla bilgi edinin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.