Jakie są twoje ulubione * bolesne * momenty uniksowe

34

Co powiesz na dzielenie się swoimi ulubionymi lekcjami ?

Larry Smithmier
źródło
Zabawne, ile odpowiedzi wymaga rmpolecenia. Lub smutny.
Barry Brown

Odpowiedzi:

67

Byłem ciekawy, czy chmod 000 /zadziała.

Cóż, bezbłędnie. Kilka minut później szukałem ratunkowej płyty CD.

sheerun
źródło
11
Wow, nigdy nawet o tym nie myślałem, dopóki o tym nie wspomniałeś. Dobry.
Stefan Lasiewski
Co się stanie, jeśli zrobisz to na zwykłym pliku?
Luc M
@Luc Myślę, że wystarczy chmod go z powrotem
phunehehe
Zazwyczaj wykonuję takie „eksperymenty” na mojej Arch VM. Jeśli to bomby, po prostu go cofam.
André Paramés,
Raz popełniłem ten błąd. To było bardzo krępujące, ale cenna lekcja.
Charles Sprayberry
37

Kiedy po raz pierwszy zacząłem pracować jako konsultant użytkowników dla uniwersytetu, do którego uczęszczałem, otrzymałem ograniczone sudoprawa do pomocy studentom, którzy zgubili / zapomnieli hasła. sudo passwd <username>był moim nowym przyjacielem. Godzinę po mojej orientacji moja ciekawość zwyciężyła, więc wpisałem się sudo passwdi wpatrzyłem się z przerażeniem na monit o nowe hasło. Trochę się przestraszyłem ^C, myśląc (jak się okazuje, że to erotycznie), że mogę pozostawić to konto w stanie przejściowym, więc wprowadziłem hasło i od razu poszedłem na górę do uświęconej domeny drugiego piętra kampus SuperUser i zapytał, czy chciałby znać hasło roota głównego systemu.

Larry Smithmier
źródło
4
heh, właścicielu! Zmieszany zastępca: P
Spudd86,
30
mogłeś wprowadzić hasło niedopasowania w drugim monicie potwierdzającym, więc wtedy nic by to nie zmieniło i passwd wyjdzie.
Wadih M.
1
@Wadih: passwdzachowuje się zabawnie po uruchomieniu jako root. Na przykład, gdy sprawdzanie literówki nie powiedzie się, pyta ponownie.
György Andrasek
Mogłeś po prostu zmienić to z powrotem na to, co było wcześniej.
HandyGandy
1
@HandyGandy nie znał oryginalnego hasła roota. Miał tylko prawo sudo do uruchamiania passwd.
gnud
32

Zaskoczony, nikt jeszcze o tym nie wspominał:

rm -rf .*

(Podczas próby usunięcia wszystkich ukrytych plików i podkatalogów, całkowicie zapominając, że będzie się powtarzał w .i ..)

Mark
źródło
3
Podczas gdy mnie to paliło w przeszłości, wiele wersji tego rmnie robi. Wypróbowałem Darwina i dostałem błąd rm: "." and ".." may not be removed.
Stefan Lasiewski
7
Robię to cały czas, na wszystkich platformach. Działa zgodnie z przeznaczeniem dla OpenBSD, NetBSD, Linux i OpenSolaris.
polemon
Jeśli chcesz dopasować wszystkie pliki kropek oprócz .i .., użyj .[^.]*. (Cóż, tak naprawdę brakuje wszystkich plików, zaczynając od .., ale zwykle jest tylko jeden.)
Sven Marnach
@ Sven: Innym sposobem jest .??*łatwiejsze do pisania. Ten nie będzie pasował do dwuliterowych plików kropek .a, ale są one również niezwykłe. Na przykład szukam plików konfiguracyjnych w moim katalogu domowym grep -r .??*.
Neil Mayhew
31

Makefile:

clean:
    @rm -f * .o

Co oczywiście powoduje make cleanwyczyszczenie kodu źródłowego zamiast tylko plików obiektowych.

Lekcja: użyj kontroli wersji.

