Stopmotion and light painting

Hexanet Datacenter

Image de prévisualisation YouTube
PDF    Envoyer l'article en PDF   

-- Download Solutions "Groupware" #RARE as PDF --


Solutions “Groupware”  #RARE

Un  “Groupware”, en Français “logiciel de travail collaboratif”, “collecticiel”…

“C’est un type de logiciel qui permet à un groupe de personnes de partager des documents à distance pour favoriser le travail collaboratif” dixit wikipédia

La premiére question est : Pour mon entreprise puis-je me tourner vers une solution Opensource et délaisser la grosse artillerie comme Microsoft Exchange ?
La réponse n’est pas aussi simple… Il faut déjà commencer par bien cerner les besoins et faire le tour des solutions.

Et se poser des questions comme:

  • Quel client de messagerie utiliser ?
  • Vais-je implémenter les fonctionnalités complètes de Serveur de messagerie ?
  • Est-ce que j’héberge le groupware ou fonctionnera t’il dans le “cloud” ?

En gros dans un Groupware on retrouve:

  • des mails
  • des contacts
  • des groupes
  • des calendriers
  • des documents

Ensuite autour de chacune de ces parties on peut retrouver de multiples déclinaisons de fonctionnalités comme par exemple une messagerie instantané, de la gestion de projet, de la gestion de temps, un système de votes, un système de pense-bête, bloc-note…

Pour nos journées de cours nous allons nous tourner vers une solution incourtournable à étudier : Microsoft exchange server

Puis nous essayerons de maquetter une autre solution avec un produit open source.

D’abord : MICROSOFT EXCHANGE SERVER

L’image de la page d’accueil résume assez bien les conditions requises pour pouvoir prétendre utiliser l

Pour commencer, étudiez précisément les prés-requis de Microsoft : http://technet.microsoft.com/fr-fr/library/aa996719%28EXCHG.140%29.aspx

Mailbox

  • Héberge boîtes aux lettres / dossiers publics
  • Haute disponibilité
  • Ne fait pas le transport de messages. (l’envoie / réception de mail échoue si pas de serveur transport HUB)
  • Serveur membre du domaine

Transport Hub

  • Catégorisation (résolution des destinataires) / conversion format de mails / routage des messages / règles de transport/ journalisation / taille maximum message envoyé et/ou reçu.
  • Anti-spam (désactivé par défaut).
  • Serveur membre du domaine

ClientAccessServer

  • Accès boîtes aux lettres via protocole  (ExchangeActiveSync, OWA, etc.)
  • Les services WEB (Auto-Discover) / Distribution OfflineAdressBook
  • Serveur membre du domaine
  • En Exchange 2010, les clients Outlook se connectent sur le serveur CAS pas sur le serveur MAILBOX

Transport EDGE

  • Joue le rôle d’une passerelle SMTP
  • Antispam
  • Analyse antivirus (nécessite une solution tiers)
  • Serveur NON membre du domaine et dans la DMZ

Messagerie Unifiée (UM)

  • Réponse aux appels
  • Réception de télécopie
  • Accès à ces mails à distance via Outlook Voice Access (consulter ses messages et son calendrier via module vocale, accepter ou annuler des demandes de rendez vous).
  • Machine membre du domaine.
  • Non supporté en machine virtuelle.
  • Nécessite IP-BPX / passerelle VOIP.

Afin de pouvoir tenter l’installation d’une maquette faisable, tester exchange, et faire le tour de sa configuration; nous installerons d’abord celui-ci dans une architecture minimaliste à 2 serveurs. En effet, en parcourant la documentation officielle on s’aperçoit qu’il faudrait un minimum de 2 à XX serveurs en fonction du niveau de haute disponibilité et de la redondance souhaitée sur les différents rôles de Exchange et de Active Directory.

Avant de se lancer dans l’installation de Exchange server il faut déjà préparer les serveur 2008 R2 et l’Active directory.

Ensuite pour l’installation et la configuration de base de Exchange Server, on peut soit utiliser les assistants d’install de 2008 et Exchange soit passer par des scripts en ligne de commande.

Pour le TD nous mettrons en place une structure virtuelle avec 2 serveurs 2008 R2 et un client Windows 7.

Les grandes lignes de l’installation:

  • On monte le premier Serveur 2008 R2
  • On laisse en dhcp pour les mises à jour
  • Installer les tools VM
  • On règle l’heure et nom de machine
  • On le place ensuite en ip fixe avec en dns les dns FAI (il fera le redirecteur auto)
  • On lance l’installation de AD DS
  • On lance le Dcpromo
  • Analyser le rôle AD
  • Analyser le rôle DNS
  • Mise en place de la structure active directory
  • On monte le deuxième serveur
  • On règle l’heure et le nom de machine
  • On fixe directement les bons paramètres IP
  • Installer les tools VM
  • A cause du clone, effectuer un sysprep pour générer un SID
  • On lance l’installation de AD DS
  • Dcpromo en contrôleur supplémentaire
  • installation des prérequis exchange en powershell
  • On fait le tour des mises à jour
  • Installation de Exchange depuis l’Iso
  • On règle les warnings et erreurs de l’installation
  • On configure chaque partie de Exchange à l’aide du Tuto de Mr Michaël Todorovic
  • On teste l’accès Webmail à partir du client.(OWA)
  • On teste Outlook à partir du client.

 

 

Pour vous faire une petite idée, voici quelques exemples de solutions open source

La démo de Horde

La démo de OpenXchange

La démo de Zimbra

La démo de OBM

La démo de Sogo

Attention encore en Beta

Sources : technet Microsoft, Devellopez.com,

PDF Creator    Envoyer l'article en PDF   

fred4 oliv3

PDF Writer    Envoyer l'article en PDF   

-- Download Introduction à Apache et Sécurisation de votre accés Web #RARE as PDF --


Pour notre TD :

Installer nano
apt-get install nano
Sources.list a modifier
# 

# deb cdrom:[Debian GNU/Linux 7.8.0 _Wheezy_ - Official i386 CD Binary-1 201501$

