Un shell, deux shell, des shell…

18 juin 2008 à 20:28 Publié par MikaYuoadas dans Astuces Shell

Le shell, ce fameux amis du geek/libriste puriste.

On pense bien le connaitre, mais savez vous qu’il n’y a pas un shell mais Des shell, ayant chacun ces spécificités.

Généralement on utilise le shell Bash (Bourne again / Born again shell) nommé ainsi en l’hommage du shell historique de Unix, le shell de Bourne. C’est donc ce shell qui est livré par défaut avec toute bonne distribution qui se respecte.

Mais il existe beaucoup d’autres shell très intéressants. Voici la liste des shells que j’ai décidé de tester et de vous présentez dans cet article :

  • Bourne-Again shell (bash),
  • C shell (Csh),
  • Korn shell (ksh),
  • tcsh,
  • Z Shell (zsh).

Bourne-Again Shell

Celui là on va allez très très vite, c’est le shell que tout le monde connaît donc on ne traîne pas trop.

Comme le C shell, la touche tab permet l’auto-complétion des noms de commandes et de fichiers, ce qui accélère considérablement le travail. Les touches UP et DOWN permettent de naviguer avec facilité dans l’historique des commandes.


C Shell

Le C shell est une évolution du Bourne shell classique utilisant une syntaxe plus proche du langage C.


Korn Shell

Le Korn shell ou ksh est un shell Unix développé par David Korn au début des années 1980 (la première version est sortie en 1983). Il est compatible avec le Bourne shell et inclut également un grand nombre de fonctionnalités du C shell, mais il permet également des fonctions de scripting avancées utilisées dans des langages de programmation plus évolués comme awk, Sed, et Perl.

Son intérêt essentiel par rapport au Bourne Shell est une réexécution possible avec substitution des commandes de l’historique.


Tenex C shell



Diverses astuces du shell (inclassable)

4 mai 2008 à 17:17 Publié par Cold Sun dans Astuces Shell

Quelques astuces du terminal en vrac

Note : -> $ signifie que c’est ce la ligne que vous utilisez pour entrer une commande. C’est pour différencier des informations que vous renvoie le terminal. Lorsque vous testez une commande, enlevez le $ et tout ce qui se trouve avant.

-> parfois, avant le $, je place ces informations : user@/vers/repertoire (user = nom de l’utilisateur, /vers/repertoire = répertoire courant).

Astuce Résultat
début de commande + touche tabulation

Ex.1 : $ apt-g(touche tab)

Ex. 2: $ apt

Ex. 3 : $ cat /tmp/foo(tab)

(note : ici, /tmp/foobar est un fichier)

Complète le début de commande:

Ex. 1 : $ apt-get

Note : marche également pour les fichiers

et répertoires : -> cat /tmp/toto

Ex. 2 : $ apt-

Ex. 3 : $ cat /tmp/foobar

début de commande + 2 x touche tabulation

Ex.1 : $ unzi(2 x tab)

Liste les possibilités de commande, …

Ex. 1 (première tab) : $ unzip

(deuxième tab) unzip     unzipsfx

$ unzip

Flèche vers le haut ou vers le bas Consulter et/ou lancer d’anciennes commandes

(en appuyant sur entrée après avoir retrouvé

la commande)

Maj + gauche ou Maj + droite parcourir les onglets de Konsole (sous KDE)
~ (tilde, ALT GR + é) désigne le répertoire de l’utilisateur courant :

Ex : ~ = /home/user

.. (deux points successif) désigne le répertoire parent

Ex : ~/.. = /home/user/.. = /home

- (avec la commande cd uniquement) désigne le répertoire précédent

Ex. : user@/home/user/$ cd /tmp

user@/tmp/$ cd -

/home/user

user@/home/user/$

(anti-slash) C’est toute une histoire, et c’est un dur exercice

de vous la raconter :s .

Sous Unix et Linux, il signifie : « à utiliser

normalement »

exemple : user@/home/user/$ echo «  »coucou  » « 

« coucou « 

(sans les antislash, vous aurez des erreurs.)

Mais ce n’est pas tout, avec certaine commandes,

cela indique : « comportement spécial »

exemple : user@/home/user/$ echo -e «  »coucou  »

n « blabla » « 

« coucou « 

« blabla »

* remplace, 0, 1 ou plusieurs caractères

on peut le traduire en français par

[n'importe quoi]

Ex : user@/home/user$ ls a*.txt

->(traduisible par : « ls a[n'importe quoi].txt »)

a.txt alphabet.txt alphonse.txt avatar.txt

$ (dollar) Cette fois, il désigne [se termine par].

Ex. : user@/home/user$ grep « .$ » foobar.txt    (1)

Ligne se terminant par un point.

Autre ligne se terminant par un point.

encore une ligne se terminant par un point.

Note : pour désigner le point, un anti-slash

est nécessaire. Nous verrons pourquoi plus tard.

^ Désigne [commence par]

Ex. : user@/home/user$ grep « ^L » foobar.txt

. (avec grep)

Désigne un seul caractère

Ex. : user@/home/user$ grep « ^….$ » foobar.txt

toto

[] (crochets) Désigne un des caractères entre crochets

Ex. : user@/home/user$ grep « ^[Le] » foobar.txt

Ligne se terminant par un point.

encore une ligne se terminant par un point.

user@/home/user$ grep « ^[A-Z] » foobar.txt

Ligne se terminant par un point.

Autre ligne se terminant par un point.

Note: [A-Z] signifie « tous les caractères compris

entre A et Z », autrement dit, toutes les

majuscules

(1) Pour obtenir foobar.txt, tapez ceci :

cd /tmp ; echo -e « totonLigne se terminant par un point.nAutre ligne se terminant par un point.nencore une ligne se terminant par un point.n » > foobar.txt



[Recueil] Commandes de base

13 avril 2008 à 15:21 Publié par Cold Sun dans Astuces Shell

Notes :

-La plupart des manuels référencés ici proviennent de http://pwet.fr , site créé par un bénévole qui traduit les manuels de l’anglais en français. Vous les retrouverez également en anglais (parfois en français) grâce à la commande man.

- Les commandes ci-dessous doivent être écrite en minuscule, il est rare qu’une commande contienne une majuscule

cat : affiche le contenu d’un fichier.

exemple : cat fichier.txt

mv : déplace ou renomme un fichier

exemple : mv ancien_nom nouveau_nom

cp : copier des fichiers

exemple : cp origine nouveau

touch : crée un fichier ou modifie la date

et l’heure du dernier accès à un fichier

exemple : touch fichier

ls : lister les fichiers et

dossiers d’un répertoire

exemple : ls ~ (note : ~ est le répertoire

vers votre dossier personnel (ou home))

cd : pour change directory (changer de

dossier/répertoire)

exemple : cd /home

more : comme cat, affiche le

contenu d’un fichier,mais ligne

par ligne.

exemple : more fichier.txt

less (opposé de more) : affiche le contenu

d’un fichier ligne par ligne, mais permet

notamment de revenir en arrière, et une fois

qu’on quitte la commande.

exemple : less fichier.txt

man : affiche le manuel

d’une commande

exemples : man man

man cp

echo : afficher un texte

exemple : echo « hello world »

mkdir : crée un nouveau dossier vide.

exemple : mkdir mondossier

rm (pour remove) : supprime un fichier,

répertoire… Attention, il n’y a pas de corbeil

Réfléchir à deux fois avant de confirmer

exemple : rm fichier

grep : sélectionne des caractères

exemple : grep « toto » foobar

ls | grep « ^[A-Z]«