Разработка сайта для Вашего бизнеса. Веб дизайн. Дизайн логотипа, фирменного стиля, рекламная фотография . Комплексный рекламный креатив.

Ralex. We do the work.
На рынке с 1999го года. Средняя ценовая категория. Ориентация на эффективность решений.
Ознакомтесь с нашим портфолио
Узнайте больше о услугах
Свяжитесь с нами:
E-mail: [email protected]
Tel: (044) 587 - 84 - 78
Custom web design & дизайн и разработка сайта "под ключ"
Креативный, эффективный дизайн. Система управления сайтом (СУС).
Custom flexible разработка систем электронной коммерции
Система e-commerce разрабатывается под индивидуальные потребности. Гибкая функциональность.
Search Engine Optimzation & оптимизация под поисковые системы (SEO)
Постоянная оптимизация и мониторинг сайта в поисковых системах. Достигаем результата быстро и эффективно
Custom logo design & дизайн логотипа и фирменного стиля
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.
профессиональная рекламная фотография
креативно, смело, качественно
Custom logo design & рекламный креатив. дизайн рекламы
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.

bash [АйТи бубон]

  1. Швидкий доступ Bash (hotkeys bash)
  2. Файли ініціалізації Bash
  3. Налаштування змінних середовища bash
  4. .bash_aliases
  5. Кольоровий термінал (консоль) в Linux
  6. read
  7. select
  8. Цикли. Цикл for-in.
  9. Цикли. Цикл while-do.
  10. Цикли. Цикл until-do.

Наша взаимовыгодная связь https://banwar.org/

bash (Bourne again shell ) - вдосконалена і модернізована варіація командної оболонки Bourne shell ( Оболонка sh Bourne shell ).

Швидкий доступ Bash (hotkeys bash)

Таблиця комбінацій клавіш консолі Bash (терміналу Linux).

  • ctrl + d вийти з терміналу

  • ctrl + l очистити екран, аналог команди clear.

  • ctrl + a перемістити курсор на початок рядка

  • ctrl + e перемістити курсор в кінець рядка

  • ctrl + u видалити всі символи від курсора до початку рядка

  • ctrl + k видалити всі символи від курсора до кінця рядка

  • ctrl + w видалити слово перед курсором

  • ctrl + b перемістити курсор на один символ вліво

  • ctrl + f перемістити курсор на один символ вправо

  • ctrl + t поміняти місцями символ зліва від курсора і під курсором

  • ctrl + h видалити символ зліва від курсора

  • ctrl + p попередня команда в історії bash

  • ctrl + n наступна команда в історії bash

  • ctrl + r реверсивний пошук команд в історії bash

  • ctrl + y вставляє останню віддалену за допомогою ctrl + u або ctrl + k рядок

  • ctrl + m виконання команди, аналог [Enter]

  • ctrl + o виконує команду, при цьому залишаючи її в командному рядку для подальшого використання

  • Tab + Tab виводить список команд. При наявності якого-небудь символу (-ів) виводить команди можливих форм символам.

  • ctrl + c скасувати останню введену команду

  • ctrl + x + v показати версію bash

  • ctrl + s стоп режим. Блокує висновок на консоль. При цьому всі дані відображені на екрані залишаються незмінними.

  • ctrl + q вихід з стоп-режиму

Файли ініціалізації Bash

Коли Bash викликається як інтерактивна оболонка, перш за все він читає і викликає команди з файлу / etc / profile, якщо цей файл існує. Після читання цього файлу, він дивиться такі файли в даному порядку: ~ / .bash_profile, ~ / .bash_login, і ~ / .profile, читає і викликає команди з них. При виході Bash читає і виконує команди з файлу ~ / .bash_logout. Також Bash використовує команди з файлу ~ / .bashrc. Це може бути скасовано опцією -norc. Опція -rcfile змусить Bash використовувати команди з ~ / .bashrc