# deb cdrom:[Debian GNU/Linux 7.8.0 _Wheezy_ - Official i386 CD Binary-1 201501$

#deb http://ftp.fr.debian.org/debian/ wheezy main
#deb-src http://ftp.fr.debian.org/debian/ wheezy main

#deb http://security.debian.org/ wheezy/updates main
#deb-src http://security.debian.org/ wheezy/updates main

# wheezy-updates, previously known as 'volatile'
#deb http://ftp.fr.debian.org/debian/ wheezy-updates main
#deb-src http://ftp.fr.debian.org/debian/ wheezy-updates main
deb http://ftp.fr.debian.org/debian/ wheezy main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ wheezy main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free
Charger les modifs du sources.list
apt-get update

 

Installez htop (plus sympa que top)
apt-get install htop

Capture d’écran 2015-02-11 à 16.44.06

install pour la suite des différents TD
apt-get install mysql-client mysql-server openssl rkhunter binutils clamav

 

Install pour la suite des différents TD
apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-worker libapache2-mod-fastcgi php5-fpm php-apc apache2-utils libexpat1 ssl-cert php5 php5-common php5-gd php5-mysql php5-imap php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libruby libapache2-mod-ruby libapache2-mod-python php5-curl php5-intl php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

 

Installer Glances
apt-get install 'python-dev' 'python-jinja2' 'python-psutil' 'python-setuptools' 'hddtemp' 'python-pip' 'lm-sensors'

pip install 'Glances'

####pour lancer glances#####
glances

Capture d’écran 2015-02-11 à 17.32.39

Apache est un serveur http libre, c’est un des serveurs http les plus utilisé sur Internet

Capture d’écran 2015-02-11 à 16.51.02

Apache est conçu pour prendre en charge de nombreux modules lui donnant des fonctionnalités supplémentaires : interprétation du langage Perl, PHP, Python et Ruby, serveur proxy, Common Gateway Interface, Server Side Includes, réécriture d’URL, négociation de contenu, protocoles de communication additionnels, etc. Néanmoins, il est à noter que l’existence de nombreux modules Apache complexifie la configuration du serveur web. En effet, les bonnes pratiques recommandent de ne charger que les modules utiles : de nombreuses failles de sécurité affectant uniquement les modules d’Apache sont régulièrement découvertes.

On trouvera une documentation complète sur apache (en anglais) sur le site suivant :
http://httpd.apache.org/docs/.

Redémarrer Apache
 service apache2 restart
#######ou##############
/etc/init.d/apache2 restart
Vérifier que apache tourne
ps -ef|grep apache

La configuration globale d’apache s’effectue par modification du fichier de configuration /etc/apache2/apache2.conf. Apache pouvant gérer plusieurs serveurs, on trouve des compléments pour la configuration de chaque serveur dans /etc/apache2/site-enabled. Les fichiers de /etc/apache2/site-enabled sont inclus dans apache2.conf par un Include et suivent la même syntaxe. Les fichiers dans /etc/apache2/site-enabled correspondent aux serveurs activés et sont en fait un lien symbolique vers un fichier dans /etc/apache2/site-available, qui contient la liste de tous les serveurs disponibles. Par défaut, il n’y a qu’un seul serveur activé : le serveur par défaut. Ce qui suit décrit les principaux paramètres, et leur valeur attribuée par défaut à l’installation.

Dans apache2.conf:

DocumentRoot /var/www/html C’est le chemin par défaut du site Web

DirectoryIndex index.html index.php index.htm…Nom de la page d’index

Installation de Webmin

Install de Webmin
wget http://downloads.sourceforge.net/project/webadmin/webmin/1.730/webmin_1.730_all.deb
#####ensuite######
dpkg -i webmin_1.730_all.deb
######ensuite#######
#####Corrigez les erreurs avec####
apt-get install -f

Apache dans Webmin

installer wordpress
apt-get install wordpress
Créer le site
# nano /etc/apache2/sites-available/wp
Ajouter ceci au fichier wp
Alias /wp/wp-content /var/lib/wordpress/wp-content
        Alias /wp /usr/share/wordpress
        <Directory /usr/share/wordpress>
            Options FollowSymLinks
            AllowOverride Limit Options FileInfo
            DirectoryIndex index.php
            Order allow,deny
            Allow from all
        </Directory>
        <Directory /var/lib/wordpress/wp-content>
            Options FollowSymLinks
            Order allow,deny
            Allow from all
        </Directory>
rendre actif le site
a2ensite wp
relancer le service
service apache2 reload
#####ou#####@
service apache2 restart
creer le fichier config-dev.php
nano /etc/wordpress/config-dev.php
ajouter ce code au fichier
<?php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'localhost');
define('WP_CONTENT_DIR', '/var/lib/wordpress/wp-content');
?>
creer un fichier de config pour sql
nano ~/wp.sql
adapter pour le fichier
CREATE DATABASE wordpress;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
ON wordpress.*
TO wordpress@localhost
IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
créer la base

<pre><code>cat ~/wp.sql | mysql --defaults-extra-file=/etc/mysql/debian.cnf

Sécuriser Apache et son serveur

Tout d’abord Retour sur SSH qui va permettre d’accéder à votre serveur pour l’administrer. Merci a Alsacreation pour la personnalisation des scripts..

Configuration SSH

Afin de sécuriser l’accès SSH au serveur, éditons le fichier /etc/ssh/sshd_config. Nous allons changer le port de connexion par défaut pour éviter quelques attaques par bruteforce sur le port 22, qui est bien connu pour héberger ce service. N’oubliez pas de préciser ce nouveau port (dans Putty ou en ligne de commande ssh sous Linux) à la prochaine connexion.

vi /etc/ssh/sshd_config

Port 2222                  # Changer le port par défaut
PermitRootLogin no         # Ne pas permettre de login en root
Protocol 2                 # Protocole v2
AllowUsers dew             # N'autoriser qu'un utilisateur précis

Redémarrez le service SSH après ces modifications :

/etc/init.d/ssh restart

Alerte login Root

