40 prostych, ale skutecznych Linux Shell Script Examples

Historycznie, powłoka była natywnym interpreterem wiersza poleceń dla systemów uniksopodobnych. Okazała się ona jedną z głównych cech Uniksa na przestrzeni lat i sama urosła do rangi zupełnie nowego tematu. Linux oferuje wiele potężnych powłok o rozbudowanej funkcjonalności, w tym Bash, Zsh, Tcsh i Ksh. Jedną z najbardziej zadziwiających cech tych powłok jest ich programowalność. Tworzenie prostych, ale efektywnych skryptów powłoki Linuksa do wykonywania codziennych zadań jest całkiem łatwe. Co więcej, skromna wiedza na ten temat sprawi, że staniesz się potężnym użytkownikiem Linuksa w krótkim czasie. Zostań z nami, aby uzyskać szczegółowe wprowadzenie do skryptów powłoki Uniksa.

Przykłady skryptów powłoki Linuksa

Większość skryptów powłoki wykonywanych na Linuksie dotyczy powłoki bash. Zaawansowani użytkownicy, którzy mają określony wybór, często używają innych powłok, takich jak Zsh i Ksh. W naszych przykładach będziemy głównie trzymać się skryptów bash w Linuksie ze względu na ich powszechną popularność i ogromną użyteczność. Nasi redaktorzy postarali się również nakreślić kilka przykładów skryptów powłoki, które dotyczą powłok innych niż bash. Znajdziesz znaczną ilość znajomości pomiędzy różnymi skryptami powłoki.

Skrypty Bash

Bash aka the Bourne Again Shell jest domyślnym interpreterem wiersza poleceń w większości dystrybucji Linuksa obecnie. Jest to uaktualnienie wcześniejszej powłoki Bourne’a, która została po raz pierwszy wprowadzona w wersji 7 Uniksa. Nauka skryptów powłoki bash pozwoli ci na zrozumienie innych skryptów powłoki znacznie szybciej. Tak więc, wypróbuj te proste przykłady samodzielnie, aby zdobyć doświadczenie z pierwszej ręki.

1. Hello World

Programiści często uczą się nowych języków poprzez naukę programu hello world. Jest to prosty program, który wypisuje ciąg „Hello World” na standardowe wyjście. Użyj edytora takiego jak vim lub nano, aby utworzyć plik hello-world.sh i skopiuj do niego poniższe linie.

#!/bin/bashecho "Hello World"

Zapisz i zamknij plik. Musisz uczynić ten plik wykonywalnym używając poniższego polecenia.

$ chmod a+x hello-world.sh

Możesz to uruchomić używając któregoś z poniższych dwóch poleceń.

$ bash hello-world.sh$ ./hello-world.sh

Wydrukuje ono łańcuch przekazany do echo wewnątrz skryptu.

2. Użycie echo do drukowania

Komenda echo jest używana do drukowania informacji w bashu. Jest ono podobne do funkcji C 'printf’ i zapewnia wiele typowych opcji, w tym sekwencje ucieczki i przekierowania.

Skopiuj poniższe linie do pliku o nazwie echo.sh i uczyń go wykonywalnym, jak zrobiono powyżej.

#!/bin/bashecho "Printing text"echo -n "Printing text without newline"echo -e "\nRemoving \t special \t characters\n"

Uruchom skrypt, aby zobaczyć, co robi. Opcja -e służy do poinformowania echo, że przekazany mu łańcuch zawiera znaki specjalne i wymaga rozszerzonej funkcjonalności.

3. Używanie komentarzy

Komentarze są użyteczne dla dokumentacji i są wymogiem dla wysokiej jakości baz kodu. Powszechną praktyką jest umieszczanie komentarzy wewnątrz kodów, które mają do czynienia z krytyczną logiką. Aby wykomentować linię, wystarczy użyć znaku #(hash) przed nią. Sprawdź poniższy przykład skryptu basha.

#!/bin/bash# Adding two values((sum=25+35))#Print the resultecho $sum

