Table of Contents

Commandes UNIX

Les fichiers

ls
ls -la
ls -laR
rm <fichier1> ... <fichiern>
rm -rf <fichier1> ... <fichiern>

Cree un ‘hardlink’

 le liens est fait avec le numero d'inode du fichiers
 (un compteur compte le nombre de hardlink sur un fichiers)
ln /usr/local /usr

(un fichier speciale contenant l’adresse de destination)

ln -s /mp3/windobesnd /mnt/hda7/Windobe/media

chown user:group file restaure les droits sur tout les fichiers du repertoire home de benoit qui appartient au group users

chown -R benoit:users /home/benoit
chmod 755 <fichier>
file /home/ctaf/monfichier
stat file

Les repertoires

pwd
  /home/ctaf
cd /usr
cd ..
cd
cd ~
cd -
mkdir <directory path>
man ls
script file

Information

hostname
uname -a
tty

FIXME

stty
id
lsusb
lspci
lshw
lsattr
ulimit

Mount/Share

mount /dev/hda1 /mnt/hda1
mount -t ntfs /dev/hda1 /mnt/hda1 -o user, gid=,uid=
mount -t smbfs -o username=myname,uid=my_uid,gid=my_gid //server/share /mnt/smb
smbmount //server/share /mnt/smb -o "username=myname,uid=my_uid,gid=my_gid"
smbclient -L 192.168.1.2
smbclient -N -L ip_address_of_your_PC | less
nmblookup -T "*"
mount //192.168.0.1/c /mnt/smb -o username=CTAF[,password=SuperLePass]
mount -o bind /proc /mnt/gentoo/proc
mount -o cofs cofs1 /mnt/c
fuser -cu /mnt/c
fuser -kxuc /dev/hda1
fuser -d /usr
lsof
touch -- "-i"
chattr
chattr +s file
chattr +i file
lsattr file
reiserfsck --rebuild-tree --scan-whole-partition /dev/partition
<code bash>

Gestion des processus

usefull key for zsh
Ctrl-c (control+c) in a terminal kill current processus
ctrl-z (control+z) suspend current processus
ctrl-s suspend term (your shell will not answer after)
ctrl-q resume term (after a ctrl-s)

top
ps
ps -e
ps aux
ps -ejH
kill PIDNUMBER
#envoie le signal 9
kill -9 PIDNUMBER
#envoie un SIGHUP
kill -SIGHUP PIDNUMBER
 
#tuer tous les processus(attention machine inutilisable aprés)
kill -1 -9
killall gdm
pkill namepattern
pgrep gnome
disown
nohup
jobs
bg
fg
  * on lance un xemacs en graphique
zsh$ xemacs
 
  * on appuie sur ctrl-z dans le terminal pour susprendre le processus en cours(xemacs)
zsh: suspended  xemacs
 
  * on affiche la liste des processus appartenant au terminal en cours
#la liste des jobs
zsh$ jobs
[1]  + suspended  xemacs
 
  * on resume le processus de xemacs en arrière plan
#on peut maintenant travailler dans le terminal et dans xemacs en même temps
zsh$ bg # resume xemacs in background
[1]  - continued  xemacs

Les Editeurs de textes

  * il fais tous (mail, news, jeux) sauf ce que les gens normaux espèrent (avis aux geeks :-) )
#il fonction sous x et en console (pratique en ssh)
#il gere la coloration syntaxique, affiche une arborescences avec les fichiers
#se controle entierrement au clavier!!
 
  * control + x, puis control + c pour quitter
emacs
 
  * pour le forcer a s'ouvrir en console:
emacs -nw
 
  * beurk, mais ceux qui aime emacs deteste vi et inversement!
#shit + ZZ pour quitter, sinon echap puis :q!  (sisi c'est bien ca avec le point d'exclamation à la fin!!)
vi
 
  * vi improved, j'en dis pas plus!
vim
 
  * mini editeur present partout qui reprend les raccourcis claviers de emacs en partie
#Control + X pour quitter
nano

Changer d'utilisateur