Vous pouvez éditer le fichier /root/.bashrc qui est exécuté au démarrage d’une sesion root pour envoyer un e-mail de notification. De cette façon, vous serez prévenu lorsqu’un login est effectué.

vi /root/.bashrc

Ajoutez la ligne (en modifiant l’adresse e-mail de destination) :

echo 'Accès Shell Root le ' `date` `who` | mail -s `hostname` Shell Root de `who | cut -d"(" -f2 | cut -d")" -f1` monitoring@test.com

Profitons-en pour un peu de personnalisation esthétique avec ces lignes :

alias ls='ls $LS_OPTIONS --color=auto'
alias ll='ls $LS_OPTIONS -al --color=auto'
alias vi='vim'

 Mise en place d’un Firewall (source alsacreations)

vi /etc/init.d/firewall

#!/bin/sh

# Vider les tables actuelles
iptables -t filter -F

# Vider les règles personnelles
iptables -t filter -X

# Interdire toute connexion entrante et sortante
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP

# ---

# Ne pas casser les connexions etablies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Autoriser loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT

# ICMP (Ping)
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT

# ---

# SSH In
iptables -t filter -A INPUT -p tcp --dport 2222 -j ACCEPT

# SSH Out
iptables -t filter -A OUTPUT -p tcp --dport 2222 -j ACCEPT

# DNS In/Out
iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT

# NTP Out
iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT

Si vous hébergez un sevreur web (Apache) :

# HTTP + HTTPS Out
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT

# HTTP + HTTPS In
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 8443 -j ACCEPT

Si vous hébergez un serveur FTP :

# FTP Out
iptables -t filter -A OUTPUT -p tcp --dport 20:21 -j ACCEPT

# FTP In
modprobe ip_conntrack_ftp # ligne facultative avec les serveurs OVH
iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Si vous hébergez un serveur de mail avec SMTP, POP3 et IMAP :

# Mail SMTP:25
iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT

# Mail POP3:110
iptables -t filter -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 110 -j ACCEPT

# Mail IMAP:143
iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT

# Mail POP3S:995
iptables -t filter -A INPUT -p tcp --dport 995 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 995 -j ACCEPT

N’oubliez pas de tester vos régles !!! Exemples, elles pourraient vous empêcher d’accéder à votre accés ssh si elles sont trop restrictives.

N’oubliez pas non plus de redémarrer le sevice firewall aprés les modifs..

######################################################################

IPtables / Netfilter

IPtables (associé à Netfilter) est un des meilleurs firewalls pour Linux, et certainement le plus répandu. Vous pourrez trouver de nombreux scripts de configuration à son sujet. En voici un, à adapter à votre configuration. A tout instant, utilisez la commande iptables -L -v pour lister les règles en place.

Celles-ci portent sur 3 chaînes : INPUT (en entrée), FORWARD (dans le cas d’un routage réseau) et OUPUT (en sortie). Les actions à entreprendre sont ACCEPT (accepter le paquet), DROP (le jeter), QUEUE et RETURN.

Arguments utilisés :

  • i : interface d’entrée (input)
  • i : interface de sortie (output)
  • t : table (par défaut filter contenant les chaînes INPUT, FORWARD, OUTPUT)
  • j : règle à appliquer (Jump)
  • A : ajoute la règle à la fin de la chaîne (Append)
  • I : insère la règle au début de la chaîne (Insert)
  • R : remplace une règle dans la chaîne (Replace)
  • D : efface une règle (Delete)
  • F : efface toutes les règles (Flush)
  • X : efface la chaîne
  • P : règle par défaut (Policy)
  • lo : localhost (ou 127.0.0.1, machine locale)

######################################################################

Fail2ban

Fail2ban est un script surveillant les accès réseau grâce aux logs des serveurs. Lorsqu’il détecte des erreurs d’authentification répétées, il prend des contre-mesures en bannissant l’adresse IP grâce à iptables. Cela permet d’éviter nombre d’attaques bruteforce et/ou par dictionnaire.

Installation

apt-get install fail2ban

Configuration

vi /etc/fail2ban/fail2ban.conf

loglevel
Niveau de détail des logs (défaut 3)
logtarget = /var/log/fail2ban.log
Chemin vers le fichier de log (description des actions entreprises par fail2ban)

Les services à monitorer sont stockés dans jail.conf. Il est recommandé d’en effectuer une copie nommée jail.local qui sera automatiquement utilisée à la place du fichier exemple.

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

vi /etc/fail2ban/jail.local

Quelques paramètres globaux :

ignoreip = 127.0.0.1
Liste des adresses IP de confiance à ignorer par fail2ban
bantime = 600
Temps de ban en secondes
maxretry = 3
Nombre d’essais autorisés pour une connexion avant d’être banni
destmail monitoring@test.com
Adresse e-mail destinataire des notifications
action
Action à entreprendre en cas de détection positive (voir dans /etc/fail2ban/action.d/)

Chaque section possède ses propres paramètres qui prennent le pas sur les globaux s’ils sont mentionnés :

enabled
Monitoring activé (true) ou non (false)
maxretry, bantime, ignoreip, destmail
Voir ci-dessus
port
Port IP concerné
logpath
Fichier de log à analyser pour détecter des anomalies
filter
Filtre utilisé pour l’analyser du log

Les filtres par défaut sont stockés dans /etc/fail2ban/filter.d. Ils contiennent en général une instruction failregex suivie d’une expression régulière matchant la détection d’une authentification erronée. Par exemple pour le service Courier :

failregex = LOGIN FAILED, ip=[<HOST>]$

Note : Celle-ci peut être précisée directement dans jail.local à la section appropriée pour prendre le pas sur la directive filter.

Modifiez les ports le cas échéant dans la section ssh si vous avez suivi la recommandation ci-dessus…

enabled = true
port    = 2222

Après modification de la configuration, n’oubliez pas de redémarrer fail2ban : /etc/init.d/fail2ban restart

Rkhunter

Rootkit Hunter

Rootkit Hunter est un programme de détection de rootkits. Vous pouvez l’installer grâce à :