Ten skrypt wypisze liczbę 60. Sprawdź jak używane są komentarze używając # przed niektórymi liniami. Pierwsza linia jest jednak wyjątkiem. Nazywa się shebang i pozwala systemowi wiedzieć, jakiego interpretera użyć podczas uruchamiania tego skryptu.

4. Komentarze wielowierszowe

Wiele osób używa komentarzy wielowierszowych do dokumentowania swoich skryptów powłoki. Sprawdź, jak to się robi w następnym skrypcie o nazwie comment.sh.

#!/bin/bash: 'This script calculatesthe square of 5.'((area=5*5))echo $area

Zauważ, jak komentarze wielowierszowe są umieszczane wewnątrz znaków :’ i ’.

5. Pętla while

Konstrukcja pętli while jest używana do wielokrotnego wykonywania pewnych instrukcji. Sprawdź poniższy skrypt o nazwie while.sh, aby lepiej zrozumieć tę koncepcję.

#!/bin/bashi=0while doecho Number: $i((i++))done

Więc, pętla while przyjmuje poniższą postać.

while docommands 1commands ndone

Spacja wokół nawiasów kwadratowych jest obowiązkowa.

6. Pętla for

Pętla for jest kolejną szeroko stosowaną konstrukcją powłoki bash, która pozwala użytkownikom na wydajne iterowanie po kodach. Prosty przykład jest zademonstrowany poniżej.

#!/bin/bashfor (( counter=1; counter<=10; counter++ ))doecho -n "$counter "doneprintf "\n"

Zapisz ten kod w pliku o nazwie for.sh i uruchom go przy użyciu ./for.sh. Nie zapomnij, aby był on wykonywalny. Ten program powinien wypisać liczby od 1 do 10.

7. Odbieranie danych wejściowych od użytkownika

Odbieranie danych wejściowych od użytkownika jest kluczowe dla implementacji interakcji użytkownika w twoich skryptach. Poniższy przykład skryptu powłoki zademonstruje, jak otrzymywać dane wejściowe użytkownika w ramach programu powłoki.

#!/bin/bashecho -n "Enter Something:"read somethingecho "You Entered: $something"

Więc, konstrukcja read, po której następuje nazwa zmiennej, używana jest do uzyskiwania danych wejściowych użytkownika. Dane wejściowe przechowywane są wewnątrz tej zmiennej i można się do nich dostać przy pomocy znaku $.

8. Instrukcja if

Konstrukcje if są najpowszechniejszą konstrukcją warunkową dostępną w skryptach powłoki uniksowej, przyjmują one postać pokazaną poniżej.

if CONDITION thenSTATEMENTSfi

Konstrukcje te są wykonywane tylko wtedy, gdy WARUNEK jest prawdziwy. Słowo kluczowe fi używane jest do oznaczania końca instrukcji if. Szybki przykład jest pokazany poniżej.

#!/bin/bashecho -n "Enter a number: "read numif ]thenecho "Number is greater than 10."fi

Powyższy program wyświetli dane wyjściowe tylko wtedy, gdy liczba podana na wejściu jest większa niż dziesięć. Znak -gt oznacza większy niż; podobnie -lt oznacza mniejszy niż; -le oznacza mniejszy niż równy; oraz -ge oznacza większy niż równy. The ] są wymagane.

9. Więcej kontroli przy użyciu If Else

Połączenie konstrukcji else z if pozwala na znacznie lepszą kontrolę nad logiką Twojego skryptu. Prosty przykład jest pokazany poniżej.

#!/bin/bashread nif ;thenecho "It is a one digit number"elseecho "It is a two digit number"fi

Część else musi być umieszczona po części action instrukcji if i przed fi.

10. Używanie operatora AND

Operator AND pozwala naszemu programowi sprawdzić, czy wiele warunków jest spełnionych jednocześnie, czy nie. Wszystkie części oddzielone operatorem AND muszą być prawdziwe. W przeciwnym razie instrukcja zawierająca operator AND zwróci wartość false. Sprawdź poniższy przykład skryptu bash, aby lepiej zrozumieć jak działa AND.

