meta données pour cette page
Astuces sur les systèmes (GNU/Linux)
Espaces disques
duc index -Hxpd /home/btatu/srv.idx /srv duc ui -d /home/btatu/srv.idx /srv
Les droits de fichiers/dossiers
- Pour les fichiers :
find / -type -f -perm -o+w
- Pour les dossiers :
find / -type -d -perm -o+w
- Changer les droits de plusieurs fichiers (récursif):
find -type [-f|-d] -exec chmod 640 {} \;
- Le sticky bit :
ls -lah /tmp/ drwxrwxrwt 1 root root 844 févr. 12 14:47 .
Le bit 't' ou sticky bit est un droit particulier qui permet à n'importe quel utilisateur d'écrire dans le répertoire avec la restriction que seul le propriétaire du fichier peut le modifier et le supprimer.
- Lister les fichiers avec les droits suid :
find ~ -type f -perm -4000
- Lister les fichiers avec les droits guid :
find ~ -type f -perm -2000
- Réparer en masse des liens symboliques :
find -L /path/to/dir/ -xtype l -exec ls -al {} \;
- Lister les fichiers qui ont été modifier durant les 60 dernière minutes :
find / not path '/sys*' not path '/proc*' mmin 60
- Masque de création de fichiers appliqué pour l'utilisateur courent :
umask 077 . touch test ls -lah -rw------- 1 bruno bruno 0 févr. 12 15:11 test
- Lister les fichier modifié il y a moins de 10 minutes :
find . -maxdepth 1 -mmin -10
- Lister les fichier dont il ont été modifier il y a moins de 48 heures:
find . -mtime +1
- Lister les fichiers dont l'utilisateur à le droit d'écriture :
find . -type f -perm -u=w
- Supprimer les fichiers cachés :
find -type f -name '.*' -exec rm {} \;
- Supprimer tous les répertoires vides :
find . -type d -empty -print -exec rmdir -f {} \;
Option Signification:
-name Recherche par nom de fichier. -type Recherche par type de fichier. -user Recherche par propriétaire. -group Recherche par appartenance à un groupe. -size Recherche par taille de fichier. -atime Recherche par date de dernier accès. -mtime Recherche par date de dernière modification. -ctime Recherche par date de création. -perm Recherche par autorisations d'accès. -links Recherche par nombre de liens au fichier.
Ou même la signification précise :
find . -mtime +0 # recherche des fichiers modifiés depuis plus de 24 heures find . -mtime 0 # trouver des fichiers modifiés au cours des 24 dernières heures uniquement find . -mtime -1 # recherche des fichiers modifiés il y a moins d'un jour (idem que -mtime 0) find . -mtime 1 # recherche les fichiers modifiés entre 24 et 48 heures il y a
Lister le poids des dossiers
du -h -d 1 |grep -v "^0" |sort -h -r
Changer les programmes par défaut
update-alternatives --config x-window-manager update-alternatives --config x-session-manager update-alternatives --config editor update-alternatives --list python update-alternatives --remove python /usr/bin/python2.7 update-alternatives --install /usr/bin/python python /usr/bin/python3.7 1
Convertir du mkv à Webm
ffmpeg -i input.mkv -c:v libvpx -qmin 0 -qmax 50 -crf 10 -b:v 2M -c:a libvorbis output.webm
Convertir du mkv à mp3
find . -type f -name "*.mkv" -exec bash -c 'FILE="$1"; ffmpeg -i "${FILE}" -vn -c:a libmp3lame -y "${FILE%.mkv}.mp3";' _ '{}' \;
Enregistrer son écran et audio
ffmpeg -f alsa -channels 1 -sample_rate 44100 -i hw:4 -f x11grab -s 1920x1080 -framerate 24 -probesize 42M -i :0.0+0,0 -preset ultrafast -pix_fmt yuv420p camera1.mp4
ffmpeg -threads auto -f x11grab -s 1280x800 -i :0.0+0,0 -c:v libvpx -vpre 720p conf.webm
Capturer une entrée vidéo (webcam)
Liston les formats supportés:
v4l2-ctl -list-formats-ext -d /dev/video0
Affichons la sortie de la webcam:
mpv av://v4l2:/dev/video0 --untimed --profile=low-latency
On peut utiliser son fichier de configuration : ~/.config/mpv/input.conf
Fusionner enregistrement audio et vidéo
Admettons que la vidéo est ok mais que l'audio est trop grand où l'on souhaite récupérer la partie entre 6m4s et 31m50s :
ffmpeg -i confbridge.wav -ss 00:06:04.0 -t 00:31:50.0 output.wav ffmpeg -i video-obs.mkv -i output.wav -map 0:0 -map 1:0 output-file-name.webm
Gérer un disque
Vérifier les commandes… (sans doute fausse)
- Table de partition :
mmls partition.img
- Lister les fichiers de la partition :
fls -o 258 -r partition.img
- Récupérer depuis un inode :
icat -o 2018 -r partition.img 246775 > rev.txt
Modifier le comportement de l'écran
- Résolution :
On recherche la résolution que l'on souhaite si elle est présente:
DISPLAY=:0 gnome
Si ce n'est pas le cas, alors on indique la taille de que l'on souhaite avec sa fréquence de rafraichissement :
cvt 2560 1080 60
On copiera la sortie pour la pousser sur l'autre programme :
xrandr --newmode "2560x1080_60.00" 230.00 2560 2720 2992 3424 1080 1083 1093 1120 -hsync +vsync
On indique que cette résolution rejoin le périphérique en question:
xrandr --addmode HDMI-1 "2560x1080_60.00"
- brightness :
xrandr --output eDP-1 --brightness 1
- Gamma :
xgamma -gamma 1 xrandr --output <outputname> --gamma 0.5:1.0:1.0
- Allumer un ecran :
xrandr -d :0 --output DP-1 --auto
- Positionner les écrans :
xrandr --output LVDS1 --auto --output HDMI1 --auto --right-of LVDS1
- Changer la lumière de l'écran :
echo 10 > /sys/class/backlight/intel_backlight/brightnes
aperçu des tâches avec top (htop)
- Les processus les plus gourmands en processeurs ou en mémoire
top -o %CPU top -o %MEM
- Afficher uniquement les processus d'un utilisateur
top -u www-data
- Définir le temps de rafraîchissement à 1,5 secondes
top -d 1,5
- Quitter l'interface après 10 secondes
top -n 10
- Admettons que l'on veut pendant 30 secondes observer l'activité de l'utilisateur toto
top -u toto -n 30 -d 1,5
- Liste des commandes disponible depuis l'interface :
<x> = Hilight / illuminé la colonne correspondant à l'option précédemment sélectionné <c> = Afficher le chemin absolue de la commande <d> = Modifier le temps du rafraîchissement de la page <k> = kill le processus par son ID
Avoir des infos sur le procéssus en cours d'utilisation
ps -ef ps -u $USER ps -u $USER -o cmd ps -eo euser,pid,tty,time,cmd
Afficher un message dans un autre tty
tail -f /var/log/messages > /dev/tty1 &
Modifier le rotation des ventilateurs (fan)
apt install lm-sensors fancontrol
sensors-detect service module-init-tools restart pwmconfig
service fancontrol start
Modifier la fréquence système
cpufreqd cpufrequtils cpufreq-info
cpufreq-set --governor powersave cpufreq-set --max 1.20Ghz
Voir en temps réel le changement des fréquence :
cat /proc/cpuinfo |grep "cpu MHz"
Gestion audio
Il y a moyen d'utiliser pavucontrol. Sinon il existe amixer du paquet alsamiwergui. Par exemple pour activer le son, il faudra lancer la commande :
amixer sset 'Master' on
Pour lister les différentes sources :
amixer scontrols
Gestion de plusieurs écrans
- Mettre le second écran à gauche de l'écran principal :
xrandr --output DVI1 --right-of HDMI1 --auto
- Lister tous les écrans :
xrandr
Ceux qui ont une étoiles, sont ceux qui sont actif
Cloner son disque
- On peut copier bit par bit ainsi :
ddrescue -d -f -r3 /dev/sda /mnt/clone.disk
A noté qu'il vaut mieux l'enregistré sur un disque dont la taille est supérieure au disque sélectionné pour le clonage.
Lancer un programmes au bout de 10 minutes
at now + 10 minutes > poweroff
Puis faire : CRTL+D
Lister les erreurs au boot
dmesg --level=err
Changer la date / l'heure
date --set 1998-11-02 date --set 21:08:0
Désactiver la veille
nano /etc/systemd/logind.conf HandleLidSwitch=ignore
Historique de connexion
last
Vider le swap
swapoff -a && swapon -a
Vérifier que le swap soit vidé avec cette commande :
swapon -s
Nom de fichier Type Taille Utilisé Priorité /dev/sda1 partition 2047996 0 -1
Vider le cache de la RAM
Cette astuce peut contribuer à libérer la mémoire de Linux sans redémarrage.
Note: Il s'agit d'une opération non-destructive.
- Pour libérer pagecache:
#> sync; echo 1 > /proc/sys/vm/drop_caches
- Pour libérer dentries et inodes:
#> sync; echo 2 > /proc/sys/vm/drop_caches
- Pour libérer pagecache, dentries et inodes:
#> sync; echo 3 > /proc/sys/vm/drop_caches
- Remise Par défaut :
#> sync; echo 0 > /proc/sys/vm/drop_caches
La commande sed
- Ajouter une ligne en fin de fichier :
sed -i '$a\php_admin_value[upload_max_filesize] = 64M' pool.d/*
- Visualiser le remplacement d'une chaine (avant par après) :
sed 's/avant/apres/g' fichier.txt
- Remplacer et enregistrer le remplacement d'une chaine (avant par après) :
sed -i 's/avant/apres/g' fichier.txt
- Afficher uniquement les lignes de 5 à 10 d'un fichier :
sed '5,10p' -n fichier.txt
- Récupérer la ligne ayant le mot “recherche” (fonction similaire à grep):
sed -n '/recherche/p' fichier.txt
- Récupérer un mot dans une phrase
cat fichier.txt |sed "s/.*Table '.\(.*\)'.*/\1/"
Conserver un programme en arrière plan
- Avec Screen
Installer le paquet en question :
apt-get install screen
Lancer une nouvelle fenêtre :
screen -S NOM_DE_LA_FENETRE
Pour s'en détacher, il faut faire avec les touches du clavier : ctrl et a puis d
Pour re-ouvrir la fenêtre en question :
screen -x NOM_DE_LA_FENETRE
Lister les fenêtres actives :
screen -r
Midnight commander
Ce logiciel permet de remplacer nautilus en mode console.
+ = "sélection de fichiers avec un filtre" <insert> = "sélection de plusieurs fichiers" <altgr> + i = "déselections de plusieurs fichiers" x = "inverse la selection" <ctrl> + r = "reload" <ctrl> + <enter> = "apparait dans le shell" <esc> + <tab> = "completion" <altgr> + <\> = "menu raccourcis vers les répertoires courants" <alt> + <shift> + ? = "rechercher des fichiers"
On peut visualiser le contenu d'un fichier compressé avec la touche F2
Gestion des paquets
- Liste les fichiers installé par le paquet :
dpkg-query -L $PAQUET
- Information sur la version des paquets disponible :
apt-cache policy $PAQUET
Gestion des partitions
dumpe2fs -h /dev/sda2
Autoriser l'usage de la sourie et du clavier distant
Installer x2x sur chacun des machines:
yay -S x2x apt install x2x
Configurer SSH en éditant /etc/ssh/sshd_config :
X11Forwarding yes
On relance SSH pour ensuite executer la commande suivante qui aura pour principe de se connecter à la machine distante en prositionnant l'écran à l'est
ssh -YXC 192.168.0.70 'x2x -east -to :0'
Convertir un fichier PDF en livret
Il y a besoin de ces dépendances :
apt install pdfjam texlive-latex-recommended
Puis mettre à l'orientation paysage en mettant les pages rangé par deux:
pdfjam --nup 2x1 Flyer\ La\ Base_V3.pdf --outfile /tmp/out.pdf --landscape
Gestion des clés apt
apt-key adv --refresh-keys --keyserver keyserver.ubuntu.com
apt-key list |grep expi
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 879FC61BE78F1DC0
Déplacer des datadir
- Exemple de mysql :
rsync -aP /var/log/mysql/ /home/mysql-binlog systemctl status mysql systemctl stop mysql rsync -aP /var/log/mysql/ /home/mysql-binlog mv -i /var/log/mysql/ /var/log/mysql.old ln -s /home/mysql-binlog/ /var/log/mysql systemctl start mysql systemctl status mysql
Autres
- Liste en temps reel les commandes lancé depuis l'espace utilisateur
sysdig -c spy_users
- Copier un fichier en appliquant les droits dessus :
install -m 700 /source.txt /destination.txt
- Télécharger des vidéos youtube dont les TV comprennent les encodages :
youtube-dl -f 137+140 --merge-output-format=mkv --add-metadata "https://www.youtube.com/watch?v=k98esvB9E40&index=1&list=PLRVWztDBSD_Jh0PwXtJ0wBP0TLtHga1_Y"
- Découper et ordonner des données ?
cat liste.txt | gawk '{ split($0, a, "-"); res = substr(a[1], length(a[1]), 1); if (res == 1) white++; if (res == 0) black++; if (res == 2) draw++;} END { print NR, white, black, draw }'
- Augmenter la luminausité d'un écran
echo 50 > /sys/class/backlight/adp-backlight/birghtness