Objetivo: Entregar herramientas básicas para trabajar
a nivel de usuario en máquinas Unix (Solaris, Linux)
Shell es un interpretador de comandos en línea o desde un
archivo. Luego puede ser usado para programar tareas repetitivas y
complejas que también pueden ser hechas vía comandos de
consola.
Cambio de Password: passwd (var página man en joshua.elo.utfsm.cl) (por alguna razón, que Gabriel me explicó, este comando no tiene efecto en nuestro sistema)
Sistema de archivos en Unix
Los archivos en Unix están
organizados en directorios. Éstos son también archivos.
En la raiz se encuentra el directorio /.
Bajo la raiz se encuentran varios directorios
como bin, home, usr. Bin contiene muchos programas correspondientes a
comandos comunes en Unix. Usr contiene datos requeridos por esos y
otros comandos. Home contiene los archivos asociados con los usuarios
del sistema. Éstos están organizados en directorios bajo
home con el nombre del login.
Abreviaciones:
Algunos Comando Básicos en Unix
pwd: Print de Working Directory
mkdir: Crear un nuevo directorio (make a
directory)
ls: listar el contenido del directorio de trabajo.
cd: cambio de directorio
cp: copia uno o más archivos.
cat file1..filen : lista el contenido de archivos
exit: termina el shell actual.
mv file1 file2 Renombra file1 como file2.
file2 puede estar en un directorio diferente.
ls -a : por defecto los nombre que comienzan con "."
son considerados ocultos. -a (por all) los muestra dotos.
ls -l : es la forma larga o completa del comando ls.
ls -F:
more file1 .. filen : lista los archivos con pausa
entre pantallas completas.
less file : Similar a more, pero permite avanzar y retroceder en el
archivo que se está leyendo.
rm file1.. filen: Remueve los archivos.
rm -i file1..filen : pregunta por confirmación
antes de remover los archivos.
rm -r file1..filen : remueve los archivos en forma
recursiva, incluye los directorios !!.
rmdir diretorio : Remueve un
directorio.
who: lista a todos los usuarios "logeados" en la máquina que
estás usando.
man comando: entrega información
de uso del comando indicado.
Vea una lista más extensa de
comandos internos del Bourne Shell .
Permisos
Unix permite tres categorias de permisos a archivos: read,
write, y execute.
Las categorias de usuarios son: dueño del archivo, grupo al que
pertenece el archivo, y todos los otros usuarios que tienen cuenta en el
sistema. Las abreviaciones para éstos son: u (de user), g
( de group), y o ( de others).
Ejemplo: en respuesta al comando ls -l en uno de mis directorios podemos ver:
-rwx------ 1 agustin
users 4723 Mar 6
09:56 UnixIntro.html
-rwx------ 1 agustin
users 6903 Mar 6
09:57 index1s01.html
drwx------ 1 agustin
users 512 Mar 2
11:25 tareas
drwx------ 1 agustin
users 512 Mar 6
08:29 trabajos
La primera posición: - o d representan archivos
o directorios. En general indica el tipo de archivo, hay otros como l
(link), b y c.
Luego vienen los permisos para cada uno de las categorias de usuarios.
Los permisos aparecen en orden rwx. Primero se
indican los correspondientes al usuario, luego grupo y finalmente
otros.
La presencia de - indica denegación de ese permiso para esa
categoria de usuarios.
Interpretación de r,w, y x
Para archivos: r
otorga permiso de lectura. w de
escritura, y x de
ejecución.
Para directorios: los directrorios en Unix son
también archivos.
Permiso de lectura r significa que es posible listar el
contenido del directorio.
Permiso de escritura: w significa que es posible crear archivos en
el directorio.
Permiso de ejecución: x significa que es posible acceder al
directorio, por ejemplo a través del comando cd.
Comando chmod: permite cambiar los
permisos de archivos.
patrón: chmod
[opciones] categoria_de_usuarios (+|-) permisos archivos
+ agrega permiso y - lo
remueve.
La categoria de usuarios
puede ser una o más de las letras ugoa
y los permisos pueden ser uno o más de las letras rwx. Por ejemplo para dejar permisos de
sólo lectura al archivo test.txt podemos hacer: chmod a+r-wx
test.txt
Atención con umask: permite
definir los permisos por defecto al crear archivos.
Formato: umask
[cuantro_digitos_ en octal ]
Los últimos tres
representan las negaciones correspondientes a cada categoria de
usuarios.
Estrategia 1:
restricción severa (umask 077 o simplemente umask 77) y
debemos relajar lo que deseamos compartir. 077=> rwx---------
Estrategia 2:
restricción relajada (umask 022 o umask 22) y debemos
restringir lo privado. 22 => rwxr-xr-x
Obtención de ayuda: ayuda en línea: man y otros utilitarios que ofrezca la versión del sistema operativo con que trabajes.
Editor de archivos de texto: opciones vi, emacs,
otros (mc). Yo uso primcipalmente emacs porque:
1.- emacs tiene elementos que lo integran a UNIX.
Por ejemplo es posible compilar programas desde emacs y saltar
directamente a los errores de compilación.
2.- emacs está disponible gratis para en
todas las plataformas UNIX y para WinXX.
3.- emacs se puede personalizar para trabajar con
archivos tipo como *.c, *.cc, *.java, *.txt, etc.
Personalizando el ambiente UNIX
Archivo .bashrc Éste es un archivo de
comandos ejecutado al momento de ejecutar un nuevo shell (bash).
Permite personalizar el ambiente de cada shell. Aquí se definen
cosas como alias, se define el prompt y cualquier otra
definición.
Ustede puede ver el archivo .bashrc de mi
computador.
Shell primero ejecuta los comandos desde /etc/profile
Luego busca y ejecuta uno de los siguientes, y en este orden,
~/.bash_profile, ~/.bash_login, and ~/.profile
Al salir del shell se ejecuta ~/.bash_logout
Un shell interactivo que no es uno de login (o no es ssh para
nuestros efectos) lee comandos desde ~/.bashrc
Considere el siguiente segmento tomado de man bash. Ejecute en
comando man para ver más sobre el comando.
......
When bash is invoked as an interactive login shell,
or as a
non-interactive shell
with the --login option, it first
reads and executes commands from the
file /etc/profile, if
that file
exists. After reading that file, it looks for
~/.bash_profile,
~/.bash_login, and ~/.profile, in that
order, and reads and
executes commands from the first one
that exists and is readable. The
--noprofile option may be
used when the shell is started to
inhibit this behavior.
When a login shell exits, bash reads
and executes commands
from the file ~/.bash_logout, if it
exists.
When an interactive shell that
is not a login shell is
started, bash reads and executes
commands from ~/.bashrc, if
that file exists. This may be
inhibited by using the --norc
option. The
--rcfile file option will force bash to read
and execute commands from file instead
of ~/.bashrc.
......