This media is not supported in your browser
VIEW IN TELEGRAM
Зачем использовать симлинки
Символическая ссылка – это специальный файл, который на самом деле не содержит данных, а является указанием реального местоположения другого файла или папки.
В обычной жизни такие ссылки вам особо не помогут, но например при деплое веб-приложения на сервер вы можете вынести хранилище загружаемых посетителями файлов из папки приложения в другое место файловой системы.
Например, создать такую ссылку можно командой:
Приложение обращаясь к загрузкам в папке
Символическая ссылка – это специальный файл, который на самом деле не содержит данных, а является указанием реального местоположения другого файла или папки.
В обычной жизни такие ссылки вам особо не помогут, но например при деплое веб-приложения на сервер вы можете вынести хранилище загружаемых посетителями файлов из папки приложения в другое место файловой системы.
Например, создать такую ссылку можно командой:
ln -s /data/uploads /app/public/uploads
Приложение обращаясь к загрузкам в папке
./public/uploads
фактически будет обращаться к /data/uploads
.👍37🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Фигурные скобки в аргументах
С помощью фигурных скобок можно быстро размножить аргументы по шаблону. Например создать несколько файлов, изменить расширение, вывести последовательность:
С помощью фигурных скобок можно быстро размножить аргументы по шаблону. Например создать несколько файлов, изменить расширение, вывести последовательность:
echo {a..z}
touch {01,02,05..10}_data.txt
mv .env{.example,}
🔥29👍15
This media is not supported in your browser
VIEW IN TELEGRAM
test для быстрой проверки условий
Когда неохота писать условную команду
Например, создать файл, если его еще нет:
Если вы используете проверку
Когда неохота писать условную команду
if
для выполнения короткого действия воспользуйтесь test
с условными связками &&
и ||
.Например, создать файл, если его еще нет:
test -f ./etc/nginx.conf || touch ./etc/nginx.conf
Если вы используете проверку
И
, то не забудьте в конце дописать || true
, иначе test
оборвет ваш скрипт с провалом:
test "$RESULT" && echo "Success" || true
🔥20👍11👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Сортировка в консоли
Интуитивным перебором можно найти команду консоли почти на любой случай жизни.
Отсортировать файл можно конечно же командой
Кстати можно сортировать еще и вывод через конвеер
Интуитивным перебором можно найти команду консоли почти на любой случай жизни.
Отсортировать файл можно конечно же командой
sort
. С флагом -r
сортировка произойдет в обратном порядке.Кстати можно сортировать еще и вывод через конвеер
|
.
sort data.txt
./app fetch-names | sort
👍22🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Как сохранить вывод команды в файл
Вывод любой консольной команды можно перенаправить в файл. Для этого используйте модификаторы
Вывод любой консольной команды можно перенаправить в файл. Для этого используйте модификаторы
>>
чтобы добавить результат в конец файла и >
, чтобы перезаписать файл.
sort data.txt > sorted.txt
cat nginx/access.log | grep 127.0.0.1 >> filtered_by_ip.log
👍32🔥6👎1
This media is not supported in your browser
VIEW IN TELEGRAM
TAB для автодополнения
Если во время ввода названия файла или папки в команде вы нажмете
Но
Вообще
Если во время ввода названия файла или папки в команде вы нажмете
TAB
, то консоль допишет искомое название.Но
TAB
также умеет дополнять любые аргументы: подкоманды, названия веток, контейнеров, ssh хостов и так далее. Поэкспериментируйте сами.Вообще
autocomplete
для различных команд можно устанавливать, поэтому если TAB
для вашего приложения не сработал – попробуйте поискать нужный пакет автодополнений для этой программы.👍19🔥5👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Как увидеть команды, которые выполняются внутри bash скрипта
Иногда хочется понять, правильно ли вы написали скрипт, или отлаживаете CI/CD джобу. Но как увидеть, какие именно команды выполняются, какие переменные передаются и так далее?
В этом вам точно поможет встроенная функция
Эту функцию можно вызывать как в самом начале скрипта, так и окружить ей необходимый участок:
Иногда хочется понять, правильно ли вы написали скрипт, или отлаживаете CI/CD джобу. Но как увидеть, какие именно команды выполняются, какие переменные передаются и так далее?
В этом вам точно поможет встроенная функция
set -x
. Все команды, которые будут идти после выполнения set -x
будут отображены в консоли. Эту функцию можно вызывать как в самом начале скрипта, так и окружить ей необходимый участок:
set -x
/ set +x
👍36🔥20
This media is not supported in your browser
VIEW IN TELEGRAM
Калькулятор в консоли
Вы можете вычислять математические выражения в bash, если заключите их в комбинацию
Вы можете вычислять математические выражения в bash, если заключите их в комбинацию
$(( ))
. Значение можно сразу вывести, записать в переменную или использовать еще как угодно.
echo $((2 * (30 - 19) / 5))
MATH=$((2**8 + 1))
👍41🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Парсниг JSON в консоли
Если вам требуется просто спарсить единственное поле объекта JSON, полученного например из API-эндпоинта, тогда вы можете обойтись
Если же нужно, предположим, выбрать определенный ключ массива вложенного в глубину объекта, используйте утилиту
Если вам требуется просто спарсить единственное поле объекта JSON, полученного например из API-эндпоинта, тогда вы можете обойтись
sed
.Если же нужно, предположим, выбрать определенный ключ массива вложенного в глубину объекта, используйте утилиту
jq
(документация). Как минимум, jq
выведет ваш JSON отформатированно и в цвете.🔥22👍10👎1
Шпаргалка по Bash для начинающих
Часто забываете команды bash или другие возможности оболочки? Мы нашли для вас полезную статью-шпаргалку.
В ней вы найдёте шпаргалки на такие темы: введение в оболочку, навигация, основные команды, переменные окружения, коннекторы, конвейеры, перенаправление ввода/вывода, права доступа и комбинации клавиш.
Забыли, открыли, вспомнили и продолжили работу 👌
Часто забываете команды bash или другие возможности оболочки? Мы нашли для вас полезную статью-шпаргалку.
В ней вы найдёте шпаргалки на такие темы: введение в оболочку, навигация, основные команды, переменные окружения, коннекторы, конвейеры, перенаправление ввода/вывода, права доступа и комбинации клавиш.
Забыли, открыли, вспомнили и продолжили работу 👌
🔥22👍10
Отправка сообщений в терминал пользователя
Команда отправки сообщений,
Займёмся решением данной задачи, напишем bash-скрипт:
https://telegra.ph/Otpravka-soobshchenij-v-terminal-polzovatelya-05-31
Команда отправки сообщений,
write
, довольно проста. Для того, чтобы ей воспользоваться, достаточно знать имя пользователя и имя его терминала. Однако, для успешной отправки сообщения, помимо актуальных данных о пользователе и терминале, надо знать, вошёл ли пользователь в систему, не запретил ли он запись в свой терминал. В результате, перед отправкой сообщения нужно выполнить несколько проверок.Займёмся решением данной задачи, напишем bash-скрипт:
https://telegra.ph/Otpravka-soobshchenij-v-terminal-polzovatelya-05-31
👍14👎1
This media is not supported in your browser
VIEW IN TELEGRAM
nohup для создания "бессмертных" процессов
nohup - это команда для создания долгоживущих процессов без зависимости от терминала. Когда вы запускаете программу из командной строки, она обычно завершается при закрытии терминала. Однако, если вы добавите символ
Это полезно, например, для запуска долгих задач или серверов, которые должны работать в фоновом режиме.
nohup - это команда для создания долгоживущих процессов без зависимости от терминала. Когда вы запускаете программу из командной строки, она обычно завершается при закрытии терминала. Однако, если вы добавите символ
&
и используете команду nohup
, программа будет продолжать работу даже после закрытия терминала. Это полезно, например, для запуска долгих задач или серверов, которые должны работать в фоновом режиме.
nohup firefox https://freecodecamp.org &
🔥24👍9
This media is not supported in your browser
VIEW IN TELEGRAM
Переменные среды
Иногда в командах оболочки нужно работать с некими системными данными. Вот, например, как вывести домашнюю директорию текущего пользователя
Обратите внимание на то, что мы можем использовать системную переменную $HOME в двойных кавычках, это не помешает системе её распознать.
Иногда в командах оболочки нужно работать с некими системными данными. Вот, например, как вывести домашнюю директорию текущего пользователя
Обратите внимание на то, что мы можем использовать системную переменную $HOME в двойных кавычках, это не помешает системе её распознать.
echo "Home for the current user is: $HOME"
👍17🔥1
Уроки Linux для начинающих / Изучение Linux Ubuntu и Bash с нуля
В этом плейлисте вы научитесь устанавливать VirtualBox с Ubuntu, изучите основы пользовательского интерфейса и командной строки Linux, научитесь работать с файлами и директориями, изучите пакетный менеджер, работу с памятью, сжатие файлов и редакторы текста, разберёте команды поиска FIND и GREP.
📹 Плейлист YouTube
Если вы уже имеете эти навыки и знания, поделитесь ими со своими друзьями ;)
В этом плейлисте вы научитесь устанавливать VirtualBox с Ubuntu, изучите основы пользовательского интерфейса и командной строки Linux, научитесь работать с файлами и директориями, изучите пакетный менеджер, работу с памятью, сжатие файлов и редакторы текста, разберёте команды поиска FIND и GREP.
Если вы уже имеете эти навыки и знания, поделитесь ими со своими друзьями ;)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Установка разрешений для файла сценария
Сохранив файл bash-скрипта, необходимо сделать этот файл исполняемым, иначе, попытавшись его запустить, вы столкнётесь с ошибкой
Сохранив файл bash-скрипта, необходимо сделать этот файл исполняемым, иначе, попытавшись его запустить, вы столкнётесь с ошибкой
Permission denied
.chmod +x ./myscript
./myscript
👍20👎2🔥2
Пользовательские переменные
Подобные переменные хранят значение до тех пор, пока не завершится выполнение сценария.
Как и в случае с системными переменными, к пользовательским переменным можно обращаться, используя знак доллара:
Подобные переменные хранят значение до тех пор, пока не завершится выполнение сценария.
Как и в случае с системными переменными, к пользовательским переменным можно обращаться, используя знак доллара:
grade=5
person="Adam"
echo "$person is a good boy, he is in grade $grade"
👍11🔥4👎1
Подстановка команд
Bash-скрипты позволяют извлекать информацию из вывода команд и сохранять её в переменных для дальнейшего использования.
Сделать это можно двумя способами:
• С помощью значка обратного апострофа «
• С помощью конструкции
Bash-скрипты позволяют извлекать информацию из вывода команд и сохранять её в переменных для дальнейшего использования.
Сделать это можно двумя способами:
• С помощью значка обратного апострофа «
`
»• С помощью конструкции
$()
mydir=$(pwd)
echo $mydir
👍10🔥4👎1
Сравнение чисел
В скриптах можно сравнивать числовые значения. Ниже приведён список соответствующих команд.
В скриптах можно сравнивать числовые значения. Ниже приведён список соответствующих команд.
n1 -eq n2
Возвращает истинное значение, если n1
равно n2
.n1 -ge n2
Возвращает истинное значение, если n1
больше или равно n2
.n1 -gt n2
Возвращает истинное значение, если n1
больше n2
.n1 -le n2
Возвращает истинное значение, если n1
меньше или равно n2
.n1 -lt n2
Возвращает истинное значение, если n1
меньше n2
.n1 -ne n2
Возвращает истинное значение, если n1
не равно n2
.val1=6
if [ $val1 -gt 5 ]
then
echo "The test value $val1 is greater than 5"
else
echo "The test value $val1 is not greater than 5"
fi
👍21🔥4👎2
Управляющая конструкция if-then
Управление потоком исполнения команд может быть достигнуто с помощью конструкции
Управление потоком исполнения команд может быть достигнуто с помощью конструкции
if-then
. Например, можно использовать ее для поиска пользователя в /etc/passwd
и, в случае успешного нахождения, вывести сообщение о его существовании.user=likegeeks
if grep $user /etc/passwd
then
echo "The user $user Exists"
fi
👍13🔥7👎2
Математические операции
Для выполнения математических операций в файле скрипта можно использовать конструкцию вида
Для выполнения математических операций в файле скрипта можно использовать конструкцию вида
$((a+b))
var1=$(( 5 + 5 ))
echo $var1
var2=$(( $var1 * 2 ))
echo $var2
👍16🔥3