apt-get install rkhunter

Il procédera à des détections journalières anti-rootkits et enverra des notifications par e-mail si nécessaire. Il est conseillé de l’installer très tôt car il calcule l’empreinte MD5 des programmes installés afin de détecter d’éventuels changements. Editez /etc/default/rkhunter pour indiquer l’adresse de notification et l’exécution journalière :

vi /etc/default/rkhunter

REPORT_EMAIL="monitoring@test.com"
CRON_DAILY_RUN="yes"

En cas de fausses détections positives sur des répertoires ou fichiers existants et sains, éditez /etc/rkhunter.conf pour les ajouter à la liste des éléments autorisés.

vi /etc/rkhunter.conf

ALLOWHIDDENDIR=/dev/.udev
ALLOWHIDDENDIR=/dev/.static

Vous pouvez également utiliser chkrootkit qui est un équivalent.

Empêcher l’accès aux sous dossiers

Bloquer l’accès à PhpMyAdmin par exemple.

Sur un reverse proxy

/etc/apache2/apache2.conf
RewriteCond %{THE_REQUEST} /phpmyadmin/
RewriteRule ^.*$ - [G,L]

Via le .htaccess

Renvoie un code 403.

RewriteRule ^phpMyAdmin - [F]

Empêcher l’accès à la racine de apache

/etc/apache2/sites-available/default
et /etc/apache2/sites-available/default-ssl
<Directory /var/www/>
                Options -Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                deny from all
</Directory>

Désactiver le listage des répertoires

Changer « Indexes » en « -Indexes ».

/etc/apache2/sites-available/default
/etc/apache2/sites-available/default-ssl
et les configurations des vhosts

Attribuer les permissions correctement

cd /var/www
chown www-monsite:www-monsite -R *
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
Word To PDF    Envoyer l'article en PDF   

Capture d’écran 2015-02-05 à 16.16.55

Lynis est un outil qui est très complet et il peut être utile aux administrateurs système.

il effectue plusieurs dizaines de vérifications sur votre système et fabrique  un rapport final avec des suggestions sur la sécurisation du système.

Pour installer Lynis sur Centos
 yum install lynis

Pour installer Lynis sur Debian apt-get install lynis

Attention aux versions sur les dépots.

Lancement de Lynis:

Capture d’écran 2015-02-05 à 16.23.27

 

 

Vérification des mises à jour

Capture d’écran 2015-02-05 à 16.23.40

 

 

 

 

 

Install depuis l’éditeur : https://cisofy.com/documentation/lynis/#installation-package

Quelques exemples de vérification :

Capture d’écran 2015-02-05 à 16.28.47

 

 

Capture d’écran 2015-02-05 à 16.29.11

Capture d’écran 2015-02-05 à 16.29.27Capture d’écran 2015-02-05 à 16.29.44A la fin de l’audit Lynis montrera les failles réelles référencées et non corrigées :

Capture d’écran 2015-02-05 à 16.36.21
Il est possible de “crontaber” Lynis biensur avec l’option “-cronjob” qui permettra l’exécution de l’audit sans intervention de l’utilisateur à chaque étape..

Vous allez donc pouvoir signer et horodater votre Audit

Capture d’écran 2015-02-05 à 16.42.35
PDF Download    Envoyer l'article en PDF   

Caractéristiques d’un interpréteur de commandes

Les interpréteurs de commandes disponibles en environnement Unix ont en commun les fonctionnalités suivantes :

  • Ils proposent un jeu de caractères spéciaux permettant de déclencher des actions particulières.
  • Ils possèdent des commandes internes et des mots clés parmi lesquels certains sont utilisés pour faire de la programmation.
  • Ils utilisent des fichiers d’initialisation permettant à un utilisateur de paramétrer son environnement de travail.

Chaque shell propose ses propres caractères spéciaux, commandes internes, mots clés et fichiers de paramétrage. Heureusement, les interpréteurs les plus utilisés actuellement dérivent tous du shell Bourne et ont, par conséquent, un certain nombre de fonctionnalités en commun.

Principaux interpréteurs de commandes

/usr/bin/sh

Cet exécutable correspond au shell POSIX sur certaines plates-formes (AIX, HP-UX), au Bourne Shell sur d’autres (Solaris). La page de manuel “sh” de chaque plate-forme indique la localisation des exécutables correspondant aux shells BOURNE et POSIX. Le shell POSIX possède, à quelques exceptions près, les fonctionnalités du ksh.

/usr/bin/ksh

Cet exécutable correspond au Korn Shell 88. Le programme “ksh” sait interpréter les scripts utilisant les fonctionnalités des shells Bourne, POSIX et Korn.

/usr/bin/ksh93

Cet exécutable correspond au ksh 93. Il s’agit d’un sur-ensemble du ksh 88. Ce shell n’est pas disponible sur toutes les plates-formes Unix.

/usr/bin/bash ou /bin/bash

Cet exécutable correspond au Bourne Again Shell. Le programme “bash” sait interpréter les scripts utilisant les fonctionnalités des shells Bourne, POSIX et Bourne Again. Le bash est disponible au téléchargement pour de nombreuses plates-formes UNIX qui ne possèdent pas ce shell en standard.

/usr/bin/csh

Cet exécutable correspond au C-shell. Le C-shell ne sait pas interpréter les scripts utilisant les fonctionnalités des shells Bourne, POSIX, Korn et Bourne Again. Il comprend uniquement la syntaxe C-shell.

 

Installer un nouveau shell

Pour le moment, vous devriez avoir sh et bash installés sur votre système. Si vous voulez essayer un autre shell, comme ksh par exemple, vous pouvez le télécharger comme n’importe quel paquet :

# apt-get install ksh

Une fois installé, il faut demander à l’utiliser pour votre compte utilisateur. Pour cela, tapez :

$ chsh

chsh signifie Change Shell.
On vous demandera où se trouve le programme qui gère le shell. Vous devrez indiquer /bin/ksh pour ksh, /bin/sh pour sh, /bin/bash pour bash, etc.

Création d’un premier Script

