145 lines
4.3 KiB
Markdown
145 lines
4.3 KiB
Markdown
---
|
|
title: Trucs Et Astuces
|
|
subtitle: Compilation de commandes bien utiles sous linux
|
|
comments: false
|
|
weight: 30
|
|
---
|
|
|
|
## Partager une console avec tmux
|
|
Créer une nouvelle session
|
|
```
|
|
tmux new-session -s shared
|
|
tmux new -s shared
|
|
```
|
|
(`shared` c'est le nom de la session partagée, qu'on peut remplacer par ce qu'on veut.)
|
|
|
|
Rejoindre une session existante
|
|
```
|
|
tmux attach-session -t shared
|
|
tmux a -t shared
|
|
```
|
|
|
|
Pour scroller dans tmux : `Ctrl-b` puis `[`
|
|
Ensuite utiliser les touches habituelles pour scroller (flèches haut/bas, PgUp/PgDn). Et tapper `q` pour quitter le mode scrolling.
|
|
|
|
Créer une autre fenêtre dans une session tmux : `Ctrl-b` puis `c`
|
|
|
|
Passer d'une fenêtre à l'autre : `Ctrl-b` puis `n` (next) ou `Ctrl-b` puis `p` (previous) ou `Ctrl-b` puis `w` (windows list)
|
|
|
|
Par défaut les fenêtres prennent le nom du programme en cours d'execution. Mais on peut leur fixer un nom de son choix avec `Ctrl-b` puis `,`
|
|
|
|
Plus d'info sur tmux : https://www.howtogeek.com/671422/how-to-use-tmux-on-linux-and-why-its-better-than-screen/
|
|
|
|
|
|
## Générer un mot de passe aléatoire
|
|
|
|
mdp de 16 caratères :
|
|
```
|
|
$ openssl rand -base64 12
|
|
hSvo9XgXaMIGX6/0
|
|
```
|
|
mdp de N caractères, 1<=N<=24 :
|
|
```
|
|
$ openssl rand -base64 18 | cut -c -24
|
|
4nh6ppEY33szuU++n3wJgAat
|
|
```
|
|
(remplacer le 24 à la fin pour un mdp plus court)
|
|
|
|
|
|
|
|
## PostgreSQL
|
|
### psql, le client sql en ligne de commande
|
|
Lancer le client en ligne de commande
|
|
`sudo -u postgres psql`
|
|
`psql -U user -d database -W`
|
|
`psql -h host -U user -d database -W`
|
|
`psql -h host -U user "dbname=db sslmode=require"`
|
|
|
|
Puis dans le client psql :
|
|
|
|
- Se connecter à une autre base de donnée
|
|
`\c db_name`
|
|
ou `\c db_name user_name`
|
|
|
|
- Lister les bases de données du serveur auquel on est connecté
|
|
`\l`
|
|
|
|
- Lister les schemas de la base de donnée courante
|
|
`\dn`
|
|
|
|
- Lister les utilisateurs et leurs rôles
|
|
`\du`
|
|
|
|
- Lister les tables de la db courante
|
|
`\dt`
|
|
|
|
- Lister les colonnes d'une table
|
|
`\d table_name`
|
|
ou `\d "Table_Name"` si le nom de la table contient des majuscules
|
|
|
|
- Rediriger la sortie des requêtes vers un fichier texte
|
|
`\o /tmp/file-name.txt`
|
|
- Puis pour restorer la sortie par défaut à l'écran
|
|
`\o`
|
|
|
|
- Quitter psql
|
|
`\q`
|
|
|
|
|
|
### Autres utilitaires postgresql
|
|
Créer un user
|
|
`sudo -u postgres createuser -P peertube`
|
|
|
|
Créer une db
|
|
`sudo -u postgres createdb -O owner_user_name -E UTF8 -T template0 db_name`
|
|
(le user `owner_user_name` doit avoir été crée au préalable)
|
|
|
|
Faire un dump d'une db
|
|
`sudo -u postgres pg_dump -Fc db_name > /tmp/db_name-dump.db`
|
|
|
|
Restorer une db a l'identique a partir d'un dump
|
|
`sudo -u postgres pg_restore -c -C -d postgres /tmp/peertube_prod-dump.db`
|
|
(la db de destination sera suprimée et re-crée avec le nom qu'elle avait au moment du dump)
|
|
|
|
Restorer un dump dans une db différente de celle d'origine
|
|
`sudo -u postgres pg_restore -d other_db_name /tmp/peertube_prod-dump.db`
|
|
(la db de destination `other_db_name` doit avoir été crée au préalable)
|
|
|
|
|
|
## vi
|
|
https://www.cs.colostate.edu/helpdocs/vi.html
|
|
|
|
Commandes vi les plus utiles :
|
|
|
|
| Commande | Description |
|
|
|----------|-------------|
|
|
| i | Passer en mode insertion ([Esc] pour en sortir)|
|
|
| u | Undo / Redo|
|
|
| x | Supprimer un caractère|
|
|
| Nx | Supprimer N caractères|
|
|
| D | Supprimer la fin de la ligne a partir de la position du curseur|
|
|
| dd | Supprimer complètement la ligne courante|
|
|
| Ndd ou dNd | Supprimer N lignes|
|
|
| yy | Copier (yank) la ligne courante dans le buffer|
|
|
| Nyy ou yNy |Copier N lignes dans le buffer|
|
|
| p | Coller (paste) le contenu du buffer dansle texte après la ligne courante |
|
|
|
|
|
|
## Rechercher des fichiers
|
|
|
|
Chercher des fichiers par une partie de leur nom
|
|
`find /répertoire/ou/chercher -name '*.jpg'`
|
|
|
|
La même chose sans distinction de la casse
|
|
`find /répertoire/ou/chercher -iname '*.jpg'`
|
|
|
|
Chercher des fichiers par leur contenu
|
|
`find /répertoire/ou/chercher -name '*.txt' -exec grep -li "texte à chercher" {} \;`
|
|
L'option -l de grep permet d'afficher les noms des fichiers trouvé plutot que les lignes contenant le texte cherché
|
|
L'option -i de grep permet d'ignorer la casse. L'enlever si non nécessaire donne de meilleures performances
|
|
|
|
La même chose mais dans tous les fichiers, quelque soit leur nom, mais en excluant les répertoires pour éviter que grep ne génère des erreurs
|
|
`find /répertoire/ou/chercher -type f -exec grep -li "texte à chercher" {} \;`
|
|
(en fait ca exclue plus que les répertoires, les liens symboliques aussi :-( )
|
|
|
|
|