суббота, 20 января 2024 г.

Заполнить флэшку нулями в Linux с отображением хода процесса

Возникла необходимость очистить флэшку, которая ранее использовалась как загрузочная для системы Linux. Но переформатирование стандартными способами (Инструменты/Диски и GParted) терпели неудачу по причине того, что на загрузочной флэшке присутствовали два раздела, при удалении которых постоянно возникала ошибка.

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

Решение простое, команду dd необходимо запускать с параметром status=progress. Ниже показан пример хода процесса для 4 ГБ флэшки Mirex, которая в программе "Диски" (дисковая утилита Gnome) была показана как устройство /dev/sdd.

sudo dd if=/dev/zero of=/dev/sdd bs=1M status=progress

На рисунках видно, что со временем скорость записи данных на носитель со временем падает.




Когда заполненность носителя достигла своего предела команда dd отобразила невозможность на него дальнейшей записи:

При запуске программ "Диски" и GParted флэшка была отображена как неразмеченный носитель, то есть устройство без файловой системы. 


После создания на нём новой таблицы разделов и форматирования в FAT32 флэшка воспринимается операционной системой, может быть смонтирована и на неё можно записывать данные.



четверг, 18 января 2024 г.

Кнопки запуска в меню для браузеров Waterfox и Palemoon

 

Браузеры Waterfox и Palemoon для Linux распространяются в виде архивов tar.bz2 и tar.xz соответственно. То есть выбранный браузер может быть запущен из любого расположения на файловой системе диска пользователя. Однако при этом в меню никакой кнопки запуска автоматически не создаётся. Кнопку запуска в меню для Waterfox или Palemoon можно создать самому.

Кнопка запуска для браузера Waterfox

Перейдите в скрытую папку своего профиля ~/.local/share/applications  Создайте в ней файл Waterfox.desktop  Откройте его в текстовом редакторе и впишите него:

[Desktop Entry]
Name=Waterfox
Exec=/opt/waterfox/waterfox
Comment=
Terminal=false
PrefersNonDefaultGPU=false
Icon=emblem-www-waterfox
Type=Application
Categories=Network;

🔰   Пояснения 

Строка Exec= указывает на расположение в файловой системе папки waterfox. В приведенном примере эта папка расположена в каталоге /opt  В вашем случае расположение папки waterfox может быть другим, например, /home/user/Programs/waterfox  
Строка Icon= указывает на значок, под которым кнопка запуска будет отображена в меню. Вам потребуется указать свой значок.
Строка Categories=Network; указывает на то, что кнопка запуска браузера Waterfox будет отображена в разделе "Интернет" вашего меню.

В свойствах созданного Waterfox.desktop (права) укажите, что файл разрешено выполнять как программу.

Кнопка запуска для браузера Palemoon

Перейдите в скрытую папку своего профиля ~/.local/share/applications  Создайте в ней файл Palemoon.desktop  Откройте его в текстовом редакторе и впишите него:

[Desktop Entry]
Version=1.0
Type=Application
Name=Palemoon
Comment=
Exec=/opt/palemoon/palemoon
Icon=emblem-web-1
Path=
Terminal=false
StartupNotify=false
Categories=Network;

🔰   Пояснения 

Строка Exec= указывает на расположение в файловой системе папки palemoon. В приведенном примере эта папка расположена в каталоге /opt  В вашем случае расположение папки waterfox может быть другим, например, /home/user/Programs/palemoon  
Строка Icon= указывает на значок, под которым кнопка запуска будет отображена в меню. Вам потребуется указать свой значок.
Строка Categories=Network; указывает на то, что кнопка запуска браузера Palemoon будет отображена в разделе "Интернет" вашего меню.

В свойствах созданного Palemoon.desktop (права) укажите, что файл разрешено выполнять как программу.

понедельник, 15 января 2024 г.

Добавление в меню Cinnamon дополнительных меню (категорий) и элементов в них

При использовании Cinnamon возникла необходимость добавления собственной папки с пунктами, поскольку папка меню "Прочие" стала состоять из слишком большого количества кнопок запуска.

Щёлкните правой кнопкой мыши на кнопке меню Cinnamon. Вы увидите пункт "Редактировать меню". Нажмите на него левой кнопкой мыши и перейдите в редактор меню.


Выделите пункт меню "Приложения" и через кнопку "Новое меню" создайте новую папку в меню, а также соответствующий ей значок. После создания выделите созданное новое меню и через кнопку "Новый Элемент" укажите необходимые команды для выполнения и соответствующие им значки. Поясняющая картинки ниже:



