Resumen de Comandos (Básicos) Unix
En este
tutorial de comandos se trataran indistintamente UNÍX o LINUX, cuando hacemos
referencia a uno vale para el otro y a la inversa.
A la hora de presentar la sintaxis de los comandos se sigue el formato estándar
de todo manual de informática, donde los parámetros introducidos entre signos
" < > " son parámetros que deben pasarse de forma indispensable. Mientras
que los argumentos o parámetros que estén entre " [ ] " su paso no es necesario
sino opcional.
IMPORTANTE!!!: UNÍX distingue entre nomenclaturas. Así pues distingue mayúsculas
y minúsculas (case sensitive = caso sensible). Lo que quiere decir que no
es lo mismo poner CD a poner cd. J
La linea de comandos (donde debemos escribirlos) es denominado shell.
La mayoría de ordenes en UNÍX o por lo menos las mas comúnmente usadas son
de 2 letras.
Ayuda de
comandos
Comando: man
Etimologia: man (manual).
Sintaxis: man [-fk] <comando>
Donde man nos proporciona una ayuda sobre el comando que especificamos como
parámetro. La ayuda viene en ingles. Pero en ella se pueden
ver todos los parámetros que permite cualquier comando y su explicación además
de la definición del comando y sus ya mencionados argumentos.
Parámetros:
Ø -f esta opción hace que man muestre la definición del comando en una sola
línea.
Ø -k la opcion -k de la orden man busca en todas las descripciones, incluidos
los nombres de las ordenes, las que incluyen las palabras especificadas.
Ejemplo: man -k connect
Buscara la palabra connect.
Caracteres
especiales
El "*" y "?" funcionan de la misma forma que en el sistema
operativo MSDOS.
Carácter
*
Ejemplo: ls file*
Esto buscaría todos los ficheros que empezaran por file el resto de caracteres
que le siguen es sustituido por el asterisco y se muestran en pantalla.
Carácter ?
Ejemplo: ls file?*
Esto localizara aquellos ficheros que empiecen por file y a continuación un
carácter que será sustituido por el ? luego puede o no contener mas caracteres.
Resumiendo: el carácter * absorbe cualquier carácter o caracteres, y el carácter
? absorbe un solo carácter.
Carácter ~ (altgr+126) Este carácter devolverá la ruta del home, ejemplo:
ls ~/dir1/dir2/
El comando "PWD" devuelve también el home.
Comandos de información
Información de usuarios conectados
Comando: who
Etimología: who+is (Quien?) [es]
Sintaxis: who [-sHqT]
Este comando nos muestra los usuarios coenctados e información sobre tales.
Si ponemos: who me
Nos hará un who a nosotros mismos, dándonos información sobre nosotros.
Información
del usuario
Comando: finger
Sintaxis: finger usuario
Este comando mostara información del usuario: directorio home, ultimo mensaje
leído, login, shell, etc.
Otros comandos para obtener informacion
son:
uname
tty (sobre el terminal).
w
Comandos programables
Comando para mostrar texto en pantalla
Comando: echo
Sintaxis: echo [-n] texto
Ejemplo: echo Hola mundo!!!
Esto mostrara en pantalla "Hola mundo!!!"
Parametros: el parametro -n situa el cursor al final de la linea con lo que
el resultado de los echo se formatea en una linea unicamente.
Apunte tecnico: El comando echo toma por la consola estandar de entrada (stdin)
un parametro "texto" su función es sacarlo por la consola estandar
de salida (stdout).
Creando comandos personalizados
Comando: alias
Etimología: Sobrenombre
Sintaxis: alias [-p] [nombre[=valor]]
Este comando crea un nombre de comando que realiza la función que nosotros predefinamos
con anterioridad.
Lo mejor es ver un ejemplo:
alias saludo=`echo nas xaval J`
Ahora cuando pongamos en el shell el comando (alias) "saludo", linux nos mostrara
un mensaje "nas xaval J". Debemos poner ese tipo de entrecomillado para que
el comando se ejecute y guarde el valor para la salida por el stdout llevada
por el comando echo.
Eliminando comandos personalizados
Comando: unalias
Sintaxis: unalias
Eliminara
el alias pasado como parámetro.
Definicion de variable:
Una variable vendria a ser como un contenedor que almacena un dato, internamente
no es mas que una direccion en memoria que apunta al contenido de un dato. Las
variables se almacenan en memoria RAM. Y son muy utiles para trabajar con un
procesamiento de datos en el que es esencial guardar algunos parametros para
ser usados en procesos posteriores.
Creando variables
Sintaxis: NameVar=valor
Ejemplo: MiNombre="Javier"
En este ejemplo guardamos la cadena de texto Javier (para que sea tomada como
cadena de texto es necesario el entrecomillado doble) y lo almacenamos dentro
de la variable MiNombre.
También podemos hacer que se ejecute un comando como en el ejemplo anterior
del echo: fecha=`date`
Devolviendo el valor
SIntaxis: $namevar
Para devolver el valor de una variable debremos precedir al nombre de la variable
el caracter "$".
Para ver el valor de la variable creada en el ejemplo anterior, podriamos hacer:
echo $MiNombre
Eliminando variables
SIntaxis: unset namevar
Ejemplo: unset MiNombre
De esta forma eliminariamos el contenido de esa variable y su especificacion
de variable como tal. Desapareceria de nuestra memoria.
Comandos de datos temporales
Mostrando calendario
Comando: cal
Etimología: Calendario
Sintaxis: cal [mes[año]]
Este comando ofrece un calendario mensual. Puede tener comoargumentos el mes
y año.
Ejemplo: cal 01 2001
Mostrara el mes de enero del 2001
Mostrando fecha y hora
Comando: date
Sintaxis: date
Esto mostrara en formato la fecha actual.
Etimología: date (fecha)
Comandos varios
Limpiando pantalla
Comando: clear
Etimología: Limpiar
Sintaxis: clear
Este comando limpia la pantalla.
Ejecutando scripts (guiones)
Comando: sh
Sintaxis: sh script
Donde script es el nombre del guion a ejecutar.
Temporizando proceso de comando.
Comando: time
Etimología: tiempo (hora).
Sintaxis: time [comando]
Devuelve el tiempo de ejecución total, el tiempo que el sistema ha dedicado
a ese usuario y el tiempo de preparación del programa o comando pasado como
argymento.
Visualizando bloques libres o usados
Comando: df
Comandos para operaciones de comunicación
Los comando write y talk permiten enviar y recibir mensajes y los programas
mail y mailx gestionan el correo electrónico.
Comunicación bidireccional unica
Comando: write
Etimología: Escribir
Sintaxis: write [terminal]
Ejemplo:
write Quasi
Hola, Quasi
Como te va ese OrioN ScripT?
^d
El usuario Quasi vera en pantalla lo siguiente:
Message from pepe tty0 [ved mar 9 09:02:34]
Hola, Quasi
Como te va ese OrioN ScripT?
EOF
Lógicamente es necesario que los dos usuarios estén conectados. Tal información
la podemos obtener con el ya visto comando who.
Este comando sirve para proveer un tipo de comunicación de corto-cambio (duplex
= bidireccional unico (en un solo sentido)).
Para realizar una comunicación mas fluida (fullduplex = bidireccional simultanea
(en ambos sentidos a la vez)). Se usa el comando talk
Comunicacion bidireccional simultanea
Comando: talk
Etimología: Hablar
Sintaxis: talk
Ejemplo:
talk Quasi
Y Quasi recibe el mensaje: talk: conexión solicitada por pepito ...
Si Quasi pone: talk pepito
La pantalla se divide en 2 partes una para teclear y otra para recibir. Para
terminar teclear control+c.
Impidiendo la recepción de mensajes.
Comando: mesg
Etimología: message (mensajes)
Sintaxis: mesg [y|n]
Ejemplo:
mesg n
Suponiendo que ese comando lo halla ejecutado Quasi, cuando alguien intente
mandar un mensaje (talk o write) a Quasi este no lo recibirá al usuario que
lo intenta le pondrá en pantalla "permiso denegado".
Para saber nuestra situación actual, ósea si el cierre de mensajes esta activado
o no, basta con poner: mesg
Mensaje massivo
Comando: wall
Sintaxis: wall
Ejemplo:
wall
El mejor ScripT del mundo mundias: OrioN scriprt: http://ircorion.cjb.net
^d
Gestionando correo
Comando: mail
Sintaxis: mail [user1, user2, user3, etc]
Si no especificamos el usuario al que queremos mandar el mail. Nos entrara en
el programa de gestión de nuestro propio correo, desde el cual podremos ver
y editar nuestro correo.
Si especificamos un parámetro con el nombre de usuario de algún equipo, el programa
procesa unos datos (subject, texto, etc.) y lo envía al user.
Ejecutando mail sin pasarle argumentos entramos en el entorno del programa de
gestión de mails. En el cual podemos usar las siguientes ordenes.
Ø ? muestra ayuda
Ø n donde n es el numero del mail que queremos visualizar en pantalla.
Ø p muestra el mensaje actual
Ø h muestra las cabeceras de los mensajes
Ø d borra el mensaje
Ø q sale del mail
Ø s file Donde guarda el mensaje actual dentro de file. Si no se indica file
se guardara en mbox.
Ø R nº Si deseamos responder al mensaje numero n.
Comandos para operaciones con directorios
Moviéndose por el sistema de ficheros (directorios y subdirectorios)
Comando: cd
Sintaxis: cd
Donde directorio es el directorio al que queremos ir.
Etimología: change directory, cambio de directorio.
Parámetros:
Ø cd .. Nos dirigiría al directorio padre del directorio en el que estamos.
NOTA: es distinto al MSDOS, en este caso los ".." están separados del cd.
Ø cd . Nos dejaría en el mismo lugar puesto que dirige al directorio en el que
estamos.
Ø cd Si no pasamos parámetro o argumento alguno al comando cd, este nos llevara
a nuestro directorio de origen. En unís el directorio de origen es llamado HOME
podemos devolver su ruta con la variable de entorno $HOME o con el símbolo "~"
(alt +126).
NOTA: de monos cuenta que ".." hace referencia al directorio padre, mientras
que "." Hace referencia al directorio actual.
Visualizando el contenido de los directorios
Comando: ls
Sintaxis: ls [-FltrCai] [dir]
Donde los parámetros pasados al ls, filtraran la información a la forma deseada
y predefinida.
Parámetros:
-F Indica que muestre los ficheros y subdirectorios que hay dentro del directorio
con signos identificativos a cada uno de ellos.
My-dir/
My-file
My-file-exe*
Si la entrada lleva el signo "/" se trata de un subdirectorio que cuelga del
directorio en el que estamos.
Si no se muestra ningún signo se trata de un fichero.
Si se muestra un "*" (asterisco), se estará tratando de un fichero ejecutable.
-l Con este parámetro, el comando ls nos muestra el formato largo de visualización
de entradas de ficheros y directorios. En el que se dan en primer lugar los
permisos asignados a los ficheros o directorios (si esos permisos empiezan por
un "-" se trata de un fichero, si empieza por una "d" se estará tratando de
un directorio). A continuación en la segunda columna se muestran el numero de
enlaces o links a ese fichero o directorio. La tercera y cuarta columna son
el nombre del propietario y su grupo respectivamente. El resto son el tamaño,
la fecha de ultima modificación, la hora, etc.
-t Con este parámetro filtramos las entradas de los ficheros y directorios para
mostrarlos ordenados según su fecha de creación.
-r Muestra las entradas de ficheros y directorios en orden inverso (por defecto
se muestran en orden alfabético).
-C Presenta los nombres de los ficheros en columnas.
-a Muestra los ficheros o directorios ocultos (empiezan por un punto).
-i Con este argumento sé vera el numero de inodo perteneciente a cada fichero.
Creando directorios
Comando: mkdir
Sintaxis: mkdir [-pm] <NameDir>
Si introducimos (mkdir dir1 dir2 dir3), crearemos 3 directorios en la ruta donde
nos encontramos.
Etimología: Make directory (crear directorio).
Parámetros:
Ø -p crea los directorios y subdirectorios indicados en la ruta y que no existan
ya.
Ø -m
Eliminando directorios
Comando: rmdir
Etimología: remove directory (eliminar directorio).
Sintaxis: rmdir [-p]
Donde [parámetros] será para borrar con ciertas opciones. Y directorio será
el directorio o ruta de directorios/subdirectorios a eliminar.
NOTA: Para que el comando rmdir sea efectivo y elimine el o los directorios.
Deben de cumplirse las siguientes condiciones.
1. El directorio tiene que estar vació.
2. Su userid debe tener permiso, asignado al directorio padre, para escribir
y ejecutar.
3. El directorio no puede ser su directorio de trabajo.
Comandos para operaciones con ficheros u archivos
Copiando ficheros
Comando: cp
Etimología: copy (copiar)
Sintaxis: cp [-lR] <entrada> <salida>
Donde al comando cp le pasamos como argumentos indespensables, la entrada que
serian los ficheros o el fichero que queremos copiar, y la salida que seria
el lugar (directorio o subdirectorio) en el cual queremos dejar la copia.
Parámetros:
Ø -l Para crear enlaces (viene de link).
Ø -R Copia recursivamente todos los ficheros que cuelgan de la ruta especificada
(viene de recursivamente).
Ejemplo: cp file1 .
En este ejemplo se copia el fichero (file1) al directorio actual que es devuelto
al pasar como parámetro el signo ".", esto indica que se copie al directorio
en el que nos encontramos.
Moviendo ficheros
Comando: mv
Etimología: movie (mover).
Sintaxis: mv <entrada> <salida>
Donde entrada será el fichero o los ficheros que queremos mover. Y la salida
será el directorio al que van dirigidos.
NOTA: Tanto mv como cp sobrescriben los ficheros sin pedir confirmación. J
Eliminando ficheros
Comando: rm
Etimología: Remove (eliminar).
Sintaxis: rm [-ir] <file/s>
Donde al comando rm le podemos pasar opcionalmente unos parametros y donde ficheros
serán aquellos archivos que queremos eliminar.
Parámetros:
Ø -i Este parámetro hace que se pida confirmación antes de eliminar un fichero.
Ø -r Con este argumento haremos que el comando rm elimine también directorios
(tengan dentro ficheros o no).
Ejemplo: rm -r *
Esto elimara todos los directorios, subdirectorios y ficheros de la ruta en
el que nos encontramos.
Mostrando diferencias entre ficheros
Comando: diff
Sintaxis: diff file1 file2
Etimología: diference file
Viendo el contenido de ficheros
Comando: more
Sintaxis: more [-bh!q] <file/s>
Donde a more le pasamos el fichero. La función del comando es visualizar y procesar
el listado de datos o información que hay dentro del fichero que le pasamos
al comando. Tal información se lanza a pantalla.
Dentro del proceso del comando:
Ø La barra espaciadora: para avanzar a la pagina siguiente.
Ø B para volver a la pagina anterior (viene de backspace).
Ø ¿ o h presenta la pagina de ayuda con las opciones de more.
Ø ! ejecuta una orden
Ø ctrl.+l reestablece la pantalla que habia antes de ejecutar ? o !.
Ø q o ctrl+c finaliza la ejecución de more (viene de quit).
Comando: cat
Sintaxis: cat
Ejemplo: cat file1 file2 file3
Veremos el contenido del fichero 1, del fichero 2 y 3. J
Analizando tipo de ficheros
Comando: file
Etimología: file (fichero o archivo)
Sintaxis: file [-f] <file>
Este comando nos dirá el tipo de ficheros del directorio hay en el directorio
donde lo ejecutemos. Si se trata de un fichero script (guión, texto o ejecutable)
Imprimiendo ficheros.
Comando: lp
Etimología: lp viene del puerto pararelo de la impresora (lpt1 o lptr).
Sintaxis: lp [-d]
Donde a lp le pasamos los ficheros que queremos que se impriman.
Ejemplo: lp fichero1
Esto imprimirá el fichero1.
Parámetros:
Ø -d Sirve para especificar mas impresoras
Ejemplo: lp -d impresora1 file1 file2
Se lanzan a la impresora1 dos ficheros para su impresión: file1 y file2.
Ordenes para el comando
Ø Cancel: cancela o elimina los trabajos de la cola de impresión.
Ø Lpstat: muestra el estado de los trabajos pendientes de impresión.
Localizando ficheros
Comando: find
Etimologias: find (buscar).
Sintaxis: find [-name,-u,-mtime] core -print
Donde directorio es la ruta donde se buscaran los patrones especificados.
La sintaxis del find es algo enrevesada, depende de los parametros que le pasemos.
Parámetros:
Ø -name Indicando el nonbre nos localizara aquellos ficheros cuyo nombre sea
el pasado y los buscara en el del directorio especificado.
Ejemplo: find . -name core
Aquí buscamos aquellos ficheros con el nombre core dentro del directorio donde
nos encontramos "." Debido al punto.
Entrada y salida de datos
Ordenando contenido de fichero
Comando: sort [-r]
Sintaxis: sort [-fr] <file/s>
Este comando toma una serie de datos por la consola estándar de entrada (stdin)
ósea el teclado. Y la saca por la consola estándar de salida (stdout) monitor.
Sort también puede ordenar el contenido de un fichero.
Ejemplo: sort < file1 > file2
Esto ordenaría el contenido de file1 y lo direcciona al fichero file2.
Peculiaridad: sort > file
Esto redireccionaría lo que se introduce por stdin (teclado) hacia un fichero
llamado file.
Esto mismo podria ser hecho de la siguiente forma: cat file
Parámetros:
Ø -r Ordena en orden inverso.
Ø -f 3Ordena por el tercer caracter
Comando tr: Transforma.
Redirección no destructiva
Si hacemos: ls > listfiles
Crearemos un fichero llamado listfiles, este fichero contendrá el listado de
ficheros y directorios hecho por ls. Si volvemos a realizar ese comando se recreara
el mismo fichero.
Si hacemos: ls >> listfiles
De esta forma no perdemos el contenido del fichero listfiles en caso de que
ya estuviera creado, lo que se hace es añadir al final de este fichero los datos
del ls.
Uso de pipes (tuberías)
El uso del signo "|" (altgr+1) sirve para redireccionar la salida de un comando
con la entrada del comando posterior. De esta forma podemos enlazar comandos
y obtener los resultados de uno para dárselos al comando siguiente y en este
operar como se quiera con los datos.
Comando: head
Etimologia: cabecera.
Sintaxis: head [-n] [file]
Uso: head -4
Este comando sacara la 4 línea que recibe de otro comando por medio de un pipe.
Ejemplo: head -3 file
Muestra las 3 primeras líneas del fichero file.
Este comando funciona de forma análoga al comando tail.
Etimologia: cola.
Ejemplo: tail [-n]
Donde n se especifica el numero de líneas que se quieren mostrar del file determinado.
Ejemplo: tail -15 file
Esto sacara las ultimas 15 lineas del fichero file.
Ejecución de un comando dentro de otro
Si por ejemplo queremos usar un comando dentro de otro y que este se ejecute.
Se usaran los signos " ` ` " .
Ejemplo: echo Hoy es: `date`
Esto hara que se ejecute dentro del comando echo el comando date y este devolverá
un valor. Así pues al final se mostrara en pantalla: Hoy es: (la fecha que sea)
Permisos
En Linux cada fichero o directorio tienen unos permisos asignados por el usuario
que los ha creado y dependiendo de esos permisos el resto de usuarios podrán
o no realizar operaciones con estos ficheros o directorios (leer, ejecutar,
eliminar, etc).
Para visualizar los permisos asignados a los distintos ficheros y directorios,
basta con ejecutar un ls en formato largo, ósea: ls -l
Veamos unos ejemplos prácticos.
-rwxrwxrwx prueba1
drwxrwxrwx prueba2
El fichero llamado prueba1 se sabe que es un fichero porque el primer carácter
es "-". En el segundo caso se trata de un directorio puesto que el primer carácter
es "d".
El resto de caracteres son los referidos propiamente dichos con los permisos.
Haber, existen permisos para 3 clases de usuarios.
Los permisos para el propietario.
Los permisos para el grupo
Los permisos para todos los usuarios (el resto de usuarios que no son ni el
propietario ni los del grupo).
Haber los permisos se dividen pues en 4 campos
-,---,---,---
El primer campo es el que indica si es fichero o se trata de un directorio como
ya antes explique.
El segundo campo indica los permisos para propietario
El tercer campo indica los permisos para los usuarios del grupo
El cuarto campo indicara los permisos para el resto de usuarios.
Hay 3 tipos de permisos
De lectura (read): r
De escritura (write): w
De ejecución (execute): x
Supongamos que tenemos un fichero con los siguientes permisos:
-rwxrw-r-- prueba
Haber, en ese fichero llamado prueba el propietario tiene asignados todos los
permisos (lectura, escritura y ejecución), el grupo tiene permisos para leer
y escribir el fichero, y por ultimo el resto de usuarios pueden solo leer el
fichero.
Cambiando los permisos
Comando: chmod
Etimología: change mode (cambio de modos).
Sintaxis: chmod {a,u,g,o} {+,-} {r,w,x}
Parámetros para referirnos a quien va dirigido el permiso:
a Referimos a todos los usuarios.
u Referimos al propietario.)
g Referimos al grupo.
o Referimos a otros.
Parámetros para decidir si el permiso se añade o se quita:
+ Añade permiso
- Quita permiso
Parámetros que decide que permiso se añade o quita:
Ø r De lectura
Ø w De escritura
Ø x De ejecución
Ejemplos:
chmod a+r stuff
Da a todos los usuarios acceso al fichero.
chmod +r stuff
Como arriba_ si no se indica a, u, g o o por defecto se toma a.
chmod og-x stuff
Quita permisos de ejecución a todos los usuarios excepto al
propietario.
chmod u+rwx stuff
Permite al propietario leer, escribir y ejecutar el fichero.
chmod o-rwx stuff
Quita permisos de lectura, escritura y ejecución a todos los
usuarios menos al propietario y a los usuarios del grupo del fichero.
Cambiando el grupo
Comando: chgrp
Etimología: change group (cambio de grupo).
Ejemplo: chgrp alumnos /home/joaquin/datos
Esto cambia el grupo de los tres ficheros a alumnos.
Mascara de creación de ficheros
Comando: umask
Etimología: User mask (mascara de usuario).
Sintaxis: umask [nnn]
Con este comando podemos ver la mascara actual, usada al crear los ficheros
por defecto.
Manejo de enlaces.
Creando enlaces duros (hard links) y simbolicos
Comando: ln
Etimología: ln es la abreviatura de link (enlace).
Sintaxis: ln [-s]
Donde file1 sera el fichero real, el fichero físico. Y file2 siempre será el
fichero link, el fichero enlace a file1. Con lo que file2 pasara a ser enlace
duro del file1. Por tanto file2 pasa a tener el mismo numero de inodo que file1.
Parámetros
-s Este argumento servirá para crear enlaces simbólicos.
Que es un numero de inodo?: En Linux cada entra en el sistema de ficheros, ya
sea directorio o fichero es identificada por un numero llamado inodo. Linux
internamente direcciona siempre y maneja ese inodo. El nombre del fichero es
una utilidad que nos brindan los sistemas operativos para poder recordar fácilmente
el nombre de estos. Tarea tediosa seria trabajar con ficheros que fueran secuencias
de números L.
Con la opción ls -l (formato largo) podemos listar los ficheros y directorios
y ver que numero de enlaces hay a una entrada (fichero o directorio).
Ejemplo:
ls -l file1 file2
-rw-r--r-- 2 root root 12 Aug 5 16:51 file1
-rw-r--r-- 2 root root 12 Aug 5 16:50 file2
En este caso file1 y file2 tienen 2 enlaces.
Creando ahora enlaces simbólicos
En los enlaces simbólicos el numero de inodo no será el mismo, simplemente se
crea un enlace imagen o simbólico.
Ejemplo:
ln -s file1 file2
Creamos un enlace simbólico llamado file2 que funciona de imagen y apunta directamente
a file1. Si usamos ls -i, veremos que los dos ficheros tienen inodos diferentes.
Usando ls -l, veremos que file2 apunta con el signo "->" a file2.
Buscando patrones en ficheros
Comando: grep
Sintaxis: grep [-cinvw] ...
Donde patron es una expresión regular, lo que se va a buscar y file1/2/3 son
los ficheros donde se procesara esa búsqueda
Parámetros:
Ø -i Con este argumento el comando grep no distinguirá entre nomenclaturas (mayúsculas
y minúsculas).
Ø -v
Ø -c Cuenta los ficheros donde se da el patrón.
Ø -n Nos muestra el numero de línea donde se ha localizado el patrón
Ø -w Muestra las líneas que contienen el patrón como palabra completa, no como
cadena de una palabra mayor.
Cambiando la presentación en pantalla
Comando: pr
Sintaxis: pr -dl[n] file
Donde fichero es el nombre que queremos para cambiar su presentación en pantalla.
Comandos para operaciones con procesos
Cada vez que usted ejecuta un programa, lo que esta haciendo para el ordenador
internamente es lanzando lo que se conoce como un "proceso" que no es mas que
el nombre que recive un programa en tiempo de ejecución (cuando se esta ejecutando).
Listando procesos
Comando: ps
Etimologia: proceso (process)
Sintaxis: ps [-feautd]
Este comando visualiza la lista de procesos que se estan ejecutando actualmente.
Parametros:
Ø -f Información completa. UID (identificador de user), nos dice quien inicio
el proceso y stime hora del lazamiento del proceso.
Ø -e Muestra todos los procesos que se están ejecutando, no solo los que lanzamos
nosotros. Por tanto también se muestran los llamados demonios (procesos que
se ejecutan en segundo plano). También se muestran los procesos llamados "lideres
de grupo de proceso" estos son procesos que solo sirven para que se ejecuten
otros procesos.
Ø -d igual que el anterior pero no muestra los lideres de grupo.
Ø -a Solo lista procesos relacionados con el terminal
Ø -u Visualiza que es lo que hace un usuario
Ø -t visualiza que es lo que hace un terminal
Ejemplo:
ps
PID TT STAT TIME COMMAND
24 3 S 0:03 (bash)
161 3 R 0:00 ps
Haber, la información que nos muestra es esta. Donde PID (identificador de proceso)
Cada proceso es identificado con un numero y el sistema lo reconoce como tal.
En la columna command se encuentra el nombre del proceso que se esta ejecutando.
Bash, es el shell o interprete de comandos usado por linux.
Lógicamente el bash se ejecutara siempre concurrentemente con el comando que
lancemos.
Chequeando
el estado de un proceso
Comando: jobs
Sintaxis: jobs [-lrs]
Parámetros
-l Visualiza el PID (identificador de proceso) de cada proceso.
-r Visualiza los procesos que se encuentran en estado de ejecución (running)
-s Visualiza los procesos que están en estado suspendido (stopped).
Eliminando procesos
Comando: kill
Etimología: kill (matar, eliminar, asesinar)
Sintaxis: kill [señal] [n]
Este comando toma como argumento un numero de tarea o un PID (process identifier).
En el caso de que recurramos a no pasarle el PID y si la tarea debemos anteponer
al numero de la tarea el signo del tanto-porciento "%".
Ejemplo: kill %1
Eliminamos la tarea numero 1
Ejemplo: kill 156
Eliminaremos el proceso con el PID numero 156.
Parada y relanzamiento de tareas
Hay otra manera de poner una tarea en segundo plano. Usted puede lanzarlo como
un proceso normal (en primer plano), pararlo, y después relanzarlo en segundo
plano.
Primero, lance el proceso yes en primer plano como lo haría normalmente:
/home/larry# yes > /dev/null
De nuevo, dado que yes corre en primer plano, no debe retornar el prompt de
la shell. Ahora, en vez de interrumpir la tarea con |_ctrl-C_|, suspenderemos
la tarea. El suspender una tarea no la mata: solamente la detiene temporalmente
hasta_que_Ud. la retoma. Para hacer esto usted debe pulsar la tecla de suspender,
que suele ser |_ctrl-Z_|.
/home/larry#_yes > /dev/null
|_ctrl-Z_|
[1]+ Stopped yes >/dev/null
/home/larry#
Mientras el proceso está suspendido, simplemente no se esta ejecutando. No gasta
tiempo de CPU en la tarea. Sin embargo, usted puede retomar el proceso de nuevo
como si nada hubiera pasado. Continuará ejecutandose donde se dejó. Para relanzar
la tarea en primer plano, use el comando fg (del inglés "foreground").
/home/larry# fg
yes >/dev/null
La shell muestra el nombre del comando de nuevo, de forma que_tenga_conocimiento_de
que tarea es la que ha puesto en primer plano. Pare la tarea de nuevo, con |_ctrl-Z_|.
Esta vez utilice el comando bg para poner la
tarea en segundo plano. Esto hará que el comando siga ejecutandose igual que
si lo hubiese hecho desde el principio con "&" como en la sección anterior.
/home/larry# bg
[1]+ yes >/dev/null &
/home/larry#
Y tenemos de nuevo el prompt. El comando jobs debería decirnos que yes se está
ejecutando, y podemos matar la tarea con kill tal y como lo hicimos antes. >Cómo
podemos parar la tarea de nuevo? Si pulsa |_ctrl-Z_|no funcionará, ya que el
proceso está en segundo plano. La respuesta es poner el proceso en primer plano
de nuevo, con el comando fg, y entonces pararlo. Como puede observar podrá usar
fg tanto con tareas detenidas, como con las que estén segundo plano. Hay una
gran diferencia entre una tarea que se encuentra en segundo plano, y una que
se encuentra detenida. Una tarea detenida es una tarea que no se está ejecutando,
es decir, que no usa tiempo de CPU, y que no está haciendo ningún trabajo (la
tarea aun ocupa un lugar en memoria, aunque puede ser volcada a disco). Una
tarea en segundo plano, se está ejecutando, y usando memoria, a la vez que completando
alguna acción mientras usted hace otro trabajo. Sin embargo, una terea en segundo
plano puede intentar mostrar texto en su terminal, lo quepuede resultar molesto
si está intentando hacer otra cosa. Por ejemplo, si usted usó el comando
/home/larry# yes &
sin redirigir stdout a /dev/null, una cadena_de_y-es_se mostrarán en su monitor,
sin modo alguno de interrumpirlo (no puede hacer uso de |_ctrl-C_|para interrumpir
tareas en segundo plano). Para poder parar esas interminables_y-es,_ tendría
que usar el comando fg para pasar la tarea a primer plano, y
entonces usar |_ctrl-C_|para matarla. Otra observación. Normalmente, los comandos
"fg" y "bg" actuan sobre el último proceso parado (indicado por un "+" junto
al número de tarea cuando usa el comando jobs). Si usted tiene varios procesos
corriendo a la vez, podrá mandar a primer o segundo plano una tarea especifica
indicando el ID de tarea como argumento de fg o bg, como en
/home/larry# fg %2
(para la tarea de primer plano número 2), o
/home/larry# bg %3
(para la tarea de segundo plano número 3). No se pueden usar los ID de proceso
con fg o bg.
Además de esto,si usa el número de tarea por si solo, como
/home/larry# %2
es equivalente a
/home/larry# fg %2
Solo recordarle que el uso de control de tareas es una utilidad de la shell.
Los comandos fg, bg y jobs son internos de la shell. Si por algún motivo usted
utiliza una shell que no soporta control de tareas, no espere disponer de estos
comandos. Y además, hay algunos aspectos del control de tareas que difieren
entre Bash y Tcsh. De hecho, algunas shells no proporcionan ningún control de
tareas_sin embargo, la mayoría de las shells disponibles para Linux soportan
control de tareas.
Usando el editor vi
Un editor de texto es simplemente un programa usado para la edición de ficherosque
contienen texto, como una carta, un programa en C, o un fichero de configuración
del sistema. Mientras que hay muchos editores de texto disponibles en Linux,
el único editor que está garantizado encontrar en cualquier sistema UNIX es
vi_el "visual editor". vi no es el editor más fácil de usar, ni es muy autoexplicativo.
De cualquier forma, como es tan común en el mundo UNIX y es posible que alguna
vez necesite usarlo, aquí encontrará algo de documentación.
La elección de un editor es principalmente una cuestión de gusto personal y
estilo. Muchos usuarios prefieren el barroco, autoexplicativo y potente Emacs_un
editor con más características que cualquier otro programa único en el mundo
UNIX. Por ejemplo, Emacs tiene integrado su propio dialecto del lenguaje de
programación LISP y tiene muchas extensiones (una de ellas es el programa "Eliza"-
como programa de IA). Pero como Emacs y todos sus ficheros de soporte es relativamente
grande, puede que no tenga acceso a él en muchos sistemas. vi, por otra parte,
es pequeño y potente, pero más difícil de usar. De cualquier modo, una vez conozca
la forma de funcionamiento de vi, es muy fácil usarlo. Simplemente la curva
de aprendizaje es bastante pronunciada al comienzo. Esta sección es una introducción
coherente a vi_no discutiremos todas sus características, solo aquellas necesarias
para que sepa como comenzar.
Conceptos
Mientras se usa vi, en cualquier momento estará en uno de tres posibles modos
de operación. Estos modos son conocidos como modo órdenes, modo inserción y
modo última línea. Cuando inicia vi, está en el modo órdenes. Este modo le permite
usar ciertas órdenes para editar ficheros o cambiar a otros modos. Por ejemplo,
tecleando
"x" mientras está en el modo órdenes, borra el carácter que hay debajo del cursor.
Las teclas del cursor mueven este por el fichero que estamos editando. Generalmente,
las órdenes usadas en este modo son solo de uno o dos caracteres de longitud.
Habitualmente insertará o editará texto desde el modo inserción. Usando vi,
probablemente dedicará la mayor parte del tiempo en este modo. Inicia el modo
de inserción al usar una orden como "i" (para "insertar") desde el modo de órdenes.
Una vez en el modo de inserción, irá insertando texto en el documento
desde_la posición actual del cursor. Para salir del modo de inserción y volver
al de órdenes, pulse |_esc_|. Modo última línea es un modo especial usado para
proporcionar ciertas órdenes extendidas a vi. Al usar esos comandos, aparecen
en la última línea de la pantalla (de ahí el nombre). Por ejemplo, cuando teclea
":" desde el modo de ódenes, entrará en el modo última línea, y podrá usar órdenes
como "wq" (para escribir el fichero a disco y salir de vi), o "q!" (para salir
de vi sin guardar los cambios). El modo de última línea es habitualmente usado
por órdenes vi mayores_de_un carácter. En el modo de última línea, introduce
una orden de una sola línea y pulsa |_enter_|para ejecutarla.
La sintaxis de vi
vi namefile
donde namefile es el nombre del fichero que desea editar.
Ordenes en el vi
Hay muchas formas de insertar texto aparte de la orden "i".
a >> Inserta texto comenzando detras de la posición actual.
i >> Añade texto delante del cursor
A >> Añade texto al final de la línea actual
I >> Añade texto al principio de la línea actual
o >> Inserta una línea delante de la actual y pasa a modo entrada
O >> Inserta una línea detrás de la línea actual y pasa a modo entrada.
En modo ultima línea se usan las ordenes que empiezan por ":"
:q! >> Salir sin grabar
:wq >> Salir grabando
:w >> Grabar sin salir del vi
:/lamer >> Busca la palabra lamer.
:g /casa /s/hogar/g Sustetuye la palabra casa por hogar en todo el fichero.
:el >> Si cometes muchos errores y quieres el fichero según se edito al inicio.
:. Repite la ultima orden
:u Deshace el ultimo cambio
:U Deshace todos los cambios de la línea actual
:n va a la línea n
:r! Este parámetro lee la salida del comando o fichero (patrón) que
le damos. Si patrón es un fichero, se incluye el contenido de ese otro fichero
en el que estamos editando. Si patrón es un comando, inserta en el fichero que
estamos editando el resultado del proceso de ese comando.
El signo "!" le dice a vi que realmente usted quiere editar ese fichero sin
salvar los cambios del primero.
Comandos para operaciones con temporizadores
Ejecutando temporizadores
Comando: at
Sintaxis: at hora [fecha] comandos
Ejemplo:
at 16:45
at > ls -l > directorio
at > control +d
Eliminando temporizadores
Comando: atrm
Sintaxis: atrm
Borra el trabajo con ese identificador asignado al lanzar el at
Visualizando temporizadores
Comando: atq
Muestra los trabajos en la cola para ser ejecutados