Автор Тема: Копилка полезных скриптов и команд  (Прочитано 18416 раз)

Azure

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2118
  • Карма: +275/-114
  • Обычно я му-р-р-р-чу
    • Просмотр профиля
    • Exilibris Web Development
Установка пункта меню загрузки по умолчанию
« Ответ #15 : 30 Сентябрь 2011, 22:33:02 »
В связи с многочисленными вопросами новичков и нежеланием ими использовать штатную утилиту Менеджер загрузки скрипт устанавливающий пункт меню загрузки по умолчанию:#!/bin/bash
# очистка переменной (в случае нескольких запусков скрипта
varpoint=
# создание перечня пунктов меню и выбор одного из них через диалоговое окно
varpoint=`sed -rne "/menuentry/{s/^.*(([\'\"]).*\2).*$/\1/;p}" /boot/grub/grub.cfg | \
zenity --list --title "Варианты загрузки" --text "Выберите пункт меню загрузки по умолчанию" --column "Пункты выбора"`
# проверка, выбран ли хоть какой-нибудь пункт меню
if [ "$varpoint" ]; then
        # меняем пункт меню загрузки на выбранный
        gksudo sed -i "/GRUB_DEFAULT/s%=.*$%=$varpoint%" /etc/default/grub
        # обновляем GRUB
        sudo update-grub
fi

хакер Шило

  • Старожил
  • ****
  • Сообщений: 308
  • Карма: +76/-20
  • Я скромен, потому что я гений. (Наум Каштаньер)
    • Просмотр профиля
Re: Копилка полезных скриптов и команд
« Ответ #16 : 30 Сентябрь 2011, 22:46:29 »
Все время использовал данный скрипт на сервере, а тут вдруг на домашнем компе ни с того ни с сего заартачился Ubuntu Tweaker - кинул этот скрипт в папку /etc и вызываю через терминал.
А делает он простейшую вещь - очищает систему. И отлично удаляет старые ядра - почему я его и и стал использовать на домашней машине.
#!/bin/bash

OLDCONF=$(dpkg -l|grep "^rc"|awk '{print $2}')
CURKERNEL=$(uname -r|sed 's/-*[a-z]//g'|sed 's/-386//g')
LINUXPKG="linux-(image|headers|ubuntu-modules|restricted-modules)"
METALINUXPKG="linux-(image|headers|restricted-modules)-(generic|i386|server|common|rt|xen)"
OLDKERNELS=$(dpkg -l|awk '{print $2}'|grep -E $LINUXPKG |grep -vE $METALINUXPKG|grep -v $CURKERNEL)
YELLOW="\033[1;33m"
RED="\033[0;31m"
ENDCOLOR="\033[0m"

if [ $USER != root ]; then
  echo -e $RED"Ошибка: нужны права root"
  echo -e $YELLOW"Переходим..."$ENDCOLOR
  exit 0
fi

echo -e $YELLOW"Очистка cache..."$ENDCOLOR
aptitude clean

echo -e $YELLOW"Удаление старых конфигураций..."$ENDCOLOR
sudo aptitude purge $OLDCONF

echo -e $YELLOW"Удаление старых ядер..."$ENDCOLOR
sudo aptitude purge $OLDKERNELS

