FaciLinux

Guide Facili per Linux

Teamviewer© è un software per il controllo remoto di una postazione; viene distribuito per tutti i maggiori sistemi operativi, Linux incluso. Se avete installato il software completo, pacchettizzato in formato deb o rpm, viene anche aggiunto un canale ai vostri repository per l'aggiornamento del software, ma soprattutto viene aggiunto un demone, teamviewerd, che parte all'avvio del computer e resta in attesa di connessioni. Il demone è necessario anche se usiamo la nostra postazione per controllarne un'altra, ma ha naturalmente la doppia funzione; quando si installa Teamviewer anche la nostra macchina diventa potenzialmente controllabile da remoto. Certo, è necessario avere l'accoppiata di codice id e password, ma se non vi piace l'idea di avere un demone sempre in ascolto per una connessione remota sulla vostra postazione, ecco come fare per avviare Teamviewer, demone incluso, solo quando è strettamente necessario.

Innanzitutto occorre creare uno script wrapper, semplicemente uno script bash che si occupa di:

  • Avviare il demone (chiedendo delle credenziali amministrative)
  • Avviare l'interfaccia di Teamviewer
  • Alla chiusura di Teamviewer fermare il demone

Prendete lo script bash che trovate qui sotto e salvatelo come teamviewer-wrapper all'interno di una directory compresa nel vostro PATH di ricerca degli eseguibili (generalmente $HOME/bin può essere una buona scelta se siete gli unici utilizzatori del pc):

#!/bin/bash
#A wrapper for teamviewer
#Runs teamviewer daemon only when needed

#Set teamviewer path
teamv_path="/opt/teamviewer/tv_bin/"

#check path existence
if [ ! -d $teamv_path ]; then
    zenity --error --text "Errore.\nIl percorso $teamv_path non esiste."
    exit 1
else
    pid_daemon=$(pidof teamviewerd)
    if [ ! $pid_daemon == '' ]; then
        zenity --warning --text "Attenzione, il demone di teamviewer era già in esecuzione.\nPer disabilitarne l'avvio automatico usa il comando\n\nsudo systemctl disable teamviewerd\n\nda terminale."
    else
        pkexec /opt/teamviewer/tv_bin/teamviewerd -d
        pid_daemon=$(pidof teamviewerd)
    fi
    if [ $pid_daemon -gt 1 ]; then
        /opt/teamviewer/tv_bin/TeamViewer
        pkexec kill -9 $pid_daemon
        pid_daemon=$(pidof teamviewerd)
        if [ ! $pid_daemon == '' ]; then
            zenity --warning --text "Attenzione, il demone di teamviewer sembra ancora in esecuzione"
        fi
    fi
fi

A questo punto rendiamo lo script eseguibile; apriamo una finestra di terminale e digitiamo:

chmod +x $HOME/bin/teamviewer-wrapper

Ora occorre fermare e disabilitare il demone teamviewerd, i comandi da eseguire da terminale sono:

sudo systemctl disable teamviewerd
sudo systemctl stop teamviewerd

Ora potete lanciare il comando teamviewer-wrapper dal terminale; se volete integrarlo nel menu del vostro desktop, potete copiare il contenuto riportato qui sotto all'interno della directory $HOME/.local/share/applications, salvando il file con il nome com.teamviewer.TeamViewer.desktop

#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Type=Application
Categories=Network;

Name=TeamViewer 13
Comment=Remote control and meeting solution.
Exec=env teamviewer-wrapper

Icon=TeamViewer
Terminal=false

Aggiornamento di Teamviewer

Ogni volta che il pacchetto Teamviewer viene aggiornato, il demone teamviewerd viene riabilitato e fatto partire in modo silente, quindi dopo l'aggiornamento occorre ricordarsi di dare questi due comandi, per fermare e disabilitare nuovamente l'avvio al boot del demone:

sudo systemctl disable teamviewerd
sudo systemctl stop teamviewerd

Googler è un curioso strumento a linea di comando che permette di cercare risultati su Google (Web o News) direttamente dal terminale. È possibile scorrere tra i risultati con i tasti freccia della tastiera; ogni link è numerato sequenzialmente e per aprire il link che ci interessa nel browser predefinito basta digitare il numero corrispondente.

Per installare googler su Debian/Ubuntu basta digitare da terminale il comando:

sudo apt-get install googler

Per cercare il terminae "Italia" nel Web con googler basta un semplice:

googler Italia

Il risultato sarà qualcosa del genere: googler-italia

