Szokták azt is mondani, hogy az utánozás majomszokás, de ez marhaság, az egyik leghatékonyabb, nagyon régóta bevált tanulási módszer ez. Figyelni, hogy mit csinál a mester, próbálni utánozni, elrontani, hagyni hogy kijavítsanak és végül az inasnak is mesterré válni, igenis működőképes dolog.
Máris van két szkriptem, amit biztos használni fogok a tanuláshoz.
@klt alkotása
#!/bin/bash
cat <<_EOF >/etc/apt/sources.list
# See https://wiki.debian.org/SourcesList for more information.
deb http://deb.debian.org/debian trixie main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian trixie main non-free-firmware
deb http://deb.debian.org/debian trixie-updates main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian trixie-updates main non-free-firmware
deb http://security.debian.org/debian-security/ trixie-security main contrib non-free non-free-firmware
deb-src http://security.debian.org/debian-security/ trixie-security main non-free-firmware
# Backports allow you to install newer versions of software made available for this release
deb http://deb.debian.org/debian trixie-backports main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian trixie-backports main non-free-firmware
_EOF
apt update
apt install wget -y
dpkg --add-architecture i386
####GIGI alkatrészek
echo "deb http://packages.linuxmint.com gigi main upstream import backport" > /etc/apt/sources.list.d/gigi.list
gpg --recv-keys --keyserver keyserver.ubuntu.com A6616109451BBBF2
gpg --export A6616109451BBBF2 | sudo tee /etc/apt/trusted.gpg.d/gigi.gpg
################## setup repos
##home repo
echo "deb [signed-by=/usr/share/keyrings/ungvar44.gpg ] https://ungvar44.dynu.net/repo/trixie ./ " > /etc/apt/sources.list.d/ungvar44.list
curl -sS https://ungvar44.dynu.net/repo/trixie/public.gpg | gpg --dearmor | tee /usr/share/keyrings/ungvar44.gpg
##Spotify repo
curl -sS https://download.spotify.com/debian/pubkey_C85668DF69375001.gpg | gpg --dearmor | tee /usr/share/keyrings/spotify.gpg
echo "deb [signed-by=/usr/share/keyrings/spotify.gpg] https://repository.spotify.com stable non-free" > /etc/apt/sources.list.d/spotify.list
##Softmaker repo
curl -fsSL https://shop.softmaker.com/repo/linux-repo-public.key | gpg --dearmor | tee /usr/share/keyrings/softmaker.gpg
echo "deb [signed-by=/usr/share/keyrings/softmaker.gpg] https://shop.softmaker.com/repo/apt stable non-free" > /etc/apt/sources.list.d/softmaker.list
##Google repo
curl -fSsL https://dl.google.com/linux/linux_signing_key.pub | gpg --dearmor | tee /usr/share/keyrings/google-chrome.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/google-chrome.gpg] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list
# curl -fSsL https://download.teamviewer.com/download/linux/signature/TeamViewer2017.asc | gpg --dearmor | tee /usr/share/keyrings/teamview.gpg
# echo "deb [arch=amd64 signed-by=/usr/share/keyrings/teamview.gpg] http://linux.teamviewer.com/deb stable main" > /etc/apt/sources.list.d/teamviewer.list
##Vrtualbox repo
curl -fsSL https://www.virtualbox.org/download/oracle_vbox_2016.asc| gpg --dearmor -o /etc/apt/trusted.gpg.d/vbox.gpg
curl -fsSL https://www.virtualbox.org/download/oracle_vbox.asc| gpg --dearmor -o /etc/apt/trusted.gpg.d/oracle_vbox.gpg
echo "deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian trixie contrib" > /etc/apt/sources.list.d/virtualbox.list
##element
#wget -O /usr/share/keyrings/element-io-archive-keyring.gpg https://packages.element.io/debian/element-io-archive-keyring.gpg
#echo "deb [signed-by=/usr/share/keyrings/element-io-archive-keyring.gpg] https://packages.element.io/debian/ default main" | tee /etc/apt/sources.list.d/element-io.list
###ONLYOFFICE
echo 'deb [signed-by=/usr/share/keyrings/onlyoffice.gpg] https://download.onlyoffice.com/repo/debian squeeze main' > /etc/apt/sources.list.d/onlyoffice.list
gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/onlyoffice.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5
chmod 644 /usr/share/keyrings/onlyoffice.gpg
apt update
###GIG alkatrészek telep-
apt -y install task-desktop
apt -y purge task-cinnamon-desktop
apt -y install cinnamon-desktop-environment
dpkg --purge --force-all cinnamon-common
dpkg --purge --force-all xapp-sn-watcher
dpkg --purge --force-all cinnamon-common
dpkg --purge --force-all muffin
dpkg --purge --force-all libxapp-gtk3-module
dpkg --purge --force-all cinnamon
apt -y install -f
apt -y upgrade
apt -y install gnome-backgrounds apg gir1.2-nemo-3.0 libglu1-mesa libmuffin0t64 libxcb-damage0 lightdm-settings numlockx x11-apps x11-session-utils xinit xorg
apt install -y systemd-timesyncd
#lightdm slick --> gtk-greeter
apt -y purge slick-greeter lightdm-settings
apt -y install lightdm-gtk-greeter-settings
sed -i 's/slick-greeter/lightdm-gtk-greeter/g' /etc/lightdm/lightdm.conf
apt upgrade -y
apt full-upgrade
apt list --installed | grep helyi | grep -v linux-image awk -F/ '{print $1}' | xargs apt purge -y
##install basic components
apt purge gnome-text-editor evince gnome-calculator gedit eog -y
apt install -y xed xreader xviewer xviewer-plugins nemo-fileroller nemo-preview sticky warpinator -y
#alap alkatrészek
apt install -y sstp-client cifs-utils qt5ct openssh-server mc sshpass gparted gnome-disk-utility lshw cups cups-client foomatic-db system-config-printer intel-microcode firmware-linux bluez bluez-tools pavucontrol font-manager gvfs-fuse ttf-mscorefonts-installer va-driver-all vdpau-driver-all samba smbclient python3-smbc rsync smartmontools sysstat htop earlyoom dcfldd xsane galculator ddcutil
apt install intel-media-va-driver-non-free -y
#multimédia
apt install -y musescore3 ardour guvcview mkvtoolnix mkvtoolnix-gui mediainfo-gui fontforge audacious audacity minikonverter obs-studio ffmpeg obs-color-monitor obs-advanced-scene-switcher celluloid mpv
apt install -y obs-ashmanix-blur-filter
apt install -y qpwgraph libspa-0.2-bluetooth pipewire-alsa gnome-network-displays -t trixe-backports
apt install -y ffmpeg5
#apt install nerolinux davinci-resolve -y
#ln -s /usr/lib/nero /usr/lib64/nero
#grafika
apt install -y simple-scan gimp fontforge inkscape scribus dia gthumb xnview rawtherapee
#fejlesztés és virt
apt install -y lazarus doublecmd-gtk
###virtualbox
apt install linux-headers-amd64 -y
apt install -y virtualbox-7.2
#tanulás és játék
apt install -y r-base rstudio
apt install -y steam
apt install -y avogadro -y
apt install -y supertuxkart-repack
# 0ad -y
#internet
apt install -y caprine seafile-gui thunderbird-l10n-hu google-chrome-stable zoom discord chromium chromium-l10n thunderbird evolution spotify-client
apt install seadrive-gui -y
apt install -y 4kvideodownloaderplus megasync
#iroda
apt install -y gimagereader tesseract-ocr tesseract-ocr-hun gucharmap pdfarranger softmaker-freeoffice-2024 onlyoffice-desktopeditors
apt install -y eid-client-service
##trixie-backports még nincs:
apt install -y calibre libreoffice libreoffice-l10n-hu libreoffice-gtk3 --install-recommends
apt install -y doublecmd-gtk
#java
#apt install -y openjdk-8-jre
apt install -y oracle-jre
#csicsa
apt install -y mint-themes mate-backgrounds gnome-backgrounds
apt install -y systemback autoupdater
apt install -y myfonts mycinnamonexts
apt install numix-icon-theme mythemes -y
apt install -y csaladi
#rendszerpiszka
rm /etc/apparmor.d/usr.bin.evince
##samba
sed -i 's/WORKGROUP/OTTHONLAN/g' /etc/samba/smb.conf
#mpv hwdec
mkdir -p /etc/mpv
cat << _EOFMPV > /etc/mpv/mpv.conf
hwdec=vaapi
_EOFMPV
#instruct dconf to store data in text:
echo "service-db:keyfile/user" > /etc/dconf/profile/user
cat << _EOF-sane > /etc/sane.d/dll.conf
# dll.conf - Configuration file for the SANE dynamic backend loader
#
# Backends can also be enabled by configuration snippets under the dll.d/
# directory -- third party backends can drop their configuration file in
# this in this directory, named after the backend.
#
# The next line enables the network backend; comment it out if you don't
# need to use a remote SANE scanner over the network -- see sane-net(5)
# and saned(8) for details.
airscan
_EOF-sane
##system configuration changes
echo fs.inotify.max_user_watches=524288 > /etc/sysctl.d/fsnotify.conf
echo vm.min_free_kbytes=8192 > /etc/sysctl.d/vmminfree.conf
##virtualbox miatt:
echo "blacklist kvm_intel" > /etc/modprobe.d/kvm-blacklist.conf
## USB attached disks will be writeable without root privileges
echo 'KERNEL=="sd*", SUBSYSTEMS=="usb", MODE="0666"' | tee /etc/udev/rules.d/99-usb-storage.rules
#load on boot i2c for ddcutil
echo i2c-dev >> /etc/modules
#lightdm állítgatás
mkdir -p /etc/lightdm/lightdm.conf.d
cat << _01conf > /etc/lightdm/lightdm.conf.d/01.conf
[Seat:*]
greeter-hide-users=false
_01conf
#WINE
apt install -y winetricks wine wine32 wine64
####Virt ujfajta, ha kell, de mégis inkabb VBOX
#apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager qemu-guest-agent
##tisztítás
apt purge -y golden-dict deja-dup plasma-discover lightsoff rhythmbox* brasero sound-juicer gnome-calculator totem* usbguard pidgin* hexchat* apache* flatpak* exim* gnome-software unattended-upgrades snap* anthy* mozc* fcitx*
apt purge -y five-or-more lightsoff gnote gedit gnome-calculator hamster* goldendict transmission* hdate* hitori gnome-music quadrapassel swell-foop tali aisleriot blender gnome-mines gnome-2048 gnome-klotski gnome-mahjongg gnome-nibbles gnome-robots gnome-sound-recorder gnome-sudoku gnome-taquin gnome-tetravex vlc nautilus rhythmbox* brasero sound-juicer totem* usbguard pidgin* hexchat* apache* flatpak* exim* gnome-software unattended-upgrades snap* anthy* mozc* fcitx*
apt autoremove --purge -y
systemctl disable NetworkManager-wait-online vboxweb-service
és az @agnoxy által közzétett automatizmus
#!/bin/bash
# ==============================================================================
# DEBIAN XFCE CUSTOM MASTER SETUP SCRIPT (MODULÁRIS INTERAKTÍV VERZIÓ)
# ==============================================================================
set -e
# KÉPERNYŐ TISZTÍTÁS ÉS FEJLÉC
clear
echo "=================================================================="
echo " DEBIAN XFCE MODULÁRIS RENDSZERBEÁLLÍTÓ TELEPÍTŐ"
echo "=================================================================="
echo ""
# 1. ROOT JOG ELLENŐRZÉSE
if [ "$(id -u)" -ne 0 ]; then
echo "Hiba: A scriptet root joggal (sudo) kell futtatni!"
exit 1
fi
# 2. FELHASZNÁLÓ MEGÁLLAPÍTÁSA
TARGET_USER="${SUDO_USER:-$(logname 2>/dev/null || true)}"
if [ -z "$TARGET_USER" ] || [ "$TARGET_USER" = "root" ]; then
echo -n "Add meg a felhasználóneved: "
read TARGET_USER
fi
USER_HOME=$(eval echo "~$TARGET_USER")
echo "-> Célfelhasználó: $TARGET_USER ($USER_HOME)"
echo ""
# ------------------------------------------------------------------------------
# INTERAKTÍV KÉRDÉSEK ÉS OPCIÓK
# ------------------------------------------------------------------------------
echo "------------------------------------------------------------------"
echo " VÁLASSZ A RENDSZERMODULOK KÖZÜL! (i = Igen, n = Nem)"
echo "------------------------------------------------------------------"
echo ""
# KÉRDÉS 1: EXTRA PROGRAMOK
echo " 1. EXTRA SZOFTVERCSOMAG TELEPÍTÉSE"
echo " Kérsz extra programokat? (Firefox, Google Chrome, VLC, Ristretto,"
echo " DoubleCmd, Mintstick, GParted, Gnome-Disks)"
echo " (Ha NEM-et választasz, KIZÁRÓLAG a Synaptic, Terminal, Thunar és Kuka marad!)"
read -p " -> Telepítsük az extra programokat? (i/N): " KERO_EXTRAS
echo ""
# KÉRDÉS 2: BACKPORTS KERNEL
echo " 2. FRISS BACKPORTS KERNEL & FIRMWARE"
echo " Telepítse a legújabb elérhető Linux Kernelt a Debian Backports tárolóból?"
echo " (Hasznos új hardverekhez, újabb Wi-Fi / GPU támogatáshoz.)"
read -p " -> Telepítsük a friss Backports Kernelt? (i/N): " KERO_KERNEL
echo ""
# KÉRDÉS 3: ZRAM ÉS SWAPPINESS
echo " 3. zRAM ÉS MEMÓRIA OPTIMALIZÁLÁS"
echo " Beállítja a zRAM tömörített memóriát és a swappiness=1 értéket."
echo " (Nagyon javasolt 2GB - 8GB RAM közötti gépeknél, gyorsítja a rendszert!)"
read -p " -> Kéred a zRAM és RAM optimalizációt? (i/N): " KERO_ZRAM
echo ""
# KÉRDÉS 4: AUTOLOGIN
echo " 4. AUTOMATIKUS BEJELENTKEZÉS (Autologin)"
echo " Bejövő jelszóbekérés kikapcsolása, a rendszer azonnal az asztalra lép."
read -p " -> Legyen automatikus a bejelentkezés? (i/N): " KERO_AUTOLOGIN
echo ""
# KÉRDÉS 5: RENDESZERTAKARÍTÓ
echo " 5. RENDESZERTAKARÍTÓ SCRIPT ÉS PANELIKON"
echo " Létrehozza az egykattintásos karbantartó scriptet és kiteszi a felső panelre."
read -p " -> Telepítsük a Rendszertakarítót? (i/N): " KERO_TAKARITO
echo ""
# KÉRDÉS 6: GRUB IDŐZÍTÉS NULLÁZÁSA
echo " 6. GRUB INDÍTÓMENÜ VÁRAKOZÁS ELTÖRLESE"
echo " Nullára állítja a rendszerindító GRUB menü 5 másodperces várakozását,"
echo " így a gép kikapcsolás után azonnal elindítja a Debiant."
read -p " -> Eltöröljük az 5 másodperces GRUB várakozást? (i/N): " KERO_GRUB
echo ""
# KÉRDÉS 7: KEYRING (KULCSTARTÓ) JELSZÓBEKÉRŐ KIKAPCSOLÁSA
echo " 7. CHROMIUM/CHROME KULCSTARTÓ (KEYRING) PROBLÉMA FIXÁLÁSA"
echo " Létrehoz egy alapértelmezett, üres kulcstartót, így a böngészők"
echo " (Chrome/Firefox) indításakor nem ugrik fel az idegesítő jelszóbekérő ablak."
read -p " -> Kikapcsoljuk a keyring jelszóbekérést? (i/N): " KERO_KEYRING
echo ""
echo "=================================================================="
echo " A válaszok rögzítve! A telepítés indításához nyomj ENTER-t!"
echo "=================================================================="
read -r
# 3. TÁROLÓK BEÁLLÍTÁSA
echo "-> Tárolók beállítása (Contrib, Non-Free, Non-Free-Firmware)..."
DEBIAN_CODENAME=$(lsb_release -cs 2>/dev/null || grep CODENAME /etc/os-release | cut -d= -f2)
if [ -f /etc/apt/sources.list ]; then
sed -i 's/main$/main contrib non-free non-free-firmware/g' /etc/apt/sources.list
sed -i 's/main non-free-firmware$/main contrib non-free non-free-firmware/g' /etc/apt/sources.list
fi
if [ -f /etc/apt/sources.list.d/debian.sources ]; then
sed -i 's/Components: main/Components: main contrib non-free non-free-firmware/g' /etc/apt/sources.list.d/debian.sources
fi
# Backports tároló hozzáadása
echo "deb http://deb.debian.org/debian ${DEBIAN_CODENAME}-backports main contrib non-free non-free-firmware" > /etc/apt/sources.list.d/backports.list
# Google Chrome tároló (ha kérték az extra programokat)
if [[ "$KERO_EXTRAS" =~ ^[Ii]$ ]]; then
apt update && apt install -y wget gpg ca-certificates curl lsb-release
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | gpg --dearmor -o /usr/share/keyrings/google-chrome.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/google-chrome.gpg] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list
fi
apt update && apt upgrade -y
# 4. ALAP RENDSZERELEMEK TELEPÍTÉSE
echo "-> Alaprendszer telepítése (Synaptic, Thunar, Terminal, Kuka)..."
apt install -y \
sudo \
network-manager \
network-manager-gnome \
xfce4-panel \
xfce4-session \
xfce4-settings \
xfce4-power-manager \
xfdesktop4 \
xfwm4 \
thunar \
thunar-volman \
gvfs \
dbus-x11 \
xfce4-terminal \
synaptic \
pavucontrol \
xfce4-pulseaudio-plugin \
lightdm \
firmware-linux \
firmware-linux-nonfree \
firmware-iwlwifi \
firmware-realtek \
firmware-atheros \
firmware-sof-signed
# 5. OPCIÓ: EXTRA PROGRAMOK TELEPÍTÉSE
if [[ "$KERO_EXTRAS" =~ ^[Ii]$ ]]; then
echo "-> Extra programok telepítése (Firefox, Chrome, VLC, stb.)..."
apt install -y \
firefox-esr \
gnome-software \
gparted \
gnome-disk-utility \
mintstick \
mousepad \
vlc \
ristretto \
google-chrome-stable \
doublecmd-gtk
fi
# 6. OPCIÓ: LEGÚJABB KERNEL TELEPÍTÉSE
if [[ "$KERO_KERNEL" =~ ^[Ii]$ ]]; then
echo "-> Friss Kernel és Header-ek telepítése Backportsból..."
apt install -y -t "${DEBIAN_CODENAME}-backports" linux-image-amd64 linux-headers-amd64 firmware-linux
fi
# 7. FELESLEGES PROGRAMOK ÉS NYOMTATÁSI ELEMEK PURGÁLÁSA (Teljes eredeti lista!)
echo "-> Felesleges elemek eltávolítása..."
apt purge -y \
cups* \
system-config-printer* \
simple-scan* \
catfish* \
evince* \
atril* \
engrampa* \
galculator \
light-locker* \
xscreensaver* \
gnome-screensaver* \
thunderbird* \
quodlibet \
exfalso \
xsane* \
xarchiver \
xfce4-taskmanager \
xfce4-screenshooter \
xfce4-clipman* \
xterm \
xfburn \
parole \
xfce4-dict \
xfce4-notes* \
xfce4-sensors-plugin \
xfce4-timer-plugin \
xfce4-verve-plugin \
xfce4-weather-plugin \
xfce4-cpugraph-plugin \
xfce4-fsguard-plugin \
xfce4-genmon-plugin \
xfce4-mailwatch-plugin \
xfce4-netload-plugin \
xfce4-places-plugin \
xfce4-smartbookmark-plugin \
xfce4-systemload-plugin \
xfce4-time-out-plugin \
xfce4-appfinder \
task-desktop \
task-xfce-desktop \
fortune* fortunes* bsdgames \
2>/dev/null || true
apt autoremove --purge -y
# 8. OPCIÓ: FRISSÍTŐ-TAKARÍTÓ SCRIPT ÉS PANELIKON
if [[ "$KERO_TAKARITO" =~ ^[Ii]$ ]]; then
echo "-> Rendszertakarító script és indítóikonok létrehozása..."
cat > /usr/local/bin/rendszertakarito.sh << 'EOF'
#!/usr/bin/env bash
set -euo pipefail
[ "$EUID" -eq 0 ] || { echo "Ezt a scriptet root-ként kell futtatni!"; exit 1; }
exec 9>/run/system_update.lock
flock -n 9 || { echo "A karbantartás már fut egy másik folyamatban."; exit 0; }
export DEBIAN_FRONTEND=noninteractive
apt update
apt full-upgrade -y
apt autoremove --purge -y
apt clean
RESIDUAL=$(dpkg -l | awk '/^rc/ {print $2}')
if [ -n "$RESIDUAL" ]; then
dpkg --purge $RESIDUAL
fi
journalctl --vacuum-time=7d --vacuum-size=300M >/dev/null 2>&1 || true
systemctl reset-failed >/dev/null 2>&1 || true
find /tmp -mindepth 1 -mtime +1 -delete 2>/dev/null || true
find /var/tmp -mindepth 1 -mtime +1 -delete 2>/dev/null || true
rm -rf /var/crash/* 2>/dev/null || true
if [ -d /var/lib/systemd/coredump ]; then
find /var/lib/systemd/coredump -type f -delete 2>/dev/null || true
fi
for HOME_DIR in /home/*; do
[ -d "$HOME_DIR" ] || continue
if [ -d "$HOME_DIR/.cache/thumbnails" ]; then
find "$HOME_DIR/.cache/thumbnails" -type f -delete 2>/dev/null || true
fi
if [ -d "$HOME_DIR/.cache/mozilla/firefox" ]; then
find "$HOME_DIR/.cache/mozilla/firefox" -path "*/cache2/*" -type f -delete 2>/dev/null || true
fi
if [ -d "$HOME_DIR/.cache/google-chrome" ]; then
find "$HOME_DIR/.cache/google-chrome" -type f -delete 2>/dev/null || true
fi
if [ -d "$HOME_DIR/.cache/chromium" ]; then
find "$HOME_DIR/.cache/chromium" -type f -delete 2>/dev/null || true
fi
done
sync
echo ""
echo "========================================="
echo " A Karbantartás Sikeresen Lefutott! "
echo "========================================="
read -p "Nyomj Enter-t a bezáráshoz..."
EOF
chmod +x /usr/local/bin/rendszertakarito.sh
cat > /usr/share/applications/rendszertakarito.desktop << EOF
[Desktop Entry]
Version=1.0
Type=Application
Name=Rendszertakarító
Comment=Rendszerfrissítés és takarítás
Exec=xfce4-terminal -e "sudo /usr/local/bin/rendszertakarito.sh"
Icon=utilities-system-monitor
Terminal=false
Categories=System;Settings;
StartupNotify=true
EOF
mkdir -p "$USER_HOME/Desktop"
cp /usr/share/applications/rendszertakarito.desktop "$USER_HOME/Desktop/rendszertakarito.desktop"
chmod +x "$USER_HOME/Desktop/rendszertakarito.desktop"
# XFCE Panel beállítása az ikonnal
mkdir -p "$USER_HOME/.config/xfce4/panel/launcher-100"
cat > "$USER_HOME/.config/xfce4/panel/launcher-100/100.desktop" << EOF
[Desktop Entry]
Version=1.0
Type=Application
Name=Rendszertakarító
Comment=Rendszerfrissítés és takarítás
Exec=xfce4-terminal -e "sudo /usr/local/bin/rendszertakarito.sh"
Icon=utilities-system-monitor
Terminal=false
StartupNotify=true
EOF
mkdir -p "$USER_HOME/.config/xfce4/xfconf/xfce-perchannel-xml"
cat > "$USER_HOME/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml" << EOF
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-panel" version="1.0">
<property name="panels" type="array">
<value type="int" value="1"/>
<property name="panel-1" type="empty">
<property name="position" type="string" value="p=6;x=0;y=0"/>
<property name="length" type="uint" value="100"/>
<property name="position-locked" type="bool" value="true"/>
<property name="size" type="uint" value="24"/>
<property name="plugin-ids" type="array">
<value type="int" value="1"/>
<value type="int" value="2"/>
<value type="int" value="3"/>
<value type="int" value="100"/>
<value type="int" value="4"/>
<value type="int" value="5"/>
<value type="int" value="6"/>
</property>
</property>
</property>
<property name="plugins" type="empty">
<property name="plugin-1" type="string" value="applicationsmenu"/>
<property name="plugin-2" type="string" value="tasklist"/>
<property name="plugin-3" type="string" value="separator">
<property name="expand" type="bool" value="true"/>
<property name="style" type="uint" value="0"/>
</property>
<property name="plugin-100" type="string" value="launcher">
<property name="items" type="array">
<value type="string" value="100.desktop"/>
</property>
</property>
<property name="plugin-4" type="string" value="systray"/>
<property name="plugin-5" type="string" value="pulseaudio"/>
<property name="plugin-6" type="string" value="clock"/>
</property>
</channel>
EOF
fi
# 9. OPCIÓ: GRUB IDŐZÍTÉS NULLÁZÁSA
if [[ "$KERO_GRUB" =~ ^[Ii]$ ]]; then
echo "-> GRUB időzítés beállítása 0 másodpercre..."
if [ -f /etc/default/grub ]; then
sed -i 's/GRUB_TIMEOUT=[0-9]*/GRUB_TIMEOUT=0/g' /etc/default/grub
update-grub || true
fi
else
echo "-> GRUB időzítés módosítása kihagyva."
fi
# 10. OPCIÓ: KEYRING (KULCSTARTÓ) BEÁLLÍTÁSA ÜRES JELSZÓVAL
if [[ "$KERO_KEYRING" =~ ^[Ii]$ ]]; then
echo "-> Üres jelszós kulcstartó létrehozása (Keyring fix)..."
KEYRING_DIR="$USER_HOME/.local/share/keyrings"
mkdir -p "$KEYRING_DIR"
rm -f "$KEYRING_DIR"/*
cat > "$KEYRING_DIR/login.keyring" << EOF
[keyring]
display-name=Default keyring
ctime=0
mtime=0
lock-on-idle=false
lock-after=false
EOF
cat > "$KEYRING_DIR/default" << EOF
Default keyring
EOF
fi
# 11. MENÜIKONOK TISZTÍTÁSA
rm -f /usr/share/applications/thunar-bulk-rename.desktop
rm -f /usr/share/applications/xfce4-appfinder.desktop
rm -f /usr/share/applications/debian-uxterm.desktop
rm -f /usr/share/applications/debian-xterm.desktop
update-desktop-database 2>/dev/null || true
# 12. OPCIÓ: AUTOMATIKUS BEJELENTKEZÉS
if [[ "$KERO_AUTOLOGIN" =~ ^[Ii]$ ]]; then
echo "-> Autologin konfigurálása..."
mkdir -p /etc/lightdm/lightdm.conf.d
cat > /etc/lightdm/lightdm.conf.d/50-autologin.conf << EOF
[Seat:*]
autologin-user=$TARGET_USER
autologin-user-timeout=0
user-session=xfce
EOF
fi
# 13. ENERGIAGAZDÁLKODÁS BEÁLLÍTÁSA
echo "-> Energiagazdálkodás beállítása..."
cat > "$USER_HOME/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml" << EOF
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-power-manager" version="1.0">
<property name="xfce4-power-manager" type="empty">
<property name="blank-on-ac" type="int" value="0"/>
<property name="dpms-enabled" type="bool" value="true"/>
<property name="dpms-on-ac-sleep" type="int" value="0"/>
<property name="dpms-on-ac-off" type="int" value="0"/>
<property name="lock-screen-when-sleep" type="bool" value="false"/>
<property name="logind-handle-lid-switch" type="bool" value="false"/>
</property>
</channel>
EOF
# 14. NETWORKMANAGER BEÁLLÍTÁS
if [ -f /etc/network/interfaces ]; then
cp /etc/network/interfaces /etc/network/interfaces.bak
sed -i '/allow-hotplug/s/^/#/' /etc/network/interfaces
sed -i '/iface w/s/^/#/' /etc/network/interfaces
sed -i '/iface e/s/^/#/' /etc/network/interfaces
fi
mkdir -p /etc/NetworkManager/conf.d
cat > /etc/NetworkManager/conf.d/10-globally-managed-devices.conf << EOF
[keyfile]
unmanaged-devices=none
EOF
if [ -f /etc/NetworkManager/NetworkManager.conf ]; then
sed -i 's/managed=false/managed=true/g' /etc/NetworkManager/NetworkManager.conf
fi
# 15. OPCIÓ: zRAM ÉS SWAP (SWAPPINESS=1)
if [[ "$KERO_ZRAM" =~ ^[Ii]$ ]]; then
echo "-> zRAM és RAM optimalizáció beállítása..."
apt install -y zram-tools
cat > /etc/default/zramswap << EOF
ALGO=zstd
PERCENT=100
PRIORITY=100
EOF
cat > /etc/sysctl.d/99-zram-swappiness.conf << EOF
vm.swappiness = 1
vm.watermark_boost_factor = 0
vm.watermark_scale_factor = 10
EOF
systemctl enable zramswap || true
fi
# 16. TULAJDONOSI JOGOK ÉS SZOLGÁLTATÁSOK BEÁLLÍTÁSA
chown -R "$TARGET_USER:$TARGET_USER" "$USER_HOME"
systemctl enable NetworkManager
systemctl enable lightdm
systemctl set-default graphical.target
usermod -aG audio,netdev,video,storage "$TARGET_USER" 2>/dev/null || true
apt clean
echo "=================================================================="
echo " TELEPÍTÉS KÉSZ!"
echo " A gép 5 másodperc múlva újraindul..."
echo "=================================================================="
sleep 5
reboot
Mindkettő Debian telepítés utáni szkript, tehát pont olyan, aminek elkészítésével én is tanulni szeretnék.
Most nem emberi idő van, de azt így is látom, hogy mindkettő #!/bin/bash-sal indul. Akkor ez jó lesz nekem is biztos így. Az első kapavágás megvan, ezzel elkezdtem a szkriptem írását.
Annyit már én is tudok, hogy az olyan sort, mely hashmark jellel (#) kezdődik, átugorja a szkript, ilyen után kell írni a megjegyzéseket.
Van amikor ebből csak egy van, van amikor többet is tesznek, talán azért, hogy az emberi szem számára jobban tagolják a magyarázatokat.
Rendszergazdai jog szerzése az indításhoz
Mivel ez egy ilyen telepítős szkript, a rendszert is fogjuk vele piszkálni biztos kell majd rendszergazdai jogot szerezni a futtatásához valamikor.
Az megint az Ubuntun történő szocializálódásomból következik, hogy nekem a Debianjaim is sudo-sak, nem aktív a root, nincs neki jelszava.
Eddig egyszerű felhasználóként láttam olyat a systemback.sh esetében, hogy a hozzá készített indítóikon illetve a menübe bekerült menüelem hatására az új pont készítéséhez illetve az utolsóra történő visszaállás kezdeményezésére egy különxterm terminálablakot hív meg, amiben van tájékoztató szöveg is és ott kell megadni a jelszót.
Itt ennek a systemback.desktop fájlnak a tartalma:
[Desktop Entry]
Type=Application
Name=systemback.sh
Comment=System backup and restore script
Icon=systemback
TryExec=systemback.sh
Exec=xterm +sb -bw 0 -bc -bcf 500 -bcn 500 -bg grey10 -fg grey100 -cr grey80 -selbg grey11 -fa a -fs 10 -geometry 80x24+80+64 -class Systemback -T "systemback.sh - Create a new restore point" -e "sudo systemback.sh -n || read -sn 1 -p '\nPress any key to close the terminal window. '"
Actions=Restore;
Categories=System;
StartupWMClass=Systemback
[Desktop Action Restore]
Exec=xterm +sb -bw 0 -bc -bcf 500 -bcn 500 -bg grey10 -fg grey100 -cr grey80 -selbg grey11 -fa a -fs 10 -geometry 80x24+80+64 -class Systemback -T "systemback.sh - Restore to the latest restore point" -e "sudo systemback.sh -r || read -sn 1 -p '\nPress any key to close the terminal window. '"
Name=Restore to the latest restore point
Nem mintha értenék valamit az Exec= kezdetű sorokból, azon felül, hogy azok tűnnek lényegesnek.
Aztán biztos van olyan is, amelyik a grafikus felületen megjelenő jelszóbekérő ablakot hívja meg. Erre most nincs példám, de szinte biztos vagyok benne, hogy láttam ilyet, csak nem jegyeztem meg a módszert. :-(
Talán a pkexec volt, de nem szeretnék senkit rossz irányba vinni, ez most nagyon bizonytalan tipp.
Nekem most szerintem, mivel ez egy amolyan magamnak szkript, tökéletes lesz a legegyszerűbb indítás is. Lesz valami neve a szkriptnek, a kiterjesztése biztos .sh lesz, mert a nagyok ilyet szoktak neki adni.
Analógia az ilyen indításra teljes elérési útvonallal dolgozva:
sudo /path/myscript.sh
Kicsit magyarul próbálva ezt megadni: sudo /teljes-utvonal/szkriptem.sh
Vagy lehet azt is, hogy ott állunk a terminállal, ahol a szkriptünk van és akkor így indítjuk:
./szkriptem.sh
Itt a './' azt jelenti a rendszer számára, hogy „Ebben a könyvtárban keresd!". Ez eltér attól, amit esetleg más terminálos kalandjaink során eddig már megszoktunk, ahol ha nem írunk semmit a parancs elejére csak az adott könyvtárban lévő valamely állomány nevét, akkor azzal fog dolgozni a rendszer. Ez egy plusz biztonsági intézkedés, hogy szkriptet nem lehet útvonal megadása nélkül futtatni. A './' is egy útvonal, még akkor is, ha ez most csak annyit mond, hogy 'itt' vagy 'helyben'.
És @agnoxy szkriptjének indulását is érdemes számba venni:
#!/bin/bash
# ==============================================================================
# DEBIAN XFCE CUSTOM MASTER SETUP SCRIPT (MODULÁRIS INTERAKTÍV VERZIÓ)
# ==============================================================================
set -e
# KÉPERNYŐ TISZTÍTÁS ÉS FEJLÉC
clear
echo "=================================================================="
echo " DEBIAN XFCE MODULÁRIS RENDSZERBEÁLLÍTÓ TELEPÍTŐ"
echo "=================================================================="
echo ""
# 1. ROOT JOG ELLENŐRZÉSE
if [ "$(id -u)" -ne 0 ]; then
echo "Hiba: A scriptet root joggal (sudo) kell futtatni!"
exit 1
fi
Itt a set -e nem tudom mit csinál, de aztán van egy clear, ez jó ötlet lehet, ha olyan a szkriptünk, hiszen ez egy tiszta termiálablakot ad.
Aztán van itt egy root jog ellenőrzés. Azt sem tudom, hogyan csinálja a mit, de ki fogom próbálni, hátha rájövök, még akkor is, ha magamnál ezt nem biztos, hogy ellenőrizni kell, de ha köznek írunk szkriptet, lehet jól jöhet egy ilyen ellenőrzés. Ez is jó ötlet.
Fájl átírkálása vagy létrehozása bizonyos tartalommal
Aztán mindkét szkriptben látok ilyesmi ciklusokat:
cat <<_EOF >/etc/apt/sources.list
...
_EOF
Lehet, hogy ez lesz a válasz részben vagy egészben a témaindítóban 2. pontként említett szerintem legnagyobb kérdésemre. Ezzel így fájlt lehet átírni vagy létre lehet hozni bizonyos tartalommal?
Nem kell a sed-del kínlódni? Vagy valamikor igen, valamikor nem?
Na de most nyomás vissza még aludni egy picit, mert különben egész nap használhatatlan leszek...