Часто используемые команды shell

15 февраля 2014 г. 0:26

Когда дело доходит до администрирования системы Linux и, в частности, разворачивания сайтов на сервере, тогда встаёт вопрос об автоматизации своего труда. На помощь приходят shell скрипты. Так, например, они помогают мне делать автоматическое резервное копирование баз данных.

Вот список часто используемых мною команд.

Вывести на экран слово hello:

echo hello

Присвоить некоторое значение и вывести его на экран ($ - этот знак используется для получения значения переменной):

house_count=5
echo $house_count

word=lambada
echo $word

Записать результат выполнения в переменную:

DATE=`date +%Y%m%d`  # присвоит переменной DATE текущую дату в формате %Y%m%d (например, 20140215)
FILES=`find '/home/user/media' -type f`  # присвоит переменной FILES список всех найденных файлов в каталоге '/home/user/media' и его подкаталогов

Обратите внимание, что здесь используется хитрый знак "наклонная кавычка" - ` . Не путайте с другой кавычкой типа - '

Создание массива (например, массив имён баз данных):

DB_LIST[0]=db_name_0
DB_LIST[1]=db_name_1

или

DB_LIST=([0]=db_name_0 [1]=db_name_1)

или

DB_LIST=(db_name_0 db_name_1)

Вывод на экран всех элементов:

${DB_LIST[*]} # или
${DB_LIST[@]}

Пробежаться по массиву можно следующим образом:

for DB in ${DBLIST[*]}
do
   echo $DB
done

Условие if:

if [ $COUNT_ERRORS != 0 ]; then
   echo 'ERRORS: '$COUNT_ERRORS' !!!'
fi
if [ -e '/home/user/media/pic_1.jpg' ] # проверяет на существование файла pic_1.jpg
then
   echo -n 'pic_1.jpg is exist'
fi
if [ ! -e '/home/user/media/pic_2.jpg' ] # проверяет на отсутствие файла pic_2.jpg
then
   echo -n 'pic_2.jpg is not exist'
fi

Обратите внимание, что:

1) выражение внутри квадратных скобок обособляется с двух сторон пробелами: if [ выражение ]; then

2) есть возможность then написать на одной строке с if, тогда после квадратных скобок нужно поставить знак ;

Увеличить переменную на единицу:

COUNT_ERRORS=$[COUNT_ERRORS+1] # или
INDEX=`expr $INDEX + 1`

Построение последовательности команд с помощью операторов || и &&:

команда_1 || команда_2 - если команда_1 вернула верно (true), то следующие команды не будут выполнены (команда_2). Если команда_1 вернула 0 или неверно (false), то выполняется команда_2.

команда_1 && команда_2 - если команда_1 вернула верно (true), то будут выполняться следующие команды (команда_2). Если команда_1 вернула 0 или неверно (false), то не будут выполняться последующие команды в цепочке (команда_2).

Например:

[ -d '/home/user/media' ] || mkdir '/home/user/media' # если существует каталог '/home/user/media', 
# то ничего не делать, иначе создать каталог '/home/user/media'
rm '/home/user/media/pic_2.jpg' && echo "Файл успешно удалился!"  # команда rm попытается удалить файл '/home/user/media/pic_2.jpg', 
# если всё прошло хорошо (файл удалился), то вывести сообщение "Файл успешно удалился!"

Вычисление арифметических действий (берутся в двойные скобки с использованием $):

$(( 2*2 ))

Оцените статью

0 из 5 (всего 0 оценок)

captcha
Отмеченные звёздочкой поля ( * ) являются обязательными для заполнения.

Спасибо за ваш отзыв!

После нажатия кнопки "Отправить" ваше сообщение будет доставлено мне на почту.

Автор статьи

Артём Мальцев

Веб-разработчик, владеющий знаниями языка программирования Python, фреймворка Django, системы управления содержимым сайта Django CMS, платформы для создания интернет-магазина Django Shop и многих различных приложений, использующих эти технологии.

Права на использование материала, расположенного на этой странице https://vivazzi.pro/ru/it/shell-commands/:

Разрешается копировать материал с указанием её автора и ссылки на оригинал без использования параметра rel="nofollow" в теге <a>. Использование:

Автор статьи: Артём Мальцев
Ссылка на статью: <a href="https://vivazzi.pro/ru/it/shell-commands/">https://vivazzi.pro/ru/it/shell-commands/</a>

Больше: Правила использования сайта

Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.

Книга предназначается для широкого круга читателей и, по мнению автора, будет полезна специалистам отдела закупок и логистики, категорийным и финансовым менеджерам, менеджерам по продажам, аналитикам, руководителям и директорам, в компетенции которых принятие решений по управлению ассортиментом.

Комментарии: 0

Вы можете оставить комментарий как незарегистрированный пользователь.

Но зарегистрировавшись, вы сможете:

  • получать оповещения об ответах
  • просматривать свои комментарии
  • иметь возможность использовать все функции разработанных сервисов

Для комментирования от своего имени войдите или зарегистрируйтесь на сайте Vuspace

Отправить

На данный момент нет специального поиска, поэтому я предлагаю воспользоваться обычной поисковой системой, например, Google, добавив "vivazzi" после своего запроса.

Попробуйте

Выберите валюту для отображения денежных единиц