SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
LINUX Básico


                   TAKASHI SUGASAWA




 LINUX Básico (6. Shells(1))          1
Programa del curso

   1.   Introducción a LINUX
   2.   Operación básica de LINUX
   3.   Operación de archivos y directorios
   4.   Editor vi
   5.   Comprensión del sistema de ficheros
   6.   Shells(1)
   7.   Shells(2)
   8.   Shells(3)
   9.   Otros comandos

                 LINUX Básico (6. Shells(1))   2
LINUX Básico
6. Shells(1)
                     Índice
    6.1 Comprensión de shells
    6.2 Caracteres para completar nombres
        del ficheros
    6.3 Tuberías y redireccionamientos de
        entrada y salida
    6.4 Sustituciones
    6.5 Comillas y apóstrofos
    6.6 Grupos de comandos

               LINUX Básico (6. Shells(1))   3
6.1 Comprensión de shells
(1) ¿Qué es shell?
 • Shell es una aplicación como "Símbolo del sistema" en
     el Windows.
 •   Shell empieza automáticamente cuando un usuario se
     registra.
 •   Shell funciona como interfaz principal entre el sistema
     operativo y el usuario.
 •   Shell interpreta sus comandos u órdenes.
 •   Shell no es un parte del núcleo del sistema operativo.
 •   Hay múltiples shells instalados (Shell Bourne, BASH,
     Shell C, tcsh, zsh,...). El shell por omisión de LINUX es
     bash.



                      LINUX Básico (6. Shells(1))            4
6.1(2) Variedad de shells
 Shell Bourne   •   El shell más antiguo.
 (/bin/sh)      •   El shell original de UNIX.
                •   Está disponible en todos los sistemas de UNIX.
 Shell C        •    El shell antiguo y muy común también.
 (/bin/csh)     •    Está disponible en casi todos los sistemas de UNIX.
                •    La sintaxis del shell C es muy parecida al lenguaje
                    de programación C.
 BASH           •   El shell derivado de Shell Bourne.
 (/bin/bash)    •   Proporciona varias características mejoradas.
                •   El shell por omisión de LINUX
 tcsh           •   El shell derivado de Shell C.
 (/bin/tcsh)    •   Proporciona varias características mejoradas.

    Hay otros, Shell Z, Shell Korn, ...

                            LINUX Básico (6. Shells(1))                    5
6.1(3) Shells disponibles en el sistema
 Para saber los shells disponibles en el sistema, se
 referimos el archivo "/etc/shells".

 [usr001@linuxpc usr001]$ cat /etc/shells
 /bin/sh
 /bin/bash
 /sbin/nologin
 /bin/bash2
 /bin/ash
 /bin/bsh
 /bin/tcsh
 /bin/csh




                      LINUX Básico (6. Shells(1))      6
6.1(4) Cambio el login shell
 Para cambiar el login shell, usamos el comando "chsh".
(28) chsh     cambiar el login shell.
  [usr001@linuxpc usr001]$ chsh
  Cambiando intérprete de órdenes para usr001.
  Password:
  Nuevo intérprete de órdenes [/bin/bash]: /bin/csh
  Se ha cambiado el intérprete de órdenes.
  [usr001@linuxpc usr001]$ cat /etc/passwd
  root:x:0:0:root:/root:/bin/bash

                              (omisión)

  usr000:x:500:500::/home/usr000:/bin/bash
  usr001:x:501:501::/home/usr001:/bin/csh
  usr002:x:502:502::/home/usr002:/bin/bash

                              (omisión)

     Si no hay una razón especial, vamos a usar BASH.
                      LINUX Básico (6. Shells(1))         7
6.2 Caracteres para completar nombres del ficheros
(1) El carácter comodín “*”
 • El asterisco “*” es el carácter comodín, significa
     cualquiera y todos los caracteres.
 •   Por ejemplo, “a*” significa todos los ficheros que
     comiencen con una a.
     [usr001@linuxpc usr001]$ ls
     abxx.txt abyy xx.txt xxyyzz
     [usr001@linuxpc usr001]$ ls a*
     abxx.txt abyy
     [usr001@linuxpc usr001]$ ls *.txt
     abxx.txt xx.txt
     [usr001@linuxpc usr001]$ ls *yy*
     abyy xxyyzz
     [usr001@linuxpc usr001]$ ls *
     abxx.txt abyy xx.txt xxyyzz
     [usr001@linuxpc usr001]$ ls b*
     ls: b*: No existe el fichero o el directorio
     [usr001@linuxpc usr001]$ rm *
     [usr001@linuxpc usr001]$ ls

                      LINUX Básico (6. Shells(1))         8
6.2(2) El carácter comodín “?”

 • El signo interrogación “?” es el carácter comodín,
    significa un solo carácter cualquier.
    [usr001@linuxpc   usr001]$ ls
    a1 a2 a3 b1       b2 c1 d
    [usr001@linuxpc   usr001]$ ls a?
    a1 a2 a3
    [usr001@linuxpc   usr001]$ ls ?1
    a1 b1 c1
    [usr001@linuxpc   usr001]$ ls ??
    a1 a2 a3 b1       b2 c1
    [usr001@linuxpc   usr001]$ ls ?
    d




                      LINUX Básico (6. Shells(1))       9
6.2(3) La expresión “[ ]”

 • La expresión “[ ]” (corchetes) significa un carácter
    simple si encierra entre corchetes una serie de
    caracteres.
    [usr001@linuxpc   usr001]$ ls
    a1 a2 a3 a4       a5 b1 c1 d1 e1                x1   y1   z1
    [usr001@linuxpc   usr001]$ ls a[2-4]
    a2 a3 a4
    [usr001@linuxpc   usr001]$ ls         [a-z]1
    a1 b1 c1 d1       e1 x1 y1            z1
    [usr001@linuxpc   usr001]$ ls         [ace][135]
    a1 a3 a5 c1       e1
    [usr001@linuxpc   usr001]$ ls         [a-c,xz]?
    a1 a2 a3 a4       a5 b1 c1            x1 z1




                      LINUX Básico (6. Shells(1))                  10
6.3 Tuberías y redireccionamientos de entrada y
    salida
(1) stdin, stdout, stderr
 Salida estándar (stdout)
 • Algunos comandos envían su salida hacia la pantalla.
   A la verdad, estos comandos envían su salida hacia un
   archivo especial llamado "stdout", y el sistema de
   LINUX asocia "stdout" con la pantalla.

                             salida     std
           cat /etc/passwd               std
                                        out         pantalla
                                         out




                      LINUX Básico (6. Shells(1))              11
Entrada estándar (stdin)
• Algunos comandos esperan una entrada desde la
  terminal o el teclado.
  A la verdad, estos comandos esperan la entrada desde
  un archivo especial llamado “stdin”, y el sistema de
  LINUX asocia "stdin" con el teclado.
  teclado           entrada           salida
             std
              std                                 std
                                                   std
             in               cat -               out    pantalla
              in                                   out


    [usr001@linuxpc usr001]$ cat -
    abc
    abc
    123
    123
    xyz
    xyz
            Teclear "Cntl-d"
             para escapar.

                    LINUX Básico (6. Shells(1))                     12
Salida de error estándar (stderr)
• Algunos comandos envían un mensaje de error hacia un
   pantalla.
   A la verdad, estos comandos envían un mensaje de
   error hacia un archivo especial llamado "stderr", y el
   sistema de LINUX asocia "stderr" con la pantalla.
                          error     std
                                     std
               comando              err              pantalla
                                     err

                                                    No existe
         [usr001@linuxpc usr001]$ ls
         [usr001@linuxpc usr001]$ cat a > b                     error
         cat: a: No existe el fichero o el directorio
         [usr001@linuxpc usr001]$ ls
         b
 se ha   [usr001@linuxpc usr001]$ cat b   vacío
