Programsız Turn Off (Zaman Ayarlı) Terminal Üzerinden

1 : Belgelerim İçine Yeni Metin Belgesi aç :
Dosya Adının İsimi : auto_shutdown.sh

2 : İçine Yaz :

#!/bin/bash

echo "==============================="
echo "   KAPANMA ZAMANLAYICI v2      "
echo "==============================="
echo "1) Hazır süreler (1-60 dk)"
echo "2) Saat gir (1 - 24)"
echo "3) Dakika gir (1 - 1440)"
echo "4) Saat + Dakika gir"
echo "==============================="
read -p "Seçiminiz (1-4): " mode

minutes=0

case $mode in
    1)
        echo "Hazır süreler:"
        echo "1) 1 dakika"
        echo "2) 5 dakika"
        echo "3) 10 dakika"
        echo "4) 20 dakika"
        echo "5) 30 dakika"
        echo "6) 40 dakika"
        echo "7) 50 dakika"
        echo "8) 60 dakika"
        read -p "Seçiminiz (1-8): " fast

        case $fast in
            1) minutes=1 ;;
            2) minutes=5 ;;
            3) minutes=10 ;;
            4) minutes=20 ;;
            5) minutes=30 ;;
            6) minutes=40 ;;
            7) minutes=50 ;;
            8) minutes=60 ;;
            *) echo "Geçersiz seçim!"; exit 1 ;;
        esac
        ;;
    2)
        read -p "Kaç saat sonra kapanacak? (1-24): " h
        if ! [[ "$h" =~ ^[0-9]+$ ]] || (( h < 1 || h > 24 )); then
            echo "Hata: 1-24 arası saat girin!"
            exit 1
        fi
        minutes=$((h * 60))
        ;;
    3)
        read -p "Kaç dakika sonra kapanacak? (1-1440): " m
        if ! [[ "$m" =~ ^[0-9]+$ ]] || (( m < 1 || m > 1440 )); then
            echo "Hata: 1-1440 arası dakika girin!"
            exit 1
        fi
        minutes=$m
        ;;
    4)
        read -p "Saat (0-24): " h
        read -p "Dakika (0-59): " m

        if ! [[ "$h" =~ ^[0-9]+$ ]] || ! [[ "$m" =~ ^[0-9]+$ ]]; then
            echo "Hata: Saat ve dakika sayısal olmalı!"
            exit 1
        fi

        if (( h < 0 || h > 24 || m < 0 || m > 59 )); then
            echo "Hata: Aralık dışında değer!"
            exit 1
        fi

        minutes=$((h * 60 + m))

        if (( minutes == 0 )); then
            echo "Sıfır süre olamaz!"
            exit 1
        fi
        ;;
    *)
        echo "Geçersiz seçenek!"
        exit 1
        ;;
esac

seconds=$((minutes * 60))

echo "Bilgisayar $minutes dakika sonra kapanacak."
echo "Kapatmayı iptal etmek için 'q' tuşuna basın."

for ((i=seconds; i>0; i--)); do
    printf "\rKalan süre: %02d:%02d  (İptal: q)" $((i/60)) $((i%60))
    read -n1 -t1 key
    if [[ "$key" == "q" || "$key" == "Q" ]]; then
        echo -e "\nKapanma iptal edildi!"
        exit 0
    fi
done

echo -e "\nSüre doldu. Bilgisayar kapanıyor..."
systemctl poweroff

auto_shutdown.sh belgesini sağ tıklayıp Özellikler seçip Program Olarak Çalışmasına İzin ver İşaretli hale getirin .

3 : Masaüstüne Yeni Metin Belgesi Açın adını OtomatikKapanma.Desktop yazın

4: İçine kodları yapıştırın ; KENDİ KULLANICI ADINIZ yazan yere kendi kullanıcı adınız neyse onu yazın .

[Desktop Entry]
Name=Turn Off Timer
Comment=Bilgisayarı seçilen süre sonunda kapatır
Exec=/home/KENDİ KULLANICI ADINIZ/Belgeler/auto_shutdown.sh
Icon=system-shutdown
Terminal=true
Type=Application
Categories=Utility;

5 : OtomatikKapanma.desktop belgesini sağ tıklayıp Başlamasına İzin ver diyin
6 : Eğer Başlamasına izin menüsü gelmezse oluşturduğunuz OtomatikKapanma.desktop belgesini silip tekrar 3. basamaktan tekrar başlayın işlemi yapmaya . Bazen bu izin verme menüsü gelmiyebiliyor .