#!/bin/bashecho -n "Enter Number:"read numif ]; thenecho "Even Number"elseecho "Odd Number"fi

Operator AND jest oznaczany znakiem &&.

11. Użycie operatora OR

Operator OR jest kolejną istotną konstrukcją, która pozwala nam implementować w naszych skryptach złożoną, solidną logikę programistyczną. W przeciwieństwie do AND, instrukcja zawierająca operator OR zwraca wartość true, gdy którykolwiek z jej operandów jest prawdziwy. Zwraca fałsz tylko wtedy, gdy każdy z operandów oddzielonych operatorem OR jest fałszywy.

#!/bin/bashecho -n "Enter any number:"read nif ]thenecho "You won"elseecho "You lost!"fi

Ten prosty przykład demonstruje, jak operator OR działa w skryptach powłoki Linuksa. Deklaruje on użytkownika jako zwycięzcę tylko wtedy, gdy wprowadzi on liczbę 15 lub 45. Znak || reprezentuje operator OR.

12. Używanie instrukcji elif

Konstrukcja elif jest skrótem od else if i oferuje wygodny sposób implementacji logiki łańcuchowej. Dowiedz się, jak działa elif, analizując poniższy przykład.

#!/bin/bashecho -n "Enter a number: "read numif ]thenecho "Number is greater than 10."elif ]thenecho "Number is equal to 10."elseecho "Number is less than 10."fi

Powyższy program nie wymaga wyjaśnień, więc nie będziemy go analizować linia po linii. Zmieniaj fragmenty skryptu, takie jak nazwy zmiennych i wartości, aby sprawdzić, jak działają razem.

13. Konstrukcja przełącznika

Konstrukcja przełącznika jest kolejną potężną funkcją oferowaną przez linuksowe skrypty bash. Może być używana tam, gdzie wymagane są zagnieżdżone warunki, ale nie chcesz używać skomplikowanych łańcuchów if-else-elif. Spójrz na następny przykład.

#!/bin/bashecho -n "Enter a number: "read numcase $num in100)echo "Hundred!!" ;;200)echo "Double Hundred!!" ;;*)echo "Neither 100 nor 200" ;;esac

Warunki są zapisane między słowami kluczowymi case i esac. Znak *) jest używany do dopasowywania wszystkich wejść innych niż 100 i 200.

14. Argumenty wiersza poleceń

Pobieranie argumentów bezpośrednio z wiersza poleceń może być korzystne w wielu przypadkach. Poniższy przykład demonstruje, jak to zrobić w bashu.

#!/bin/bashecho "Total arguments : $#"echo "First Argument = "echo "Second Argument = "

Uruchom ten skrypt z dwoma dodatkowymi parametrami po jego nazwie. Nazwałem go test.sh, a procedura wywołania jest przedstawiona poniżej.

$ ./test.sh Hey Howdy

Więc, $1 jest używany do uzyskania dostępu do pierwszego argumentu, $2 do drugiego, i tak dalej. Wartość $# służy do uzyskania całkowitej liczby argumentów.

15. Uzyskiwanie argumentów z nazwami

Poniższy przykład pokazuje, jak uzyskać argumenty wiersza poleceń z ich nazwami.

#!/bin/bashfor arg in "$@"doindex=$(echo $arg | cut -f1 -d=)val=$(echo $arg | cut -f2 -d=)case $index inX) x=$val;;Y) y=$val;;*)esacdone((result=x+y))echo "X+Y=$result"

Nazwij ten skrypt test.sh i wywołaj go tak, jak pokazano poniżej.

$ ./test.sh X=44 Y=100

Powinien on zwrócić X+Y=144. Argumenty są tu przechowywane wewnątrz '$@’, a skrypt pobiera je za pomocą linuksowego polecenia cut.

16. Konkatenacja łańcuchów

