administration unix - Offirmo-team/wiki GitHub Wiki

Voir aussi :

Lien très intéressant : http://www.commentcamarche.net/faq/8386-kit-de-survie-linux#administration-systeme

et marrant : http://www.cyberciti.biz/tips/my-10-unix-command-line-mistakes.html

Présentation

utilisation courante

Accéder à un terminal

Ctrl + Alt + F1 - F7 permet de parcourir let tty

Ctrl + Alt + F7 est généralement affecté à korg = interface graphique

Raccourcis du terminal

  • Ctrl + L = effacer écran
  • Ctrl + R = rechercher dans l'historique des commandes

Se déplacer

Je passe l'utilisation de cd, mais deux petits "trucs" tout de même :

  • Revenir au dossier de départ (votre dossier utilisateur)
cd        (pas de paramètre)
cd ~
  • Revenir au dossier précédent
cd -

Sinon, la structure générale du système de fichier est expliquée ici : http://www.pathname.com/fhs/pub/fhs-2.3.html

liens symboliques

ln -s TARGET LINK_NAME

droits

chown offirmo /app
chown offirmo:groupx /app
chown -R root:developers /home/ct_repo

redirections I/O

http://linux.die.net/Intro-Linux/sect_05_02.html

ls > dirlist 2>&1

will direct both standard output and standard error to the file dirlist, while the command

ls 2>&1 > dirlist

will only direct standard output to dirlist. This can be a useful option for programmers.

 rm -f $(find / -name core) &> /dev/null

will place every output of a program to absolute silence, cf. http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html

Tee :

gcc toto.cpp 2>&1 | tee toto.txt

Montage démontage d'un CD

Attention, le point de montage (ici /media/cdrom pour une Ubuntu 10.10) dépend des conventions de votre distrib. De plus, il faut donner beaucoup plus d'options sauf si le montage est déjà prédéfini. Vous pouvez voir les montages prédéfinis en affichant /etc/fstab.

cat /etc/fstab

Ensuite, exemple :

sudo mount /dev/cdrom /media/cdrom

et

sudo umount /dev/cdrom

Décompresser une archive

tar xzfv <archive>.tar.gz
tar -jxvf <archive>.bz2
tar -jxvf <archive>.tar.xz
unzip <archive>.zip

autres : http://ubuntuforums.org/showpost.php?p=10287642&postcount=4

Archiver

tar czf ton_rep.tar.bz ton_rep/

À trier

Connaître le noyau courant :

uname -r

alias :

Recherche

http://www.math-linux.com/spip.php?article21

Recherche d'un fichier ou dossier

Recherche depuis la racine / d'un fichier (f)

find / -type f -name nom_sans_espace -print

Recherche dans le dossier courant . d'un fichier (f)

find . -type f -name "nom avec espace" -print

Recherche dans le dossier courant . un dossier (d)

find . -type d -name "nom avec espace" -print

Recherche dans des fichiers

à partir du dossier courant :

find . -type f -exec grep -l "text to look for" {} \;

Administration

Une technique très rapide pour afficher de nombreuses infos sur le système est d'utiliser facter s'il est dispo :

facter

Voir aussi puppet.

identifier sa distribution

uname --all
cat /etc/lsb-release /etc/debian_version /etc/redhat-release

Mises à jour (debian / ubuntu)

Taper simplement :

sudo apt-get update

et la liste des paquets sera mise à jour, et aptitude vous indiquera à la fin si des paquets ont besoin de mise à jour. Dans ce cas, taper :

sudo apt-get upgrade

Voici un script de maintenance :

sudo apt-get update
sudo apt-get upgrade
sudo rvm get head
rvm reload
gem update
npm -g update

Redémarrer / Éteindre

sudo reboot
sudo halt

Infos système

Version du noyau :

uname -r

réseau

Renouveler son bail DHCP http://www.cyberciti.biz/faq/howto-linux-renew-dhcp-client-ip-address/

sudo dhclient -r
sudo dhclient

host

Surveillance des ressources

http://www.linux.com/news/enterprise/systems-management/785426-a-template-for-monitoring-linux-performance-tools-like-from-netflix- linux_observability_tools

CPU / Processes

Le basique :

top

et des mieux (à installer)

dstat

et

htop

Détaillé :

ps -ef
killall xdpreader
kill `ps -ef | grep xdpreader | grep -v grep | awk '{print $2}'`

Avant/arrière plan http://fr.openclassrooms.com/informatique/cours/reprenez-le-controle-a-l-aide-de-linux/ctrl-z-jobs-bg-fg-passer-un-processus-en-arriere-plan

Ctrl + Z
jobs
bg
fg

Disque

état du disque :

df -h

taille d'un dossier : http://stevejamesson.com/2008/06/18/unix-get-full-size-of-directory-folder/

du -sh dir
sudo du -sh *

ou http://homepages.cae.wisc.edu/~hessel/faqs/How%20can%20I%20find%20the%20size%20of%20files%20and%20directories%20on%20UNIX.htm