Alex B.
źródło
11
Jeśli go nie widzisz, zwróć uwagę na spację między *i.o
Denilson Sá Maia,
1
Czuję twój ból, przytrafił się nam kiedyś w pewnym momencie :)
axel_c
Lekcja została ponownie załadowana: za każdym razem, gdy robisz powłoki i widzisz „ ”, bądź * ekstra , nie, bądź ekstra Extra EXTRA ostrożnie.
Jürgen A. Erhard
Zrobiłem to ręcznie, po tym, jak pociągnąłem w laboratorium prawie całą noc. Projekt miał się odbyć kilka godzin później. Okazało się, że jest to błogosławieństwo w przebraniu; nowa, przepisana wersja, w której się zgłosiłem, była znacznie lepsza niż wersja zabandażowana, którą usunąłem.
Barry Brown,
1
Obowiązkowe odniesienie do trzmiela: github.com/MrMEEE/bumblebee/commit/a047be
Residuum
30

Gdyby znajomy działał :() { :|:&}; :na zdalnym serwerze, do którego nie mieliśmy dostępu do konsoli. Nie można go ponownie uruchomić, całkowicie zamrożony, serwer produkcyjny .

Podział (na żądanie), aby był bardziej czytelny.

:() # Define ':' as a function. Every time we say ':' execute the following code block
{ # Start of code block
    : # Call ':' again. 
    | # Pipe output to...
    : # Another ':' 
    & # Disown process. 
    # All on one line this would read :|:&, 
} # End of code block
; # End definition of ':' as a function
: # Call ':'

Może być łatwiej na to spojrzeć

bomb() { bomb|bomb& }; bomb
Josh K.
źródło
1
Czy byłbyś tak uprzejmy wyjaśnić, co robi? Nie mogę tego
rozgryźć
23
Wygląda jak bomba widełkowa. Nie próbuj tego, chyba że naprawdę wiesz, co robisz.
Zaid,
5
Tak. To widelec. I fajny :) Wydaje się rozwidlać interpretera bash, gdy bez końca próbuje go parsować. Jeśli pominiesz ostatni, :to nic nie robi. I w ogóle nie wykorzystuje pamięci, po prostu dużo forksuje. [Tak, próbowałem :)]. Efekty można blokować przydziałem liczby procesów na użytkownika.
naugtur
4
+1 za powyższy komentarz. Jest o wiele łatwiejszy do zrozumienia niż się wydaje.
Umang,
29

Miałem na myśli dobrze, naprawdę. Próbowałem chmodrekurencyjnie katalogu i skończyłem ./z /.

Oczywiście jako korzeń, ponieważ tylko za pomocą korzenia można osiągnąć prawdziwy ból (a tym samym oświecenie).

sygo
źródło
23
+1 do cytowania „Tylko z korzeniem można osiągnąć prawdziwy ból (a tym samym oświecenie)”.
Stefan Lasiewski
21

Przez przypadek wyczyściłem tablicę partycji głównego dysku, myśląc, że pracuję na innym dysku.

Dzięki przewijaniu, ostrożnemu użyciu df, pamięci i szczęściu udało mi się dokładnie go odtworzyć, przepisać, uruchomić ponownie i mieć nadzieję ... I zadziałało.

Tom Ritter
źródło
6
Zrobił to przyjaciel i pomogłem mu przywrócić stół. Niestety, nie mieliśmy wcześniejszych wartości rozmiarów i przesunięć partycji, więc użyliśmy pętli bash z ddodczytem pierwszego bloku 4k każdego cylindra podłączonego do niego, file -aby znaleźć superblok, a tym samym początek systemu plików. To było na live CD i nie było wystarczającej ilości pamięci RAM, aby zrobić wszystko, co musieliśmy zrobić (w tym zainstalować pakiet lub dwa), więc przeszliśmy do procesu działającego w ssh na innym komputerze.
Neil Mayhew
2
Ojej. Dlatego zawsze używam sfdisk -Odo tworzenia kopii zapasowej tabeli partycji. Informacje: cgsecurity.org/wiki/TestDisk może zautomatyzować to, co zrobił @Neil Mayhew.
ephemient
2
Ja też tam byłem, testdiskuratowałem swoje pudełko
phunehehe
Obecnie mamy gpart, którzy szukają rzeczy, które mogą przypominać systemy plików i na tej podstawie budują tablicę partycji.
Simon Richter,
19

