IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Linux Professional Institute Certificate. LPIC-1

Lpic1 large.gif
Certificat LPIC-1
Examen: 101 (torneu al tema 103.1)
Fitxers: LPI103.1_TreballarALaLiniaOrdres.pdf (LPI103.1_TreballarALaLiniaOrdres.odp)
Objectius: http://www.lpi.org/eng/certification/the_lpic_program/lpic_1/exam_101_detailed_objectives
Dipòsit SVN: https://svn.projectes.lafarga.cat/svn/lpi/Materials/Examen_101/103.1
Usuari: anonymous
Paraula de pas: qualsevol paraula de pas

Enllaç a la pagina dels apunts de Sergi Tur:

LPI 103.1. Treballar a la línia d'ordres

Terminals

Usuari-mariaalberichpresenta1.png

A la part dreta de la imatge trobem el sotware.

Al centre podem veure el Nucli també anomenat Kernel, que és la part més important del sistema operatiu i s'encarrega de comunicar-se en el Hardware.

A la part esquerra esta el Hardware.


Als inicis de la informàtica:

800px és un teletipo,

Per comunicar-te, d'entrada tenies el teclat i de sortida tenies la impressora'.

Els ordenadors com avui els coneixem s'anomenaven terminals, ja que abans només hi havia un ordenador (cervell) i varies pantalles amb teclats que eren els terminals i aquest es connectaven en un cable serie.

Tipus de terminals

  • Terminals de maquinari: teletipus (tty) i terminals "tontos". no tenien electrònica, simplement hardware.
  • Consoles Virtuals
  • Emuladors de terminal
  • Terminal remots

Tty

Abreviació de teletype

Els teletypes i teleprinters eren els primers Terminals.

Avui en dia, encara s'usa el concepte per anomenar les diferents terminals de l'ordenador, ho podem comprovar ficant al terminal la següent comanda:

$ tty

I ens sortira:

/dev/pts/0

On el número ens indica en quina terminal estem treballant.

Consoles Virtuals

s'entra en control alt fi, f2 f3,.... Per entrar a les Consoles Virtuals, haurem de fer polsar Control+Alt+F1 o la F que vulguem.

Per tornar a la pantalla gràfica polsar Control+Alt+F7.

Emuladors de terminal

Model actual: ÉS = que l'anterior pero ara ja no tenim hardware sol sino també tenim aplicació (Tantes finestres com terminals) i el demés sistema es =.

varis emuladors: la terminal ho és i ho anomenarem seudoterminals. en els controls+f1, control f2 i per tornar control+f7 per tornar a la gràfica (pantalla normal). són terminal, es a dir ttys.

per crear un usuari i comprovar que remotament pots treballar en la mateixa maquina i dos sección fem el següent:

[email protected]:~$ sudo adduser 'pepito'
[sudo] password for mariaalberich: 
Adding user `pepito' ...
Adding new group `pepito' (1001) ...
Adding new user `pepito' (1001) with group `pepito' ...
Creating home directory `/home/pepito' ...
Copying files from `/etc/skel' ...
Introduïu la nova contrasenya d'UNIX: 
Torneu a escriure la nova contrasenya d'UNIX: 
passwd: s'ha actualitzat la contrasenya satisfactòriament
S'està canviant la informació d'usuari per a pepito
Introduïu el nou valor, o premeu ENTER per al predeterminat

Nom complet []: Número d'habitació []: Telèfon de la feina []: Telèfon de casa []: Altre []:

Is the information correct? [Y/n] y

i després en control+alt+f7 i f8 vas canviant de perfil.


Tot són fitxers, per parlar entre els diferents parts del ordenador es comuniquem en fitxer,; pel teclat, per la pantalla, ....

El 0 sempre es la entrada habitual, estàndard. però hem de diferenciar dels programes interactius que treballen de una forma indirecta, com per exemple l'hora, xarxes, ....

HI han sempre 2 sortides:

La 1 es la normal. la 2 es la de error.

exemple: per saber a quina terminal estas. si vas obrint pestanyes del terminal t'aniran sortint el numero de tty q estas:

[email protected]:~$ tty
/dev/pts/0


