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
pwd
/home/ctaf
cd /usr
cd ..
cd cd ~
cd -
mkdir <directory path>
man ls
script file
hostname
uname -a
tty
stty
id
lsusb
lspci
lshw
lsattr
ulimit
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>
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
* 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
su ctaf
su
sudo COMMAND
su-to-root -X -p USER -c COMMAND
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
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
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
#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
#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
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
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
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, 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
>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 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 |