Nie tak naprawdę moja chwila, ale czyjaś inna.

Kiedy pracowałem w ośrodku badawczym nauk nuklearnych, pracowaliśmy na wielu komputerach SunOS, Ultrix i Linux, a naukowcy musieli dzielić procesor na tych komputerach. Ponieważ poszczególne grupy badawcze otrzymały własne granty badawcze, zakupiły własne komputery, głównie SparcStations i same sami administrowały systemem.

SunOS był dostarczany z pulpitem OpenView i ładnym menedżerem plików, tak to wyglądało: alternatywny tekst

Większość naszych badaczy działała jako root i niejednokrotnie musieliśmy ponownie instalować systemy operacyjne, ponieważ ktoś postanowił uporządkować katalog główny i przeniósł / bin, / etc, / tmp i wszystko inne, co zaśmieciło widok Kosz lub jakiś podfolder.

Inni użytkownicy postanowili uporządkować katalog / bin i usunąć wszelkie polecenia, których nie znali.

Szczęśliwcy mieli kopie zapasowe, większość kupiła napęd taśmowy, ale nie miała tradycji samodzielnego wykonywania kopii zapasowych.

miguel.de.icaza
źródło
11
Sprzątać katalog główny? Naprawdę? NAPRAWDĘ? szloch
Alex B
41
TRWTF jest uruchomiony jako root w ośrodku badawczym nauk jądrowych!
odwrócenie
4
fajny zrzut ekranu! sprawia, że ​​jestem nostalgiczny.
Gabe.
@Alex - no cóż, był duży plik VMUNIX, z którego nie korzystałem ....
Martin Beckett,
1
W starszych wersjach systemu Mac OS można było przenieść dowolny plik w dowolne miejsce, więc być może tego się spodziewali ...
Kevin Cantu
18

W połowie lat 90. rozmawialiśmy z moim przyjacielem o szaleństwie, rm -rf *w którym momencie Linux miałby upaść. Przeszliśmy do bibliotek połączonych statycznie i dynamicznie, a ja uznałem, że system mógłby funkcjonować całkiem dobrze bez, /liba następnie przystąpiłem do zmiany nazwy na mojej stacji roboczej. Zdarzały się złe rzeczy , ale pozostało nam kilka otwartych okien konsoli, za pomocą których można naprawić szkody (wyłączenie nie było już opcją). Żaden z edytorów nie działał. To niesamowite, że ezoteryczne zastosowania można znaleźć w echopoleceniu.

Larry Smithmier
źródło
19
Istnieje klasyczna historia na ten dokładnie temat: lug.wsu.edu/node/414
Alex B
1
@Alex B: Ta historia jest również częścią Unix Horror Stories , którą można po prostu czytać.
Bobby,
18

vii Caps-Lockvs./etc/passwd

  1. Połącz się ze starym systemem Solaris za pomocą starego terminala szeregowego, który nie odświeża poprawnie ekranu.
  2. su -
  3. vi /etc/passwd. Nie mavipw , a „i tak dokonujemy drobnych zmian”.
  4. Trafienie Caps-Lock klawisz i nie zauważaj.
  5. Naciśnij jkilka razy, aby przewinąć w dół. Zignoruj ​​fakt, że właśnie wpisałeśJ („Dołącz”), co łączy tę linię z następną linią. Ekran terminala szeregowego nie odświeżał się poprawnie, więc nie widziałeś, że po prostu połączyłeś pierwsze 5 linii w jedną linię Loooooong, powodując w ten sposób uszkodzenie pierwszych 5 użytkowników („root”, „demon” itp.).
  6. Zakończ inne zamierzone zmiany w pliku, w dół na dole.
  7. Zapisz plik.
  8. Wyloguj.

Zrobiłem to raz. O dziwo, system pozostawał funkcjonalny przez wiele miesięcy. Cronjobs działał dobrze, w plikach dziennika nie wyróżniały się żadne błędy.

Nie zauważyliśmy tego problemu, dopóki nie uruchomiliśmy systemu kilka miesięcy później i nie mogliśmy zalogować się na konsoli. pspokazał kilka zadań należących do UID „0”, a nie do użytkownika „root”.