Przetwarzanie łańcuchów ma ogromne znaczenie dla wielu współczesnych skryptów basha. Na szczęście, jest to znacznie wygodniejsze w bashu i pozwala na znacznie bardziej precyzyjny, zwięzły sposób implementacji tego. Zobacz poniższy przykład dla szybkiego spojrzenia na konkatenację łańcuchów w bashu.

#!/bin/bashstring1="Ubuntu"string2="Pit"string=$string1$string2echo "$string is a great resource for Linux beginners."

Poniższy program wypisuje na ekran łańcuch „UbuntuPit jest świetnym źródłem dla początkujących użytkowników Linuksa.”.

17. Wycinanie łańcuchów

W przeciwieństwie do wielu języków programowania, bash nie dostarcza żadnej wbudowanej funkcji do wycinania fragmentów łańcucha. Poniższy przykład demonstruje, jak można to zrobić za pomocą interpretacji parametrów.

#!/bin/bashStr="Learn Bash Commands from UbuntuPit"subStr=${Str:0:20}echo $subStr

Skrypt ten powinien wypisać na wyjściu „Learn Bash Commands”. Interpretacja parametrów przyjmuje postać ${VAR_NAME:S:L}. Tutaj S oznacza pozycję początkową, a L – długość.

18. Wyodrębnianie podłańcuchów za pomocą polecenia cut

Linuxowe polecenie cut może być użyte wewnątrz skryptów do „wycięcia” części łańcucha, aka podłańcucha. Następny przykład pokazuje, jak można to zrobić.

#!/bin/bashStr="Learn Bash Commands from UbuntuPit"#subStr=${Str:0:20}subStr=$(echo $Str| cut -d ' ' -f 1-3)echo $subStr

Sprawdź ten przewodnik, aby zrozumieć, jak działa polecenie Cut w systemie Linux.

19. Dodawanie dwóch wartości

Dość łatwo jest wykonywać operacje arytmetyczne wewnątrz skryptów powłoki Linuksa. Poniższy przykład demonstruje, jak otrzymać dwie liczby jako dane wejściowe od użytkownika i dodać je do siebie.

#!/bin/bashecho -n "Enter first number:"read xecho -n "Enter second number:"read y(( sum=x+y ))echo "The result of addition=$sum"

Jak widać, dodawanie liczb w bashu jest dość proste.

20. Dodawanie wielu wartości

Możesz użyć pętli, aby uzyskać wiele danych wprowadzonych przez użytkownika i dodać je wewnątrz skryptu. Poniższe przykłady pokazują to w akcji.

#!/bin/bashsum=0for (( counter=1; counter<5; counter++ ))doecho -n "Enter Your Number:"read n(( sum+=n ))#echo -n "$counter "doneprintf "\n"echo "Result is: $sum"

Jednakże, pominięcie (( )) spowoduje konkatenację łańcuchów, a nie dodawanie. Sprawdź więc, czy w Twoim programie nie ma takich rzeczy.

21. Funkcje w Bashu

Jak w każdym dialekcie programowania, funkcje odgrywają istotną rolę w skryptach powłoki Linuksa. Pozwalają one administratorom na tworzenie niestandardowych bloków kodu do częstego użycia. Poniższa demonstracja przedstawi sposób działania funkcji w linuksowych skryptach bash.

#!/bin/bashfunction Add(){echo -n "Enter a Number: "read xecho -n "Enter another Number: "read yecho "Adiition is: $(( x+y ))"}Add

Tutaj dodaliśmy dwie liczby tak samo jak poprzednio. Ale tutaj wykonaliśmy pracę używając funkcji o nazwie Add. Więc kiedykolwiek będziesz potrzebował dodać ponownie, możesz po prostu wywołać tę funkcję zamiast pisać tę sekcję ponownie.

22. Funkcje ze zwracanymi wartościami

Jedną z najbardziej fantastycznych cech funkcji jest to, że pozwalają one na przekazywanie danych z jednej funkcji do drugiej. Jest to przydatne w wielu różnych scenariuszach. Sprawdź następny przykład.

