Sous-sections : LaTeX - Images/Graphiques/etc... - emacs
Cette section :
FAQ est l'abréviation de "Frequently Asked Questions"
(parfois traduit "Foire Aux Questions"). Ce terme
provient des news où il est employé pour désigner la/les news qui
regroupe(nt) les réponses aux questions les plus fréquements
posées dans un newsgroup.
Qui dit FAQ suppose donc des QUESTIONS
POSÉES. N'hésitez donc pas à me contacter pour poser des
questions relatives à votre utilisation quotidienne des stations Unix.
Avec ce petit bout de csh-script, à mettre dans votre .cshrc
#
# Poubelle ou WasteBasket
#
setenv POUBELLE ${HOME}/.wastebasket
alias rm 'mv \!* ${POUBELLE}'
alias unrm 'mv -i ${POUBELLE}/\!* .'
alias undelete 'mv -i ${POUBELLE}/\!* .'
alias vide-poubelle '/bin/rm -fr ${POUBELLE}; mkdir ${POUBELLE}'
alias eboueur vide-poubelle
Avec ceci le rm se transforme en un move dans votre poubelle ! Et vous avez même le undelete !
Mais attention il faut pensez alors à vider sa poubelle périodiquement (à l'aide de vide-poubelle ou eboueur). Le mieux est de mettre un cron (voir ici pour plus de détails).
Si vous voulez VRAIMENT le rm vous tapez alors \rm ou /bin/rm ce qui bypass l'alias.
Complément :
Ce qui précède est spécifique à (t)csh. En bash, voici les lignes à
mettre dans de .bashrc :
export POUBELLE=${HOME}/.wastebasket
function myrm {
mv $* $POUBELLE
}
alias rm=myrm
Normalement par défaut cela devrait être le
cas. Il suffit d'appuyer la touche <Compose>, la lettre à
accentuer, puis la touche simulant l'accent.
Par exemple pour produire un "é", tapez :
<Compose> e '
Si ceci ne marche pas cela vient surement de
votre locale, c'est-à-dire des variables
LANG, LC_CTYPE, LC_NUMERIC,
LC_TIME
LC_COLLATE
LC_MONETARY
LC_MESSAGESet
LC_ALL (voir les man pages locale et
environ, section 5, pour plus de détails).
L'environnement en_US (normalement par défaut)
permet les accents. Si vous ne l'avez pas c'est que soit vous
avez joué avec l'option "Language" lors de votre login, soit
vous avez volontairement modifié votre locale (par exemple dans
votre .cshrc).
Voici l'environnement courant au LIA (et sous lequel les
accents fonctionnent) :
LANG=en_US LC_CTYPE=en_US LC_NUMERIC=en_US LC_TIME=en_US LC_COLLATE=en_US LC_MONETARY=en_US LC_MESSAGES=C LC_ALL=
comm -12 file1 file2
Voir la man
page de comm
Avec ce petit bout de csh-script, on selectionne 80% (1-0.2) des fichiers locaux :
ls -1 > ! /tmp/files
foreach file ( `gawk 'BEGIN {srand()} rand() > 0.2' /tmp/files` )
do_your_job_on $file
end
rm /tmp/files
Pour executer de façon périodique un script
shell il existe la commande cron, ou plus exactement
crontab. Cette commande permet de tenir à jour la
liste des commandes à executer périodiquement
Pour exectuer péridiquement une tâche
complexe, le mieux est de la mettre dans un fichier script
(typiquement Shell script) et de ne lancer que ce fichier
depuis la crontab. Ceux qui se sentent assez fort peuvent
s'ammuser à écrire leurs scripts directement dans la crontab,
mais je le déconseille fortement. Une fois ce fichier script
crée (disons mon_script.sh pour l'exemple) il suffit
d'ajouter une ligne dans votre crontab par
crontab
-e
qui lance votre éditeur préféré.
On ajoute alors la ligne en spécifiant la péride sous la forme
minutes (0-59) heure (0-23) jour dans le mois (1-31) mois
(1-12) jour dans la semaine (0-6, 0=dimanche)
puis on met la
commande derrière.
Exemples :
14 04 * * * mon_script.sh
execute
mon_script.sh tous les jours à 04h14
01 00 31 12 * cd ou/je/vais;
mon_script.sh
execute mon_script.sh dans le
répertoire ${HOME}/ou/je/vais tous les 31 décembre à
minuit une
01 00 31 12 0 mon_script.sh
execute
mon_script.sh tous les dimanches 31 décembre à
minuit une (ce qui est rare)
01 00 * 12 0 mon_script.sh
execute
mon_script.sh tous les dimanches de décembre à
minuit une
Il faut évidemment que la commande (ici mon_script.sh) soit executable ! Ca veut dire avec les bons droits et accessible via le PATH !
Sachez enfin que crontab -l liste vos cron sur la machine courante.
Essentiellement suivre les instructions
venant avec le
plug-in. MAIS ne pas oublier de modifier la variable
d'environement NPX_PLUGIN_PATH ! Par exemple (dans
son .cshrc) :
NPX_PLUGIN_PATH=/nfs/depot-local/sunos/communicator/SUNWj2pi/plugins:${HOME}/.netscape/plugins
si vous avez mis vos nouveaux plugin dans votre répertoire .netscape/plugins
Installer le plugin ! ;-)
Il s'agit du plugin "Netscape Default Plugin" (fichier
libnullplugin.so). Il est fournit ici pour Solaris. Le mettre dans vos
plugins (cf question ci-dessus).
Il faut déjà avoir un terminal qui autorise les
couleurs (kvt, dtterm,
color_xterm, ...) ce qui n'est pas
le cas d'xterm. Puis il faut utiliser le gnu
ls, par exemple /usr/local/bin/gnu/ls avec l'option
--color=auto.
En clair : ajouter la ligne
alias ls '/usr/local/bin/gnu/ls --color=auto'
dans votre .cshrc
La variable qui controle les couleurs est
LS_COLORS. Voir la man page de GNU ls (ou gls). Pour ma
part j'utilise :
setenv LS_COLORS 'ln=4;35:ex=31:*~=36'
Bien que la seule et unique façon de
correctement traiter des fichiers Word soit à mes yeux de les
mettre directement à la poubelle, il se peut que vous ayez
envie de jetter
un coup d'oeuil à ce n-ième fichier Word que vous venez de recevoir
par email, et ceci sans avoir à vous déplacer/logger sur les
PC.
La solution existe :
Pour y avoir accès, il suffit de faire (la première fois) une petite installation locale. Lancez pour cela la commande
/nfs/liasun25/office-51/bin/setupet répondez à toutes les questions. Attention au choix du répertoire où vous installer Star Office : il ne sera pas possible (enfin si, mais difficile !) de le déplacer par la suite.
Ceci dit, pour faire des jolis documents et/ou transparents, qui soient portables, gratuits, etc.. etc.., je conseille l'emploi de LaTeX (ou LyX pour les débutants) et sa classe seminar pour les transparents.
gtroff -man manpage.1 |grops
Pour l'avoir en commande
directe, utiliser ce petit alias :
alias man2ps 'gtroff -man \!* |grops'
que l'on utilise par exemple par :
( man2ps /usr/share/man/man1/ls.1 ) > ! ls.ps
Pour connaître les fichier man, utiliser l'option
-l de man. Par exemple :
man -l ls
Pour ceux qui souhaite avoir une commande qui agit comme man mais produit un fichier PostScript, voir la commande psman dans /users/chaps/bin et dont le code source est donné ici.
sox -t .wav MONWAVFILE.wav -t .au - | audioconvert -f format=sun,voice | audioplay
Il vous faut pour cela un logiciel qui supporte les Rock Ridge extensions (voir aussi ici).
Au LIA, mkisofs est disponible dans la zone publique :
<zone-publique>/mkisofs-1.12.1/bin/mkisofs
L'utilisation standard pour graver un CD qui soit compatible avec les Sun (cad noms longs, liens symboliques, etc...) est de :
Pour plus de détails, voir la manpage :
<zone-publique>/mkisofs-1.12.1/man/man8/mkisofs.8
Notez l'existence des flags bien utiles -m et -no-bak.
Il y a aussi possibilité de faire des sessions multiples (mais
je n'ai ni testé ni pratiqué). Pour cela voir :
<zone-publique>/mkisofs-1.12.1/doc/README.multi
La raison est simple : le projet DIODE dont le but est de rendre le réseau de l'école un peu plus sécurisé.
Concrètement, utilisez ssh plutôt que telnet.
En principe sur les stations Unix de l'école il n'y a rien à faire. Pour les PC sous Linux, plusieurs distributions de Linux contiennent ssh. Sous Windows, il existe également un client telnet/ssh dénomé putty (voir ici pour download et infos).
Cependant, si vous n'avez pas de client ssh sur votre machine (distante par exemple), il est facile d'en installer un. On peut en trouver ici pour la plupart des plateformes. Ensuite, il suffit de lancer le client. La plupart sont configurés pour ouvrir une connection telnet à l'interieur d'un canal sécurisé.
Si le client n'a pas été configuré (ce qui
sera surement votre cas), c'est le login (username + password)
qui sont utilisés pour
identifier la personne, exactement comme avec telnet
(sauf que la transmission des données est cryptée).
Il est par contre possible pour accéder à certains server
ssh paranos (ce qui ne semble pas encore être le cas de l'EPFL)
qu'il faille se constituer une "identité" (sous Solaris au
moyen de ssh-keygen) associée à chaque compte que l'on
utilise, et placer dans un fichier particulier
(${HOME}/.ssh/authorized_keys) la liste des
identités autorisées à effectuer un login distant.
ftp simple est en effet bloqué à l'EPFL depuis la mise en place du projet DIODE dont le but est de rendre le réseau de l'école un peu plus sécurisé.
Concrètement, utilisez votre browser préféré pour faire du ftp. Cela se fait à l'aide de l'entête ftp://. Utilisez user@adresse pour un accès personalisé.
Exemple : faire un ftp anonymous à l'adresse ici.site.pays, tapez l'URL
ftp://ici.site.paysdans votre browser.
Pour déposer des fichiers sur un site, utilisez la fonctionnalité "Upload File.." de votre browser (menu "File" dans Netscape).
Pour plus de détails voir la FAQ du projet DIODE.
lpr -Z side=1 -Pmonimprimante monfichier
Passez la commande 'pipe' à votre shell favori et "timer" l'execution de ce shell. Ceci fonctionne d'ailleurs pour "timer" toute commande complexe.
Exemple : pour avoir le temps d'excusion de la commande
ls | grep ps faire :
time sh -c 'ls | grep ps'
Réponse en un exemple simple :
(time ls > resultat) >
temps
Le fichier resultat contient le résultat de la commande (en l'occurence ls) et le fichier temps contient le résultat du "timing".
Simplement en mettant le TAB (en clair) dans l'argument de
grep. Le problème vient souvent que votre shell
interprète TAB avant même de le passer à la commande. Et
il vous est donc impossible de taper :
grep ' ' fichier (entre les deux '
c'est un vrai TAB qu'il y a)
Solution : passez sous sh et tapez la commande
précédente :
sh
$ grep ' ' fichier
$ exit
Une autre solution est d'utiliser gawk :
gawk '$0 ~ /\t/' fichier
Et pour l'équivalent de grep -n :
gawk '$0 ~ /\t/ {print NR,$0}' fichier
On ne peut pas le faire directement. Il faut d'abord préparer
les divers fichiers sur votre disque (par exemple dans
/tmp).
Pour cela, la bonne commande à utiliser est split (ou
gsplit pour utiliser le split GNU). La syntaxe de base
qui fonctionne pour les deux est :
split -b 1392k grosfichier blocname.
où "1392k" est la taille des blocs en lequels le
grosfichier va être découpé.
Pour plus de détails voir la manpage :
man -s 1 split
Notez en particulier l'option -a 3 sur le split Unix
standard (non GNU) si vous voulez des
disquettes compatible DOS (mais c'est vrai que c'est rare de nos
jours ;-) )
Remarque : pour aller sur une disquette 1.44 Mo, utilisez des blocs de 1392k (le reste étant pris par le système) :
split -b 1392k -a 3 grosfichier /tmp/grosfichier.
Pour finir il vous reste à copier les blocks sur disquette, un après l'autre. Au labo, il faut faire :
volcheck
cp blocname.aa /floppy/floppy0/
eject floppy
etc... etc...