su ctaf
su
sudo COMMAND
su-to-root -X -p USER -c COMMAND

Conversion de fichiers

fromdos fichier_dos
dos2unix fichier_dos
todos fichier_unix
recode /cl../cr <dos.txt >mac.txt
recode /cr.. <mac.txt >unix.txt
recode ../cl <unix.txt >dos.txt
ps2pdf
doc2ps
convert file.jpg file.pdf
convert file1.jpg file2.jpg file3.jpg file123.pdf
#minuscule=>majuscule
echo roger | tr [:lower:] [:upper:]
ROGER
 
#majuscule=>minuscule
echo ROGER | tr A-Z a-z
roger

Commandes UNIX Reseau

Configuration du Reseau

ifconfig
ifconfig -a
ifconfig eth1 mtu 1500
ifconfig eth0 up
 
#commande specifique debian et derive
ifup eth0
ifconfig eth0 down
 
#commande specifique debian et derive
ifdown eth0

DNS & route

route
Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
default         CTAF-FCD        0.0.0.0         UG    0      0        0 eth0
route del default
 
  * Change la route par default (gateway), il faut dabord supprimer la route par default si il y en a une
<code bash>
route add default Gw 192.168.0.1
nslookup
nslookup www.google.fr 192.168.0.1
host
host www.google.fr

Outils

#trace la route d'un paquet tcp/ip
#affiche tout les serveurs par lequel passe le paquet avant d'atteindre l'ip specifie
traceroute
#route de google
traceroute www.google.fr
 
#teste si une adresse ip est 'up' et son ping
#attention la plupart des firewalls maintenant ont des options pour ne pas repondre au requete ICMP
#et ainsi etre en mode 'furtif' (d'apres le firewall!!
ping www.ctaf.free.fr
 
#connection reseau active sur la machine
netstat
 
ftp
# Programme de recuperation de fichier (HTTP, FTP,HTTPS)
wget
 
#pour telecharger recursivement tout les fichiers et dossiers du site internet de la poste
#permet de recupperer des albums mp3 facilement sur un serveur http, sans cliquer sur chaque chanson !!!
wget -r -N -l inf --connect-timeout=10 www.laposte.fr

SSH/SCP

Clefs

#genere une clef ssh2
#-N indique que l'on ne veux pas de passphrase
ssh-keygen -t dsa -N '' -d
#ajoute notre clef public dans authorised key, comme ca plus besoin de tapper de mot de passe
cat ~/.ssh/id_dsa.pub >>~/.ssh/authorised_keys
 
#genere une clef ssh1 (par forcement necessaire)
ssh-keygen -t rsa1 -N ''
cat ~/.ssh/identity.pub >> ~/.ssh/authorized_keys

Commandes

scp :fichierlocal root@localhost:/etc/network/fichierlocal ctaf@serveurssh.fr:.
scp -r :~/.ctafconf/ ctaf@IPSERVEURSSH:~/.
 
  * connection ssh sur le port 22 de serveur en temps que user
<code bash>
ssh -p 22 user@serveur
#commande distante: retabli la connection internet par ppp sur mon serveur
ssh user@monserveurdsl "poff; pon dsl-provider;"
ssh -t user@serveur1 "ssh user@serveur2"
ssh -A server
ssh -X server
ssh -X monserveur.free.fr emacs &
ssh -L port:host:hostport user@serveurhost
ssh -L 23:localhost:45 user@serveurdistant
ssh -L 4200:www.google.fr:80 serveurdistant
 
ssh -R port:host:hostport user@serveur
ssh -R 42:www.google.fr:80 user@serveurdistant

Astuces

Si un serveur change de clef vous ne pouvez plus vous y connecter. Vous recevez ce message:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
f3:78:8f:da:43:ad:22:2a:36:5f:46:9e:6b:ca:8e:d1.
Please contact your system administrator.
Add correct host key in /home/ctaf/.ssh/known_hosts to get rid of this message.
Offending key in /home/ctaf/.ssh/known_hosts:1
Password authentication is disabled to avoid man-in-the-middle attacks.
Keyboard-interactive authentication is disabled to avoid man-in-the-middle attacks.
Permission denied (publickey,password,keyboard-interactive).

