Il mistero dei file ics comparsi

Rovistando tra i file presenti sul mio cellulare mi son imbattito in una serie di file con nomi tipo Eventi_20250326_063351.ics. Sono i file di calendar o nel mio caso i file di etar. Visto che erano 130 file e non avevo appuntamenti particolari da ricordare li ho eliminati mettendoli tutti in una cartella e passando la cartella sul mio pc. Tutto ok ma cosa cavolo ci sarà su tutti quei file?

I file ics si aprono tranquillamente con un editor di testo tipo pluma o gedit e simili ma aprirli uno ad uno aveva veramente poco senso e di conseguenza proviamo a chiedere all IA

Il risultato son due script il primo parsa tutti i file e mette i dati importani in un file estratti.txt

Il secondo parsa tutti i file ics della cartella ma se ci sono eventi ripetuti li segna una volta sola

https://gitlab.com/ugone-git/parsafileics/-/blob/19b3decbf824d1e3585af63997eaa77615b5cfd5/parsaics.sh

https://gitlab.com/ugone-git/parsafileics/-/blob/19b3decbf824d1e3585af63997eaa77615b5cfd5/parsaics2,sh

Info varie

Molte volte sento dire che linux è difficile perchè ci son quei comandi strani ecc ecc.
Non c’è nulla come il non conoscere una cosa per farla sembrare difficile ed astrusa.
Internet è pieno di guide più o meno riuscite come far quel che serve ma ogni volta devi cercare e perdere tempo.
Benissimo, cerchiamo di risolvere questi problemi una volta per tutte.
Facciamo un esempio proprio elementare
Vorrei aggiornare il sistema ma non so come fare. Vado su un motore di ricerca e faccio una ricerca tipo questa > debian aggiornare il sistema < ed in vari siti vedremo che uno dei vari sistemi è di mettere in un terminale questo
sudo apt update
sudo apt upgrade

benissimo solo che da una volta all altra che aggiorno il sistema non mi ricordo come posso fare?

ci sono parecchi sistemi ma qui ne vedremo solo 2
1) visto che questo è una cosa estremamente breve e semplice potremmo creare un semplice script bash che una volta cliccato ci chiede la password ed aggiorna
per farlo basta aprire ad esempio pluma o gedit o kate o comunque un editor di testo semplice (non va bene un editor tipo libreoffice perchè inserisce stili e formattazioni)
e dentro scrivere

#!/bin/bash

#
sudo apt update && sudo apt upgrade -y

poi salvare il file come aggiorna.sh in un posto comodo sul pc e controllare che sia eseguibile. quando vorrete aggiornare vi basterà lanciarlo e dopo inserita la password fa quel che serve
spiegazione dello script

#!/bin/bash

#
molti script iniziano con #!/bin/bash per indicare al sistema operativo quale interprete utilizzare per eseguire il file. Questa linea è chiamata “shebang” e serve a specificare il percorso dell’interprete che deve essere utilizzato per eseguire lo script.

sudo apt update && sudo apt upgrade -y

questo è il comando vero e proprio e per esser più precisi è formato in parti
sudo apt update che è il comando che controlla se ci sono aggiornamenti
&& che serve a concatenare il primo comando al secondo
sudo apt upgrade che fa l’aggiornamento vero e proprio
-y che significa yes (assume che alle domande che potrebbero esserci nell aggiornamento la risposta sia si)
A grandi linee questo è il primo sistema ma lo stesso risultato lo possiamo ottenere con il secondo sistema che è usare un alias per fare le stesse cose
2) Guardiamo se nella home del nostro utente c’è un file chiamato .bash_aliases e se non ci fosse lo possiamo creare dando in un terminale touch .bash_aliases
poi con l’editor lo apriamo e scriviamo questo

alias souba=’source ~/.bashrc’
alias aggiorna=’sudo apt update && sudo apt upgrade -y’

e salviamo
in un terminale diamo source ~/.bashrc (il comando source ~/.bashrc viene utilizzato per ricaricare il file di configurazione .bashrc nella shell corrente senza dover chiudere e riaprire il terminale e senza dover riavviare il pc).
A questo punto abbiamo due nuovi comandi souba che vi servirà solo quando aggiungerete comandi ed aggiorna che vi aggiornerà il sistema
Tra parentesi se non vi piace souba potete metterci pippo o pluto o quel che vi piace l’importante e che i comandi seguano questo schema
alias nomescelto=’comando’
ps un piccolo trucchetto potrebbe esser questo. Nel file .bash_aliases sotto i comandi che usiamo possiamo aggiungere queste righe

