J'ai besoin d'intimité. Non pas parce que mes actions sont douteuses, mais parce que votre jugement et vos intentions le sont.
5138 links
sudo -u www-data /usr/bin/php8.2 --define apc.enable_cli=1 /var/www/nextcloud/ occ maintenance:mimetype:update-js
sudo -u www-data /usr/bin/php8.2 --define apc.enable_cli=1 /var/www/nextcloud/occ maintenance:repair --include-expensive
sudo -u www-data /usr/bin/php8.2 --define apc.enable_cli=1 /var/www/nextcloud/occ maintenance:mimetype:update-db --repair-filecache
sudo -u www-data /usr/bin/php8.2 --define apc.enable_cli=1 /var/www/nextcloud/occ db:add-missing-indices
!! Sauvegarder l'historique bash dans un fichier
history > history.txt
!! Restaurer l'ancien historique depuis un fichier
history -r history.txt
Un résumé sur l'utilisation de l'historique du bash
Trop bien cet article. J'ai appris de nouveaux raccourcis (je n'ai jamais pris le temps de regarder dans les paramètres)...
Crtl+A : revenir en début de ligne
Ctrl+E : aller en fin de ligne
Alt+B : revenir en arrière d'un mot
Alt+F : avancer d'un mot
Ctrl+U : effacer le début de ligne à partir de la position du curseur
Ctrl + K : effacer la fin de ligne depuis la position du curseur
history : pour afficher l'historique des commandes précédemment écrites
Et pour rejouer une commande, il suffit de taper !
+ le numéro de commande
:
!587
Ce qui rejouera la ligne 587 de l'historique
Lister l’espace (utilisé et restant) sur les partitions:
df -h
Tailles des fichiers et sous-répertoires du dossier courant, dans l’ordre décroissant de taille:
du -a --max-depth=1 | sort -nr
Liste des 10 plus gros fichiers du répertoire courant et de ses sous-repertoires, dans l’ordre décroissant de taille:
du -a | sort -nr | head -n 10
Taille du répertoire courant
du -hs
Astuce: la commande « du » accepte en premier paramètre le nom d’un dossier, exemple pour trouver la taille du répertoire home:
du home/ -hs
Le paramètre -h
donne un affichage de la taille plus facile à lire (par exemple en Go, Mo, Ko).
Le paramètre -s
affiche un résumé.
Le paramètre -a
affiche tout. Il ne peut pas être utilisé avec -s
.
Petit script de mon cru pour ouvrir un fichier ou un dossier en faisant un clic droit dans nemo.
#!/bin/bash
mapfile -t nemofiles <<<"$NEMO_SCRIPT_SELECTED_FILE_PATHS"
nbfiles=${#nemofiles[@]}
if [ "$nbfiles" -le 1 ]; then
if [ "$nbfiles" -eq 1 ]; then
for FILENAME in $NEMO_SCRIPT_SELECTED_FILE_PATHS; do
if [ -f "$FILENAME" ]; then
subl "$FILENAME"
fi
done
subl $PWD
else
subl $PWD
fi
fi
for FILENAME in $NEMO_SCRIPT_SELECTED_FILE_PATHS; do
if [ -f "$FILENAME" ]; then
subl "$FILENAME"
fi
done
J'ai écris ce script afin de faciliter le partage de fichiers depuis un ordinateur d'un réseau local vers un autre ordi.
J'utilise ufw
comme parefeu et gnome-terminal
comme terminal. Il faudra peut-être adapter le script à votre configuration si vous utilisez autre chose.
On peut choisir le port et conserver la règle d'ouverture du port choisi.
On a le choix également entre un serveur python ou un serveur php.
Le serveur php crée temporairement un fichier monothread-server.php
qui est utilisé comme routeur par php.
Il y a deux fichiers qui sont utilisés et qui doivent être placés dans le dossier ~./local/share/nemo/scripts/
:
run-server
qui permet de lancer véritablement le processus. Ce fichier doit être exécutable.server-monthread
qui contient toute la logique du script et qui n'a pas besoin d'être exécutablerun-server
est minimaliste :
EDIT : en utilisant ce premier script, je ne pouvais pas l'utiliser en dehors du répertoire dans lequel il était placé.
#!/bin/bash
gnome-terminal --hide-menubar --geometry 95x24+400+200 -e "$SHELL ./server-monothread"
EDIT : je l'ai donc ré-écris pour qu'il soit utilisable partout :
#!/bin/bash
gnome-terminal --hide-menubar --geometry 95x24+400+200 --command="$SHELL -c '$SHELL ~/.local/share/nemo/scripts/server-monothread'"
server-monothread
est plus complet :
#!/bin/bash
# Pour avoir un retour du choix de l'utilisateur
asksomething()
{
read -r -p "$....
Comme j'ai des soucis avec mon afficheur Markdown, je vous mets le fichier en téléchargement :
Enjoy !
Ah oui, c'est vrai: Le répertoire ~/.cache sous Linux peut accumuler des données inutiles. Et par défaut, à ma connaissance, aucune distribution n'a prévu le vidage automatique de ce dossier. Voici donc quelques commandes:
Voir la place occupée par le cache:
du -h --summarize ~/.cache
Simuler un effacement des fichiers vieux de plus d'un an:
find ~/.cache -depth -type f -mtime +365
Effacer ces fichiers vieux de plus d'un an:
find ~/.cache -type f -mtime +365 -delete
Masto, vous auriez une bidouille simple pour remplacer les entités unicode par des vrais caractères SVP ?
Fen\u00eatre → Fenêtre r\u00e9seau → réseau
Après moult farfouillage j'ai ça qui marche :
$ while IFS= read -r line; do echo -e $line >> traduit.txt ; done < original.txt
\o/
Via de Riduidel
Une explication pour sécuriser la manière un code en bash, en complément de l'article de Seboss666.
Merci pour ces conseils.
!!! ATTENTION !!! une erreur dans mon affichage fait que je suis obligé de mettre une espace :
address
et }
dans l'url youtube de la fonction ydlmp3
{
et 1:-
et 2:-
dans les attributions de variables.Pensez à les supprimer pour que ça fonctionne.
Edit : python2 n'étant plus maintenu, il faut utiliser python3 et ses outils dérivés (pip3 notamment)
#!/bin/bash
set -e -u -o pipefail
IFS=$'\n\t'
on_error() { echo "Error on or near line $1; exiting with status $2"; exit "$2"; }
trap 'on_error ${LINENO} $?' ERR
confirm()
{
read -r -p "${ 1 } [y/N] " response
case "$response" in
[yY][eE][sS]|[yY])
true
;;
*)
false
;;
esac
}
updateYoutubedl() {
#sudo curl -L https ://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
#sudo chmod a+rx /usr/local/bin/youtube-dl
sudo -H pip3 install --upgrade youtube_dl
}
# Usage `ydlmp3 8WZEPtN8_f0 "Kina Grannis/New"` for record in "Musique/Kina Grannis/New" or
# `ydlmp3 8WZEPtN8_f0` for record in "Musique"
ydlmp3() {
readonly origin=$(pwd)
#default value is an empty string (because of ":-" notation)
local address=${ 1:-}
local dirname=${ 2:-}
cd ~/Musique/
if [ ! -z "${dirname}" ];
then
if [ ! -d "${dirname}" ];
then mkdir "${dirname}/"
fi
cd "${dirname}/"
fi
if confirm "Do you want to update ?"; then
updateYoutubedl
fi
echo "File will be recorded in \"$(pwd)\" folder"
youtube-dl --extract-audio --audio-format mp3 https ://www.youtube.com/watch?v="${address }"
cd "${origin}"
}
# Usage `ydlmovies 8WZEPtN8_f0 "dir"` for record in "~/Téléchargements/dir" or
# `ydlmovies 8WZEPtN8_f0` for record in "~/Téléchargements/"
ydlmovies() {
readonly origin=$(pwd)
local dirname=${ 1:-}
if [ ! -z "${dirname}" ];
then
cd ~/Téléchargements/
if [ ! -d "${dirname}" ];
then mkdir "${dirname}/"
fi
cd "${dirname}/"
else
cd ~/Téléchargements/
fi
if confirm "Do you want to update ?"; then
updateYoutubedl
fi
youtube-dl --batch-file "~/urls"
cd "${origin}"
if [ -f ~/urls ]; then
if confirm "Do you want to delete urls ?"; then
cat /dev/null > ~/urls
fi
fi
}
# Usage `ydlmp3list`
ydlmp3list() {
readonly origin=$(pwd)
local dirname=${ 1:-}
cd ~/Musique/
if [ ! -z "${dirname}" ];
then
if [ ! -d "${dirname}" ];
then mkdir "${dirname}/"
fi
cd "${dirname}/"
fi
if confirm "Do you want to update ?"; then
updateYoutubedl
fi
echo "File will be recorded in \"$(pwd)\" folder"
youtube-dl --extract-audio --audio-format mp3 --batch-file "~/urls"
cd "${origin}"
if [ -f ~/urls ]; then
if confirm "Do you want to delete urls ?"; then
cat /dev/null > ~/urls
fi
fi
}
Je place cela dans le fichier .bashrc
(ou .bash_ytdl
si dans le fichier .bashrc
j'ai mis le code suivant :
# Youtube-dl functions.
# You may want to put all your additions into a separate file like
# ~/.bash_ytdl, instead of adding them here directly.
if [ -f ~/.bash_ytdl ]; then
. ~/.bash_ytdl
fi
)
Pour les scripts ydlmovies
et ydlmp3list
, il faut avoir enregistré les urls des fichiers que l'on souhaite télécharger, dans un fichier urls
dans le dossier Home
(une ligne par url).
Les commandes bash en une page
The example in the previous section can be expanded to build a basic data transfer model. Any information input into one end of the connection is output to the other end, and input and output can be easily captured in order to emulate file transfer.
Start by using nc to listen on a specific port, with output captured into a file.
On a given machine, start listening over any port (any port over 1024 without needing su privileges). Here we arbitrarily chose port 1120:
$ nc -l -p 1120 > filename.out
The -l tag says we want to listen and the -p tag specifies the port.
Using a second machine, connect to the listening nc process, feeding it the file which is to be transferred.
On another machine connected to the same local network, connect to the first machine. If the first machine’s hostname is “second” we do:
$ nc second 1120 < filename.in
or
$ nc host.example.com 1120 < filename.in
After the file has been transferred, the connection closes automatically.
Pratique pour colorer des textes en Bash
Ça permet de faire un peu de place dans boot
cleanBoot() {
dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
}
Plutôt que réinventer la roue, il serait peut être plus judicieux que Microsoft cesse d'empêcher l'installation propre d'un Linux (partition Linux inaccessible après mise à jour de Windows, problème d'UEFI...) sur une majorité de PC. Si vraiment ils sont amoureux de Linux, qu'ils arrêtent de lui mettre des bâtons dans les roues...
Cool. Merci pour l'astuce.