Nie można zalogować się jako root, ani uruchomić sulub su -, i nie było tego sudow tym polu. Nie było napędu dyskietek, dysk CD-ROM został uszkodzony i nie ma portów USB (więc nie ma zewnętrznego napędu CD-ROM). Tryb pojedynczego użytkownika nie działał, ponieważ musisz wpisać hasło użytkownika root, a pochodzi ono z /etc/passwd.

Stefan Lasiewski
źródło
2
Z pewnością „J” to polecenie „Połącz” (jak w liniach łączenia razem)?
dr-jan
2
Chwileczkę, nie muszę wpisywać hasła, aby uruchomić system w trybie pojedynczego użytkownika. Tak zresztą zresetowałem hasło roota, jeśli je utracę. A może było inaczej w dawnych czasach?
phunehehe,
W systemie Solaris musisz znać hasło roota, aby wejść w tryb pojedynczego użytkownika. Właściwie musiałem to zrobić 2 tygodnie temu.
Stefan Lasiewski
@phunehehe Myślę, że myślisz o sztuczce init = / bin / sh. To naprawdę nie wymaga hasła roota. Jednak poziom 1 wciąż wymaga podania roota
Patrick,
18
rm -f * ~

i

rm -rf ${DIR}/

kiedy DIRnie został ustawiony!

Ivan P.
źródło
4
Masz na myśli ${DIR}? Ponieważ $(DIR)próbowałby wykonać polecenie DIR.
Denilson Sá Maia
16

Pamiętam, jak próbowałem wysłać SysRqsekwencję klawiszy do zdalnego komputera ...

... ale został schwytany przez lokalnego.

polemon
źródło
14

Kilka haltsekund później proste stwierdzenie, że nie jestem w lokalnej powłoce i nie mam możliwości ponownego włączenia serwera produkcyjnego.

Zdobyta wiedza? Wygląda teraz komunikat zachęty

[ --> root <-- @kompost:/home/echox] #

z ładnym czerwonym znacznikiem ;-)

echox
źródło
6
Istnieje narzędzie o nazwie, molly-guardktóre sprawdza, czy jesteś zalogowany zdalnie i pyta, czy naprawdę chcesz to zrobić.
Simon Richter,
IPMI to naprawdę wygodna rzecz :-)
Andre Holzner
13

Moim ulubionym momentem było, gdy współpracownik, który jest użytkownikiem emacsa, chciał edytować ważny plik.

Ponieważ emacsjest zbyt wiele do pisania, dla którego skonfigurował aliasemacs :

alias em=emacs

Pod wpływem niewystarczającej lub zbyt dużej ilości kawy oczywiście źle napisał em...

Cóż, to tylko kolejny powód do użycia vi...;)

maxschlepzig
źródło
To, co tak naprawdę uwielbiam w tym, to fakt, że był zainteresowany tym, jak długo trwa emacs, ale nie tylko go użył alias e=emacs.
Steven D
Poza kawą zauważ, że „e” i „r” nie są bardzo odległe w pobliżu klawiatury ...
leonbloy
11

Lub kolejne doświadczenie, jak poczuć się naprawdę głupio w kilku prostych krokach, które nie wydają się takie głupie indywidualnie.

Krok pierwszy: załóż konto dla dziecka, na wypadek, gdyby chciał skorzystać z Linux-a. Daj mu trywialne hasło, ponieważ w końcu jest to system domowy i nie jest narażony na działanie sieci.

Krok drugi: poczekaj, aż upłynie czas, więc nie pamiętasz kroku pierwszego.

Krok trzeci: otwórz port SSH w zaporze ogniowej (właściwie NAT na routerze), aby się zalogować. W końcu moje konta mają całkiem dobre hasła i nie jest tak, że coś jest niezwykle cenne.

Krok czwarty: otrzymaj powiadomienie od dostawcy usług internetowych o przejściu aktywności DOS na szwedzką stronę. Załóżmy, że to prawdopodobnie okna systemu Windows, i zbadaj je i stwardnij.

Krok piąty: otrzymaj powiadomienie od dostawcy usług internetowych, że nadal trwa. Zapytaj o szczegóły, uzyskaj adres IP szwedzkiej strony, uruchom Wireshark, znajdź pole, z którego pochodzi atak.

