$ rfkill list
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
1: sony-wifi: Wireless LAN
Soft blocked: yes
Hard blocked: no
2: sony-bluetooth: Bluetooth
Soft blocked: no
Hard blocked: no
3: phy0: Wireless LAN
Soft blocked: yes
Hard blocked: yes
$ rfkill unblock 1
$ rfkill unblock 3
J'entrepose ici mes découvertes linux, bash, python et java que je souhaite partager et mettre de côté...
mardi 28 août 2012
Linux Mint Cinnamon & wifi
Hier soir j'ai désactivé le Wifi dans la widget près de l'heure. Impossible de le réactiver, même un redémarrage ne fonctionne pas !
La fenêtre "Réseau" dans les préférences montrait un bouton où le mode avion était activé et rien n'y faisait, impossible de rétablir le wifi !!
En attendant la réparation du bug...
lundi 27 août 2012
Linux Mint Cinnamon & Samsung ML-1865
Impossible de faire fonctionner mon imprimante (une Samsung ML-1865) sur mon Sony SVS-1311 où j'ai installé un Linux Mint 13 Cinnamon.
L'imprimante était détectée sur le réseau mais le modèle indiqué dans le panneau Imprimantes était Samsung ML-1750
Les impressions partaient mais les feuilles sortaient...
Au final, après recherche sur google, je suis tombé sur la page suivante : http://forums.linuxmint.com/viewtopic.php?f=51&t=107026
J'ai ajouté deb http://www.bchemnet.com/suldr/ debian extra dans la liste des dépôts (menu configuration du gestionnaire de paquets Synaptic) et hop !
Un coup de :
On réinstalle l'imprimante et fini les
EDIT : 7 Septembre 2016 les paquets samsungmfp-* ont été remplacés par suld-*
L'imprimante était détectée sur le réseau mais le modèle indiqué dans le panneau Imprimantes était Samsung ML-1750
Les impressions partaient mais les feuilles sortaient...
INTERNAL ERROR - Please use the proper driver
POSITION : 0x0 (0)
SYSTEM : h6fw_5.49/xl_op
LINE : 180
VERSION : SPL 5.49 10-20-2010
Je suis allé sur le site de samsung pour télécharger le driver et l'ai installé... Même problème bien que le modèle indiqué dans le panneau soit mieux : Samsung ML-1860Au final, après recherche sur google, je suis tombé sur la page suivante : http://forums.linuxmint.com/viewtopic.php?f=51&t=107026
J'ai ajouté deb http://www.bchemnet.com/suldr/ debian extra dans la liste des dépôts (menu configuration du gestionnaire de paquets Synaptic) et hop !
Un coup de :
$ su
$ wget -O - http://www.bchemnet.com/suldr/suldr.gpg | apt-key add -- -
$ apt-get install samsungmfp-data samsungmfp-configurator-qt4
samsungmfp-configurator-data samsungmfp-driver
printer-driver-splix
On réinstalle l'imprimante et fini les
INTERNAL ERROR - Please use the proper driver
POSITION : 0x0 (0)
SYSTEM : h6fw_5.49/xl_op
LINE : 180
VERSION : SPL 5.49 10-20-2010
Ouf!EDIT : 7 Septembre 2016 les paquets samsungmfp-* ont été remplacés par suld-*
mercredi 8 août 2012
Bash, pattern substitution
Le manuel bash présente les syntaxes suivantes (voir)
- ${parameter#word} et ${parameter##word} pour supprimer le plus court et le plus long préfix
- ${parameter%word} et ${parameter%%word} pour supprimer le plus court et le plus long suffixe
- ${parameter/pattern/string} pour substituer une chaîne à un pattern.
?(<PATTERN-LIST>) Matches zero or one occurrence of the given patterns
*(<PATTERN-LIST>) Matches zero or more occurrences of the given patterns
+(<PATTERN-LIST>) Matches one or more occurrences of the given patterns
@(<PATTERN-LIST>) Matches one of the given patterns
!(<PATTERN-LIST>) Matches anything except one of the given patterns
D'où des choses zarbies du genre : $ shopt -s extglob
$ v="LE temps PASSE vite"
$ echo ${v//+([[:upper:]])}
temps vite
$ echo ${v%%+([[:lower:]])}
LE temps PASSE
pattern
Bash, templating...
Pour faire un système de templating en bash (par exemple pour du mailing) on peut faire ainsi si l'on souhaite que le modèle soit dans un fichier à part :
$ cat template.txt
<b>Hello '"${firstname}"'</b>
Bye '"${firstname}"'
$ for firstname in luc jeff gwen
> do
> while read line
> do
> eval echo "'$line'"
> done <template.txt
> done
<b>Hello luc</b>
Bye luc
<b>Hello jeff</b>
Bye jeff
<b>Hello gwen</b>
Bye gwen
Avec les Here Documents, cela aurait été plus simple...
bash, affichage en mode intéractif
Dans un script bash, j'ai souhaité afficher un numéro de version lorsque celui-ci est lancé interactivement (ne reçoit pas de données depuis un pipe ou bien une redirection <).
Cela peut-être fait en utilisant l'option -t de la commande test.
Cela peut-être fait en utilisant l'option -t de la commande test.
if [ -t 0 ]; then
echo "Version: $VERSION"
fi
mardi 7 août 2012
bash, lecture ligne à ligne et initialisation variables...
Dans la lignée du post précédent, il est possible de lire ligne à ligne et d'initialiser des variables directement pour des fichiers bien structurés.
Dans le cas d' /etc/password :
Dans le cas d' /etc/password :
$ while IFS=: read user pass uid gid full home shell
> do
> printf "$full -- Pseudo : $user UID : $uid GID : $gid Home : $home Shell : $shell\n"
> done < /etc/passwd
root -- Pseudo : root UID : 0 GID : 0 Home : /root Shell : /bin/bash
daemon -- Pseudo : daemon UID : 1 GID : 1 Home : /usr/sbin Shell : /bin/sh
bin -- Pseudo : bin UID : 2 GID : 2 Home : /bin Shell : /bin/sh
sys -- Pseudo : sys UID : 3 GID : 3 Home : /dev Shell : /bin/sh
bash, boucles for
En bash, on aurait tendance à penser que "for line in $(cat fichier)" renvoie les lignes mais c'est faux car les séparateurs par défaut sont les espaces, tabulations... On itère donc sur la liste des mots...
Pour palier à ce soucis, on peut jouer en modifiant la variable IFS et en la restaurant ensuite.
Cela donne :
C'est quand même moins tordu ;)
A noter, le [[ $line ]] permet de prendre en compte la dernière ligne s'il n'y a pas de retour chariot.
Pour palier à ce soucis, on peut jouer en modifiant la variable IFS et en la restaurant ensuite.
Cela donne :
old_IFS=$IFS
IFS=$'\n'
for line in $(cat fichier)
do
echo "La ligne est : $line"
done
IFS=$old_IFS
Une méthode plus subtile mais tout aussi jolie est d'utiliser read et while... Cela donne maintenant : cat fichier | while read line || [[ $line ]]
do
echo "La ligne est : $line"
done
C'est quand même moins tordu ;)
A noter, le [[ $line ]] permet de prendre en compte la dernière ligne s'il n'y a pas de retour chariot.
mysql, n'afficher que les vraies tables
Lorsque l'on utilise plusieurs bases de données, il arrive que l'on crée des vues d'une base vers une autre base...
La commande "show tables" n'est pas suffisante pour distinguer les tables des vues...
Mais voilà, on peut associer l'option full et compléter d'un where pour récupérer ce que l'on souhaite :
La commande "show tables" n'est pas suffisante pour distinguer les tables des vues...
Mais voilà, on peut associer l'option full et compléter d'un where pour récupérer ce que l'on souhaite :
mysql> show full tables where Table_type='BASE TABLE';
où Table_type peut être :
- BASE TABLE
- VIEW
lundi 6 août 2012
changer d'ordinateur, calculer son amortissement...
Dernièrement, je voulais acheter un ordinateur portable mais je n'arrivais pas à passer le cap...
J'ai eu un macbook blanc que j'ai donné à ma mère...
Le matériel était excellent...
Depuis, il y a eu le passage aux macbook pro au prix de 1250€ (250€ de plus que le macbook que j'avais acheté à l'époque).
Et là, je me dis que c'est trop cher...
Normalement, plus le temps passe plus le prix du matériel technologique baisse (TV, ordis...).
Chez Apple, c'est l'inverse :(
J'ai hésité, hésité... Envie d'un mac mais le cerveau qui dit non...
Et puis... un petit tour sur la page wiki de l'amortissement et la lecture de la méthode softy.
Dans mon cas, si je garde l'ordi (sans pépin 4 ans) :
Finalement, je repasse aux PC...
... et j'attends avec impatience mon Sony VAIO
bye apple...
J'ai eu un macbook blanc que j'ai donné à ma mère...
Le matériel était excellent...
Depuis, il y a eu le passage aux macbook pro au prix de 1250€ (250€ de plus que le macbook que j'avais acheté à l'époque).
Et là, je me dis que c'est trop cher...
Normalement, plus le temps passe plus le prix du matériel technologique baisse (TV, ordis...).
Chez Apple, c'est l'inverse :(
J'ai hésité, hésité... Envie d'un mac mais le cerveau qui dit non...
Et puis... un petit tour sur la page wiki de l'amortissement et la lecture de la méthode softy.
Dans mon cas, si je garde l'ordi (sans pépin 4 ans) :
$ python
>>> prix=1250
>>> nb_annees=4
>>> [prix*x/365 for x in [a * 2.0 / (nb_annees * (nb_annees + 1)) for a in range(nb_annees, 0, -1)]]
[1.36986301369863, 1.0273972602739727, 0.684931506849315, 0.3424657534246575]
>>> prix=850
>>> [prix*x/365 for x in [a * 2.0 / (nb_annees * (nb_annees + 1)) for a in range(nb_annees, 0, -1)]]
[0.9315068493150684, 0.6986301369863014, 0.4657534246575342, 0.2328767123287671]
Soit .44€ de moins par jour pour un PC la première année... Ce qui équivaut tout de même à 160€ la première année. C'est énorme.Finalement, je repasse aux PC...
... et j'attends avec impatience mon Sony VAIO
bye apple...
vendredi 3 août 2012
bash, lister les commandes disponibles
Pour lister les commandes disponibles, on peut utiliser la commande bash intégrée compgen:
- compgen -c liste la liste de toutes les commandes que l'on peut exécuter
- compgen -a liste la liste de tous les alias que l'on peut exécuter
- compgen -b liste la liste de toutes les commandes intégrées (built-in) que l'on peut exécuter
- compgen -k liste la liste de tous les mots clés que l'on peut exécuter (if/then...)
$ compgen -c | cut -c 1 | sort | uniq -c | sort -nr | column
392 p 122 f 61 h 12 k 1 N
359 _ 118 r 37 w 8 V 1 M
222 m 115 i 3 7 6 y 1 G
222 g 114 u 33 j 6 q 1 C
207 s 114 a 30 v 3 [ 1 }
154 x 96 t 25 z 2 X 1 {
143 c 95 b 22 o 2 H 1 ]
131 d 78 n 2 2 2 . 1 !
130 l 77 e 1 4 1 P 1 :
Inscription à :
Articles (Atom)