Bunu Yapay Zeka’ya gösterin bakalım, ne diyecek. :wink:

Yapay zeka kodladı zaten :sweat_smile: Ben ne istediğimi söyledim. İstifade edilebilir diye düşündüm .

Hangisi yazdı üstteki betiği, Gemini mi?
Claude kod yazma işinde daha başarılı görünüyor:
https://claude.ai/share/e71a7a82-0ebb-4c02-9f34-8679d8cc7c58

1 Beğeni

ChatGpt ile aldım yardımı .

O da bu konularda Claude kadar iyi değil benim gördüğüm.
Fakat yine de insan zekası gibi değiller, mutlaka iyi kontrol etmek gerekiyor.

1 Beğeni

En azından işimi görüyor :slight_smile: Ben ne istediysem onu yaptı . Yapay zekadan sudo olmadan istedim . Şimdi konudaki kodları ChatGpt yazdım oda iyileştirme önerileri arasında geri sayım önerisini verdi .

claude İyileştirme Önerileri:

  1. Onay mekanizması: Kapatma öncesi son bir onay istemek güvenli olabilir

Bu öneri uygulamanın amacını bozan bir davranış olur bence . Ben yatağa yatmışım ayarlamışım . Uyurken kim vericek onayı :slight_smile: yapay zeka işte .

1 Beğeni

Evet. :slight_smile:
Çok çeşitli durumlarda kullanışlı olması açısından, belki Claude’un son onay mekanizmasına, bir dakika içinde cevap verilmezse, kapatma işlemini başlat şeklinde bir şey de eklenebilir. :slight_smile:

1 Beğeni

Senin denediğin yapay zekanın kodlarını denedim . Terminal açılmıyor hiç . ChatGpt ye verdim düzelt diye oda daha başka bişi yaptı :slight_smile: Sonrasında düzelt dedikçe dahada acayipleşti .
Yeni bir sohbet açıp Şunu yazdım Buna ekleme yap . Kullanıcı için geri sayım eklensin ve Süre ayarlandıktan sonra kullanıcı vazgeçmesi için seçenek . Çalışan bir kod yaz . Kodları alttaki mesajda vericem bekle

Geri Sayım Eklendi ve İşlemi İptal etme özelliği eklendi Yeni Kodlar

Belgelerim İçindeki auto_shutdown.sh Kodları Silip aşağıdaki kodları yapıştırın

#!/bin/bash

echo "Bilgisayar kaç dakika sonra kapanacak?"
echo "1) 1 dakika"
echo "2) 5 dakika"
echo "3) 10 dakika"
echo "4) 20 dakika"
echo "5) 30 dakika"
echo "6) 40 dakika"
echo "7) 50 dakika"
echo "8) 60 dakika"
read -p "Seçiminiz (1-8): " choice

case $choice in
    1) minutes=1 ;;
    2) minutes=5 ;;
    3) minutes=10 ;;
    4) minutes=20 ;;
    5) minutes=30 ;;
    6) minutes=40 ;;
    7) minutes=50 ;;
    8) minutes=60 ;;
    *) echo "Geçersiz seçim!"; exit 1 ;;
esac

seconds=$((minutes * 60))
echo "Bilgisayar $minutes dakika sonra kapanacak."
echo "'q' tuşuna basarak kapanmayı iptal edebilirsiniz."

# Geri sayım ve tuş kontrolü
for ((i=seconds; i>0; i--)); do
    printf "\rKapanma: %02d:%02d dakika kaldı. 'q' ile iptal edebilirsiniz." $((i/60)) $((i%60))
    # 1 saniye bekle ve tuşa basılıp basılmadığını kontrol et
    read -n1 -t1 key
    if [[ $key == "q" || $key == "Q" ]]; then
        echo -e "\nKapanma iptal edildi!"
        exit 0
    fi
done

echo -e "\nSüre doldu. Bilgisayar kapanıyor..."
systemctl poweroff

Menüler Türkçe olarak düzeltildi
Geri Sayım Eklendi
Seçim İptali Eklendi