On passe par la commande touch ou par un éditeur pour créer le script

touch monscript.sh ou nano monscript.sh

J’ai donné ici l’extension .sh à monscript. On le fait souvent par convention pour indiquer que c’est un script shell, mais ce n’est pas obligatoire. Certains scripts shell n’ont d’ailleurs pas d’extension du tout.Il pourrait s’appeler monscript

La première ligne du script commence par le “sha-bang.”Il sert à dire quel shell on va utiliser .il permet de charger le bon shell mais il n’est pas obligatoire..si il n’est pas présent le shell de l’utilisateur courant sera utilisé.

#!        <---Ca c'est le sha-bang
on aura donc en début de script bash:
#!/bin/bash

Par convention et bon sens on va ajouter des commentaires dans le script. Ce sont des lignes qui ne seront pas exécutées mais qui permettent d’expliquer ce que fait votre script.

Tous les commentaires commencent par un #

#!/bin/bash

# Affichage du répertoire courant
pwd

Ensuite il faut enregistrer le script et lui donner des droits d’execution. Avec la commande :

chmod +x monscript.sh

il passera donc en – rwx r-x r-x au niveau de la permission

Et enfin on l’exécute avec ./

./monscript.sh

Lire PDF commandes interne et externe

EXO Commandes internes et externes

  1. Connectez-vous avec votre nom de login et ouvrez une console
  2. Dites si echo est une commande interne ou externe
  3. Quel est le résultat des commandes suivantes:
  • help
  • help echo
  • help cd
  • help ls cd –help
  • ls –help

Que pouvez-vous en déduire ?

4. Quel est le type de données contenu dans les fichiers suivants ?

  • /bin/bash
  • /etc/init.d
  • /sbin/poweroff

 

LIRE PDF AFFICHAGE A L’ECRAN

 Exo Affichage à l’écran

1. Exécutez la commande echo qui permet d’afficher le texte suivant à l’écran :

Les RARE C3 sont les meilleurs
oui, je le pense aussi

2. A l’aide de la commande echo, affichez la liste de caractères suivants:

& ~ # ( ) | \ ^@ $ * ! ;

3. Quel est le résultat affiché par les lignes de commandes suivantes:

echo pwd
echo `pwd`
echo "il ya `ls | wc -l` fichiers dans `pwd`"
echo "`whoami`, nous sommes le `date '+%d/%m/%y'`"
echo "$(whoami), nous sommes le $(date) "

Caractères spéciaux du shell

Caractères sh (Bourne) ksh 88 bash Signification
espacetabulationsaut de ligne oui oui oui Séparateurs de mots sur la ligne de commande.
& oui oui oui Arrière-plan.
| < << > >> oui oui oui Tube et redirections.
>| non oui oui Écrasement d’un fichier (option noclobber).
(cmde1;cmde2){cmde1;cmde2} oui oui oui Regroupement de commandes.
; oui oui oui Séparateur de commandes.
* ? [ ] oui oui oui Expressions pour noms de fichier et case.
* ? [ ] non oui oui Expressions pour la commande de test [[…]].
?() +() *()!() @() non oui oui Expressions pour noms de fichier [[ ]] et case.
$ et ${ } oui oui oui Valeur d’une variable.
`…` oui oui oui Substitution de commandes.
$() non oui oui Substitution de commandes.
’…’”…”\ oui oui oui Caractères de protection.
$(( )) non oui oui Substitution d’expression arithmétique.
cmde1 && cmde2cmde1 || cmde2 oui oui oui Opérateurs logiques du shell.
# oui oui oui Commentaire.
~ non oui oui Répertoire d’accueil de l’utilisateur.

Lire PDF sur les redirections

Lire PDF tubes de communications

20150204_094112(1)

 

20150204_094125

 

Lire PDF Regroupement de commandes

Lire PDF Processus en arrière plan

L’environnement SHELL

EXO Pré-Requis

PDF    Envoyer l'article en PDF   

linux22

Questions de Olivier C : Comment obtenir les infos matériel en ligne de commande sous linux ?

infos sur le ou les processeurs  :  cat /proc/cpuinfo

infos carte mère et bios : dmidecode  et  lspci  et  lsusb

infos sur les périphériques montés : mount

Sinon il ya le fameux:

apt-get install lshw
root@home:~# lshw

Informations sur la machine

- La marque de mon PC
- Son numéro de série 
- Le modèle du PC

Informations concernant la carte mère

lshw me donne pour la carte mère :
– La référence de la carte mère
– Le constructeur de la carte mère
– Le numéro de série

Informations sur le bios

J’obtiens comme informations sur le bios :
– La version du bios
– Le fabriquant du bios

Caractéristiques du processeur

Pour le cpu la liste des informations que j’ai retenue est :
– La fréquence du processeur
– La marque du processeur
– Le socket du cpu
– La liste des instructions et des fonctionnalités supportées
– La fréquence du bus
– Les niveaux de cache du cpu et leurs tailles
– Le nombre de coeur
– La taille des instructions supportées (processeur 32bits ou 64 bits).

Informations sur la mémoire du pc

Concernant la mémoire vive du pc je retiens :
– La capacité totale de mémoire de la machine
– Le nombre de slot occupés et surtout le nombre de slot vides (utile pour prévoir un upgrade matériel sans démonter sa machine).
– La référence des barettes de ram
– La taille des barettes de mémoire
– La fréquence de la mémoire et même son temps de latence si vous avez de la chance

Autres informations intéréssantes

– Modèle, taille, et partitionnement des disques durs
– Liste du matériel pci et pci express (carte réseau, carte graphique, carte son …) avec les modèles et les constructeurs.

PDF Creator    Envoyer l'article en PDF   

 

service --status-all|grep -i pid

Sinon après un peu de recherche sous debian il ya:

apt-get install chkconfig
# chkconfig -l 

# chkconfig -l