Per ricercare nelle news occorre aggiungere il flag -N, quindi per cercare le ultime notizie con la parola chiave Italia il comando sarà:

googler -N italia

Il risultato del comando sarà qualcosa di simile: googler-news-italia

Googler ha anche molte opzioni per un uso avanzato dello strumento; se siete curiosi vi consiglio di leggere la pagina di manuale, disponibile naturalmente con il comando:

man googler

Trova e Sostituisci in Vim - Parte 1

- Posted in linux by

Questo articolo, suddiviso in parti, mostra degli esempi d'uso della funzione "Trova e Sostituisci" nell'editor Vim.

Vim fornisce il comando :s (sostituisci) per la ricerca e la sostituzione di stringhe di testo.

Esempi di base

:s/foo/bar/g

Trova ogni occorrenza della stringa 'foo' (nella riga corrente) e la sostituisce con la stringa 'bar'.

:%s/foo/bar/g

Trova ogni occorrenza della stringa 'foo' (in tutte le righe del testo) e la sostituisce con la stringa 'bar'.

:%s/foo/bar/gc

Trova ogni occorrenza della stringa 'foo' (in tutte le righe del testo) e la sostituisce con la stringa 'bar', chiedendo prima conferma.

 :%s/\<foo\>/bar/gc

Trova ogni occorrenza esatta della stringa 'foo' (in tutte le righe del testo) e la sostituisce con la stringa 'bar', chiedendo prima conferma.

:%s/foo/bar/gci

Trova ogni occorrenza (case insensitive, per il flag i) della stringa 'foo' (in tutte le righe del testo) e la sostituisce con la stringa 'bar', chiedendo prima conferma.

:%s/foo/bar/gcI

Trova ogni occorrenza (case sensitive, per il flag i) della stringa 'foo' (in tutte le righe del testo) e la sostituisce con la stringa 'bar', chiedendo prima conferma.

Il flag g significa globale: ogni occorrenza nella riga viene cambiata, piuttosto che solo la prima. Questo flag assume l'impostazione predefinita per l'opzione gdefault e edcompatible (off), che richiede che il flag g sia incluso in % s///g per eseguire un sostituzione globale. Usando :set gdefault si crea confusione perché la sostituzione %s/// è globale, mentre %s///g non lo è (cioè g inverte il suo significato).

Quando si usa la flag c, è necessario confermare cosa fare per ogni occorrenza trovata. Vim produrrà qualcosa come

replace with foobar (y/n/a/q/l/^E/^Y)? 

dove foobar è la stringa in sostituzione.

Puoi digitare

  • y che significa sostituire questa occorrenza,
  • n per saltare questa occorrenza,
  • a sostituire questa e tutte le occorrenze rimanenti,
  • q per uscire dal comando,
  • l per sostituire questa occorrenza e uscire,
  • ^E per far scorrere lo schermo verso l'alto tenendo premuto il tasto Ctrl e premendo E
  • ^Y per far scorrere lo schermo verso il basso di tenendo premuto il tasto Ctrl e premendo Y.

