134 liens privés
Installation de Zsh :
| ========
$ sudo aptitude install zsh
| ========
Vérifier la version :
| ========
$ zsh --version
zsh 5.0.7 (x86_64-pc-linux-gnu)
| ========
Mettre Zsh comme shell par défaut :
| ========
$ chsh -s /usr/bin/zsh
ou mieux :
$ chsh -s $(which zsh)
| ========
Télécharger et installer Oh-my-zsh :
| ========
$ sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
--2015-07-24 12:13:28-- https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh
Résolution de raw.github.com (raw.github.com)… 23.235.43.133
Connexion à raw.github.com (raw.github.com)|23.235.43.133|:443… connecté.
requête HTTP transmise, en attente de la réponse… 301 Moved Permanently
Emplacement : https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh [suivant]
--2015-07-24 12:13:29-- https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh
Résolution de raw.githubusercontent.com (raw.githubusercontent.com)… 23.235.43.133
Connexion à raw.githubusercontent.com (raw.githubusercontent.com)|23.235.43.133|:443… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 2033 (2,0K) [text/plain]
Sauvegarde en : « STDOUT »
- 100%[==================================================================>] 1,99K --.-KB/s ds 0s
2015-07-24 12:13:29 (67,7 MB/s) — envoi vers sortie standard [2033/2033]
Cloning Oh My Zsh...
Clonage dans '/home/simon/.oh-my-zsh'...
remote: Counting objects: 660, done.
remote: Compressing objects: 100% (531/531), done.
remote: Total 660 (delta 15), reused 508 (delta 4), pack-reused 0
Réception d'objets: 100% (660/660), 372.32 KiB | 0 bytes/s, fait.
Résolution des deltas: 100% (15/15), fait.
Vérification de la connectivité... fait.
Looking for an existing zsh config...
Found ~/.zshrc. Backing up to ~/.zshrc.pre-oh-my-zsh
Using the Oh My Zsh template file and adding it to ~/.zshrc
Copying your current PATH and adding it to the end of ~/.zshrc for you.
_ / / ___ _ ____/ /_
/ \/ \ / ` \/ / / / / / / / \
/ // / / / / / / / / / / // / / /_( ) / / /
___// // // // //\, / /_/// //
// ....is now installed!
Please look over the ~/.zshrc file to select plugins, themes, and options.
p.s. Follow us at http://twitter.com/ohmyzsh.
p.p.s. Get stickers and t-shirts at http://shop.planetargon.com.
| ========
Installation sur une Debian 8 :
Installer les setuptools de Python ( pour avoir easy_install )
| ========
$ sudo aptitude install python-setuptools
| ========
Installer pip :
| ========
$ sudo easy_install pip
Searching for pip
Reading https://pypi.python.org/simple/pip/
Best match: pip 7.1.0
Downloading https://pypi.python.org/packages/source/p/pip/pip-7.1.0.tar.gz#md5=d935ee9146074b1d3f26c5f0acfd120e
Processing pip-7.1.0.tar.gz
Writing /tmp/easy_install-NyGRPr/pip-7.1.0/setup.cfg
Running pip-7.1.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-NyGRPr/pip-7.1.0/egg-dist-tmp-Hnm6hi
warning: no previously-included files found matching '.coveragerc'
warning: no previously-included files found matching '.mailmap'
warning: no previously-included files found matching '.travis.yml'
warning: no previously-included files found matching 'pip/_vendor/Makefile'
warning: no previously-included files found matching 'tox.ini'
warning: no previously-included files found matching 'dev-requirements.txt'
no previously-included directories found matching '.travis'
no previously-included directories found matching 'docs/_build'
no previously-included directories found matching 'contrib'
no previously-included directories found matching 'tasks'
no previously-included directories found matching 'tests'
Adding pip 7.1.0 to easy-install.pth file
Installing pip script to /usr/local/bin
Installing pip2.7 script to /usr/local/bin
Installing pip2 script to /usr/local/bin
Installed /usr/local/lib/python2.7/dist-packages/pip-7.1.0-py2.7.egg
Processing dependencies for pip
Finished processing dependencies for pip
| ========
Chercher avec pip :
| ========
$ pip search jrnl
klink - Klink is a simple and clean theme for creating Sphinx docs, inspired by jrnl
jrnl - A command line journal application that stores your journal in a plain text file
| ========
Installer jrnl avec pip :
| ========
$ sudo pip install jrnl
Collecting jrnl
Downloading jrnl-1.9.8.tar.gz
Collecting parsedatetime>=1.2 (from jrnl)
Downloading parsedatetime-1.5-py2-none-any.whl (50kB)
100% |████████████████████████████████| 53kB 1.1MB/s
Collecting pytz>=2013b (from jrnl)
Downloading pytz-2015.4-py2.py3-none-any.whl (475kB)
100% |████████████████████████████████| 475kB 771kB/s
Requirement already satisfied (use --upgrade to upgrade): six>=1.6.1 in /usr/lib/python2.7/dist-packages (from jrnl)
Collecting tzlocal>=1.1 (from jrnl)
Downloading tzlocal-1.2.tar.gz
Collecting keyring>=3.3 (from jrnl)
Downloading keyring-5.3.zip (87kB)
100% |████████████████████████████████| 90kB 1.0MB/s
Collecting python-dateutil==1.5 (from jrnl)
Downloading python-dateutil-1.5.tar.gz (233kB)
100% |████████████████████████████████| 237kB 1.3MB/s
Installing collected packages: parsedatetime, pytz, tzlocal, keyring, python-dateutil, jrnl
Running setup.py install for tzlocal
Running setup.py install for keyring
Running setup.py install for python-dateutil
Running setup.py install for jrnl
Successfully installed jrnl-1.9.8 keyring-5.3 parsedatetime-1.5 python-dateutil-1.5 pytz-2015.4 tzlocal-1.2
| ========
Plus qu'à apprendre les commandes par cœur ( voir "$ jrnl --help" ), trouver un moyen pour que toutes les commandes utilisant jrnl ne soit pas stockées dans l'historique et puis synchroniser ça entre les différentes machines.
[Edit 03/11/2015:
J'ai finalement commencé à utilisé "jrnl". Voici quelques commandes de base. Pour éditer les notes, il faut ajouter un éditeur dans ~/.jrnl_config :
| ========
$ cat .jrnl_config
{
"default_hour": 9,
"timeformat": "%Y-%m-%d %H:%M",
"linewrap": 79,
"encrypt": true,
"editor": "vim",
"default_minute": 0,
"highlight": true,
"journals": {
"default": "/home/simon/jrnl/journal.txt"
},
"tagsymbols": "@"
}
| ========
Initialisation du journal (chiffré) :
| ========
$ jrnl now: Titre. Contenu.
Path to your journal file (leave blank for ~/journal.txt):
~/jrnl/journal.txt
Enter password for journal (leave blank for no encryption):
Do you want to store the password in your keychain? [Y/n]
Journal will be encrypted.
[Entry added to default journal]
| ========
Écrire du contenu pour aujourd'hui (à 9am par défaut):
$ jrnl today: Titre. Contenu.
Écrire du contenu pour aujourd'hui à 8pm:
$ jrnl today at 8pm: Titre. Contenu.
Écrire du contenu pour "maintenant" :
$ jrnl now: Titre. Contenu.
OU, simplement :
$ jrnl Titre. Contenu.
Voir le(s) journal(aux):
$ jrnl -ls
Voir le dernier ajout dans le journal :
$ jrnl -n 1
Éditer le dernier ajout dans le journal :
$ jrnl -n 1 --edit
Éditer toutes les notes de 2015 :
$ jrnl -until 2015 --edit
Pour supprimer une note, il faut simplement l'éditer et tout effacer.
Pour ajouter un tag, il suffit de mettre un arobase devant :
$ jrnl Test des @tags.
[Entry added to default journal]
Afficher les notes correspondantes au tag "@tags" :
$ jrnl @tags
2015-11-04 11:19 Test des @tags.
Supprimer toutes les notes contenant le tag "@tags" :
$ jrnl @tags --edit
(et tout effacer avant d'enregistrer.)
[Edit 03/11/2015:
Pour empêcher l'historisation des commandes "jrnl", dans Zsh, on rajoute deux lignes dans le fichier "~/.zshrc" :
| ========
HIST_IGNORE_SPACE="true"
alias jrnl=' jrnl'
| ========
Dans Bash, il faut modifier "~/.bashrc" :
| ========
export HISTCONTROL=ignorespace
alias jrnl=' jrnl'
| ========
Comment utiliser chroot pour une application graphique. Merci Kevin pour le lien.
A comprendre absolument. J'ai seulement l'impression que je vais devoir recommencer toute l'installation de mes serveurs après avoir bien compris ça...
[Edit: Résumé pour créer un chroot et s'y "connecter" :
| ========
$ sudo debootstrap --include=locales-all jessie nom_du_chroot http://ftp.be.debian.org/debian
$ sudo chroot nom_du_chroot
$ sudo chroot nom_du_chroot /bin/bash
| ========
Une liste d'outil pour la ligne de commande. Il y a plein de trucs à prendre là-dedans, à lire attentivement !
Petit tutoriel sur la commande lsof qui permet de lister les ports ouverts et les processus les utilisant.
J'oublie toujours comment remonter dans un terminal non-graphique :
| ========
Shift + PageUp/PageDown se déplacer de haut en bas, comme avec la barre de défilement d'un terminal graphique.
| ========
Les autres astuces sont toujours bonnes à prendre pour un petit rappel. :-)
J'ai voulu aspirer les one-piece de http://lel-scan.com (pour ne pas être forcé de les lire en ligne). J'ai utilisé cette commande :
$ wget -r -linf -k -p -E http://lel-scan.com/mangas/one-piece/
Ça a fait le job mais ça a aussi téléchargé tous les autres mangas du site (j'ai coupé à 38 000 fichiers..). Il y a moyen de mieux faire.
Par exemple, en limitant la profondeur et le type de fichier (juste *.jpg )
$ wget -r -l2 -A.jpg -k -p -E http://lel-scan.com/mangas/one-piece/
(...)
Terminé — 2015-05-04 08:22:31 —
Temps total effectif : 13m 3s
Téléchargés : 3196 fichiers, 609M en 11m 8s (933 KB/s)
0 fichiers convertis en 0 secondes.
On peut virer -k (pour convertir les liens et avoir une navigation locale), -p (téléchrge tout ce qui est nécessaire pour l'affichage d'une page) et -E (modifier les extensions en .html). Au passage, je modifie -A (pour que ce soit plus propre).
$ wget -r -l2 -A "*.jpg" http://lel-scan.com/mangas/one-piece/
(...)
Terminé — 2015-05-04 08:43:18 —
Temps total effectif : 13m 1s
Téléchargés : 3178 fichiers, 609M en 11m 9s (933 KB/s)
Je suis surpris de voir que c'est à peine plus rapide...
Enfin, on peut télécharger juste un chapitre :
$ wget -r -l1 -A "*.jpg" http://lel-scan.com/mangas/one-piece/784/
(...)
Terminé — 2015-05-04 08:44:33 —
Temps total effectif : 6,4s
Téléchargés : 32 fichiers, 4,6M en 5,1s (934 KB/s)
Je découvre la commande "lsblk" qui permet de lister facilement les partitions du système.
pi@raspberrypi ~ $ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 1 15G 0 disk
└─sda1 8:1 1 15G 0 part /media/usb-pi
mmcblk0 179:0 0 7,4G 0 disk
├─mmcblk0p1 179:1 0 56M 0 part /boot
└─mmcblk0p2 179:2 0 7,3G 0 part /
J'ai chipoté pour pouvoir extraire la liste des lignes qui sont dans le fichier1 et pas dans le fichier2.
La commande utilisée finalement :
$ diff -abBiy fichier1.txt fichier2.txt | grep "<$" | sed -e 's/[ \t]*<$//' >> fichier_diff.txt
Je copie les arguments utiles de la commande "wc" (word count) :
| ========
wc -l <nom_du_fichier> # affiche le nombre de lignes
wc -c <nom_du_fichier> # affiche le nombre de bytes
wc -m <nom_du_fichier> # affiche le nombre de caractères
wc -L <nom_du_fichier> # indique la longueur de la plus longue ligne
wc -w <nom_du_fichier> # affiche le nombre de mots
| ========
Pour compter les lignes de tous les fichiers .txt dans un dossier :
| ========
$ wc -l *txt
4539 fichier1.txt
4539 fichier2.txt
976 fichier3.txt
1842 fichier4.txt
2579 fichier5.txt
1603 fichier6.txt
4539 fichier7.txt
20617 total
| ========
En plus, voici une commande pour compter les lignes récursivement :
| ========
$ find . -name "*.txt" | xargs wc -l
| ========
(source : http://fgallaire.flext.net/compter-recursivement-nombre-lignes-avec-wc-recursif/ )
Suite au problème de corruption de carte SD (voir http://links.simonlefort.be/?sL_3hg ), j'ai regardé la place que prennent tous les dossiers :
| ========
$ sudo du -sh /media/548da502-ebde-45c0-9ab2-de5e2431ee0b/*
[sudo] password for simon:
5,2M /media/548da502-ebde-45c0-9ab2-de5e2431ee0b/bin
4,0K /media/548da502-ebde-45c0-9ab2-de5e2431ee0b/boot
8,0K /media/548da502-ebde-45c0-9ab2-de5e2431ee0b/dev
4,3M /media/548da502-ebde-45c0-9ab2-de5e2431ee0b/etc
9,9M /media/548da502-ebde-45c0-9ab2-de5e2431ee0b/home
53M /media/548da502-ebde-45c0-9ab2-de5e2431ee0b/lib
16K /media/548da502-ebde-45c0-9ab2-de5e2431ee0b/lost+found
4,0K /media/548da502-ebde-45c0-9ab2-de5e2431ee0b/media
4,0K /media/548da502-ebde-45c0-9ab2-de5e2431ee0b/mnt
36M /media/548da502-ebde-45c0-9ab2-de5e2431ee0b/opt
4,0K /media/548da502-ebde-45c0-9ab2-de5e2431ee0b/proc
16K /media/548da502-ebde-45c0-9ab2-de5e2431ee0b/root
52K /media/548da502-ebde-45c0-9ab2-de5e2431ee0b/run
6,2M /media/548da502-ebde-45c0-9ab2-de5e2431ee0b/sbin
4,0K /media/548da502-ebde-45c0-9ab2-de5e2431ee0b/selinux
4,0K /media/548da502-ebde-45c0-9ab2-de5e2431ee0b/srv
4,0K /media/548da502-ebde-45c0-9ab2-de5e2431ee0b/sys
12K /media/548da502-ebde-45c0-9ab2-de5e2431ee0b/tmp
1,4G /media/548da502-ebde-45c0-9ab2-de5e2431ee0b/usr
376M /media/548da502-ebde-45c0-9ab2-de5e2431ee0b/var
| ========
Tout un tas de commandes bash.
(Et la suite : http://matutine.cmoi.cc/posts/festival-de-commandes-bash-en-une-ligne-suite.html )
Cet alias permet de relancer la dernière commande avec "sudo" devant. Génial. :-)
Un navigateur de fichiers pour le terminal. Sympa! :-) Il y a toute une série de raccourcis dans le style de VIM.
( via http://dooby.fr/links/?NykhQA , http://shaarli.fr/my/toto/?-pCG4A et https://famille-michon.fr/links/?srH3lg )
J'essayerai pour supprimer tous les doublons que je traine dans mes dossiers de musique...
Plutôt que d'avoir un onglet firefox avec YouTube pour ne finaler écouter que la musique, voici un petit programme qui permet d'écouter la musique directement dans le terminal. On peut aussi regarder les vidéos mais ça ne m'intéresse pas au boulot.
Plusieurs commandes pour voir les dernières tentatives (réussies ou non) de connexions.
ccze est un petit programme pour mettre les logs en couleur et en faciliter la lecture. Intéressant. :-)