acpid                     0:off  1:off  2:on   3:on   4:on   5:on   6:off
alsa-utils                0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on
atd                       0:off  1:off  2:on   3:on   4:on   5:on   6:off
bluetooth                 0:off  1:off  2:on   3:on   4:on   5:on   6:off
bootlogd                  0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on
bootlogs                  0:off  1:on   2:on   3:on   4:on   5:on   6:off
bootmisc.sh               0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on
checkfs.sh                0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on
checkroot.sh              0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on
console-setup             0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on
cpufrequtils              0:off  1:off  2:on   3:on   4:on   5:on   6:off
cron                      0:off  1:off  2:on   3:on   4:on   5:on   6:off
dbus                      0:off  1:off  2:on   3:on   4:on   5:on   6:off
...

Significations:

* 0 System Halt * 1 Single user * 2 Full multi-user mode (Default) * 3-5 Same as 2 * 6 System Reboot


PDF Writer    Envoyer l'article en PDF   

Les Conditions  :le if (Si)

if [ test ] #####Si test de la variable
then        ######Alors 
        echo "C'est vrai"  ####Renvoi si c'est Vrai
 fi     #### Il délimite la fin du Si seulement si le Vrai est vérifié

 

ATTENTION au espaces a l’intérieur des crochets …

Petit test :

#!/bin/bash

nom="RAREC3"

if [ $nom = "RAREC3" ]
then
        echo "Les meilleurs sont les RARE C3!"
fi

Avec 2 variables

#!/bin/bash

nom1="RAREC3"
nom2="RAREC3"

if [ $nom1 = $nom2 ]
then
        echo "Vive les RARE !"
fi

Quand la condition n’est pas remplie on fait comme ceci :

if [ test ]                  ###SI
then                         ####Alors
        echo "C'est vrai"    
else                         ####Sinon
        echo "C'est faux"
fi
#!/bin/bash

nom="RAREC3"

if [ $nom = "RAREC3" ]
then
        echo "Vive les RAREC3!"
else
        echo "Dégages t'es pas un RAREC3 !"
fi

On peut charger la variable comme ca pour tester… :

#!/bin/bash

if [ $1 = "RAREC3" ]
then
        echo "Vive les RAREC3!"
else
        echo "Dégages t'es pas un RAREC3 !"
fi
./monscript RAREC3      ###### pour tester
./monscript autre chose    ###### la il fera le sinon

On peut ensuite faire comme ca :

#!/bin/bash

if [ $1 = "RAREC3" ]
then
        echo "Vive les RAREC3!"
elif [ $1 = "Tontonfred" ]
then
        echo "Hello Tontonfred"
elif [ $1 = "RAREC4" ]
then
        echo "Alors les nouveaux ca va ?"
else
        echo "Z'êtes pas du CESI bye!"
fi

Utilisons maintenant les TESTS

Il est possible d’effectuer trois types de tests différents en bash :

  • des tests sur des chaînes de caractères ;
  • des tests sur des nombres ;
  • des tests sur des fichiers.

Tests sur les Chaines de caractères:

Condition Signification
$chaine1 = $chaine2 Vérifie si les deux chaînes sont identiques. Notez que bash est sensible à la casse : « b » est donc différent de « B ».
Il est aussi possible d’écrire « == » pour les habitués du langage C.
$chaine1 != $chaine2 Vérifie si les deux chaînes sont différentes.
-z $chaine Vérifie si la chaîne est vide.
-n $chaine Vérifie si la chaîne est non vide.
#!/bin/bash

if [ -z $1 ]
then
        echo "Pas de paramètre"
else
        echo "Paramètre présent"
fi

Test sur les Nombres:

Condition Signification
$num1 -eq $num2 Vérifie si les nombres sont égaux (equal). À ne pas confondre avec le « = » qui, lui, compare deux chaînes de caractères.
$num1 -ne $num2 Vérifie si les nombres sont différents (non equal).
Encore une fois, ne confondez pas avec « != » qui est censé être utilisé sur des chaînes de caractères.
$num1 -lt $num2 Vérifie si num1 est inférieur ( < ) à num2 (lower than).
$num1 -le $num2 Vérifie si num1 est inférieur ou égal ( <= ) à num2 (lower or equal).
$num1 -gt $num2 Vérifie si num1 est supérieur ( > ) à num2 (greater than).
$num1 -ge $num2 Vérifie si num1 est supérieur ou égal ( >= ) à num2 (greater or equal).
#!/bin/bash

if [ $1 -ge 20 ]
then
        echo "Vous avez envoyé 20 ou plus"
else
        echo "Vous avez envoyé moins de 20"
fi

Test sur les fichiers:

-e $nomfichier Vérifie si le fichier existe.
-d $nomfichier Vérifie si le fichier est un répertoire. N’oubliez pas que sous Linux, tout est considéré comme un fichier, même un répertoire !
-f $nomfichier Vérifie si le fichier est un… fichier. Un vrai fichier cette fois, pas un dossier.
-L $nomfichier Vérifie si le fichier est un lien symbolique (raccourci).
-r $nomfichier Vérifie si le fichier est lisible (r).
-w $nomfichier Vérifie si le fichier est modifiable (w).
-x $nomfichier Vérifie si le fichier est exécutable (x).
$fichier1 -nt $fichier2 Vérifie si fichier1 est plus récent que fichier2 (newer than).
$fichier1 -ot $fichier2 Vérifie si fichier1 est plus vieux que fichier2 (older than).

#!/bin/bash

read -p 'Entrez un répertoire : ' repertoire

if [ -d $repertoire ]
then
        echo "Bien, vous avez compris ce que j'ai dit !"
else
        echo "Vous n'avez rien compris..."
fi

Recap plus infos complémentaires:

Tests sur les fichiers/répertoires

