Estrarre sottotitoli da file video
Avete un file video (ottenuto legalmente!) con dei sottotitoli incorporati e vorreste separarli? Per estrarre il file con i sottotitoli vi basta fare:
ffmpeg -i Movie.mkv -map 0:s:0 subs.srt

Avete un file video (ottenuto legalmente!) con dei sottotitoli incorporati e vorreste separarli? Per estrarre il file con i sottotitoli vi basta fare:
ffmpeg -i Movie.mkv -map 0:s:0 subs.srt
Usando il raspberry (o PC con distribuzione GNU/Linux) ci si imbatte molte volte nella domanda "ma quale versione della libreria ho installato?" oppure "avrò installato quella libreria?". Per tutto ciò arriva in nostro soccorso lo strumento dpkg - Debian Package.
Per mostrare la lista completa dei pacchetti installati basta lanciare dal terminale:
1 |
dpkg -l |
Per ogni package verrà visualizzato Nome, Versione, Architettura, Descrizione.
Se si vuole avere la lista salvata in un file di testo:
1 |
dpkg -l > pacchetti_installati.txt |
Mentre per avere la lista dei package installati:
1 |
dpkg --get-selections | grep -v deinstall |
Anche questa lista si può salvare:
1 |
dpkg --get-selections | grep -v deinstall > packages_installati.txt |
Per saperne di più: wikipedia.
Avete Ubuntu e Windows in dual boot con EFI e un aggiornamento di Windows 10 ha fatto sparire il grub?
Aprite il cmd come amministratore ed eseguite:
bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
NOOOOOOO LO SWAP SI STA PIENANDOOOOOOO!!!
Questo è chiaramente indice di qualcosa che non va nell'esecuzione dei nostri processi. Come vedere quindi quali sono i processi coinvolti e quanto swap prendono? Ecco il chilometrico comando che fa per voi!
(echo "COMM PID SWAP"; for file in /proc/*/status ; do awk '/^Pid|VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | grep kB | grep -wv "0 kB" | sort -k 3 -n -r) | column -t
Non vi dirò cosa fa questo comando... vi lascio la sorpresa!
Per installarlo lanciate da terminale
sudo apt-get install lolcat
e per vedere il risultato mettetelo in pipe a qualche comando.
Ad esempio:
sudo apt-get update | lolcat
Se vi ritrovate a dover creare un file di testo 'testo.txt' in una macchina che non ha i classici editor installati (nano, pico, vi, ecc...), potete utilizzare il comando cat > testo.txt << EOF
per scrivere il contenuto del file direttamente da linea di comando. Quando avete finito, digitate EOF per salvare il tutto.
Spesso accade di dover creare una cartella e poi entraci subito dentro da terminale. Il comando mkdir però non prevede ciò. È necessario farlo in due passaggi (un mkdir e un cd subito dopo). Per fare tutto in un comando possiamo definirne un nuovo nel nostro .bashrc 🙂
Nella nostra home scriviamo da terminale
nano .bashrc
e aggiungiamo in fondo al file la definizione del nuovo comando che chiameremo mkcdir
function mkcdir ()
{
mkdir -p -- "$1" &&
cd -P -- "$1"
}
Usciamo salvando e per rendere effettive le modifiche facciamo un
source .bashrc
ed il gioco è fatto 😉
Stavo lavorando su Tomcat e ad un certo punto non riuscivo più a stoppare il server. Ecco un comando da terminale unix per vedere il PID del processo che gira su una determinata porta (in questo caso la 8080)
fuser 8080/tcp
e a killarlo
fuser -k 8080/tcp
Per la serie "i comandi da terminali inutili ma che tutti vogliono" ecco come far apparire le iconiche schermate di matrix nei vostri terminali!
Installiamo
sudo apt-get install cmatrix
e poi lanciamo
cmatrix -b
Questa è la configurazione stile film. Per altre impostazioni come il colore e altri effetti, leggete l'usage da
cmatrix -h
Aprendo un terminale ed eseguendo python -m SimpleHTTPServer 8080
verrà creato un server HTTP accessibile da localhost:8080. Ovviamente potete cambiare la porta o non metterla affatto (la default è la 8000).
Aprite un terminale (CTRL + ALT + T) su Linux e digitate:
telnet towel.blinkenlights.nl
Dopo dei brevi titoli di testa partirà Star Wars Episodio IV in ASCII art all'interno del terminale. Buona visione!
du -shx [DIRCTORY]
[DIRECTORY] è la cartella di cui volete sapere le dimensioni (può anche essere un file).
Nelle opzioni s serve per avere la somma delle dimensioni di tutti i file all'interno della cartella senza avere il dettaglio di tutto quello che c'è dentro, h serve per avere in output un valore leggibile per un essere umano (valori in Kilo, Mega e Giga) e x serve per escludere directory in differenti file system (ad esempio ciò che abbiamo montato con samba).
Se usate Arduino su Linux avrete sicuramente avuto problemi di permessi a comunicare con la scheda. Aggiungete il vostro utente al gruppo dialout per risolverli.
Aprite il terminale e digitate:
sudo usermod -a -G dialout tuo_username
Ricordatevi di sostituire "tuo_username" con il vostro nome utente. Riavviate e avrete risolto i vostri problemi!
Se lavorate con server remoti vi sarà capitato infinite volte di trovarvi impotenti davanti ad una sessione bloccata. Ebbene, esiste una sequenza di tasti per interromperla senza chiudere il terminale:
INVIO
~ (tilde)
. (punto)
Eric S. Raymond
Condividete un server linux con altri utenti e volete vedere il consumo complessivo di RAM per ciascuno?
Ecco il comando di cui avete bisogno:
ps aux | awk '{arr[$1]+=$4}; END {for (i in arr) {print i,arr[i]}}' | sort -k2n
A volte i moduli Python non hanno nomi troppo intuitivi, e quando andate ad usare pip install per aggiungerli, può capitare di stare ore a ricordarsi il nome esatto del modulo.
Per questo motivo, o per cercare nuovi moduli, ricordatevi che pip consente di utilizzare anche il parametro search.
pip search KEYWORD
vi renderà una lista moduli con descrizione, inerenti alla KEYWORD ricercata.
In ambienti Linux è possibile utilizzare il terminale come calcolatrice per eseguire operazioni intere di somma, differenza, moltiplicazione e divisione.
La sintassi è la seguente:
echo $((<expr>))
dove expr
è una qualunque espressione artimetica.
Ahhh... che bella cosa il terminale! ^^
Una volta che ci siamo posizionati sulla cartella con i file (ad es. i jpg) che vogliamo rinominare, possiamo scrivere:
j=1;for i in *.jpg; do mv "$i" img-"$j".jpg; let j=j+1;done
Su Ubuntu ottenere il proprio indirizzo IP pubblico da terminale è facilissimo!
Vi basterà scrivere a console
curl ifconfig.me
Ovviamente se ancora non avete installato curl ( o.O )
sudo apt-get install curl
A volte è utile misurare il tempo di esecuzione di un comando o di una applicazione.
time è il comando che fa al caso nostro. Ecco un esempio con grep:
$ time grep -r "TESI" Documenti/
real 0m0.481s
user 0m0.028s
sys 0m0.012s
Vediamo che ci sono tre tempi:
Per più dettagli:
http://stackoverflow.com/questions/556405/what-do-real-user-and-sys-mean-in-the-output-of-time1
Mai sentito parlare di macro? In C++ potete crearne una in questo modo.
#define say(x) std::cout << #x " = " << (x) << std::endl
Questa macro permette di stampare a console il nome della variabile seguito dal suo valore.
Ad esempio se eseguite l'istruzione
float num_f=0.5;
say(num_f);
in console verrà stampato
num_f = 0.5
Capita spesso di avere problemi durante la configurazione di un sistema dual boot.
Se avete installato nello stesso computer Windows e Ubuntu, ma alla partenza il computer va diretto su Ubuntu senza darti possibilità di scelta, prima di disperarti prova ad installare (se non è già installato) grub-customizer
e vedi se riesci ad impostare il grub come vuoi tu senza troppi patemi.
sudo apt-get install grub-customizer
Diciamo che avete
a=10;
b=30
e ad un certo punto volete che la variabile a assuma il valore associato alla variabile b e viceversa. Esiste un modo per fare uno swap senza dover dichiarare una variabile di appoggio?
Sì, in Python:
a=10; b=30;
a,b = b,a
Avete bisogno di vedere com'è strutturata una cartella?
Installate il tool tree
sudo apt-get install tree
dopodiché scrivete da terminale
tree path
dove path è il path (ma dai?) della cartella che vi interessa analizzare.
Esempio di esecuzione
A volte può essere utile impostare un countdown allo spegnimento del computer perché magari ci sono delle operazioni in corso che volete che vengano concluse.
Per impostarlo è molto semplice: da terminale digitate
sudo shutdown -P m
dove m sono i minuti allo spegnimento. È possibile anche impostare un'ora esatta allo spegnimento con
sudo shutdown -P hh:mm
dove hh:mm è l'orario in formato 24h.
Per ulteriori opzioni consultare il manuale attraverso
man shutdwon
Su Ubuntu, a volte, può succedere di ritrovarsi nel cestino dei file o delle cartelle con dei permessi tali da non poterli cancellare con il tasto "Svuota". Per svuotare il cestino, scrivete da terminale
sudo rm -rf ~/.local/share/Trash/*
Thomas J. Watson, CEO di IBM - 1943
Edsger Wybe Dijkstra
Tired of all those # in your precious config files?
Woldn't it be nice to know only what really matters?
Then THIS is the command for you:
grep -vE "^\s*#|^$" <your_file>
Stanco di tutti quei # nei tuoi preziosi file di configurazione?
Non sarebbe bello sapere solo ciò che veramente ti interessa?
Allora QUESTO è il comando che fa per te:
grep -vE "^\s*#|^$" <your_file>
Conosco una persona che ha perso diversi minuti della sua vita dopo aver aperto un file di testo con vi perché non riusciva a chiudere l'interfaccia.
:wq
se volete chiudere e salvare
:q!
per chiudere senza salvare le modifiche.
Esiste un caso particolare in cui, data una variabile A
, il confronto con se stessa restituisce False
. Quale caso? quando A=NaN
.