Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Игра представляет собой полноценную головоломку и дает возможность расслабиться после дня в тихой и уютной обстановке недалеко от горы Фудзи под деревом сакуры с полноценной игрой Маджонг!

Маджонг: Лепестки Сакуры

Маджонг, Головоломки, Милая

Играть

Топ прошлой недели

  • Oskanov Oskanov 8 постов
  • alekseyJHL alekseyJHL 6 постов
  • XpyMy XpyMy 1 пост
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Командная оболочка bash

С этим тегом используют

Linux IT Программирование Все
81 пост сначала свежее
871
d0nate110
d0nate110
7 лет назад
GNU/Linux

Агрессивный Linux - Сарказм⁠⁠

Агрессивный Linux - Сарказм 9GAG, Лига линуксоидов, Linux, Агрессия, Сарказм, Терминал, Командная оболочка bash, Юмор

Вольный перевод:


Команды терминала:


Любовь - не найдена

Счастье - не найдено

мир / покой - ненайден

убить - вы должны точно указать кого убить !


Всем добра и больше линукса :-)


P.S. байанометр не ругался...

Показать полностью 1
9GAG Лига линуксоидов Linux Агрессия Сарказм Терминал Командная оболочка bash Юмор
75
51
corvuscor
8 лет назад
GNU/Linux

Стоит ли изучать bash?⁠⁠

Короткий очерк. Вообще об эту тему поломано немало копий. Большинство людей, когда слышит про Linux, начинают заводить разговор типа "фу, консоль, прошлый век". А между прочим там есть мощнейший язык сценариев, который "был питоном задолго до того, как это стало мейнстримом", т.е при сравнительно невысоком пороге вхождения позволяет оптимизировать и автоматизировать все и вся. Ну, как без примера? Вот однострочный скрипт, который выжимает данные с популярного трекера в формате:

магнет-линк
название

curl -s http://mega-tor.org/top | grep -A 3 "a class=\"downgif\"" | grep -o -E "magnet.{54}|a href=\"/torrent.*</a>" | sed -e 's/a href=\"\/torrent.*">//g'

Понять, как это работает можно, ознакомившись с конвеером, утилитами в примере и регэкспами. Аналогичным образом можно работать с любым сайтом без скриптовой выдачи, да и вообще с любыми текстовыми файлами.

Может я и говорю очевидные вещи, но тем не менее. Изучать стоит.
[моё] Linux Командная оболочка bash IT Текст
57
54
SwampTech
SwampTech
8 лет назад
TECHNO BROTHER

Управление GPIO из командной строки Bash на Raspberry Pi - умный дом или мигаем лампой Ильича⁠⁠

Здравствуйте. Давно хотел запилить ролик о использовании GPIO на одноплатнике (в видео фигурирует Raspberry Pi B) и недавно сподобился. Подробности в видео.

Спасибо за внимание.

ПС: Текстовая версия видео (для неосиливших) - http://73-it.ru/odnoplatnye-kompyutery/gpio/upravlenie-gpio-...

[моё] Командная оболочка bash Raspberry Pi Gpio Умный дом Электроника Своими руками Радиогубительство Видео
48
BinaryTree
8 лет назад

Ты не ты, когда любишь Linux⁠⁠

Ты не ты, когда любишь Linux Linux, Windows, Linux и Windows, Командная оболочка bash, GNU

Комментарий находится здесь: https://www.opennet.ru/tips/2963_ubuntu_windows_bash_wsl.sht...

Linux Windows Linux и Windows Командная оболочка bash GNU
1
7
johnnykramer
johnnykramer
8 лет назад

Подсистема Ubuntu в Windows 10. Удаление и переустановка.⁠⁠

Наверняка, многие уже наслышаны или даже пользуются Ubuntu, встроенной в Windows 10.

Инструкций по установке на русском языке в интернете море. На пикабу наверняка такой баян тоже писали несколько раз, но я не проверял. Если будут у кого-нибудь вопросы - пишите в комментарии.