Синтаксис.

  • Оператор точка дозволяє включати код знаходиться в іншому файлі (після точки і перед ім'ям завантаження ставиться пробіл). Цей оператор часто використовують для включення конфігураційних параметрів, які перебувають у зовнішніх файлах.

  • Подвійні лапки - екранує прогалини в значенні змінних, наприклад echo "This UID = $ UID". Знак $ і зворотні лапки ( ``), укладені в подвійні лапки, зберігають властивості спеціальних символів.

  • Одинарні лапки екранують все спеціальні символи. Тобто символ $ в echo '$ sym "не буде інтерпретуватися як спеціальний символ, а виведеться як текст.

  • Зворотні одинарні лапки `` служать для підстановки даних. У тому місці де буде використана підстановка, буде підставлятися те, що програма вивела б на стандартний висновок. Замість лапок можна використовувати круглі дужки зі знаком $. Нижче команди ідентичні: `date` $ (date)
  • символ; Оболонка bash допускає послідовне виконання команд - одна за одною. Для цього серія команд вводиться одним рядком, і розділяється символом;. У цьому випадку спочатку виконується команда 1, по її завершенні команда 2 і т.д. Наприклад $ cd ~; ls * .txt; cp * .txt $ HOME / temp /
  • Властивості змінних в shell script:

    • НЕ типізовані (значення в змінних вважаються рядками, і тільки якщо змінна буде використовуватися в математичному вираженні, буде відбуватися перевірка типу змінної),

    • область видимості змінних - весь код програми (якщо змінна буде визначена в функції, вона все одно буде глобальної змінної і до неї можна буде звертатися з будь-якого місця програми),

    • при зверненні до невизначеної змінної не видаються помилки,

    • чутливі до регістру.

  • echo і метасимволу в bash. Для використання метасимволов \ n (переклад на новий рядок), \ t і інших в команді echo може знадобитися використання ключа -e двох символів зворотного слеша або ж можна використовувати конструкції $ '\ X', нижче команди ідентичні по результату своєї роботи: #! / bin / bash echo -e \\ n \\ tfirst echo $ '\ n \ t'second

Налаштування змінних середовища bash

Введіть команду export і два рази натисніть клавішу Таb, отримаємо список змінних в цьому сеансі bash, які можна змінити або переглянути командою echo.

  • Вивести змінні оточення. $ Env | more SSH_AGENT_PID = 1326 TERM = xterm SHELL = / bin / bash ... $ echo $ PATH / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games
  • export - додати змінну оточення pp = 1. За допомогою команди export присвоюється змінної оточення певне значення. Якщо змінна не існує, вона буде негайно створена. Якщо змінна вже має якесь значення, воно буде втрачено. # Export pp = 1
  • unset - видалити змінну оточення pp # unset pp

    Щоб старе значення зміною не втрачалося, наприклад потрібно додати в змінну PATH новий каталог, потрібно використовувати таку конструкцію:

    $ Export PATH = $ PATH: / ваш / новий / каталог
  • Тимчасово змінити редактор за замовчуванням vi на nano # export EDITOR = nano

    Для постійного застосування нового редактора, потрібно додати в рядок файл $ HOME / .bashrc

    # Nano .bashrc # set default editor nano export EDITOR = "nano" # OR # set default editor vi #export EDITOR = "vi"

.bash_aliases

  • Приклади для .bash_aliases $ nano $ HOME / .bash_aliases

    Для застосування змін виконайте команду

    $ Source $ HOME / .bash_aliases
  • Навігація alias .. = 'cd ..' alias ... = 'cd ../ ..' alias cdt = 'cd $ HOME / temp; ls -l '

Кольоровий термінал (консоль) в Linux

В Debian 8 досить для root раскоментіровать рядки в /root/.bashrc

# You may uncomment the following lines if you want `ls 'to be colorized: export LS_OPTIONS =' - color = auto 'eval" `dircolors`" alias ls =' ls $ LS_OPTIONS 'alias ll =' ls $ LS_OPTIONS -l 'alias l =' ls $ LS_OPTIONS -lA '

Для користувальницької консолі включити force_color_prompt = yes у ​​файлі /home/<username>/.bashrc

При виклику команди або сценарію з аргументами, ім'я команди і її аргументи є позиційними змінними. Позиційними вони називаються, тому що всередині сценарію звернення до них відбувається по позиції в командному рядку.

  • $ 0 ... $ 9 - при запуску допускається не більше 9 параметрів передавати в скрипт. Змінна $ 0 є ім'ям скрипта.

  • $ # - кількість параметрів переданих скрипту

  • $? - код повернення програми. echo $? - вивести помилку з якої закінчив виконуватися попередній скрипт (програма), наприклад, виведе 0 (true) якщо ім'я користувача root test "root" = "$ USER"; echo $?
  • $ * І $ @ - всі параметри командного рядка. echo $ * - виведе всі значення параметрів.

  • $! - PID програми, запущеної в background режимі.

  • $$ - PID процесу shell.

Для налагодження скриптів bash можна використовувати вбудований набір команд. Можна включати і вимикати режим налагодження використовуючи наступні команди всередині скрипта:

  • set -x - (set -o xtrace) показувати команди і параметри, які виконуються;

  • set -v - (set -o verbose) друкує вхідні рядки відразу в міру їх зчитування;

  • set -f - (set -o noglob) відключається генерація імені файлу за допомогою метасимволов (підстановка).

В одному і тому ж скрипті ви можете включати і вимикати оцінний режим стільки раз, скільки це необхідно. Символ "-" використовується для активації параметра командної оболонки, а символ "+" - для його деактивації.

Приклад. Налагодження перерветься після першого виконання циклу, що буде видно в результаті виконання цього скрипта.

#! / Bin / bash clear # включаємо режим налагодження set -x for i in 0 1 2 3 4 do echo "Console number is $ i" # вимикаємо режим налагодження set + x done exit 0 #! / Bin / bash car = ( bmw mers lada audi) # вивести другий елемент масиву echo $ {car [1]} # вивести всі елементи масиву echo $ {car [*]}

read

При виконанні оператора read, на екрані терміналу з'явиться курсор і користувачеві дається можливість ввести дані. Введення завершується натисканням на кнопку "Enter". Якщо оператор read викликати без вказівки змінної, він все дані, введені користувачем, помістить в змінну за замовчуванням - REPLAY.

#! / Bin / bash echo -n 'Введіть дані і натисніть "Enter":' read echo "Ви набрали - $ REPLY"

select

Команда select використовується для створення інтерактивного меню вашого скрипта. Синтаксис команди select (можна застосовувати утиліту tput ):

select variable [in list] do команди; done

Список слів, що настають за in, розширюється, генеруючи список елементів. Якщо в операторі select список in list не заданий, то в якості списку буде використовуватися список аргументів ($ @), який передається сценарієм або функції.

Приклад 1. ~ / .b * виводиться список файлів поточні директорії починаються на .b З них формується меню.

#! / Bin / bash select file in ~ /.b * quit do if [-e $ file] then ls -l $ file else break fi done exit 0

приклад 2

#! / Bin / bash options1 = "\" option 1 \ "\" option 2 \ "\" quit \ "" echo options1 $ options1 eval set $ options1 select opt ​​in "$ @" do echo $ opt if [ "$ opt "=" quit "]; then exit fi done

приклад 3

#! / Bin / bash OPTIONS = "Hello Quit" select opt ​​in $ OPTIONS; do if [ "$ opt" = "Quit"]; then echo done exit elif [ "$ opt" = "Hello"]; then echo Hello World echo `/ bin / ls /` else clear echo bad option fi done

Команда test призначена для перевірки наступних типів умов:

  1. порівняння різних значень,

  2. перевірка типів і наявності файлів,

  3. перевірка логічних умов (логічне І - "&&", і логічне АБО - "||").

З використанням цієї команди формуються оператори вибору і циклу мови shell . Два можливих формати команди:

test умова чи [умова]

зручніше користуватися другим варіантом, тобто замість того, щоб писати перед умовою слово "test", будемо укладати умова в дужки, що більш звично для програмістів. наприклад

[ "Root" = "$ USER"]; echo $?

замість

test "root" = "$ USER"; echo $?

Насправді shell буде розпізнавати цю команду по відкриває скобці "[", як слову, відповідному команді "test". Уже цього досить, щоб попередити про поширену помилку початківців:

Між дужками і містяться в них умовою обов'язково повинні бути пробіли.

[-E / шлях до / файлу] - істина якщо файл існує [-s / шлях до / файлу] - істина якщо файл існує і має не нульову довжину [-f / шлях до / файлу] - істина якщо звичайний файл існує [- h / шлях до / файлу] - істина якщо файл існує і є символічною посиланням [-w / шлях до / файлу] - істина якщо файл існує і та доступний для запису [-z STRING] - істина, якщо довжина рядка "STRING" дорівнює нулю [-n STRING] або [STRING] - істина, якщо довжина рядка "STRING" ненульова [STRING1 == STRING2] - істина, якщо рядки рівні; для більш суворого відповідності POSIX замість "==" можна використовувати "=" [STRING1! = STRING2] - істина, якщо рядки не рівні [STRING1 <STRING2] - істина, якщо в поточній локалі при лексикографічної сортуванні "STRING1" виявляється перед "STRING2 "[STRING1> STRING2] - істина, якщо в поточній локалі при лексикографічної сортуванні" STRING1 "виявляється після" STRING2 "[ARG1 OP ARG2]" OP "- один з операторів -eq, -ne, -lt, -le, -gt або -ge. Ці арифметичні виконавчі оператори повертають значення істина, якщо операнд "ARG1" відповідно дорівнює, не дорівнює, менше, менше або дорівнює, більше або більше або дорівнює операнду "ARG2". "ARG1" і "ARG2" є цілими числами
  • Перевірка логічних умов. Логічне І - "&&", і логічне АБО - "||". Найбільш часто їх застосовують, коли необхідно перевірити умова і, якщо воно істинно, виконати одну команду або навпаки - не виконувати.

  1. Приклад №1 [-f file] && rm file

    Оскільки перевіряється логічне І, необхідно щоб обидва умови були істинної. І тому, якщо перша умова істина, то буде перевірятися друга умова, тобто буде викликана програма rm.

  2. Приклад №2 [-f file] || touch file

    У цьому прикладі перевіряється наявність файлу file. Якщо його не існує (перша умова БРЕХНЯ), викликається програма touch, яка його створює. Для того що б вийшла ІСТИНА, хоча б одна з умов має повернути значення ІСТИНА. Тому, якщо файл існує (ІСТИНА), програма touch не викликатиме, так як немає необхідності в перевірки другої умови. Якщо файл не існує (БРЕХНЯ), необхідно перевірити друга умова - буде виконано програму touch.

Елементарна конструкція if виглядає так:

if [ "foo" = "foo"] then # виконати якщо вираз обчислити як істина fi

if перевіряє код повернення виконання програми: 0- виконано, будь-яка цифра відмінна від нуля - програма не виконалася.

#! / Bin / bash pwd = "/ root" if rm $ pwd / 1 .txt 2> / dev / null then echo "$ pwd / 1txt deleted" else echo "not deleted" fi

Більш короткий запис.

Якщо в якості умови оператора if використовується вираз, поміщене в квадратні дужки, для вирішення цієї умови буде викликана програма test. If перевірятиме код повернення програми test

#! / Bin / bash pwd = "/ root" [-e $ pwd / 1 .txt] && (rm $ pwd / 1 .txt; echo "Deleted")
  • Приклад. #! / Bin / bash CDIR = `pwd` LDIR = "/ scripts" if! ([-H $ LDIR]); then echo "Якщо символічного посилання на каталог запуску не існує - створити" ln -s $ CDIR $ LDIR # exit 0 fi
  • Приклад. if [[ "$ B" = "Q"]] # порівняння рядків, зверніть увагу на прогалини і дужки then # команди тут fi # кінець порівняння if [[ "$ B" -eq 3]] # порівняння чисел then # команди fi # кінець порівняння

Цикли. Цикл for-in.

Оператор for-in призначений для почергового звернення до значень перерахованих в списку. Кожне значення в списку по черзі присвоюється змінної. Синтаксис наступний:

for змінна in [спісок_значеній] do команди done for NAME [in LIST]; do COMMANDS; done # синтаксис для запису циклу в один рядок Якщо ключове слово do знаходиться в одному рядку зі словом for, то після списку аргументів (перед do) необхідно ставити крапку з комою. for arg in [list]; do

Розглянемо невеликий приклад:

#! / Bin / bash for i in 0 1 2 3 4 # змінної $ i будемо по черзі присвоювати значення від 0 до 4 включно do echo "Number is $ i" done # цикл закінчений exit 0

У змінну $ i по черзі підставляються значення зі списку і в циклі йде робота зі значенням цієї змінної.

Елементи в списку можуть розділятися символами пробілу або табуляції. Якщо список не поміщається на один рядок, його можна продовжити на наступній, але перед тим як натиснути на Enter, поставте символ "\" для екранування значення символу перекладу рядка.

  • Приклад отримання даних із зовнішнього файлу з фільтрацією вмісту файлу. У ньому спочатку відбираються перші поля файлу (поділ полів - пробіл), а потім видаляються коментарі тобто рядки починаються на символ "#".

#! / Bin / bash for i in `cat ipset.txt | cut -f1 -d '' | sed -e '/ ^ # / d' `do echo" $ i "done exit 0

Цикли. Цикл while-do.

Цикл while складніше циклу for-in і використовується для повторення команд, поки якийсь вираз істинний (код повернення = 0). У циклі while виконуються рядки, розташовані між do і done, до тих пір, поки умова істинна або поки не зустрінеться оператор break. Синтаксис оператора:

while вираз або команда повертає код повернення do команди done while CONTROL-COMMAND; do CONSEQUENT-COMMANDS; done # синтаксис для запису циклу в один рядок

Приклад роботи циклу розглянемо на наступному прикладі:

#! / Bin / bash again = yes # присвоюємо значення "yes" змінної again while [ "$ again" = "yes"] # Будемо виконувати цикл, поки $ again дорівнюватиме "yes" do echo "Please enter a name:" read name echo "The name you entered is $ name" echo "Do you wish to continue?" read again done echo "Bye-Bye"

Цикл виконується до тих пір, поки ми не введемо щось відмінне від "yes". Між do і done можна описувати будь-які структури, оператори тощо, всі вони будуть виконуватися в циклі. Але слід бути обережним з цим циклом, якщо ви запустите на виконання в ньому будь-яку команду, без зміни змінної виразу, ви можете потрапити в нескінченний цикл.

Тепер про умови істинності. Після while, як і в умовному операторі if-then-else можна вставляти будь-який вираз або команду, яка повертає код повернення, і цикл буде виконуватися до тих пір, поки код повернення = 0! Оператор "[" аналог команди test, яка перевіряє істинність умови, що їй передали.

Цикли. Цикл until-do.

синтаксис

until TEST-COMMAND; do CONSEQUENT-COMMANDS; done # синтаксис для запису циклу в один рядок

Оператор case завжди завершується ключовим словом esac.

case рядок in шаблон) список операторів ;; [Шаблон) список операторів [;;]] esac

