diff --git a/Script/a_download b/Script/a_download new file mode 100644 index 0000000..7d1168e --- /dev/null +++ b/Script/a_download @@ -0,0 +1,38 @@ +#!/bin/bash + +vd='~/.local/bin/yt-dlp' +alias ${prefix}download_yt_dlp="${vd}" + +download_custom() +{ + cmd="${vd} -f $1 -R 10000 -i -o '%(upload_date)s-%(title)s-%(id)s.%(ext)s' $2" + eval $cmd +} +mkalias_with_prefix 'download_custom' + +download_worst() +{ + download_custom 'worst/worstvideo+worstaudio' "$1" +} +mkalias_with_prefix 'download_worst' + +download_best() +{ + download_custom 'best/bestvideo+bestaudio' "$1" +} +mkalias_with_prefix 'download_best' + +download_worst_audio() +{ + download_custom 'worstaudio' "$1" +} +mkalias_with_prefix 'download_worst_audio' + +download_format_list() +{ + cmd="${vd} -F $1" + eval $cmd +} +mkalias_with_prefix 'download_format_list' + + diff --git a/Script/a_image b/Script/a_image new file mode 100644 index 0000000..9f96577 --- /dev/null +++ b/Script/a_image @@ -0,0 +1,29 @@ +#!/bin/bash + +img_all_to_djvu() +{ + [ ${in_files_pattern} == '' ] && printf "Объедидение файлов в djvu\nУкажите входной шаблон. Например '*.jpg'\n" && return + in_files_pattern=$1 + for i in ${in_files_pattern}; do bmptopnm $i > pnm/$i.pnm; done + for i in *; do c44 -dpi 300 -slice 60+7+7 $i $i.djvu; done + djvm -c new.djvu *.djvu +} +mkalias_with_prefix 'img_all_to_djvu' + +img_resize_and_del_exif() +{ + search_template=$1 + [ "${search_template}" == '' ] && printf "Изменение размера и удаление exif\nУкажите входной шаблон файлов и ширину. Например: '*.jpg' 1024\n" && return + + image_width=$2 + [ "${image_width}" = "" ] && image_width="1024" && printf "Выбрана ширина '${image_width}'\n" + + for entry in "$search_template" + do + echo "${entry}" + convert "${entry}" -resize ${image_width} -strip "new.jpg" + done +} +mkalias_with_prefix 'img_resize_and_del_exif' + + diff --git a/Script/a_install b/Script/a_install index 9783f28..d7651e5 100644 --- a/Script/a_install +++ b/Script/a_install @@ -18,7 +18,7 @@ install_alt_linux_system_full_upgrade() } mkalias_with_prefix 'install_alt_linux_system_full_upgrade' -install_alt_linux_defaults() +install_alt_linux_progs() { printf "Установка важных программ\n" sudo apt-get install \ @@ -58,9 +58,10 @@ install_alt_linux_defaults() python3-module-pip \ NetworkManager-tui \ flatpak\ - tlp + tlp\ + syncthing } -mkalias_with_prefix 'install_alt_linux_defaults' +mkalias_with_prefix 'install_alt_linux_progs' install_alt_linux_skype_telegram_zoom() { @@ -92,13 +93,12 @@ install_gedit_duplicate_plugin() } mkalias_with_prefix 'install_gedit_duplicate_plugin' - install_n2n() { printf "Установка n2n\n" ask_continue && return # n2n - wget https://github.com/ntop/n2n/releases/download/3.0/n2n-3.0.0-1038.x86_64.rpm + wget -c https://github.com/ntop/n2n/releases/download/3.0/n2n-3.0.0-1038.x86_64.rpm sudo apt-get install ./n2n-3.0.0-1038.x86_64.rpm } mkalias_with_prefix 'install_n2n' @@ -108,7 +108,7 @@ install_n2n_alt_rpi() printf "Установка n2n\n" ask_continue && return # n2n rpi altlinux - wget https://packages.ntop.org/RaspberryPI/bullseye_pi/arm64/n2n/n2n_3.1.1-76-g709590d_arm64.deb + wget -c https://packages.ntop.org/RaspberryPI/bullseye_pi/arm64/n2n/n2n_3.1.1-76-g709590d_arm64.deb sudo epm -i ./n2n_3.1.1-76-g709590d_arm64.deb } mkalias_with_prefix 'install_n2n_alt_rpi' @@ -261,10 +261,10 @@ mkalias_with_prefix 'install_fuse_config' install_wifi_for_Android_13_in_altlinux() { - printf "Установка возможности пользоваться fusermount обычным пользователям для AltLinux\n" - ask_continue && return + [ "$1" == "" ] printf "Установка возможности пользоваться fusermount обычным пользователям для AltLinux\nУкажите имя соединения\n" && return + WIFINAME=$1 # Enable wi-fi for Android 13 in altlinux - nmcli connection modify WIFINAME wifi-sec.pmf 1 + nmcli connection modify ${WIFINAME} wifi-sec.pmf 1 } mkalias_with_prefix 'install_wifi_for_Android_13_in_altlinux' diff --git a/Script/a_ssh b/Script/a_ssh new file mode 100644 index 0000000..d07cf7d --- /dev/null +++ b/Script/a_ssh @@ -0,0 +1,17 @@ +#!/bin/bash + +ssh_del_known_host() +{ + in_host_pattern=$1 + [ "${in_host_pattern}" = "" ] && printf "Укажите шаблон адреса, например '192.168.1.'\n" && return + eval "sudo cp -u ~/.ssh/known_hosts ~/.ssh/known_hosts.backup && cat ~/.ssh/known_hosts.backup | grep -v ${in_host_pattern} > ~/.ssh/known_hosts" +} +mkalias_with_prefix 'ssh_del_known_host' + +ssh_for_openwpt_10.3_kamikadze() +{ + in_host_pattern=$1 + ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c 3des-cbc ${in_host_pattern} + +} +mkalias_with_prefix 'ssh_for_openwpt_10.3_kamikadze' diff --git a/Script/a_utils b/Script/a_utils new file mode 100644 index 0000000..a50cd3f --- /dev/null +++ b/Script/a_utils @@ -0,0 +1,48 @@ +#!/bin/bash + +alias ${prefix}archive_each_file_into_separate_archive="find . -mindepth 1 -maxdepth 1 -type f -exec tar -cvzf 'out/{}.tgz' '{}' \;" + +unicode_U200B_correct () +{ + [ $1 == '' ] && printf "Корректировка ошибки в latex U200B\nУкажите входной файл" && return + perl -CSD -pe "s/\N{U+200B}//gu" < $1 > noU200B_$1 +} +mkalias_with_prefix 'unicode_U200B_correct' + +festival_txt2mp3 () +{ + [ $1 == '' ] && printf "Озвучивание текста\nУкажите входной текстовый файл. Выходной будет с тем же именем, но mp3\n" && return + in_file=$1 + out_wav_file_name="$1.wav" + out_mp3_file_name="$1.mp3" + cat "$1" | sed 's/[^a-zA-ZА-Яа-я0-9., ]//g' | text2wave -o "$out_wav_file_name" + lame "$out_wav_file_name" "$out_mp3_file_name" + rm "$out_wav_file_name" +} +mkalias_with_prefix 'festival_txt2mp3' + +alias ${prefix}gen_password='pwgen -n 16' + +rand_string() +{ + tr -dc A-Za-z0-9 < /dev/urandom | dd bs=${RANDOM:1:2} count=1 2>/dev/null +} +mkalias_with_prefix 'rand_string' + + +check_internet_script() +{ + host="ya.ru" + + while true; do + result=$(ping -c 3 $host | tail -2 | head -1 | awk '{print $4}') + if [ $result -eq 0 ]; then + echo "Нет интернета" + break + fi + sleep 180 + done +} +mkalias_with_prefix 'check_internet_script' + + diff --git a/Script/a_video b/Script/a_video new file mode 100644 index 0000000..5bd0991 --- /dev/null +++ b/Script/a_video @@ -0,0 +1,27 @@ +#!/bin/bash + +video_encode_240() +{ + [ $1 == '' ] && printf "Перекодирование видео в формат 240*180\nУкажите входной шаблон. Например '*.mp4'\n" && return + for filename in "$1"; do + echo "Take '${filename}'"; + if [ -f "${filename}" ]; then + echo "Make '${filename}'"; + ffmpeg -i "${filename}" -vcodec libx264 -vb 50K -s 240x180 -acodec libmp3lame -ab 16K -strict -2 "${filename}_240.mkv" + fi + done +} +mkalias_with_prefix 'video_encode_240' + +video_union_video_and_audio() +{ + [ $1 == '' ] && printf "Объедидение видео и аудио\nУкажите входной файл видео и аудио. Например: 1.mp4 1.wav\n" && return + ffmpeg -i $1 -i $2 -c:a aac -b:a 128k -vcodec copy -map 0:v -map 1:a o.mp4 +} +mkalias_with_prefix 'video_union_video_and_audio' + + +cur_dir=${alias_dir} +alias parse_arg_lib='${cur_dir}/../video_tools/parse_arg_lib' +alias ${prefix}video_img_and_wav2video='${cur_dir}/../video_tools/img_and_wav2video' +#alias ${prefix}video_union_video_and_audio='${cur_dir}/../video_tools/union_video_and_audio.bash' diff --git a/Script/alias_main b/Script/alias_main index 1b54ca9..8f41e2c 100755 --- a/Script/alias_main +++ b/Script/alias_main @@ -21,156 +21,18 @@ ask_continue() source "${alias_dir}/a_install" source "${alias_dir}/a_pdf" source "${alias_dir}/a_hdd" +source "${alias_dir}/a_openwrt" +source "${alias_dir}/a_utils" +source "${alias_dir}/a_video" +source "${alias_dir}/a_image" +source "${alias_dir}/a_ssh" +source "${alias_dir}/a_download" -alias ${prefix}archive_each_file_into_separate_archive="find . -mindepth 1 -maxdepth 1 -type f -exec tar -cvzf 'out/{}.tgz' '{}' \;" -unicode_U200B_correct () -{ - [ $1 == '' ] && printf "Корректировка ошибки в latex U200B\nУкажите входной файл" && return - perl -CSD -pe "s/\N{U+200B}//gu" < $1 > noU200B_$1 -} -mkalias_with_prefix 'unicode_U200B_correct' -festival_txt2mp3 () -{ - [ $1 == '' ] && printf "Озвучивание текста\nУкажите входной текстовый файл. Выходной будет с тем же именем, но mp3\n" && return - in_file=$1 - out_wav_file_name="$1.wav" - out_mp3_file_name="$1.mp3" - cat "$1" | sed 's/[^a-zA-ZА-Яа-я0-9., ]//g' | text2wave -o "$out_wav_file_name" - lame "$out_wav_file_name" "$out_mp3_file_name" - rm "$out_wav_file_name" -} -mkalias_with_prefix 'festival_txt2mp3' - -encode_240() -{ - [ $1 == '' ] && printf "Перекодирование видео в формат 240*180\nУкажите входной шаблон. Например '*.mp4'\n" && return - for filename in "$1"; do - echo "Take '${filename}'"; - if [ -f "${filename}" ]; then - echo "Make '${filename}'"; - ffmpeg -i "${filename}" -vcodec libx264 -vb 50K -s 240x180 -acodec libmp3lame -ab 16K -strict -2 "${filename}_240.mkv" - fi - done -} -mkalias_with_prefix 'encode_240' -union_video_and_audio() -{ - [ $1 == '' ] && printf "Объедидение видео и аудио\nУкажите входной файл видео и аудио. Например: 1.mp4 1.wav\n" && return - ffmpeg -i $1 -i $2 -c:a aac -b:a 128k -vcodec copy -map 0:v -map 1:a o.mp4 -} -mkalias_with_prefix 'union_video_and_audio' - -vd='~/.local/bin/yt-dlp' -alias ${prefix}download_yt_dlp="${vd}" - -download_worst() -{ - cmd="${vd} -f 'worst/worstvideo+worstaudio' -R 10000 -i -o '%(upload_date)s-%(title)s-%(id)s.%(ext)s' $1" - eval $cmd -} -mkalias_with_prefix 'download_worst' - -download_best() -{ - cmd="${vd} -f 'best/bestvideo+bestaudio' -R 10000 -i -o '%(upload_date)s-%(title)s-%(id)s.%(ext)s' $1" - eval $cmd -} -mkalias_with_prefix 'download_best' - -download_worst_audio() -{ - cmd="${vd} -f 'worstaudio' -R 10000 -i -o '%(upload_date)s-%(title)s-%(id)s.%(ext)s' $1" - eval $cmd -} -mkalias_with_prefix 'download_worst_audio' - -download_format_list() -{ - cmd="${vd} -F $1" - eval $cmd -} -mkalias_with_prefix 'download_format_list' - -download_custom() -{ - cmd="${vd} -f $1 -R 10000 -i -o '%(upload_date)s-%(title)s-%(id)s.%(ext)s' $2" - eval $cmd -} -mkalias_with_prefix 'download_custom' -alias ${prefix}gen_password='pwgen -n 16' -cur_dir=${alias_dir} -alias parse_arg_lib='${cur_dir}/../video_tools/parse_arg_lib' -alias ${prefix}img_and_wav2video='${cur_dir}/../video_tools/img_and_wav2video' -alias ${prefix}union_video_and_audio='${cur_dir}/../video_tools/union_video_and_audio.bash' - -all_to_djvu() -{ - [ ${in_files_pattern} == '' ] && printf "Объедидение файлов в djvu\nУкажите входной шаблон. Например '*.jpg'\n" && return - in_files_pattern=$1 - for i in ${in_files_pattern}; do bmptopnm $i > pnm/$i.pnm; done - for i in *; do c44 -dpi 300 -slice 60+7+7 $i $i.djvu; done - djvm -c new.djvu *.djvu -} -mkalias_with_prefix 'all_to_djvu' - -resize_and_del_exif() -{ - search_template=$1 - [ "${search_template}" == '' ] && printf "Изменение размера и удаление exif\nУкажите входной шаблон файлов и ширину. Например: '*.jpg' 1024\n" && return - - image_width=$2 - [ "${image_width}" = "" ] && image_width="1024" && printf "Выбрана ширина '${image_width}'\n" - - for entry in "$search_template" - do - echo "${entry}" - convert "${entry}" -resize ${image_width} -strip "new.jpg" - done -} -mkalias_with_prefix 'resize_and_del_exif' - -ssh_del_known_host() -{ - in_host_pattern=$1 - [ "${in_host_pattern}" = "" ] && printf "Укажите шаблон адреса, например '192.168.1.'\n" && return - eval "sudo cp -u ~/.ssh/known_hosts ~/.ssh/known_hosts.backup && cat ~/.ssh/known_hosts.backup | grep -v ${in_host_pattern} > ~/.ssh/known_hosts" -} -mkalias_with_prefix 'ssh_del_known_host' - -ssh_for_openwpt_10.3_kamikadze() -{ - in_host_pattern=$1 - ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c 3des-cbc ${in_host_pattern} - -} -mkalias_with_prefix 'ssh_for_openwpt_10.3_kamikadze' - -rand_string() -{ - tr -dc A-Za-z0-9 < /dev/urandom | dd bs=${RANDOM:1:2} count=1 2>/dev/null -} -mkalias_with_prefix 'rand_string' - - -check_internet_script() -{ - host="ya.ru" - - while true; do - result=$(ping -c 3 $host | tail -2 | head -1 | awk '{print $4}') - if [ $result -eq 0 ]; then - echo "Нет интернета" - break - fi - sleep 180 - done -} -mkalias_with_prefix 'check_internet_script'