Voici une liste des tests possibles sur les fichiers et/ou répertoires :

  • “-e fichier” : vrai si le fichier/répertoire existe.
  • “-s fichier” : vrai si le fichier à une taille supérieure à 0.
  • “-r fichier” : vrai si le fichier/répertoire est accessible en lecture.
  • “-w fichier” : vrai si le fichier/répertoire est accessible en écriture.
  • “-x fichier” : vrai si le fichier est exécutable ou si le répertoire est accessible.
  • “-O fichier” : vrai si le fichier/répertoire appartient à l’utilisateur.
  • “-G fichier” : vrai si le fichier/répertoire appartient au groupe de l’utilisateur.
  • “-b nom” : vrai si nom représente un périphérique (pseudo-fichier) de type bloc (disques et partitions de disques généralement).
  • “-c nom” : vrai si nom représente un périphérique (pseudo-fichier) de type caractère (terminaux, modems et port parallèles par exemple).
  • “-d nom” : vrai si nom représente un répertoire.
  • “-f nom” : vrai si nom représente un fichier.
  • “-L nom” : vrai si nom représente un lien symbolique.
  • “-p nom” : vrai si nom représente un tube nommé.
  • “fichier1 -nt fichier2″ : vrai si les deux fichiers existent et si fichier1 est plus récent que fichier2.
  • “fichier1 -ot fichier2″ : vrai si les deux fichiers existent et si fichier1 est plus ancien que fichier2.
  • “fichier1 -ef fichier2″ : vrai si les deux fichiers représentent un seul et même fichier.
Tests sur les entiers
  • “entier1 -eq entier2″ : vrai si entier1 est égal à entier2.
  • “entier1 -ge entier2″ : vrai si entier1 est supérieur ou égal à entier2.
  • “entier1 -gt entier2″ : vrai si entier1 est strictement supérieur à entier2.
  • “entier1 -le entier2″ : vrai si entier1 est inférieur ou égal à entier2.
  • “entier1 -lt entier2″ : vrai si entier1 est strictement inférieur à entier2.
  • “entier1 -ne entier2″ : vrai si entier1 est différent de entier2.
Tests sur les chaines de caractères

Les chaines doivent être entourées par des guillemets.

  • “-n “chaîne”” : vrai si la chaîne n’est pas vide.
  • “-z “chaîne”” : vrai si la chaîne est vide.
  • “”chaine1″ = “chaine2″” : vrai si les deux chaînes sont identiques.
  • “”chaine1″ != “chaine2″” : vrai si les deux chaînes sont différentes.
Les combinaisons de tests

Les combinaisons de tests sont utilisées quand on doit faire plusieurs tests simultanément, c’est à dire, quand on doit répondre à plusieurs conditions.

On utilise les opérateurs && et || comme dans les commandes composées. L’opérateur ! sert à inverser la condition.

  • SI test ALORS commandes FIN : exécute les commandes si test est VRAI
  • SI ! test ALORS commandes FIN : exécute les commandes si test est FAUX
  • SI test1 && test2 ALORS commandes FIN : exécute les commandes si test1 ET test2 sont vrais tous les deux
  • SI test1 -a test2 ALORS commandes FIN : pareil de précédemment, avec une autre notation
  • SI test1 && ! test2 ALORS commandes FIN : exécute les commandes si test1 est VRAI ET test2 est FAUX
  • SI test1 || test2 ALORS commandes FIN : exécute les commandes si test1 OU test2 sont VRAIS
  • SI test1 -o test2 ALORS commandes FIN : pareil de précédemment, avec une autre notation
  • SI ! { test1 || test2 } ALORS commandes FIN : exécute les commandes si NI test1 NI test2 sont VRAIS


 

EXERCICES

Le script demande une note ,et il renvoi ceci :

  • “Autiste” si la note est entre 16 et 20
  • “A” lorsqu’elle est entre 14 et 16
  • “B” si la note est entre 12 et 14
  • “C” si la note est entre 10 et 12
  • “D” si la note est inférieur à 10

 

Les variables utilisateur

Ce chapitre présente les fonctionnalités qui composent les bases de la programmation shell.

Le shell permet de définir ou redéfinir des variables qui conditionnent l’environnement de travail de l’utilisateur. Il est également possible de définir d’autres variables, dites variables utilisateur, qui vont permettre de stocker des informations qui seront nécessaires durant l’exécution d’un script.

1. Nommer une variable

Voici les règles à utiliser pour attribuer un nom à une variable :

  • le premier caractère fait partie de l’ensemble [a-zA-Z_] ;
  • les caractères suivants sont pris dans l’ensemble [a-zA-Z0-9_].

2. Définir une variable

Une variable est définie dès qu’elle est initialisée. Le contenu d’une variable est considéré par le shell comme une suite de caractères.

a. Affecter une chaîne de caractères à une variable

Exemples

$ var1=mot1
$ echo $var1
mot1
$
PUCE.png

Il ne faut pas mettre d’espace autour du symbole d’affectation : dans l’exemple suivant, le shell interprète var1 comme la commande à lancer, = et mot1 comme les deux arguments de la commande var1. Autrement dit, il n’interprète pas le signe = comme symbole d’affectation.

p128.png

b. Affecter une chaîne de caractères contenant au moins un espace

L’espace doit être protégé car c’est un caractère spécial du shell (séparateur de mots sur la ligne de commande).

Exemples

$ var2=’mot1 mot2 mot3’ #CORRECT
$ echo $var2
mot1 mot2 mot3
$ var2=mot1 mot2 mot3 #INCORRECT 
ksh: mot2:  not found
$

c. Variable indéfinie

Une variable qui n’a jamais été initialisée est vide.

PUCE.png

L’utilisation d’une variable vide n’est pas considérée comme une erreur en shell.

Exemple

$ echo $vide

$

d. Retirer la définition d’une variable

La commande interne unset permet de retirer la définition d’une variable.

Exemple

Définition d’une variable var :

$ var=12
$ echo $var
12

Elle apparaît dans la liste des variables définies au niveau du shell :

$ set | grep var
var=12

La définition de la variable est retirée :

$ unset var

La variable est indéfinie :

$ echo $var

$ set | grep var
$

e. Isoler le nom d’une variable

Il faut faire attention en concaténant le contenu d’une variable et d’une chaîne de caractères à ce que le shell interprète correctement le nom de la variable.

Exemple

Pour le shell, le caractère _ fait partie du nom de la première variable :

 

$ fic=resu
$ datejour=20110117
$ newfic=$fic_$datejour
$ echo $newfic
20110117