Krok szósty: oczyść Linuksa, czując się głupio Znajdź login pochodzi z rumuńskiego adresu. Usuń konta bez dobrych haseł.

David Thornley
źródło
1
Byłem tam Kiedyś utworzyłem konto z loginem testu: test, zamierzam go używać tylko przez około pięć minut. Zapomniałem go usunąć i uzyskałem takie same wyniki jak Ty. Nigdy więcej. Teraz używam uwierzytelniania z kluczem publicznym.
ATC
1
Tak, używam również kluczy publicznych / prywatnych. Czasami mogą być nieco denerwujące, ale o wiele bezpieczniejsze niż proste hasła.
Denilson Sá Maia
4
Podczas otwierania SSH w Internecie NIGDY NIE zezwalaj na uwierzytelnianie za pomocą hasła. Tylko autoryzacja klucza publicznego / prywatnego, w ten sposób nie można dać się zaskoczyć.
wazoox
@wazoox: otp jest również dobrą alternatywą.
Jürgen A. Erhard
Używam niestandardowego, o wysokim numerze portu dla ssh, przekierowanego z routera do standardowego portu ssh w moich systemach Linux i Mac OS X. Nigdy nie dostać jakiekolwiek próby. Port mam skonfigurowany w skrócie w ~ / .ssh / config na moich innych komputerach, więc zwykle nawet nie muszę go pisać.
Neil Mayhew
11

W pracowniach komputerowych, gdy byłem na studiach, mieli wygaszacz ekranu, który symulował kilka piłek, które unosiłyby się do przodu i do tyłu. Pociągnęli każdego z symulowaną grawitacją.

Kiedyś, gdy bałaganiłem ustawienia, rozbił się z błędem Error: force on balls too great

David Oneill
źródło
10

Kiedyś opracowywałem sterownik urządzenia dla Uniksa. Miał problem ze wskaźnikiem i podczas testowania zaczął zapisywać koniec tablicy w pamięci jądra. Powoli to zauważyłem i nie nacisnąłem przycisku resetowania od razu. Sterownik nabazgrał całą pamięć podręczną bufora dysku, który został następnie opróżniony na dysk, zanim wykonałem reset. Wiele bloków to i-węzły i katalogi, a ja skończyłem z całkowicie zniszczonym systemem plików. Myślę, że lost+foundprzed poddaniem się i ponownym zainstalowaniem włożono 6000 osieroconych plików . Na szczęście był to tylko system testowy, a nie moja stacja robocza z wszystkimi moimi plikami.

Neil Mayhew
źródło
Teraz robienie tego w twoim systemie pracy byłoby naprawdę głupie ;-)
Jürgen A. Erhard
8

I usunięte /, itp, a następnie odzyskuje się . Nie sądzę, żebym nauczył się mojej lekcji ... Musiałem też zregenerować się po usunięciu /bin. Wydaje się, że tak się dzieje, kiedy pracuję z chroot.

ksenoterracid
źródło
Bardzo chciałbym wiedzieć, dlaczego zostałem zmodowany
ksenoterracid
1
Byłem tego również świadkiem. Dziwi mnie, że system może przetrwać bez / etc --- po prostu niczego nie restartuj.
Stefan Lasiewski,
7

W zeszłym roku mój kolega używał jednej z naszych stacji roboczych z systemem Linux do tworzenia kopii dysków flash za pomocą ddpolecenia. Przypadkowo wpisał coś podobnego do następującego:

dd if=flash-image.img of=/dev/sda1

Zanim zdał sobie sprawę ze swojego błędu - nadpisania dysku twardego zamiast dysku flash - maszyna była już ukryta. Musieliśmy przebudować skrzynkę, która nawiasem mówiąc, była także maszyną obsługującą wszystkie nasze maszyny wirtualne rozwoju w tym czasie ...

Justin Ethier
źródło
2
+1 - bądź bardzo, bardzo, bardzo ostrożny dd!!! :-)
Josh
7

Zdarzyło mi się to w zeszłym roku. Usuwałem niektóre pliki z serwera za pomocą zmiennej tymczasowej:

rm -rf ${prefix}*

Zgadnij co? Zmienna $prefixnie została zdefiniowana!
Możesz sobie wyobrazić katastrofę ... która spowodowała usunięcie niektórych bardzo krytycznych plików.

