This media is not supported in your browser
VIEW IN TELEGRAM
Как узнать информацию о загруженности системы
Команда
Команда
top
покажет запущенные процессы. Но лучше установить улучшенную альтернативу htop
с расширенной статистикой, например, загруженности каждого ядра.👍11🔥6
This media is not supported in your browser
VIEW IN TELEGRAM
Что такое тильда
Знак ~ означает домашний каталог текущего пользователя. Это удобный способ быстро перейти в домашнюю директорию или в каталог внутри нее.
~
Знак ~ означает домашний каталог текущего пользователя. Это удобный способ быстро перейти в домашнюю директорию или в каталог внутри нее.
cd ~/Downloads
cat ~/.ssh/id_rsa.pub
👍15
This media is not supported in your browser
VIEW IN TELEGRAM
Как вывести содержимое нескольких файлов одной командой
Команду cat для вывода содержимого файлов можно использовать вместе с маской. Тогда команда выведет содержимое всех файлов, которые подходят под эту маску.
Команду cat для вывода содержимого файлов можно использовать вместе с маской. Тогда команда выведет содержимое всех файлов, которые подходят под эту маску.
cat *.dat
cat logs/nginx*2022-11*.log
👍13
This media is not supported in your browser
VIEW IN TELEGRAM
Как следить за логами веб-сервера в консоли
Команда
Команда
tail -f
выводит в реальном времени новые строки, которые появляются в файле. Таким способом удобно следить, например, за логами веб-сервера.
tail -f /var/log/nginx/access.log
tail -f ./app/logs/2022-11-*.dat
👍23🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Как выполнить команду под другим пользователем
Команда
Это может быть полезно, например, если вам требуется подключиться к локальной БД или выполнить команду приложения из под веб-сервера.
Команда
sudo
позволяет выполнять команды от имени другого пользователя системы. Добавьте флаг -u
и укажите юзернейм необходимого пользователя, или опустите его, чтобы выполнить команду под root
.Это может быть полезно, например, если вам требуется подключиться к локальной БД или выполнить команду приложения из под веб-сервера.
sudo -u postgres psql
sudo -u www-data php artisan:warm-cache
sudo mv secret.txt /root/secret.txt
👍23
This media is not supported in your browser
VIEW IN TELEGRAM
Зачем нужна комбинация
С помощью
Например, вам требуется скачать файл-установщик и выполнить его. Выполнение не будет иметь смысла, если скачивание прервется.
&&
С помощью
&&
можно объединить выполнение нескольких команд. Но выполнение прервется, если какая-то команда завершится неудачно.Например, вам требуется скачать файл-установщик и выполнить его. Выполнение не будет иметь смысла, если скачивание прервется.
curl -sS https://url-to-installer.com/installer.sh -o /tmp/installer.sh && /tmp/installer.sh
git commit -m "Fix" && git push
👍32
This media is not supported in your browser
VIEW IN TELEGRAM
Как быстро найти команду в истории
Наверняка вы знаете, что предыдущие команды консоли можно перебирать стрелками вверх-вниз.
Но если вам нужно найти давнишнюю команду только по каким-то обрывкам слов, нажмите
Наверняка вы знаете, что предыдущие команды консоли можно перебирать стрелками вверх-вниз.
Но если вам нужно найти давнишнюю команду только по каким-то обрывкам слов, нажмите
Ctrl + R
и введите в консоль часть слова, чтобы вывести последнюю команду с искомым вхождением этой строки. Каждое последующее нажатие ищет следующую команду в истории.🔥43👍13
This media is not supported in your browser
VIEW IN TELEGRAM
Как отфильтровать вывод предыдущей команды и зачем нужен pipe
Bash во многом удобный инструмент именно благодаря своей возможности передавать результаты команд между друг-другом. Как раз для этой цели используется
Самый простой пример – отфильтровать вывод лога nginx, чтобы показать только запросы к определенному URL. Выводим содержимое файла с
|
Bash во многом удобный инструмент именно благодаря своей возможности передавать результаты команд между друг-другом. Как раз для этой цели используется
|
(pipe, канал, конвеер).Самый простой пример – отфильтровать вывод лога nginx, чтобы показать только запросы к определенному URL. Выводим содержимое файла с
cat
, фильтруем с помощью grep
:
cat access.log | grep api/users
cat access.log | grep 02/Dec
cat access.log | grep api | grep 172.17.0.1
👍22🔥10
This media is not supported in your browser
VIEW IN TELEGRAM
Как разбить команду на несколько строк
Если при вводе команды поставить знак
Полезно, например, если вы хотите красиво отформатировать команду с большим количеством аргументов и отправить сниппет коллеге.
Если при вводе команды поставить знак
\
(обратный слеш), то при переводе строки вы сможете продолжить написание команды.Полезно, например, если вы хотите красиво отформатировать команду с большим количеством аргументов и отправить сниппет коллеге.
cd /app \
&& mkdir var \
&& cp .env.dist .env
👍32🔥8
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