#!/bin/bashfunction Greet() {str="Hello $name, what brings you to UbuntuPit.com?"echo $str}echo "-> what's your name?"read nameval=$(Greet)echo -e "-> $val"

Tutaj na wyjściu znajdują się dane otrzymane z funkcji Greet().

23. Tworzenie katalogów ze skryptów Bash

Możliwość uruchamiania poleceń systemowych za pomocą skryptów powłoki pozwala programistom być znacznie bardziej produktywnymi. Poniższy prosty przykład pokaże, jak utworzyć katalog z wnętrza skryptu powłoki.

#!/bin/bashecho -n "Enter directory name ->"read newdircmd="mkdir $newdir"eval $cmd

Jeśli przyjrzysz się uważnie, ten skrypt po prostu wywołuje standardowe polecenie powłoki mkdir i przekazuje mu nazwę katalogu. Ten program powinien utworzyć katalog w twoim systemie plików. Możesz również przekazać polecenie do wykonania wewnątrz backticks(„), jak pokazano poniżej.

`mkdir $newdir`

24. Tworzenie katalogu po potwierdzeniu istnienia

Powyższy program nie zadziała, jeśli twój bieżący katalog roboczy zawiera już folder o tej samej nazwie. Poniższy program sprawdzi istnienie dowolnego folderu o nazwie $dir i utworzy go tylko wtedy, gdy nie znajdzie żadnego.

#!/bin/bashecho -n "Enter directory name ->"read dirif thenecho "Directory exists"else`mkdir $dir`echo "Directory created"fi

Napisz ten program przy użyciu eval, aby zwiększyć swoje umiejętności pisania skryptów w bashu.

25. Czytanie plików

Skrypty basha pozwalają użytkownikom na bardzo efektywne czytanie plików. Poniższy przykład pokaże, jak odczytać plik przy użyciu skryptów powłoki. Utwórz plik o nazwie editors.txt o następującej zawartości.

1. Vim 2. Emacs 3. ed 4. nano 5. Code

Ten skrypt wyświetli każdą z powyższych 5 linii.

#!/bin/bashfile='editors.txt'while read line; doecho $linedone < $file

26. Usuwanie plików

Poniższy program zademonstruje, jak usunąć plik w skryptach powłoki Linuksa. Program najpierw poprosi użytkownika o podanie nazwy pliku jako danych wejściowych i usunie go, jeśli istnieje. Linuksowe polecenie rm wykona tutaj usunięcie.

#!/bin/bashecho -n "Enter filename ->"read namerm -i $name

Wpiszmy editors.txt jako nazwę pliku i naciśnijmy y, gdy zostaniemy poproszeni o potwierdzenie. Powinno to spowodować usunięcie pliku.

27. Dołączanie do plików

Poniższy przykład skryptu powłoki pokaże ci, jak dołączać dane do pliku w systemie plików przy użyciu skryptów basha. Dodaje on dodatkową linię do wcześniejszego pliku editors.txt.

#!/bin/bashecho "Before appending the file"cat editors.txtecho "6. NotePad++" >> editors.txtecho "After appending the file"cat editors.txt

Powinieneś już zauważyć, że używamy codziennych poleceń terminala bezpośrednio z linuksowych skryptów bash.

28. Testowanie istnienia pliku

Następny przykład skryptu powłoki pokazuje, jak sprawdzić istnienie pliku z poziomu programów bash.

#!/bin/bashfilename=if ; thenecho "File exists"elseecho "File does not exist"fi

Przekazujemy nazwę pliku jako argument bezpośrednio z wiersza poleceń.

29. Wysyłanie maili ze skryptów powłoki

Wysyłanie maili ze skryptów basha jest całkiem proste. Poniższy prosty przykład zademonstruje jeden ze sposobów robienia tego z poziomu aplikacji bash.

#!/bin/bashrecipient="[email protected]"subject="Greetings"message="Welcome to UbuntuPit"`mail -s $subject $recipient <<< $message`

