GNU/Linux >> Belajar Linux >  >> Linux

Kirim pemberitahuan dan pengingat desktop dari terminal Linux

Terkadang berguna untuk mendapatkan umpan balik visual dari sebuah skrip. Misalnya, saat skrip atau tugas cron selesai, build yang berjalan lama gagal, atau ada masalah mendesak selama eksekusi skrip. Aplikasi desktop dapat melakukan ini dengan pemberitahuan sembulan, tetapi juga dapat dilakukan dari skrip! Anda dapat menggunakan perintah skrip untuk mengirim sendiri pemberitahuan dan pengingat desktop.

Kode di bawah ini telah ditulis dan diuji di Linux. Ini juga dapat dilakukan di macOS dengan sedikit usaha. Lihat bagian terakhir untuk beberapa petunjuk dan tip.

Mengirim pemberitahuan dari terminal Linux

Untuk mengirim notifikasi dari terminal Linux, gunakan notify-send memerintah. Ini sering kali sudah diinstal sebagai bagian dari desktop Anda, tetapi Anda dapat menjalankan which  notify-send untuk mengkonfirmasi. Jika belum diinstal, instal dengan manajer paket pilihan Anda.

Pada Fedora dan distribusi serupa, ketik:

$ sudo dnf install libnotify

Pada distribusi berbasis Debian, ketik:

$ sudo apt install notify-send

Beberapa contoh pemberitahuan sederhana:

$ notify-send "Dinner ready!"
$ notify-send "Tip of the Day" "How about a nap?"

Anda dapat menyesuaikan pemberitahuan dengan opsi seperti tingkat urgensi, ikon khusus, dan sebagainya. Cari tahu lebih lanjut dengan man notify-send . Anda dapat menggunakan satu set kecil tag HTML di badan notifikasi untuk memberikan sentuhan yang bagus pada pesan Anda. Selain itu, URL dirender sebagai dapat diklik. Misalnya:

$ notify-send -u critical \
  "Build failed!" \
  "There were <b>123</b> errors. Click here to see the results: http://buildserver/latest"

Notifikasi terkirim diambil oleh lingkungan desktop dan ditampilkan sama seperti notifikasi lainnya. Mereka akan memiliki tampilan, perasaan, dan perilaku yang sama.

Gabungkan notify-send dengan di

Cron biasanya digunakan untuk menjadwalkan perintah secara berkala. at perintah menjadwalkan eksekusi tunggal perintah pada waktu tertentu. Jika Anda menjalankannya seperti ini, ini dimulai dalam mode interaktif, di mana Anda dapat memasukkan perintah untuk dijalankan pada waktu tertentu:

$ at 12:00

Ini tidak berguna untuk skrip. Untungnya, at menerima parameter dari input standar sehingga kita dapat menggunakannya dengan cara ini:

$ echo "npm run build" | at now + 1 minute
$ echo "backup-db" | at 13:00

Ada banyak cara untuk menentukan waktu. Dari waktu absolut, seperti 10:00 melalui waktu relatif, seperti now + 2 hours , untuk waktu khusus seperti noon atau midnight . Kita bisa menggabungkannya dengan notify-send untuk menunjukkan diri kita pengingat di beberapa waktu di masa depan. Misalnya:

$ echo "notify-send 'Stop it and go home now?' 'Enough work for today.' -u critical" | at now

Perintah mengingatkan

Sekarang, buat perintah Bash khusus untuk mengirim pengingat kepada diri Anda sendiri. Bagaimana dengan sesuatu yang sederhana dan ramah manusia seperti:

$ remind "I'm still here" now
$ remind "Time to wake up!" in 5 minutes
$ remind "Dinner" in 1 hour
$ remind "Take a break" at noon
$ remind "It's Friday pints time!" at 17:00

Lebih banyak sumber daya Linux

  • Lembar contekan perintah Linux
  • Lembar contekan perintah Linux tingkat lanjut
  • Kursus online gratis:Ikhtisar Teknis RHEL
  • Lembar contekan jaringan Linux
  • Lembar contekan SELinux
  • Lembar contekan perintah umum Linux
  • Apa itu container Linux?
  • Artikel Linux terbaru kami