УДАЛЕНИЕ


Допустим, у тебя мелкий ssd на компьютере, а эту Ubuntu ставил "на поиграться", и наигрался. А теперь обратно нужно вернуть драгоценный ресурс ssd и удалить ненужную ubuntu.


В "Программы и компоненты" ты не увидишь Ubuntu в виде установленной программы, как бы это было когда-то давно в виде wubi.

А если и галочку уберешь в компонентах Windows - тоже ничего не изменится.

Всё просто.


1. Правый клик на Пуск -> Командная строка(администратор)

2. Пишем lxrun /uninstall /full, жмём Enter (Если /home удалять не надо, то ключ /full не нужен).


ПЕРЕУСТАНОВКА


Необходимость перестановки системы может возникнуть в любой "непонятной ситуации". Можно так же "поиграться" с этой Ubuntu и наломать там дров, а разгребать лень (себе то хоть в этом признайтесь :)


1. Правый клик на Пуск -> Командная строка(администратор)

2. Пишем lxrun /uninstall /full, жмём Enter (Если /home удалять не надо, то ключ /full не нужен)

3. Пишем lxrun /install /y, жмём Enter и ждём пока свеженькая Ubuntu скачается из Магазина (Ключ /y позволит отлучиться от компьютера на время установки).

4. В какой-то момент установщик попросит ввести имя пользователя и пароль. Сделай это.

Показать полностью
[моё] Windows 10 Ubuntu Командная оболочка bash Консоли Текст
11
garex
garex
8 лет назад

Linux: Подарки вконтактика в одну картинку⁠⁠

Осторожно! Дальше будет яваскрипт, консоль и баш!


Вконтактик имеет интересную фичу под названием "Подарки". Один только минус -- она платная. Для тех, кто студент или просто по идейным соображениям желает н....ть систему, сей мануал.


В конце у нас получится что-то типа:

Linux: Подарки вконтактика в одну картинку ВКонтакте, Подарки, Буржуазия, Хрен, Тег, Linux, Командная оболочка bash, Javascript, Длиннопост

1. Заходим на страницу подарков в браузере, типа google chrome

2. Тыкаем на первую картинку правой кнопкой и выбираем пункт "Inspect"

3. Открывается консоль типа вот так:

Linux: Подарки вконтактика в одну картинку ВКонтакте, Подарки, Буржуазия, Хрен, Тег, Linux, Командная оболочка bash, Javascript, Длиннопост

4. Находим родительский тэг DIV. В данном случае -- это gifts_box_birthday


5. Переключаемся на вкладку Console и пишем там наш адский скрипт:

var src=[]; $$('#gifts_box_birthday img.gift_img').forEach(function(img, index){src.push('wget ' + img.src + ' --output-document=' + index + '.jpg')}); src.join('\n')

6. Нажимаем ENTER и копируем результат

Linux: Подарки вконтактика в одну картинку ВКонтакте, Подарки, Буржуазия, Хрен, Тег, Linux, Командная оболочка bash, Javascript, Длиннопост

7. Открываем терминал, создаём временную директорию и идём туда:


mkdir --parents /tmp/fuck-da-vkontakt; cd /tmp/fuck-da-vkontakt
Linux: Подарки вконтактика в одну картинку ВКонтакте, Подарки, Буржуазия, Хрен, Тег, Linux, Командная оболочка bash, Javascript, Длиннопост

8. Вставляем результат в окно терминала и выполняем там скачку этих всех картинок. По окончании команда ls покажет нам, что файлики скачались.

Linux: Подарки вконтактика в одну картинку ВКонтакте, Подарки, Буржуазия, Хрен, Тег, Linux, Командная оболочка bash, Javascript, Длиннопост

9. Финальный аккорд нашего действа — запуск команды, которая все картинки красиво в одну картинку сложит. В линуксе есть команда montage из пакета imagemagick. Её и запустим, находясь в папке с файлами:

montage *.jpg fuck-da-vkontakt.png

10. В итоге у нас получится результат, типа такого. Много маленьких файликов и рядом один большой, слитый.

Linux: Подарки вконтактика в одну картинку ВКонтакте, Подарки, Буржуазия, Хрен, Тег, Linux, Командная оболочка bash, Javascript, Длиннопост

ps: Данная штука полезна, когда у вас есть мильён файликов, а их надо слить в один файлик и в скриншот он никак не хочет помещаться.

Показать полностью 6
[моё] ВКонтакте Подарки Буржуазия Хрен Тег Linux Командная оболочка bash Javascript Длиннопост
13
56
DefaultPikaUser
DefaultPikaUser
8 лет назад
GNU/Linux

Just another cheatsheet⁠⁠

http://gnulinux.guru/bash_cheatsheet.pdf

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

Лично себе распечатал и заламинировал. Очень удобно.

Командная оболочка bash Терминал Pdf Текст
13
23
bashman
8 лет назад
GNU/Linux

Разбор скрипта для командной строки Linux. Часть 3(заключительная)⁠⁠

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

Во второй части я совсем забыл про не столь критичные, но всё же замечания в комментариях. Так вместо #!/bin/bash советовали #!/usr/bin/env bash и вместо [ ] использовать [[ ]]. Перед началом разбора, применим эти замечания и получим:

#!/usr/bin/env bash

####PART 1####

if [[ -z "$1" ]]; then
echo "Error: missing argument" 1>&2 ; exit 1
fi
f_out="$(mktemp)"
f_tmp="$(mktemp)"
trap "rm -f $f_out $f_tmp" EXIT

####PART 2####

echo "*********************************************"
echo "Get A records from DNS:"
dig +short {www.,}$1 A | tee "$f_out"

####PART 3####

echo "*********************************************"
echo "Get NS records from DNS:"
dig +short $1 NS | while read nsserv
do
nsname=${nsserv:0:-1}
echo "=================================="
echo "NS: $nsname"
dig +short @$nsname $1 A | tee -a $f_out
done

####PART 4####

echo "*********************************************"
echo "Resolve ip range from whois service:"
sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 $f_out | uniq > $f_tmp
rm $f_out
cat $f_tmp | while read ip
do
echo "Get ip range for $ip"
whois $ip | grep -E -i "inetnum|route|netrange|cidr" >> $f_out
done

####PART 5####

echo "*********************************************"
echo "Result"
echo "*********************************************"
sort $f_out | uniq | while read range
do
echo "${range:16}"
done

Для начала, хотелось бы сказать, что для больших данных, запись в файл может быть предпочтительнее, чем хранение в переменной. Но в нашем случае информации не так много, поэтому лучше использовать переменные и(или) массивы. Также стоит заменить, что все команды echo, лучше заменить на команду printf.

В 1-ой части кода происходит создание временных файлов, что для нас уже не актуально и можно удалить. Получим:

if [[ -z "$1" ]]; then

printf -- "%s\n" "Error: missing argument" 1>&2 ; exit 1

fi

Далее в каждой из частей происходит выписывание звездочек, заголовка и результата операции. В таком варианте ясно какие шаги выполняет скрипт, но скрипт будет сложнее использовать, т.к. нельзя будет просто записать конечный результат в файл. Поэтому, лучше выписывать промежуточные этапы не на stdout, а на stderr. Так мы улучшим скрипт и не повлияем на функциональность, т.к. всегда можно сделать  2>&1. Cделаем для этого функцию verbose:

function verbose {
printf -- "%s\n" "$1" 1>&2
}

Звездочки с заголовком выписываются в каждой части, поэтому для этого добавим функцию print_header:

function print_header {

verbose "*********************************************"

verbose "$1"

}

Теперь изменим 2-ую часть. Вместо временных файлов запишем результат в перемененную records. Так мы получим:

####PART 2####

print_header "Get A records from DNS:"