Prawie zepsułem się Control-Ci pobiegłem do procesora, aby odłączyć kabel sieciowy !!

Hahaha jestem pewien, że ktoś już to zrobił ...

Jyzuz
źródło
7

Podczas mojego drugiego roku studiów informatyki dostaliśmy zadanie domowe do napisania programu w C, który odrodziłby wiele podprocesów z fork i umożliwiłby im komunikację z rurami w „okręgu” i ustalenie, który z nich powinien być „liderem” „.

Wciąż byliśmy dość noobami i większość peple nie miała żadnych maszyn z Linuksem, więc pracowaliśmy nad naszymi kontami na głównym serwerze naszego wydziału (który hostował oficjalną stronę, a także konta pracowników i strony). Większość ludzi pisała widełki na pewnym etapie odrabiania lekcji. Ponad połowa mojej grupy dotarła do abusersakt. To było największe obciążenie na tym serwerze od dłuższego czasu :)

naugtur
źródło
to było głupie z ich strony ... nie powinni byli umieszczać cię na tej samej maszynie co serwery WWW i takie tam. (Moja szkoła ma to samo, ale mamy serwery dedykowane do zdalnych pocisków, więc coroczne widełki tak naprawdę nie wymykają się spod kontroli)
Spudd86
Microsoft uzyskał możliwość nawiązania współpracy, a Windows i .net były już wtedy bardzo promowane. Nikt nie spodziewał się kilku noobów na serwerze :)
naugtur
6

Kiedy moja uczelnia postanowiła zmienić sieć bezprzewodową, aby korzystać z zastrzeżonego uwierzytelnienia Cisco LEAP ...

Rozpoczęła się bardzo długa bitwa, która zakończyła się dość dobrze. Napisałem dokumentację dla innych, którzy chcieli uruchomić Linuksa i mieć dostęp do Internetu. Sześć miesięcy później postanowili również dodać obsługę PEAP. uderzenie w twarz

To moje ulubione, bo wygrałem. Mam to do pracy.

razialx
źródło
6

Jako root w Solarisie,

$ kill -9 1

... i wszystko poszło w dół.

Mój przyjaciel został zwolniony z tego powodu.

lamcro
źródło
6

Byłem asystentem laboratoryjnym na zajęciach z Linuksa. Jeden ze studentów zadzwonił do mnie, ponieważ nie mogła już, su -bo dostawała permission denied. OK, źle zapamiętała / źle wpisała hasło. Uruchom ponownie w trybie pojedynczego użytkownika i zresetuj. Co?!suSTILL nie działa ?! MUSI pokłonić się mojej woli! Ponownie uruchamiam się w trybie pojedynczego użytkownika, aby dowiedzieć się, co zrobiła. Uświadomiłem sobie, że ona biegłachmod -R 777 /var/www/html/drupal-6.19 /

Zwróć uwagę na spację między nazwą katalogu a ostatnim ukośnikiem.

Po kilku minutach „Naprawdę nie chcę jej ponownie instalować, więc co to robi i jak”. Udało mi się znaleźć, że / bin / su ma teraz uprawnienia do plików 777. Można to również odczytać jako uprawnienia do pliku 0777, co usuwa bit setuid /bin/su. Szybki chmod u+s /bin/sui byłem bohaterem.

Kevin M.
źródło
5
To była jedyna rzecz, którą musiałeś zmienić, aby złamać jej system?
Michael Mrozek
1
Jestem pewien, że wciąż był zepsuty, ale może działał wystarczająco dobrze dla reszty klasy.
Stefan Lasiewski,
1
Działało wystarczająco dobrze dla reszty klasy; szkoła najwyraźniej wymaga, aby wszystkie dyski studentów były instalowane co kwartał. A ona nie kontynuowała pracy z Linuksem po tym kwartale, więc nie zawracałem sobie głowy naprawieniem go przez resztę drogi.
Kevin M.
5

Nie to bolesne ... Ale zabawna chwila:

Błędnie wpisałem lsjako sli dowiedziałem się, że sysadmin miał coś zainstalowanego na taki przypadek.

(już dostępne w repozytoriach Debian , Ubuntu , Gentoo , ...)