Il vous suffit de supprimer la clef correspondant au serveur incrimine (ou carement le fichier know_hosts) dans votre .ssh/know_hosts et de recommencer. l’option stricthostkeychecking peut etre specifier dans le cas d’un configuration globale strict:

ssh -o stricthostkeychecking=no ctaf@sshserver@ssh.org

Zsh

Pour des exemples de configuration de zsh la ctafconf.

#les processus lance en tache de fond, ou avec un & à la fin sont detache de leur processus pere zsh
#si on ferme zsh, on ne ferme pas le processus detache
setopt nohup

Zmv

Introduction

Zmv, est un outils develloper avec zsh, il permet de renomer un groupe de ficher en un autre avec des expressions regulieres. Pour l’activer il faut avoir dans son fichier de configuration zsh:

#load zmv module
autoload zmv

Examples d'utilisation

>ls
12-mortobozore-r3.mp3 05-ctaf-vs-himself.mp3 13-CTAF-ctsmple-r2.mp3
 
#si les expressions passees en parametre ne permettent pas d'assigner
#un nom different a chaque
>zmv "([0-9][0-9])-(*).mp3" "\$1-CTAF-\$2.mp3" 
>ls
12-CTAF-mortobozore-r3.mp3 05-CTAF-ctaf-vs-himself.mp3 13-CTAF-ctsmple-r2.mp3
 
#renomme tous les fichiers en 1.foo , 2.foo, 3.foo etc...
>ls *
1.c  asd.foo  bla.foo  fnord.foo  foo.fnord  foo.foo
>c=1 zmv '*.foo' '$((c++)).foo'
>ls *
1.c  1.foo  2.foo  3.foo  4.foo  foo.fnord
 
#pareil mais seulement avec les noms de fichiers
#dont la taille est plus grande ou egale a 30
>c=1
>zmv "${(l:30-4::?:)}*.foo" '$((c++)).foo'
 
Remplace les espaces par des underscores
>zmv '* *' '$f:gs/ /_'
 
#renomme les .sh en .pl
>zmv -W '*.sh' '*.pl'
 
#passe en majuscule/majuscule tous les fichiers et dossiers
#Lower, minuscule
>zmv '(*)' '${(L)1}' 
#Upper majuscule
>zmv '(*)' '${(U)1}'
 
#supprime l'extension .c a tous les fichiers c
>zmv '(*).c' '$1'
 
#met en majuscule la premier lettre de tous les fichiers mp3
>zmv '([a-z])(*).mp3' '${(C)1}$2.mp3'
 
#Copie README dans chaque repertoire contenant un Makefile
>zmv -C '(**/)Makefile' '${1}README'
 
#Renomme pic1.jpg, pic2.jpg,.. en pic0001.jpg, pic0002.jpg,...
>zmv 'pic(*).jpg' 'pic${(l:4::0:)1}.jpg'
>zmv '(**/)pic(*).jpg' '$1/pic${(l:4::0:)2}.jpg' # recursive

Screen, le gestionnaire de fenetre en console

screen permet d’avoir plusieur fenetre en console et de splitter les fenetres. Si l’on ferme le terminal contenant screen, il suffit de faire un screen -r pour recupperer la session exactement comme avant.

screen c’est magique :

Windows
ctrl-a c create a windows
ctrl-a k kill the windows
ctrl-a n next window (ctrl-a space)
ctrl-a p prev window (ctrl-a backspace)
ctrl-a ” list all window
ctrl-a ctrl-a prev window (previously displayed)
Regions (window split)
ctrl-a K kill the current regions
ctrl-a S split the windows into 2 regions
ctrl-a Q kill all regions but the current one
ctrl-a tab switch regions
others
ctrl-a d detach le screen en cours
ctrl-a ctrl-x verrouille la session (mot de passe)
screen -r reatach to detached screen, attention ceci est une commande shell