Bazı söyledikleri gerçek hayatta yanlış çıkıyor, fakat adım adım birlikte çalışarak iyi yol alınıyor.
Benim böyle bir şeye ihtiyacım olacağını hiç sanmıyorum, aksi takdirde burada grafiksel arayüz kullanırdım - örneğin, YAD ile oldukça şık olabilir.
Özellikle sınırlı sayıda dakika seçeneği yerine, 1…60 veya daha geniş bir aralık sunulabilir.

dakika="$(yad --form --title "Geri Sayımlı Bilgisayar Kapanışı" \
	--align "right" \
	--field "Dakika:":NUM "30|1..60|1|0" \
	--width "355")"
if [[ $? != 0 ]]; then
	exit 1
fi
dakika="${dakika%|}"
1 Beğeni

Bu verdiğin kodu çalıştıramadım . Fakat bir fikir gelmesine sebep oldun . Niye 1 saat ile sınırlandırayım ki :slight_smile: 24 saat olsun . Ayar ekranında karışıklık olmaması için düzen yaptım . 300 dk sonra kapansın 300 dk kaç saat kaç dakika eder ki hesap karmaşası olmasın .
Sanırım Bu Turn Off Pro oldu kendimce :slight_smile: Bunu Bilgisayarına uygulayıp deniyip önerilerini beklerim . Gelişmesine sebep oldun :slight_smile:

#!/bin/bash

echo "==============================="
echo "   KAPANMA ZAMANLAYICI v2      "
echo "==============================="
echo "1) Hazır süreler (1-60 dk)"
echo "2) Saat gir (1 - 24)"
echo "3) Dakika gir (1 - 1440)"
echo "4) Saat + Dakika gir"
echo "==============================="
read -p "Seçiminiz (1-4): " mode

minutes=0

case $mode in
    1)
        echo "Hazır süreler:"
        echo "1) 1 dakika"
        echo "2) 5 dakika"
        echo "3) 10 dakika"
        echo "4) 20 dakika"
        echo "5) 30 dakika"
        echo "6) 40 dakika"
        echo "7) 50 dakika"
        echo "8) 60 dakika"
        read -p "Seçiminiz (1-8): " fast

        case $fast in
            1) minutes=1 ;;
            2) minutes=5 ;;
            3) minutes=10 ;;
            4) minutes=20 ;;
            5) minutes=30 ;;
            6) minutes=40 ;;
            7) minutes=50 ;;
            8) minutes=60 ;;
            *) echo "Geçersiz seçim!"; exit 1 ;;
        esac
        ;;
    2)
        read -p "Kaç saat sonra kapanacak? (1-24): " h
        if ! [[ "$h" =~ ^[0-9]+$ ]] || (( h < 1 || h > 24 )); then
            echo "Hata: 1-24 arası saat girin!"
            exit 1
        fi
        minutes=$((h * 60))
        ;;
    3)
        read -p "Kaç dakika sonra kapanacak? (1-1440): " m
        if ! [[ "$m" =~ ^[0-9]+$ ]] || (( m < 1 || m > 1440 )); then
            echo "Hata: 1-1440 arası dakika girin!"
            exit 1
        fi
        minutes=$m
        ;;
    4)
        read -p "Saat (0-24): " h
        read -p "Dakika (0-59): " m

        if ! [[ "$h" =~ ^[0-9]+$ ]] || ! [[ "$m" =~ ^[0-9]+$ ]]; then
            echo "Hata: Saat ve dakika sayısal olmalı!"
            exit 1
        fi

        if (( h < 0 || h > 24 || m < 0 || m > 59 )); then
            echo "Hata: Aralık dışında değer!"
            exit 1
        fi

        minutes=$((h * 60 + m))

        if (( minutes == 0 )); then
            echo "Sıfır süre olamaz!"
            exit 1
        fi
        ;;
    *)
        echo "Geçersiz seçenek!"
        exit 1
        ;;
esac

seconds=$((minutes * 60))

echo "Bilgisayar $minutes dakika sonra kapanacak."
echo "Kapatmayı iptal etmek için 'q' tuşuna basın."

for ((i=seconds; i>0; i--)); do
    printf "\rKalan süre: %02d:%02d  (İptal: q)" $((i/60)) $((i%60))
    read -n1 -t1 key
    if [[ "$key" == "q" || "$key" == "Q" ]]; then
        echo -e "\nKapanma iptal edildi!"
        exit 0
    fi
done

echo -e "\nSüre doldu. Bilgisayar kapanıyor..."
systemctl poweroff

