Tutos de base, opérateurs, var, users

Utile: liste des commandes doc.ubuntu-fr.org/tutoriel/console_commandes_de_base et doc.ubuntu-fr.org/tutoriel/console_ligne_de_commande
        man en fr http://jp.barralis.com/linux-man/

terminal et console

un terminal n'est qu'une émulation d'une console.

6 consoles disponibles, elles sont accessible via Ctrl+Alt+Fx + 7 session Xorg
S'il y a plusieurs utilisateurs connectés, il y a plusieurs sessions Xorg auxquelles vous pouvez accéder via Ctrl+Alt+F9, etc. (à noter que Ctrl+Alt+F8 est en général une console spéciale où s'affichent des informations sur le démarrage de l'ordinateur).

Les consoles virtuelles sont les terminaux démarrés par défaut. Il y en a généralement six ( [Ctrl]+[Alt]+[Fx] x=1 à 6). Pour revenir à la session graphique, il faut utiliser la combinaison [Alt]+[F7] (parfois [Alt]+[F8]).

Shell - tips de base

trad de GNU-linux-Tools-Summary.txt

auto completion

TAB: complète nom commande & nom fichier et rep.
ESC-Y (Y: car spécial): test autoindex, bip/flash si ne trouve rien. ESC-X-Y  (Y: car spécial): liste (sans compléter), bip/flash si ne trouve rien.
note car spéciaux:

caractères spéciaux (ESC-Y ou CTRL-X-Y)
~ (tilde) complète les noms de user
@ (at sign)   "   machine
$ (dollars sign)   "   nom de variable d'environnement
! (exclamation mark)   "   nom commande & nom fichier (idem TAB).

alias

Mandriva: /etc/profile.d/alias.sh mais dans .bashrc pour les autres linux

# ex d'alias perso
alias cp='cp -vi' #to prompt when copying if you want to overwrite and will tell you where information is going
alias rm='rm -i' #Prompts you if you really want to remove it.
alias mv='mv -i' #Prompts you if you are going to overwrite something

set -x (commande interne bash)

affiche commande avant exe (recherche erreur *!....). set +x retire la fonctionnalité. Meme un simple "ls" montre ls -F --color=auto heartdonc ls est un alias laugh

\ (backslash)

Faire en début de commande \ (backslash) pour le lancer sans l'alias. \rm est dangereux!

Sert aussi à stopper le developpement/expand de certains symboles, alternative à ' (single quotation marks)

script

cette commande log la session shell (tappées et sorties)

~ (tilde character)

répertoire home des users. ~user_name (sans * ou ! dans user_name) pour le home des autres users

divers

reset ré-initialise le terminal courrant.
exit (CTRL-D) clore le terminal courrant (si x-terminals) ou logout
logout  
echo pratique, ex: echo rm -R * n'efface rien, affiche ce qui serait effacé
option -e permet de formater la sortie d'une ligne (\t tab, \n nouvelle ligne ...)

set bell-style none (ou xset -b si X windows)

pour arreter le bip, à mettre dans .bashrc ou .bash_profile

 

Historique des commandes shell

Flèches haut et bas, entrée. history n  liste le n dernières commandes passées.
!n  execute la commande numéro n ; !! exe la dernière commande saisie ; et !-n exe celle utilisée n fois avant (!-1 équivaut à !!).
!string exe la dernière commande qui commence par string et !?string? qui contient le mot string.
commandName !* execute commandName avec les arguments utilisés à la commande précédente. Utile en cas de faute de frappe sur le nom de la commande enlightened

recherche dans historique: Ctrl-R (reverse) et fleches gch/drt

recherche de la dernière utilisation de snort: faire CTRL-R puis saisir snort puis CTRL-R pour scroller ; quand on trouve le bon, faire ENTREE pour l'exe
flèches gauche/droite : place la commande trouvée dans le cli pour édition

autres CTRL-D Z A K ...

