123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
#!/bin/bash
# ------------------------------------------------------------------------------
# A script neve: 1_terminal_plus
#
# Gyakrabban használt, terminálból futtatható parancsok gyüjteménye
#
# yt-dlp: terminál alapú program multimédia tartalmak letöltésére
# fstrim: az SSD karbantartása. Részletesen itt:
# https://magyarlinux.hu/ssd-karbantartasa-fstrim-programmal
# Az fstrim az SSD eszközön fel nem használt blokkok visszaszerzésére
# szolgáló módszer.
# Linux : uname, lsblk, blkid, update & install GRUB, date & time setting
# search, install, remove applications in Arch based Linux
#
# Atrasko
# 2026. február 25.
# ------------------------------------------------------------------------------
clear
FUNCT="_" # a választott funkció betűkódja
LINAK=0 # a Linux alap kódja Debian = 1 Arch = 2
LINDN="_" # a Linux disztribúció neve
ARG_1="_" # a parancshoz tartozó első argumentum
function xwait
{
local WAITING
WAITING="x"
echo
read -p "Tovább bármelyik billentyűleütésre ... " -s -n 1 WAITING
echo
}
function get_lin_base
{
local SOR
LINAK=0
while IFS= read -r SOR; do
case $SOR in # Debian = 1 Arch = 2
"ID=debian") LINAK=1; LINDN="Debian "; break;;
"ID=linuxmint") LINAK=1; LINDN="Linux Mint "; break;;
"ID=\"endeavouros\"") LINAK=2; LINDN="EndeavourOS "; break;;
"ID=cachyos") LINAK=2; LINDN="CachyOS "; break;;
# "ID=...........") LINAK= ; LINDN=" "; break;;
*) LINAK=0; LINDN="Linux "; ;;
esac
done < /etc/os-release
if [ $LINAK == 0 ]; then
echo "
A script nem tudta meghatározni az /etc/os-release fájlból,
hogy melyik alapra épülő Linuxot használsz. Bár az 'ID_LIKE='
kezdetű sorban van megadva a Linux alapja, sajnos nem minden
disztribúció írja bele ezt a sort az /etc/os-release fájlba.
Ez a script ezért keres rá inkább az 'ID=' kezdetű sorra, mert
az mindig megtalálható az eddigi tapasztalatok szerint.
Ellenőrizheted, itt az /etc/os-release fájl tartalma:"
echo
cat /etc/os-release
echo "
Ha tudod, hogy ez a Linux melyik alapra lett fejlesztve,
akkor választhatsz a listából, illetve beírhatod a script
46. sorába a saját Linuxod adatait, hogy a legközelebbi
futtatáskor a script már felismerje azt.
┌───────────────────────────────────────────────────────┐
│ Linux alap: │
│ │
│ 1 Debian │
│ 2 Arch │
│ │
│ X Kilépés │
└───────────────────────────────────────────────────────┘"
while true; do
echo -e -n "\rA választott funkció :"
read -r -p " ? " -n 1 LINAK
case $LINAK in
1 | 2 ) break;;
x | X ) exit 0;;
*) echo -n -e "\b " ;;
esac
done
fi
}
function display_menu
{
local MTX_A MTX_B MTX_C MTX_D MTX_E MTX_F MTX_G
local MTX_H MTX_I MTX_J MTX_K MTX_L MTX_M MTX_N
local LINAN="_" # a Linux alap neve
MTX_A="Audió file letöltése mp3 formátumban ...:"; DLC_A="yt-dlp -t mp3 "
MTX_B="Videó file letöltése mp4 formátumban ...:"; DLC_B="yt-dlp -t mp4 "
MTX_C="Videó file letöltése mkv formátumban ...:"; DLC_C="yt-dlp -t mkv "
MTX_D="Blokk eszközök mérete, típusa ..........:"; DLC_D="lsblk "
MTX_E="Blokk eszközök típusa és attribútumai ..."; DLC_E="sudo blkid "
MTX_F="Az aktuális kernel verzió ..............:"; DLC_F="uname -r "
case $LINAK in
1) # ------------------ Debian -----------------------------------
LINAN="Debian Linux"
MTX_G="SSD karbantartása ......................:"; DLC_G="/usr/sbin/fstrim -av "
MTX_H="GRUB frissítése ........................:"; DLC_H="sudo update-grub "
MTX_I="GRUB telepítése ........................:"; DLC_I="sudo grub-install "
MTX_J="Dátum és időbeállítások ................:"; DLC_J="mx-datetime "
MTX_K="A rendelkezésre álló kernel verziók ....:"; DLC_K="dpkg --list | grep linux-image "
MTX_L="........................................:"; DLC_L=" "
MTX_M="........................................:"; DLC_M=" "
MTX_N="........................................:"; DLC_N=" "
;;
2) # ------------------ Arch -------------------------------------
LINAN="Arch Linux "
MTX_G="SSD karbantartása ......................:"; DLC_G="/usr/bin/fstrim -a -v "
MTX_H="GRUB frissítése ........................:"; DLC_H="sudo grub-mkconfig -o /boot/grub/grub.cfg "
MTX_I="GRUB telepítése ........................:"; DLC_I="sudo grub-install --target=i386-pc "
MTX_J="Dátum és időbeállítások ................:"; DLC_J="timedatectl "
MTX_K="Alkalmazások frissítése ................:"; DLC_K="sudo pacman -Syu "
MTX_L="Alkalmazás keresése ....................:"; DLC_L="sudo pacman -Ss "
MTX_M="Alkalmazás telepítése ..................:"; DLC_M="sudo pacman -S "
MTX_N="Alkalmazás és függőségeik eltávolítása .:"; DLC_N="sudo pacman -Rs "
;;
esac
echo "
┌────────────────────────────────────────────────────────────────────────────────────────────┐
│ Linux │
│ A $MTX_A $DLC_A " "│
│ B $MTX_B $DLC_B " "│
│ C $MTX_C $DLC_C " "│
│ D $MTX_D $DLC_D " "│
│ E $MTX_E $DLC_E " "│
│ F $MTX_F $DLC_F " "│
│ │
│ OS: $LINDN Linux alap: $LINAN " "│
│ G $MTX_G $DLC_G " "│
│ H $MTX_H $DLC_H " "│
│ I $MTX_I $DLC_I " "│
│ J $MTX_J $DLC_J " "│
│ K $MTX_K $DLC_K " "│
│ L $MTX_L $DLC_L " "│
│ M $MTX_M $DLC_M " "│
│ N $MTX_N $DLC_N " "│
│ │
│ X Kilépés │
└────────────────────────────────────────────────────────────────────────────────────────────┘"
}
# ************************* Itt indul a script *************************
get_lin_base
while true; do
display_menu
echo
while true; do
echo -e -n "\rA választott funkció :"
read -r -p " ? " -n 1 FUNCT
case $FUNCT in
A | B | C | D | E | F | G | H | I | J | K )
break;;
L | M | N )
if [ $LINAK == 2 ]; then
break
fi ;;
X | x ) exit;;
* ) echo -n -e "\b " ;;
esac
done
echo
echo
case $FUNCT in
A ) read -p "Hivatkozás (link) a fájlra: " ARG_1
$DLC_A $ARG_1 ;;
B ) read -p "Hivatkozás (link) a fájlra: " ARG_1
$DLC_B $ARG_1 ;;
C ) read -p "Hivatkozás (link) a fájlra: " ARG_1
$DLC_C $ARG_1 ;;
D ) $DLC_D ;;
E ) $DLC_E ;;
F ) $DLC_F ;;
G ) echo "Egy kis türelmet, dolgozom ..."
echo
$DLC_G ;;
H ) $DLC_H ;;
I ) echo
read -p "A tárolóeszköz betűjele /dev/sd? (a, b, ...) : " ARG_1
$DLC_I "/dev/sd"$ARG_1 ;;
J ) $DLC_J ;;
K ) $DLC_K ;;
esac
case $LINAK in
1) # ------------------ Debian -----------------------------------
case $FUNCT in
L ) $DLC_L ;;
M ) $DLC_M ;;
N ) $DLC_N ;;
esac
;;
2) # ------------------ Arch -------------------------------------
case $FUNCT in
L ) read -p "A keresett alkalmazás neve: " ARG_1
$DLC_L $ARG_1 ;;
M ) read -p "A telepítendő alkalmazás neve: " ARG_1
$DLC_M $ARG_1 ;;
N ) read -p "Az eltávolítandó alkalmazás neve: " ARG_1
$DLC_N $ARG_1 ;;
esac
;;
esac
xwait
done
# ************************* Itt a script vége **************************