Ayrıca Python ile de yazdım . Güzel oldu .

Ekran Görüntüsü 2025-12-03 15-16-10

1 Beğeni

Oooo, Python bilseydim, ben de YAD ile falan hiç uğraşmaz, böyle bir şey yapardım - harika olmuş, eline sağlık.

Onun çalışmama nedeni herhalde yad paketinin kurulu olmamasıdır.

1 Beğeni

Python bildiğimden değilki (Python nasıl yazılır internetten baktım hatta )yapay zeka yardımı . Sıfır kod bilgisi . Yapay zekaya sadece ne istediğimi düzgünce yazıyorum . Şurayı düzelt şöyle olsun hata varsa şurada hata var düzelt öyle :slight_smile: Aklıma bişiler geldi bir ara . Bu Linux ile Yapay zeka birleşse .

Bu arada en son hali bu oldu .

Ekran Görüntüsü 2025-12-03 16-17-21
Ekran Görüntüsü 2025-12-03 16-17-34
Ekran Görüntüsü 2025-12-03 16-18-08

İstediğiniz dakikayı bir seçenek listesinden seçmek işi uzatmak gibi olmuş.

Menüyle uğraşmayıp direkt istediğiniz dakikayı yazarak bilgisayarın kapanması için:

  • Gnome için, 45dk sonra kapat örneği:
sleep 45m; gnome-session-quit --power-off --no-prompt
  • XFCE için, 1 saat sonra kapat örneği:
sleep 1h; xfce4-session-logout --halt

Evet o şekilde de yapılabilir . Benim kod bilgim yok ve üşengeç bir insanım :slight_smile: Bu üşengeçlik böyle birşeye sebep oldu :slight_smile:

En son hali bu . Bu en kullanışlısı ve Pratik olanı . Sadi Yumuşak yaptığı yorumlar sonrası aklıma fikir gelmesine sebep oldu . Beyin fırtınası mı deniyor sanırım evet :slight_smile:

Ekran Görüntüsü 2025-12-03 16-17-21
Ekran Görüntüsü 2025-12-03 16-17-34
Ekran Görüntüsü 2025-12-03 16-18-08

Yeri gelmişken güzel bir örnek olur diye yazayım. UNIX felsefesinde belirli ve tek bir işi yapan programlar birbirleriyle haberleşerek kompleks işlemleri gerçekleşirebilir.

Örneğin terminalde sadece beklemeye yarayan sleep komutu ardından başka bir komut çalıştırarak bunu sağladık.

Sizin arayüzlü programda bu işlem sadece bilgisayarı kapatma özelinde çalışıyor. Fakat terminalde bununla yapılacak şeyler sınırsız.

Örneğin: Bir dosya indirme veya başka bir diske taşıma işlemi bittiğinde bilgisayarı kapatmak için de kullanabilirsiniz. Veya başka koşullar da ekleyip daha kompleks yapılar da kurabilirsiniz.

Arayüz son kullanıcının ilk ve en kolay etkileşime gireceği yer olsa da terminaldeki kabuk betiği(shell scripting) daha geniş imkanlara yol açıyor.

Bu illa bash veya shell scripting ile olmak zorunda da değil. Bir python scripti de çalıştırılabilir elbette.

Konuyu okuyanların ilgisini çekebilir diye eklemek istedim.

Bilgi ve fikir alışverişine neden “brainstorm” demişler ve biz de onları taklit ederek neden “beyin fırtınası” diyelim, anlamam. :smiley:

Linux ile Yapay Zeka bileşimi denemeleri var fakat o zaman da Linux dünyasında çok önem verilen kişisel bilgilerin güvenliği ve mahremiyeti gibi büyük bir soru çıkıyor ortaya.
Fakat bunun tamamen yerel (herkesin kendi bilgisayarında kurulan LLM modülleri vs. kullanılarak ve hiç dışarıya bilgi sızdırmadan) yapılması da yakında gündeme gelir herhalde - bunun için çok güçlü donanım gerektiğini de unutmamak gerek. Yeni çıkan ilave Yapay Zeka işlemcilerinin Linux tarafından kullanımı malum nedenlerden dolayı biraz yavaş ilerliyor bu arada.

Bu konu son yanıttan 30 gün sonra otomatik olarak kapatıldı. Yeni yanıtlara artık izin verilmiyor.