Wysyła on wiadomość e-mail do odbiorcy zawierającą podany temat i wiadomość.

30. Parsowanie daty i czasu

Następny przykład skryptu basha pokaże, jak obsługiwać daty i czasy za pomocą skryptów. Linuksowe polecenie date jest używane do uzyskania niezbędnych informacji, a nasz program zajmuje się parsowaniem.

#!/bin/bashyear=`date +%Y`month=`date +%m`day=`date +%d`hour=`date +%H`minute=`date +%M`second=`date +%S`echo `date`echo "Current Date is: $day-$month-$year"echo "Current Time is: $hour:$minute:$second"

Uruchom ten program, aby zobaczyć, jak działa. Spróbuj również uruchomić polecenie daty z terminala.

31. Polecenie uśpienia

Polecenie uśpienia pozwala skryptowi powłoki na wstrzymanie pracy pomiędzy instrukcjami. Jest ono przydatne w wielu scenariuszach, takich jak wykonywanie zadań na poziomie systemu. Następny przykład pokazuje działanie polecenia sleep wewnątrz skryptu powłoki.

#!/bin/bashecho "How long to wait?"read timesleep $timeecho "Waited for $time seconds!"

Ten program wstrzymuje wykonanie ostatniej instrukcji do czasu $time sekund, który w tym przypadku jest podany przez użytkownika.

32. Komenda wait

Komenda wait jest używana do wstrzymywania procesów systemowych z linuksowych skryptów bash. Sprawdź poniższy przykład dla szczegółowego zrozumienia, jak to działa w bashu.

#!/bin/bashecho "Testing wait command"sleep 5 &pid=$!kill $pidwait $pidecho $pid was terminated.

Uruchom ten program samodzielnie, aby sprawdzić, jak działa.

33. Wyświetlanie ostatnio zaktualizowanego pliku

Czasami możesz potrzebować znaleźć ostatnio zaktualizowany plik dla pewnych operacji. Poniższy prosty program pokazuje nam jak to zrobić w bashu, używając polecenia awk. Wyliczy on ostatnio uaktualniony lub utworzony plik w bieżącym katalogu roboczym.

#!/bin/bashls -lrt | grep ^- | awk 'END{print $NF}'

Dla uproszczenia, nie będziemy opisywać działania awk w tym przykładzie. Możesz po prostu skopiować ten kod, aby wykonać zadanie.

34. Adding Batch Extensions

Poniższy przykład zastosuje niestandardowe rozszerzenie do wszystkich plików wewnątrz katalogu. Utwórz nowy katalog i umieść w nim kilka plików dla celów demonstracyjnych. Mój katalog zawiera w sumie pięć plików, każdy o nazwie test, po której następuje (0-4). Zaprogramowałem ten skrypt tak, aby dodawał (.UP) na końcu plików. Możesz dodać dowolne rozszerzenie, jakie chcesz.

#!/bin/bashdir=for file in `ls /*`domv $file $file.UPdone

Po pierwsze, nie próbuj tego skryptu z dowolnego zwykłego katalogu; zamiast tego uruchom go z katalogu testowego. Dodatkowo, musisz podać nazwę katalogu swoich plików jako argument wiersza poleceń. Użyj kropki(.) dla bieżącego katalogu roboczego.

35. Drukuj liczbę plików lub katalogów

Poniższy skrypt bash Linux znajduje liczbę plików lub katalogów znajdujących się wewnątrz danego katalogu. Wykorzystuje do tego linuksowe polecenie find. Musisz przekazać nazwę katalogu, w którym chcesz szukać plików z linii poleceń.

#!/bin/bashif ; thenecho "Files found: $(find "$@" -type f | wc -l)"echo "Folders found: $(find "$@" -type d | wc -l)"elseecho " Please retry with another folder."exit 1fi

Program poprosi użytkownika, aby spróbować ponownie, jeśli określony katalog nie jest dostępny lub mają problemy z uprawnieniami.

36. Czyszczenie plików dziennika