Denilson Sá Maia
źródło
4
To bardziej pisanka niż bolesna chwila. Przeczytałem o tym, zanim się z nim spotkałem, ale nigdy nie popełniłem błędu, więc nie daje +1.
Umang,
Grinn .. Miałem kiedyś użytkownika, który do mnie przyszedł „Twój system został zhakowany !!! 11 jeden Dostałem animację ASCII-art, gdy
wpisałem
^ Nie takie śmieszne!
mr_eclair
5
git init
git clean -f

To nie usuwa repozytorium. To usuwa wszystko, czego nie ma w repozytorium.

Po próbie pozbycia się istniejącego repozytorium, a następnie ponownego uruchomienia kontroli źródła (w ukończonej pierwszej wersji projektu), te dwie komendy zniszczyły cały mój kod.

Ankit
źródło
git rebase (ze zgniataniem) i git filter-branch (do usuwania plików) są twoimi przyjaciółmi :-) Rozumiem przez to, że istnieją bezpieczniejsze sposoby usuwania crufta z historii repo i kończenia na stosunkowo czystym projekcie. Zwykle robię kopię zapasową bieżącego oddziału przed rozległym bazowaniem.
Neil Mayhew
5

Firma, dla której kiedyś pracowałem, miała swój produkt na SCO. Debiutowałem, gdy aplikacje działały bardzo wolno na naszym serwerze demonstracyjnym, a jednocześnie wielu klientów otrzymało prezentację / wykład na temat nadchodzących nowych funkcji.

Więc uruchomiłem aplikację, która kiedyś się zacięła, zrobiłem na niej swoje rzeczy, aby zweryfikować główną przyczynę, ale ponieważ nadal „utknęła”, próbowałem ją zabić:

pkill -9 mytestapplication

Nauczyłem się, że pkill nie działa dokładnie tak samo w SCO, jak w Linux =)

... Zasadniczo zabija wszystko, do czego użytkownik ma dostęp, a przy rootowaniu ... to wszystko =)

rasjani
źródło
1
Czy mógłbyś opisać, co robi w SCO? Nie mam pojęcia i nie mogłem go łatwo znaleźć w Google.
Denilson Sá Maia
1
po prostu zabija wszystko, do czego użytkownik ma dostęp, a przy użyciu root'a jego wszystko =)
rasjani,
3

Moja zmiana z Debiana na Ubuntu rozpoczęła się w dniu, w którym próbowałem usunąć niektóre pliki i katalogi, co oznaczało pisanie

rm -r /var/tmp/*

Niestety wstawiłem spację między „/ var / tmp /” a „*”, a co gorsza, byłem w katalogu głównym systemu plików.

root@workstation:/# rm -r /var/tmp/ *

Proszę, nie próbuj tego w domu!

ddeimeke
źródło
„zsh: na pewno chcesz usunąć wszystkie pliki z / [yn]?” - jest całkiem przydatny
André Paramés
spowoduje to usunięcie plików z / jak to zrobić?
mr_eclair
3

Istnieje fajna sztuczka, aby zrobić odpowiednio odpowiednik dirnamei basenameodpowiednio w Bash:

${path%/*}
${path##*/}

Nie tak zabawne, gdy $pathzawiera ukośnik ...

10b0
źródło
3

Miałem dwa dyski zainstalowane w jednym punkcie i główny system plików drugiego dysku zamontowano w katalogu wewnątrz /mnt. Byłem w tym katalogu i próbowałem usunąć, varale rm -rf /varzamiast tego pisałem . Jakiś instynkt zdawał się budzić przypuszczenie, że to var musi być poprzedzone cięciem!

Kiedy zdałem sobie sprawę z tego, co zrobiłem, natychmiast uderzyłem, Ctrl-Cale było już za późno. Moja rpmbaza danych już dawno opuściła budynek. Spędziłem wieki, przywracając wszystko do normy.

Teraz część bolesna.

Wracam do tego katalogu w /mnt aby wznowić to, co robiłem. Co mam wpisać? Powiedzmy, że instynkt ponownie się uruchomił.

Przynajmniej udało mi się przywrócić system za drugim razem znacznie szybciej;)

Trubadur
źródło
1
Rozumiem, że to było zanim dowiedziałeś się o chroot (1)?
Kevin M,