nomescelto=’comando’

nomescelto=’comando’

nomescelto=’comando’

nomescelto=’comando’

nomescelto=’comando’

quando dovete aggiungere un alias vi basta modificarlo come serve e togliere # all inizio della riga 😉
(se avete 20 anni vi sembrano cose inutili e stupide ma se avete tante volte 20 anni vedrete che tornano utili un sacco di volte 😉

Installare rustdesk via ssh

Magari serva a qualcun altro. Dunque il problema che ho avuto è stato questo.
Un vecchio portatile che però va ancora discretamente (con batteria praticamente morta ma visto che sta attaccato alla corrente va bene lo stesso). Decido di metterlo in garage
Visto che va a riposo (forse) formatto l’ssd e reinstallo ex novo una bella debian 12 mate ed abilito ssh. Faccio le mie brave prove ed ssh va perfettamente. Giusto per scrupolo guardo che funzioni anche il wakeonlan e visto che funziona collego il tuttu dove va e spengo il tutto.
Arrivato in casa mi viene in mente ma se ci mettessi anche rustdesk per un eventuale controllo remoto? ottima idea e per farlo però via ssh ci vogliono un po di passaggi.
Vediamo di fare un passo passo

Prima di tutto bisogna andare sul sito di rustdesk e veder qual è l’ultima versione. Attualmente è la 138 e si prende il link del pacchetto da scaricare in questo caso era

https://github.com/rustdesk/rustdesk/releases/download/1.3.8/rustdesk-1.3.8-x86_64.deb. Copiato il link si va sul terminale connesso via ssh e si da

wget https://github.com/rustdesk/rustdesk/releases/download/1.3.8/rustdesk-1.3.8-x86_64.deb.

una volta scaricato bisogna installarlo e lo si fa con

sudo dpkg -i rustdesk-1.3.8-x86_64.deb
NOTA BENE molto probabilmente darà degli errori e dirà che non è configurato perchè mancano delle librerie.


dpkg: problemi con le dipendenze impediscono la configurazione di rustdesk:
rustdesk dipende da libxdo3; tuttavia:
Il pacchetto libxdo3 non è installato.
rustdesk dipende da gstreamer1.0-pipewire; tuttavia:
Il pacchetto gstreamer1.0-pipewire non è installato.


per cui dare

sudo apt install libxdo3 gstreamer1.0-pipewire

e successivamente visto che dice


sudo apt install libxdo3 gstreamer1.0-pipewire
Lettura elenco dei pacchetti… Fatto
Generazione albero delle dipendenze… Fatto
Lettura informazioni sullo stato… Fatto
È utile eseguire “apt –fix-broken install” per correggere ciò.
I seguenti pacchetti hanno dipendenze non soddisfatte:
gstreamer1.0-pipewire : Dipende: pipewire (= 0.3.65-3+deb12u1) ma non sta per essere installato
E: Dipendenze non soddisfatte. Provare “apt –fix-broken install” senza pacchetti (o specificare una soluzione).


diamo

sudo apt –fix-broken install
e quando ha finito dovremmo esser pronti

i due link che mi hanno aiutato sono
https://wiki.ubuntu-it.org/InternetRete/DesktopRemoto/RustDesk
ed
https://rustdesk.com/docs/en/client/


ma facendo un riassunto totale l’essenziale è

Servizio Comando

Avvio sudo systemctl start rustdesk.service

Arresto sudo systemctl stop rustdesk.service

Riavvio sudo systemctl restart rustdesk.service

Ricaricamento sudo systemctl reload rustdesk.service

Abilitazione sudo systemctl enable rustdesk.service

Disabilitazione sudo systemctl disable rustdesk.service

Blocco sudo systemctl mask rustdesk.service

Sblocco sudo systemctl unmask rustdesk.service

ed
Command Line Parameters

--password can be used to set a permanent password.
--get-id can be used to retrieve the ID.
--set-id can be used to set an ID, please note IDs should start with a letter.
--silent-install can be used to install RustDesk silently on Windows.

Per cui la sequenza da dare è


sudo systemctl start rustdesk.service
sudo systemctl enable rustdesk.service


a questo punto controllare se è tutto a posto con
systemctl -a | grep rustdesk.service


e dovrebbe rispondere


rustdesk.service
loaded active running RustDesk

siamo quasi pronti. Ora bisogna impostare la password e lo facciamo con


sudo rustdesk –password password-scelta-ma-bella-lunga


ed ottenere l’id con


rustdesk –get-id

ok tutto pronto ora per via grafica mettete l’id ottenuto e la pass che avete scelto e siete dentro.

bash_aliases

In Linux molto spesso si scoprono dei comandi utilissimi ma che magari son lunghi e non si usano spesso. Il problema principale è che usandoli raramente me li dimentico (ed a dimenticarmi le cose son un vero esperto).

Un ottimo sistema per ovviare al problema (se il comando lo permette) è crearsi un alias da mettere nel file .bash_aliases nella home. Qui di seguito un microesempio del possibile contenuto.i

alias souba=’source ~/.bashrc’
alias spegniti=’sudo shutdown -h now’
alias riavvia=’sudo reboot’
alias aggiorna=’sudo apt update && sudo apt full-upgrade -y’
alias aggiornadi=’sudo do-release-upgrade’
alias aggiosist=’sudo do-release-upgrade -d’
alias aremo=’sudo apt autoremove’
alias ssshed=’ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C “$(whoami)@$(hostname)”‘
alias rimuovilog=’sudo journalctl –vacuum-size=20M && sudo journalctl –vacuum-time=2d && sudo systemctl restart systemd-journald’

ovviamente potete aggiungere tutti gli alias che vi possono servire
se ne dovete aggiungere altri vi basta scriverli rispettando questa forma
alias nome_comando=’comando vero e proprio’ e dopo aver salvato bash_aliases o riavviate il pc (non ne vale la pena) o date source ~/.bashrc nel terminale o se l’avete fatto già almeno una volta vi basta dare souba (nome casuale inventato al momento perchè non sapevo che metterci 🙂

Se vi dimenticate anche degli alias che avete fatto vi basta aprire un terminale e digitare alias e vi appare la lista di tutti quelli che avete

Breve video su come cambiare icone delle cartelle

Breve video su come cambiare icone delle cartelle in debian Mate ma dovrebbe esser valido quasi sempre in linux.

Quando ci sono molte cartelle averle tutte uguali potrebbe essere un problema se non si ricorda più il nome. Conviene allora modificare il disegno della cartella in modo sia facilmente riconoscibile.

Il vero limite sarà solo la vostra fantasia nel scegliere l’immagine che più si adatta a quel che dovete fare

il video lo trovate qui https://peertube.uno/w/iw2EYWTigzBpVzQ8B1nSSx

rustdesk

Spesso mi capita di affrontare problemi dalla parte sbagliata ed ovviamente di non trovare soluzioni.
Mi ero messo in testa di mettere da remoto rustdesk su una macchina e senza dilungarmi non ci riuscivo.
Onde evitare di sbattere la testa contro i muri inutilmente vi posto la semplicissima soluzione (della serie avevo la soluzione davanti al naso e non la vedevo)
Per prima cosa do per scontato ci sia l’accesso ssh alla macchina remota.
ci connettiamo alla macchina remota via ssh e poi sulla macchina remota scarichiamo il deb (adattare alla propria distro) che serve.
Attualmente verrebbe cosi wget https://github.com/rustdesk/rustdesk/releases/download/1.3.1/rustdesk-1.3.1-x86_64.deb ed una volta scaricato dare
sudo apt install -fy ./rustdesk-1.3.1-x86_64.deb --fix-missing
Una volta installato dare rustdesk --get-id per aver l’id remoto e poi
sudo rustdesk --password passwordsceltaechesiabellalunga
A questo punto rimane solo da aprire rustdesk sulla propira macchina e mettere l’id remoto e la passwordsceltaechesiabellalunga
Con questo sistema se si riavvia la macchina rimane attivo il servizio di rustdesk. di conseguenza
Servizio Comando

Avvio sudo systemctl start rustdesk.service

Arresto sudo systemctl stop rustdesk.service

Riavvio sudo systemctl restart rustdesk.service

Ricaricamento sudo systemctl reload rustdesk.service

Abilitazione sudo systemctl enable rustdesk.service

Disabilitazione sudo systemctl disable rustdesk.service

Blocco sudo systemctl mask rustdesk.service

Sblocco sudo systemctl unmask rustdesk.service

nella situazione iniziale si disabilita il servizio con sudo systemctl disable rustdesk.service e poi si termina con sudo systemctl stop rustdesk.service

Per semplificare la questione direi che conviene mettere nel file .bash_aliases nella home queste righe
alias avviaru='sudo systemctl start rustdesk.service'
alias distop='sudo systemctl disable rustdesk.service && sudo systemctl stop rustdesk.service'

Dopo il riavvio della macchina remota (o dopo aver dato source ~/.bashrc ) dopo esservi collegati darete avviaru per avviare il servizio e distop per disabilitare il servizio e per fermarlo.

Installare virt-manager e prima vm

In teoria sarei dell idea di fare solo uno scritto con tutti i vari passaggi ma il tempo è tiranno e cosi mi son limitato a creare un video (spero non proprio pessimo) sull installazione di virt-manager e creazione di una macchina virtuale. Il video non ha suono per cui vi consiglio di accendere la radio per aver un sottofondo musicale 🙂 https://peertube.uno/w/azqGNXMtDGL6NR2AUDNWVp

Come chiedere aiuto.

Ripropongo copiandolo pari pari un vecchissimo post che avevo fatto il 24/1/2011 ma ancor oggi perfettamente attuale e credo utile. Probabilmente eventuali link saranno rotti vista l’età del post ma l’importante è il resto per cui buona lettura

Quando si ha un problema sotto una generica distro gnulinux e per la quale si richiede aiuto, è buona norma raccogliere e fornire il maggior numero di informazioni possibili.

Ad esempio è bene evitare di scrivere “il sistema non si avvia” , “aiutoooo “ ,”mi da un errore” è invece molto più efficace scrivere dettagli in merito al punto in cui si interrompe il processo di avvio, oppure se si possono udire dei bip e quanti, il tipo di scheda madre, dispositivi usb inseriti sulla macchina in fase di avvio, etc.

Se c’è un errore riportare direttamente quale è copiandolo o facendone uno screenshot o una foto ad esempio con il telefonino

Ricordiamoci che a chi chiediamo aiuto non è concesso il dono della televeggenza e non ha neanche la sfera magica per scoprire da remoto cosa può esser successo. Può sapere solo cio che gli spiegate voi e meglio lo spiegate meglio lo capisce

Altro esempio una periferica usb che non va.

É correttamente vista dal sistema? Digitare in un terminale il comando “lsusb” prima e dopo aver collegato la periferica.

Il seguente è il risultato di un lsusb dato senza la periferica

lsusb

Bus 002 Device 003: ID 0d8c:0201 C-Media Electronics, Inc. CM6501

Bus 002 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

e il seguente è dopo aver collegato

lsusb

Bus 002 Device 003: ID 0d8c:0201 C-Media Electronics, Inc. CM6501

Bus 002 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 001 Device 011: ID 046d:09a2 Logitech, Inc. QuickCam Communicate Deluxe/S7500

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

si nota facilmente che la webcam è stata riconosciuta ed in particolare se i problemi fossero sulla webcam ho a disposizione ID 046d:09a2 che è l’identificativo dell’oggetto. Con questo ID probabilmente mi basta una ricerca su san google cercando qualcosa tipo

“ubuntu ID +”046d:09a2“ problemi”

ed ottengo una serie di pagine con persone che hanno problemi con il dispositivo in questione. (La webcam va perfettamente ed è riconosciuta al volo. È stata usata solo per far vedere un ID )( facendo lo stesso una ricerca su google cmq il primo risultato recita

“>RISOLTO< Re: webcam logitech QuickCam Communicate Deluxe/S7500 e …

2 post – 1 autore – Ultimo post: 7 mag 2010

Forum ufficiale in lingua italiana di supporto a Ubuntu Linux. … Bus 002 Device 003: ID 046d:09a2 Logitech, Inc. QuickCam Communicate Deluxe/S7500”

Sempre per una periferica che non và si puo provare a cercare con dmesg

nel nostro esempio cercheremo info sulla webcam

dmesg > /home/utente/Desktop/file-da-esaminare.txt e poi subito dopo aver inserito la webcam

dmesg > /home/utente/Desktop/file-da-esaminare2.txt

la differenza tra i due file sarà

[ 9518.689032] usb 1-2: new high speed USB device using ehci_hcd and address 18

[ 9518.945464] uvcvideo: Found UVC 1.00 device <unnamed> (046d:09a2)

[ 9518.991199] input: UVC Camera (046d:09a2) as /devices/pci0000:00/0000:00:02.1/usb1/1-2/1-2:1.0/input/input13

Non serve lo facciate a mano ,potete dare il comando (in un terminale)

diff /home/utente/Desktop/file-da-esaminare.txt /home/utente/Desktop/file-da-esaminare2.txt

(la sintassi è diff file1 file2 per ulteriori info man diff) oppure se volete qualcosa di grafico sudo apt-get install meld

tornando alla differenza tra i file da notare che dice

[ 9518.945464] uvcvideo: Found UVC 1.00 device <unnamed> (046d:09a2)

e ci fa notare di nuovo l’ID 046d:09a2 che identifica univocamente la webcam

Qui di seguito una serie di comandi che possono aiutare a cercare informazioni

(ovviamente guardare attentamente da terminale man comando-da-usare)

lsusb

lspci

dmesg

i comandi poi possono ovviamente essere usati insieme ad altri per agevolare la ricerca. Ad esempio dmesg | grep -i usb che fornirà i messaggi riguardanti le usb oppure dmesg | less

che permette di visualizzare i messaggi una pagina per volta (spazio per avanzare) o ancora

dmesg > file_di_output che vi fornisce il risultato su un comodo file per esser guardato con calma

altro comando utile è ps che serve a vedere i processi attivi

ps aux che visualizza tutti i processi

ps aux | grep -i utente che visualizza i processi di utente

i comandi che bisogna assolutamente conoscere per cercare sono

find

grep

per questi due comandi vi rimando a man find e man grep oppure

http://it.wikipedia.org/wiki/Grep

http://it.wikipedia.org/wiki/Find_%28Unix%29

Una volta raccolte tutte le info possibili probabilmente avete già risolto il vostro problema, ma se cosi non fosse vi potete rivolgere a google.

Cercare su google è un po’ un’arte che si affina con il tempo.

Spesso basta mettere le prime parole riportate dall’errore.

A volte invece avremo troppi risultati nel qual caso dovremo raffinare la ricerca (ricerca avanzata)

Per migliorare la ricerca vi consiglio un’attenta lettura di

http://www.google.it/support/websearch/bin/answer.py?hl=it&answer=134479

http://www.google.it/support/websearch/bin/answer.py?answer=136861

Un altro ottimo sistema per chiedere aiuto ed avere informazioni sono i vari canali irc.

http://it.wikipedia.org/wiki/Internet_Relay_Chat

http://wiki.ubuntu-it.org/IrcLineeGuida

per avere un’idea di cosa si dice su un canale irc http://logs.ubuntu-eu.org/freenode/2011/01/20/%23ubuntu-it.html (una giornata a caso.)

considerate che nelle stanze irc è possibile troviate parecchia gente ma pochi al pc o che magari in quel momento leggono il canale

due piccoli avvertimenti tratti da un bot di irc

!qualcuno

<ubot-it> la maggior parte delle prime domande fatte in questo canale è del tipo «qualcuno puo’ aiutarmi/qualcuno ha tempo/qualcuno usa…?». Fate la vostra domanda tecnica e se qualcuno sa, rispondera’

!nessuno

<ubot-it> se nessuno parla in canale non significa che non ci sono utenti attivi. Fate la vostra domanda tecnica e se qualcuno vorrà rispondervi lo farà

Di conseguenza quando avete una domanda ed entrate in un canale ricordando le ovvie regole di buone educazione fate direttamente la vostra domanda ed aspettate.

NON ripetere la domanda ogni n minuti perchè non serve o al massimo serve a far arrabbiare qualcuno. Eventualmente la rifarete dopo un’oretta o per lo meno un tempo ragionevole.

Se volete parlare del più e del meno esistono apposite stanze. Di solito un canale di supporto viene usato solo per il supporto a quel particolare problema

Per imparare rapidamente i vari trucchi del sistema che state usando è stare parecchio tempo su questi canali di supporto cercando la soluzìone ai vari problemi che vengono posti ed aiutando chi ne sa meno di voi o per lo meno chi ha un problema che voi avete gia risolto. In pratica più aiutate e più imparate

Una delle cose più importanti per avere informazioni da un programma è farlo partire da terminale.

Se cliccando sull’icona di un programma questo non parte la PRIMA cosa da fare è  di provare a lanciarlo da terminale.