Шта је Схелл скрипта и зашто бисте је требали користити

Шта је Схелл скрипта и зашто бисте је требали користити

Љуска је програм у оквиру Линук или Уник оперативног система који вам омогућава да унесете команде за извршавање система. Када се прозор терминала отвори на линук рачунару, он покреће љуски програм који представља интерфејс за унос наредби. Овај интерфејс је познат као интерфејс командне линије. Када се унесе команда, извршава је љуска и излаз се приказује на екрану.





Поред могућности интерактивног прихватања и извршавања наредби, љуска такође може извршавати команде ускладиштене у датотеци. Овај начин извођења је познат као скриптирање љуске , а у овом чланку обрађујемо основе скриптовања љуске.





1. Историја шкољке

Почевши од Уника 1970 -их, постојао је љускарски програм под називом В6 Схелл развио Кен Тхомсон. Била је то интерактивна љуска и није имала способност писања скрипти.





Уследило је Боурне Схелл 1977. и остаје у употреби и данас као подразумевана љуска за корен рачун. Ова љуска је додала скриптне способности које су се годинама показале изузетно корисне у пракси.

Даљи развој љуске 1980 -их довео је до многих популарних варијанти љуске, од којих су најпопуларније Ц-Схелл и Корн Схелл . Свака од ових љуски донијела је своју синтаксу која се, у одређеним случајевима, драстично разликовала од оригиналне љуске.



Једна од најпопуларнијих шкољки данас је Басх Схелл . Басх означава Боурне-Агаин-Схелл и представља знатно побољшану варијанту оригиналне Боурне Схелл.

како анонимно слати нечију е -пошту

У овом чланку описујемо скриптирање љуске за Басх Схелл .





2. Извођење Схелл скрипте

Како извршавате схелл скрипту? Једноставно. Само проследите путању скрипте као аргумент љусци:

Пример скрипте љуске:





echo 'hello world'

Покрените га на следећи начин:

$ bash hello.sh
# prints
hello world

Белешка: Љуска захтева да се линије завршавају ЛФ знаковима (Лине-Феед). Ако напишете своју љуску скрипту у Виндовс -у и покушате да је извршите директно на Линук систему, можете наићи на грешке. Виндовс користи комбинацију ЦР-ЛФ (Царриаге-Ретурн-Лине-Феед) за прекид линије. Ово је потребно претворити само у ЛФ. Проверите свој Виндовс уређивач да бисте сазнали начине за то.

Постоји још један начин да се скрипта љуске изврши директно као команда. Уметните следећи ред ( хасхбанг декларација) као први ред ваше скрипте љуске.

диск је на 100 посто Виндовс 10
#!/bin/bash

Овом променом наша једноставна скрипта љуске је сада:

#!/bin/bash
echo 'hello world'

Сада морате датотеку скрипте учинити извршном на следећи начин:

$ chmod +x hello.sh

У овом тренутку можете директно извршити датотеку скрипте без потребе да се експлицитно позивате на љуску.

$ hello.sh
# prints
hello world

Погледајмо сада неке предности коришћења скрипти љуске.

3. Аутоматизација задатака

Прва предност коришћења скрипти љуске је аутоматизација често извршаваних задатака. Претпоставимо да имате задатак који морате да обављате свакодневно. Ако морате свакодневно да извршавате више команди на вашем линук систему, ове команде можете да сачувате у датотеци и покренете скрипту. Примери укључују:

  • Архивирајте и свакодневно учитавајте датотеку или фасциклу у складишни простор у облаку као што је С3.
  • Компримирајте датотеке дневника које расту сваки дан.
  • Дохватите цене акција, рашчланите преузете податке и покрените е -поруку или СМС када су испуњени одређени услови (превисоке или прениске цене).

4. Комбиновање више команди

Поред аутоматизације честих задатака, можда ће вам бити корисно и што можете комбиновати више секвенци наредби у једну наредбу. Запамтити једну наредбу је много једноставније од више наредби, а да не спомињемо редослед којим се морају извршавати.

Пример би био редослед покретања самог оперативног система Линук. Као део покретања, ОС извршава бројне команде како би систем довео у одговарајуће стање. Ове команде су заправо скрипте љуске које живе под /итд именик. Ако погледате једну од ових скрипти љуске, увидећете сложеност покретања система, коју сте можда морали да изведете ручно у одсуству скрипти љуске.

Следи пример скрипте љуске, /етц/профиле , који се извршава сваки пут када се корисник пријави. Замислите да ручно укуцате ове команде!

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ '$PS1' ]; then
if [ '$BASH' ] && [ '$BASH' != '/bin/sh' ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='h:w$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ '`id -u`' -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
# The default umask is now handled by pam_umask.
# See pam_umask(8) and /etc/login.defs.
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi

5. Лакше за развој

Могуће је извести исте радње као и схелл скрипта унутар редовног програма написаног на Ц/Ц ++. Међутим, далеко је лакше писати и отклањати грешке скрипту љуске него Ц/Ц ++ програм. Посебно за задатке системске администрације који укључују извршавање спољних команди, креирање и уклањање датотека и директоријума, преусмеравање излаза итд.

Ц/Ц ++ програми су бољи за много нижи ниво рада, попут позивања системских позива, манипулације структурама података итд.

6. Транспарентност

Скрипта љуске, будући да је текстуална датотека, може се лако прегледати да би се провериле које радње извршава. Насупрот томе, једини начин на који ћете икада сазнати шта ради програм написан на језику као што је Ц/Ц ++ (и компајлиран у извршну датотеку) је ако одлучи да вам то каже или ако имате приступ изворном коду. На пример, можете да проверите да ли скрипта љуске брише неке датотеке, а ако су вам потребне, можете их копирати на другу локацију.

Такође је много лакше дијагностиковати проблеме са скриптама љуске него са редовним програмима јер можете погледати изворни код. Да ли та скрипта не успева јер директоријум не постоји? Можете погледати код скрипте и креирати директоријум (мада би се добро понашана скрипта љуске требала проверити и креирати како би се избегле такве грешке).

7. Преносни

ДО схелл скрипта могу се пренети на друге Уник и Уник сличне оперативне системе и извршити (ако је присутна сама љуска). Чак и при преносу љуске скрипте са различитих архитектура, као што су к86, МИПС, Спарц, итд., Скрипте љуске су много преносивије од Ц/Ц ++ програма.

Једини начин на који се Ц/Ц ++ програм може пренети и користити на другом систему је копирање изворног кода, прављење програма и покушај његовог покретања. Чак и тада можда неће радити како се очекује ако користи код специфичан за архитектуру.

Сада када имате идеју шта су скрипте љуске и њихове бројне предности, зар не бисте желели да их користите за своје задатке? Са којим проблемима сте се суочили када сте их користили? Молимо вас да нас обавестите у коментарима испод.

Како можете знати да ли ваш иПхоне има вирус
Објави Објави Твеет Емаил 5 савета за суперпуњење ваших ВиртуалБок Линук машина

Уморни сте од лоших перформанси које нуде виртуелне машине? Ево шта треба да урадите да бисте побољшали перформансе ВиртуалБок -а.

Прочитајте следеће
Повезане теме
  • Програмирање
  • Линук Басх Схелл
О аутору Јаи Сридхар(17 објављених чланака) Више од Јаиа Сридхара

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, критике, бесплатне е -књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили