Jaki jest najbardziej przydatny skrypt, który napisałeś w życiu codziennym? [Zamknięte]
132
Zastanawiam się tylko, jakie małe skrypty / programy, które ludzie tutaj napisali, pomagają komuś w jego codziennym życiu (inaczej niż w pracy).
Wszystko idzie, przełomowe czy nie. Dla mnie w tej chwili jest to mały skrypt w Pythonie do obliczania tempa biegu na podstawie odległości i czasu, który upłynął.
Widziałem kilka naprawdę fajnych skryptów związanych z pracą, ale nie tak wiele skryptów związanych z „życiem codziennym”. Z drugiej strony, jeśli coś działa rujnując twoje życie i naprawiłeś to zgrabnym scenariuszem, to kim jestem, żeby osądzać?
Kyle Walsh
10
Jedno z tych pytań o klejnoty, które sprawia, że przepełnienie stosu jest opłacalne. Nie powinno tam być żadnych wskazówek sugerujących zamknięcie, a żaden mod, który głosował za zamknięciem, nie powinien.
Bill K
To jedno dla mnie: github.com/codeforester/base . Ta struktura podniosła moją produktywność jako osoby SRE / DevOps skokowo, jednocześnie zwiększając spójność zespołu i współpracę.
codeforester
Odpowiedzi:
116
Mój oklucz spadł z laptopa; więc napisałem program, który zastępuje dwa 0naciśnięcia klawiszy w odległości 200 ms od siebie jako o, dwa 0naciśnięcia klawiszy w odległości 700 ms od siebie jako a 0i ignoruje resztę; więc mogłem użyć laptopa, zanim zabiorę się do wymiany klawiatury.
Łał; Nie wiedziałem, że to będzie tak popularne: str
Jeśli chodzi o to, jak - Microsoft udostępnia fajną funkcję API o nazwie Hooks .
Korzystanie z tego haka; Udało mi się napisać „filtr”, który zrobił to, czego potrzebowałem (wskazówka: jeśli zwrócisz 1 z oknami wywołań zwrotnych, nie przetworzy naciśnięcia klawisza).
Powodem, dla którego o tym wiem, nie jest fakt, że pisałem keyloggera - ale dlatego, że jakiś czas temu napisałem program smilera do Synergy .
I tak. Napisałem inny program, który zamieniał klawisze alfanumeryczne losowym kluczem alfanumerycznym i tak; to było naprawdę zabawne: D
HA! Y00u n00t nie będzie w stanie ponownie wpisać 00n standardowej klawiatury bez 00 bez przekwalifikowania swoich palców! G0000d Szczęście!
Doug L.
107
Najważniejsze pytanie brzmi: jak udało ci się napisać ten program bez użycia litery „o”?
James
115
Nie mam już kodu, ale prawdopodobnie najbardziej przydatnym skryptem, który napisałem, był, wierz lub nie, w VBA. Miałem denerwującego kolegę, który miał tak krótki lont, że nazwałem go Cherry Bomb. Często wściekał się, gdy dzwonili klienci, a potem wstawał i zaczynał na mnie narzekać przez ścianę kabiny, niszcząc moją produktywność i morale.
Zawsze miałem otwarty Microsoft Excel. Kiedy to robił, przechodziłem przez Alt-Tab do Excela, a na pasku narzędzi pojawiła się nowa ikona z obrazem wiśniowej bomby. Dyskretnie to kliknąłbym ... i nic by się nie stało.
Jednak wkrótce potem odbierałem telefon i mówiłem coś w stylu „tak, tak, to brzmi źle. Lepiej spojrzeć”. A potem wstawałem, przepraszałem Cherry Bomb i odchodziłem.
Zdarzyło się, że użyliśmy NetWare i miał on wbudowany prymitywny system przesyłania wiadomości. Kiedy kliknąłem przycisk, mały skrypt VBA wysłał wiadomość NetWare do moich przyjaciół, informując ich, że Cherry Bomb znów jest w tym miejscu i czy oni proszę zadzwoń do mnie. Nigdy tego nie rozgryzł :)
Wiesz, że jesteś programistą, kiedy piszesz program, aby wyjść z niezręcznej sytuacji społecznej.
Cadoo,
7
Niesamowite! To jest inżynieria społeczna w najlepszym wydaniu!
Beska
1
Miejmy nadzieję, że Cherry Bomb nie używa StackOverflow :)
Pedro Luz
94
Został wywołany skrypt bash , więc jeśli jestem w nim /a/very/deeply/nested/path/somewherei chcę przejść „w górę” katalogów N , mogę wpisać :up N
#!/bin/bash
LIMIT=$1
P=$PWD
for ((i=1; i <= LIMIT; i++))
do
P=$P/..
done
cd $P
Na przykład:
/a/very/deeply/nested/path/somewhere> up 4
/a/very>
NB przez gmatt:
Pracując nad wspaniałą pracą powyżej, można ją rozszerzyć do funkcji wstecznej, umieszczając w swoim bashrc:
function up( )
{
LIMIT=$1
P=$PWD
for ((i=1; i <= LIMIT; i++))
do
P=$P/..
done
cd $P
export MPWD=$P
}
function back( )
{
LIMIT=$1
P=$MPWD
for ((i=1; i <= LIMIT; i++))
do
P=${P%/..}
done
cd $P
export MPWD=$P
}
+1 Absolutnie f „ing genialny! Będę dużo tego używał !
wzzrd
12
Dlaczego miałbyś zastąpić łatwy do odczytania kod trudnym do odczytania kodem? Czy Twój komputer działa szybciej, jeśli masz mniej wierszy kodu źródłowego?
Beska
3
gnud: zamienić mój czysty i jasny kod na śmieci? Nie, dziękuję.
Foxdonut
2
znakomity! Rozszerzyłem to o backmetodę, więc za każdym razem, gdy używasz, możesz używać wstecz, aby łatwo poruszać się tam iz powrotem. Aby go użyć, umieść to w swoim bashrc (przepraszam za formatowanie gówna): function up () {LIMIT = $ 1 P = $ PWD for ((i = 1; i <= LIMIT; i ++)) do P = $ P / .. done cd $ P export MPWD = $ P} function back () {LIMIT = $ 1 P = $ MPWD for ((i = 1; i <= LIMIT; i ++)) do P = $ {P% / ..} done cd $ P export MPWD = $ P}
ldog
2
czy jestem szalony? jak do diabła to działa? cd w skrypcie będzie tam cd, ale kiedy skrypt istnieje, jesteś z powrotem w tym samym / oryginalnym katalogu! czy mój bash działa inaczej niż wszystkie twoje?
johnnyB
67
Super zdalny przycisk resetowania.
Stojak z super specjalnym sprzętem do symulacji (w czasach, gdy pokój pełen skrzynek VME robił mniej niż twój GPU), który użytkownik po drugiej stronie świata załamałby się we wczesnych godzinach porannych. Dotarcie do laboratorium i przejście przez ochronę zajęło godzinę.
Ale nie mogliśmy łączyć się z super specjalnym kontrolerem ani modyfikować sprzętu. Rozwiązaniem była stara stacja robocza DEC z drukarką igłową firmy Epson, przyklej plastikową linijkę do pokrętła podawania papieru, ustaw drukarkę w pobliżu przycisku resetowania.
Zaloguj się do WS jako zwykły użytkownik (bez uprawnień roota, wszystkie porty zewnętrzne są zablokowane), wydrukuj dokument z 24 pustymi liniami - obracając pokrętło podawania papieru i linijką wciśniętą na reset na super specjalnym sprzęcie.
Fantastyczna historia! Nie jestem pewien, czy ci wierzyć, czy nie;)
Greg Whitfield
Ostatecznie został zastąpiony przekaźnikiem wyłącznika zasilania podłączonym do linii DTR na porcie szeregowym - ale wymagało to dostępu do konta roota. Powinienem był powiedzieć DEC WS, ponieważ działał na nim Ultrix.
Martin Beckett
Wow, jak daleko posuwamy się, aby uzyskać ochronę!
Gdybyśmy w tamtych czasach mieli tacki na płyty CD, byłoby to łatwiejsze rozwiązanie,
Martin Beckett
63
W systemie Windows XP ustawiłem zadanie AT, aby codziennie uruchamiało to polecenie w C: \
dir /s /b * > dirlist.txt
Zawiera pełną ścieżkę do wszystkich plików na dysku C. Wtedy zawsze, gdy potrzebuję znaleźć plik, mogę użyć findstr. Jest to lepsze niż wyszukiwanie w Eksploratorze Windows, ponieważ umożliwia dopasowanie wyrażeń regularnych na całej ścieżce. Na przykład:
Jest to bardzo szybkie rozwiązanie do skonfigurowania i świetne, jeśli masz nową instalację systemu Windows i brak połączenia internetowego.
Jeśli chcesz wyszukać jakiś wzorzec w określonych typach plików, najpierw wymień wszystkie pliki, które chcesz sprawdzić, a następnie wyszukaj w nich. Na przykład, aby znaleźć program Java lub Python, który odwraca obraz, możesz zrobić to:
Udostępnij kod, a ja podzielę się głosem pozytywnym :)
Even Mien
41
To będzie działać świetnie aż do dnia te szczególne Zanim wziął noc przed ... zapomnieć
Ed Guiness
Cała rzecz to właściwie proces dwuetapowy. Pierwszy krok zrzuca rzeczy z aparatu i zmienia ich nazwy. Drugi krok zawiera monit z pytaniem, czy chcesz przesłać do Flickr. To więcej dlatego, że przesyłanie ogranicza przepustowość, niż dlatego, że martwię się tym, co przesyłam.
Kilka lat temu napisałem aplikację winforms z pomocą kilku api Win32, aby całkowicie odciąć się od komputera na godzinę, aby zmusić mnie do pójścia i ćwiczenia. Ponieważ byłem leniwy? Nie ... ponieważ miałem osobisty cel fitness. Czasami wystarczy trochę kopa, aby zacząć :)
Napisałem skrypt w Pythonie, który trafiał do wszystkich komiksów internetowych, które czytałem, i pobierał nowe komiksy. Po prostu uruchamiam to raz dziennie i nie ma potrzeby odwiedzania każdej witryny z osobna, wystarczy odwiedzić / Comics / Folder. ;)
@Matthew - rozumiem twój punkt widzenia, ale nie rozumiem, dlaczego nie patrzenie na reklamę jest kwestią moralną / etyczną. Jeśli tak jest, autorzy No-Script i programów blokujących wyskakujące okienka mają wiele do zrobienia. ;)
Onion-Knight
1
Nie mam żadnego problemu z blokowaniem wyskakujących okienek, ponieważ wyskakujące okienka są obraźliwym sposobem wyświetlania reklam. Nie jest to do końca kwestia moralna, a raczej kwestia sprawiedliwości. Używam Adblockera w większości witryn, ale wyłączam go w niektórych witrynach, które często odwiedzam i chcę wspierać. Pobieranie komiksów za pomocą skryptu w języku Python (i nigdy nie oglądanie witryny) wydaje mi się przesadne, ale nie mogłem powiedzieć dokładnie, gdzie jest ta linia.
Matthew Scouten
14
Mój skrypt kopii zapasowej .cmd. Działa na moim serwerze każdej nocy i nazywa pliki kopii zapasowych według dnia tygodnia. Cały tydzień kopii zapasowych wiele razy uratował mnie (i moją rodzinę):
:: Kopia zapasowa argumentów:
:: / V Weryfikować? (tak nie)
:: / R Ograniczyć dostęp do właściciela? (tak nie)
:: / RS Wymienna pamięć masowa? (tak nie)
:: / HC Kompresja sprzętowa (wł. / Wył.)
:: / M Typ kopii zapasowej (normalna / kopiowana / różnicowa / przyrostowa / codzienna)
:: / L Typ pliku dziennika (f / s / n)
:: / D "Opis"
:: / J "Nazwa stanowiska"
:: / F "Nazwa-pliku"
SETLOCAL
:: upewnij się, że dyski sieciowe są zamontowane
CALL C: \ bat \ configs \ MapShares-home.cmd
echo włączone
ustaw dzisiaj =% DATE: ~ 0,3%
jeśli% dzisiaj% == Mon ustawiono wczoraj = 0 niedziela
jeśli% dzisiaj% == Wto ustawiono wczoraj = 1 poniedziałek
jeśli% dzisiaj% == Wed ustawiono wczoraj = 2 wtorek
jeśli% dzisiaj% == Czw ustawiono wczoraj = 3środę
jeśli% dzisiaj% == piątek ustawiono wczoraj = 4 czwartek
jeśli% dzisiaj% == Sobota ustawiona wczoraj = 5Piątek
jeśli% dzisiaj% == Słońce ustawione wczoraj = 6 Sobota
ustaw configsDir =% ~ dp0
set storePath = C: \ mybackups
:: (np .: pliki Monday C)
set title =% wczoraj% zestaw kopii zapasowych
echo% DATE%% TIME%% title%> "% storePath% \% yesterday% _backup.log"
ZADZWOŃ BackupConfigs.bat
:: Utwórz nowy plik BKF
zadzwoń do C: \ WINDOWS \ system32 \ ntbackup.exe kopia zapasowa ^
"@% configsDir% \ daily.bks" ^
/ V: tak / R: nie / RS: nie / HC: wyłączone / M normalne / L: s ^
/ D "% title%" ^
/ J "% title% .job" ^
/ F "% storePath% \% yesterday% .bkf" ^
>> "% storePath% \% yesterday% _backup.log"
echo% DATE%% TIME% Ukończono >> "% storePath% \% yesterday% _backup.log"
skopiuj "% storePath% \% yesterday% .bkf" "V: \ Backups \ NEPTUNE"
CALL C: \ bat \ clean-temps.bat
defrag -v C:> "% storePath% \% yesterday% _defrag.log"
:: wyświetl katalogi kopii zapasowych
start / D "C: \ bat \ Backups \" checkbkf.bat
ENDLOCAL
::pauza
Kilka fajnych sztuczek z plikiem .cmd. Wiedziałem, że możesz użyć „^”, aby uniknąć przekierowania i potoków, ale nie wiedziałem, że możesz go również użyć do kontynuacji linii. Fajnie :)
Patrick Cuff
Świat potrzebuje mniej skryptów .bat, a nie więcej! :-)
JesperE
2
W konsekwencji świat potrzebuje mniej Windows. Do tego czasu jest to najmniej wspólny mianownik. Udostępniam ten skrypt, ponieważ mogą go używać miliony ludzi.
Chris Noe
14
„backup.sh”, który rozkłada zawartość katalogu i wysyła ją na moje konto Gmail.
To jest fajne. Chociaż nie mam komputerów spośród moich dziesiątek, które mają konfigurację SMTP. Niestety.
mxcl,
Czy moglibyśmy prosić o kod?
Kostas
14
Napisałem skrypt, który był używany codziennie w moim zespole. Kiedy pracowałem dla Intela, mieliśmy aplikację, która komunikowała się z bazą danych dostępu, aby pobrać zrzut informacji z rejestru (pracowałem nad sprawdzaniem poprawności chipsetów). Pobrałby te informacje (z zapytania SQL) i zrzuciłby je do pliku CSV, pliku HTML i pliku Excel. Cały proces trwał prawie 2 godziny. Bez żartów. Nie mam pojęcia, dlaczego trwało to tak długo. Rozpoczynaliśmy to godzinę przed obiadem, szliśmy na obiad i wracaliśmy.
Pomyślałem, że musi być lepszy sposób na zrobienie tego. Rozmawiałem z zespołem, który utrzymywał bazę danych rejestru i uzyskałem od nich kod SQL. Następnie napisałem skrypt w Perlu, który pobierał dane i wyprowadzał je do formatów CSV, HTML i Excel. Runtime? Około 1-2 sekund. Wielka poprawa szybkości.
Napisałem też kilka scenariuszy, kiedy byłem na misji w Iraku w 2006 roku (służyłem w Gwardii Narodowej przez 9 lat - wydostałem się w grudniu). Użyliśmy tej starej aplikacji o nazwie ULLS-G (Unit Level Logistics System - Ground), która została napisana w ADA i pierwotnie działała w systemie DOS. Zhakowali go na tyle, aby działał w systemie Windows XP w powłoce poleceń. Ten system nie miał interfejsu myszy. Wszystko odbywało się za pomocą klawiatury i NIE miało funkcji wsadowej. Powiedzmy, że chcesz wydrukować licencje dla wszystkich operatorów pojazdów? Cóż ... mieliśmy w naszej jednostce 150 żołnierzy, więc zajęło to DŁUGO czasu. Powiedzmy, że każdy zdobył kwalifikacje na nowy pojazd i chcesz dodać go do kwalifikacji wszystkich operatorów? Trzeba było to robić jeden po drugim.
Udało mi się znaleźć sterownik ODBC dla bazy danych SAGE (używany przez ULLS-G), więc napisałem skrypty Perla, które były w stanie komunikować się z bazą danych SAGE. A więc rzeczy, które zajęły ponad godzinę, teraz zajęły tylko kilka sekund. Do raportowania użyłem także moich skryptów i sterownika. Każdego ranka musieliśmy przekazywać batalionowi wszystkie informacje. Inne jednostki zapisywały informacje ręcznie każdego ranka. Uruchomiłem makro Excela, które mówiło, korzystałem z tego samego sterownika i rozmawiałem z bazą danych SAGE iw ten sposób zaktualizowałem arkusz kalkulacyjny Excela. To najbardziej skomplikowane i jedyne makro Excela, jakie kiedykolwiek napisałem. Opłaciło się, ponieważ przyznali mi Army Commendation Medal. Więc tak, dostałem medal w wojsku za pisanie skryptów perla :) Ilu może tak powiedzieć? ;)
Jestem prywatnym pilotem. Napisałem kilka skryptów, które pobierają informacje o pogodzie dla lokalnych lotnisk z aviationweather.gov. Przydały się do szybkiej odpowiedzi na pytanie „Czy dziś jest dobry dzień na latanie?”
Fajne. Mam ochotę wyodrębnić wyrażenia regularne i wygenerować losowe instrukcje składające się tylko z wyrażeń pasujących do jednego lub więcej z nich.
eww ... Często czuję, że chcę iść w drugą stronę ...
chills42
1
Musisz się zastanawiać, dlaczego ludzie zaczynają głosować na odpowiedzi na pytania z tagiem subiektywne… o co chodzi?
Greg Whitfield
Tak, to jest krytyczne :)
Nick
11
Skrobak HTML z wątkami do pobierania wszystkich dostępnych napisów do seriali / filmów ze strony, która jest trudna w użyciu (musisz kliknąć około 4 razy po wyszukiwaniu, aby dostać się na stronę pobierania, aby wyświetlić więcej reklam). Teraz po prostu wstawiam kryteria wyszukiwania i naciskam pobierz.
Podzieli się tym, a strona się dowie :). Lepiej czasem nie udostępniać ...
Camilo Díaz Repka,
11
Skrypt w Perlu, który przenosi moją lokalną listę Craigslist, według wybranych kategorii, do bazy danych SQL, do której mogę następnie przeszukiwać.
Wersja 2 tego aktualizuje DB za pomocą licznika czasu i ostrzega mnie, jeśli mam dopasowanie w którymkolwiek z zapytań, w zasadzie zapewniając mi agenta działającego w tle dla CL.
Masowa zmiana nazwy pliku metodą przeciągnij i upuść.
Wieki temu stworzyłem mały VBScript, który akceptuje RegEx i odpowiednio zastępuje nazwy plików. Po prostu upuścisz na nim kilka plików lub folderów. Odkryłem, że jest to bardzo przydatne przez lata.
Wydaje się głupie, aby głosować nad opisem bez kodu.
Chris Noe
Kod byłby trochę za duży dla strony internetowej. Może „mały” to trochę za mało. To 170 LOC.
Tomalak
Mogę gdzieś wgrać skrypt i zamieścić link tutaj, jeśli jesteś zainteresowany.
Tomalak
8
Szybki i brudny skrypt w języku Python, który co 5 sekund sprawdzał DNS dla google.com i wydawał sygnał dźwiękowy raz, jeśli się powiedzie, i dwa razy, jeśli się nie powiedzie.
Napisałem to w czasie, gdy musiałem żyć z bardzo niestabilną siecią domową. Pozwoliło mi to od razu poznać stan sieci, nawet gdy byłem przodem pod biurkiem po drugiej stronie pokoju, z obiema rękami pełnymi kabla sieciowego i latarką w ustach.
No tak, po około 30 minutach doprowadziło mnie to do nietoperzy. Pomysł polegał na uzyskaniu informacji zwrotnej w czasie zbliżonym do rzeczywistego. Zwykle mogłem to naprawić w około 10 minut.
Matthew Scouten
8
To, z postu na moim blogu kilka miesięcy temu, przeszło od pomysłu, który uważałem za fajny, do jednego z najlepszych małych hacków, jakie wykrztusiłem w niedawnej pamięci. Cytuję to w całości tutaj:
==================
Spędzam dużo czasu w bash. Dla niewtajemniczonych bash to system, który można znaleźć na większości komputerów uniksowych i na szczęście w niektórych oknach i na każdym Macu. Na pierwszy rzut oka to nic innego jak interfejs wiersza poleceń, a zatem jest poza zasięgiem radaru większości użytkowników, którzy postrzegają takie rzeczy jako anachronizm, o którym woleliby zapomnieć.
W bash robię prawie wszystko. CZYTAM E-MAIL Z LINII POLECENIA, dlatego unikam oznaczania e-maili. Poruszam się po katalogach, edytuję pliki, codziennie sprawdzam i dostarczam kod źródłowy, wyszukuję pliki, przeszukuję pliki, restartuję komputer, a nawet od czasu do czasu przeglądam strony internetowe z wiersza poleceń. bash jest sercem i duszą mojej cyfrowej egzystencji.
Problem polega na tym, że mam zwykle otwartych około 6 okien bash naraz. W dzisiejszej pracy jeden z nich pracował na serwerze WWW, inny majstrował przy mojej bazie danych, trzeci, czwarty i piąty edytując różne pliki, podczas gdy szósty przeciskał się przez moją maszynę, próbując zapisać nazwy każdego pliku w systemie. Czemu? Ponieważ przydatne jest przeszukiwanie takiego archiwum, jeśli chcesz wiedzieć, gdzie znaleźć obiekt według nazwy pliku.
Kiedy to zrobisz, na pasku kontrolnym pojawi się wiele okien nazwanych po prostu „bash”. To jest w porządku, jeśli masz tylko jedną z nich, ale cierpienie, gdy masz 6 lub więcej ... i dwa tuziny innych rzeczy. Mam trzy monitory pod jednoczesną komendą jednej pary klawiatura / mysz i nadal czuję potrzebę więcej. Każde z tych okien ma kilka otwartych terminali bash.
Więc złożyłem to razem. Najpierw umieść te wiersze w swoim .bash_profile:
Przejrzałem i napisałem dziesiątki akapitów o tym, jak to wszystko działa i dlaczego dokładnie jest skonfigurowane tak, jak jest, ale tak naprawdę nie jesteś zainteresowany. Zaufaj mi. Jest cały rozdział książki, w którym napisałem „CMD = ...; echo ...” w tej trzeciej linii. Wiele osób (w tym bluehost, gdzie hostowana jest moja druga domena) nadal używa starej wersji basha z poważnymi błędami w obsłudze pułapek, więc utknęliśmy z tym. Możesz usunąć CMD i zastąpić go $ BASH_COMMAND, jeśli jesteś na bieżąco z wersją bash i masz ochotę przeprowadzić badania.
W każdym razie pierwszy skrypt, którego używam, jest tutaj. Tworzy fajny znak zachęty zawierający nazwę twojego komputera i katalog, skrócony do rozsądnej długości:
============trim.pl===========
#!/usr/bin/perl
#It seems that my cygwin box doesn't have HOSTNAME available in the
#environment - at least not to scripts - so I'm getting it elsewhere.
open (IN, "/usr/bin/hostname|");
$hostname = <IN>;
close (IN);
$hostname =~ /^([A-Za-z0-9-]*)/;
$host_short = $1;
$preamble = "..." if (length($ENV{"PWD"})>37);
$ENV{"PWD"} =~ /(.{1,37}$)/;
$path_short = $1;
print "$host_short: $preamble$path_short";
==============================
U góry tego wpisu na blogu znajduje się ostrzeżenie, które powinieneś przeczytać teraz, zanim zaczniesz zadawać głupie pytania, takie jak: „Dlaczego po prostu nie użyłeś zmiennej środowiskowej HOSTNAME za pośrednictwem @ENV?” Proste: ponieważ to nie działa dla wszystkich systemów, na których go wypróbowałem.
A teraz naprawdę fajny kawałek. Pamiętasz linię 3 dodatku .bash_profile?
Zrzuca wyjście skryptu trim.pl do tego samego kontenera co poprzednio, drukując zarówno do wiersza poleceń, jak i do tytułu okna, ale tym razem dodaje polecenie, które właśnie wpisałeś! Dlatego nie chcesz robić tego wszystkiego w swoim .bashrc: każdy skrypt, który uruchomisz (na mojej maszynie, man jest jednym z nich) spowoduje to w każdej linii. dorobek człowieka zostaje poważnie zniekształcony przez to, co tutaj robimy. Nie bawimy się dobrze z terminalem.
Aby pobrać polecenie, które właśnie wpisałeś, bierzemy historię basha i trochę ją kroimy:
Więc teraz mam miliardy okien i mówią takie rzeczy:
castro: /home/ronb blog
Ron-D630: /C/ronb/rails/depot script/server
Ron-D630: /C/ronb/rails/depot mysql -u ron -p
Ron-D630: /C/ronb/rails/depot find . > /C/ronb/system.map
Ron-D630: /C/ronb/rails/depot vi app/views/cart.html.erb
Ron-D630: /C/perforce/depot/ p4 protect
Ron-D630: /C/perforce/depot/ p4 sync -f
Ron-D630: /C/perforce/depot/
Ze szczęśliwego małego paska u dołu ekranu mogę teraz na pierwszy rzut oka stwierdzić, który jest który. A ponieważ ustawiliśmy PS1, gdy tylko polecenie zakończy wykonywanie, nazwa polecenia jest ponownie zastępowana tylko wyjściem trim.pl.
UPDATE (ten sam dzień): Te rzeczy (wpisy .bash_profile) położyły na mnie wszelkiego rodzaju piekło, kiedy wypróbowałem to w moim .bashrc. Twoje .bashrc jest wykonywane przez nieinteraktywne skrypty za każdym razem, gdy wywołujesz bash jako język. Uderzyłem w to, kiedy próbowałem wykorzystać człowieka. Wszelkiego rodzaju śmieci (pełny tekst mojego .bashrc, plus znaki ucieczki) pojawiły się na górze strony podręcznika. Sugerowałbym przetestowanie tego klejnotu za pomocą szybkiego wywołania `` człowiek-człowiek '' w wierszu poleceń, gdy wszystko już zbierzesz.
Myślę, że nadszedł czas, abym wyciągnął niestandardowe śmieci z mojego .bashrc i umieścił je tam, gdzie należy ...
W pewnym momencie tego procesu bezwarunkowo wpisałem „man trap”.
W moim poprzednim miejscu pracy godziny pracy były śmieszne. To była firma programistyczna i mój szef był do dupy. Dał nam pracę około godziny 17:30 (dokładnie wtedy, gdy trzeba było wracać do domu) i kazał nam kończyć pracę do godziny 23:00 (znacznie po naszych idealnych godzinach pracy). Lub znalazł irytujące problemy w kodzie, który wciąż był w toku.
Zrobiłem więc plik wsadowy i skrypt, który wyłączałby mój komputer w losowym czasie między 19:00 a 20:00. Miał 1 minutowy licznik czasu na wypadek, gdybym został po godzinach i musiał przerwać proces wyłączania.
Ale wychodziłam z biurka przed 17:00, więc nie mógł mnie znaleźć, żeby mnie zatrzymać, gdyby chciał rzucić bzdury przed kasą. Gdyby podszedł do mojego biurka i zobaczył, że mój komputer jest włączony, pomyślałby, że wciąż jestem w spiżarni lub w pobliskim mini-sklepie, żeby złapać jakieś żetony lub coś. Ale gdyby w tym czasie było wyłączone, zadzwoniłby na mój telefon komórkowy i kazał mi wracać do biura.
Zaplanowałem również BIOS na moim komputerze, aby włączyć go około 8:00 lub 9:00, na wypadek, gdybym poczuł się leniwy i chciał spacerować około 10:00 lub 11:00. Gdybym przyłapał mnie na chodzeniu do mojego biurka, pytał „gdzie byłeś przez cały ranek?” A ja odpowiadałem: „Byłem na spotkaniu z zespołem marketingu”. lub „Jadłem śniadanie”.
Kiedyś pracowałem na letnim obozie technologicznym i pod koniec tygodnia musieliśmy skomponować te notatki dla każdego z dzieci w grupie, które następnie otrzymywały i zabrały do domu jako pamiątkę. Zwykle składały się one z kilku zdań ogólnych i od jednego do dwóch zdań spersonalizowanych. Napisałem skrypt Pythona, który skonstruował jeden z tych zapisów z banku gotowych zdań i pozwolił użytkownikowi dodać kilka spersonalizowanych zdań w środku. Zaoszczędziło to ogromną ilość czasu mnie i innym doradcom, których ujawniłem. Mimo że wiele z nich było zautomatyzowanych, nasze zapisy nadal wyglądały lepiej niż wiele „uczciwych”, ponieważ mogliśmy poświęcić więcej czasu na spersonalizowane części.
#! /bin/bash
# check to see if site is up
# if it is, don't worry
# if it's down, restart apache after get a process listing
#
# v.1 Warren M Myers - initial stab
# 31 Aug 06
#
ERRCOD='7'
WHEN=`date +%d%b%y`
REPT="~/psaux.$WHEN.txt"
STARS='********************'
curl -I http://www.shodor.org > /var/tmp/curlret.txt
if [ "$?" = "$ERRCOD" ]; then
# return was unable to connect to host: save ps -aux; mail report
ps -aux > $REPT
echo $STARS
echo 'curl return results'
echo
cat curlret.txt
echo
echo $STARS
echo 'ps -aux results'
cat $REPT
echo
echo $STARS
echo 'restarting apache'
/etc/init.d/apache2 restart
echo 'apache restarted'
echo
echo "ps -aux results saved in $REPT"
fi
rm -f /var/tmp/curlret.txt
Używam tego jako funkcji automatycznie ładowanej. Mogę po prostu wpisać „mycd” i pojawia się lista katalogów, do których często przechodzę. Jeśli wiem, to numer, mogę po prostu powiedzieć coś w rodzaju „mycd 2”. Aby dodać katalog do listy, wystarczy wpisać „mycd / tmp / foo / jakiś katalog”.
function mycd {
MYCD=/tmp/mycd.txt
touch ${MYCD}
typeset -i x
typeset -i ITEM_NO
typeset -i i
x=0
if [[ -n "${1}" ]]; then
if [[ -d "${1}" ]]; then
print "${1}" >> ${MYCD}
sort -u ${MYCD} > ${MYCD}.tmp
mv ${MYCD}.tmp ${MYCD}
FOLDER=${1}
else
i=${1}
FOLDER=$(sed -n "${i}p" ${MYCD})
fi
fi
if [[ -z "${1}" ]]; then
print ""
cat ${MYCD} | while read f; do
x=$(expr ${x} + 1)
print "${x}. ${f}"
done
print "\nSelect #"
read ITEM_NO
FOLDER=$(sed -n "${ITEM_NO}p" ${MYCD})
fi
if [[ -d "${FOLDER}" ]]; then
cd ${FOLDER}
fi
}
Kiedy uruchamiam "mycd", otrzymuję: "-bash: print: polecenie nie zostało znalezione". Kiedy używam „mycd / folder /”, nie dodaje to niczego do /tmp/mycd.txt. Czy mam złe ustawienia?
Léo Léopold Hertz 준영
Ach tak, możesz chcieć zamienić instrukcje „print” na „echo”. ;-)
wzzrd
@wzzrd Jak upokarzające;) Bardzo fajna funkcja, @Ethan Post. Dziękuję za udostępnienie!
Léo Léopold Hertz 준영
5
Lubię przechowywać moje zdjęcia w katalogu na podstawie daty wykonania zdjęcia. Dlatego napisałem program, który skanował kartę pamięci w poszukiwaniu zdjęć, tworzył na dysku twardym dowolne foldery na podstawie dat zdjęć, a następnie kopiował je.
Chcesz dodać tutaj skrypt? Bardzo chciałbym tę funkcjonalność, robię to samo!
Pharaun
Obawiam się, że to aplikacja ac #, a nie skrypt.
Valerion,
Czy korzystasz z informacji exif zapisanych na zdjęciach? Czy mógłbyś udostępnić scenariusz?
JJD
5
Napisałem skrypt, aby kliknąć mój przycisk Start, a następnie kliknąć go ponownie za pół sekundy i powtarzać co 30 sekund.
Dzięki temu jestem oznaczony jako online w pracy i mogę wykonać prawdziwą pracę na moim osobistym laptopie tuż obok. Nie ugrzęzły w oprogramowaniu roboczym.
Ha ha ha, dobra rzecz. +1 za uczciwość i nieuczciwość! :)
Kyle Walsh
4
Różne skróty do poleceń „net start” i „net stop”, dzięki czemu mogę uruchamiać i zatrzymywać usługi bez konieczności przechodzenia do konsoli MMC usług
Skrypt powłoki do wykonywania rotacyjnych kopii zapasowych przy użyciu rsync. Obsługuje również wykonywanie dowolnych programów potomnych w celu obsługi innych czynności poprzedzających tworzenie kopii zapasowych (na przykład pobieranie pysznych zakładek).
Mała aplikacja, która klikała lewym przyciskiem myszy (lub klikała dwukrotnie) co „X” ms przez czas „Y”. Nie ma już potrzeby, aby ten pijący ptak pracował w elektrowni atomowej! ;)
Odpowiedzi:
Mój
o
klucz spadł z laptopa; więc napisałem program, który zastępuje dwa0
naciśnięcia klawiszy w odległości 200 ms od siebie jakoo
, dwa0
naciśnięcia klawiszy w odległości 700 ms od siebie jako a0
i ignoruje resztę; więc mogłem użyć laptopa, zanim zabiorę się do wymiany klawiatury.Łał; Nie wiedziałem, że to będzie tak popularne: str
Jeśli chodzi o to, jak - Microsoft udostępnia fajną funkcję API o nazwie Hooks .
Korzystanie z tego haka; Udało mi się napisać „filtr”, który zrobił to, czego potrzebowałem (wskazówka: jeśli zwrócisz 1 z oknami wywołań zwrotnych, nie przetworzy naciśnięcia klawisza).
Powodem, dla którego o tym wiem, nie jest fakt, że pisałem keyloggera - ale dlatego, że jakiś czas temu napisałem program smilera do Synergy .
I tak. Napisałem inny program, który zamieniał klawisze alfanumeryczne losowym kluczem alfanumerycznym i tak; to było naprawdę zabawne: D
źródło
Nie mam już kodu, ale prawdopodobnie najbardziej przydatnym skryptem, który napisałem, był, wierz lub nie, w VBA. Miałem denerwującego kolegę, który miał tak krótki lont, że nazwałem go Cherry Bomb. Często wściekał się, gdy dzwonili klienci, a potem wstawał i zaczynał na mnie narzekać przez ścianę kabiny, niszcząc moją produktywność i morale.
Zawsze miałem otwarty Microsoft Excel. Kiedy to robił, przechodziłem przez Alt-Tab do Excela, a na pasku narzędzi pojawiła się nowa ikona z obrazem wiśniowej bomby. Dyskretnie to kliknąłbym ... i nic by się nie stało.
Jednak wkrótce potem odbierałem telefon i mówiłem coś w stylu „tak, tak, to brzmi źle. Lepiej spojrzeć”. A potem wstawałem, przepraszałem Cherry Bomb i odchodziłem.
Zdarzyło się, że użyliśmy NetWare i miał on wbudowany prymitywny system przesyłania wiadomości. Kiedy kliknąłem przycisk, mały skrypt VBA wysłał wiadomość NetWare do moich przyjaciół, informując ich, że Cherry Bomb znów jest w tym miejscu i czy oni proszę zadzwoń do mnie. Nigdy tego nie rozgryzł :)
źródło
Został wywołany skrypt bash , więc jeśli jestem w nim
/a/very/deeply/nested/path/somewhere
i chcę przejść „w górę” katalogów N , mogę wpisać :up N
Na przykład:
NB przez gmatt:
Pracując nad wspaniałą pracą powyżej, można ją rozszerzyć do funkcji wstecznej, umieszczając w swoim bashrc:
źródło
back
metodę, więc za każdym razem, gdy używasz, możesz używać wstecz, aby łatwo poruszać się tam iz powrotem. Aby go użyć, umieść to w swoim bashrc (przepraszam za formatowanie gówna): function up () {LIMIT = $ 1 P = $ PWD for ((i = 1; i <= LIMIT; i ++)) do P = $ P / .. done cd $ P export MPWD = $ P} function back () {LIMIT = $ 1 P = $ MPWD for ((i = 1; i <= LIMIT; i ++)) do P = $ {P% / ..} done cd $ P export MPWD = $ P}Super zdalny przycisk resetowania.
Stojak z super specjalnym sprzętem do symulacji (w czasach, gdy pokój pełen skrzynek VME robił mniej niż twój GPU), który użytkownik po drugiej stronie świata załamałby się we wczesnych godzinach porannych. Dotarcie do laboratorium i przejście przez ochronę zajęło godzinę.
Ale nie mogliśmy łączyć się z super specjalnym kontrolerem ani modyfikować sprzętu. Rozwiązaniem była stara stacja robocza DEC z drukarką igłową firmy Epson, przyklej plastikową linijkę do pokrętła podawania papieru, ustaw drukarkę w pobliżu przycisku resetowania.
Zaloguj się do WS jako zwykły użytkownik (bez uprawnień roota, wszystkie porty zewnętrzne są zablokowane), wydrukuj dokument z 24 pustymi liniami - obracając pokrętło podawania papieru i linijką wciśniętą na reset na super specjalnym sprzęcie.
źródło
W systemie Windows XP ustawiłem zadanie AT, aby codziennie uruchamiało to polecenie w C: \
Zawiera pełną ścieżkę do wszystkich plików na dysku C. Wtedy zawsze, gdy potrzebuję znaleźć plik, mogę użyć
findstr
. Jest to lepsze niż wyszukiwanie w Eksploratorze Windows, ponieważ umożliwia dopasowanie wyrażeń regularnych na całej ścieżce. Na przykład:Jest to bardzo szybkie rozwiązanie do skonfigurowania i świetne, jeśli masz nową instalację systemu Windows i brak połączenia internetowego.
Jeśli chcesz wyszukać jakiś wzorzec w określonych typach plików, najpierw wymień wszystkie pliki, które chcesz sprawdzić, a następnie wyszukaj w nich. Na przykład, aby znaleźć program Java lub Python, który odwraca obraz, możesz zrobić to:
źródło
Mam skrypt w języku Python, który uruchamia się automatycznie po podłączeniu aparatu cyfrowego.
Kopiuje wszystkie zdjęcia z karty w aparacie, tworzy ich kopie zapasowe, a następnie przesyła je do Flickr.
Fragment do przesłania do Flickr pochodzi z uploadr.py (za co nie mogę się pochwalić ).
Oto kod Pythona do wyładowania kamery. Powtarza się przez SRCDIR i nazywa każdy obraz datą i godziną przed skopiowaniem obrazów do DESTDIR.
źródło
Kilka lat temu napisałem aplikację winforms z pomocą kilku api Win32, aby całkowicie odciąć się od komputera na godzinę, aby zmusić mnie do pójścia i ćwiczenia. Ponieważ byłem leniwy? Nie ... ponieważ miałem osobisty cel fitness. Czasami wystarczy trochę kopa, aby zacząć :)
źródło
Napisałem skrypt w Pythonie, który trafiał do wszystkich komiksów internetowych, które czytałem, i pobierał nowe komiksy. Po prostu uruchamiam to raz dziennie i nie ma potrzeby odwiedzania każdej witryny z osobna, wystarczy odwiedzić / Comics / Folder. ;)
źródło
Mój skrypt kopii zapasowej .cmd. Działa na moim serwerze każdej nocy i nazywa pliki kopii zapasowych według dnia tygodnia. Cały tydzień kopii zapasowych wiele razy uratował mnie (i moją rodzinę):
źródło
„backup.sh”, który rozkłada zawartość katalogu i wysyła ją na moje konto Gmail.
źródło
Napisałem skrypt, który był używany codziennie w moim zespole. Kiedy pracowałem dla Intela, mieliśmy aplikację, która komunikowała się z bazą danych dostępu, aby pobrać zrzut informacji z rejestru (pracowałem nad sprawdzaniem poprawności chipsetów). Pobrałby te informacje (z zapytania SQL) i zrzuciłby je do pliku CSV, pliku HTML i pliku Excel. Cały proces trwał prawie 2 godziny. Bez żartów. Nie mam pojęcia, dlaczego trwało to tak długo. Rozpoczynaliśmy to godzinę przed obiadem, szliśmy na obiad i wracaliśmy.
Pomyślałem, że musi być lepszy sposób na zrobienie tego. Rozmawiałem z zespołem, który utrzymywał bazę danych rejestru i uzyskałem od nich kod SQL. Następnie napisałem skrypt w Perlu, który pobierał dane i wyprowadzał je do formatów CSV, HTML i Excel. Runtime? Około 1-2 sekund. Wielka poprawa szybkości.
Napisałem też kilka scenariuszy, kiedy byłem na misji w Iraku w 2006 roku (służyłem w Gwardii Narodowej przez 9 lat - wydostałem się w grudniu). Użyliśmy tej starej aplikacji o nazwie ULLS-G (Unit Level Logistics System - Ground), która została napisana w ADA i pierwotnie działała w systemie DOS. Zhakowali go na tyle, aby działał w systemie Windows XP w powłoce poleceń. Ten system nie miał interfejsu myszy. Wszystko odbywało się za pomocą klawiatury i NIE miało funkcji wsadowej. Powiedzmy, że chcesz wydrukować licencje dla wszystkich operatorów pojazdów? Cóż ... mieliśmy w naszej jednostce 150 żołnierzy, więc zajęło to DŁUGO czasu. Powiedzmy, że każdy zdobył kwalifikacje na nowy pojazd i chcesz dodać go do kwalifikacji wszystkich operatorów? Trzeba było to robić jeden po drugim.
Udało mi się znaleźć sterownik ODBC dla bazy danych SAGE (używany przez ULLS-G), więc napisałem skrypty Perla, które były w stanie komunikować się z bazą danych SAGE. A więc rzeczy, które zajęły ponad godzinę, teraz zajęły tylko kilka sekund. Do raportowania użyłem także moich skryptów i sterownika. Każdego ranka musieliśmy przekazywać batalionowi wszystkie informacje. Inne jednostki zapisywały informacje ręcznie każdego ranka. Uruchomiłem makro Excela, które mówiło, korzystałem z tego samego sterownika i rozmawiałem z bazą danych SAGE iw ten sposób zaktualizowałem arkusz kalkulacyjny Excela. To najbardziej skomplikowane i jedyne makro Excela, jakie kiedykolwiek napisałem. Opłaciło się, ponieważ przyznali mi Army Commendation Medal. Więc tak, dostałem medal w wojsku za pisanie skryptów perla :) Ilu może tak powiedzieć? ;)
źródło
Jestem prywatnym pilotem. Napisałem kilka skryptów, które pobierają informacje o pogodzie dla lokalnych lotnisk z aviationweather.gov. Przydały się do szybkiej odpowiedzi na pytanie „Czy dziś jest dobry dzień na latanie?”
źródło
Skrypt Greasemonkey, który usuwa ewidentnie głupie [*] komentarze ze strony z grami Kotaku.com.
[*] Na co wskazują częste błędy w pisowni, pisanie wielkimi literami, nadmierne użycie „LOL” i podobne heurystyki.
źródło
alias dir = 'ls -al' to mój ulubiony skrypt.
źródło
Skrobak HTML z wątkami do pobierania wszystkich dostępnych napisów do seriali / filmów ze strony, która jest trudna w użyciu (musisz kliknąć około 4 razy po wyszukiwaniu, aby dostać się na stronę pobierania, aby wyświetlić więcej reklam). Teraz po prostu wstawiam kryteria wyszukiwania i naciskam pobierz.
źródło
Skrypt w Perlu, który przenosi moją lokalną listę Craigslist, według wybranych kategorii, do bazy danych SQL, do której mogę następnie przeszukiwać.
Wersja 2 tego aktualizuje DB za pomocą licznika czasu i ostrzega mnie, jeśli mam dopasowanie w którymkolwiek z zapytań, w zasadzie zapewniając mi agenta działającego w tle dla CL.
źródło
Masowa zmiana nazwy pliku metodą przeciągnij i upuść.
Wieki temu stworzyłem mały VBScript, który akceptuje RegEx i odpowiednio zastępuje nazwy plików. Po prostu upuścisz na nim kilka plików lub folderów. Odkryłem, że jest to bardzo przydatne przez lata.
gist.github.com/15824 (uwaga, komentarze są w języku niemieckim)
źródło
Szybki i brudny skrypt w języku Python, który co 5 sekund sprawdzał DNS dla google.com i wydawał sygnał dźwiękowy raz, jeśli się powiedzie, i dwa razy, jeśli się nie powiedzie.
Napisałem to w czasie, gdy musiałem żyć z bardzo niestabilną siecią domową. Pozwoliło mi to od razu poznać stan sieci, nawet gdy byłem przodem pod biurkiem po drugiej stronie pokoju, z obiema rękami pełnymi kabla sieciowego i latarką w ustach.
źródło
To, z postu na moim blogu kilka miesięcy temu, przeszło od pomysłu, który uważałem za fajny, do jednego z najlepszych małych hacków, jakie wykrztusiłem w niedawnej pamięci. Cytuję to w całości tutaj:
==================
Spędzam dużo czasu w bash. Dla niewtajemniczonych bash to system, który można znaleźć na większości komputerów uniksowych i na szczęście w niektórych oknach i na każdym Macu. Na pierwszy rzut oka to nic innego jak interfejs wiersza poleceń, a zatem jest poza zasięgiem radaru większości użytkowników, którzy postrzegają takie rzeczy jako anachronizm, o którym woleliby zapomnieć.
W bash robię prawie wszystko. CZYTAM E-MAIL Z LINII POLECENIA, dlatego unikam oznaczania e-maili. Poruszam się po katalogach, edytuję pliki, codziennie sprawdzam i dostarczam kod źródłowy, wyszukuję pliki, przeszukuję pliki, restartuję komputer, a nawet od czasu do czasu przeglądam strony internetowe z wiersza poleceń. bash jest sercem i duszą mojej cyfrowej egzystencji.
Problem polega na tym, że mam zwykle otwartych około 6 okien bash naraz. W dzisiejszej pracy jeden z nich pracował na serwerze WWW, inny majstrował przy mojej bazie danych, trzeci, czwarty i piąty edytując różne pliki, podczas gdy szósty przeciskał się przez moją maszynę, próbując zapisać nazwy każdego pliku w systemie. Czemu? Ponieważ przydatne jest przeszukiwanie takiego archiwum, jeśli chcesz wiedzieć, gdzie znaleźć obiekt według nazwy pliku.
Kiedy to zrobisz, na pasku kontrolnym pojawi się wiele okien nazwanych po prostu „bash”. To jest w porządku, jeśli masz tylko jedną z nich, ale cierpienie, gdy masz 6 lub więcej ... i dwa tuziny innych rzeczy. Mam trzy monitory pod jednoczesną komendą jednej pary klawiatura / mysz i nadal czuję potrzebę więcej. Każde z tych okien ma kilka otwartych terminali bash.
Więc złożyłem to razem. Najpierw umieść te wiersze w swoim .bash_profile:
Przejrzałem i napisałem dziesiątki akapitów o tym, jak to wszystko działa i dlaczego dokładnie jest skonfigurowane tak, jak jest, ale tak naprawdę nie jesteś zainteresowany. Zaufaj mi. Jest cały rozdział książki, w którym napisałem „CMD =
...
; echo ...” w tej trzeciej linii. Wiele osób (w tym bluehost, gdzie hostowana jest moja druga domena) nadal używa starej wersji basha z poważnymi błędami w obsłudze pułapek, więc utknęliśmy z tym. Możesz usunąć CMD i zastąpić go $ BASH_COMMAND, jeśli jesteś na bieżąco z wersją bash i masz ochotę przeprowadzić badania.W każdym razie pierwszy skrypt, którego używam, jest tutaj. Tworzy fajny znak zachęty zawierający nazwę twojego komputera i katalog, skrócony do rozsądnej długości:
U góry tego wpisu na blogu znajduje się ostrzeżenie, które powinieneś przeczytać teraz, zanim zaczniesz zadawać głupie pytania, takie jak: „Dlaczego po prostu nie użyłeś zmiennej środowiskowej HOSTNAME za pośrednictwem @ENV?” Proste: ponieważ to nie działa dla wszystkich systemów, na których go wypróbowałem.
A teraz naprawdę fajny kawałek. Pamiętasz linię 3 dodatku .bash_profile?
Zrzuca wyjście skryptu trim.pl do tego samego kontenera co poprzednio, drukując zarówno do wiersza poleceń, jak i do tytułu okna, ale tym razem dodaje polecenie, które właśnie wpisałeś! Dlatego nie chcesz robić tego wszystkiego w swoim .bashrc: każdy skrypt, który uruchomisz (na mojej maszynie, man jest jednym z nich) spowoduje to w każdej linii. dorobek człowieka zostaje poważnie zniekształcony przez to, co tutaj robimy. Nie bawimy się dobrze z terminalem.
Aby pobrać polecenie, które właśnie wpisałeś, bierzemy historię basha i trochę ją kroimy:
Więc teraz mam miliardy okien i mówią takie rzeczy:
Ze szczęśliwego małego paska u dołu ekranu mogę teraz na pierwszy rzut oka stwierdzić, który jest który. A ponieważ ustawiliśmy PS1, gdy tylko polecenie zakończy wykonywanie, nazwa polecenia jest ponownie zastępowana tylko wyjściem trim.pl.
UPDATE (ten sam dzień): Te rzeczy (wpisy .bash_profile) położyły na mnie wszelkiego rodzaju piekło, kiedy wypróbowałem to w moim .bashrc. Twoje .bashrc jest wykonywane przez nieinteraktywne skrypty za każdym razem, gdy wywołujesz bash jako język. Uderzyłem w to, kiedy próbowałem wykorzystać człowieka. Wszelkiego rodzaju śmieci (pełny tekst mojego .bashrc, plus znaki ucieczki) pojawiły się na górze strony podręcznika. Sugerowałbym przetestowanie tego klejnotu za pomocą szybkiego wywołania `` człowiek-człowiek '' w wierszu poleceń, gdy wszystko już zbierzesz.
Myślę, że nadszedł czas, abym wyciągnął niestandardowe śmieci z mojego .bashrc i umieścił je tam, gdzie należy ...
W pewnym momencie tego procesu bezwarunkowo wpisałem „man trap”.
źródło
W moim poprzednim miejscu pracy godziny pracy były śmieszne. To była firma programistyczna i mój szef był do dupy. Dał nam pracę około godziny 17:30 (dokładnie wtedy, gdy trzeba było wracać do domu) i kazał nam kończyć pracę do godziny 23:00 (znacznie po naszych idealnych godzinach pracy). Lub znalazł irytujące problemy w kodzie, który wciąż był w toku.
Zrobiłem więc plik wsadowy i skrypt, który wyłączałby mój komputer w losowym czasie między 19:00 a 20:00. Miał 1 minutowy licznik czasu na wypadek, gdybym został po godzinach i musiał przerwać proces wyłączania.
Ale wychodziłam z biurka przed 17:00, więc nie mógł mnie znaleźć, żeby mnie zatrzymać, gdyby chciał rzucić bzdury przed kasą. Gdyby podszedł do mojego biurka i zobaczył, że mój komputer jest włączony, pomyślałby, że wciąż jestem w spiżarni lub w pobliskim mini-sklepie, żeby złapać jakieś żetony lub coś. Ale gdyby w tym czasie było wyłączone, zadzwoniłby na mój telefon komórkowy i kazał mi wracać do biura.
Zaplanowałem również BIOS na moim komputerze, aby włączyć go około 8:00 lub 9:00, na wypadek, gdybym poczuł się leniwy i chciał spacerować około 10:00 lub 11:00. Gdybym przyłapał mnie na chodzeniu do mojego biurka, pytał „gdzie byłeś przez cały ranek?” A ja odpowiadałem: „Byłem na spotkaniu z zespołem marketingu”. lub „Jadłem śniadanie”.
głupi pies
źródło
Kiedyś pracowałem na letnim obozie technologicznym i pod koniec tygodnia musieliśmy skomponować te notatki dla każdego z dzieci w grupie, które następnie otrzymywały i zabrały do domu jako pamiątkę. Zwykle składały się one z kilku zdań ogólnych i od jednego do dwóch zdań spersonalizowanych. Napisałem skrypt Pythona, który skonstruował jeden z tych zapisów z banku gotowych zdań i pozwolił użytkownikowi dodać kilka spersonalizowanych zdań w środku. Zaoszczędziło to ogromną ilość czasu mnie i innym doradcom, których ujawniłem. Mimo że wiele z nich było zautomatyzowanych, nasze zapisy nadal wyglądały lepiej niż wiele „uczciwych”, ponieważ mogliśmy poświęcić więcej czasu na spersonalizowane części.
źródło
źródło
Skrypt Greasemonkey służący do dodawania pola kontrolnego „naciskaj dużo tego przycisku” do gry online.
źródło
Mały skrypt, który monitoruje niektóre popularne witryny pod kątem reklam pasujących do moich umiejętności i wysyła mi e-mail.
źródło
Używam tego jako funkcji automatycznie ładowanej. Mogę po prostu wpisać „mycd” i pojawia się lista katalogów, do których często przechodzę. Jeśli wiem, to numer, mogę po prostu powiedzieć coś w rodzaju „mycd 2”. Aby dodać katalog do listy, wystarczy wpisać „mycd / tmp / foo / jakiś katalog”.
źródło
Lubię przechowywać moje zdjęcia w katalogu na podstawie daty wykonania zdjęcia. Dlatego napisałem program, który skanował kartę pamięci w poszukiwaniu zdjęć, tworzył na dysku twardym dowolne foldery na podstawie dat zdjęć, a następnie kopiował je.
źródło
Napisałem skrypt, aby kliknąć mój przycisk Start, a następnie kliknąć go ponownie za pół sekundy i powtarzać co 30 sekund.
Dzięki temu jestem oznaczony jako online w pracy i mogę wykonać prawdziwą pracę na moim osobistym laptopie tuż obok. Nie ugrzęzły w oprogramowaniu roboczym.
Nie mów szefowi :)
źródło
Różne skróty do poleceń „net start” i „net stop”, dzięki czemu mogę uruchamiać i zatrzymywać usługi bez konieczności przechodzenia do konsoli MMC usług
źródło
Skrypt powłoki do wykonywania rotacyjnych kopii zapasowych przy użyciu rsync. Obsługuje również wykonywanie dowolnych programów potomnych w celu obsługi innych czynności poprzedzających tworzenie kopii zapasowych (na przykład pobieranie pysznych zakładek).
http://gist.github.com/6806
źródło
Mała aplikacja, która klikała lewym przyciskiem myszy (lub klikała dwukrotnie) co „X” ms przez czas „Y”. Nie ma już potrzeby, aby ten pijący ptak pracował w elektrowni atomowej! ;)
źródło