echo -e $YELLOW"Очистка корзин..."$ENDCOLOR
rm -rf /home/*/.local/share/Trash/*/** &> /dev/null
rm -rf /root/.local/share/Trash/*/** &> /dev/null

echo -e $YELLOW"Закончено!"$ENDCOLOR

Brego

  • Ветеран
  • *****
  • Сообщений: 566
  • Карма: +93/-1
  • Перебьемся
    • Просмотр профиля
    • MintMem
Re: Копилка полезных скриптов и команд
« Ответ #17 : 07 Январь 2012, 22:29:58 »
Парсим html из библиотеки Мошкова для e-book

Сподобился приобрести читалку Gimini Magicbook M6HD. Через два месяца почувствовали с женой, что пропадаем: не высыпаемся, норовим забросить нужные дела и т.д., и только читать, читать...
Однако выяснилось, что html и txt, подобные тем, что в библиотеке Мошкова (колонкой в 74 символа), читать неудобно и неприятно, текст автоматически не выравнивается, возникают дурные пробелы и разрывы. Накропал скрипт, чтобы с этим бороться. Может, кому пригодится на будущее.
Скрипт автоматически скачивает файл (ссылка передается ему как параметр), переконвертирует его, убирает лишние теги и ненужные переносы строк, наводит некоторую косметику, и сохраняет его с понятным названием в той же директории, где  располагается сам скрипт. Можно выдать продукцию в виде html (что, имхо, предпочтительнее из-за возможности некоторого форматирования) -- это делает первый скрипт librupars_html.sh, или в txt -- librupars_txt.sh.
Скрипт запускается как обычно: ~$ ./скрипт ссылка (напр., ./librupars_html.sh http://lib.ru/BAUM/baum01.txt).

#!/bin/bash
# librupars_html.sh
# ===========================================
# Парсим html из Мошковской библиотеки
# для читалки Gimini Magicbook M6HD
# Порядок использования: ~$ ./скрипт ссылка
# =============================================
# Скачиваем и сохраняем контент во временный файл tmp:
wget "$1" -O tmp 2>/dev/null
# Определяем кодировку и загоняем ее в переменную
CODENAME=$(/usr/bin/enca -i tmp)
# Определяем имя конечного файла и сохраняем его в переменной:
NEWNAME=$(head -n 2 tmp | iconv -f ${CODENAME} -t UTF8 | sed '1d;2s/<[^>]*>//g;s/\s\{1,\}/_/g;s/[--.,?!:]/_/g')
# Парсим html: убираем теги <pre>, заменяем пробелы в начале строк тегом <br> и 5-ю неразрывными пробелами
# заменяем пустые строки тегом <br>, заменяем "-" или "--" на "&ndash"
# и сохраняем в новый файл:
 iconv -f ${CODENAME} -t UTF8 tmp | \
sed -e '
1s/<div.*\/div>//g
s/<pre>//g
s/^\s\{1,\}/<br>\&nbsp;\&nbsp;\&nbsp;\&nbsp;\&nbsp;/g
s/^$/<br>/g
s/-\{3,\}/<br>&/g
s/-\{1,2\}/\&ndash;/g'  >"$NEWNAME".html
# Прибираемся и отдыхаем
rm -f tmp
exit 0

#!/bin/bash
# librupars_txt.ru
# Парсим html из Мошкова в txt
# =================================
# Порядок использования: ~$ ./скрипт ссылка
wget "$1" -O tmp 2>/dev/null
CODENAME=$(/usr/bin/enca -i tmp)
NEWNAME=$(head -n 2 tmp | iconv -f ${CODENAME} -t UTF8 | sed '1d;2s/<[^>]*>//g;s/\s\{1,\}/_/g;s/[--.,?!:]/_/g')
iconv -f ${CODENAME} -t UTF8 tmp | \
sed -e '
1d
s/<[^>]*>//g
s/^\s\{3,\}/<br>/g
s/ \+/ /g
s/^$/<BR>/g' | tr "\n" " " | \
sed -e '
s/<BR>/\n/g
s/<br>/\n     /g' >"$NEWNAME".txt

rm -f tmp
exit 0

Надо сказать, что в библиотеке Мошкова встречаются и "нестандартные" файлы, с которыми эти скрипты не сладят, но с большей частью они успешно справляются.
« Последнее редактирование: 07 Январь 2012, 22:52:54 от Brego »
"Следующая эпоха началась с сожжения всех хроник вместе с хронистами". С. Лем

EagleStars

  • Постоялец
  • ***
  • Сообщений: 208
  • Карма: +64/-55
    • Просмотр профиля
Re: Копилка полезных скриптов и команд
« Ответ #18 : 07 Январь 2012, 23:45:21 »
Хорошие сценарии, но на мой взгляд не очень удобны.
Есть похожий сценарий, только для движка гецко, т.е. по простому дополнение для мозилы.
Называется stf. Делает то же что и два сценария выше, сохраняет текст со страницы браузера.
Только сохраняет текст с любой страницы, нетолько с указанной библиотеки.
Для сохранения текста он выделяется, и по пкм. Защита от копирования, если она есть на странице, обходится простым ctrl+a.
Имеется возможность выбора куда сохранять текст. Возможность установить подпись к устанавливаем документам и ряд ещё мелких настроек.
Для установки сценария достаточно в мозиле нажать сюда. И следовать инструкциям. Или перейти на страницу загрузки.
« Последнее редактирование: 08 Январь 2012, 01:02:33 от EagleStars »

Brego

  • Ветеран
  • *****
  • Сообщений: 566
  • Карма: +93/-1
  • Перебьемся
    • Просмотр профиля
    • MintMem
Re: Копилка полезных скриптов и команд
« Ответ #19 : 09 Январь 2012, 14:12:58 »
Есть похожий сценарий, только для движка гецко, т.е. по простому дополнение для мозилы.
Называется stf. Делает то же что и два сценария выше, сохраняет текст со страницы браузера.
Нет, stf просто сохраняет текст. А для читалки надо его переформатировать так, чтобы каждый абзац стал одной строкой, т.е. не содержал переносов, и кроме того, надо по возможности сохранить пустые строки, отбивки и прочее.
Владельцы ридеров меня поймут.  :-)
PS: Кроме того, stf плохо работает с именами файлов (оставляет в них, в частности, пробелы по-виндовому, и может пропустить запрещенные или нежелательные знаки), т.е. требует правки имен руками. ОС на большинстве ридеров -- это линукс, а он подобного не уважает, и файлы с такими сырыми именами часто откразывается загружать.
« Последнее редактирование: 09 Январь 2012, 15:08:56 от Brego »
"Следующая эпоха началась с сожжения всех хроник вместе с хронистами". С. Лем

EagleStars

  • Постоялец
  • ***
  • Сообщений: 208
  • Карма: +64/-55
    • Просмотр профиля
Re: Копилка полезных скриптов и команд
« Ответ #20 : 10 Январь 2012, 15:27:29 »
Не знал. Дельное уточнение про особый формат.
А насчёт имён файлов, там можно задать форматирование. А в целом внимание не обращал, т.к. всегда переименовываю в нужный мне вид.

PINK FLOYD

  • Ветеран
  • *****
  • Сообщений: 658
  • Карма: +48/-5
  • деГенерация... Процесс пошёл...
    • Просмотр профиля
Re: Копилка полезных скриптов и команд
« Ответ #21 : 05 Февраль 2012, 19:40:51 »
Очень обрадовался когда узнал об этой возможности. но после перезагрузки исчезла стандартная комбинация клавиш ctrl+f которая работает в любом браузере или офисе. После удаления и перезагрузки всё снова заработало. Жаль.

[spoiler]
Исправляем раскладку текста средствами bash
Весьма полезный, на мой взгляд, скрипт нашел на хабре. Особенно его должны оценить те, кто не хочет связываться с программами типа xneur.

#!/bin/bash

if [ "$(xsel)" = "" || "$(xsel)" = " " ]; then exit 1; fi

BOOFER=$(xsel -b)

xsel | sed "y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.\/<>?@#\$^&\`~фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбюБЮ№ёЁ/фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбю.БЮ,\"№;:?ёЁabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.<>#\`~/" | xsel -b -i

xvkbd -xsendevent -text "\[Control_L]\[v]"
echo -n "$BOOFER" | xsel -b -i

Автор подробно прокомментировал скрипт, который кстати, можно скачать и по ссылке http://rghost.ru/7179111.

Необходимые условия для его работы:
Наличие утилит xsel, xvkbd и xbindkeys -- устанавливаем:
sudo apt-get install xsel xvkbd xbindkeysЗапускаем в консоли
xbindkeysПрограмма пожалуется на отсутствие конфигурационного файла и предложит создать его командой
xbindkeys --defaults > $HOME/.xbindkeysrcчто мы и сделаем.
Затем в этот только что созданный файл ~/.xbindkeysrc запишем
"/путь/к/скрипту.sh"
alt + q
(в первой строчке, разумеется, подставим свой путь и имя скрипта)
и еще раз запустим
xbindkeys(кстати, утилиту xbindkeys лучше прописать в автозагрузку, если предполагается пользоваться скриптом довольно часто).
Теперь, если мы случайно забудем переключить раскладку и напечатаем yb abuf ct,t! нам будет достаточно выделить этот текст и нажать Alt+q.
Комбинацию клавиш, естественно, можно привязать свою.
[/spoiler]

Большая победа приходит не после серии маленьких побед, она приходит после большого поражения.

Brego

  • Ветеран
  • *****
  • Сообщений: 566
  • Карма: +93/-1
  • Перебьемся
    • Просмотр профиля
    • MintMem
Re: Копилка полезных скриптов и команд
« Ответ #22 : 09 Февраль 2012, 10:43:26 »
Очень обрадовался когда узнал об этой возможности. но после перезагрузки исчезла стандартная комбинация клавиш ctrl+f которая работает в любом браузере или офисе. После удаления и перезагрузки всё снова заработало. Жаль.
По-видимому, речь о Росинке-11. У нее, к сожалению, вообще коллекция заморочек с хоткеями. На "новогодней" девятке такого не наблюдается.
"Следующая эпоха началась с сожжения всех хроник вместе с хронистами". С. Лем

PINK FLOYD

  • Ветеран
  • *****
  • Сообщений: 658
  • Карма: +48/-5
  • деГенерация... Процесс пошёл...
    • Просмотр профиля
Re: Копилка полезных скриптов и команд
« Ответ #23 : 09 Февраль 2012, 11:33:00 »
По-видимому, речь о Росинке-11. У нее, к сожалению, вообще коллекция заморочек с хоткеями. На "новогодней" девятке такого не наблюдается.

Ну да, об 11-й и речь.

Большая победа приходит не после серии маленьких побед, она приходит после большого поражения.

PINK FLOYD

  • Ветеран
  • *****
  • Сообщений: 658
  • Карма: +48/-5
  • деГенерация... Процесс пошёл...
    • Просмотр профиля
Re: Копилка полезных скриптов и команд
« Ответ #24 : 13 Февраль 2012, 09:46:10 »
Об алиасах уже говорили, но давайте рассмотрим их подробнее. Например. Как я уже говорил мне в лом постоянно вводить команду sudo и вот наконец я нашёл для этого хорошее решение.
Поэтому открываем файл
sudo gedit ~/.bashrcИ пишем туда
alias apt-get="sudo apt-get"
alias aptitude="sudo aptitude"
То есть от ввода пароля мы себя, естественно, не избавляем, а от необходимости постоянно вводить sudo избавляем, тем более почти всегда apt-get и aptitude используются с sudo, а если это например aptitude search то и тут sudo ничего плохого нам не сделает.

Мой .bashrc пока такой:

alias apt-get="sudo apt-get"
alias aptitude="sudo aptitude"
alias nano="sudo nano"
alias fstab="sudo gedit /etc/fstab"
alias mtab="sudo gedit /etc/mtab"
alias draftsight="/opt/dassault-systemes/draftsight/bin/draftsight"
То есть теперь чтоб открыть файл fstab мне достаточно в терминале набрать fstab, а о вызове draftsight вообще молчу.

Надеюсь, это было кому-то полезно.

Большая победа приходит не после серии маленьких побед, она приходит после большого поражения.

Azure

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2118
  • Карма: +275/-114
  • Обычно я му-р-р-р-чу
    • Просмотр профиля
    • Exilibris Web Development
Re: Копилка полезных скриптов и команд
« Ответ #25 : 13 Февраль 2012, 17:01:37 »
Поэтому открываем файл
sudo gedit ~/.bashrcИ пишем туда
alias apt-get="sudo apt-get"
alias aptitude="sudo aptitude"
Ну если Вы такой оптимизатор, что Вам уже лень sudo писать…  :-D тогда все что выше заменяем на 1 командуecho 'alias apt-get="sudo apt-get"
alias aptitude="sudo aptitude"' | tee -a ~/.bashrc > /dev/null
И не знаю что дольше писать nano файл или sudo -e файл :-X при всем при том, что есть файлы, изменение которых sudo nano|gedit не сможет сохранить… (ну например /etc/sudoers, /boot/grub/grub.cfg и т.д.)
« Последнее редактирование: 13 Февраль 2012, 17:05:04 от Azure »

Alexander7_88

  • Ветеран
  • *****
  • Сообщений: 1514
  • Карма: +217/-4
  • Универсальный поисковый бот
    • Просмотр профиля
Re: Копилка полезных скриптов и команд
« Ответ #26 : 13 Февраль 2012, 17:14:40 »
Дополню.
Если следовать всем правилам, тогда использовать sudo nano|gedit - неверно. Правильнее использовать sudoedit

ИМХО sudoedit = sudo -e
« Последнее редактирование: 13 Февраль 2012, 18:03:23 от Azure »

PINK FLOYD

  • Ветеран
  • *****
  • Сообщений: 658
  • Карма: +48/-5
  • деГенерация... Процесс пошёл...
    • Просмотр профиля
Re: Копилка полезных скриптов и команд
« Ответ #27 : 13 Февраль 2012, 18:04:59 »
echo 'alias apt-get="sudo apt-get"
alias aptitude="sudo aptitude"' | tee -a ~/.bashrc > /dev/null
Какая ужасная страшная и не понятная команда  =-O
И не знаю что дольше писать nano файл или sudo -e файл :-X при всем при том, что есть файлы, изменение которых sudo nano|gedit не сможет сохранить… (ну например /etc/sudoers, /boot/grub/grub.cfg и т.д.)
sudoers то как раз, когда я накосячил в нём и не мог ничего нормально открыть, с консоли через рекавери мод я его открыл
sudo nano /etc/sudoers и всё сохранилось.
grub.cfg я тоже правил много раз, но его то по хорошему и не надо править. разве не
sudo nano /etc/default/grub
sudo update-grub
так правильнее?

Большая победа приходит не после серии маленьких побед, она приходит после большого поражения.

Alexander7_88

  • Ветеран
  • *****
  • Сообщений: 1514
  • Карма: +217/-4
  • Универсальный поисковый бот
    • Просмотр профиля
Быстрое создание плейлиста M3U
« Ответ #28 : 20 Февраль 2012, 13:53:02 »
Быстрое создание плейлиста M3U:

find . -iregex '.*\.\(mp3\|wav\|wma\)' -print > playlist.m3u
Оригинал


PINK FLOYD

  • Ветеран
  • *****
  • Сообщений: 658
  • Карма: +48/-5
  • деГенерация... Процесс пошёл...
    • Просмотр профиля
Re: Копилка полезных скриптов и команд
« Ответ #29 : 22 Февраль 2012, 20:50:53 »
Сохраняем просмотренное онлайн видео.
Создаём скрипт с таким текстом:
#!/bin/bash
#
# FLASHCOPY
#
# Will ieterate through all open copies flashplayer and copy flash video to the
# current folder (or specified directory) with the .flv extension added.

args=("$@")

args=`echo $args | sed 's/[/]$//'`

pids=`eval pgrep -f flashplayer`
for pid in $pids
do
lsoutput=$(lsof -p $pid | grep '/tmp/Flash[^ ]*')

IFS=$'\n'
for line in $lsoutput; do
lsout1=`echo $line | awk '{print "/proc/" $2 "/fd/" $4}' | sed 's/[rwu]$//'`
lsout2=`echo $line | awk '{print $9}' | awk -F '/' '{print $3}'`
if [ -n "$args" ];then
if [ -d $args ]; then
echo "Copying $lsout2 to $args/   -- BY $lsout1"
eval "cp $lsout1 $args/$lsout2.flv"
else
echo "The directory \"$args\" doesn't exist"
break
fi
else
echo "Copying $lsout2"
eval "cp $lsout1 $lsout2.flv"
fi
done
done
Даём ему имя например save_flash.sh сохраняем и даём право на выполнение.

Открываем онлайн видео, ждём пока полностью подгрузится. Создаём папку. Например такую
mkdir ~/tmp
Запускаем скрипт
./save_flash.sh ~/tmpИ ждём, пока выполнится. В папке появится наше видео, страницу с браузером закрывать не надо до тех пор, пока не получим видео.

P.S. Все советы по поводу пойдите в /tmp или ~/.cache для браузеров гугл хром и фаерфокс успеха не принесли, нигде ничего не было, помог только этот скрипт.

Проверял только на ютубе.
« Последнее редактирование: 22 Февраль 2012, 20:54:44 от PINK FLOYD »

Большая победа приходит не после серии маленьких побед, она приходит после большого поражения.