Les infos de la batterie sont là :
/sys/class/power_supply/BAT0/...

Script qui affiche une image lorsque la batterie est faible :
$ vi ~/Scripts/test_batterie.sh

#!/bin/sh

energy=$(cat /sys/class/power_supply/BAT0/energy_now)

if [ $energy -lt 11000000 ]; then
    i3-msg -s $(find /run/user/1000/i3 -name "ipc-socket.*") 'exec feh /usr/local/share/images/batterie_faible.jpeg'
fi

 
A noter :
Le socket i3 sur mon système n’est pas à l’endroit par défaut.
Commande pour le trouver :
# find /run/user/1000/i3 -name "ipc-socket.*"
(1000 est le numéro de l’utilisateur qui a ouvert la session X)

Lancer le script via la crontab :
# vi /etc/crontab

0-59/5 * * * * fred    sh /home/fred/Scripts/test_batterie.sh > /dev/null 2>&1

 
Image à mettre dans /usr/local/share/images/batterie_faible.jpeg :
batterie_faible

Créer une image ISO d’un cdrom :

Vérifier que le cdrom n’est pas monté :
# mount
ou :
# ls -al /media/cdrom0

Créer l’image iso :
# dd if=/dev/sr0 of=mon_image.iso bs=2048 conv=sync,notrunc

Voir le contenu d’une image ISO :

Créer un répertoire :
# mkdir -p /media/iso

Monter l’image :
# mount mon_image.iso /media/iso

Voir le contenu :
# ls -al /media/iso

Installer le détecteur de température :
# apt-get install lm-sensors

Visualiser les températures :
# sensors

Paramétrer le système :
# sensors-detect
(Répondre “yes” à la dernière question)

Charger les modules sans redémarrer :
# /etc/init.d/kmod start

Valider les nouvelles limites :
# sensors -s

Télécharger vlc-x.tar.xz sur le site officiel https://www.videolan.org/vlc/download-sources.html

Extraire le fichier :
# tar -xf vlc-x.tar.xz

Installer dépendances supplémentaires :
# apt-get install lua5.2 liblua5.2-dev libdbus-1-dev liblivemedia-dev libdc1394-22-dev libavc1394-dev libzvbi-dev libdvdread-dev libbluray-dev libopencv-dev libsmbclient-dev libssh2-1-dev libcddb2-dev libsidplay2-dev libvncserver-dev libfreerdp-dev libmad0-dev liba52-0.7.4-dev libfaad-dev libtwolame-dev libxcb-composite0-dev libkate-dev libxcb-xv0-dev libfluidsynth-dev libchromaprint-dev libdca-dev libxcb-randr0-dev libfribidi-dev libupnp-dev libcaca-dev libva-dev libmpeg2-4-dev libudev-dev libmtp-dev libxml2-dev libass-dev libsamplerate0-dev libxcb-keysyms1-dev librsvg2-dev libpostproc-dev libspeex-dev libopusfile-dev libtheora-dev libdirac-dev libschroedinger-dev

Configurer l’installation :
# ./configure
Permettre l’utilisation de Vlc en tant que root :
# ./configure --enable-run-as-root

Installer :
# make
# make install

Insérer la clef et trouver le nom du device :
# dmesg

Créer un container local :
# mkdir -p /media/usb

Monter la clef :
# mount /dev/sdbx /media/usb

Démonter la clef :
# umount /media/usb

Scanner la plage ip :
# nbtscan 192.168.1.0/24

Afficher les partages disponibles :
# smbclient -L [nom du poste]

Installer cifs :
# apt-get install cifs-utils

Créer un container local :
# mkdir -p /media/partage

Se connecter :
# mount -t cifs //192.168.1.x/nom_du_partage /media/partage

Besoin d’un mot de passe ? :
# mount -t cifs -o username=USER,password=PASS //192.168.1.x/nom_du_partage /media/partage

Ajouter l’option “mfsymlinks” pour la création de liens symboliques :
# mount -t cifs -o username=USER,password=PASS,mfsymlinks //192.168.1.x/nom_du_partage /media/partage

 

Déconnecter le partage :
# umount /media/partage

Method 1: PIPED while-read loop

#!/bin/bash
FILENAME=$1
count=0
cat $FILENAME | while read LINE
do
       let count++
       echo "$count $LINE"
done

echo -e "\nTotal $count Lines read"

 

Method 2: Redirected “while-read” loop

#!/bin/bash
FILENAME=$1
count=0

while read LINE
do
      let count++
      echo "$count $LINE"

done < $FILENAME

echo -e "\nTotal $count Lines read"

 

Method 3:while read LINE Using File Descriptors

#!/bin/bash
FILENAME=$1
count0=
exec 3<&0
exec 0< $FILENAME

while read LINE
do
        let count++
        echo "$count $LINE"
done

exec 0<&3
echo -e "\nTotal $count Lines read"

 

Method 4: Process file line by line using awk

#!/bin/bash
FILENAME=$1

awk '{kount++;print  kount, $0}
     END{print "\nTotal " kount " lines read"}' $FILENAME

 

Time Comparison

# du -h bigfile.txt
70M     bigfile.txt
# wc -l bigfile.txt
900000 bigfile.txt

 

# time ./method1.sh bigfile.txt >/dev/null
real    6m2.911s
user    2m58.207s
sys     2m58.811s

# time ./method2.sh bigfile.txt > /dev/null
real    2m48.394s
user    2m39.714s
sys     0m8.089s

# time ./method3.sh bigfile.txt > /dev/null
real    2m48.218s
user    2m39.322s
sys     0m8.161s

# time ./method4.sh bigfile.txt > /dev/null
real    0m2.054s
user    0m1.924s
sys     0m0.120s

 

Source de cet article : http://www.bashguru.com/2010/05/how-to-read-file-line-by-line-in-shell.html
(Article complet avec explications, mais aussi plein de pubs^^)

Installer Apache :
# apt-get install apache2

Installer Mysql :
# apt-get install mysql-server

Installer PHP :
# apt-get install php5 php5-mysql

Créer une base :
# mysql -uroot -p
mysql> create database BASE;
mysql> grant select,insert,update,delete,create,drop,alter on BASE.* to USER@localhost identified by 'PASS';
mysql> flush privileges;

Télécharger et installer WordPress :
$ cd /var/www
$ curl -O wordpress.org/latest.tar.gz
$ tar -xvzf latest.tar.gz
$ mv wordpress/ monsite/
$ cd

Mettre à jour le fichier wp-config :
$ vi /var/www/monsite/wp-config.php

define('WP_HOME','http://monsite.lan/');
define('WP_SITEURL','http://monsite.lan/');
define('DB_NAME', 'BASE');
define('DB_USER', 'USER');
define('DB_PASSWORD', 'PASS');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', 'utf8_general_ci');
define('WPLANG', 'fr_FR');

 
Configurer Apache :
# vi /etc/apache2/sites-available/monsite.conf

<VirtualHost *:80>

    ServerAdmin webmaster@localhost
    ServerName monsite.lan
    DocumentRoot /var/www/monsite
    DirectoryIndex index.php
    
    <Directory /var/www/monsite/>
        Options FollowSymLinks
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/monsite.error.log
    CustomLog ${APACHE_LOG_DIR}/monsite.access.log combined

</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

 
Activer le virtualhost :
# a2ensite monsite.conf
# a2enmod rewrite.load
# a2enmod headers.load
# /etc/init.d/apache2 restart

Renseigner le DNS local :
# vi /etc/hosts
127.0.0.1 monsite.lan