Le ultime due scelte sono disponibili solo se Vim è una build normal, big o huge o la funzione insert_expand è stata abilitata al momento della compilazione (cercare +insert_expand nell'output del comando :version).

Può capitare, mentre si lavora all'interno di una finestra di terminale, di voler/dover aprire un file - magari contenuto proprio nella directory su cui si sta lavorando - con un'applicazione grafica.

Ad esempio di potrebbe avere l'esigenza di aprire un file immagine o un foglio di calcolo o un documento scritto con libreoffice. Per fortuna esiste un unico comando che ci aiuta ad aprire qualsiasi file con l'applicazione predefinita. Il comando si chiama xdg-open e si invoca semplicemente aggiungendo il nome del file che si vuole aprire. Per aprire, ad esempio, il file spreadsheet.xls, basta dare il comando:

xdg-open spreadsheet.xls

Xdg-open si occuperà di invocare il programma predefinito per i file excel (probabilmente Libreoffice). Se si vuole mantenere la possibilità di digitare nuovi comandi mentre l'applicazione grafica lanciata da xdg-open è attiva, basta far seguire al comando l'and commerciale (&), così il comando continua in background e lascia utilizzabile la linea di comando. Per aprire il file pdf esempio.pdf in background con l'applicazione predefinita il comando sarà quindi:

xdg-open esempio.pdf &

Può alle volte essere necessario (o comodo) scaricare in locale un video pubblicato su youtube. Esistono plugin per i maggiori browser che permettono di eseguire questa azione, o anche applicazioni grafiche; è però possibile eseguire facilmente questo compito anche da una finestra di terminale, utilizzando il software youtube-dl. Tale software è spesso già disponibile pacchettizzato nei repository ufficiali della propria distribuzione, quindi, usando ad esempio un pc con Debian o Ubuntu, per l'installazione basta aprire un terminale e digitare:

sudo apt-get install youtube-dl

A volte però il programma non è disponibile nei respository, oppure quello pacchettizzato è una versione obsoleta e non più funzionante; la soluzione consiste allora nel recarsi sul sito del progetto e scaricare l'ultima release, ecco come fare:

  • Puntare un browser all'indirizzo https://rg3.github.io/youtube-dl/
  • Cliccare sul pulsante Download
  • Seguire le istruzioni fornite per ottenere il software

Youtuble-dl offre moltissime opzioni per un utilizzo avanzato (compreso, ad esempio, il download di intere playlist), tutta la documentazione aggiornata è disponibile sul sito del progetto, a questo indirizzo: https://github.com/rg3/youtube-dl/blob/master/README.md#readme Per un utilizzo "base" segnalo che basta invocare il comando seguito dall'URL del video youtube che si vuole scaricare perché youtube-dl si occupi di scaricare tale video con il formato predefinito. Supponiamo di voler scaricare questo video

della Linux Foundation, il comando da digitare a terminale sarà semplicemente:

youtube-dl https://www.youtube.com/watch?v=11VGDAOVEag

Per conoscere i formati in cui un video è disponibile occorre aggiungere il flag -F:

youtube-dl -F https://www.youtube.com/watch?v=11VGDAOVEag
[youtube] 11VGDAOVEag: Downloading webpage
[youtube] 11VGDAOVEag: Downloading video info webpage
[info] Available formats for 11VGDAOVEag:
format code  extension  resolution note
249          webm       audio only DASH audio   50k , opus @ 50k, 626.23KiB
250          webm       audio only DASH audio   66k , opus @ 70k, 833.89KiB
140          m4a        audio only DASH audio  129k , m4a_dash container, mp4a.40.2@128k, 1.68MiB
251          webm       audio only DASH audio  134k , opus @160k, 1.65MiB
171          webm       audio only DASH audio  136k , vorbis@128k, 1.66MiB
160          mp4        256x144    144p  112k , avc1.4d400c, 12fps, video only, 1.43MiB
278          webm       256x144    144p  133k , webm container, vp9, 24fps, video only, 1.33MiB
133          mp4        426x240    240p  251k , avc1.4d4015, 24fps, video only, 3.22MiB
242          webm       426x240    240p  304k , vp9, 24fps, video only, 2.71MiB
243          webm       640x360    360p  559k , vp9, 24fps, video only, 4.82MiB
134          mp4        640x360    360p  623k , avc1.4d401e, 24fps, video only, 4.94MiB
244          webm       854x480    480p 1018k , vp9, 24fps, video only, 8.16MiB
135          mp4        854x480    480p 1114k , avc1.4d401e, 24fps, video only, 9.08MiB
247          webm       1280x720   720p 2056k , vp9, 24fps, video only, 15.98MiB
136          mp4        1280x720   720p 2216k , avc1.4d401f, 24fps, video only, 16.75MiB
248          webm       1920x1080  1080p 3608k , vp9, 24fps, video only, 29.37MiB
137          mp4        1920x1080  1080p 4155k , avc1.640028, 24fps, video only, 32.52MiB
17           3gp        176x144    small , mp4v.20.3, mp4a.40.2@ 24k, 1.08MiB
36           3gp        320x180    small , mp4v.20.3, mp4a.40.2, 2.99MiB
18           mp4        640x360    medium , avc1.42001E, mp4a.40.2@ 96k, 7.80MiB
43           webm       640x360    medium , vp8.0, vorbis@128k, 9.82MiB
22           mp4        1280x720   hd720 , avc1.64001F, mp4a.40.2@192k (best)

Infine, per scaricare in un formato predefinito, basta usare il flag -f seguito dal numero corrispondente (prima colonna dell'output precedente) al formato voluto. Volendo quindi scaricare il video in formato mp4 a una risoluzione di 426x240 il comando diventerà quindi:

youtube-dl -f 133 https://www.youtube.com/watch?v=11VGDAOVEag

Un'ultima nota; youtube-dl non scarica solo i video di youtube, come il nome potrebbe erroneamente far pensare: la lista di siti supportati è infatti molto ampia (https://rg3.github.io/youtube-dl/supportedsites.html)