linux:memo_bash
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
linux:memo_bash [11/08/2013 19:54] – daniel | linux:memo_bash [10/09/2020 09:58] (Version actuelle) – [Memo BASH] daniel | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
* [[http:// | * [[http:// | ||
+ | * http:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
===== vrac ===== | ===== vrac ===== | ||
Ligne 9: | Ligne 15: | ||
Pour rediriger les erreurs dans le meme log : commande >log 2>&1 | Pour rediriger les erreurs dans le meme log : commande >log 2>&1 | ||
- | Cf http:// | + | * http:// |
+ | * http:// | ||
+ | * http:// | ||
Cf aussi | Cf aussi | ||
trap commande signal | trap commande signal | ||
pour exécuter une commande en cas de signal (le try/catch du bash) | pour exécuter une commande en cas de signal (le try/catch du bash) | ||
+ | |||
+ | Attention, si on capture stdout avec un truc comme | ||
+ | <code bash> | ||
+ | exec > >(while read line; do echo " | ||
+ | </ | ||
+ | le contenu du fichier $LOGRAP est pas immédiatement disponible dans le script principal (quand un sous-shell écrit dans un fichier, faut visiblement qu'il ait terminé pour que le parent soit sûr de récupérer le contenu. | ||
==== gestion des processus liés au terminal (avant/ | ==== gestion des processus liés au terminal (avant/ | ||
Ligne 25: | Ligne 39: | ||
==== jobs et at ==== | ==== jobs et at ==== | ||
On peut lister les jobs en cours avec '' | On peut lister les jobs en cours avec '' | ||
- | |||
- | |||
==== variables ==== | ==== variables ==== | ||
Ligne 184: | Ligne 196: | ||
===== Commandes perso ===== | ===== Commandes perso ===== | ||
+ | |||
+ | |||
+ | * Pour lister le nb de fichiers/ | ||
+ | <code bash> | ||
+ | uniq -c < / | ||
==== Scripts ==== | ==== Scripts ==== | ||
+ | |||
=== afflign.sh - afficher une (ou des) lignes d'un fichier === | === afflign.sh - afficher une (ou des) lignes d'un fichier === | ||
Ligne 192: | Ligne 210: | ||
===== Commandes ===== | ===== Commandes ===== | ||
+ | Cf http:// | ||
==== vrac ==== | ==== vrac ==== | ||
Ligne 220: | Ligne 239: | ||
</ | </ | ||
- | Pour RECOPIER UNE ARBORESCENCE (et son contenu) se placer dans le répertoire de destination et entrer | ||
- | (cd / | ||
- | explication dans "le système Linux", | ||
- | Apparemment devenu inutile depuis que cp a l' | ||
- | |||
- | ==== cat ==== | ||
- | < | ||
- | -b, --number-nonblank | ||
- | -E, --show-ends | ||
- | -n, --number | ||
- | -s, --squeeze-blank | ||
- | -T, --show-tabs | ||
- | -v, --show-nonprinting | ||
- | </ | ||
- | ==== tail ==== | ||
- | < | ||
- | Usage: tail [OPTION]... [FILE]... | ||
- | Print the last 10 lines of each FILE to standard output. | ||
- | With more than one FILE, precede each with a header giving the file name. | ||
- | With no FILE, or when FILE is -, read standard input. | ||
- | |||
- | --retry | ||
- | | ||
- | | ||
- | -c, --bytes=N | ||
- | -f, --follow[={name|descriptor}] output appended data as the file grows; | ||
- | -f, --follow, and --follow=descriptor are | ||
- | | ||
- | -n, --lines=N | ||
- | --max-unchanged-stats=N | ||
- | with --follow=name, | ||
- | | ||
- | to see if it has been unlinked or renamed | ||
- | (this is the usual case of rotated log files) | ||
- | --pid=PID | ||
- | -q, --quiet, --silent | ||
- | -s, --sleep-interval=S | ||
- | | ||
- | -v, --verbose | ||
- | --help | ||
- | --version | ||
- | |||
- | If the first character of N (the number of bytes or lines) is a `+', | ||
- | print beginning with the Nth item from the start of each file, otherwise, | ||
- | print the last N items in the file. N may have a multiplier suffix: | ||
- | b for 512, k for 1024, m for 1048576 (1 Meg). A first OPTION of -VALUE | ||
- | or +VALUE is treated like -n VALUE or -n +VALUE unless VALUE has one of | ||
- | the [bkm] suffix multipliers, | ||
- | or -c +VALUE. | ||
- | |||
- | With --follow (-f), tail defaults to following the file descriptor, which | ||
- | means that even if a tail' | ||
- | its end. This default behavior is not desirable when you really want to | ||
- | track the actual name of the file, not the file descriptor (e.g., log | ||
- | rotation). | ||
- | named file by reopening it periodically to see if it has been removed and | ||
- | recreated by some other program. | ||
- | </ | ||
- | |||
- | ==== ls ==== | ||
- | < | ||
- | -l format long | ||
- | -h human readable | ||
- | -S sort by file size | ||
- | -t sort by modification time | ||
- | -X sort alphabetically by entry extension | ||
- | </ | ||
- | |||
- | ==== wc ==== | ||
- | "word count" | ||
- | |||
- | wc -l donne le nb de lignes | ||
- | |||
- | cat toto.txt | grep titi | wc -l | ||
- | donne le nb de lignes où ' | ||
- | grep -c titi toto.txt | ||
- | |||
- | ==== tar ==== | ||
- | |||
- | tar cvzf archive.tgz repertoire_a_archiver | ||
- | prends tous les fichiers de repertoire_a_archiver (sous-rep inclus) et les mets dans archive.tgz, | ||
- | tar cvjf archive.tar.bz2 repertoire_a_archiver | ||
- | |||
- | tar xvzf archive.tgz decompresse l' | ||
- | et en général | ||
- | tar xvf archive.tgz | ||
- | suffit | ||
- | |||
- | ==== gzip ==== | ||
- | < | ||
- | usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...] | ||
- | -c --stdout | ||
- | -d --decompress | ||
- | -f --force | ||
- | -h --help | ||
- | -l --list | ||
- | -L --license | ||
- | -n --no-name | ||
- | -N --name | ||
- | -q --quiet | ||
- | -r --recursive | ||
- | -S .suf --suffix .suf use suffix .suf on compressed files | ||
- | -t --test | ||
- | -v --verbose | ||
- | -V --version | ||
- | -1 --fast | ||
- | -9 --best | ||
- | | ||
- | </ | ||
==== find ==== | ==== find ==== | ||
- | pour afficher tous les fichiers de + de 20Ko (FreeBSD, 20k autorise | + | pour afficher tous les fichiers de + de 20Ko (FreeBSD, |
find /path \( -size +20000c \) -exec ls -l {} \; | find /path \( -size +20000c \) -exec ls -l {} \; | ||
lister les fichier de /tmp de 0 octets de + de 60mn | lister les fichier de /tmp de 0 octets de + de 60mn | ||
Ligne 338: | Ligne 248: | ||
pour renommer les mp3 en swf | pour renommer les mp3 en swf | ||
for i in *.mp3; do mv $i ${i%mp3}swf ;done | for i in *.mp3; do mv $i ${i%mp3}swf ;done | ||
- | |||
- | ==== grep ==== | ||
- | < | ||
- | Usage: grep [OPTION]... PATRON [FICHIER] ... | ||
- | Search for PATTERN in each FILE or standard input. | ||
- | Example: grep -i 'hello world' menu.h main.c | ||
- | |||
- | Regexp selection and interpretation: | ||
- | -E, --extended-regexp | ||
- | -F, --fixed-regexp | ||
- | -G, --basic-regexp | ||
- | -e, --regexp=PATTERN | ||
- | -f, --file=FILE | ||
- | -i, --ignore-case | ||
- | -w, --word-regexp | ||
- | -x, --line-regexp | ||
- | -z, --null-data | ||
- | non pas par un retour de chariot | ||
- | |||
- | Divers: | ||
- | -s, --no-messages | ||
- | -v, --revert-match | ||
- | -V, --version | ||
- | --help | ||
- | --mmap | ||
- | |||
- | Output control: | ||
- | -b, --byte-offset | ||
- | -n, --line-number | ||
- | -H, --with-filename | ||
- | -h, --no-filename | ||
- | -q, --quiet, --silent | ||
- | --binary-files=TYPE | ||
- | TYPE is ' | ||
- | -a, --text | ||
- | -I equivalent to --binary-files=without-match | ||
- | -d, --directories=ACTION | ||
- | ACTION is ' | ||
- | -r, --recursive | ||
- | -L, --files-without-match only print FILE names containing no match | ||
- | -l, --files-with-matches | ||
- | -c, --count | ||
- | -Z, --null | ||
- | |||
- | Contrôle du contexte: | ||
- | -B, --before-context=N | ||
- | -A, --after-context=N | ||
- | -C, --context[=N] | ||
- | à moins que -A ou -B ne soit spécifié | ||
- | -N identique à --context=N | ||
- | -U, --binary | ||
- | les fins de lignes (MS-DOS) | ||
- | -u, --unix-byte-offsets | ||
- | aucun CR n' | ||
- | |||
- | `egrep' | ||
- | Sans FICHIER, ou si - est utilisé comme nom de FICHIER, la lecture | ||
- | se fait de l' | ||
- | est implicite. Termine avec 0 s'il y a concordance avec 1 si aucune. | ||
- | Termine avec 2 s'il y a des erreurs de syntaxe ou de système. | ||
- | </ | ||
==== sed ==== | ==== sed ==== | ||
Ligne 441: | Ligne 290: | ||
Voir aussi tr qui remplace des caractères (sans regexp, lire le man pour les pbs avec l' | Voir aussi tr qui remplace des caractères (sans regexp, lire le man pour les pbs avec l' | ||
- | sed est aussi efficace pour afficher une ligne particulière | + | sed est aussi efficace pour afficher une ligne particulière |
- | sed -e '288 !d' </ | + | sed -e '288 !d' <fichier |
- | affichera la ligne 288 (ou plutôt n'effacera pas, le " | + | ou |
- | et | + | sed -ne '288 p' |
+ | |||
+ | ou un bloc de lignes | ||
sed -e ' | sed -e ' | ||
- | affichera les lignes 288 à 291, tout comme | + | ou |
sed -ne ' | sed -ne ' | ||
- | (on affiche pas sauf demande explicite) | ||
==== cut ==== | ==== cut ==== | ||
Ligne 456: | Ligne 306: | ||
pour récupérer les GUIDuser du log nl3i | pour récupérer les GUIDuser du log nl3i | ||
grep kne nl3i_access.log | grep 'GET / | grep kne nl3i_access.log | grep 'GET / | ||
- | |||
- | ==== php ==== | ||
- | < | ||
- | sur ns2230, le binaire php est dans / | ||
- | Usage: php [-q] [-h] [-s] [-v] [-i] [-f < | ||
- | php < | ||
- | -a Run interactively | ||
- | -C Do not chdir to the script' | ||
- | -c < | ||
- | -n No php.ini file will be used | ||
- | -d foo[=bar] | ||
- | -e | ||
- | -f < | ||
- | -h This help | ||
- | -i PHP information | ||
- | -l | ||
- | -m Show compiled in modules | ||
- | -q | ||
- | -s | ||
- | -v | ||
- | -w | ||
- | -z < | ||
- | </ | ||
==== mysql ==== | ==== mysql ==== | ||
Ligne 504: | Ligne 331: | ||
ex de backup & mail | ex de backup & mail | ||
+ | |||
<code bash> | <code bash> | ||
#!/bin/sh | #!/bin/sh | ||
Ligne 514: | Ligne 342: | ||
/ | / | ||
</ | </ | ||
+ | |||
+ | ==== mail ==== | ||
un simple | un simple |
linux/memo_bash.1376243656.txt.gz · Dernière modification : 11/08/2013 19:54 de daniel