records="$(dig +short {www.,}$1 A)"

verbose "$records"

Поработаем над 3-ей частью, пошлём вывод на stderr и добавим новые  ip в переменную records:

####PART 3####
print_header "Get NS records from DNS:"


dig +short $1 NS | while read nsserv
do
nsname=${nsserv:0:-1}
verbose "=================================="
verbose "NS: $nsname"
ns_records="$(dig +short @$nsname $1 A)"
verbose "$ns_records"
records+=ns_records
done

А вот с 4-ой частью возникли проблемы. В данной строке:

whois $ip | grep -E -i "inetnum|route|netrange|cidr" >> $f_out

после проведение grep, терялся \n на конце последней строки. В этом примере это не было проблемой, т.к. >> добавлял текст в конец файла и сам ставил новую строку(\n) между старым и новым текстом. Но когда я переписал на переменные, то проблема дала о себе знать и пришлось добавлять символ \n для каждого результата этой команды. Однако появилась одна пустая строка в конце результата, но удалить её было просто:

result="${result%$'\n'}

4-ая часть после изменений:

####PART 4####

print_header "Resolve ip range from whois service:"

records="$(sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 <<<"$records" | uniq)"

result=''

while read ip

do

verbose "Get ip range for $ip"

result+="$(whois $ip | grep -E -i "inetnum|route|netrange|cidr")"$'\n'

done <<< "$records"


result="${result%$'\n'}

Немного изменим 5-ую часть:

####PART 5####
print_header "Result:"
sort <<< "$result" | uniq | while read range
do
printf -- "%s\n" "${range:16}"
done

После всех изменений, мы получим:

#!/usr/bin/env bash

function verbose {

printf -- "%s\n" "$1" 1>&2
}

function print_header {

verbose "*********************************************"
verbose "$1"
}

####PART 1####

if [[ -z "$1" ]]; then
printf -- "%s\n" "Error: missing argument" 1>&2 ; exit 1
fi

####PART 2####

print_header "Get A records from DNS:"
records="$(dig +short {www.,}$1 A)"
verbose "$records"

####PART 3####

print_header "Get NS records from DNS:"
dig +short $1 NS | while read nsserv
do
nsname=${nsserv:0:-1}
verbose "=================================="
verbose "NS: $nsname"
ns_records="$(dig +short @$nsname $1 A)"
verbose "$ns_records"
records+=ns_records
done

####PART 4####

print_header "Resolve ip range from whois service:"
records="$(sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 <<<"$records" | uniq)"
result=''
while read ip
do
verbose "Get ip range for $ip"
result+="$(whois $ip | grep -E -i "inetnum|route|netrange|cidr")"$'\n'
done <<< "$records"
result="${result%$'\n'}"

####PART 5####

print_header "Result:"
sort <<< "$result" | uniq | while read range
do
printf -- "%s\n" "${range:16}"
done

Возможно код стал немного хуже читаться, но за-то мы избавились от временных файлов. А стоит ли оно того, решать только вам.

Заключение:

Последняя часть возможно вышла слегка сумбурна, но сказывается то, что на весь разбор ушло значительно больше времени, чем планировалось. Если с глазу на глаз можно быстро объяснить суть ошибок, то данный формат заставляет думать над каждым словом и писать предельно чётко. Однако, вижу что данный разбор, для достаточного для меня количества людей, пришёлся по душе и это радует.


Опять же, за это время уже были замечены темы, о которых бы стоило подробно написать и надеюсь это будет мною сделано. Плюс ко всему, уже появился новый пост от PetRiot, который хотя-бы вкратце, но можно будет разобрать. Поэтому новые посты будут и надеюсь достаточно скоро, но в комментариях буду отвечать регулярно.

Спасибо всем за внимание и поддержку, надеюсь данный разбор оказался для вас полезен!

Показать полностью
[моё] Gnulinux Linux Командная оболочка bash Программирование Длиннопост Текст
0
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии