administration unix - Offirmo-team/wiki GitHub Wiki
Voir aussi :
- unix, linux, debian, Ubuntu, CentOS, Raspbian, apt
- serveur
- Installation d'un serveur unix, Installation d'un serveur ubuntu sous virtualbox
- Maintenance unix, Maintenance linux
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
Ctrl + Alt + F1 - F7 permet de parcourir let tty
Ctrl + Alt + F7 est généralement affecté à korg = interface graphique
- Ctrl + L = effacer écran
- Ctrl + R = rechercher dans l'historique des commandes
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
ln -s TARGET LINK_NAME
chown offirmo /app
chown offirmo:groupx /app
chown -R root:developers /home/ct_repo
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
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
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
tar czf ton_rep.tar.bz ton_rep/
Connaître le noyau courant :
uname -r
alias :
http://www.math-linux.com/spip.php?article21
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
à partir du dossier courant :
find . -type f -exec grep -l "text to look for" {} \;
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.
uname --all
cat /etc/lsb-release /etc/debian_version /etc/redhat-release
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
sudo reboot
sudo halt
Version du noyau :
uname -r
Renouveler son bail DHCP http://www.cyberciti.biz/faq/howto-linux-renew-dhcp-client-ip-address/
sudo dhclient -r
sudo dhclient
- linux :
/etc/hosts
- windows :
%systemroot%\system32\drivers\etc\
C:\windows\system32\drivers\etc\
http://www.commentcamarche.net/faq/5993-modifier-son-fichier-hosts - ...
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
é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 *
du -sk dir
du -sk *
cat /proc/meminfo
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
TODO
Utilisateurs, groupes, groupes secondaires... http://www.commentcamarche.net/contents/linux/linusr.php3
- Lister les utilisateurs : (http://www.commentcamarche.net/forum/affich-1753469-liste-des-utilisateurs-mots-de-passe)
getent passwd
- Si puppet est installé, infos sur un utilisateur :
puppet resource user admyn
- Afficher les utilisateurs connectés au systeme http://www.commentcamarche.net/forum/affich-12309682-commandes-utilisateur-ubuntu
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
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
- Lister les groupes :
getent group
- Créer un groupe
groupadd toto
- Afficher à quels groupes appartient un utilisateur
groups utilisateur
- Ajouter un utilisateur à un groupe : http://www.cyberciti.biz/faq/howto-linux-add-user-to-group/ --> Attention à la différence entre -g et -G !!!! <--
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/
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)
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
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
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
demander une nouvelle adresse :
Vider son cache : http://forum.ubuntu-fr.org/viewtopic.php?id=101978
sudo /etc/init.d/dns-clean start
Voir la page dédiée : fully qualified domain name
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 .
Messages d'erreur du noyau :
dmesg
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
Chercher des packages : http://pkgs.org/