$ echo '{ "exitcode" : 0, "exited" : 1, "out-data" : "Filesystem Size Used Avail Use% Mounted on\nudev 2.3G 0 2.3G 0% /dev\ntmpfs 479M 672K 478M 1% /run\n/dev/mapper/pmg-root 28G 2.7G 24G 11% /\ntmpfs 2.4G 1.1M 2.4G 1% /dev/shm\ntmpfs 5.0M 0 5.0M 0% /run/lock\n" }' | jq -r '."out-data"' | column -t
Filesystem Size Used Avail Use% Mounted on
udev 2.3G 0 2.3G 0% /dev
tmpfs 479M 672K 478M 1% /run
/dev/mapper/pmg-root 28G 2.7G 24G 11% /
tmpfs 2.4G 1.1M 2.4G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
$ lsblk -o NAME,RM,TRAN,SIZE,TYPE,PTTYPE,FSTYPE,PARTTYPENAME,MOUNTPOINTS,MODEL | awk 'NR==1 || $2 == 1'
NAME RM TRAN SIZE TYPE PTTYPE FSTYPE PARTTYPENAME MOUNTPOINTS MODEL
sda 1 usb 14,7G disk dos iso9660 Transcend 16GB
├─sda1 1 789M part dos iso9660 Empty /run/media/admin/ARCH_202309
└─sda2 1 15M part dos vfat EFI (FAT-12/16/32)
$ lsblk -o NAME,RM,FSTYPE,MOUNTPOINTS | awk '$2==1{$2="";print}'
sda iso9660
├─sda1 iso9660 /run/media/admin/ARCH_202312
└─sda2 vfat
$ lsblk -o NAME,RM,TRAN,SIZE,TYPE,PTTYPE,FSTYPE,PARTTYPENAME,MOUNTPOINTS,MODEL | awk 'NR==1 || $2 == 1'
NAME RM TRAN SIZE TYPE PTTYPE FSTYPE PARTTYPENAME MOUNTPOINTS MODEL
sda 1 usb 14,7G disk ext4 Transcend 16GB
$ lsblk -Jpo PKNAME,NAME,RM,FSTYPE,MOUNTPOINTS | jq -r '.blockdevices[] | select(.rm == true) | .children[] |select(.mountpoints[] == null) | "Съёмное устройство \(.pkname) имеет не смонтированный раздел \(.name) с файловой системой \(.fstype)"'
Съёмное устройство /dev/sda имеет не смонтированный раздел /dev/sda2 с файловой системой vfat
$ 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"