du -sk dir
du -sk *

mémoire

cat /proc/meminfo

réseau

http://www.croc-informatique.fr/2008/09/trouver-le-processus-qui-utilise-un-port-rseau-sur-linux/

ps -ef | grep 6303
root      6303  6287  6 15:38 pts/0    00:00:54 /usr/java/j2sdk1.4.2/bin/java
lsof -i | grep 8091
java      6303     root   40u  IPv6  64805       TCP *:8091 (LISTEN)
netstat -tlnp
netstat -tlnp | grep 8021
Proto Recv-Q Send-Q Local Address   Foreign Address  State   PID/Program name
tcp        0      0               :::8021          :::*                  LISTEN   6303/java

Désinstallation

TODO

Gestion d'utilisateurs

Utilisateurs, groupes, groupes secondaires... http://www.commentcamarche.net/contents/linux/linusr.php3

état

getent passwd
  • Si puppet est installé, infos sur un utilisateur :
puppet resource user admyn
who
  • Afficher sous quel utilisateur je suis connecté
whoami
  • Afficher plus d'infos sur utilisateur
finger utilisateur
  • Passer à l'utilisateur toto
su - toto
  • supprimer un utilisateur
/usr/sbin/userdel -r toto

création

http://www.cyberciti.biz/faq/howto-add-new-linux-user-account/

sudo useradd -m rakhi   *-m creates a home*
sudo useradd -m -G {primary-group-name} username   *explicit primary group*
sudo passwd rakhi       <-- set a password

groupes

  • Lister les groupes :
getent group
  • Créer un groupe
groupadd toto
  • Afficher à quels groupes appartient un utilisateur
groups utilisateur
sudo usermod -g www-data tony          <-- remplace **tous** les groupes avec celui donné, **primaire**
sudo usermod -G www-data tony          <-- remplace **tous** les groupes **secondaires** avec celui donné
sudo usermod -a -G www-data tony       <-- **ajoute un groupe**, secondaire

ou bien UI gnome :

system-config-users

http://linux-samurai.over-blog.com/article-15201491.html

http://www.pendrivelinux.com/how-to-add-a-user-to-the-sudoers-list/

Avancé

Regarder les mots de passe hashés :

sudo cat /etc/shadow

Créer un mot de passe hashé :

mkpassd -H SHA-512 -S 12345678 password

(le sel doit faire 8 caractères exactement)

Fichiers de config

https://coderwall.com/p/oqtj8w

  • ~/.inputrc
"\e[A": history-search-backward
"\e[B": history-search-forward
set show-all-if-ambiguous on
set completion-ignore-case on

Réseau

Surveillance du réseau

Le grand classique pour voir son adresse IP

ifconfig -a

Et pour voir les ports ouverts et les connexions en cours :

sudo netstat -lap --inet

et / ou :

sudo netstat -lap --inet --numeric-ports

Config du réseau

Interfaces : http://www.linux-france.org/prj/inetdoc/cours/config.interface.lan/config.interface.lan.configuration.html

/etc/network/interfaces
cat /etc/hosts

Voir les DNS :

cat /etc/resolv.conf

Attention ! Ce fichier est écrit par le client DHCP. Il faut modifier /etc/dhcp3/dhclient.conf si on veut faire des modifs cf. http://ubuntuforums.org/archive/index.php/t-7280.html

/etc/init.d/network stop
/etc/init.d/network start

DHCP

demander une nouvelle adresse :

DNS

Vider son cache : http://forum.ubuntu-fr.org/viewtopic.php?id=101978

sudo /etc/init.d/dns-clean start

fully qualified domain name (fqdn)

Voir la page dédiée : fully qualified domain name

scp

Bonne doc http://cc.in2p3.fr/docenligne/134/fr

Copie d'un fichier d'une machine serveur1 vers une autre machine serveur2:

scp Login1@Serveur1:Chemin1/NomFichier1 Login2@Serveur2:Chemin2/NomFichier2

Copie d'un fichier depuis le répertoire courant vers un répertoire du serveur:

scp Fichier login@serveur:Chemin

Copie d'un répertoire, avec éventuellement ses sous-répertoires, vers un répertoire du serveur:

scp -r Repertoire login@serveur:Chemin

Copie d'un fichier du serveur vers le répertoire courant:

scp login@serveur:Chemin/Fichier .

Copie d'un répertoire du serveur vers le répertoire courant:

scp -r login@serveur:Chemin/Repertoire .

Problèmes rencontrés

Trouver les messages d'erreur

Messages d'erreur du noyau :

dmesg

à trier

Afficher le path

...

Afficher l'origine d'un élément

which xxx
type xxx    <- encore mieux, marche avec les alias et commandes shell
echo "test hello" |tr a-mn-z n-za-m
echo "grfg uryyb" |tr a-mn-z n-za-m

http://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/

Voir aussi

Chercher des packages : http://pkgs.org/

⚠️ **GitHub.com Fallback** ⚠️