Сегодня настроение ныть почему-то нет, поэтому научимся открывать файл на нужной строке в разных редакторах.
ㅤ
А нахуя это нужно? Ну ХЗ, я обычно этим не пользуюсь, открываю полностью файл и ищу нужную мне строку. Но это вкусовщина, кто как привык.
Вообще я встречал людей, которые так открывают файлы, когда видят нечто подобное:
Хуяк и открыл
Короче давай посмотрим как это сделать.
Создаем файл для теста:
Получаем такое содержимое:
Ну и теперь давай открывать это:
➡️ mcedit
➡️ less
➡️ nano
➡️ vim
Вот такие пироги. А какие еще редакторы ты знаешь в которых можно открыть файл на определенной строке? Камон в комменты!
tags: #linux #tricks #bash
—
🔔 ➡️
ㅤ
А нахуя это нужно? Ну ХЗ, я обычно этим не пользуюсь, открываю полностью файл и ищу нужную мне строку. Но это вкусовщина, кто как привык.
Вообще я встречал людей, которые так открывают файлы, когда видят нечто подобное:
Error in file "script.py" on line 42: NameError: name 'variable' is not defined
Хуяк и открыл
script.py сразу на 42 строке.Короче давай посмотрим как это сделать.
Создаем файл для теста:
( printf '%s\n' {A..Z}-$[++I] > /tmp/bashdays.txt )Получаем такое содержимое:
A-1
B-2
C-3
D-4
E-5
F-6
G-7
H-8
I-9
...
Ну и теперь давай открывать это:
➡️ mcedit
mcedit +7 /tmp/bashdays.txt
➡️ less
less -w +11 /tmp/bashdays.txt
➡️ nano
nano +14 /tmp/bashdays.txt
➡️ vim
vim +4 /tmp/bashdays.txt
Вот такие пироги. А какие еще редакторы ты знаешь в которых можно открыть файл на определенной строке? Камон в комменты!
tags: #linux #tricks #bash
—
🔔 ➡️
👍1
Про процессоры
Привет, знаю что несколько не формат, но давно хотел написать да и в личке довольно много просили, потому полагаю некоторым пригодится.
🔤🔤🔥🔤🔤🔤🔤🔤🔤🔤
Автор поста 👆👆👆 А я лишь утащил в телеграф, получился длинно-пост, сюда не влезло. Лайки и комментарии приветствуются.
👉 Читаем и проникаемся
tags: #hardware
—
🔔 ➡️
Привет, знаю что несколько не формат, но давно хотел написать да и в личке довольно много просили, потому полагаю некоторым пригодится.
🔤🔤🔥🔤🔤🔤🔤🔤🔤🔤
Автор поста 👆👆👆 А я лишь утащил в телеграф, получился длинно-пост, сюда не влезло. Лайки и комментарии приветствуются.
👉 Читаем и проникаемся
tags: #hardware
—
🔔 ➡️
Пули закончатся раньше чем ноги
Откапал сегодня в одном коммерческом интерпрайзе такую конструкцию:
Смотрю я в неё и понять не могу, а нахуя?
ㅤ
Давай разберемся что тут не так.
Понял в чем дело? Нет? Давай дальше…
Вопрос — нахуя здесь «test»? Цикл и так является условным и сам проверяет что вернула команда. Получается избыточность.
Такое обычно херачат, либо по привычке, либо когда нужно быстрое решение, а времени на ресерч нет. Работает да и хрен с ним.
Вся эта конструкция могла бы выглядеть так:
Цикл будет шуршать, пока команда pgrep отрабатывает без ошибок и находит процесс.
Вот такая вот романтика, на хую два бантика… Изучай!
tags: #bash
—
🔔 ➡️
Откапал сегодня в одном коммерческом интерпрайзе такую конструкцию:
while [ $(pgrep process_name)>'0' ]
do
sleep 5
done
Смотрю я в неё и понять не могу, а нахуя?
ㅤ
Давай разберемся что тут не так.
«[» = это аналог или синоним встроенной команды «test». Если не задавать оператор, то на пустой строке вернется FALSE. Ну и логично что вернется TRUE если срока не пустая.«while» — ежу понятно, условный цикл. Будем вертеть на хуй, пока команда заданная в условие возвращаешь истину. В нашем случае эта команда «test».«pgrep» — ищем процесс с именем process_name. Эта штука выводит на стандартный вывод PID процесса. Если процесс не найден, код возврата отличный от нуля и нуль в противном случае.«$(command)» — Command запускается в подоболочке. Результат выполнения, подставляется в текущую позицию.«>» — Перенаправляет результат работы команды в файл (в нашем случае файл 0). Существующий файл, перезаписывается. Несуществующий, будет создан.Понял в чем дело? Нет? Давай дальше…
Вопрос — нахуя здесь «test»? Цикл и так является условным и сам проверяет что вернула команда. Получается избыточность.
Команда test — Предназначена для проверки типа файла и сравнения чисел и строк. Возвращает код возврата 0 (истина) или 1 (ложь) в зависимости от вычисления выражения. Выражения могут быть как унарными, так и бинарными.
Такое обычно херачат, либо по привычке, либо когда нужно быстрое решение, а времени на ресерч нет. Работает да и хрен с ним.
Вся эта конструкция могла бы выглядеть так:
while pgrep process_name &> /dev/null
do
sleep 5
done
Цикл будет шуршать, пока команда pgrep отрабатывает без ошибок и находит процесс.
Вот такая вот романтика, на хую два бантика… Изучай!
tags: #bash
—
🔔 ➡️
Набрёл сегодня на мануал по установке ack, а там такое:
В строке, в конце есть непонятности:
ㅤ
Опять какая-то магия, а магию мы с тобой любим.
Давай разберемся.
В данном случае
Например,
Вместо доступа к уже выполненной команде из истории, мы ссылаемся на текст текущей строки.
Соответственно:
Как это работает?
Сначала выполняется команда curl, которая скачает файл ack-2.28-single-file и сохранит его в
После этого, команда chmod изменяет права доступа для файла.
А
И по итогу команда превращается в
Вот и вся магия. Упорото? Аще!
А зачем это нужно?
- удобно для автоматизации и избежания дублирования ввода
- снижает вероятность ошибок, если накосячил в путях
Короче эта хреновина делает команду более динамичной и минимизирует рукоблудие.
Штука прикольная, как говорится — век живи, век учись.
🔥 Ну и с пятницей друзья! Еще пару недель и каникулы.
tags: #bash
—
🔔 ➡️
curl https://beyondgrep.com/ack-2.28-single-file > ~/bin/ack && chmod 0755 !#:3
ack — инструмент для поиска текста в файлах, который часто используется разработчиками как более удобная и современная альтернатива `grep`. Он написан на Perl и ориентирован на работу с кодом.
В строке, в конце есть непонятности:
!#:3ㅤ
Опять какая-то магия, а магию мы с тобой любим.
Давай разберемся.
В данном случае
!#:3 — это конструкция, связанная с историей команд в оболочке Bash/Zsh.! = Используется для доступа к истории команд.Например,
!! повторит последнюю команду, а !123 выполнит команду с номером 123 в истории.# = Ссылается на текущую команду, которая в данный момент пишется.Вместо доступа к уже выполненной команде из истории, мы ссылаемся на текст текущей строки.
:3 = Указывает, что нужно взять третий аргумент в текущей строке.Соответственно:
:1 — первый аргумент
:2 — второй аргумент
:3 — третий аргумент
Как это работает?
Сначала выполняется команда curl, которая скачает файл ack-2.28-single-file и сохранит его в
~/bin/ack.После этого, команда chmod изменяет права доступа для файла.
А
!#:3 подставляет третий аргумент текущей команды, то есть ~/bin/ack.И по итогу команда превращается в
chmod 0755 ~/bin/ackcurl http://beyondgrep.com/ack-2.28-single-file > ~/bin/ack && chmod 0755 ~/bin/ack
Вот и вся магия. Упорото? Аще!
А зачем это нужно?
- удобно для автоматизации и избежания дублирования ввода
- снижает вероятность ошибок, если накосячил в путях
Короче эта хреновина делает команду более динамичной и минимизирует рукоблудие.
Штука прикольная, как говорится — век живи, век учись.
🔥 Ну и с пятницей друзья! Еще пару недель и каникулы.
tags: #bash
—
🔔 ➡️
This media is not supported in your browser
VIEW IN TELEGRAM
🎄 Моя! 🎄
Ну чо, кто на ёлку богат уже? Кидайте в комменты ёлки и своё пятничное настроение, пиво там, вискарь или чо там у вас.
Ну чо, кто на ёлку богат уже? Кидайте в комменты ёлки и своё пятничное настроение, пиво там, вискарь или чо там у вас.
Так вот
🔤🔤🔥🔤🔤🔤🔤
Нука бармалеи, чо будет?
+ прикол
🔤🔤🔥🔤🔤🔤🔤
Эта музыка будет вечной, если я заменю батарейки
#!/bin/bash
declare -i a=9223372036854775803
for i in {1..10};do
echo $((a++))
done
Нука бармалеи, чо будет?
+ прикол
#!/bin/bash
declare -i a=1
for i in {1..64};do
a=a*2
[[ $i -gt 60 ]] && echo $i,$a
done