el pts simplement es una tuberia que conecta qualsevol terminal amb el 'bash'

(imatge de bash)

compilat son llenguatge binari qeu el que necessita es saber lsacpuy per a q funcionen ejn tots els ordenadors.

i ens

(copiar la transparencia emuladors terminals. )

Sergi recomana el 'Terminator'. lo més significatiu es que es pòden iobrir varies pantalles dividint la pantalla.

istalem el terminator


Terminal remots

Intèrprets d'ordres (shell)

envolcall que et permetren treballar en ordres

Usarem aqui el Bash q és lo més usat.

Bash: bourne Again Shell. El més popular i l'utilitzat en aquest curs. Sh (Bourne Shell): un dels primers intèrprets de comandes. Shell per defecte a Unix. Creada al 1977 per Stephen Bourne dels laboratoris AT&T de Bell. sh és encara l'interpret de comandes per defecte de root en sistemes Unix. csh: La shell original de C no es gaire utilitzada a Linux. tcsh és un bon substitut de csh a Linux, força popular però gairebé cap distribució Linux la porta per defecte Ksh (Korn shell): va ser dissenyat per tal de tenir les millors característiques de sh i zsh. Dash (Debian Almquist Shell) un versió millorada d'ash. Més petit i eficient que bash. A Ubuntu, des de la versió 6.10, és l'interpret de comandes per defecte del sistema, tot i que l'intèrpret per defecte dels usuaris continua sent bash.

Comandes relacionades amb terminals

la comanda es el que escrius despres del prompt ( lo q surt per defecter al terminal):

ordre parametre1 parametre2 paramentre3, ....

els paramentres poden ser obcionals.

en general ho hem de escriure en minuscules. pero hi haura comandes q hauran de ser en majuscula i no voldran dir el mateix que amb minuscula.

Tenim 3 estils d'ordres:

  • unix98
$ netstat -puta = $netstat -p -u -t -a = $ netstat -tapu

funciona = en els parametres junts que amb els parametres semparats.ç

  • GNU
si van --all es q el parametre va junt sino per separat
  • FreeBSD
No porten guions.

En cap de les 3 no importa l'ordre.

podem ficar man i ens sortira el manual de la comanda

la | vol dir ó

entre corchetes vol dir opcional.


tty

ens mostra el terminal que estem treballant

finger o who

mostra informacio dels usuaris i les terminals. Exemple:

Login          Name             Tty      Idle  Login Time   Office     Office Phone
mariaalberich  Maria Alberich  *tty1       34  Sep 29 12:42
mariaalberich  Maria Alberich   tty7     1:43  Sep 29 11:34 (:0)
mariaalberich  Maria Alberich   pts/1       2  Sep 29 12:38 (:0)
mariaalberich  Maria Alberich   pts/2          Sep 29 12:38 (:0)
mariaalberich  Maria Alberich   pts/3      38  Sep 29 12:38 (:0)
pepito                          tty8     1:43  Sep 29 12:30 (:1)


control+L

Neteja la pantalla o el comando 'clear'

EXit

Sortir

Reset

Si avegades en la comada et surten coses tontes per qualsevol error, escrivim reset i mos la deixara en el estat original.

Cat

Mostra

Comunicacions entre terminals. write, msg i talk

A totes les terminals:

la comanda wall + control+D i el missatge que volguem Exemple:

[email protected]:~$ wall
q marxem!!!


Missatge de difusió de [email protected]                  
       (/dev/pts/2) at 13:23 ...                                              
                                                                              
q marxem!!!                                                                    
                                                                              
                                                                              

A una terminal comcreta:

write  username /dev/pts/nº terminal
[email protected]:~$ write mariaalberich /dev/pts/1
holaaaaaaaaaaaaaaaaaaaaa
[email protected]:~$ write mariaalberich /dev/pts/1
jkjnhjkkbhgvkhbljvy

l'altra terminal rep:

Message from [email protected] on pts/2 at 13:27 ...
jkjnhjkkbhgvkhbljvy

Shell per defecte del sistema

El sistema sempre agafa un interpret d'ordres per defecte, i no és el Bash

anar a aplicacions i buscar usuaris.


Usuari-mariaalberichshell1.png


