$ lsblk -lo NAME,FSAVAIL,FSUSED,FSUSE\% | awk 'NF>1'
NAME FSAVAIL FSUSED FSUSE%
nvme1n1p1 423M 88M 17%
nvme1n1p2 423,2G 29G 6%
nvme0n1p2 360,2G 73,3G 16%
awk
здесь используется для отсечения не смонтированных ФС и самих дисков у которых естественно будет отсутствовать доступный размер.FSSIZE
-n
$ lsblk -nlo NAME,FSAVAIL,FSUSED,FSUSE\% | awk 'NF>1'
nvme1n1p1 423M 88M 17%
nvme1n1p2 423,2G 29G 6%
nvme0n1p2 360,2G 73,3G 16%
$ lsblk -nlo NAME,FSAVAIL,FSUSED,FSUSE\% /dev/nvme1n1p2
nvme1n1p2 423,2G 29G 6%
$ lsblk -no FSUSED /dev/nvme1n1p2
29G
$ lsblk -Jo FSUSED /dev/nvme1n1p2 | jq -r '.blockdevices[].fsused'
29G
-b
$ lsblk -Jbo FSUSED /dev/nvme1n1p2 | jq -r '.blockdevices[].fsused'
31178240000
nvme1n1p2
отобразим в форматированном виде информацию по свободному и занятому пространству:$ lsblk -Jo FSAVAIL,FSUSED /dev/nvme1n1p2 | jq -r '.blockdevices[] | "Всего занято:\t\(.fsused)\nВсего свободно
:\t\(.fsavail)"'
Всего занято: 29G
Всего свободно: 423,2G
sudo smartctl -ja /dev/nvme0n1 | jq -r '.nvme_namespaces[] | "Всего занято:\t\(.utilization.bytes)\nВсего свободно:\t\(.capacity.bytes - .utilization.bytes)"'
Всего занято: 88322768896
Всего свободно: 411785093120
$ sudo smartctl -ja /dev/nvme0n1 | jq -r '.nvme_namespaces[] | "Всего занято: \(.utilization.bytes)\nВсего свободно: \(.capacity.bytes - .utilization.bytes)"' | numfmt --to=iec --field 3 --padding=1 --format %.1f
Всего занято: 82,3G
Всего свободно: 383,6G
cat sites.json | jq -r '.sites[] | "\(.title)\tadmin\t\(.admin[])\n\(.title)\tfront\t\(.front[])"' | sort -u | fzf -m --delimiter "\t" --nth 1,2 | awk '{print $3}'
Русский 64-bit 2A7C440C984EB018F513901E8ED96405213D237938C410C5089C0FAC7BA01898
Русский 32-bit 7B339135C62CB06C8EB8748922659FC36FBE1DB08C2749B036C00676455A5D00
$ sha256sum Win10_22H2_Russian_x64v1.iso
2a7c440c984eb018f513901e8ed96405213d237938c410c5089c0fac7ba01898 Win10_22H2_Russian_x64v1.iso
Пример, в /home/user лежат файлы test14 test12 test123 test1234. Необходимо чтобы скрипт проверил директорию, и в случае если в ней лежит только один файл test14 завершился успешно, а если в ней находятся файлы указанные выше, то прерывался.
случайный набор цифр после слова test
(( $(ls /home/user |grep -c ^test) > 1 )) && exit
fping -r 1 -a -q 1.1.1.1 || systemctl poweroff
-r
ставим побольше, напримерfping -r 5 -a -q 1.1.1.1 || systemctl poweroff
startplasma-wayland
dbus-run-session startplasma-wayland
startx
, точнее ошибки startplasma-11: ...
указанной на вышеприведённой картинке где говорится что версия GLIBXX_3.4.32
в библиотеке /usr/lib/libstdc++.so.6
(от которой зависит библиотека /usr/lib/libKF5CoreAddons.so.5
) не найдена.GLIBCXX
присутствуют в вашей libstdc++.so.6
командой:strings /usr/lib/libstdc++.so.6 | grep ^GLIBCXX_ | sort --sort=version --unique
GLIBCXX_3.4.32
точно присутствует:...
GLIBCXX_3.4.28
GLIBCXX_3.4.29
GLIBCXX_3.4.30
GLIBCXX_3.4.31
GLIBCXX_3.4.32
/usr/lib/libstdc++.so.6
можно узнать с помощью команды:# pacman -Fy /usr/lib/libstdc++.so.6
...
usr/lib/libstdc++.so.6 принадлежит core/gcc-libs 13.2.1-3
-Fy
скачает полную базу с сервера, полная означает что там присутствует информация по файлам входящие в пакеты, используется для удобного поиска оных$ pacman -Q gcc-libs
gcc-libs 13.2.1-3
$ pacman -Si gcc-libs
...
Версия : 13.2.1-3
gcc-libs
совпадают 13.2.1-3
gcc-libs
есть наличие GLIBCXX_3.4.32
, то есть вышеописанной(на фото) проблемы для версии 13.2.1-3
быть точно не должно.gcc-libs
не был обновлён из за частичного обновления, либо по какой-то причине запоздало обновление на сервере, что маловероятно хотя исключать тоже нельзя.sudo pacman -Syu
GLIBCXX_3.4.32
присутствует в /usr/lib/libstdc++.so.6
(см. выше) edk2-ovmf-202308-2
(модификация 2), которую pacman и пытается запросить у внешнего сервера, НО на серверах она уже другая edk2-ovmf-202308-3
(модификация 3) что можно видеть если запросить информацию с сервера по данному пакетуpacman -Si edk2-ovmf
pacman -Sy
pacman -Sh
...
-y, --refresh загрузить обновленные базы данных с серверов
(-yy принудительно обновить даже если обновленные)
-u, --sysupgrade
pacman -Syu edk2-ovmf
наткнулся на повторяющиеся заметки о том, что "тру кодеру" необходимо работать в линуксе.
У меня браузер хром вообще перестал работать, а мозила жестко тормозит, если открыто несколько вкладок
useradd: user 'arch' already exists
userdel -r имя_пользователя
-r
удалит также и домашнюю директории указанного пользователяuseradd group 'users' does not exist useradd the GROUP configuration in /etc/default/useradd will be ignored
users
groupadd группа
useradd
по умолчанию создаётся группа, название которой совпадает с именем пользователя и в которую затем автоматом и добавляется создаваемый пользователь у которого она будет основная. Естественно с помощью ключей поведение можно изменить. В других дистрах в основную группу пользователя часто ставят группу users
fdisk
(диалоговый) is a dialog-driven program for creation and manipulation of partition tables.(man)cfdisk
(псевдографический) is a curses-based program for partitioning any block device.(man)sfdisk
(скрипто-ориентированный) is a script-oriented tool for partitioning any block device.(man)fdisk
, cfdisk
и sfdisk
это связные утилиты входящие в util-linuxsfdisk
который хорошо подходит для указания не интерактивных команд работы с разделами:echo -e "label:gpt\nstart=1M" | sudo sfdisk /dev/sdb
$HOME/.zshrc
такие строки:source /usr/share/fzf/key-bindings.zsh
source /usr/share/fzf/completion.zsh
pacman -Qqs | grep gh
pacman -R $(pacman -Qqs | grep gh)
pacman -Rsc $(pacman -Qqs | grep gh)
pacman -Rdd $(pacman -Qqs | grep gh)
#!/usr/bin/env bash
#set -o xtrace
set -o nounset
set -o errexit
set -o pipefail
URL="$1"
DIR="$PWD"
FILENAME=$(yt-dlp --print filename -o "%(title)s" "$URL")
FILE_JSON="$DIR/$FILENAME".json
FILE_COMMENTS="$DIR/$(date +"%y%m%d") $FILENAME".txt
yt-dlp --write-comments --dump-single-json "$URL" > "$FILE_JSON"
echo -e "$URL\n" > "$FILE_COMMENTS"
cat "$FILE_JSON" | jq -r '.title' >> "$FILE_COMMENTS"
echo "--------------------------------------------------" >> "$FILE_COMMENTS"
cat "$FILE_JSON" | jq -r '"Просмотров: \(.view_count) Лайков: \(.like_count) Комментариев: \(.comment_count)"' >> "$FILE_COMMENTS"
echo "--------------------------------------------------" >> "$FILE_COMMENTS"
cat "$FILE_JSON" | jq -r '.comments[] | if .parent == "root" then "\n+\(.like_count) \(.author) >>> \(.text)" else "\t+\(.like_count) \(.author) >>> \(.text)" end' >> "$FILE_COMMENTS"
Есть команда показывающая кол-во подключенных ЮСБ к серверу и их наименование
lsusb is a utility for displaying information about USB buses in the system and the devices connected to them.
RED='\033[0;31m'
GREEN='\033[0;32m'
NORMAL='\033[0m'
OK="${GREEN}OK${NORMAL}"
NO="${RED}NO${NORMAL}"
lsusb |awk -v ok="$OK" -v no="$NO" '{print $3" "$4" - "$7" "$8" "$9" "no}'
$ du -sb * |awk '{cmd="stat -c %z "$2" |cut -d\" \" -f1";cmd |getline z;close(cmd);print z" "$1}' |awk '{sum[$1]+=$2}END{for(i in sum)print i,sum[i]}' |sort |numfmt --to=iec --field 2 --padding=10
2022-01-21 13M
2022-11-02 17G
2022-12-13 4,7G
2023-01-15 388M
2023-03-06 1,6G
2023-04-01 1,6G
2023-04-03 2,2G
2023-04-04 13G
2023-04-11 7,6G
lsblk -p -o NAME,TYPE,FSTYPE,SIZE,FSSIZE,MOUNTPOINT /dev/sda
echo ", +" | sudo sfdisk --no-reread -N 4 /dev/sda
echo ", +" | sudo sfdisk --no-reread -N 5 /dev/sda
sudo partx --update /dev/sda
lsblk -p -o NAME,TYPE,FSTYPE,SIZE,FSSIZE,MOUNTPOINT /dev/sda
sudo resize2fs -f /dev/sda5
lsblk -p -o NAME,TYPE,FSTYPE,SIZE,FSSIZE,MOUNTPOINT /dev/sda
$ truncate -s 1G test.img
$ echo -e "label:dos\nsize=100M,bootable,type=L\nsize=200M,type=L\nsize=300M,type=L\ntype=Ex\nsize=+" | sfdisk test.img
Проверяется, чтобы сейчас никто не использовал этот диск... ОК
Диск test.img: 1 GiB, 1073741824 байт, 2097152 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
>>> Заголовок скрипта принят.
>>> Создана новая метка DOS с идентификатором 0xa605c035.
test.img1: Создан новый раздел 1 с типом 'Linux' и размером 100 MiB.
test.img2: Создан новый раздел 2 с типом 'Linux' и размером 200 MiB.
test.img3: Создан новый раздел 3 с типом 'Linux' и размером 300 MiB.
test.img4: Создан новый раздел 4 с типом 'Extended' и размером 423 MiB.
test.img5: Создан новый раздел 5 с типом 'Linux' и размером 422 MiB.
test.img6: Done.
Новая ситуация:
Тип метки диска: dos
Идентификатор диска: 0xa605c035
Устр-во Загрузочный начало Конец Секторы Размер Идентификатор Тип
test.img1 * 2048 206847 204800 100M 83 Linux
test.img2 206848 616447 409600 200M 83 Linux
test.img3 616448 1230847 614400 300M 83 Linux
test.img4 1230848 2097151 866304 423M 5 Расширенный
test.img5 1232896 2097151 864256 422M 83 Linux
Таблица разделов была изменена
Синхронизируются диски.
$ losetup --partscan --show --find test.img
/dev/loop0
$ lsblk -p -o NAME,TYPE,FSTYPE,SIZE,FSSIZE,MOUNTPOINT /dev/loop0
NAME TYPE FSTYPE SIZE FSSIZE MOUNTPOINT
/dev/loop0 loop 1G
├─/dev/loop0p1 part 100M
├─/dev/loop0p2 part 200M
├─/dev/loop0p3 part 300M
├─/dev/loop0p4 part 1K
└─/dev/loop0p5 part 422M
$ mkfs.ext4 /dev/loop0p5
$ mkdir /tmp/mnt
$ sudo mount /dev/loop0p5 /tmp/mnt
$ lsblk -p -o NAME,TYPE,FSTYPE,SIZE,FSSIZE,MOUNTPOINT /dev/loop0
NAME TYPE FSTYPE SIZE FSSIZE MOUNTPOINT
/dev/loop0 loop 1G
├─/dev/loop0p1 part 100M
├─/dev/loop0p2 part 200M
├─/dev/loop0p3 part 300M
├─/dev/loop0p4 part 1K
└─/dev/loop0p5 part ext4 422M 385,2M /tmp/mnt
$ truncate -s +1G test.img
$ sudo losetup --verbose --set-capacity /dev/loop0
$ lsblk -p -o NAME,TYPE,FSTYPE,SIZE,FSSIZE,MOUNTPOINT /dev/loop0
NAME TYPE FSTYPE SIZE FSSIZE MOUNTPOINT
/dev/loop0 loop 2G
├─/dev/loop0p1 part 100M
├─/dev/loop0p2 part 200M
├─/dev/loop0p3 part 300M
├─/dev/loop0p4 part 1K
└─/dev/loop0p5 part ext4 422M 385,2M /tmp/mnt
$ echo ", +" | sudo sfdisk --no-reread -N 4 /dev/loop0
$ sfdisk --dump /tmp/test.img
label: dos
label-id: 0xa605c035
device: /tmp/test.img
unit: sectors
sector-size: 512
/tmp/test.img1 : start= 2048, size= 204800, type=83, bootable
/tmp/test.img2 : start= 206848, size= 409600, type=83
/tmp/test.img3 : start= 616448, size= 614400, type=83
/tmp/test.img4 : start= 1230848, size= 2963456, type=5
/tmp/test.img5 : start= 1232896, size= 864256, type=83
$ echo ", +" | sudo sfdisk --no-reread -N 5 /dev/loop0
$ sfdisk --dump /tmp/test.img
label: dos
label-id: 0xa605c035
device: /tmp/test.img
unit: sectors
sector-size: 512
/tmp/test.img1 : start= 2048, size= 204800, type=83, bootable
/tmp/test.img2 : start= 206848, size= 409600, type=83
/tmp/test.img3 : start= 616448, size= 614400, type=83
/tmp/test.img4 : start= 1230848, size= 2963456, type=5
/tmp/test.img5 : start= 1232896, size= 2961408, type=83
$ sudo partx --update /dev/loop0
$ lsblk -p -o NAME,TYPE,FSTYPE,SIZE,FSSIZE,MOUNTPOINT /dev/loop0
NAME TYPE FSTYPE SIZE FSSIZE MOUNTPOINT
/dev/loop0 loop 2G
├─/dev/loop0p1 part 100M
├─/dev/loop0p2 part 200M
├─/dev/loop0p3 part 300M
├─/dev/loop0p4 part 1K
└─/dev/loop0p5 part ext4 1,4G 385,2M /tmp/mnt
$ sudo resize2fs /dev/loop0p5
$ lsblk -p -o NAME,TYPE,FSTYPE,SIZE,FSSIZE,MOUNTPOINT /dev/loop0
NAME TYPE FSTYPE SIZE FSSIZE MOUNTPOINT
/dev/loop0 loop 2G
├─/dev/loop0p1 part 100M
├─/dev/loop0p2 part 200M
├─/dev/loop0p3 part 300M
├─/dev/loop0p4 part 1K
└─/dev/loop0p5 part ext4 1,4G 1,3G /tmp/mnt
$ sudo umount /tmp/mnt
$ losetup -d /dev/loop0