Оператор case черзі порівнює рядок з шаблонами. Якщо шаблон збігається, то виконується група операторів, які перебувають між шаблоном і спеціальними символами ";;". Після виконання всіх рядків управління передається операторам, які перебувають за ключовим словом esac.

Порожній оператор ":". Нічого не робить. Повертає значення "0".

Функцію в shell можна визначити двома способами: за допомогою оператора function або після імені функції написати відкриває і закриває дужки. Тіло функції розташовується між фігурними дужками.

eval arg1 [arg2] ... [argN]

Транслює список аргументів, зі списку, в команди.

Приклад. Демонстрація команди eval

#! / Bin / bash y = `eval ls -l` # Подібно y =` ls -l` echo $ y # але символи перекладу рядки не виводяться, оскільки ім'я змінної не в лапках. echo echo "$ y" # Якщо ім'я змінної записати в лапках - символи перекладу рядка зберігаються. echo; echo y = `eval df` # Аналогічно y =` df` echo $ y # але без символів перекладу рядка. # Коли проводиться придушення виведення символів LF (переклад рядка), то аналіз # + результатів різними утилітами, такими як awk, можна зробити простіше. exit 0

getopts - це вбудована в shell команда, що дозволяє розібрати командний рядок, передану програмі. Вона розуміє тільки параметри, написані в стилі POSIX , Тобто "-v -t -f file" і т.п.