Указанные на рисунке новые элементы были автоматически созданы в папке профиля ~/.local/share/applications под именами:

alacarte-made-dd064802-b39c-11ee-abe3-87598b93d49f.desktop

alacarte-made-f7c38fec-b39c-11ee-abe3-87598b93d49f.desktop

В приводимом примере их содержание соответственно:

[Desktop Entry]
Name=Upload folder
Exec=/home/minter/Tools/scripts/modules/upload.sh
Comment=
Terminal=true
PrefersNonDefaultGPU=false
Icon=emblem-arrow-1-orange
Type=Application

[Desktop Entry]
Name=Upload file
Exec=/home/minter/Tools/scripts/modules/upload-file-cinnamon.sh
Comment=
Terminal=true
PrefersNonDefaultGPU=false
Icon=emblem-arrow-1-green
Type=Application

четверг, 4 января 2024 г.

Использование split без ввода в терминале команды с параметрами

Терминальную команду split можно использовать более удобным образом для пользовательского применения. Для этого заранее создаётся два сценария (скрипта bash), которые и обеспечивают желаемый процесс, а также кнопка запуска, собственно и запускающая процесс. Публикация описывает создание инструмента для личных нужд. Вдруг кому и пригодится. 🙏

1. Создание сценария (исполняемого файла sh), который запишет число частей, на которые необходимо разбить исходный файл. Например: 

#!/bin/bash
zenity --width=200 --title "Количество частей" --text="На сколько частей разбить файл:" --entry > /tmp/parts.txt
exit

--title "..." и --text="..." можно указать свои. В рассматриваемом примере результат будет таким:


Введённое значение будет записано в файл /tmp/parts.txt

2. Сценарий выполнения команды split сначала запросит местоположение файлы, который необходимо разбить на части, а затем разобьёт его на указанное в п.1 количество частей. Количество частей будет введено из ранее созданного файла /tmp/parts.txt  Чтобы в процессе выполнения команды split окно терминала не было пустым, то в него добавлен поясняющий текст.

#!/bin/bash
file=$(zenity --file-selection)
/home/minter/Tools/scripts/modules/what-parts.sh
echo " "
echo " "
echo "     Результат в виде файлов с именем x..."
echo "     будет размещён в домашнем каталоге."
echo " "
echo "     После завершения процесса окно"
echo "     терминала закроется автоматически."
echo " "
echo " "
split "$file" -x -n$(cat /tmp/parts.txt) -a2
exit

В приведенном примере /home/minter/Tools/scripts/modules/what-parts.sh является сценарием, который указан в п.1 (см. выше). Результат:


Сценарий также оформляется как исполняемый файл sh

3. Другая реализация изложенного выше подразумевает использование только одного файла sh, например, split.sh , но работа которого более наглядна и удобна для пользователя.

#!/bin/bash
zenity --file-selection > /tmp/filename.txt
file=`cat /tmp/filename.txt`
zenity --width=180 --height=50 --question --timeout=10 --title="Запрос" --text="На сколько частей\nразбить файл ?$task" \
--ok-label="2 и больше" \
--cancel-label="Отмена"
answer=$?
if [ "$answer" -eq 0 ]; then
    zenity --width=50 --height=330 --list --title="Разрезать файл" --checklist --editable --column=" на сколько " --column " частей " --text= "" "2" "" "3" "" "4" "" "5" "" "6" "" "7" "" "8" "" "9" "" "10" > /tmp/parts.txt
elif [ "$answer" -eq 1 ]; then
    > /tmp/parts.txt
elif [ "$answer" -eq 5 ]; then
    > /tmp/parts.txt
fi
if [ -s /tmp/parts.txt ]; then
    echo " "
    echo " "
    echo "     Результат в виде файлов с именем x..."
    echo "     будет размещён в домашней папке."
    echo " "
    echo "     После завершения процесса окно"
    echo "     терминала закроется автоматически."
    echo " "
    echo " "
    split "$file" -x -n$(cat /tmp/parts.txt) -a2
    sleep 3
  else
    echo " "
    echo " "
    echo "     Не указано количество частей."
    echo "     Повторите, указав количество частей."
    echo " "
    sleep 5
fi 
exit

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


В данной форме указано 9 вариантов: от 2 до 10. Если необходимо больше, то измените строку --text= путём добавления "" "11" "" "12" и т. д. Также, запуская сценарий, подберите значение по вертикали  --height=330 В противном случае у вас справа будет отображаться вертикальная полоса прокрутки, что на мой взгляд, не совсем удобно.