creado
         [usr001@linuxpc usr001]$

                   "stdout" y "stderr" son diferentes.
                      LINUX Básico (6. Shells(1))                  13
6.3(2) Tuberías
• Con tuberías, se puede utilizar la salida de un comando
    como entrada de otro.
•   El carácter de tubería es una barra vertical "|".
    (ejemplo) queremos concatenar 2 archivos "/etc/passwd" y
            "/etc/group", y verlo con el paginador "more".
                                     si usamos un tubería ...
cat /etc/passwd /etc/group > tmp
                                           cat /etc/passwd /etc/group | more
more tmp
                  archivo
                 temporal

• Una tubería conecta el "stdout" de un comando hacia el
    "stdin" de otro.
                                   tubería
                salida   std                        std    entrada
     comando1             std                        std             comando2
                         out
                          out       conectar        in
                                                     in

                          LINUX Básico (6. Shells(1))                           14
Los comandos “more”, “less”, “grep”, “sort” se utilizan
frecuentemente con las tuberías.
(29) grep     buscar patrones que se encuentren en
              archivos e informa dónde localiza esos
              patrones.
              (ej.) grep exp-reg arch1 [arch2 ...]
                     sale los líneas que contienen “usr00”

[usr000@linuxpc usr000]$ cat /etc/passwd | grep usr00
usr000:x:500:500::/home/usr000:/bin/bash
usr001:x:501:501::/home/usr001:/bin/bash   = “grep usr00
usr002:x:502:502::/home/usr002:/bin/bash      /etc/passwd”
usr003:x:503:503::/home/usr003:/bin/bash
usr004:x:504:504::/home/usr004:/bin/bash
usr005:x:505:505::/home/usr005:/bin/bash
usr006:x:506:506::/home/usr006:/bin/bash
usr007:x:507:507::/home/usr007:/bin/bash
usr008:x:508:508::/home/usr008:/bin/bash
usr009:x:509:509::/home/usr009:/bin/bash

                     LINUX Básico (6. Shells(1))             15
(30) sort    ordenar archivos de texto.
             (ej.) sort arch1 [arch2 ...]
                                             Para la salida en
                                             una sola columna
  [usr001@linuxpc   usr001]$ ls -i1
   400941 a
   400940 abc
   400936 bc
   400942 defg                                       usando primer campo
   400937 xyz
  [usr001@linuxpc   usr001]$ ls -i1 | sort
   400936 bc
   400937 xyz
   400940 abc
   400941 a                                             descendentemente
   400942 defg
  [usr001@linuxpc   usr001]$ ls -i1 | sort -r
   400942 defg
   400941 a
   400940 abc
   400937 xyz                                           usando segundo campo
   400936 bc
  [usr001@linuxpc   usr001]$ ls -i1 | sort -r +1
   400937 xyz
   400942 defg
   400936 bc
   400940 abc
   400941 a

                       LINUX Básico (6. Shells(1))                             16
6.3(3) Redireccionamientos

 Redireccionamiento de salida
 • Se emplea para redireccionar la salida de un comando
     hacia un archivo. En vez de que la salida vaya a la
     pantalla de la terminal, se coloca en un archivo.
 •   Los símbolos de redireccionamiento de salida son “>”,
     “>>”, “2>”, “2>>”, “&>”.
       [usr001@linuxpc usr001]$ date
       jue sep 16 20:08:37 ECT 2004
       [usr001@linuxpc usr001]$ date > arch1
       [usr001@linuxpc usr001]$ cat arch1
       jue sep 16 20:08:42 ECT 2004




                      LINUX Básico (6. Shells(1))            17
• El redireccionamiento de salida conecta el "stdout" o
  “stderr” de un comando hacia un archivo.

                               std            “>”, “>>”        arch
                                std                             arch
                               out
                                out                             ivo
                                                                 ivo
             salida

                                                        “&>”
  comando                                                      arch
                                                                arch
                      “2>&1”          “1>&2”
                                                                ivo
                                                                 ivo
            mensaje
            de error           std
                                std                            arch
                                                                arch
                               err
                                err                             ivo
                                                                 ivo
                                            “2>”, “2>>”




                          LINUX Básico (6. Shells(1))                  18
Diferencia entre “>” y “>>” (“2>” y “2>>”)

 • Si el archivo no existe, son iguales.
 • Si está el archivo, “>” sobrescribe el archivo, “>>” agregar al
   archivo.
    [usr001@linuxpc usr001]$ ls                no existente
    [usr001@linuxpc usr001]$ whoami > arch1
    [usr001@linuxpc usr001]$ cat arch1
    usr001                                    ya existente
    [usr001@linuxpc usr001]$ date > arch1
    [usr001@linuxpc usr001]$ cat arch1
                                            se ha sobrescrito
    jue sep 16 22:06:45 ECT 2004
    [usr001@linuxpc usr001]$ whoami >> arch1
    [usr001@linuxpc usr001]$ cat arch1
    jue sep 16 22:06:45 ECT 2004
    usr001                          se ha añadido



(31) whoami Presenta su nombre de usuario.

                          LINUX Básico (6. Shells(1))                19
“>” y “2>”, “&>”

     [usr001@linuxpc usr001]$ ls
     arch1
     [usr001@linuxpc usr001]$ cat arch1          existente
     jue sep 16 22:30:52 ECT 2004
     [usr001@linuxpc usr001]$ cat arch1         arch2      no existente
     jue sep 16 22:18:33 ECT 2004                        salida de “stdout”
     cat: arch2: No existe el fichero o         el directorio      salida de
     [usr001@linuxpc usr001]$ cat arch1         arch2 >a 2>b       “stderr”
     [usr001@linuxpc usr001]$ cat a
     jue sep 16 22:18:33 ECT 2004
     [usr001@linuxpc usr001]$ cat b
     cat: arch2: No existe el fichero o         el directorio
     [usr001@linuxpc usr001]$ cat arch1         arch2 &>c
     [usr001@linuxpc usr001]$ cat c
     jue sep 16 22:18:33 ECT 2004
     cat: arch2: No existe el fichero o         el directorio




                       LINUX Básico (6. Shells(1))                             20
“2>&1” (“1>&2”)


  [usr001@linuxpc usr001]$ ls
  arch1
  [usr001@linuxpc usr001]$ cat arch1         existente
  jue sep 16 22:30:52 ECT 2004
  [usr001@linuxpc usr001]$ cat arch1       arch2         no existente
  jue sep 16 22:30:52 ECT 2004                                 salida de “stdout”
  cat: arch2: No existe el fichero o       el directorio     salida de
  [usr001@linuxpc usr001]$ cat arch1       arch2 2>&1 | sort “stderr”
  cat: arch2: No existe el fichero o       el directorio
  jue sep 16 22:30:52 ECT 2004
  [usr001@linuxpc usr001]$ cat arch1       arch2 >a 2>&1                = “&>”
  [usr001@linuxpc usr001]$ cat a
  jue sep 16 22:30:52 ECT 2004
  cat: arch2: No existe el fichero o       el directorio
  [usr001@linuxpc usr001]$ cat arch1
  [usr001@linuxpc usr001]$ cat a
                                           arch2 >>a 2>&1                 orden es
  jue sep 16 22:30:52 ECT 2004                                            importante
  cat: arch2: No existe el fichero o       el directorio
  jue sep 16 22:30:52 ECT 2004
  cat: arch2: No existe el fichero o       el directorio
  [usr001@linuxpc usr001]$ cat arch1       arch2 2>&1 >a                “2>&1” no
  cat: arch2: No existe el fichero o       el directorio                 funciona
  [usr001@linuxpc usr001]$ cat a
  jue sep 16 22:30:52 ECT 2004




                       LINUX Básico (6. Shells(1))                                  21
Redireccionamiento de entrada
• Se usa para redireccionar la entrada en un comando a
    fin de que provenga de un archivo y no de la terminal.