Veurem com podem canviar el interpret d'ordres per el bash.


Aquest comentari perquè comença en # es un del únics que ens dona informació per a saber el cami que s'ha de seguir per a traduir el llenguantge, podem veure els segënts exemples:

 #!/bin/bash

 echo "Hola mon!"


#!/usr/bin/php
<?php
echo "Hola mon!"
?>
#!/usr/bin/python
print "Hola mon!

Podem consultar també:

Shebang ------------> Molt important busquem una mica de explicació pq no he pillat res.

http://acacha.org/mediawiki/index.php/Shebang


.sh --> bash .py --> python .php --> PHP

Geany, Gedit, joe, nano------------> on podem crear el fitxer.

Pràctica fitxer php

$ sudo nano holamon.php
#!/usr/bin/php
<?php
echo "Hola mon!"
?>

$ sudo chmod +x holamon.php 

$ sudo apt-get install php5-cli És necessari aquest paquet per tal d'executar php per la línia de comandes.

$ php holamon.php
Hola mon!

També podem executar amb:

$ ./holamon.php 
Hola mon!

IMPORTANT: El Shebang és molt important, però l'opció que no falla mai, és la primera, indicar-li l'interpret al moment d'executar el fitxer.

Ham de tenir en conte les rutes, els camins per arribar, li podem donar tot el camí o el camí abreviat.

PROMPT

En angles vol dir preguntar, solicitar, ...

el [Prompt] es el que ens surt al principi del terminal per defecte.

[email protected]:~$ 

Aquí surt l'alumne i en quin ordenador esta i per defecte surt la carpeta personal que es ~.

El prompt es pot configurar:

$PS1="que vols"

i ens posara:

Que vols

A les altres terminal no es canviarà només a la que estesin treballant.

Trucs i ús de la línia d'ordres

L'eina més important és la que completa els comandos mitjançant el tabulador. (es com una mena d'ajuda)

Podem tabular en les comandes i també amb les ordres i aplicacions.

Es molt recomanable, ja que l'ordenador no s'equivoca, nosaltres si.

Amb el super usuari no funciona el tabulador.

$ sudo su

I si volem que funcioni hem de incloure:

$ /home/alumne# ./etc/bash_ completion

potser q no estigui instal·lat i per instal·lar-ho hem de posar:

$ apt-get install bash completion ^C

Edició amb bash

Per moure'ns podem usar les formules q usem per a l'edito de textos:

(copiar la pagina de pdf del profe)

Moure's per la línia • • Ctrl+A: inici de línia (també tecla “Inicio”) i Ctrl+E: final de línia (també tecla “Fin”). Fletxes esquerra i dreta del teclat. Ctrl+Fletxes ens permet moure'ns a dreta i esquerra de paraula en paraula. Esborrar text • Ctrl+D (tecla suprimir) i Backspace • Ctrl+k: Esborra des del cursor fins al final de línia. • Ctrl+x + Bakcspace: Esborra des del cursor fins al final de línia. Intercanviar text • Ctrl+t: intercanvia el caràcter d'abans del cursor pel de després del cursor. • Canviar de majúscules a minúscules: • Esc+U: Converteix del cursor al final de paraula en majúscules • Esc+L: Converteix del cursor al final de paraula en minúscules • Esc+C: Converteix la primera lletra (Capitalize) de la paraula sota el cursor a majúscules

