Généralement la personnalisation du système se fait juste après le reboot de fin d'installation.
lsb_release -a
Ctrl a > retour début de ligne
Ctrl e > fin de ligne
Ctrl l > efface l'écran
Ctrl s > masque la saisie (Ctrl+q pour revenir)
Ctrl u > efface tout à gauche du curseur
Ctrl w > efface le mot à gauche du curseur
Ctrl r > pour une recherche dans l'historique
Pour la suite de ce tutoriel, je noterais les raccourcis A-x pour les raccourcis avec la touche Alt et C-x pour ceux avec la touche Ctrl.
Commençons par le commencement : comment avancer et reculer le curseur de texte
C-f : avancer d’un caractère
C-b : reculer d’un caractère
Il est aussi possible de déplacer le curseur d’un mot plutôt que d’un caractère :
A-f : avancer d’un mot, s’arrêter à la fin de celui-ci
A-b : reculer d’un mot, s’arrêter au début de ce dernier.
Pour aller en début et en fin de ligne, utiliser :
C-a : début de la ligne
C-e : fin de ligne
C-xx : alterner entre la position actuelle du curseur et le début de la commande
Pour exécuter une commande que vous venez de taper, pressez:
C-m : retour charriot.
Si vous voulez naviguer dans l’historique des commandes, comme avec les touches fléchées :
C-p : commande précédente (p en référence à previous)
C-n : commande suivante (n pour next).
Il est aussi possible de rechercher une commande dans l’historique :
C-r : recherche dans l’historique
A-r : si, dans l’invite de commande, vous avez modifié une ligne rappelée de l’historique, ce raccourcis la remet en l’état (telle qu’elle se trouve dans l’historique).
Lorsque vous recherchez dans l’historique avec C-r et que plusieurs occurrences sont trouvées, appuyez plusieurs fois sur C-r pour passer de l’une à l’autre. La recherche se fait de la commande la plus récente à la plus ancienne.
Lors de l’écriture d’une commande, vous pouvez insérer le premier mot de la précédente commande exécutée. Pour cela :
A-. : rappelle le premier mot de la précédente commande.
Il est possible de supprimer un caractère avant ou après le curseur avec les raccourcis
C-d : supprimer le caractère qui se trouve après le curseur
C-h : supprimer le caractère qui se trouve avant le curseur
Ces fonctions sont également disponibles pour supprimer les mots et les lignes :
A-d : supprimer le mot qui se trouve après le curseur
C-w : supprimer le mot qui se trouve avant le curseur
C-k : supprimer du curseur jusqu’à la fin de la commande
C-u : supprimer du curseur jusqu’au début de la commande
À noter que les mots ou lignes supprimés avec les commandes précédentes se retrouveront dans le presse-papiers de Bash. Ce presse-papiers est différent de celui du bureau, avec lequel il ne communique pas. Il offre toutefois la fonction de Kill-ring, comme Emacs : lorsque vous remplissez le presse-papiers, ce dernier n’oublie pas ce qu’il contient. Tout est gardé en mémoire et vous pouvez choisir ce que vous voulez « coller ».
Les raccourcis du presse‐papiers de Bash sont :
C-y : « coller » le dernier élément présent dans le presse-papiers
A-y : après avoir utilisé C-y, intervertit le texte collé avec ce qui se trouvait précédemment dans le presse-papiers
Bash permet également d’intervertir deux lettres ou deux mots :
C-t : intervertit la lettre sous le curseur avec celle qui la précède
A-t : pareil, avec deux mots
Enfin, il est possible de transformer la casse d’un mot :
A-u : convertit un mot en majuscules
A-l : convertit un mot en minuscules
A-c : capitalise un mot.
Faire appel à l’auto‐complétion de Bash peut se faire avec le raccourci :
C-i : équivalant à la touche Tab.
Il existe deux raccourcis pour annuler :
C-/ : annule la dernière action
C-g : quitte une recherche dans l’historique.
Quand un processus est lancé en premier plan depuis Bash, les raccourcis suivants sont disponibles :
C-c : terminer le processus. Ne vous inquiétez pas, il ne souffrira pas
C-Z : mettre en pause le processus. Peut être relancé en premier plan ou en arrière‐plan avec les commandes fg ou bg. La commande jobs liste les processus en pause.
À noter que lors de l’écriture d’une commande, C-c faite sauter le curseur sur une nouvelle ligne de commande vide.
Nettoyer et gérer l’affichage
Il est possible de manipuler ce que montre Bash à l’écran avec ces trois raccourcis :
C-l : nettoie l’écran, pour ne montrer qu’une invite de commande vide ; similaire à la commande clear
C-s : stoppe l’affichage ; très utile quand un programme très verbeux s’exécute
C-q : reprend l’affichage stoppé avec C-s.
Il existe un raccourci pour envoyer le caractère EOF (End Of File) : C-d.
Si l’on envoie ce caractère sur une ligne de commande, cela équivaut à la commande exit.
nano /etc/nanorc
Options intéressantes:
## Automatically indent a newly created line to the same number of
## tabs and/or spaces as the preceding line -- or as the next line
## if the preceding line is the beginning of a paragraph.
set autoindent
## Automatically hard-wrap the current line when it becomes overlong.
set breaklonglines
## Constantly display the cursor position in the status bar. Note that
## this overrides "quickblank".
set constantshow
## Remember the used search/replace strings for the next session.
set historylog
## Display a "scrollbar" on the righthand side of the edit window.
set indicator
## Enable vim-style lock-files. This is just to let a vim user know you
## are editing a file [s]he is trying to edit and vice versa. There are
## no plans to implement vim-style undo state in these files.
set locking
## Enable mouse support, if available for your system. When enabled,
## mouse clicks can be used to place the cursor, set the mark (with a
## double click), and execute shortcuts. The mouse will work in the X
## Window System, and on the console when gpm is running.
set mouse
## Spread overlong lines over multiple screen lines.
set softwrap
## Use the end of the title bar for some state flags: I = auto-indenting,
## M = mark, L = hard-wrapping long lines, R = recording, S = soft-wrapping.
set stateflags
## Use this tab size instead of the default; it must be greater than 0.
set tabsize 4
## Paint the interface elements of nano. These are examples;
## by default there are no colors, except for errorcolor.
set titlecolor bold,lightwhite,blue
## To include most of the existing syntax definitions, you can do:
include "/usr/share/nano/*.nanorc"
Editer les fichiers situés dans: /usr/share/nano
cd /usr/share/nano/
asm.nanorc
awk.nanorc
cmake.nanorc
c.nanorc
conf.nanorc
css.nanorc
debian.nanorc
fortran.nanorc
gentoo.nanorc
groff.nanorc
html.nanorc
java.nanorc
makefile.nanorc
man.nanorc
mgp.nanorc
mutt.nanorc
nano-menu.xpm
nanorc.nanorc
objc.nanorc
ocaml.nanorc
patch.nanorc
perl.nanorc
php.nanorc
pov.nanorc
python.nanorc
ruby.nanorc
sh.nanorc
tcl.nanorc
tex.nanorc
xml.nanorc
Chaque fichier correspond à une coloration syntaxique lié au type d'extension désigné dans chaque fichier. Par exemple, pour conf.nanorc on trouve à la section syntax la liste des fichiers reconnus comme étant pour l'exemple des fichiers de configuration.
syntax "conf" "(\.(conf|config|cfg|cnf|rc|lst|list|defs|ini|desktop|mime|types|preset|cache|seat|service|htaccess|local|old|com|key|keys|options|cf)$|(^|/)(\w*crontab|mirrorlist|group|hosts|passwd|rpc|netconfig|shadow|fstab|inittab|inputrc|protocols|sudoers)$|conf.d/|.config/)"
Si vous utilisez PuTTY comme client SSH Windows, vous avez certainement remarqué que les touches du pavé numérique ne fonctionnent pas dans certaines applications, notamment les deux éditeurs de textes les plus populaires : Vi et Nano.
Pour utiliser le pavé numérique, il faut modifier un paramètre de la configuration de session PuTTY.
Dans Terminal > Features et cocher la case "Disable application keypad mode" :
Dans certains cas (suivant la configuration du serveur) il est également nécessaire de modifier l'option Keyboard (toujours dans la rubrique Terminal) de "ESC[n~" vers "Linux":
Pour mémoriser ce/ces choix par défaut pour vos futures connexions SSH, cliquer sur Session > Default Settings puis Save :
Vous éviterez ainsi de nombreuses surprises quand vous utiliserez le pavé numérique, surtout avec vi !
Credits: Blogmotion
nano /home/user/.bashrc
nano /root/.bashrc
Si ce n'est déjà fait, décommentez:
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Créer le fichier
nano /home/user/.bash_aliases
nano /root/.bash_aliases
contenant:
#Alias
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'
alias lsk='ls -ohFA' # Alias personnel
alias du='du -h'
alias tarzip='tar -zcvf' # Alias personnel
alias untarzip='tar -zxvf' # Alias personnel
alias vim='vi'
alias iptablesL='sudo iptables -L -n -v --line-numbers' # Alias personnel
alias ip6tablesL='sudo iptables -L -n -v --line-numbers'# Alias personnel
alias vnc='x11vnc -many -rfbauth ~/.vnc_passwd' # Alias personnel
alias ps='ps -efjHF f' # Alias personnel
alias back='cd .. && lsk' # Alias personnel
alias tree='tree -aphFD --du --dirsfirst' # Alias personnel
alias maj='apt-get update && apt-get upgrade' # Alias personnel
alias ip='ip -c' # Alias personnel
PS1='${debian_chroot:+($debian_chroot)}[\D{%d/%m/%y-%H:%M}]\[\e[1;31;47m\]\u\[\e[m\e[00;1;37;46m\] @ \[\e[m\e[0;1;41m\]\H\[\e[m\e[1m\]\\>\[\e[m\]<\[\e[m\e[01;34m\]\w\[\e[m\]>\$ '
[ jj/mm/aa-hh:mm ] user @ host \> < dir >#$
Sequence | Description |
---|---|
\a | le caractère BEL ASCII (you can also type \007) |
\d | Date au format "Mer 06 Sept" |
\e | Caractère ASCII d'échappement (you can also type \033) |
\h | Première partie du hostname |
\H | hostname complet |
\j | Le nombre de processus que vous avez suspendu dans ce shell et tapant ^Z |
\l | Le nom du terminal shell du périphérique The name of the shell's terminal device (such as "ttyp4") |
\n | Nouvelle ligne |
\r | Retour chariot |
\s | Le nom de l'exécutable shell (such as "bash") |
\t | Heure au format 24H (such as "23:01:01") |
\T | Heure au format 12H (such as "11:01:01") |
\@ | Heure au format 12H avec AM/PM |
\u | Votre username |
\v | Version de bash (such as 2.04) |
\V | Version de bash, incluant le niveau de patch |
\w | Dossier de travail courant (such as "/home/drobbins") |
\W | Le nom de base du dossier courant de travail (such as "drobbins") |
\! | Position de la commande courante dans le buffer de l'historique |
\# | Numéro de commande (cela incrémente à chaque prompt, aussi longtemps que vous tapez quelquechose) (this will count up at each prompt, as long as you type something) |
\$ | Si vous n'êtes pas root, insère "$"; Si vous êtes root, vous avez un "#" |
\xxx | Insère un caractère ASCII basé sur un nombre sur trois digits (remplacer les digits inutilisés par des zéros comme "\007") |
\\ | Un antislash |
\[ | Cette séquence doit apparaitre avant une séquence de caractères qui ne bougent pas le curseur (comme les séquences d'échappement de couleur). Cela permet à bash de calculer correctement le word wrapping. |
\] | Cette séquence doit apparaitre après une séquence de caractères non imprimables. |
\[ | => ouverture couleur |
m\] | => fermeture couleur |
\e[m | => reset couleur (]) |
couleurs:
code | rendu | Couleur |
---|---|---|
0 = | normal | |
1 = | gras | |
2 = | sombre on | |
22 = | sombre off ?? | |
23 = | italique off | |
24 = | souligné off | |
26 = | ?? | |
25 = | clignotant off ?? | |
27 = | inversé off | |
3 = | italique on | |
30 à 37= | couleur de police | |
4 = | souligné on | |
40 à 47= | couleur de fond | |
avec pour l'unité: | ||
0 = | noir | |
1 = | rouge | |
2 = | vert | |
3 = | jaune | |
4 = | bleu | |
5 = | violet | |
6 = | turquoise | |
7 = | blanc | |
5 = | clignotant on | |
6 = | ??? | |
7 = | inversé on |
Editer votre fichier ~/.bashrc pour lui ajouter les deux lignes suivantes :
# Auto Completion SSH
complete -W "$(echo `cat ~/.ssh/known_hosts | cut -f 1 -d ' ' | sed -e s/,.*//g | uniq | grep -v "\["`;)" ssh scp sftp
source ~/.bashrc
Il y a un certain nombre de commandes que l'on peut vouloir utiliser depuis n'importe quel répertoire.
Dans ce cas, il est fastidieux de :
Il suffit donc de mettre tous vos scripts dans un même répertoire, et de mettre ce répertoire dans le PATH. Par convention, ce répertoire s'appelle bin et se place dans votre répertoire personnel. Si votre répertoire personnel est /home/toto, ce répertoire sera donc /home/toto/.bin.
Commencez donc par créer ce répertoire :
cd ~
mkdir .bin
Ensuite, vérifiez qu'il soit bien dans votre PATH :
echo $PATH
Si vous voyez par exemple $HOME/.bin dans votre PATH, alors c'est bon, tous les fichiers exécutables situés dans ce répertoire seront accessibles depuis n'importe quel répertoire.
Si ce n'est pas le cas, il faut ajouter ce répertoire au PATH. Pour cela, ajoutez dans le fichier de configuration de votre shell, par exemple le fichier .bashrc, la ligne :
PATH=$PATH:$HOME/.bin
Cette ligne indique que la prochaine fois que vous ouvrirez votre shell, le répertoire bin figurera dans votre PATH.
Déjà il faut regarder le fichier "fstab" qui se trouve dans le répertoire "/etc", pour savoir où se trouve le CDrom.
On doit voir une ligne qui devrait ressembler à ça:
/dev/cdrom /mnt/cdrom auto ro,noauto,user,exec 0 0
Ensuite, en fonction de ce qu'indique le fichier "fstab", on tape en tant que "root":
mount /dev/cdrom /mnt/cdrom
ou "/dev/cdrom" correspond à la référence faite dans le fichier "fstab" et "/mnt/cdrom" correspond au point de montage spécifié pour le lecteur.
sous debian:
mount /dev/sr0 /media/cdrom
Supprimer un dossier non vide:
rm -r /nomdudossier
supprime un dossier vide
rmdir
Le fichier de configuration réseau sous Debian se situe dans:
/etc/network/interfaces
Ce fichier principal permet de définir l'adresse IP de l'interface. Noter que l'exemple suivant présente:
nano /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
# Configuration statique
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
# Configuration DHCP
auto eth0
iface eth0 inet dhcp
pre-up ifconfig eth0 up
post-down ifconfig eth0 down
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
# Configuration statique avec VLAN 29
auto eth0.29
iface eth0.29 inet static
address 10.2.1.2
netmask 255.255.255.0
gateway 10.2.1.1
auto eth0:1
iface eth0:1 inet static
address 10.3.1.2
netmask 255.255.255.0
gateway 10.3.1.1
Par convention, par défaut, l'ipv6 est calculée en fonction de l'adresse mac de la machine. Pour générer cette ipv6 voici la commande:
ipv6calc --action geneui64 --in mac --out eui64 addresse_mac
ajouter les sources non-free à la liste des sources Editer le fichier /etc/apt/sources.list
nano /etc/apt/sources.list
deb http://ftp.fr.debian.org/debian/ jessie main non-free
deb-src http://ftp.fr.debian.org/debian/ jessie main non-free
deb http://security.debian.org/ jessie/updates main non-free
deb-src http://security.debian.org/ jessie/updates main non-free
# jessie-updates, previously known as 'volatile'
deb http://ftp.fr.debian.org/debian/ jessie-updates main non-free
deb-src http://ftp.fr.debian.org/debian/ jessie-updates main non-free
# jessie-backports
deb http://ftp.fr.debian.org/debian jessie-backports main non-free
Actualiser les sources:
apt-get update
Installer le paquet firmware-iwlwifi
apt-get install firmware-iwlwifi
Installer les net-tools
apt-get install net-tools
Ce fichier permet de définir des DNS de façon local. La machine fait une requête DNS dans ce fichier avant d'en faire une aux serveurs DNS.
nano /etc/hosts
127.0.0.1 localhost.localdomain localhost monpc
Ce fichier définit les serveurs DNS. Il est possible d'en définir plusieurs.
nano /etc/resolv.conf
search
nameserver 192.168.1.1 #IP du DNS voulu
nameserver 192.168.10.1 #IP du DNS voulu
/etc/init.d/networking restart
ip addr flush eth0
A l'aide de puttygen, charger la clé locale ppk (qui contient la clé publique et privée) (connexion / SSH / Auth "Private key file for authentification".)
copier ce qui se trouve dans le champ "Public key for pasting OpenSSH authorized_keys file"
ouvrir/créer en root le fichier authorized_keys qui se trouve dans ~/.ssh sur le serveur
coller et enregistrer
De manière générale le fichier authorized_keys contient une liste de clés, une par ligne formatté de la façon suivante
typedecryptage | clé | commentaire |
---|---|---|
example: | ||
ssh-rsa | AAAAB3NzaC1yc2EAAAABJQAAAQ.....K0r4FoNZhI0w$*ù | rsa-key-20170611 |
scp login@host:/chemin/absolu/vers/le/fichier/nomfichier /destination/du/fichier/nomfichier
Par exemple:
scp chris@atkhost.com:/home/chris/.bashrc /home/chris/.bashrc
scp chris@atkhost.com:/home/chris/.bash_aliases /home/chris/.bash_aliases
scp chris@atkhost.com:/root/.bashrc /root/.bashrc
scp chris@atkhost.com:/root/.bash_aliases /root/.bash_aliases
scp chris@atkhost.com:/etc/profile /etc/profile
scp chris@atkhost.com:/home/chris/.vnc_passwd /home/chris/.vnc_passwd
installer x11vnc:
apt-get install x11vnc
lancer:
x11vnc -many -rfbauth ~/.vnc_passwd
(paramètres mot de passe à compléter ici)
Installer la même sélection de paquets plusieurs fois:
Il est parfois souhaitable de pouvoir installer systématiquement la même liste de paquets sur plusieurs ordinateurs.
C’est possible assez facilement.
Récupérons d’abord la liste des paquets installés sur l’ordinateur qui servira de « modèle » à dupliquer.
dpkg --get-selections > liste-pkg
Le fichier liste-pkg contient la liste des paquets installés. Il faut alors transférer le fichier liste-pkg sur les ordinateurs à mettre à jour et y employer les commandes suivantes pour mettre à jour la liste des paquets connus par dpkg.
avail=‘mktemp‘
apt-cache dumpavail > ”$avail”
dpkg --merge-avail ”$avail”
rm -f ”$avail”
Mettre à jour les sélections de dpkg
dpkg --set-selections < list-pkg
Demander à apt-get d’installer les paquets sélectionnés
apt-get dselect-upgrade
La première commande enregistre la liste des paquets disponibles dans la base de données de dpkg, puis dpkg --set-selections restaure les voeux de paquets à installer, que l’invocation d’apt-get exauce ensuite !
Aptitude n’offre pas cette commande.
apt-mark showmanual
Afin de voir les paquets qui ont été modifiés par rapport aux paquets d'origine provenant de Debian.
dpkg liste également plusieurs fichiers de configuration (identifiés par la lettre « c » du deuxième champ) qui ont été (légitimement) modifiés.
dpkg --verify
Ajouter un utilisateur
adduser nomutilisateur
Répertoire modèle pour la création de nouvel utilisateur
/etc/skel/
Liste des utilisateurs
nano /etc/passwd
liste des mots de passe chiffrés
nano /etc/shadow
Bloquer un compte utilisateur
passwd -l utilisateur
Débloquer un compte utilisateur
passwd -u utilisateur
Afficher les utilisateurs :
cat /etc/passwd | awk -F: '{print $ 1}'
Afficher les groupes :
cat /etc/group | awk -F: '{print $ 1}'
Mettre des alias pour tous les utilisateurs
nano /etc/profile
ajouter les alias à la fin
Mettre l'utilisateur dans le groupe des sudoers
visudo
Ajouter:
[USERNAME] ALL=(ALL:ALL) ALL
Utilitaire pour voir l'arborescence en mode console
apt-get install tree
Créer l'alias pour le mettre à mon gout
alias tree='tree -aphFD --du --dirsfirst' >> /home/user .bash_aliases
Pour root
alias tree='tree -aphFD --du --dirsfirst' >> /root .bash_aliases
Lancer screen en lui donnant un [nom]
screen -S [nom]
Lorsque screen est lancé:
Pour nommer une fenêtre:
ctrl+a et A
Pour scinder horizontalement et avoir une seconde fenêtre:
ctrl+a et S (s majuscule)
Pour créer une fenêtre avec un shell:
ctrl+a et c
Pour passer d'une zone à l'autre:
ctrl+a et tab
Pour basculer d'une fenêtre à l'autre:
ctrl+a et espace ou n ou bien backspace ou p
Pour détacher le screen:
ctrl+a et d
Pour scroller:
ctrl+a et esc
Pour revenir:
esc
Pour rattacher un screen:
screen -r
apt-get install lynis
Lynis est un utilitaire qui permet de faire un checkup complet du système et propose des solutions à mettre en place pour corriger les problèmes.
Pour le lancer, lancer la commande:
lynis audit system
A la fin, une liste de recommandation et de liens vers leurs explications/motivations est affichée.
Installer lnav
apt-get install lnav
Utiliser lnav
lnav /var/log
Installer logwatch:
apt-get install logwatch
Modifier le fichier /etc/logwatch/conf/logwatch.conf pour recevoir le compte rendu par mail
/etc/logwatch/conf/logwatch.conf
#To make email Default set Output = mail to save to file set Output = file
Output = mail
# Default person to mail reports to. Can be a local account or a
# complete email address. Variable Output should be set to mail, or
# --output mail should be passed on command line to enable mail feature.
MailTo = user@mondomaine.tld
Chercher un texte dans plusieurs fichiers:
Je trouve que cette commande n'est pas très utilisée mais elle est très puissante.
Comment faire pour rechercher un texte alors qu'on ne connait pas le fichier d'où il provient ?
C'est simple. Il faut utiliser la commande grep.
Si tous les fichiers sont dans le même répertoire, pour rechercher la chaîne "montexte", il suffit de faire :
grep montexte *
Sinon, si les fichiers sont dans une arborescence :
find . -type f -exec grep montexte {} \;
Explications :
Commande | Explication |
---|---|
find . | => rechercher à partir du répertoire courant |
-type f | => on cherche un fichier |
-exec | => on execute une commande à chaque fichier trouvé |
grep montexte {} | => on recherche "montexte" dans les fichiers ( {} remplace le nom des fichiers trouvés). |
\; | => fin de l'option exec ( \ permet d'ajouter à la suite d'autres commandes) |
Chercher ou se situe les fichiers d'un programme, par exemple screen:
whereis screen
D’abord, il faut savoir que l’historique contient uniquement vos propres commandes. Toutefois l’utilisateur root peut voir un historique global. Normal, c’est lui le patron ! Ce qui d’ailleurs est pratique pour savoir qui a fait quoi sur la machine.
Pour consulter votre historique, entrez simplement la commande :
history
Pour supprimer une ligne gênante, il suffit donc d’utiliser le paramètre -d comme ceci :
history -d 421
Et pour tout nettoyer :
history -c
Pour aller plus loin, si vous voulez voir la date et l’heure d’exécution de chaque commande, vous pouvez entrer cette commande:
export HISTTIMEFORMAT=’%F %T ‘
%F équivaut à la date au format %Y-%m-%d et %T équivaut à l’heure au format (%H:%M:%S).
Puis refaites un « history »
Si vous remarquez beaucoup de commandes parasites, vous pouvez aussi indiquer à history de ne pas en tenir compte et de ne pas les logger. Pour cela, utilisez le paramètre export comme ceci avec la commande concernée. Par exemple si je veux masquer tout les « ls -l », les commandes pwd et la commande history elle-même, il suffit de faire :
export HISTIGNORE=’ls -l:pwd:history’
Et pour remettre ça à zéro, il suffit de laisser un HISTIGNORE vide ou avec des commandes différentes.
export HISTIGNORE= »
Ou faire un :
unset export HISTIGNORE
Ensuite, si vous voulez ignorer les commandes dupliquées dans le fichier, il faut faire un :
export HISTCONTROL=ignoredups
Et comme ci-dessus, pour remettre à zéro le paramètre, faites un
unset HISTCONTROL
Maintenant si certains de ces paramètres vous plaisent vous pouvez les configurer pour qu’ils soient permanents. Éditez ou créez le fichier .bash_profile et ajoutez y les paramètres voulus:
nano .bash_profile
#Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
export HISTCONTROL=ignoredups
export HISTIGNORE=’ls -l:pwd:history’
PATH=$PATH:$HOME/bin
export PATH
Enfin, pour désactiver le logging des commandes, vous pouvez aussi ajouter dans le fichier .bash_profile le paramètre
export HISTSIZE=0
Notez que si vous l’ajoutez au niveau du fichier /etc/profile, ce sera désactivé pour tous les users sur tout le système. Je ne le recommande pas spécialement, mais si vous opérez un serveur qui nécessite un bon niveau de confidentialité, c’est utile.
Enfin, pour consulter l’historique d’un utilisateur précis, il suffit d’aller voir le .bash_history qui se trouve dans son répertoire home comme ceci :
cat /home/UTILISATEUR/.bash_history
Disk Filesystem, l'option -h permet un affichage "humain"
df -h
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
udev 10M 0 10M 0% /dev
tmpfs 794M 41M 753M 6% /run
/dev/sda1 156G 42G 107G 28% /
tmpfs 2,0G 0 2,0G 0% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 2,0G 0 2,0G 0% /sys/fs/cgroup
tmpfs 397M 0 397M 0% /run/user/1000
Disk Usage, l'option -h permet un affichage "humain"
du -h /home/chris/www/
8,0K /home/chris/www/
Suite à une discussion sur le chat debian-facile.org
[21:46] <Marmotte> des erreurs du genre "plus d'espace" avec df -h qui ne donne pas de 100%, c'est souvent un souci d'inodes, qu'on voit avec df -i
[21:46] <Marmotte> l'autre possibilité que j'ai déjà vu souvent, c'est un fichier supprimé, mais qu'un programme continue de remplir
[21:46] <Marmotte> et ça, ça se voit avec "df -h" qui annonce un 100%, mais "sudo du -shx /" qui annonce moins que l'espace occupé au total
[21:47] <Marmotte> dans ce cas, on peut savoir quel est le fichier avec un "sudo lsof | grep deleted"
[21:47] <Marmotte> pour savoir quels sont les fichiers supprimés, mais encore utilisés
[21:40] <Marmotte> tente avec : sudo find /var/cache/useless -type f -empty -delete
[21:41] <Marmotte> c'est une commande qui supprime tous les fichiers vides présents dans le répertoire /var/cache/useless
Ce qui permet de faire toutes les combinaisons :
0 : - - - (aucun droit)
1 : - - x (exécution)
2 : - w - (écriture)
3 : - w x (écriture et exécution)
4 : r - - (lecture seule)
5 : r - x (lecture et exécution)
6 : r w - (lecture et écriture)
7 : r w x (lecture, écriture et exécution)
Utilisateur groupe autre
rwx rwx rwx
7 7 7
ccze pour coloriser les fichiers de log
$commande | ccze -A
installé sur ns1
Pour comparer deux fichiers situés sur deux serveurs différents en utilisant Bash, vous pouvez combiner la commande ssh avec diff. Voici comment procéder : Utiliser la commande diff avec ssh : Si vous êtes sur le serveur cible (serveur 2) et que vous souhaitez comparer un fichier local avec un fichier sur le serveur source (serveur 1), vous pouvez utiliser la commande suivante :
diff -y <(ssh utilisateur@serveur1 cat /chemin/vers/le/fichier) <(cat /chemin/vers/le/fichier)
Dans cette commande :
utilisateur@serveur1 doit être remplacé par votre nom d'utilisateur et l'adresse IP ou le nom d'hôte du serveur 1. /chemin/vers/le/fichier doit être remplacé par le chemin du fichier que vous souhaitez comparer sur les deux serveurs.
Exemple Supposons que vous voulez comparer un fichier de configuration nommé monfichier.conf :
diff -y <(ssh utilisateur@serveur1 cat /etc/monfichier.conf) <(cat /etc/monfichier.conf)
Comparer des répertoires Si vous souhaitez comparer le contenu de deux répertoires sur les serveurs, vous pouvez utiliser la commande suivante :
diff -y <(ssh utilisateur@serveur1 find /chemin/vers/le/repertoire | sort) <(find /chemin/vers/le/repertoire | sort)
Remarques
Assurez-vous que vous avez les permissions nécessaires pour accéder aux fichiers sur les deux serveurs. La commande diff affichera les différences entre les fichiers ou les répertoires, vous permettant ainsi de vérifier que la copie a été effectuée correctement.