CTRL-D EOF logout rapide, ou dans un program, par ex dans un at pour dire qu'on a fini de saisir
CTRL-Z stopper un process ou le mettre en bg un moment.
Lors édition d'un fichier avec vim, CTRL+Z permet de passer 1 ou 2 ls puis saisir fg pour récupérer vim (si fg KO faire jobs puis fg ID ou fg nom_job)
CTRL-A et E aller au début (stArt) ou fin (End) de la ligne.
CTRL-K
CTRL-Y
CTRL-W
coupe/del ce qui avant le curseur
colle (CTRL-K ou CTRL-W précédent)
coupe/del toute la ligne

Terminal virtuel et écran (ALT-F* et CTRL-ALT-F*)

Changer de term virtuel (configurés pour le shell): ALT-F2 (à 6) et ALT-F7 correspond à X. De X: CTRL-ALT-F*

Ecran, term virtuel
screen pour switcher d'un term virtuel à l'autre dans le meme term physique. Utile dans X avec ssh sur srv à distance, par ex.
Faire screen puis CTRL-A (debut ligne) et faire C : crée un nouvel terminal virtuel.
CTRL-N term virtuel suivant ; CTRL-P précédent ;  essayer CTRL-A pour se déplacer entre 2 term
screen -S nom_de_la_session
Créer un nouveau screen en nommant la session.
ESPACE pour accéder à cette new session
CTRL+a suivi de d
OU fermer le terminal et/ou ouvrir un autre terminal
se détacher de la session du screen

screen -d toto3 force détachement

 

screen -r nom_de_la_session
se rattacher à la session du screen (ou avec id donné par -ls)
screen -ls
Connaître les screen existants

 

man

q pour quitter. man section_number tool_name

man -K keyword   pour rechercher keyword (attention tp). man -f command voir détails commande (idem whatis). info man avec liens (si existe) - ex: info ls.

 


 

opérateurs

On peut composer deux ou plusieurs commandes à l’aide du caractère « ; » :
$ ls guide-unix.tex ; echo bonjour
guide-unix.tex
bonjour
$
 

opérateur && et ||

commande1 && commande2   -> exécute commande2 si commande1 s’exécute sans erreur ;

commande1 || commande2   -> exécute commande2 si commande1 renvoie une erreur (valeur <> 0)

 

var d'env

Lorsqu’un shell est exécuté par le système, un certain nombre de variables dites d’environnement sont instanciées.

$ env
SSH_AGENT_PID=2458
GPG_AGENT_INFO=/tmp/gpg-RtLtOG/S.gpg-agent:2459:1
MAIL=/var/spool/mail/unuser
HOSTTYPE=i386
PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin
HOME=/home/unuser
SHELL=/bin/bash
USER=nom-user
OSTYPE=Linux
$

caractères spéciaux du shell

  • $ permet le mécanisme d’expansion et donc permet de faire référence à la valeur de la variable nommée après, mais aussi de faire des calculs ou d’exécuter une autre commande  ;
  • ~ remplace le répertoire privé de l’utilisateur ;
  • & lance une commande en arrière-plan ;
  • * remplace toute chaîne de caractères ; ? remplace tout caractère  ;
  • | pour créer un tube ;
  • > et < pour les redirections ;
  • ; est le séparateur de commandes ;  # est le caractère utilisé pour les commentaires ;
Vers Bases - opérateurs - var - users - Plus

users

Voir La liste des groupes est dans /etc/passwd (groupes des users)  /etc/group
Si on tappe groups on voit les groupes auquels le users logués appartient.

$ id anna
uid=1001(anna) gid=1001(anna) groupes=1001(anna),4(adm),21(fax),24(cdrom),29(audio),44(video), 46(plugdev), 104(fuse), 110(netdev),111(lpadmin),121(nopasswdlogin),122(sambashare),1002(mesusers)

 

$ useradd machin

Ajoute machin dans le groupe docker : sudo usermod -aG docker machin  Puis se déloguer/reco ou encore: su - username et vérifier avec id -nG

conf ssh avec commandes de bases sur les users en FR http://elliptips.info/guide-debian-7-securiser-lacces-ssh/ :

groupadd sshusers
useradd -m homer
passwd homer
usermod -a -G sshusers homer
vim /etc/ssh/sshd_config