Ini lebih baik dari Alexa! Bagaimana cara mendapatkan kebaikan ini?

Lihat kode di bawah ini. Ini mendefinisikan fungsi shell yang disebut mengingatkan , yang mendukung sintaks di atas. Pekerjaan yang sebenarnya dilakukan dalam dua baris terakhir. Sisanya bertanggung jawab atas bantuan, validasi parameter, dll., yang kira-kira cocok dengan proporsi kode yang berguna vs. white-noise yang diperlukan dalam aplikasi besar apa pun.

Simpan kode di suatu tempat, misalnya di ~/bin/remind file, dan sumber fungsi di .bashrc . Anda profile sehingga dimuat saat Anda masuk:

$ source ~/bin/remind

Muat ulang terminal, lalu ketikkan reminder untuk melihat sintaksnya. Selamat menikmati!

#!/usr/bin/env bash
function remind () {
  local COUNT="$#"
  local COMMAND="$1"
  local MESSAGE="$1"
  local OP="$2"
  shift 2
  local WHEN="$@"
  # Display help if no parameters or help command
  if [[ $COUNT -eq 0 || "$COMMAND" == "help" || "$COMMAND" == "--help" || "$COMMAND" == "-h" ]]; then
    echo "COMMAND"
    echo "    remind <message> <time>"
    echo "    remind <command>"
    echo
    echo "DESCRIPTION"
    echo "    Displays notification at specified time"
    echo
    echo "EXAMPLES"
    echo '    remind "Hi there" now'
    echo '    remind "Time to wake up" in 5 minutes'
    echo '    remind "Dinner" in 1 hour'
    echo '    remind "Take a break" at noon'
    echo '    remind "Are you ready?" at 13:00'
    echo '    remind list'
    echo '    remind clear'
    echo '    remind help'
    echo
    return
  fi
  # Check presence of AT command
  if ! which at >/dev/null; then
    echo "remind: AT utility is required but not installed on your system. Install it with your package manager of choice, for example 'sudo apt install at'."
    return
  fi
  # Run commands: list, clear
  if [[ $COUNT -eq 1 ]]; then
    if [[ "$COMMAND" == "list" ]]; then
      at -l
    elif [[ "$COMMAND" == "clear" ]]; then
      at -r $(atq | cut -f1)
    else
      echo "remind: unknown command $COMMAND. Type 'remind' without any parameters to see syntax."
    fi
    return
  fi
  # Determine time of notification
  if [[ "$OP" == "in" ]]; then
    local TIME="now + $WHEN"
  elif [[ "$OP" == "at" ]]; then
    local TIME="$WHEN"
  elif [[ "$OP" == "now" ]]; then
    local TIME="now"
  else
    echo "remind: invalid time operator $OP"
    return
  fi
  # Schedule the notification
  echo "notify-send '$MESSAGE' 'Reminder' -u critical" | at $TIME 2>/dev/null
  echo "Notification scheduled at $TIME"
}

Notifikasi mudah

Dengan beberapa perintah open source sederhana ini, Anda dapat mengintegrasikan skrip, aplikasi, dan tugas Anda sendiri dengan desktop Anda. Cobalah!

Artikel ini telah diadaptasi dengan izin penulis dari artikel aslinya, terdapat di sini.


Linux
  1. Kirim email dari terminal atau skrip linux menggunakan perintah email

  2. OBS Studio – Rekam dan Streaming Video Langsung dari Desktop Linux

  3. Cara Menggunakan SSMTP untuk Mengirim Email dari Terminal Linux

  1. Cara Mengirim Email Dengan Lampiran dan Isi dari Linux

  2. cara masuk ke mysql dan menanyakan database dari terminal linux

  3. Matikan mesin Windows dari terminal linux

  1. Ubah ukuran gambar dari terminal Linux

  2. Cetak file dari terminal Linux Anda

  3. mengirim email dari terminal linux dalam satu baris