Je note dans cette page, en vrac, diverses astuces pour Linux. Certaines évidentes, d'autres un peu moins. Ça me sert de bloc-note. Et je le publie: On ne sait jamais, ça pourrait aider d'autres personnes. Certaines astuces peuvent être spécifiques à une distribution.
apropos pdf
> tldr tar tar Archiving utility. Often combined with a compression method, such as gzip or bzip. - Create an archive from files: tar cf {{target.tar}} {{file1 file2 file3}} - Create a gzipped archive: tar czf {{target.tar.gz}} {{file1 file2 file3}} - Extract an archive in a target folder: tar xf {{source.tar}} -C {{folder}} - Extract a gzipped archive in the current directory: tar xzf {{source.tar.gz}} - Extract a bzipped archive in the current directory: tar xjf {{source.tar.bz2}} - Create a compressed archive, using archive suffix to determine the compression program: tar caf {{target.tar.xz}} {{file1 file2 file3}} - List the contents of a tar file: tar tvf {{source.tar}} - Extract files matching a pattern: tar xf {{source.tar}} --wildcards {{"*.html"}}
iw reg get
. Si vous ne voyez pas Country: FR
c'est que ce n'est pas correctement réglé.sudo iw reg set FR
, mais cela ne persiste pas au redémarrage.REGDOMAIN
dans le fichier /etc/default/crda
. Mettez:REGDOMAIN=FR
sudo progress -m
-M
, progress ne quittera pas et attendra un autre processus.tar cvfz archive.tgz dossier/
tar cvf - dossier/ | pigz > archive.tgz
tar cvf archive.tgz -I pigz dossier/
tar xvf archive.tgz
tar cvfz archive.tgz dossier/ --exclude=*.mp3
tar cvfz archive.tgz dossier/ --exclude=chemin/relatif
sudo apt install pigz pbzip2
.bashrc
mettre:alias gzip='pigz' alias bzip2='pbzip2'
sudo apt install lzop
tar --lzop -cvf archive.tar.lzo dossier/
tar xvf archive.tar.lzo
mount | column -t
findmnt
: il va tout afficher de manière hiérarchique.lsblk
sudo fdisk -l
sudo inxi -Po
sudo gparted
(outils graphique)sudo bash -c 'echo "vm.swappiness=10" >> /etc/sysctl.conf'
sudo sysctl -p
sudo apt install zram-config
, rebootez, et c'est tout. Les segments de mémoire compressés seront utilisés en priorité sur le swap disque. (Vous pouvez voir les /dev/zramX
quand vous faites cat /proc/swaps
)./etc/fstab
:tmpfs /tmp tmpfs defaults,relatime,mode=1777,nosuid,size=4196M 0 0
sudo netstat -pntul
sudo ss -pntul
python3 -m http.server 5555
python -m SimpleHTTPServer 5555
http://adresseip:5555/
.bashrc
:alias ni='nice -n 19 ionice -c3'
ni
:ni tar cvfz monarchive.tgz monrepertoire/
7z
ouvrez un terminal, lancez cette commande et laissez le terminal ouvert:watch "renice 19 -p $(pgrep 7z)"
cpulimit -e nomDuProgramme -l 25 -b
-e nomDuProgramme
ou -P cheminCompletDuProgramme
-l 25
pour 25% de CPU-b
pour mettre cpulimit en tâche de fond. Sans ça, il tourne en avant-plan et vous pouvez l'arrêter avec Ctrl+C (pratique pour limiter temporairement un programme)/etc/rc.local
n'est plus utilisé, donc pour que votre script shell soit lancé au démarrage du système, mettez-le par exemple dans /opt/scripts/monscript.sh, puis faites sudo crontab -e
et ajoutez la ligne:@reboot /opt/scripts/monscript.sh
strace -e trace=file LEPROGRAMME 2>&1 | grep "/home" > trace.log
sudo apt install sysdig sysdig-dkms
; essayez: sudo sysdig proc.name=cat
et de faire un cat dans une autre fenêtre).sudo lsof | grep NOMFICHIER
/etc/init.d
), d'autres par Upstart (scripts dans /etc/init
) et d'autres par systemd. La plupart des distributions récentes utilisent systemd.sudo service --status-all
(+ démarré, - non démarré, ? status inconnu)sudo service <servicename> start
/ sudo service <servicename> stop
sudo update-rc.d <servicename> enable
/ sudo update-rc.d <servicename> disable
sudo initctl list
sudo initctl stop <servicename>
/ sudo initctl start <servicename>
<servicename>.override
contenant le mot “manual”. Exemple: sudo bash -c 'echo "manual" > /etc/init/avahi-daemon.override'
sudo systemctl list-unit-files --type=service
sudo systemctl start <servicename>
/ sudo systemctl stop <servicename>
sudo systemctl enable <servicename>
/ sudo systemctl disable <servicename>
sudo systemctl disable NetworkManager-wait-online.service
sudo apt purge btrfs-tools sudo update-initramfs -ukall
sudo apt install firejail
(ou voir site officiel).firejail --net=none monprogramme
#!/bin/bash SCRIPT=$(readlink -f "$0") DIR=$(dirname "$SCRIPT") cd "$DIR" notify-send -i info -t 5000 "Skype" "Lancement par firejail..." firejail --noprofile --private=. bash -c "/usr/bin/skype"
nice find . -type f -print0 | xargs -0 md5sum | sort -k2 > md5sums
md5sum -c md5sums
sudo apt download filezilla
par exemple: Cela va créer un fichier .tar .gz contenant tous les .deb nécessaires, ainsi que le fichier install.sh
.partclone
sur clé USB afin de faire des images de mes partitions./cdrom
(copier sur le bureau pour pouvoir utiliser).sudo apt autoremove
/var/cache/apt/archives/
.sudo apt autoclean
.sudo apt clean
dpkg -l | grep "^ii" | awk ' {print $2} ' | xargs sudo apt-get -y --force-yes install --reinstall --download-only
~/.fonts
fc-cache -fv
pulseaudio -k
sudo service network-manager restart
ou plus simplement (sans sudo): nmcli networking off && sleep 5 && nmcli networking on
~/.config/caja/scripts/
et le rendre exécutable.#!/bin/bash # Créer rapidement une archive .tar.gz IFS=$'\n' for FILENAME in $CAJA_SCRIPT_SELECTED_FILE_PATHS; do if [ -d "$FILENAME" ]; then tar -c "$FILENAME" | pigz -c > "$FILENAME.tar.gz" fi if [ -f "$FILENAME" ]; then cat "$FILENAME" | pigz -c > "$FILENAME.gz" fi done
/
) en conservant les droits (vers mon disque dur externe en ext4 également):sudo rsync -av --owner --progress --delete --exclude-from='excludes-backup.txt' / /destination
/proc /sys /dev /media /mnt /cdrom /tmp /run /var/tmp /var/run /home/sebsauvage/.steam/steam/steamapps /home/sebsauvage/.local/share/Trash *.!qB
sudo touch /forcefsck
et redémarrez.sudo umount /media/veracrypt1 sudo fsck /dev/mapper/veracrypt1
#!/bin/bash monprogramme & echo $! >/tmp/monprogramme.pid & /usr/bin/setxkbmap -layout us & pid=`cat /tmp/monprogramme.pid` & if wait $pid then /usr/bin/setxkbmap -layout fr else /usr/bin/setxkbmap -layout fr fi
sudo apt install graphicsmagick
; site officiel)ro quiet splash
et remplacez par ro quiet splash rw init=/bin/bash
passwd monlogin
sudo fdisk -l
(ou lancez gparted
) pour repérer votre partition système (Pour l'exemple, ce sera /dev/sda1).sudo mkdir /media/sda1 sudo mount /dev/sda1 /media/sda1 sudo chroot /media/sda1 passwd monlogin exit
cd "/media/mint/Windows 10/Windows/System32/" cp Utilman.exe Utilman.exe.original cp cmd.exe Utilman.exe
(selon les versions de Windows, c'est sethc.exe
qu'il faut manipuler, pas Utilman.exe
).
net user
pour voir la liste des utilisateurs de la machine.net user toto /ADD
pour ajouter l'utilisateur toto.net user toto *
pour changer le mot de passe de toto (ou de n'importe quel autre utilisateur)net localgroup
pour lister les groups locaux.net localgroup Administrators /ADD toto
pour donner à l'utilisateur toto les droits admin.sudo apt install numlockx
du --max-depth=1 -h
ncdu
!sudo apt install secure-delete
sfill -fllvz /lerépertoire
sudo swapoff -a sudo sswap -fllvz /dev/sda5
cat /etc/*-release
DISTRIB_ID=LinuxMint DISTRIB_RELEASE=19 DISTRIB_CODENAME=tara DISTRIB_DESCRIPTION="Linux Mint 19 Tara" NAME="Linux Mint" VERSION="19 (Tara)" ID=linuxmint ID_LIKE=ubuntu PRETTY_NAME="Linux Mint 19" VERSION_ID="19" HOME_URL="https://www.linuxmint.com/" SUPPORT_URL="https://forums.ubuntu.com/" BUG_REPORT_URL="http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/" PRIVACY_POLICY_URL="https://www.linuxmint.com/" VERSION_CODENAME=tara UBUNTU_CODENAME=bionic
(On voit que c'est Linux Mint 19 basé sur Ubuntu Bionic Beaver, donc 18.04)
inxi
est fantastique.inxi -F
vous donnera une vue d'ensemble de votre système.-G
pour la carte graphique, -A
pour l'audio, etc. Faites un man inxi
pour voir toutes les options.sudo inxi -M
ou encore les barettes de RAM avec leur numéro de série: sudo inxi -m -xx
.sudo lshw
sudo lshw -C network
sudo apt install sshfs
mkdir pointdemontage sshfs utilisateur@machine.com: pointdemontage
sshfs utilisateur@machine.com:/repertoire/distant pointdemontage
sshfs utilisateur@machine.com: pointdemontage -p 33000
fusermount -u pointdemontage
fortune
est un programme qui affiche des citations. Mais il n'a que de vieilles citations (2004), et la majorité en anglais. Voici comment les mettre à jour: sudo rm -rf /usr/share/games/fortunes/*
sudo cp citation-celebre.com* /usr/share/games/fortunes
fortune
fortune
directement dans votre ~/.bashrc
(ou si vous préférez:fortune | cowsay
)sudo apt-get install exfat-fuse exfat-utils
sudo apt install fslint
sudo apt install gdmap
et lancez-le.ncdu
.~/.local/share/
~/.config/
sudo iotop -b -o | grep \%
sudo watch -n 1 "(ps aux | awk '\$8 ~ /D/ { print \$0 }')"
watch "egrep '(Dirty|^Cached:)' /proc/meminfo"
vous pouvez voir en temps reél:
find -name "*.flac" -exec ffmpeg -i {} -acodec libmp3lame -ab 128k {}.mp3 \;
sudo apt install xbacklight
xbacklight -inc 10
xbacklight -dec 10
sudo apt install variety
ou installer à la main les paquets “variety-slideshow” et “variety” (Site officiel, Paquets sur Launchpad).sudo apt install backintime-gnome
).sudo swapoff -a
sudo dd if=/dev/zero of=/swapfile bs=1024 count=2000000
sudo chmod 0600 /swapfile
sudo e4defrag -v /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
/etc/fstab
:/swapfile none swap sw 0 0
Gave up waiting for suspend/resume device
dans /var/log/boot.log
alors modifiez le fichier /etc/initramfs-tools/conf.d/resume
(créez ce fichier s'il n'existe pas):RESUME=UUID=388a79ac-27b7-42f5-ac13-…
remplacez par RESUME=none
sudo update-initramfs -u
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target sudo systemctl restart systemd-logind.service
sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target
/etc/systemd/logind.conf
, décommenter les deux lignes suivantes:HandleLidSwitch=ignore HandleLidSwitchDocked=ignore
sudo apt install tlp
man tlp
ou voir le fichier /etc/default/tlp
pour changer les réglages.sudo apt install kazam
w
sudo vipw
et mettre un #
devant son login.sudo pkill -u utilisateur mate-session
(mate-session ou le processus visible quand vous faites w
).fdisk -l fichier.img
. Par exemple pour RecalBox:>fdisk -l recalbox.img Disque recalbox.img : 2,4 GiB, 2579489280 octets, 5038065 secteurs Unités : secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Type d'étiquette de disque : dos Identifiant de disque : 0x00000000 Périphérique Amorçage Début Fin Secteurs Taille Id Type recalbox.img1 1263 132334 131072 64M c W95 FAT32 (LBA) recalbox.img2 132335 5038064 4905730 2,3G 83 Linux
mkdir temp sudo mount -o loop,offset=67755520 recalbox.img temp/
unxz --keep image.img.xz
) le convertir en *.vdi:VBoxManage convertdd image.img image.vdi
sudo apt install qemu-kvm qemu-utils
sudo modprobe nbd
sudo qemu-nbd -c /dev/nbd0 disk.vdi
>sudo fdisk -l /dev/nbd0 [...] Périphérique Amorçage Début Fin Secteurs Taille Id Type /dev/nbd0p1 1263 132334 131072 64M c W95 FAT32 (LBA) /dev/nbd0p2 132335 4326782 4194448 2G 83 Linux
mkdir part sudo mount /dev/nbd0p2 part/
sudo umount /dev/nbd0p2 qemu-nbd -d /dev/nbd0
sudo fdisk -l
ou inxi -Po
dd
copie “bêtement” tous les octets (y compris les secteurs où il n'y a pas de fichiers). pigz
compresse comme gzip
mais plus rapidement. pv
permet de voir la progression.sudo dd if=/dev/sda2 | pv | pigz > image.dd.gz
zcat image.dd.gz | pv | sudo dd of=/dev/sda2
partclone
est un peu plus intelligent que dd
: Il “comprend” le système de fichier et n'ira pas sauvegarder les secteurs vides. Il sera donc a priori plus rapide que dd, et générera des images plus compactes.sudo apt install partclone
pour installer.man partclone
ou apropos partclone
.partclone.vfat
. Par contre pour exfat, il faut prendre partclone.exfat.sudo partclone.ext4 -c -d -s /dev/sda2 | pigz > image.partclone.gz
zcat image.partclone.gz | sudo partclone.restore -d -o /dev/sda2
zcat image.partclone.gz | sudo partclone.info -s -
zcat image.partclone.gz | sudo partclone.chkimg -s -
partimage
. Il n'est pas compatible ext4.sudo dd if=/dev/sda of=mbr.bin bs=512 count=1
sudo dd if=mbr.bin of=/dev/sda
partclone.ext4 -c -d -s /dev/sda2 | pigz | split -d -b 4000M - image.partclone.gz.
Cela va créer des fichiers image.partclone.gz.00
, image.partclone.gz.01
, etc.
cat image.partclone.gz.* | pigz -d | sudo partclone.restore -d -o /dev/sda2
dd
et partclone
ne peuvent travailler que sur des partitions démontées. fsarchiver
peut travailler sur des fs montés, et (tout comme partimage) il garde tous les fichiers avec leurs attributs. Voici les différences:sudo apt install jstest-gtk
)/dev/input/jsX
qui sont en principe obsolètes. Vous pouvez passer à evtest qui se base sur /dev/input/eventXX
. La version graphique, evtest-qt n'est sans doute pas dispo pour votre distribution. Vous devrez la compiler ou prendre les packages sur Launchpad.chmod +x
justement parce que vous êtes sur FAT/NTFS ? Lancez-le simplement en faisant: bash ./script.sh
#!/bin/bash # Backup de la mémoire interne du téléphone: sshpass -p 'motdepasse' rsync -av --no-p -zz --progress --delete login@192.168.0.3:/sdcard/ -e "ssh -p 2222" ~/backup-smartphone/internal/ # Backup de la carte MicroSD sshpass -p 'motdepasse' rsync -av --no-p -zz --progress --delete login@192.168.0.3:/storage/0000-0000/ -e "ssh -p 2222" --exclude={'.android_secure','*.obf','*.mwm',Music,Android/data/com.earthflare.android.radioparadisewidget.gpv2/cache/} ~/backup-smartphone/sdcard/
flock /tmp/abcd555 -c "sleep 30" flock /tmp/abcd555 -c "echo coucou"
> xhost + > su autrecompte > gimp
xhost -
pour refermer les droits de connexion au serveur X.identify -verbose votreimage.jpg | grep Quality
pdftocairo -png fichier.pdf
-jpeg
, -tiff
…-r
, par exemplepdftocairo -r 600 -tiff fichier.pdf
ccze
sait coloriser divers logs pour les rendre plus lisibles. Essayez : cat /var/log/syslog | ccze -A | less -R
ccze -l
pour voir les types de logs supportés.find . | egrep "\.(cbz|cbr|pdf|epub)$" | wc -l
youtube-dl https://www.youtube.com/watch?v=dQw4w9WgXcQ
sudo apt purge youtube-dl
)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 youtube-dl -U
youtube-dl --extract-audio --audio-format mp3 https://www.youtube.com/watch?v=dQw4w9WgXcQ
/etc/default/grub
:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX_DEFAULT=""
sudo update-grub
sudo nethogs
sudo apt install iptraf-ng
sudo iptraf-ng
#!/bin/bash echo "Surveillance du VPN." while true do CHECKDATA=`ifconfig` if [[ $CHECKDATA == *'tun0:'* ]] ; then echo "`date` : VPN ok. Attente 1 seconde." else echo "`date` : Le VPN est désactivé. Terminaison des logiciels de P2P." killall --signal SIGKILL --wait qbittorrent transmission-gtk amule echo "Pressez ENTREE" read exit 1 fi sleep 1s done
nmap -sP 192.168.0.1-255
arp-scan
(sudo apt install arp-scan
): sudo arp-scan 192.168.0.0/24
arp -an
ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 -ss 0:0:2 -frames 1 -y "/tmp/`date -Iseconds`.jpg"
convert -limit memory 1 -limit map 1 -fuzz 5% -layers Optimize input.gif output.gif
gifsicle -O3 --lossy=80 -o output.gif input.gif
--lossy
(par exemple --lossy=200
ou --lossy=800
) : Cela compressera encore mieux, au détriment de la qualité d'image.sudo apt install snoopy
/var/log/auth.log
. Exemple de sortie:Jul 16 10:33:22 mycomputer snoopy[11483]: [login:sebsauvage ssh:((undefined)) sid:12137 tty:/dev/pts/3 (1005/sebsauvage) uid:sebsauvage(1005)/sebsauvage(1005) cwd:/home/sebsauvage]: nmap -sP 192.168.0.1-255
#!/bin/bash reg_snoopy="(.+?) (.+?) (.+?) (.+?) snoopy.+?login:([a-z]+)\s.+?cwd.+?\]: (.*)" tail -fn0 /var/log/auth.log | \ while read line ; do if [[ $line =~ $reg_snoopy ]] ; then echo "Date: ${BASH_REMATCH[1]} ${BASH_REMATCH[2]} ${BASH_REMATCH[3]}, utilisateur: ${BASH_REMATCH[5]}, commande: ${BASH_REMATCH[6]}" fi done
w
lslogins -u
last
lftp ftp://login:password@votreserveurftp.com -e "mirror -e -c -R --ignore-time --verbose=1 /répertoirelocal /répertoiredistant/ ; quit"
~/.lftp/rc
, mettez:set cmd:parallel 1 set net:connection-limit 1 set xfer:parallel 1 set ftp:sync-mode true
sudo apt install jmtpfs
sudo usermod -a -G plugdev monlogin sudo usermod -a -G fuse monlogin
sudo jmtpfs -o allow_other répertoire
sudo umount répertoire
export TMOUT=30
et votre terminal se fermera au bout de 30 secondes (sauf si un processus est en cours. Dans ce cas, il attendra la fin du processus).sudo apt install seahorse
et lancez-le.flatpak list
flatpak uninstall --unused
#!/bin/bash # Removes old revisions of snaps # CLOSE ALL SNAPS BEFORE RUNNING THIS set -eu LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' | while read snapname revision; do snap remove "$snapname" --revision="$revision" done
chmod +x remove-old-snaps
sudo ./remove-old-snaps
sudo apt install apache2 php7.2 libapache2-mod-php7.2
/var/www/html/
.sudo apt install php7.2-zip php7.2-xml php7.2-gd php7.2-curl php7.2-mbstring php7.2-sqlite3 php7.2-imagick php7.2-intl sudo phpenmod intl sudo a2enmod rewrite sudo service apache2 restart
/etc/apache2/apache2.conf
, dans la section <Directory /var/www/>
, remplacez AllowOverride None
par AllowOverride All
..htaccess
contenant: php_value memory_limit 2048M
/tmp
) se vide tout seul à chaque redémarrage, mais pas le cache d'impression de cups: Tout ce que vous avez imprimé s'accumule dans /var/cache/cups
. Pour le vider faites:sudo service cups stop sudo rm -r /var/cache/cups/ sudo service cups start
sudo apt install aptitude sudo apt install MonPaquet
par2 c -r10 protection *
-R
si vous voulez aussi prendre en compte les sous-répertoires.par2 v protection.par2
par2 r protection.par2
error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
apt-file
:sudo apt install apt-file
sudo apt-file update
>apt-file search libcrypto.so.1.0.0 google-earth-pro-stable: /opt/google/earth/pro/libcrypto.so.1.0.0 libssl1.0.0: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
sudo apt install libssl1.0.0
/boot/grub/grub.cfg
, ajouter l'option fsck.mode=skip
.locales=fr_FR.UTF-8 keyboard-layouts=fr
GRUB_TIMEOUT
que vous avez mis dans /etc/default/grub
? Essayez GRUB_RECORDFAIL_TIMEOUT
à la place (suivi d'un sudo update-grub
).xinput list
xinput disable "AT Translated Set 2 keyboard"
xinput enable "AT Translated Set 2 keyboard"
System.Exception: Magic number is wrong: 542
, lancez le programme comme suit:export 'TERM=roxterm' && ./LeProgramme.bin
printer-driver-*
. Par exemple, installez le paquet printer-driver-escpr
pour les imprimantes Epson (qui n'est pas installé par défaut).