•   Los símbolos de redireccionamiento de entrada son “<”.
•   El símbolo “<” conecta el "stdin” de un comando con
    un archivo.
                       <
             arch                    std     entrada
              arch                    std              comando
              ivo
               ivo    conectar       in
                                      in


[usr001@linuxpc usr001]$ grep usr000 < /etc/passwd
usr000:x:500:500::/home/usr000:/bin/bash                         los
[usr001@linuxpc usr001]$ cat /etc/passwd | grep usr000           resultados
                                                                 son
usr000:x:500:500::/home/usr000:/bin/bash                         iguales.
[usr001@linuxpc usr001]$ grep usr000 /etc/passwd
usr000:x:500:500::/home/usr000:/bin/bash


                       LINUX Básico (6. Shells(1))                       22
6.4 Sustituciones
  (1) Sustitución de variables
  • Los variables son disponibles en el shell.
  • Algunos variables se definen por el shell o el sistema
      de LINUX.
Variables principales disponibles en el shell

  HOME         Nombre de ruta de acceso completo de su directorio base.
  LOGNAME      Su nombre de usuario.
  PATH         Directorios en los que el shell busca comandos.
  PS1          Principal indicador del shell.
  PWD          Nombre de ruta de acceso completo del directorio de trabajo
               actual.
  SHELL        Nombre de su shell actual.
  TERM         Tipo de terminal que utiliza usted.

                              LINUX Básico (6. Shells(1))                    23
• Con el carácter “$”, podemos sustituir el nombre de un
  variable con su valor.
                                            sustituir
[usr000@linuxpc   usr000]$ echo $HOME
/home/usr000                                               echo /home/usr000
[usr000@linuxpc   usr000]$ ls -la $HOME
total 28
drwx------    2   usr000     usr000           4096   sep    17   12:37   .
drwxr-xr-x   15   root       root             4096   sep    15   23:46   ..
-rw-------    1   usr000     usr000           1332   sep    17   12:28   .bash_history
-rw-r--r--    1   usr000     usr000             24   sep    15   23:39   .bash_logout
-rw-r--r--    1   usr000     usr000            191   sep    15   23:39   .bash_profile
-rw-r--r--    1   usr000     usr000            124   sep    15   23:39   .bashrc
-rw-r--r--    1   usr000     usr000            120   sep    15   23:39   .gtkrc
[usr000@linuxpc   usr000]$   cd $HOME
                                                 cambia el directorio de trabajo
                                                 actual a su directorio base.
                                                 = “cd”
                                                 = “cd ~”


(32) echo         Toma el argumento que se le pasa y lo
                  escribe a la salida estándar.
                             LINUX Básico (6. Shells(1))                             24
