Objetivo: Entregar herramientas básicas para trabajar
a nivel de usuario en sistema operativo Linux y aquellos derivados de
Unix.
Para instalar linux en windows, usted puede seguir los pasos recomendados
aquí.
Hay dos opciones: en forma nativa en su disco duro o en máquina virtual vnwware o virtualbox.
Shell es un interpretador de comandos en línea o desde un
archivo. Existen varios interpretadores de comandos, entre ellos csh,
bash, zsh. Este último es similar a bash y agrega algunas ayudas
adicionales. Los intérpretes de comandos disponibles en el sistema se
encuantran bajo /bin/bash. El por omisión de cada cuenta queda definido
en el archivo /etc/passwd.
A través de archivos de comandos (scripts) es posible programar tareas
repetitivas y
complejas que también pueden ser hechas vía comandos de
consola.
Cambio de Password: passwd
Este comando funciona en los sistemas derivados
de UNIX para las cuentas locales de la máquina donde se trabaja. Para
cuentas que son montadas desde otros sistemas de archivos, como es el
caso de aragorn.elo.utfsm.cl, el cambio de clave debe ser gestionado
con ayuda del administrador.
Sistema de archivos en Linux
Los archivos en Linux están
organizados en
directorios. Éstos son también archivos.
En la raíz se encuentra el directorio /.
Bajo la raíz se encuentran varios directorios
como bin, home, usr. Bin contiene muchos programas correspondientes a
comandos comunes en Linux. Usr contiene datos requeridos por esos y
otros comandos. Home contiene los archivos asociados con la cuenta del
usuarios. Éstos están organizados en directorios bajo
/home/nombre_usuario.
Abreviaciones:
Algunos Comando Básicos en Linux : Los hay externos (programas normalmente bajo /bin) e internos implementados por el shell (por internos, ver: builtin)
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).
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
También podemos usar una representación octal para señalar los permisos
que deseamos. Por ejemplo, con chmod
644 test.txt estamos otorgando permiso de lectura y escritura a
su dueño, y lectura para el grupo y otros usuarios.
Usando
este formato podemos usar cuatro bits octales. En este caso, el más
significativo puede adoptar el valor 4 ó 2 y permite fijar un bit para
fijar usuario o grupo efectivo, se conoce como bit setuid. Por ejemplo
en chmod 4555 a.out , el
ejecutable a.out al ser corrido por un usario cualquiera adoptará los
permisos de su duelo durante al ejecución del mismo. Vea el archivo
ping como otro ejemplo . Si usamos el cuarto dígito en 1 como en chmod
1555 dir
, fijamos el bit de permanencia el cual se usa en directorios y señala
que todos podrán escribir en un directorio, pero sólo el super usuario
y el propio dueño del archivo podrán borrarlo. Este es el caso del
directorio /tmp.
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 , 77=>
rwx--------- ) y
debemos relajar lo que deseamos compartir.
Estrategia 2:
restricción relajada (umask 022 o umask 22, 22 => rwxr-xr-x
) y debemos
restringir lo privado.
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, vim (vi iMproved), emacs, gedit, geany, otros (mc).
Personalizando el ambiente Linux
Archivo
.bashrc Éste es un archivo de
comandos ejecutado al momento de ejecutar un nuevo shell (bash) que no
sea un login shell. Login shell es aquel iniado luego de haber
ingresado a nuestra cuenta autenticación habitual.
.bashrc permite personalizar el ambiente de cada shell. Aquí se definen
cosas como alias, se define el prompt y cualquier otra
definición.
Cuando se bash es invocado desde un login shell , 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
Cuando se invoca bash sin venir de un login shell, se invoca
.bashrc.
Considere el siguiente segmento tomado de man
bash. Ejecute este
comando 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.
......
Para entender la diferencia entre shell interactivo en login y sin login
ver aquí.