Kolejny prosty przykład demonstruje poręczny sposób, w jaki możemy używać skryptów powłoki w prawdziwym życiu. Ten program po prostu usunie wszystkie pliki logów znajdujące się w katalogu /var/log. Możesz zmienić zmienną, która przechowuje ten katalog do czyszczenia innych logów.

#!/bin/bashLOG_DIR=/var/logcd $LOG_DIRcat /dev/null > messagescat /dev/null > wtmpecho "Logs cleaned up."

Pamiętaj, aby uruchomić ten skrypt powłoki Linuksa jako root.

37. Skrypt kopii zapasowej przy użyciu Bash

Skrypty powłoki zapewniają solidny sposób tworzenia kopii zapasowych plików i katalogów. Poniższy przykład wykona kopię zapasową każdego pliku lub katalogu, który został zmodyfikowany w ciągu ostatnich 24 godzin. Ten program wykorzystuje do tego polecenie find.

#!/bin/bashBACKUPFILE=backup-$(date +%m-%d-%Y)archive=${1:-$BACKUPFILE}find . -mtime -1 -type f -print0 | xargs -0 tar rvf "$archive.tar"echo "Directory $PWD backed up in archive file \"$archive.tar.gz\"."exit 0

Po pomyślnym wykonaniu kopii zapasowej wydrukuje nazwy plików i katalogów.

38. Sprawdź, czy jesteś rootem

Poniższy przykład demonstruje szybki sposób sprawdzania, czy użytkownik jest rootem, czy nie, za pomocą linuksowych skryptów bash.

#!/bin/bashROOT_UID=0if thenecho "You are root."elseecho "You are not root"fiexit 0

Wyjście tego skryptu zależy od użytkownika, który go uruchamia. Będzie on pasował do użytkownika root na podstawie $UID.

39. Usuwanie zduplikowanych linii z plików

Przetwarzanie plików zajmuje dużo czasu i na wiele sposobów obniża produktywność administratorów. Wyszukiwanie duplikatów w plikach może stać się zniechęcającym zadaniem. Na szczęście, możesz to zrobić za pomocą krótkiego skryptu powłoki.

#! /bin/shecho -n "Enter Filename-> "read filenameif ; thensort $filename | uniq | tee sorted.txtelseecho "No $filename in $pwd...try again"fiexit 0

Powyższy skrypt przechodzi linia po linii przez twój plik i usuwa każdą zduplikowaną linię. Następnie umieszcza nową zawartość w nowym pliku i zachowuje oryginalny plik nienaruszony.

40. Konserwacja systemu

Często używam małego skryptu powłoki Linuksa do aktualizacji mojego systemu, zamiast robić to ręcznie. Poniższy prosty skrypt powłoki pokaże ci jak to zrobić.

#!/bin/bashecho -e "\n$(date "+%d-%m-%Y --- %T") --- Starting work\n"apt-get updateapt-get -y upgradeapt-get -y autoremoveapt-get autocleanecho -e "\n$(date "+%T") \t Script Terminated"

Skrypt zajmuje się również starymi pakietami, które nie są już potrzebne. Musisz uruchomić ten skrypt używając sudo inaczej nie będzie działał poprawnie.

Kończące myśli

Skrypty powłoki Linux mogą być tak różnorodne jak tylko możesz sobie wyobrazić. Nie ma dosłownie żadnych ograniczeń, jeśli chodzi o określenie, co może zrobić, a czego nie może. Jeśli jesteś nowym entuzjastą Linuksa, gorąco polecamy ci opanowanie tych podstawowych przykładów skryptów bash. Powinieneś je podrasować, aby lepiej zrozumieć jak one działają. Zrobiliśmy co w naszej mocy, aby zapewnić ci wszystkie istotne spostrzeżenia potrzebne dla nowoczesnych skryptów bash w Linuksie. Ze względu na prostotę nie poruszyliśmy niektórych kwestii technicznych. Jednak ten przewodnik powinien okazać się świetnym punktem wyjścia dla wielu z was.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.