Pour le shell, la première variable se nomme fic_ (puisque le caractère souligné est autorisé à l’intérieur d’un nom de variable !). Celle-ci est donc substituée par sa valeur (donc vide !), puis concaténée avec le contenu de la variable datejour.

Pour faire comprendre au shell quels sont les caractères qui font partie du nom de la variable, il faut entourer le nom de cette dernière avec des {}.

Exemple

$ fic=resu
$ datejour=20110117
$ newfic=${fic}_$datejour
$ echo $newfic
resu_20110117

3. Substitution de variables

Le shell offre la possibilité d’attribuer une valeur par défaut aux variables non initialisées, ou au contraire, initialisées.

Expression ${variable:-valeur}

  • Si la variable n’est pas vide, l’expression est substituée par le contenu de celle-ci.
  • Si la variable est vide, l’expression est substituée par valeur.

Exemple

$ fic=/tmp/christie.log
$ echo "Le fichier traite sera: ${fic:-/tmp/default.log}"
Le fichier traite sera: /tmp/christie.log
$ unset fic
$ echo "Le fichier traite sera: ${fic:-/tmp/default.log}"
Le fichier traite sera: /tmp/default.log
$ echo $fic

$

Expression ${variable:=valeur}

  • Si la variable n’est pas vide, l’expression est substituée par $variable.
  • Si la variable est vide, variable est affectée avec valeur et l’expression est substituée par valeur.

Exemple

$ fic=/tmp/christie.log
$ echo "Le fichier traite sera: ${fic:=/tmp/default.log}"
Le fichier traite sera: /tmp/christie.log
$ echo $fic
/tmp/christie.log
$ unset fic
$ echo "Le fichier traite sera: ${fic:=/tmp/default.log}"
Le fichier traite sera: /tmp/default.log
$ echo $fic
/tmp/default.log
$

Expression ${variable:+valeur}

  • Si la variable n’est pas vide, l’expression est substituée par valeur.
  • Si la variable est vide, l’expression est substituée par $variable, donc vide.

Exemple

$ a=1
$ echo "Expression : ${a:+99}"
Expression : 99
$ unset a
$ echo "Expression : ${a:+99}"
Expression :
$

${variable:?message}

  • Si la variable n’est pas vide, l’expression est substituée par $variable.
  • Si la variable est vide, le shell affiche le nom de la variable suivie de la chaîne de caractères message.
PUCE.png

Si la variable est vide et que cette commande est placée dans un script shell, celui-ci affiche le message et se termine immédiatement.

Exemple

La variable var est vide :

$ echo $var

$ echo ${var:?"var non definie"}
bash: var: var non definie

Message par défaut :

$ echo ${var:?}
bash: var: parameter null or not set

Définition de la variable var :

$ var=definie
$ echo ${var:?"var non definie"}
definie
$






Sources :Eni .Site du Zéro

 

Word To PDF    Envoyer l'article en PDF   

La piscine est peu profonde si on y pénètre par le bon côté.. A vrai dire c’est même une pataugeoire.
Par contre pour aller là où vous n’avez pas pied il faut savoir nager ou être équipé..


 

EXO 1.1

  1. Ouvrez une session en mode terminal. Tapez votre nom et votre mot de passe
  2. Quel est le prompt utilisé ?
  3. Affichez le nom de votre shell à l’aide d’une variable
  4. Ouvrez une deuxième session en mode terminal.. Connectez vous en tant que root
  5. Afficher le shell de root à l’aide d’une variable

EXO 1.2

  1. Affichez la liste des utilsateurs qui utilise comme shell de connexion le : /bin/bash
  2. Affichez leurs nombres
  3. Revenez sur la première console et optez pour le shell “sh” que se passe t’il ?
  4. Répétez l’étape précédent avec ksh. Que remarquez-vous ?
  5. Revenez à votre shell de départ
  6. Affichez le shell de connexion de root tout en restant sous votre identité
  7. En tant que root créez un utilisateur user2 et affectez-lui le /bin/sh comme shell de connexion
  8. Ouvrez une console et connectez-vous en tant que user2

EXO 1.3

  1. Affichez la liste des fichiers de votre répertoire courant sans explorer les sous répertoires
  2. Affichez les fichiers cachés de votre répertoire courant
  3. Affichez de maniére récursive, les caractéristiques de tous les fichiers de votre répertoire courant.
  4. Créez un répertoire nommé : Repertoire
  5. Copiez le fichier /etc/passwd dans Repertoire
  6. Renommez le fichier passwd en password
  7. Supprimez le fichier password
  8. Supprimez le dossier Repertoire
  9. Affichez le contenu du fichier /etc/group
  10. Afichez le nombre de lignes du fichier /etc/passwd
  11. Triez le fichier /etc/passwd et stockez le résultat dans un fichier nommé password dans votre répertoire courant.
  12. Affichez les 5 premières lignes du fichier /etc/group

Exo 1.4

  1. Affichez la liste des utilisateurs connectés sur le système
  2. Changez temporairement d’identité et devenez root
  3. Recherchez la chaine de caractères root dans le fichier /etc/passwd.récupérez le résultat dans un fichier tout en l’affichant sur l’écran
  4. Recherchez dans le répertoire / tous les fichiers dont le nom contient la chaine sh
  5. Affichez en Ko la taille totale des fichiers de votre répertoire courant
  6. Affichez des informations sur l’utilisation de l’espace disque de votre système de fichier /.
  7. Affichez des informations sur le contenu des fichiers suivants:
  • /etc/passwd
  • /etc/init.d
  • /bin/bash
  • /bin/sh
  • /etc/init.d/crond

EXO 1.5

  1. Sur une fenêtre console, lancez l’environnement sh
  2. Lancez les commandes suivantes: alias, history, logout
  3. Relancez les commandes précédentes en ksh puis en bash
  4. Essayez de rappeler ces commandes dans les trois environnements shell. Que constatez-vous ?

Alors vous êtes-vous noyé dans la pataugeoire ?

 

PDF Download    Envoyer l'article en PDF