Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lineas de comando
Lineas de comando
Antes de empezar a cargar comandos en Linux, debemos entender como se utiliza
la Shell.
Multiples consolas estan disponibles, y proveen funciones similares. Entender
algunos conceptos basicos,como las variables del entorno, son imprescindibles para
dominar Linux.
Otra de las cosas que es imprescindible conocer, es como obtener ayuda por parte
de los comandos que intentamos utilizar.
Explorando las distintas consolas
Linux nos ofrece una gran variedad de opciones de Shell. Las mas utilizadas son las
siguientes:
Bash (GNU Bourne Again Shell) est basada en la Shell Bourne para Unix, pero
agrega funcionalidades a la misma. En Linux, Bash es la shell mas utilizada por
defecto para cuentas de usuario. Tambien puede ser nombrada como bsh.
Tcsh (C Shell) es una shell muy popular, pero sin embargo no es la shell por defecto
en distribuciones Linux, salvo excepciones. Es similar a Bash en muchos aspectos,
aunque existen diferencias.
Ksh (Korn shell) fue diseada para tomar las mejores funciones de las shells
anteriores, y extender las mismas.
zsh (The Z Shell) es otra opcion que toma lo mejor de Bash y Tcsh, aadiendo
funcionalidades.
Normalmente, la shell utilizada por defecto es Bash. Mas adelante veremos como
podemos cambiar la shell por defecto.
Utilizando la Shell
El modo de utilizar una shell es sencillo: Simplemente se tipean comandos,
posiblemente incluyendo opciones para los mismos, y el sistema los ejecuta.
Aquellas personas que hayan trabajado con sistemas operativos sin interfaz grfica,
o la linea de comandos de Windows, no tendrn mayor problema en comprender su
utilizacion.
E-Learning
1 / 27
walter, duran
La mayor parte de las ocasiones, los comandos utilizados en Linux son externos, es
decir, son programas separados de la Shell. Algunos comandos, sin embargo, son
propios de la shell, por lo que conocerlos y diferenciarlos es importante. Ademas,
existen "trucos" que podemos realizar en la shell para trabajar de forma mas
amigable.
Inicializando la consola
Normalmente, al loguearnos en Linux a traves de la interfaz de solo texto,
automaticamente somos dirigidos hacia nuestra shell por defecto.
E-Learning
2 / 27
walter, duran
Comandos Bsicos
pwd: Este comando imprimir en pantalla la ubicacion del directorio en el que nos
encontremos en ese momento. Asi, siguiendo el ejempo anterior, el comando:
pwd
Nos dar como resultado:
/home/cristian
echo: Este comando mostrar por pantalla el texto que nosotros le indiquemos. Por
ejemplo:
echo Hola
Mostrar por pantalla "Hola".
Este comando es muy util en scripting para revisar variables, informar errores, etc.
E-Learning
3 / 27
walter, duran
time: Este comando nos puede indicar cuanto tiempo demoran ciertos procesos en
ejecutarse. Por ejemplo, el comando:
time pwd
Nos indicar el tiempo que tarda el sistema en ejecutar el comando pwd.
Normalmente, tres tiempos son mostroados:
- Tiempo total de ejecucion
- Tiempo en CPU del usuario
- Tiempo en CPU del sistema
set: Este comando provee una variedad de opciones relacionadas con la linea de
comandos, a la hora de asignar valores a operaciones o variables, segun sea el caso.
ls: Este comando nos permite listar el contenido de la carpeta en la que nos
encontramos. Por ejemplo:
ls /home/cristian
nos listar los archivos en nuestro home directory.
mkdir: Este comando nos permite crear un directorio con el nombre que le
indiquemos. Por ejemplo:
mkdir /home/cristian/musica
Crear un directorio llamado musica en /home/cristian. Si ya estamos en
/home/cristian, solo es necesario tipear:
E-Learning
4 / 27
walter, duran
mkdir musica
y la carpeta se crear
rm: Este comando nos permitir borrar el archivo o carpeta que le indiquemos. Por
ejemplo:
rm /home/cristian/musica
borrar la carpeta musica. En caso de que existan archivos dentro de la carpeta, se
debe agregar el parametro -r.
cp: Este comando nos permite copiar archivos. por ejemplo, si quiero copiar el
archivo CV desde /home/ a /home/cristian, el comando es:
cp /home/CV /home/cristian
Para copiar directorios enteros, se agrega el parametro -r
5 / 27
walter, duran
/home/cristian/otroprograma
correr el programa "otroprograma", ubicado en /home/cristian
ps (process status): estado de los procesos. Nos muestra lo que queramos saber de
los procesos que estn corriendo en nuestro sistema. Cada proceso est
identificado con un nmero llamado PID. Si hacemos
$ ps -A
nos mostrar un listado de todos los procesos, su PID a la izquierda y su nombre a
la derecha. Si queremos ms informacin:
$ ps aux
6 / 27
walter, duran
$ kill <PID>
En ocasiones el proceso no muere del todo, pero se le puede forzar al sistema
para que lo mate con seguridad del siguiente modo:
$ kill -9 <PID>
sudo
super-user do: hacer como superusuario. La cuenta de usuario en Ubuntu es
relativamente normal, y cada vez que se haga algo importante y de riesgo para el
sistema, hay que hacerlo mediante el prefijo sudo y escribiendo despus la
contrasea.
Por ejemplo, para hacer una copia de seguridad del fichero xorg.conf que est
localizado en la carpeta /etc/X11; ah ningn usuario puede hacer modificaciones o
borrar nada si no es el administrador o tiene derechos como tal. Esto se consigue
gracias a sudo.
$ sudo cp /etc/X11/xorg.conf /home/xorg.conf.backup
Aqu copiamos el archivo en la carpeta /home cambiandole en nombre.
passwd
password: contrasea. Con este comando podremos cambiar la contrasea de
nuestra cuenta. Primero nos pedir la contrasea actual como medida de seguridad.
Despus nos pedir que introduzcamos dos veces seguidas la nueva contrasea.
$ passwd
su
super-user: superusuario. Mediante su podremos loguearnos como superusuario.
Tras escribirlo nos pedir la contrasea de root y estaremos como administrador.
Podremos hacer todo lo que queramos.
$ su
Este comando tambin nos permite hacer login con otra cuenta distinta. Por
E-Learning
7 / 27
walter, duran
chown
El comando chown te permite modificar a los usuarios o grupos dueos de un
archivo o carpeta en el sistema de archivos.
$chown (usuario) (archivo o carpeta)
ej: $chown sa_pirata /home/Document/carpeta
E-Learning
8 / 27
walter, duran
chmod
Es un comando parecido al chown pero este sirve para cambiar los permisos de
lectura modificacion y ejecucion de un archivo o carpeta (read, write, execute) al
usuario (user), grupo (group) u otros usuarios (other)
sintaxis:
$chmod (usuario grupo u otro) - + (permiso) (archivo o directorio) //es dificil de
entender asi por eso miren mas abajo...
hay dos maneras de cambiar los permisos
1. la manera escrita:
tengamos por ejemplo un archivo llamado "archivo1"
-rw-rw-r-- 1 usuario usuario 0 set 21 07:09 archivo1
primero el"-rw-rw-r--" vamos a desglozar... el primer guion de izq a derecha nos
dice que es, si hay un guion es un archivo y si en cambio aparece una "d" es porque
es un directorio... luego las letras se dividen en tres grupos de a tres letras, el
primero "rw-" que identifica los permisos del usuario, el segundo "rw-" nos indica
los permisos de grupo y el ultimo "r--" nos indica los permisos de otros... para los
menos perspicaces la "r" de read(leer en ingles), la segunda "w" write (escribir en
ingles) y la ultima "x" execute (ejecutar en ingles)
Ahora si queremos modificar los permisos de manera escrita se hace de la siguiente
manera:
$chmod u-r archivo1
esto har que el usuario ("u" de usuario) no pueda leer el archivo... los permisos
quedarian asi
--w-rw-r-- 1 usuario usuario 0 set 21 07:09 archivo1
O si queremos agregar un permiso, por ejemplo agregaremos el permiso de
E-Learning
9 / 27
walter, duran
ejecucion a todos
$chmod ugo+x archivo1
ahora todos tendran permiso de ejecucion y los permisos quedarian asi
-rwxrwxr-x 1 usuario usuario 0 set 21 07:09 archivo1
esa es la manera de sacar o agregar privilegios
2. la otra manera es la numerica (a mi parecer tambien mas sencilla)
0 (cero)= desactiva todos los permisos de quien corresponda
r=1
w=2
x=4
y para establecer el permiso hay que hacer la sumatoria de cada grupo de permisos
por ejemplo:
si a un archivo llamado "archivo" unicamente le queremos dar permisos de lectura
escritura y ejecucion al usuario y no al grupo o a otro entonces tendriamos que
sumar 1+2+4(permisos de usuario) 0+0+0 (permisos de grupo) 0+0+0 (permisos
de otro) = 7 0 0
$chmod 700 archivo
los permisos quedaran en "-rwx------"
o si le quisiseramos dar todos los permisos al usuario, y luego al grupo le damos el
de lectura y ejecucion y a otro le damos unicamente el de ejecucion entonces
tendriamos que sumar 1+2+4(permisos de usuario) 1+0+4 (permisos de grupo)
0+0+4 (permisos de otro) = 7 5 4
$chmod 754 archivo
y los permisos quedan "-rwxr-x--x"
es recomendable usar sudo para cambiar los permisos en ubuntu
El comando grep
El comando grep es uno de los ms tiles en Linux. Bien utilizado nos ahorra mucho
tiempo a la hora de buscar en archivos y documentos. Puede que al principio no le
des mucha importancia, pero cuando lo usas con soltura se vuelve imprescindible.
E-Learning
10 / 27
walter, duran
Qu hace el comando grep? Algo muy simple, busca determinada palabra o frase
entre los archivos de texto. Si el termino buscado aparece varias veces en un mismo
archivo, nos muestra varias lineas de resultado, una por cada coincidencia.
Para entender su funcionamiento, nada mejor que un ejemplo:
grep -r curso /home/steven/Documentos/*
Con ese comando, buscamos la palabra curso en cualquier fichero del directorio
Documentos. Esto incluye las carpetas que existan dentro de Documentos (hemos
indicado esto al escribir -r). Si deseamos buscar en un fichero concreto, sustituimos
* por el nombre del fichero.
Hay un detalle importante, el comando anterior diferencia entre maysculas y
minsculas. Est buscando la palabra curso, que no es igual que Curso. Por norma
general, nos resulta ms interesante que no haga esta distincin. Para que busque
el trmino, independientemente de maysculas/minsculas:
grep -ir curso /home/steven/Documentos/*
Si el termino a buscar contiene ms de una palabra, se debe indicar entre comillas.
En el siguiente ejemplo buscamos Curso Linux dentro del fichero notas.txt:
grep -i "curso linux" /home/steven/Documentos/notas.txt
Al incluir -i no hace distincin entre maysculas o minsculas. Para ms
informacin sobre el comando grep, teclea man grep en tu terminal
E-Learning
11 / 27
walter, duran
12 / 27
walter, duran
E-Learning
13 / 27
walter, duran
E-Learning
14 / 27
walter, duran
E-Learning
15 / 27
walter, duran
E-Learning
16 / 27
walter, duran
Generando comandos
E-Learning
17 / 27
walter, duran
Existen multiples comandos para manipular texto, que cumplen tareas de diversos
tipos, como combinar archivos, transformar los datos en archivos, formatear texto,
mostrar textos, resumir informacion, etc.
18 / 27
walter, duran
Lista1.txt
555-2397 Beckett, Barry
555-5116 Carter, Gertrude
555-7929 Jones, Theresa
555-9871 Orwell, Samuel
Lista2.txt
555-2397 unlisted
555-5116 listed
555-7929 listed
555-9871 unlisted
Podriamos mostrar el contenido de ambos archivos usando join:
join lista1.txt lista2.txt
555-2397 Beckett, Barry unlisted
E-Learning
19 / 27
walter, duran
unlisted
listed
listed
unlisted
Para que funcione, la cantidad de lineas debe ser igual en ambos archivos.
20 / 27
walter, duran
E-Learning
21 / 27
walter, duran
Editores de texto: Vi
vi nuevo_fichero
Este comando inicia el editor y, como el fichero no existe todava, lo crea para ser
editado. El editor est ahora en modo de comandos esperando por un comando.
vi +5 nombre_fichero
vi + nombre_fichero
Moviendo el cursor
Las siguientes teclas controlar el movimiento del cursor.
k
j
h
l
arriba
abajo
izquierda
derecha
22 / 27
walter, duran
:w
Si decides que no quieres sobreescribir el fichero que ests editando, sino que
quieres guardar los cambios como un fichero nuevo, aade al comando :w el
nombre del nuevo fichero,
:w nuevo_fichero2
Abandonando vi
Para dejar vi se utiliza,
E-Learning
23 / 27
walter, duran
b
e
0
$
mueve
mueve
mueve
mueve
el
el
el
el
cursor
cursor
cursor
cursor
al
al
al
al
comienzo
final de
comienzo
final de
de
la
de
la
la palabra anterior
palabra siguiente
la lnea (cero)
lnea
Scroll de pantalla
Los comandos para avanzar una pantalla arriba y abajo (12 lneas) son
1G
ctrl-g
Bsqueda
Otro mtodo de posicionarse dentro de un fichero es buscando una cadena de
caracteres. En el modo de comandos, cualquier cadena de caracteres precedida por
/ significa el comando de bsqueda hacia adelante. El cursor se posiciona en la
primera ocurrencia de dicha cadena.
El comando n busca hacia adelante la siguiente ocurrencia.
Para buscar hacia atrs, se utiliza el comando ?
Borrar texto
Ya se vio anteriormente el comando dd para borrar la lnea actual.
El comando dw borra la palabra actual. Ntese que el comando de borrado
comienza por d, seguido por el mbito de aplicacin (d para una lnea, w para una
palabra (word en ingls)).
E-Learning
24 / 27
walter, duran
Quitar y poner
Cuando se borra algo, es almacenado en un buffer temporal. El contenido de este
buffer puede ser accedido y 'puesto' o pegado en cualquier sitio del texto.
Para recuperar el ltimo texto borrado, se usa el comando p
nyw guarda en la memoria intermedia n palabras contadas desde la posicin del
cursor.
y$ guanda en la memoria intermedia desde la posicin del cursor hasta el final de la
lnea.
yy guarda en la memoria intermedia la lnea entera en la que se encuentra el cursor.
yn guarda en la memoria intermedia n+1 lneas desde la lnea actual.
E-Learning
25 / 27
walter, duran
Ejercicios prcticos
Ejercicios Prcticos
Crear un documento de texto en el host (NO en la mquina virtual) para escribir los comandos y
respuestas utilizadas en el ejercicio, llamado "EjercicioTerminal-NombreApellido". En
NombreApellido, completar con el nombre y apellido del alumno.
Para TODOS los puntos del ejercicio, se deben guardar en el documento los comandos utilizados y la
respuesta recibida por parte de la terminal.
1) Una vez iniciado Debian, abrir una terminal. Averiguar en que directorio nos encontramos.
2) Cambiar de directorio hacia el /
3) Desde el /, crear una carpeta llamada "Notas" en el home directory.
4) Cambiar de directorio al home directory, utilizando el atajo de consola.
5) Listar todas las carpetas del home directory, para verificar que efectivamente "Notas" se haya
creado correctamente.
6) Crear una carpeta llamada "Instaladores" en el home directory.
7) Crear un archivo llamado "ListadoEnero.txt" dentro de la carpeta "Notas", sin ingresar a la
carpeta.
8) Listar el contenido de "Notas" para verificar que el archivo se encuentre all.
9) Ingresar a "Instaladores" y crear un archivo llamado "LinksDescarga.txt".
10) Renombrar la carpeta "Notas" a "NotasVarias".
11) Crear dentro de la carpeta "Instaladores" un archivo de texto llamado "ListadoFebrero.txt" y
luego,moverlo hacia la carpeta "NotasVarias"
12) Crear una carpeta llamada "Backup" dentro del home directory.
13) Copiar las carpetas "Instaladores" y "NotasVarias" dentro de una nueva carpeta llamada
"Enero2014", ubicada dentro de "Backup".
14) Localizar todos los archivos que dentro de su nombre contengan la palabra "Listado" dentro del
home directory.
15) Localizar todos los archivos con extensin .txt dentro del home directory.
16) Borrar el archivo "LinksDescarga.txt".
17) Borrar la carpeta "Instaladores"
18) Restaurar la carpeta "instaladores" desde la carpeta "Backup",copiandola al home directory.
E-Learning
26 / 27
walter, duran
E-Learning
27 / 27