Если ничего не введено, то есть нажата кнопка закрытия окна или "Отменить", то файл указания частей /tmp/parts.txt создаётся пустым, то есть не содержащим какой-либо цифры. Далее идёт проверка данного файла на "пустоту" и если он будет признан "пустым", то у вас появится сообщение о невозможности выполнить запрошенную операцию.


4. Кнопка запуска для сценария выполнения команды split сначала создаётся на рабочем столе через правое контекстное меню мыши "Создать значок запуска" (xfce) или "Создать кнопку запуска" (Cinnamon). Созданный файл представляет из себя запускаемый файл .desktop, который в xfce необходимо переместить в скрытый каталог ~/.local/share/applications (домашней папки). В Cinnamon при создании такого файла система сразу же предлагает создать такой файл в указанном месте. Содержание файла (пример):

[Desktop Entry]
Version=1.0
Type=Application
Name=Split
Comment=
Exec=/home/minter/Tools/scripts/modules/split.sh
Icon=partitionmanager
Path=
Terminal=true
StartupNotify=false

По умолчанию, созданная кнопка будет расположена в категории Прочее/Разное. Если имеется необходимость, чтобы она отображалась в категории "Инструменты", то в конец файла добавьте строку, например,

Categories=Utility;

Если имя созданной кнопки было указано на английском языке, а в меню вам необходимо отобразить её на русском, то добавьте в файл строку (как пример):

Name[ru]=Разрезать файл

Icon= указывает на значок, под которым созданная кнопка будет отображаться. В поле Comment= добавить поясняющий текст для чего это нужно и "с чем его едят" 😁.

При тестовом запуске созданной кнопки и указания числа частей 30 при резке файла размером в 4,3 ГБ сначала были созданы файлы x00 ... x09. Затем были созданы файлы x0a, x0b, x0c, x0d, x0e, x0f  Впоследствии создавались файлы с именами x10 ... x19, а за ними – x1a, x1b, x1c, x1d

вторник, 2 января 2024 г.

pixeldrain ‒ файлообменник без капчи и времени ожидания

На днях при запросе информации о бесплатных файлообменниках поисковик выдал ссылку на один из обзоров, в котором был упомянут данный ресурс. При дальнейшем ознакомлении с ним выяснилось, что его создатели кроме браузера предоставили для работы с ним инструменты, которые функционируют в Linux и других системах, отличных от Windows.

Интерфейс файлообменника англозычный. Несмотря на это он интуитивно понятен и не вызывает вопросов. На главной странице под номером 1 кнопка "Upload Files". после нажатия на которую выбирается что загрузить и начинается собственно загрузка. Под номером 2 отображается ход процесса в процентах с указанием скорости, а по завершении загрузки отобразится имя загруженного файла и ссылка на скачивание или просмотр. Пример:


Для использования файлообменника учётную запись создавать не обязательно, что вполне подходит для моих потребностей. На файлообменник можно загружать файлы до 20 ГБ, но после скачивания первых 5 ГБ скорость будет автоматически урезана до 1 МиБ/c. Поэтому будет разумным ориентироваться на загрузку файлов размером не более 5 ГБ. Срок хранения составляет 90 суток после последнего просмотра или скачивания.

Ценность файлообменника составляют инструменты для размещения на нём файлов без использования браузера. Перейдите в левом вертикальном меню в раздел Apps. Первым опробованным мной инструментом являлось графическое приложение Drainy. С ним всё просто: выбираете файл и после загрузки получаете ссылку. 




Однако в этом приложении лично меня не устроило отсутствие отображения хода процесса в процентах (или относительных частях) его выполнения. Поэтому в дальнейшем внимание было обращено на инструменты работы в командной строке: go-pd, go-pixeldrain, pdup. 

После опробования всех перечисленных инструментов было решено остановиться на pdup и go-pixeldrain. При тесте использования go-pd в терминале у меня не отображалось отображение прогресса загрузки. Окно терминала было открыто, но в нём ничего не отображалось. И только по завершении загрузки отобразилась сгенерированная pixeldrain ссылка такая же, как и в случае использования pdup. 

Установка pdup в Linux осуществляется одной командой:

sudo wget https://raw.githubusercontent.com/Fornax96/pdup/master/pdup -O "/usr/local/bin/pdup" && sudo chmod +x "/usr/local/bin/pdup"

Планировалось, что загружаться будут любые файлы из любого места на диске, поэтому через "Особые действия" в правое контекстное меню файлового менеджера Thunar был добавлен новый пункт с командой:

xfce4-terminal -H -x  sh -c "pdup %f; exec bash"

и условиями появления всех файлов кроме папок.

Для создания пункта в контекстном меню файлового менеджера Nemo создайте в ~/.local/share/nemo/actions файл имя_pdup.nemo_action, где имя – это выбранное вами имя этого файла. Его содержание должно быть примерно таким:

[Nemo Action]
Active=true
Name=Upload pixeldrain 
Comment=Отправить на pixeldrain
Exec=sh -c 'pdup %F; exec bash'
Icon-Name=mintupload
Selection=s
Extensions=nodirs;
Quote=double
Terminal=true

Name= является именем, под которым созданный пункт будет отображаться в правом контекстном меню, а Comment= является необязательным для заполнения полем пояснения назначения данного пункта.

При вызове созданного пункта меню загрузка выбранного файла осуществляется в терминале:


по завершении которой отобразится сгенерированная ссылка, например:

Uploading Slideshow_09_15.mp4 ... 
################################################### 100,0%
Your file URL: https://pixeldrain.com/u/pRUyuwM8

При переходе по ссылке скачивание файла производится по кнопке "Download" без капчи и времени ожидания.


Если необходима бóльшая информативность процесса загрузки, а также возможность шифрования перед отправкой на сервер, то воспользуйтесь приложением go-pixeldrain (готовые бинарные файлы скачать здесь). Пример:



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

По аналогии с pdup (см. выше) для своих нужд в ПКМ файлового менеджера Thunar был создан пункт для вызова загрузки. Пример:

xfce4-terminal -H -x  sh -c "/home/minter/Tools/pd upload %f; exec bash"

Для создания пункта в контекстном меню файлового менеджера Nemo создайте в ~/.local/share/nemo/actions файл имя_pd.nemo_action, где имя – это выбранное вами имя этого файла. Его содержание должно быть примерно таким:

[Nemo Action]
Active=true
Name=Upload PD direct get 
Comment=Отправить на pixeldrain (прямое скачивание)
Exec=sh -c 'pd upload %F; exec bash'
Icon-Name=mintupload
Selection=s
Extensions=nodirs;
Quote=double
Terminal=true

Name= является именем, под которым созданный пункт будет отображаться в правом контекстном меню, а Comment= является необязательным для заполнения полем пояснения назначения данного пункта.

Создание кнопок запуска в меню

Кнопки запуска являются текстовыми файлами с расширением .desktop, в свойствах которых (права) указано, что их можно исполнять как программу. Предусматривается, что собственные кнопки запуска приложений располагаются в папке профиля пользователя системы ~/.local/share/applications

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

Для xfce   (примеры для использования с xfce4-terminal)

[Desktop Entry]
Name=Pixeldrain 1
Exec=xfce4-terminal -H -x  sh -c 'pdup "$(zenity --file-selection)"; exec bash';
Comment=
Terminal=false
PrefersNonDefaultGPU=false
Icon=emblem-arrow-2-green
Type=Application

[Desktop Entry]
Name=Pixeldrain 2
Exec=xfce4-terminal -H -x  sh -c 'pd upload "$(zenity --file-selection)"; exec bash';
Comment=
Terminal=false
PrefersNonDefaultGPU=false
Icon=emblem-arrow-2-blue
Type=Application

Для Cinnamon  (примеры для использования с gnome-terminal)

Для каждого из инструментов показано два варианта содержания файла .desktop  Оба варианта равнозначны.

[Desktop Entry]
Name=Pixeldrain 1
Exec=gnome-terminal -- /bin/sh -c 'pdup "$(zenity --file-selection)"; exec bash'
Comment=
Terminal=false
PrefersNonDefaultGPU=false
Icon=emblem-arrow-2-green
Type=Application

или

[Desktop Entry]
Name=Pixeldrain 1
Exec=sh -c 'pdup "$(zenity --file-selection)"; exec bash'
Comment=
Terminal=true
PrefersNonDefaultGPU=false
Icon=emblem-arrow-2-green
Type=Application

[Desktop Entry]

Name=Pixeldrain 2
Exec=gnome-terminal -- /bin/sh -c 'pd upload "$(zenity --file-selection)"; exec bash';
Comment=
Terminal=false
PrefersNonDefaultGPU=false
Icon=emblem-arrow-2-blue
Type=Application

или

Name=Pixeldrain 2
Exec=sh -c 'pd upload "$(zenity --file-selection)"; exec bash';
Comment=
Terminal=true
PrefersNonDefaultGPU=false
Icon=emblem-arrow-2-blue
Type=Application