6.4(2) Sustitución de comandos
 • La sustitución de comandos sustituye el resultado de un
     comando por un parámetro de posición.
 •   Para sustituir un comando, ponemos el comando entre
     dos “`” (acentos graves).    ` comando `

     [usr001@linuxpc usr001]$ whoami
     usr001
     [usr001@linuxpc usr001]$ echo `whoami` = “echo usr001”
     usr001
     [usr001@linuxpc usr001]$ grep `whoami` /etc/passwd
     usr001:x:501:501::/home/usr001:/bin/bash

                                                      = “grep usr001
                                                       /etc/passwd”




                        LINUX Básico (6. Shells(1))                    25
6.5 Comillas y apóstrofos
 (1) Comillas " "
 • Las comillas " " desactivan los caracteres especiales, “*”, “?”, “[”,
     “]”, “>”, “<”, ...
 •   Sin embargo, la sustitución de variables “$” y comandos ` ` aún
     se lleva a afecto.
[usr000@linuxpc usr000]$ ls
a                               el carácter comodín
[usr000@linuxpc usr000]$ ls *
a                                  un nombre de archivo
[usr000@linuxpc usr000]$ ls "*"
ls: *: No existe el fichero o el directorio
[usr000@linuxpc usr000]$ date > " " un archivo del
[usr000@linuxpc usr000]$ ls -l            que nombre es  un archivo
                                          un espacio.    existe.
total 4
-rw-rw-r--    1 usr000   usr000               29 sep 17 09:47
-rw-rw-r--    1 usr000   usr000                0 sep 17 09:46 a
[usr000@linuxpc usr000]$ cat " "
vie sep 17 09:47:08 ECT 2004
[usr000@linuxpc usr000]$ rm " "
[usr000@linuxpc usr000]$


                           LINUX Básico (6. Shells(1))                     26
sustitución de variables
[usr000@linuxpc   usr000]$ echo $HOME
/home/usr000
[usr000@linuxpc   usr000]$ echo "$HOME"                     para desactivar
/home/usr000                                                la sustitución,
[usr000@linuxpc   usr000]$ echo "$HOME"                    "" es necesario.
$HOME
[usr000@linuxpc   usr000]$ echo `whoami`                 sustitución de
usr000                                                   comandos
[usr000@linuxpc   usr000]$ echo "`whoami`"
usr000
[usr000@linuxpc   usr000]$ echo "`whoami`"                 para desactivar
`whoami`                                                     la sustitución,
                                                             "" es necesario.




                      LINUX Básico (6. Shells(1))                               27
(2) Apóstrofos ' '
• Los apóstrofos ' ' desactivan todo el análisis sintáctico de shell.
 [usr000@linuxpc usr000]$ ls
 a                              el carácter comodín
 [usr000@linuxpc usr000]$ ls ?
 a                                  un nombre de archivo
 [usr000@linuxpc usr000]$ ls '?'
 ls: ?: No existe el fichero o el directorio
 [usr000@linuxpc usr000]$ echo $HOME        sustitución de variables
 /home/usr000
 [usr000@linuxpc usr000]$ echo '$HOME'         se ha desactivado
 $HOME                                         la sustitución.
 [usr000@linuxpc usr000]$ echo `whoami`
 usr000                                          sustitución de
 [usr000@linuxpc usr000]$ echo '`whoami`' comandos
 `whoami`
                                            se ha desactivado
                                            la sustitución.




                          LINUX Básico (6. Shells(1))                   28
6.6 Grupos de comandos
 (1) Secuencia de comandos (punto y coma “;”)
 • Un comando simple se concluye con un “Enter”.
 • Si quiere colocar múltiples comandos en una línea de comando
     antes de presionar “Enter”, puede delimitar comandos individuales
     con un signo de punto y coma “;”.
                     comando1 ; comando2 ; comando3
 •   El shell ejecuta cada comando en secuencia, como si usted hubiera
     escrito cada uno de ellos de forma independiente en una línea.

 [usr000@linuxpc usr000]$ whoami ; date ; cal
 usr000
 vie sep 17 10:43:44 ECT 2004
  septiembre de 2004
 do lu ma mi ju vi sá
           1 2 3 4
  5 6 7 8 9 10 11
 12 13 14 15 16 17 18
 19 20 21 22 23 24 25
 26 27 28 29 30


                           LINUX Básico (6. Shells(1))                   29
6.6(2) Grupos de comandos
  Llaves { }
 • Si quiere redireccionar la entrada o la salida hacia todos los
     comandos como un grupo, puede hacerlo al convertir la línea de
     comando en un grupo de comandos.
 •   Un grupo de comandos son varios comandos encerrados entre
     llaves { }.
                   { comando1; comando2; } > archivo
                       { comando1; comando2; } | archivo
       un espacio es                                       punto y coma es necesario.
       necesario.
 [usr000@linuxpc usr000]$ { whoami; date; } > a
 [usr000@linuxpc usr000]$ cat a
 usr000
 vie sep 17 11:08:30 ECT 2004
 [usr000@linuxpc usr000]$ { whoami; date; } | sort -r
 vie sep 17 11:09:23 ECT 2004
 usr000



                             LINUX Básico (6. Shells(1))                                30
¡ Muchas gracias por su atención !
        ¡ Hasta pronto !
 En la próxima hora, vamos a aprender sobre el
 control de procesos.




                 LINUX Básico (6. Shells(1))     31

Más contenido relacionado

La actualidad más candente

Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas OperativosUCC
 
Actividad v administración y comandos básicos if04 emerson
Actividad v administración y comandos básicos if04 emersonActividad v administración y comandos básicos if04 emerson
Actividad v administración y comandos básicos if04 emersonEmerson Gonzalez IF04 T I
 
Maria jose hernandez c.i. 27.878.738 - seccion pnf if-02 t1 f2 - administra...
Maria jose hernandez   c.i. 27.878.738 - seccion pnf if-02 t1 f2 - administra...Maria jose hernandez   c.i. 27.878.738 - seccion pnf if-02 t1 f2 - administra...
Maria jose hernandez c.i. 27.878.738 - seccion pnf if-02 t1 f2 - administra...MariaJoseHernndez2
 
Administración básica de ubuntu server parte 2
Administración básica de ubuntu server   parte 2Administración básica de ubuntu server   parte 2
Administración básica de ubuntu server parte 2Santiago Márquez Solís
 
Ps tools
Ps toolsPs tools
Ps toolswebsyo
 
2 filesystem basics
2 filesystem basics2 filesystem basics
2 filesystem basicscyberleon95
 
Linux ud9 - gestion de particiones en linux
Linux   ud9 - gestion de particiones en linuxLinux   ud9 - gestion de particiones en linux
Linux ud9 - gestion de particiones en linuxJavier Muñoz
 
Consola y Comandos Básicos de Linux (I)
Consola y Comandos Básicos de Linux (I)Consola y Comandos Básicos de Linux (I)
Consola y Comandos Básicos de Linux (I)Julio Caiza
 

La actualidad más candente (20)

Unix 1314 test
Unix 1314 testUnix 1314 test
Unix 1314 test
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Curso-Taller GNU-Linux Dia2
Curso-Taller GNU-Linux Dia2Curso-Taller GNU-Linux Dia2
Curso-Taller GNU-Linux Dia2
 
Actividad v administración y comandos básicos if04 emerson
Actividad v administración y comandos básicos if04 emersonActividad v administración y comandos básicos if04 emerson
Actividad v administración y comandos básicos if04 emerson
 
Agilidad en shell de linux
Agilidad en shell de linuxAgilidad en shell de linux
Agilidad en shell de linux
 
Maria jose hernandez c.i. 27.878.738 - seccion pnf if-02 t1 f2 - administra...
Maria jose hernandez   c.i. 27.878.738 - seccion pnf if-02 t1 f2 - administra...Maria jose hernandez   c.i. 27.878.738 - seccion pnf if-02 t1 f2 - administra...
Maria jose hernandez c.i. 27.878.738 - seccion pnf if-02 t1 f2 - administra...
 
Administración básica de ubuntu server parte 2
Administración básica de ubuntu server   parte 2Administración básica de ubuntu server   parte 2
Administración básica de ubuntu server parte 2
 
Sistema operativo linux
Sistema operativo linuxSistema operativo linux
Sistema operativo linux
 
Ps tools
Ps toolsPs tools
Ps tools
 
Manual Bàsic PS Tools
Manual Bàsic PS ToolsManual Bàsic PS Tools
Manual Bàsic PS Tools
 
Archlinux
ArchlinuxArchlinux
Archlinux
 
2 filesystem basics
2 filesystem basics2 filesystem basics
2 filesystem basics
 
Comandos
ComandosComandos
Comandos
 
17 comandos basicoslinuxasoitson
17 comandos basicoslinuxasoitson17 comandos basicoslinuxasoitson
17 comandos basicoslinuxasoitson
 
Mis comandos favoritos en linux parte 0
Mis comandos favoritos en linux parte 0Mis comandos favoritos en linux parte 0
Mis comandos favoritos en linux parte 0
 
Linux ud9 - gestion de particiones en linux
Linux   ud9 - gestion de particiones en linuxLinux   ud9 - gestion de particiones en linux
Linux ud9 - gestion de particiones en linux
 
Linux comandos 1
Linux comandos 1Linux comandos 1
Linux comandos 1
 
Consola y Comandos Básicos de Linux (I)
Consola y Comandos Básicos de Linux (I)Consola y Comandos Básicos de Linux (I)
Consola y Comandos Básicos de Linux (I)
 
Intro comandos unix
Intro comandos   unixIntro comandos   unix
Intro comandos unix
 
Resumen scripts unix
Resumen scripts unixResumen scripts unix
Resumen scripts unix
 

Destacado

MANUAL BÁSICO UBUNTU GNU-LINUX
MANUAL BÁSICO UBUNTU GNU-LINUXMANUAL BÁSICO UBUNTU GNU-LINUX
MANUAL BÁSICO UBUNTU GNU-LINUXLiceoMarioWLong
 
Manual gnu linux_basico
Manual gnu linux_basicoManual gnu linux_basico
Manual gnu linux_basicoIsack83
 
Ubuntu 15.04 pdf
Ubuntu 15.04 pdfUbuntu 15.04 pdf
Ubuntu 15.04 pdfMaitaBS
 
CAP-3
CAP-3CAP-3
CAP-3ULEAM
 
Taller Linux Parte 2
Taller Linux Parte 2Taller Linux Parte 2
Taller Linux Parte 2wilves
 
Compartir archivos entre ubuntu y windows y viceversa
Compartir archivos entre ubuntu y windows y viceversaCompartir archivos entre ubuntu y windows y viceversa
Compartir archivos entre ubuntu y windows y viceversaAleksander Grajeda
 
Comandos basicos Linux
Comandos basicos LinuxComandos basicos Linux
Comandos basicos LinuxGrecia Machaca
 
Practica de procesos en Linux
Practica de procesos en LinuxPractica de procesos en Linux
Practica de procesos en LinuxTerrafx9
 
Ejercicios resueltos
Ejercicios resueltosEjercicios resueltos
Ejercicios resueltossgonzales2012
 
Ejercicios resueltos
Ejercicios resueltosEjercicios resueltos
Ejercicios resueltosAINHOA ANGULO
 
Sistema de archivos y directorios - Ubuntu - Compendio
Sistema de archivos y directorios - Ubuntu - CompendioSistema de archivos y directorios - Ubuntu - Compendio
Sistema de archivos y directorios - Ubuntu - CompendioJose Diaz Silva
 
Manual de configuracion de proxy SQUID
Manual de configuracion de proxy SQUIDManual de configuracion de proxy SQUID
Manual de configuracion de proxy SQUIDAndres Ldño
 
Comandos permisos linux centos
Comandos permisos linux centosComandos permisos linux centos
Comandos permisos linux centosche_carlitos
 

Destacado (20)

Curso básico Linux
Curso básico LinuxCurso básico Linux
Curso básico Linux
 
MANUAL BÁSICO UBUNTU GNU-LINUX
MANUAL BÁSICO UBUNTU GNU-LINUXMANUAL BÁSICO UBUNTU GNU-LINUX
MANUAL BÁSICO UBUNTU GNU-LINUX
 
Curso linux operación
Curso linux operaciónCurso linux operación
Curso linux operación
 
Curso linux basico-avanzado
Curso linux basico-avanzadoCurso linux basico-avanzado
Curso linux basico-avanzado
 
Manual gnu linux_basico
Manual gnu linux_basicoManual gnu linux_basico
Manual gnu linux_basico
 
Ubuntu 15.04 pdf
Ubuntu 15.04 pdfUbuntu 15.04 pdf
Ubuntu 15.04 pdf
 
CAP-3
CAP-3CAP-3
CAP-3
 
Mis comandos favoritos en linux parte 1
Mis comandos favoritos en linux parte 1Mis comandos favoritos en linux parte 1
Mis comandos favoritos en linux parte 1
 
Taller Linux Parte 2
Taller Linux Parte 2Taller Linux Parte 2
Taller Linux Parte 2
 
Compartir archivos entre ubuntu y windows y viceversa
Compartir archivos entre ubuntu y windows y viceversaCompartir archivos entre ubuntu y windows y viceversa
Compartir archivos entre ubuntu y windows y viceversa
 
Taller Linux Parte Ii
Taller Linux Parte IiTaller Linux Parte Ii
Taller Linux Parte Ii
 
Sistema operativo ubuntu
Sistema operativo ubuntuSistema operativo ubuntu
Sistema operativo ubuntu
 
Comandos basicos Linux
Comandos basicos LinuxComandos basicos Linux
Comandos basicos Linux
 
Practica de procesos en Linux
Practica de procesos en LinuxPractica de procesos en Linux
Practica de procesos en Linux
 
Ejercicios resueltos
Ejercicios resueltosEjercicios resueltos
Ejercicios resueltos
 
Ejercicios resueltos
Ejercicios resueltosEjercicios resueltos
Ejercicios resueltos
 
Linux 100
Linux 100Linux 100
Linux 100
 
Sistema de archivos y directorios - Ubuntu - Compendio
Sistema de archivos y directorios - Ubuntu - CompendioSistema de archivos y directorios - Ubuntu - Compendio
Sistema de archivos y directorios - Ubuntu - Compendio
 
Manual de configuracion de proxy SQUID
Manual de configuracion de proxy SQUIDManual de configuracion de proxy SQUID
Manual de configuracion de proxy SQUID
 
Comandos permisos linux centos
Comandos permisos linux centosComandos permisos linux centos
Comandos permisos linux centos
 

Similar a Linux Shells Introducción

Linux basico-8.PDF
Linux basico-8.PDFLinux basico-8.PDF
Linux basico-8.PDFULEAM
 
Linux basico-7.PDF
Linux basico-7.PDFLinux basico-7.PDF
Linux basico-7.PDFULEAM
 
Semana 9 entradas salidas estandar y pipes
Semana 9 entradas salidas estandar y pipesSemana 9 entradas salidas estandar y pipes
Semana 9 entradas salidas estandar y pipesvictdiazm
 
Introduction to linux for bioinformatics
Introduction to linux for bioinformaticsIntroduction to linux for bioinformatics
Introduction to linux for bioinformaticsAlberto Labarga
 
Linux basico-3.PDF
Linux basico-3.PDFLinux basico-3.PDF
Linux basico-3.PDFULEAM
 
Unidad 9 - Instalación y configuración Linux
Unidad 9 - Instalación y configuración LinuxUnidad 9 - Instalación y configuración Linux
Unidad 9 - Instalación y configuración Linuxvverdu
 
Tema1 redhat
Tema1 redhatTema1 redhat
Tema1 redhatmmartinv
 
Linux for bioinformatics
Linux for bioinformaticsLinux for bioinformatics
Linux for bioinformaticscursoNGS
 
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]RootedCON
 
01 practicas de laboratorio
01 practicas de laboratorio01 practicas de laboratorio
01 practicas de laboratorioFree Lancer
 
Sobreviviendo commando style
Sobreviviendo commando styleSobreviviendo commando style
Sobreviviendo commando styleJorge Ortiz
 
Como instalar Unix(Johanna)
Como instalar Unix(Johanna)Como instalar Unix(Johanna)
Como instalar Unix(Johanna)JohannaCamila
 
Comandos GNU/Linux-Unix y programación shell.
Comandos GNU/Linux-Unix y programación shell.Comandos GNU/Linux-Unix y programación shell.
Comandos GNU/Linux-Unix y programación shell.Alan Resendiz
 
Introducción a GNU - POSIX - LINUX
Introducción a GNU - POSIX - LINUXIntroducción a GNU - POSIX - LINUX
Introducción a GNU - POSIX - LINUXJose Pla
 
T3.2 alberrto soria
T3.2 alberrto soria T3.2 alberrto soria
T3.2 alberrto soria jsota4
 

Similar a Linux Shells Introducción (20)

Linux basico-8.PDF
Linux basico-8.PDFLinux basico-8.PDF
Linux basico-8.PDF
 
Linux basico-7.PDF
Linux basico-7.PDFLinux basico-7.PDF
Linux basico-7.PDF
 
Semana 9 entradas salidas estandar y pipes
Semana 9 entradas salidas estandar y pipesSemana 9 entradas salidas estandar y pipes
Semana 9 entradas salidas estandar y pipes
 
Introduction to linux for bioinformatics
Introduction to linux for bioinformaticsIntroduction to linux for bioinformatics
Introduction to linux for bioinformatics
 
Linux basico-3.PDF
Linux basico-3.PDFLinux basico-3.PDF
Linux basico-3.PDF
 
Unidad 9 - Instalación y configuración Linux
Unidad 9 - Instalación y configuración LinuxUnidad 9 - Instalación y configuración Linux
Unidad 9 - Instalación y configuración Linux
 
Tema1 redhat
Tema1 redhatTema1 redhat
Tema1 redhat
 
Linux for bioinformatics
Linux for bioinformaticsLinux for bioinformatics
Linux for bioinformatics
 
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
 
The linux shell. Shell Scripting desde 0
The linux shell. Shell Scripting desde 0The linux shell. Shell Scripting desde 0
The linux shell. Shell Scripting desde 0
 
01 practicas de laboratorio
01 practicas de laboratorio01 practicas de laboratorio
01 practicas de laboratorio
 
arquitectura-de-linux
arquitectura-de-linuxarquitectura-de-linux
arquitectura-de-linux
 
Sobreviviendo commando style
Sobreviviendo commando styleSobreviviendo commando style
Sobreviviendo commando style
 
Linux básico
Linux básicoLinux básico
Linux básico
 
Linux
LinuxLinux
Linux
 
Unix JCRB
Unix JCRBUnix JCRB
Unix JCRB
 
Como instalar Unix(Johanna)
Como instalar Unix(Johanna)Como instalar Unix(Johanna)
Como instalar Unix(Johanna)
 
Comandos GNU/Linux-Unix y programación shell.
Comandos GNU/Linux-Unix y programación shell.Comandos GNU/Linux-Unix y programación shell.
Comandos GNU/Linux-Unix y programación shell.
 
Introducción a GNU - POSIX - LINUX
Introducción a GNU - POSIX - LINUXIntroducción a GNU - POSIX - LINUX
Introducción a GNU - POSIX - LINUX
 
T3.2 alberrto soria
T3.2 alberrto soria T3.2 alberrto soria
T3.2 alberrto soria
 

Más de ULEAM

Sistemas_OperativosLibro__Una_Vision_Aplicada__Carretero_Jess
Sistemas_OperativosLibro__Una_Vision_Aplicada__Carretero_JessSistemas_OperativosLibro__Una_Vision_Aplicada__Carretero_Jess
Sistemas_OperativosLibro__Una_Vision_Aplicada__Carretero_JessULEAM
 
Linux basico-6.PDF
Linux basico-6.PDFLinux basico-6.PDF
Linux basico-6.PDFULEAM
 
capitulo5-2011-110612183514-phpapp01
capitulo5-2011-110612183514-phpapp01capitulo5-2011-110612183514-phpapp01
capitulo5-2011-110612183514-phpapp01ULEAM
 
CAPITULO-2-2011
CAPITULO-2-2011CAPITULO-2-2011
CAPITULO-2-2011ULEAM
 
Linux basico-5.PDF
Linux basico-5.PDFLinux basico-5.PDF
Linux basico-5.PDFULEAM
 
Linux basico-1.PDF
Linux basico-1.PDFLinux basico-1.PDF
Linux basico-1.PDFULEAM
 
Linux basico-4.PDF
Linux basico-4.PDFLinux basico-4.PDF
Linux basico-4.PDFULEAM
 
UBUNTU-1
UBUNTU-1UBUNTU-1
UBUNTU-1ULEAM
 
Capitulo 1
Capitulo 1Capitulo 1
Capitulo 1ULEAM
 
Instalación de Ubuntu
Instalación de UbuntuInstalación de Ubuntu
Instalación de UbuntuULEAM
 
Manual de kicad
Manual de kicadManual de kicad
Manual de kicadULEAM
 
Manual de python
Manual de pythonManual de python
Manual de pythonULEAM
 
Manual de bouml
Manual de boumlManual de bouml
Manual de boumlULEAM
 

Más de ULEAM (14)

Sistemas_OperativosLibro__Una_Vision_Aplicada__Carretero_Jess
Sistemas_OperativosLibro__Una_Vision_Aplicada__Carretero_JessSistemas_OperativosLibro__Una_Vision_Aplicada__Carretero_Jess
Sistemas_OperativosLibro__Una_Vision_Aplicada__Carretero_Jess
 
Linux basico-6.PDF
Linux basico-6.PDFLinux basico-6.PDF
Linux basico-6.PDF
 
capitulo5-2011-110612183514-phpapp01
capitulo5-2011-110612183514-phpapp01capitulo5-2011-110612183514-phpapp01
capitulo5-2011-110612183514-phpapp01
 
CAPITULO-2-2011
CAPITULO-2-2011CAPITULO-2-2011
CAPITULO-2-2011
 
Linux basico-5.PDF
Linux basico-5.PDFLinux basico-5.PDF
Linux basico-5.PDF
 
Linux basico-1.PDF
Linux basico-1.PDFLinux basico-1.PDF
Linux basico-1.PDF
 
Linux basico-4.PDF
Linux basico-4.PDFLinux basico-4.PDF
Linux basico-4.PDF
 
UBUNTU-1
UBUNTU-1UBUNTU-1
UBUNTU-1
 
W7
W7W7
W7
 
Capitulo 1
Capitulo 1Capitulo 1
Capitulo 1
 
Instalación de Ubuntu
Instalación de UbuntuInstalación de Ubuntu
Instalación de Ubuntu
 
Manual de kicad
Manual de kicadManual de kicad
Manual de kicad
 
Manual de python
Manual de pythonManual de python
Manual de python
 
Manual de bouml
Manual de boumlManual de bouml
Manual de bouml
 

Linux Shells Introducción

  • 1. LINUX Básico TAKASHI SUGASAWA LINUX Básico (6. Shells(1)) 1
  • 2. Programa del curso 1. Introducción a LINUX 2. Operación básica de LINUX 3. Operación de archivos y directorios 4. Editor vi 5. Comprensión del sistema de ficheros 6. Shells(1) 7. Shells(2) 8. Shells(3) 9. Otros comandos LINUX Básico (6. Shells(1)) 2
  • 3. LINUX Básico 6. Shells(1) Índice 6.1 Comprensión de shells 6.2 Caracteres para completar nombres del ficheros 6.3 Tuberías y redireccionamientos de entrada y salida 6.4 Sustituciones 6.5 Comillas y apóstrofos 6.6 Grupos de comandos LINUX Básico (6. Shells(1)) 3
  • 4. 6.1 Comprensión de shells (1) ¿Qué es shell? • Shell es una aplicación como "Símbolo del sistema" en el Windows. • Shell empieza automáticamente cuando un usuario se registra. • Shell funciona como interfaz principal entre el sistema operativo y el usuario. • Shell interpreta sus comandos u órdenes. • Shell no es un parte del núcleo del sistema operativo. • Hay múltiples shells instalados (Shell Bourne, BASH, Shell C, tcsh, zsh,...). El shell por omisión de LINUX es bash. LINUX Básico (6. Shells(1)) 4
  • 5. 6.1(2) Variedad de shells Shell Bourne • El shell más antiguo. (/bin/sh) • El shell original de UNIX. • Está disponible en todos los sistemas de UNIX. Shell C • El shell antiguo y muy común también. (/bin/csh) • Está disponible en casi todos los sistemas de UNIX. • La sintaxis del shell C es muy parecida al lenguaje de programación C. BASH • El shell derivado de Shell Bourne. (/bin/bash) • Proporciona varias características mejoradas. • El shell por omisión de LINUX tcsh • El shell derivado de Shell C. (/bin/tcsh) • Proporciona varias características mejoradas. Hay otros, Shell Z, Shell Korn, ... LINUX Básico (6. Shells(1)) 5
  • 6. 6.1(3) Shells disponibles en el sistema Para saber los shells disponibles en el sistema, se referimos el archivo "/etc/shells". [usr001@linuxpc usr001]$ cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/bash2 /bin/ash /bin/bsh /bin/tcsh /bin/csh LINUX Básico (6. Shells(1)) 6
  • 7. 6.1(4) Cambio el login shell Para cambiar el login shell, usamos el comando "chsh". (28) chsh cambiar el login shell. [usr001@linuxpc usr001]$ chsh Cambiando intérprete de órdenes para usr001. Password: Nuevo intérprete de órdenes [/bin/bash]: /bin/csh Se ha cambiado el intérprete de órdenes. [usr001@linuxpc usr001]$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash (omisión) usr000:x:500:500::/home/usr000:/bin/bash usr001:x:501:501::/home/usr001:/bin/csh usr002:x:502:502::/home/usr002:/bin/bash (omisión) Si no hay una razón especial, vamos a usar BASH. LINUX Básico (6. Shells(1)) 7
  • 8. 6.2 Caracteres para completar nombres del ficheros (1) El carácter comodín “*” • El asterisco “*” es el carácter comodín, significa cualquiera y todos los caracteres. • Por ejemplo, “a*” significa todos los ficheros que comiencen con una a. [usr001@linuxpc usr001]$ ls abxx.txt abyy xx.txt xxyyzz [usr001@linuxpc usr001]$ ls a* abxx.txt abyy [usr001@linuxpc usr001]$ ls *.txt abxx.txt xx.txt [usr001@linuxpc usr001]$ ls *yy* abyy xxyyzz [usr001@linuxpc usr001]$ ls * abxx.txt abyy xx.txt xxyyzz [usr001@linuxpc usr001]$ ls b* ls: b*: No existe el fichero o el directorio [usr001@linuxpc usr001]$ rm * [usr001@linuxpc usr001]$ ls LINUX Básico (6. Shells(1)) 8
  • 9. 6.2(2) El carácter comodín “?” • El signo interrogación “?” es el carácter comodín, significa un solo carácter cualquier. [usr001@linuxpc usr001]$ ls a1 a2 a3 b1 b2 c1 d [usr001@linuxpc usr001]$ ls a? a1 a2 a3 [usr001@linuxpc usr001]$ ls ?1 a1 b1 c1 [usr001@linuxpc usr001]$ ls ?? a1 a2 a3 b1 b2 c1 [usr001@linuxpc usr001]$ ls ? d LINUX Básico (6. Shells(1)) 9
  • 10. 6.2(3) La expresión “[ ]” • La expresión “[ ]” (corchetes) significa un carácter simple si encierra entre corchetes una serie de caracteres. [usr001@linuxpc usr001]$ ls a1 a2 a3 a4 a5 b1 c1 d1 e1 x1 y1 z1 [usr001@linuxpc usr001]$ ls a[2-4] a2 a3 a4 [usr001@linuxpc usr001]$ ls [a-z]1 a1 b1 c1 d1 e1 x1 y1 z1 [usr001@linuxpc usr001]$ ls [ace][135] a1 a3 a5 c1 e1 [usr001@linuxpc usr001]$ ls [a-c,xz]? a1 a2 a3 a4 a5 b1 c1 x1 z1 LINUX Básico (6. Shells(1)) 10
  • 11. 6.3 Tuberías y redireccionamientos de entrada y salida (1) stdin, stdout, stderr Salida estándar (stdout) • Algunos comandos envían su salida hacia la pantalla. A la verdad, estos comandos envían su salida hacia un archivo especial llamado "stdout", y el sistema de LINUX asocia "stdout" con la pantalla. salida std cat /etc/passwd std out pantalla out LINUX Básico (6. Shells(1)) 11
  • 12. Entrada estándar (stdin) • Algunos comandos esperan una entrada desde la terminal o el teclado. A la verdad, estos comandos esperan la entrada desde un archivo especial llamado “stdin”, y el sistema de LINUX asocia "stdin" con el teclado. teclado entrada salida std std std std in cat - out pantalla in out [usr001@linuxpc usr001]$ cat - abc abc 123 123 xyz xyz Teclear "Cntl-d" para escapar. LINUX Básico (6. Shells(1)) 12
  • 13. Salida de error estándar (stderr) • Algunos comandos envían un mensaje de error hacia un pantalla. A la verdad, estos comandos envían un mensaje de error hacia un archivo especial llamado "stderr", y el sistema de LINUX asocia "stderr" con la pantalla. error std std comando err pantalla err No existe [usr001@linuxpc usr001]$ ls [usr001@linuxpc usr001]$ cat a > b error cat: a: No existe el fichero o el directorio [usr001@linuxpc usr001]$ ls b se ha [usr001@linuxpc usr001]$ cat b vacío creado [usr001@linuxpc usr001]$ "stdout" y "stderr" son diferentes. LINUX Básico (6. Shells(1)) 13
  • 14. 6.3(2) Tuberías • Con tuberías, se puede utilizar la salida de un comando como entrada de otro. • El carácter de tubería es una barra vertical "|". (ejemplo) queremos concatenar 2 archivos "/etc/passwd" y "/etc/group", y verlo con el paginador "more". si usamos un tubería ... cat /etc/passwd /etc/group > tmp cat /etc/passwd /etc/group | more more tmp archivo temporal • Una tubería conecta el "stdout" de un comando hacia el "stdin" de otro. tubería salida std std entrada comando1 std std comando2 out out conectar in in LINUX Básico (6. Shells(1)) 14
  • 15. Los comandos “more”, “less”, “grep”, “sort” se utilizan frecuentemente con las tuberías. (29) grep buscar patrones que se encuentren en archivos e informa dónde localiza esos patrones. (ej.) grep exp-reg arch1 [arch2 ...] sale los líneas que contienen “usr00” [usr000@linuxpc usr000]$ cat /etc/passwd | grep usr00 usr000:x:500:500::/home/usr000:/bin/bash usr001:x:501:501::/home/usr001:/bin/bash = “grep usr00 usr002:x:502:502::/home/usr002:/bin/bash /etc/passwd” usr003:x:503:503::/home/usr003:/bin/bash usr004:x:504:504::/home/usr004:/bin/bash usr005:x:505:505::/home/usr005:/bin/bash usr006:x:506:506::/home/usr006:/bin/bash usr007:x:507:507::/home/usr007:/bin/bash usr008:x:508:508::/home/usr008:/bin/bash usr009:x:509:509::/home/usr009:/bin/bash LINUX Básico (6. Shells(1)) 15
  • 16. (30) sort ordenar archivos de texto. (ej.) sort arch1 [arch2 ...] Para la salida en una sola columna [usr001@linuxpc usr001]$ ls -i1 400941 a 400940 abc 400936 bc 400942 defg usando primer campo 400937 xyz [usr001@linuxpc usr001]$ ls -i1 | sort 400936 bc 400937 xyz 400940 abc 400941 a descendentemente 400942 defg [usr001@linuxpc usr001]$ ls -i1 | sort -r 400942 defg 400941 a 400940 abc 400937 xyz usando segundo campo 400936 bc [usr001@linuxpc usr001]$ ls -i1 | sort -r +1 400937 xyz 400942 defg 400936 bc 400940 abc 400941 a LINUX Básico (6. Shells(1)) 16
  • 17. 6.3(3) Redireccionamientos Redireccionamiento de salida • Se emplea para redireccionar la salida de un comando hacia un archivo. En vez de que la salida vaya a la pantalla de la terminal, se coloca en un archivo. • Los símbolos de redireccionamiento de salida son “>”, “>>”, “2>”, “2>>”, “&>”. [usr001@linuxpc usr001]$ date jue sep 16 20:08:37 ECT 2004 [usr001@linuxpc usr001]$ date > arch1 [usr001@linuxpc usr001]$ cat arch1 jue sep 16 20:08:42 ECT 2004 LINUX Básico (6. Shells(1)) 17
  • 18. • El redireccionamiento de salida conecta el "stdout" o “stderr” de un comando hacia un archivo. std “>”, “>>” arch std arch out out ivo ivo salida “&>” comando arch arch “2>&1” “1>&2” ivo ivo mensaje de error std std arch arch err err ivo ivo “2>”, “2>>” LINUX Básico (6. Shells(1)) 18
  • 19. Diferencia entre “>” y “>>” (“2>” y “2>>”) • Si el archivo no existe, son iguales. • Si está el archivo, “>” sobrescribe el archivo, “>>” agregar al archivo. [usr001@linuxpc usr001]$ ls no existente [usr001@linuxpc usr001]$ whoami > arch1 [usr001@linuxpc usr001]$ cat arch1 usr001 ya existente [usr001@linuxpc usr001]$ date > arch1 [usr001@linuxpc usr001]$ cat arch1 se ha sobrescrito jue sep 16 22:06:45 ECT 2004 [usr001@linuxpc usr001]$ whoami >> arch1 [usr001@linuxpc usr001]$ cat arch1 jue sep 16 22:06:45 ECT 2004 usr001 se ha añadido (31) whoami Presenta su nombre de usuario. LINUX Básico (6. Shells(1)) 19
  • 20. “>” y “2>”, “&>” [usr001@linuxpc usr001]$ ls arch1 [usr001@linuxpc usr001]$ cat arch1 existente jue sep 16 22:30:52 ECT 2004 [usr001@linuxpc usr001]$ cat arch1 arch2 no existente jue sep 16 22:18:33 ECT 2004 salida de “stdout” cat: arch2: No existe el fichero o el directorio salida de [usr001@linuxpc usr001]$ cat arch1 arch2 >a 2>b “stderr” [usr001@linuxpc usr001]$ cat a jue sep 16 22:18:33 ECT 2004 [usr001@linuxpc usr001]$ cat b cat: arch2: No existe el fichero o el directorio [usr001@linuxpc usr001]$ cat arch1 arch2 &>c [usr001@linuxpc usr001]$ cat c jue sep 16 22:18:33 ECT 2004 cat: arch2: No existe el fichero o el directorio LINUX Básico (6. Shells(1)) 20
  • 21. “2>&1” (“1>&2”) [usr001@linuxpc usr001]$ ls arch1 [usr001@linuxpc usr001]$ cat arch1 existente jue sep 16 22:30:52 ECT 2004 [usr001@linuxpc usr001]$ cat arch1 arch2 no existente jue sep 16 22:30:52 ECT 2004 salida de “stdout” cat: arch2: No existe el fichero o el directorio salida de [usr001@linuxpc usr001]$ cat arch1 arch2 2>&1 | sort “stderr” cat: arch2: No existe el fichero o el directorio jue sep 16 22:30:52 ECT 2004 [usr001@linuxpc usr001]$ cat arch1 arch2 >a 2>&1 = “&>” [usr001@linuxpc usr001]$ cat a jue sep 16 22:30:52 ECT 2004 cat: arch2: No existe el fichero o el directorio [usr001@linuxpc usr001]$ cat arch1 [usr001@linuxpc usr001]$ cat a arch2 >>a 2>&1 orden es jue sep 16 22:30:52 ECT 2004 importante cat: arch2: No existe el fichero o el directorio jue sep 16 22:30:52 ECT 2004 cat: arch2: No existe el fichero o el directorio [usr001@linuxpc usr001]$ cat arch1 arch2 2>&1 >a “2>&1” no cat: arch2: No existe el fichero o el directorio funciona [usr001@linuxpc usr001]$ cat a jue sep 16 22:30:52 ECT 2004 LINUX Básico (6. Shells(1)) 21
  • 22. Redireccionamiento de entrada • Se usa para redireccionar la entrada en un comando a fin de que provenga de un archivo y no de la terminal. • Los símbolos de redireccionamiento de entrada son “<”. • El símbolo “<” conecta el "stdin” de un comando con un archivo. < arch std entrada arch std comando ivo ivo conectar in in [usr001@linuxpc usr001]$ grep usr000 < /etc/passwd usr000:x:500:500::/home/usr000:/bin/bash los [usr001@linuxpc usr001]$ cat /etc/passwd | grep usr000 resultados son usr000:x:500:500::/home/usr000:/bin/bash iguales. [usr001@linuxpc usr001]$ grep usr000 /etc/passwd usr000:x:500:500::/home/usr000:/bin/bash LINUX Básico (6. Shells(1)) 22
  • 23. 6.4 Sustituciones (1) Sustitución de variables • Los variables son disponibles en el shell. • Algunos variables se definen por el shell o el sistema de LINUX. Variables principales disponibles en el shell HOME Nombre de ruta de acceso completo de su directorio base. LOGNAME Su nombre de usuario. PATH Directorios en los que el shell busca comandos. PS1 Principal indicador del shell. PWD Nombre de ruta de acceso completo del directorio de trabajo actual. SHELL Nombre de su shell actual. TERM Tipo de terminal que utiliza usted. LINUX Básico (6. Shells(1)) 23
  • 24. • Con el carácter “$”, podemos sustituir el nombre de un variable con su valor. sustituir [usr000@linuxpc usr000]$ echo $HOME /home/usr000 echo /home/usr000 [usr000@linuxpc usr000]$ ls -la $HOME total 28 drwx------ 2 usr000 usr000 4096 sep 17 12:37 . drwxr-xr-x 15 root root 4096 sep 15 23:46 .. -rw------- 1 usr000 usr000 1332 sep 17 12:28 .bash_history -rw-r--r-- 1 usr000 usr000 24 sep 15 23:39 .bash_logout -rw-r--r-- 1 usr000 usr000 191 sep 15 23:39 .bash_profile -rw-r--r-- 1 usr000 usr000 124 sep 15 23:39 .bashrc -rw-r--r-- 1 usr000 usr000 120 sep 15 23:39 .gtkrc [usr000@linuxpc usr000]$ cd $HOME cambia el directorio de trabajo actual a su directorio base. = “cd” = “cd ~” (32) echo Toma el argumento que se le pasa y lo escribe a la salida estándar. LINUX Básico (6. Shells(1)) 24
  • 25. 6.4(2) Sustitución de comandos • La sustitución de comandos sustituye el resultado de un comando por un parámetro de posición. • Para sustituir un comando, ponemos el comando entre dos “`” (acentos graves). ` comando ` [usr001@linuxpc usr001]$ whoami usr001 [usr001@linuxpc usr001]$ echo `whoami` = “echo usr001” usr001 [usr001@linuxpc usr001]$ grep `whoami` /etc/passwd usr001:x:501:501::/home/usr001:/bin/bash = “grep usr001 /etc/passwd” LINUX Básico (6. Shells(1)) 25
  • 26. 6.5 Comillas y apóstrofos (1) Comillas " " • Las comillas " " desactivan los caracteres especiales, “*”, “?”, “[”, “]”, “>”, “<”, ... • Sin embargo, la sustitución de variables “$” y comandos ` ` aún se lleva a afecto. [usr000@linuxpc usr000]$ ls a el carácter comodín [usr000@linuxpc usr000]$ ls * a un nombre de archivo [usr000@linuxpc usr000]$ ls "*" ls: *: No existe el fichero o el directorio [usr000@linuxpc usr000]$ date > " " un archivo del [usr000@linuxpc usr000]$ ls -l que nombre es un archivo un espacio. existe. total 4 -rw-rw-r-- 1 usr000 usr000 29 sep 17 09:47 -rw-rw-r-- 1 usr000 usr000 0 sep 17 09:46 a [usr000@linuxpc usr000]$ cat " " vie sep 17 09:47:08 ECT 2004 [usr000@linuxpc usr000]$ rm " " [usr000@linuxpc usr000]$ LINUX Básico (6. Shells(1)) 26
  • 27. sustitución de variables [usr000@linuxpc usr000]$ echo $HOME /home/usr000 [usr000@linuxpc usr000]$ echo "$HOME" para desactivar /home/usr000 la sustitución, [usr000@linuxpc usr000]$ echo "$HOME" "" es necesario. $HOME [usr000@linuxpc usr000]$ echo `whoami` sustitución de usr000 comandos [usr000@linuxpc usr000]$ echo "`whoami`" usr000 [usr000@linuxpc usr000]$ echo "`whoami`" para desactivar `whoami` la sustitución, "" es necesario. LINUX Básico (6. Shells(1)) 27
  • 28. (2) Apóstrofos ' ' • Los apóstrofos ' ' desactivan todo el análisis sintáctico de shell. [usr000@linuxpc usr000]$ ls a el carácter comodín [usr000@linuxpc usr000]$ ls ? a un nombre de archivo [usr000@linuxpc usr000]$ ls '?' ls: ?: No existe el fichero o el directorio [usr000@linuxpc usr000]$ echo $HOME sustitución de variables /home/usr000 [usr000@linuxpc usr000]$ echo '$HOME' se ha desactivado $HOME la sustitución. [usr000@linuxpc usr000]$ echo `whoami` usr000 sustitución de [usr000@linuxpc usr000]$ echo '`whoami`' comandos `whoami` se ha desactivado la sustitución. LINUX Básico (6. Shells(1)) 28
  • 29. 6.6 Grupos de comandos (1) Secuencia de comandos (punto y coma “;”) • Un comando simple se concluye con un “Enter”. • Si quiere colocar múltiples comandos en una línea de comando antes de presionar “Enter”, puede delimitar comandos individuales con un signo de punto y coma “;”. comando1 ; comando2 ; comando3 • El shell ejecuta cada comando en secuencia, como si usted hubiera escrito cada uno de ellos de forma independiente en una línea. [usr000@linuxpc usr000]$ whoami ; date ; cal usr000 vie sep 17 10:43:44 ECT 2004 septiembre de 2004 do lu ma mi ju vi sá 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 LINUX Básico (6. Shells(1)) 29
  • 30. 6.6(2) Grupos de comandos Llaves { } • Si quiere redireccionar la entrada o la salida hacia todos los comandos como un grupo, puede hacerlo al convertir la línea de comando en un grupo de comandos. • Un grupo de comandos son varios comandos encerrados entre llaves { }. { comando1; comando2; } > archivo { comando1; comando2; } | archivo un espacio es punto y coma es necesario. necesario. [usr000@linuxpc usr000]$ { whoami; date; } > a [usr000@linuxpc usr000]$ cat a usr000 vie sep 17 11:08:30 ECT 2004 [usr000@linuxpc usr000]$ { whoami; date; } | sort -r vie sep 17 11:09:23 ECT 2004 usr000 LINUX Básico (6. Shells(1)) 30
  • 31. ¡ Muchas gracias por su atención ! ¡ Hasta pronto ! En la próxima hora, vamos a aprender sobre el control de procesos. LINUX Básico (6. Shells(1)) 31