Invocar un editor • Es pot executar un editor complet per tal d'editar una línia de l'intèrpret d'ordres. • Ctrl+X+Ctrl+E. S'executa l'editor definit a la variable d'entorn EDITOR o FCEDIT Hi ha múltiples dreceres de teclat Ctrl+c: Envia la senyal d'acabar el que s'esta executant Ctrl+z: Atura (pausa) un ordre Ctrl+l: netejar la pantalla (equivalent a l'ordre clear) Ctrl+r: Cerca ordres. Consulteu la següent transparència Consulteu la wiki del curs • %27ordres#Dreceres_.28Shortcuts.29

Històric de la línia d'ordres

Bash (i altres shells) mantenen un historial de les ordres executades:

Tecla fletxa amunt: repetir la última ordre executada. Prement múltiples cops la tecla podem anar a ordres més antigues.

La tecla fletxa abaix permet anar a la següent ordre en l'historial

Aquesta és la més important per ercar comandes a l'historial ctrl+r i algo de la comanda i ja surt.

També la comanda

$ history 10

em sortiran les 10 ultimes comandes.

per que no es guardi el historial hem de deixar almenys un espai davant la comanda.

Si volem executar-ne alguna de concreta:

!!--> Última ordre
!n--> Executa l'ordre n de la història d'ordres
!-n--> Executa l'ordre -n
!paraula--> Executa la última ordre que contenia
la paraula indicada.
Ctrl+P ---> Executa la última ordre.

Ordres internes i ordres externes

Transparencies

Configuració de l'interpret d'ordres

Transparencies

Variables d'entorn

$ term

Ens mostra el tipus de terminal que estem utilitzant. Es el primer que va sortir i es molt senzill.

Les variable de bash van sempre en un $ davant de la comanda.

Hi ha variables q son automàtiques les posa l'ordenador,

$ echo $ term

si et dona xterm es el Windows i si et dona linux es linux.


Per veure les variables d'entorn que estas usant fica al terminal

$ env

i ens surt

ORBIT_SOCKETDIR=/tmp/orbit-mariaalberich SSH_AGENT_PID=1379 TERM=xterm SHELL=/bin/bash XDG_SESSION_COOKIE=e9d589953dd2baf58c02b86900000005-1317814492.317595-565614956 WINDOWID=58720294 GNOME_KEYRING_CONTROL=/tmp/keyring-hvr8Bs GTK_MODULES=canberra-gtk-module NO_PROXY=localhost,127.0.0.0/8,*.local,192.168.0.0/16,*.iesebre.com USER=mariaalberich http_proxy=http://192.168.203.1:3128/ LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36: SSH_AUTH_SOCK=/tmp/keyring-hvr8Bs/ssh ftp_proxy=ftp://192.168.203.1:3128/ SESSION_MANAGER=local/mariaalberich-ESPRIMO-P:@/tmp/.ICE-unix/1346,unix/mariaalberich-ESPRIMO-P:/tmp/.ICE-unix/1346 USERNAME=mariaalberich DEFAULTS_PATH=/usr/share/gconf/gnome.default.path XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg ALL_PROXY=socks://192.168.203.1:3128/ all_proxy=socks://192.168.203.1:3128/ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games DESKTOP_SESSION=gnome PWD=/home/mariaalberich GDM_KEYBOARD_LAYOUT=es cat GNOME_KEYRING_PID=1327 LANG=ca_ES.UTF-8 GDM_LANG=ca MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path UBUNTU_MENUPROXY=libappmenu.so COMPIZ_CONFIG_PROFILE=ubuntu https_proxy=https://192.168.203.1:3128/ GDMSESSION=gnome SHLVL=1 HOME=/home/mariaalberich LANGUAGE=ca:en GNOME_DESKTOP_SESSION_ID=this-is-deprecated no_proxy=localhost,127.0.0.0/8,*.local,192.168.0.0/16,*.iesebre.com LOGNAME=mariaalberich XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/ DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-HQtLROBinD,guid=a1dda4e8124497d72490b73300000041 LESSOPEN=| /usr/bin/lesspipe %s WINDOWPATH=7 DISPLAY=:0 LESSCLOSE=/usr/bin/lesspipe %s %s COLORTERM=gnome-terminal XAUTHORITY=/var/run/gdm/auth-for-mariaalberich-5ABzgN/database _=/usr/bin/env


Per modificar una variable d'entorn:

$ PS1= "que vols"

Aquesta modificació es temporal i si vull tornar ho puc fe escrivint bash o exit i hem torna a l'anterior

Si ho volem permanent en la secció:

$ export PS!="que vols"
1 Nom 2 Funció
USER Nom de l'usuari en el sistema
row 2, cell 1 row 2, cell 2
row 2, cell 1 row 2, cell 2
row 2, cell 1 row 2, cell 2
row 2, cell 1 row 2, cell 2
row 2, cell 1 row 2, cell 2
row 2, cell 1 row 2, cell 2
row 2, cell 1 row 2, cell 2
row 2, cell 1 row 2, cell 2

si executem:

$ echo $PATH

I et dona les carpetes on esta instal·lat i ordenat per prioritat;

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Per executar variable i veure la llista també podem ficar:

$ $ i tabular 2 cops

I la llista que ens dona és:

$_ $http_proxy $all_proxy $https_proxy $ALL_PROXY $IFS $BASH $LANG $BASH_ALIASES $LANGUAGE $BASH_ARGC $LESSCLOSE $BASH_ARGV $LESSOPEN $BASH_CMDS $LINENO $BASH_COMMAND $LINES $BASH_COMPLETION $LOGNAME $BASH_COMPLETION_COMPAT_DIR $LS_COLORS $BASH_COMPLETION_DIR $MACHTYPE $BASH_LINENO $MAILCHECK $BASHOPTS $MANDATORY_PATH $BASHPID $no_proxy $BASH_SOURCE $NO_PROXY $BASH_SUBSHELL $OPTERR $BASH_VERSINFO $OPTIND $BASH_VERSION $ORBIT_SOCKETDIR $COLORTERM $OSTYPE $COLUMNS $PATH $COMPIZ_CONFIG_PROFILE $PIPESTATUS More

Directori de treball

Transparència

Ordre cd

$ cd 

Sempre va a la meua home/mariaalberich.

$ cd /
Va a la arrel de les carpetes. 
$ cd -

També:

$ cd old

Va a l'ultima carpeta que has anat

~


Modificar el directori de treball. Ordre cd

Directoris especials

Directoris bàsics:

. la carpeta on estas .. el directori pare (la red no te pare) / el directori arrel (root)

El puntbarra (./)

./ molt important

(es va crear una web de noticies relacionades en informàtica: barrapunto, ... )

Ordre echo

Ordre exec

per executar les comandes

$ exec lowrite

Per obrir el processador de textos

Executar ordres en segon terme

Per bloquejar el sistema:

$ sleep

Si volem reprendre

Control+C o control+Z (atura)

Llistes d'ordres

La segona s'exectutara quant s'executi la primera

$ comandal && comanda2

exemple:

$ mkdir p

creo un altra

$ mkdir p1 &&echo ok

Va bé.

Ara ho torno a proba:

I no hem deixa perqué ja te creat el primer fitxer

Ajuda del sistema

man

man (manuals): ens mostra els manuals de les ordres. Gairebé totes les ordres tenen manual

Com funciona man? $ man man Per consultar el manual d'un ordre: $ man nom_ordre Recordeu que algunes de les ordres internes no tenen manual propi, sinó que estan explicades dins del manual de $ man bash l'interpret d'ordres man no només mostra informació d'ordres, també ho pot fer de fitxers de configuració, funcions, jocs, crides de sistema... man utilitza l'ordre less per mostrar el manual • Espai: pàgina següent • Esc+v: pàgina endarrere $ man less • q: sortir • /text: cerca el text indicat

En cas de conflicte, les seccions més baixes es mostren primer. Per exemple: • Ordre passwd: $ man 1 passwd • Fitxer /etc/passwd: $ man 5 passwd


A Debian (Ubuntu) es poden instal·lar manuals en castellà:=

$ sudo apt-get install manpages-es manpages-es-extra • Només es mostren en castellà els manuals que estan traduïts. Els podeu consultar amb: $ dpkg -L manpages-es • Altres idiomes als repositoris. Paquets manpages-* • Comanda whereis ens mostra on està el manual d'una ordre. • Hi ha manuals extres. Paquets. Manpages-extra, manpages- dev, manpages-posix...

exemple

Fiquem $ locale per veure com tenim configurat l'ordenador.

com ho tenim en català ho hem de instal·lar també amb Castella per tant,

al terminal posem:

$gnome-language-selector

i instalem el idioma en castella.

despres ficarem

$ export LANG=es_ES.UTF-8

I despres per vore el manual:

$ man ping



info

info: algunes ordres prefereixen utilitzar info. Per exemple totes les del paquet coreutils ($info coreutils ordre). Si hi ha info també hi ha manual (però a vegades info és més complet)


Altres pàgines d'interès

Informació del sistema. uname

Alias

Tancar la sessió