View previous topic :: View next topic |
Author |
Message |
idodesuke Apprentice
Joined: 19 Dec 2005 Posts: 244 Location: France
|
Posted: Fri Jun 17, 2011 12:45 pm Post subject: [LIGNE DE COMMANDE] Maîtriser son OS |
|
|
Ce sont les commandes du système j'ai pris des notes au fur et à mesure, si ça peut aider des gens a se mettre à la ligne de commande, et si d'autres peuvent partager leurs trucs et astuces, on peut ajouter des choses. Par contre il pourrait y avoir une différence entre mes memos personnels et ceux que je poste sur le forum.
changelog
Code: | 2082011:
J'espère que je ne suis pas trompé dans mes copier/coller sinon je reviendrai dessus plus tard. J'ai ajouté un -1
(pour des mises à jour si besoin) à la fin des noms de fichiers, je vais en faire autant sur ma machine, j'ai ajouté
la date d'aujourd'hui en début de fichier aussi.
Je ne sais pas trop comment noter les commandes, noter les choses à changer entre <> ça me parraît pas mal. Je ferai
plus attention en lisant les pages de man et je reviendrai dessus.
Je peux gérer les versions des fichiers " /home/ido/workshop/wks/prj/memo/"
Et me contenter de dater les fichiers dans "~/memo"
ido@zalem memo 17:48
$ls /home/ido/workshop/wks/prj/memo/
changelog memomultimedia-1 memoos-1 memoosgentoocontrib-1 memoosgentooupdate-1 memoossysadmin-3 memotext-1
ido@zalem memo 17:48
$ls ~/memo
h.c_monitors memodevcvs memodevxml memomultimedia memoosadvanced memoosgentooebuild~ memoosmemory1 memotemplate~ memotxtmiseenforme
memobrowsecode memodevcvsad memodevxsl memomultimedia~ memoosadvanced~ memoosgentooupdate memoossysadmin memotext memotxtmiseenforme~
memobrowsecode~ memodeverrors memodevxslex memonotes memoosadvanced1 memoosgentooupdate~ memoossysadmin~ memotext~ memowww
memocharacterencoding memodevhead memoemacs memonotes~ memoosgentoocontrib memoosgentooupdate1 memoossysadmin1 memotext1 memowww~
memodevc memodevpy memognuplot memoos memoosgentoocontrib~ memoosido memosed memotime memowwwhttpcodes
memodevc~ memodevpy~ memognuplot~ memoos~ memoosgentoocontrib1 memoosmemory memotemplate memotime~
memodevcoptimization memodevseek memographicspainting memoos1 memoosgentooebuild memoosmemory~ #memotemplate# memotxtlatex |
memomultimedia-1
Code: | #17/06/2011 v1
\033[1;31m--> Image iso\033[0m
$mkisofs -r -o mon_image.iso mon_fichier
$mount -t iso9660 mon_image.iso mon_fichier -o loop
----------
\033[1;31m--> Commandes pour graver DVD :\033[0m
$dvd+rw-format -force /dev/dvd && mkisofs -r -o backup.iso backup && growisofs -Z /dev/dvd=backup.iso
$growisofs -dvd-compat -Z /dev/dvd -R -J -pad mon_repertoire
----------
\033[1;31m--> Commandes pour graver CD :\033[0m
$cdrecord dev=ATA -scanbus
$cdrecord -v -dao speed=8 dev=ATAPI:x,y,z /chemin/image.iso
----------
$mount -o rw,user /dev/sdb1 /media/usbkey
----------
\033[1;31m--> MPLAYER :\033[0m
$gnome-terminal --geometry=70x30 --title Radio -x mplayer -af volnorm -ao alsa:noblock:device=hw=1.0 -softvol -fs -vo gl2 -playlist %q
-----------
\033[1;31m--> Limiter la vitesse de lecture du lecteur :\033[0m
$eject -x 8 /dev/cdrom
-----------
\033[1;31m--> Lister les processus utilisant le son si le répertoire "/dev/snd" est peuplé :\033[0m
$fuser -v /dev/snd/*
-----------
\033[1;31m--> Lancer Jack en ligne de commande :\033[0m
$jackd -R -d alsa
-----------
\033[1;31m--> Lancer un métronome en ligne de commande :\033[0m
$jack_metro -f 440 -a 1 --name metro -b 60 &
à la fréquence de 440
avec un son maximum (0 et le minimum, 1 le maximum),
-name est le nom du client Jack,
et -b le nombre de battements par minute (BPM).
-----------
\033[1;31m--> Enregistrer un flux audio avec Jack :\033[0m
$jack_capture
-----------
\033[1;31m--> Enregistrer un flux audio avec arecord :\033[0m
$arecord -f cd -D hw:1 essai1.wav
$arecord -f cd -D plughw:1 essai1.wav
-----------
\033[1;31m--> Se connecter à un périhérique audio :\033[0m
En saisissant directement le périphérique ALSA (hw:0 ou hw:1 et ainsi de suite).
En routant le flux par alsa-lib (plughw:0,0 ou plughw:1,0 et ainsi de suite).
Il est possible de définir des périphériques virtuels dans ~/.asoundrc pour plus de contrôle.
-----------
\033[1;31m--> Configurer les expresskeys de la tablette graphique\033[0m
$xsetwacom set Pad Button3 "core key ctrl z"
$xsetwacom set Pad Button4 "core key ctrl y"
$xsetwacom set Pad Button5 "core key n"
$xsetwacom set Pad Button6 "core key p"
$xsetwacom set Pad Button7 "core key k"
$xsetwacom set Pad Button8 "core key shift e"
\033[1;34m##############\033[0m |
memoos-1
Code: | #17/06/2011 v1
\033[1;31m--> Afficher l'espace disque occupé à l'intérieur
d'un répertoire.\033[0m
\033[1;34mAffiche un total pour chaque paramêtre.\033[0m
$du -hs .
----------
\033[1;31m--> Lister les processus en arrière plan.\033[0m
$jobs
----------
\033[1;31m--> Execution en avant plan.\033[0m
$fg
----------
\033[1;31m--> Execution en tache de fond.\033[0m
$bg
----------
\033[1;31m--> Gérer les permissions (u)(g)(o)\033[0m
1 : droit d'exécution 4 (SUID)
2 : droit d'écriture 1 (Sticky)
4 : droit de lecture 2 (SGID)
----
la lecture (r comme read) s (SUID)
l'écriture (w comme write) g (SGID)
l'exécution (x comme execute)
----------
\033[1;31m--> Envoyer un signal à un processus\033[0m
$pidof advi
$kill -SIGUSR1 23781
sighup, sigint, sigquit, sigill, sigtrap, sigabrt, sigiot, sigbus, sigfpe, sigkill,
sigusr1, sigsegv, sigusr2, sigpipe, sigalrm, sigterm, sigstkflt, sigchld, sigcont,
sigstop, sigtstp, sigttin, sigttou, sigurg, sigxcpu, sigxfsz, sigvtalrm, sigprof,
sigwinch, sigio, sigpoll, sigpwr, sigsys
----------
\033[1;31m--> Quelques permissions\033[0m
$chown -R mpd:audio /home/mpd/musics && \
$chmod -R 760 /home/mpd/musics && \
$find /home/mpd/musics -type d -exec chmod 770 '{}' \;
----------
\033[1;31m--> Liste des repertoires sans leurs sous-repertoires.\033[0m
$find * -type d -prune
----------
\033[1;31m--> Trouver $FICHIER dans $REPERTOIRE.\033[0m
$find $REPERTOIRE -name "$FICHIER"
----------
\033[1;31m--> Trouver $FICHIER dans $REPERTOIRE, exclure $REP_A_EXCLURE de la recherche\033[0m
$find $REPERTOIRE -name "$FICHIER" | egrep -vi "^(/$REP_A_EXCLURE)"
il faut échapper les antislash!
ex:
$egrep -vi "^(\/media\/dvdrom\/ADOBEICC\/ENGLISH\/)"
----------
\033[1;31m--> Rechercher une chaine de caractère dans les fichiers
du répertoire courant.\033[0m
$grep -E -i 'on peut|permet' *
----------
\033[1;31m--> Compter le nombre d'occurances d'une chaine de caractère
dans les fichiers du répertoire courant.\033[0m
$grep -E -i ’on peut|permet’ *.tex | wc -l
----------
\033[1;31m--> Afficher les liens cassés\033[0m
$blink [répertoire 1] [répertoire 2] ...
----------
\033[1;31m--> Afficher et supprimer les liens cassés\033[0m
$find /usr/bin -type l ! -xtype f ! -xtype d -ok rm -f {} \;
----------
\033[1;31m--> Tester une condition rapidement en ligne de commande\033[0m
$if [CONDITION]; then [CONDITION VERIFIEE]; else [CONDITION N EST PAS VERIFIEE]; fi
----------
\033[1;31m--> Naviguer dans les répertoires\033[0m
\033[1;34mEnregistrer le chemin de nom-rep dans la pile de répertoires et changer le répertoire courant par nom-rep.\033[0m
$pushd nom-rep
\033[1;34mSupprimer (enlève du haut) le chemin du dernier répertoire et, en même temps, change de répertoire courant
par celui qui vient d'être récupéré dans la pile.\033[0m
$popd
\033[1;34mLister le contenu de la pile de répertoires (comparez ceci avec la variable $DIRSTACK). Une commande pushd
ou popd satisfaite va automatiquement appeler dirs.\033[0m
$dirs
----------
\033[1;31m--> Configurer les expresskeys de la tablette graphique\033[0m
$xsetwacom set Pad Button3 "core key ctrl z"
$xsetwacom set Pad Button4 "core key ctrl y"
$xsetwacom set Pad Button5 "core key n"
$xsetwacom set Pad Button6 "core key p"
$xsetwacom set Pad Button7 "core key k"
$xsetwacom set Pad Button8 "core key shift e"
\033[1;34m##############\033[0m[/quote]
memoosadvanced-1
[quote]#17/06/2011 v1
\033[1;31m--> Réseau.\033[0m
$scp mon_fichier username@remotebox:
$nmap kuzutetsu -p 0-65535
----------
\033[1;31m--> Consulter le code de sortie de la dernière commande dans un shell.\033[0m
$echo $?
Le !, qualificateur du non logique, inverse le résultat d'un test ou d'une commande et ceci affecte son code de sortie.
----------
\033[1;31m--> Lister les fichiers actuellement ouverts sur le système.\033[0m
$lsof
----------
\033[1;31m--> Tester une condition rapidement en ligne de commande.\033[0m
$if [CONDITION]; then [CONDITION VERIFIEE]; else [CONDITION N EST PAS VERIFIEE]; fi
----------
\033[1;31m--> Afficher les modules du noyau :\033[0m
$find /lib/modules/<version du noyau>/ -type f -iname '*.o' -or -iname '*.ko'
-----------
\033[1;31m--> Afficher la configuration actuelle de netfilter :\033[0m
$iptables -t filter -L --line-numbers -v
-----------
\033[1;31m--> Configurer la vitesse du processeur :\033[0m
$cpufreq-set --freq 1800MHz
-----------
\033[1;31m--> Forcer la vérification des disques :\033[0m
$touch /forcefsck
$shutdown -r -F now
-----------
\033[1;31m--> Afficher la liste des pilotes installés :\033[0m
$qlist -I -C x11-drivers/
-----------
\033[1;31m--> Configuration du clavier :\033[0m
$setxkbmap <layout>
$setxkbmap -model pc105 -layout fr -variant latin9,winkeys
$gnome-keyboard-properties
-----------
\033[1;31m--> ARGYLL\033[0m
$dispcal -v -q l -y c viewsonic-calib
$targen -v -d3 -f250 viewsonic-calib
$dispread -v -y c -k viewsonic-calib.cal viewsonic-calib
$colprof -v -A "ViewSonic" -M "VP2250wb" -D "Aug 062009-2252" -q m -as viewsonic-calib
$su -c "cp /home/ido/calib/viewsonic-calib.icc /etc/calib/"
$xcalib /etc/calib/viewsonic-calib.icc
-----------
\033[1;31m--> Here's how to run date on four machines named gentoo-box-1, gentoo-box-2, and so on:\033[0m
$pdsh -w $(echo gentoo-box-`seq -s ",gentoo-box-" 4`) "date"
-----------
\033[1;31m--> Afficher la liste de l'ensemble des utilisateurs enregistrés du systeme\033[0m
$awk 'BEGIN{FS=":"}{print $1}' < /etc/passwd
-----------
\033[1;31m--> Repérer le PID d'un processus\033[0m
$ps ax | awk '/\/usr\/bin\/firefox/ { print $1 }'
-----------
$realpath
\033[1;34m##############\033[0m |
memoosgentoocontrib-1
Code: | #17/06/2011 v1
\033[0mhttp://www.gentoo.org/proj/fr/devrel/handbook/handbook.xml?part=2&chap=1
# Comment contribuer au projet gentoo
\033[1;31m--> Rechercher un ebuild\033[0m
# Allez sur bugs.gentoo.org, choisissez query et sélectionnez Advanced Search.
#Pour le produit, prenez Gentoo Linux et comme composant, ebuilds. Dans le champ réservé
#à la recherche écrivez le nom de l'ebuild, puis comme statut, selectionnez \033[1;34mNEW\033[0m, \033[1;34mASSIGNED\033[0m,
#\033[1;34mREOPENED\033[0m et \033[1;34mRESOLVED\033[0m (RESOLVED est important ici), puis envoyez la requête.
-----------
\033[1;31m--> Télécharger un ebuild :\033[0m
$wget http://bugs.gentoo.org/attachment.cgi?id=166742 -O phatch-0.1.5.ebuild
-----------
\033[1;31m--> Usage de eix et de portage:\033[0m
$eix -I overlay
$eix -I --in-overlay OVERLAY
-----------
\033[1;31m--> Ajouter un overlay:\033[0m
\033[1;34mLister les overlay\033[0m
$layman -L
\033[1;34mAjouter un overlay\033[0m
$layman --add <name>
\033[1;31m--> Syncroniser un overlay:\033[0m
\033[1;34mIndividually:\033[0m
$layman --sync <name>
\033[1;34mOr all added overlays:\033[0m
$layman -S
\033[1;31m--> Supprimer un package d'un overlay:\033[0m
\033[1;34mCheck what you have installed\033[0m
$eix-sync
$eix -I --in-overlay <OVERLAY_NAME>
\033[1;34mSupprimer un package d'un overlay\033[0m
$emerge -uDvN world
$emerge --depclean world
$emerge -Cav <PACKAGES_FROM_THE_OVERLAY>
$eix-sync && eix -I --in-overlay <OVERLAY_NAME>
\033[1;31m--> Supprimer un overlay avec Layman (portage):\033[0m
\033[1;34mFinally, remove the overlay:\033[0m
$layman -d <OVERLAY_NAME>
\033[1;34mCheck that no dependencies are broken.\033[0m
$emerge -uDavN world
-----------
\033[1;31m--> Profile\033[0m
$ls -FGg /etc/make.profile
-----------
\033[1;31m--> Changer de profile\033[0m
$ln -snf /usr/portage/profiles/<nom du profil> /etc/make.profile
\033[1;34m##############\033[0m |
memoosgentooupdate-1
Code: | #17/06/2011 v1
\033[1;31m--> Liste des commandes de mises à jour\033[0m
$ido-backup
\033[1;31m--> Mettre à jour l'env (variables d'env)\033[0m
\033[1;34mCommande root uniquement\033[0m
$env-update
\033[1;34mCommandes utilisateur\033[0m
$source /etc/profile
$source /etc/bash/bashrc && source ~/.bashrc
$source ~/.bashrc
\033[1;34m##############\033[0m |
memoossysadmin-3
(Ce n'est apparemment pas possible de détruire les données contenues dans la ram sans arrêter la machine, mais j'imagine que cela pourrait être utile pour des raisons de bugs ou de sécurité, autrement le noyau gère la mémoire vive de lui même.)
Code: | #11/07/2011 v3
\033[1;31m--> Le noyau :\033[0m
\033[1;34mAfficher les modules du noyau :\033[0m
$find /lib/modules/<version du noyau>/ -type f -iname '*.o' -or -iname '*.ko'
\033[1;34mRechercher un module du noyau :\033[0m
$find /lib/modules/<version du noyau>/ -iname "ip_conntrack_*"
-----------
\033[1;31m--> Afficher la configuration actuelle de netfilter :\033[0m
$iptables -t filter -L --line-numbers -v
ou
$netfilterconfig
-----------
\033[1;31m--> Configurer la vitesse du processeur :\033[0m
$cpufreq-set --freq 1800MHz
-----------
\033[1;31m--> Forcer la vérification des disques :\033[0m
$touch /forcefsck
$shutdown -r -F now
-----------
\033[1;31m--> Memory :\033[0m
Un programme alloue de la mémoire par la fonction "malloc" et la libère
avec la fonction "free".
\033[1;34mDétruire les données de la mémoire virtuelle en la remplissant de zéros (non-recommandé):\033[0m
$swapoff /dev/<partition de swap>
$dd if=/dev/zero of=/dev/<partition de swap>
\033[1;34mCréation d'une signature de mémoire virtuelle\033[0m
$mkswap /dev/<partition de swap>
\033[1;34mActivation de la partition de mémoire virtuelle\033[0m
$swapon /dev/<partition de swap>
\033[1;34mAfficher des infos sur l'usage de la mémoire :\033[0m
$free -m
\033[1;34mAfficher des infos sur l'usage de la swap :\033[0m
$swapon -s
-----------
\033[1;31m--> Afficher la liste des pilotes installés :\033[0m
$qlist -I -C x11-drivers/
-----------
\033[1;31m--> Configuration du clavier :\033[0m
$setxkbmap <layout>
$setxkbmap -model pc105 -layout fr -variant latin9,winkeys
$gnome-keyboard-properties
-----------
\033[1;31m--> ARGYLL\033[0m
$dispcal -v -q l -y c viewsonic-calib
$targen -v -d3 -f250 viewsonic-calib
$dispread -v -y c -k viewsonic-calib.cal viewsonic-calib
$colprof -v -A "ViewSonic" -M "VP2250wb" -D "Aug 062009-2252" -q m -as viewsonic-calib
$su -c "cp /home/ido/calib/viewsonic-calib.icc /etc/calib/"
$xcalib /etc/calib/viewsonic-calib.icc
-----------
\033[1;31m--> Here's how to run date on four machines named gentoo-box-1, gentoo-box-2, and so on:\033[0m
$pdsh -w $(echo gentoo-box-`seq -s ",gentoo-box-" 4`) "date"
-----------
\033[1;31m--> Ajouter un utilisateur au système\033[0m
$useradd -m -G users,wheel,audio -s /bin/bash john
$passwd john
-----------
\033[1;31m--> Afficher la liste de l'ensemble des utilisateurs enregistrés du systeme\033[0m
$awk 'BEGIN{FS=":"}{print $1}' < /etc/passwd
-----------
\033[1;31m--> Repérer le PID d'un processus\033[0m
$ps ax | awk '/\/usr\/bin\/firefox/ { print $1 }'
-----------
\033[1;31m--> Utilisation de Portage, Layman, etc... (gentoo)\033[0m
\033[1;34mvoir memogentoocontrib\033[0m
-----------
\033[1;31m--> Je m'interroge sur les commandes suivantes:\033[0m
$realpath
\033[1;34m##############\033[0m |
memotext-1
Code: | #17/06/2011 v1
\033[1;31m### ACTION SUR DU TEXTE ###\033[0m
\033[1;31m--> Afficher un fichier de configuration sans les commentaires.\033[0m
$egrep -v '^(#|$)'
-- ou --
$awk '! (/^ *#/ || /^$/) { print $0 }' /etc/make.conf
----------
\033[1;31m--> Afficher les différences entre deux fichiers textes.\033[0m
$cmp -b nom_fichier_1 nom_fichier_2 [décalage1] [décalage2]
----------
\033[1;31m--> Afficher les différences entre stdin et un fichier.\033[0m
$cmp -b - nom_fichier [décalage1] [décalage2]
----------
\033[1;31m--> Séparer une ligne d'entrée en champs.\033[0m
$echo un deux | awk '{print $1}'
$awk '{print $1 $5 $6}' $nomfichier # Fonctionne sur chaque ligne du fichier
-----------
\033[1;31m--> Séparer une ligne (chaque ligne d'1 fichier) en champs et afficher
le champ $CHAMP ($1 ou $5, etc...).\033[0m
$awk 'BEGIN{FS="$SEPARATEUR"}{print $CHAMP}' < $UN_FICHIER
exemple:
SEPARATEUR=:
CHAMP=$1
UN_FICHIER=/etc/passwd
-----------
\033[1;31m--> Convertir les majuscules en minuscule.\033[0m
echo "HELLO" | tr A-Z a-z
-----------
\033[1;31m--> Ajouter une ligne a un fichier\033[0m
ex :
$echo "=x11-drivers/linuxwacom-0.8.3_p2" >> /etc/portage/package.keywords
-----------
\033[1;31m--> Rechercher une chaine de caractère dans les fichiers
du répertoire courant.\033[0m
$grep -E -i 'on peut|permet' *
\033[1;34m##############\033[0m |
Last edited by idodesuke on Mon Aug 22, 2011 4:03 pm; edited 2 times in total |
|
Back to top |
|
|
idodesuke Apprentice
Joined: 19 Dec 2005 Posts: 244 Location: France
|
Posted: Sat Aug 13, 2011 5:27 pm Post subject: |
|
|
tiens je suis en train de lire un truc sur les ipc
ça me saute aux yeux
http://fr.wikipedia.org/wiki/Communication_inter-processus
Quote: | La mémoire (principale) d'un système peut aussi être utilisée pour des échanges de données. Suivant le type de processus, les outils utilisés ne sont pas les mêmes.
* Dans le cas des processus « classiques », l'espace mémoire du processus n'est pas partagé. On utilise alors des mécanismes de mémoire partagée, comme les segments de mémoire partagée pour Unix.
* Dans le cas des processus légers l'espace mémoire est partagé, la mémoire peut donc être utilisée directement.
Dans les deux cas, les échanges sont réalisés en plaçant les données dans des variables partagées par les processus. |
Quote: | Quelle que soit la méthode utilisée pour partager les données, ce type de communication pose le problème des sections critiques : le moment où les processus accédent aux données partagées. En effet si deux processus accédent « en même temps » à une ressource, il peut se produire différents cas :
* les données ne sont plus cohérentes
* un ou plusieurs des processus concernés "plantent"
* un ou plusieurs des processus est bloqué : il doit attendre que la ressource soit libérée
|
|
|
Back to top |
|
|
idodesuke Apprentice
Joined: 19 Dec 2005 Posts: 244 Location: France
|
Posted: Sat Aug 13, 2011 7:17 pm Post subject: |
|
|
Quote: | Les signaux sont à l'origine destinés à tuer (terminer) un processus dans certaines conditions, par exemple le signal SIGSEGV tue un processus qui effectue un accès à une zone de mémoire qu'il n'a pas allouée. Les signaux peuvent cependant être déroutés vers d'autres fonctions. Le blocage d'un processus se fait alors en demandant l'attente de l'arrivée d'un signal et le déblocage consiste à envoyer un message au processus. |
avant de faire une SIGKILL ça peut permettre de mieux cerner le problème
y'a d'autres à lire aussi |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|