Shell Scripting в Linux - Компютрите по принцип разбират езика на 0 и 1, който е известен като двоичен език. Преди десетилетия хората са писали програми и приложения, като дори калкулатори на двоични езици. Но това не беше хубаво. Просто си представи! Искате да изчислите 73 + 96, как бихте писали? Ще трябва по-скоро да изчислите двоичното цяло число за 73 и 96 и след това да ги добавите. Човек трябва да е доста глупав, за да го направи. Човек би предпочел да изчисли 73 и 96 на хартия и да продължи. Но това е за по-малката част. Ами ако трябва да изчислите нещо като (19273/23 * (2967 3)). Сега бих казал, че това е доста интензивно.
И така, един независим човек, който се учи да кодира всичко на двоичен език, няма смисъл. Това е основната причина, поради която компютрите не са били популярни през 70-те и 80-те. Но по-късно, още преди да се разработи Windows, хората започнаха да разработват ядра и подобни неща, които бяха основната част на операционната система. Ядрата, използвани за разбиране на човешки четим формат на конкретна програма и след това го преобразуват в машинен код. И тук се появиха езиците за програмиране и промениха цялата ера на компютърния свят. Приложенията са изградени в C и C ++, а по-късно с Java, Python, Ruby и Perl.
Към настоящия момент има повече от 50 езика за програмиране навсякъде. И това е най-малкото от онези, за които знам. Да не говорим за факта, че има други езици за програмиране, които са дори по-трудни за разбиране от машинния код. Моят смисъл е, примери като пилешко програмиране и Malbolge. Те са някои сериозни гадни неща за справяне.
Shell програмиране … .errr … Сценарий?
Сега може би се чудите защо не споменах по-горе програмирането на Shell заедно с другите езици за програмиране. Основната причина да бъде самата Shell не е език за програмиране. Това е скриптов език. Shell е просто интерактивна програма за крайния потребител, която интерпретира всеки вход от потребителя и дава резултата, при условие че командата е валидна. След това предава програмата на ядрото, за да я изпълни. Shell не е част от Kernel, но вместо това използва ядрото, за да си върши работата по изпълнение и създаване на файлове.
Видове програма за скриптове на Shell
Сега, за разлика от C, C ++ или Java, има няколко други типа черупки, които могат да се използват за скриптове на Shell. Следват четирите типа черупки, налични до дата:
Не. | Тип черупка | описание |
1. | Bash aka Bourne Again Shell | Това е най-често срещаната обвивка, достъпна във всички Linux и debian базирани системи. Той е с отворен код и безплатен. |
2. | CSH или C Shell | Тази програма за скриптове на Shell използва синтаксиса на черупката на програмирането на C и почти подобен на C. |
3. | KSH или Korn Shell | Korn е базирана на Unix скриптова програма на Shell, първоначално базирана на Bash Shell Scripting. Тази обвивка е доста напреднала и език за програмиране на високо ниво. |
4. | TCSH | Няма конкретна пълна форма на TCSH. Така е. TCSH е усъвършенствана версия на Berkeley Unix C черупка. Той отново поддържа синтаксис в стил C |
Що се отнася до днес, ние не се интересуваме от всички по-горе черупки тук. Интересуваме се само от черупката на Bash, тъй като тя е най-често използваната черупка в света днес.
Черупката на Баш
Скриптовата програма Bash Shell е скриптов език на високо ниво, подобен на този на python. Но ако имате опит с Python и преди, тогава всъщност ще откриете, че Bash Shell Scripting е много по-лесен от всеки друг език за писане. Човек може да пише сценарии в bash много по-бързо, отколкото в C, C ++, Java или Python. Терминалът по подразбиране в най-съвременното поведение на Linux, да речем например: - Ubuntu, Linux Mint Cinnamon / Rafaela, Fedora, Arch Linux или друга среда на debian се състои от Bash като Shell по подразбиране. Можете обаче да проверите всички среди на черупките, налични във вашата система, като въведете следното в терминала по подразбиране: -
$ cat / etc / черупки |
(Забележка: Знакът за долар в началото се използва за идентифициране на терминал.)
Синтаксисът 'cat', използван за четене на текстови файлове. Видовете програми за скриптове на черупки в среда на Linux, Unix или Debian се съхраняват във файла с черупки в директорията etc. Всяка обвивка има свой уникален набор от синтаксиси и собствен набор от вградени функции. DOS или прозорците също имат своя черупка, известна като скандалната 'командна команда' или 'powerhell' от Windows 8.1 нататък, но тя все още не е толкова мощна, колкото баш. Синтаксисът на котка ще ви даде списъка с черупки, налични в системата, но за да намерите черупката по подразбиране или да проверите текущия с помощта на черупка, в терминала за скриптове на Shell можете да използвате следния синтаксис: -
$ echo $ SHELL |
Синтаксисът 'ехо' се използва за отпечатване на всяко изявление. Тук SHELL е променлива, присвоена за отпечатване на текущата обвивка. Знакът на долара след „ехо“ се използва за представяне на променлива в Shell Scripting.
Препоръчителни курсове
- Курс за сертифициране в хибернация на Java
- Пролетен курс на Java
- WordPress Онлайн обучение
- Обучение за руби
Скрипт на Shell
И така, сега знаете какво е черупка, нека разгледаме Shell Scripting и защо е известна като това. Shell Scripting не е нищо друго освен поредица от команди в обикновен текстов файл, завършващ с разширение „.sh“. '.Sh' определя, че е изпълним файл с черупки. След като напишете скрипт на черупката, човек трябва да промени разрешението за изпълнение, използвайки функцията 'chmod'. По подразбиране всяка новосъздадена обвивка не се изпълнява в UNIX или Linux среда, освен ако разрешенията не са променени конкретно. Shell Scripting е почти подобен на този на Batch програмирането от Windows, но разликата е, че Shell Scripting е доста по-мощна и осигурява много по-висока интерактивна среда заедно с допълненията на раздели. Човек трябва да използва добър текстов редактор, за да напише скрипт с черупки. Малко по-добри са тези, които знам за Vim, Gedit и Leafpad.
За разлика от другите езици на програмиране, скриптите на Shell се записват и изпълняват по-бързо. Не е необходимо да изтегляте конкретни пакети или зависимости, които да изпълните. Те могат да се използват не само от системен администратор, но и от нормален човек за ежедневно изпълнение на автоматизирани скриптове. Следва прост пример за скрипт, написан тук.
#! / хамбар / Баш echo -e „Добре дошли в първата програма за черупки. \ n“ echo -e „Напишете нещо тук и тази програма ще отпечата обратно същото. \ n“ # като помолите потребителя да въведе вход за четене # четене на входа от потребителя ехо „ въведено: $ input ” изход 0 |
Сега нека да обясня всички параметри в горния код. На първо място, напишете горния код в текстов файл във формат "както е" и го запишете с разширение, завършващо с ".sh". Например, дайте име на файла като 'main_program.sh'. Уверете се, че не е „main_program.sh.txt“. Повечето начинаещи са склонни да правят същото и тогава това не се изпълнява. След като горният код се копира, променете неговите разрешения, използвайки следния синтаксис в терминала: -
$ chmod + x main_program.sh ИЛИ $ chmod 755 main_program.sh |
Чувствайте се свободни да използвате някоя от горните команди, тъй като и двете правят едно и също нещо. В съвременните програми за скриптиране на черупки на баш, '755' се променя на '+ x'; така че няма значение кой от тях всъщност използвате. След като промените разрешенията, въведете следното, за да го изпълните.
$. / main_program.sh |
Периодът и наклонена черта се използват за идентифициране и изпълнение на скриптове на черупките. След като изпълните горния скрипт, той ще отпечата първото изявление за ехо и след това ще ви помоли да въведете нещо. След като го въведете, той ще ви отпечата същото и ще излезе от преводача. Така че нека да обясня всички синтаксиси по-горе. '#! / Bin / bash' се използва за да каже на интерпретатора, че това е bash скрипт и програмата за скриптове на Bash shell се намира в директорията 'bin'. Командата 'echo' се използва за отпечатване на всяко изявление и флагът '-e' се използва за обозначаване на обвивката, че ще има или нов ред, идентифициран като 'наклонена черта n или \ n', или разделителна черта на t или \ t 'или харесвания от него вътре в еховото изявление. Хеш-частта на втория ред се използва за идентифициране на коментар в баш скрипт. Каквото и да напишете след хеш, се коментира и няма да бъде изпълнено. Но това не се отнася за '#! / Bin / bash' на първия ред. Ето как е предназначен да работи скриптът. Синтаксисът „четене“ се използва за четене на всеки вход от потребителя. А „входът“, който споменах след синтаксиса „четене“, е променливата, в която се съхранява входът от потребителя. Човек може да използва всяка променлива вместо входа. На втория последен ред, $ входът се използва за идентифициране като променлива и извеждане на съхранения вход в него. Накрая командата изход се използва за излизане от интерпретатора с чист изход нула.
Неинтерактивен скрипт
Сега горният пример е доста лесен. Но има вградени модули, които можете да използвате, вместо да давате всички данни сами. Следва парче код, който отпечатва потребителското име, което е влезло в момента, текущото време, календарната дата и броя на влизанията: -
#! / хамбар / Баш # Този скрипт ще отпечата текущата влезла информация за потребителя, броя на влезлите потребители, датата, часа и календара ехо „Здравейте, US USER“ ехо „Днешната дата и часът е„ дата “ ехо„ Брой потребители, влезли в системата: `кой | wc -l` ”
ехо „Календар“ кал изход 0 |
Изпълнете този скрипт след промяна на разрешенията на файла по-горе. Сега може би се чудите, че в предишния скрипт всъщност въведохме входа и след това той върна входа, използвайки th променлива. Но ето, ние не сме предоставили никакви данни вътре в променливата '$ USER', как тогава отпечатва точния потребител. Основната причина са тези неща вече са конфигурирани в системата. Не забравяйте, че ви казах за $ SHELL по-рано в началото, как се определя по подразбиране? Да, подобен е случаят с US USER тук. Що се отнася до датата, ако просто въведете „дата“ без кавички в терминала, тя ще разпечата точната дата и час. Просто използвах единствен цитат (`), за да идентифицирам себе си като синтаксис, а не като част от отзвучащото изявление. Единичният цитат (`) ще изпълни всеки синтаксис, отпечатан вътре в него, било то в изявление или някъде другаде. Що се отнася до броя на частта от потребителите, командата "кой" се използва за проверка на текущите потребители, влезли заедно с влезлите в процесите, както и датата и часа, когато е стартирана. Но що се отнася до горната команда, аз всъщност я пресече, за да изведе броя потребители, които са я регистрирали, използвайки командата 'wc -l'. Лентата (|) или това, което е популярно известно като тръба, се използва за комбиниране на две команди. Тръбата всъщност означава много повече от това, но тук няма да навлизам в много подробности. И накрая отпечатах календара, използвайки вградената команда 'cal' за отпечатване на текущата дата в календара.
Изходът нула
Exit Zero е нещо, което не съм обяснявал в нито една от горните писмени програми. Основната причина да бъде „Exit Zero“ има много по-голяма гравитация спрямо всеки от синтаксисите по-горе в Shell Scripting. По подразбиране всеки път, когато изпълнявате скрипт в дистрибуция на Linux или Unix, той връща два типа стойности или по-точно състоянието на изход, за да провери дали изпълнението на скрипта на обвивката е успешно или не. Ако върне стойността като Zero, тогава изпълнението беше успешно, в противен случай или не се изпълни, или имаше някаква грешка по време на изпълнение. По този начин, като въведете 'изход 0' в края на всеки скрипт проверява състоянието на изпълнение на скрипта.
Всички неща, които разгледах тук, са само най-малкото основна част от сценариите на Shell в дистрибуцията на Linux. Изходната нулева част и тръбата играят важна роля при изпълнение на множество скриптове на черупките в командите на Linux и използването им заедно с условните оператори if и else.
Свързани статии:-
Ето няколко статии, които ще ви помогнат да получите повече подробности за видовете скриптове на Shell за Linux Newbies, така че просто преминете през линка.
- Shell Scripting Intervju Въпроси | Топ 10 полезни въпроса
- Linux срещу Windows - Разберете 9-те най-страхотни разлики
- Въпроси и отговори за интервю за Linux | Полезни и най-питани
- Кариери в администрацията на Linux
- Правила и регламентиране на параметрите на скриптове на обвивките