Команда trap дозволяє перевизначити стандартну реакцію програми на одержувані сигнали. Буває необхідно захистити виконання програми від переривання. Формат команди trap:

trap 'список команд' сигнали

Якщо в системі виникнуть переривання, чиї сигнали перераховані через пробіл в "сигнали", то буде виконаний "список команд", після чого (якщо в списку команд не була виконана команда "exit") управління повернеться в точку переривання і продовжиться виконання командного файлу.

Найбільш часто доводиться зустрічатися з такими перериваннями, відповідними сигналами:

0 вихід з інтерпретатора, 1 відбій (відключення віддаленого абонента), 2 переривання від <Del>, 9 знищення (НЕ перехоплюється), 15 закінчення виконання.

Наприклад, якщо перед припиненням по перериваннях виконання якого то командного файла необхідно видалити файли в "/ tmp", то це може бути виконано командою "trap":

trap 'rm / tmp / *; exit 1 ↑ 1 2 15

яка передує іншим командам файлу. Тут, після видалення файлів буде здійснений вихід "exit" з командного файлу.

Команда "trap" дозволяє і просто ігнорувати переривання, якщо "список команд" порожній. Так наприклад, якщо команда "cmd" виконується дуже довго, а користувач вирішив відключитися від системи, то для продовження виконання цієї команди можна написати, запустивши команду в фоновому режимі:

(Trap '' 1; cmd) & bash.txt · Останні зміни: 2018/08/17 2:03 (зовнішня зміна)Echo $?
Категории
  • Биология
  • Математика
  • Краеведению
  • Лечебная
  • Наука
  • Физике
  • Природоведение
  • Информатика
  • Новости

  • Новости
    https://banwar.org/
    Наша взаимовыгодная связь https://banwar.org/. Запустив новый сайт, "Пари Матч" обещает своим клиентам незабываемый опыт и возможность выиграть крупные суммы.


    Наши клиенты
    Клиенты

    Быстрая связь

    Тел.: (044) 587-84-78
    E-mail: [email protected]

    Имя:
    E-mail:
    Телефон:
    Вопрос\Комментарий: