---
authors:
  - 
    author: 'Annelise Anderson'
    email: andrsn@andrsn.stanford.edu
description: 'Introducción para gente que es nueva tanto en FreeBSD como en UNIX(R)'
tags: ["Introduction", "basics", "FreeBSD", "UNIX"]
title: 'Para Gente Nueva en FreeBSD y UNIX(R)'
trademarks: ["freebsd", "ibm", "microsoft", "opengroup", "general"]
---

= Para Gente Nueva en FreeBSD y UNIX(R)
:doctype: article
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:source-highlighter: rouge
:experimental:
:images-path: articles/new-users/

ifdef::env-beastie[]
ifdef::backend-html5[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
:imagesdir: ../../../images/{images-path}
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]

ifndef::env-beastie[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]

[.abstract-title]
Resumen

¡Enhorabuena por instalar FreeBSD! Esta introducción es para gente nueva en FreeBSD _y_ en UNIX(R) - así que se comienza con lo básico.

'''

toc::[]

[[in-and-out]]
== Iniciar sesión y salir

Inicia sesión (cuando ves `login:`) como un usuario que has creado durante la instalación o como `root`. (Tu instalación de FreeBSD ya tendrá una cuenta para `root`; quien puede ir a cualquier sitio y hacer de todo, incluyendo borrar ficheros esenciales, así que ¡ten cuidado!) Los símbolos % y # en lo que sigue significan prompt (el tuyo podría ser diferente), con % indicando un usuario ordinario y # para indicar `root`.

Para cerrar sesión (y obtener un nuevo prompt `login:`) teclea

[source, shell]
....
# exit
....

tantas veces como sea necesario. Sí, presiona kbd:[enter] después de los comandos y recuerda que UNIX(R) distingue entre mayúsculas y minúsculas - ``exit``, no `EXIT`.

Para apagar el ordenador, escribe

[source, shell]
....
# /sbin/shutdown -h now
....

O para reiniciar, escribe

[source, shell]
....
# /sbin/shutdown -r now
....

o

[source, shell]
....
# /sbin/reboot
....

También puedes reiniciar con kbd:[Ctrl+Alt+Delete]. Dale un poco de tiempo para que haga su trabajo. Es equivalente a `/sbin/reboot` en versiones recientes de FreeBSD y es mucho, mucho mejor que presionar el botón de reset. No quieres tener que reinstalar esto ¿verdad?

[[adding-a-user]]
== Agregar un Usuario con Privilegios de Root

Si no creaste un usuario cuando instalaste el sistema y por lo tanto has iniciado sesión como `root`, probablemente deberías crear uno ahora con

[source, shell]
....
# adduser
....

La primera vez que usas `adduser`, podría preguntar por algunos valores por defecto para guardarlos. Podrías querer hacer que el shell por defecto fuera man:csh[1], si sugiere que el valor por defecto es `sh`. De lo contrario, simplemente presiona enter para aceptar cada valor por defecto. Estos valores por defecto se salvan en [.filename]#/etc/adduser.conf#, un fichero que se puede editar.

Imagina que creas un usuario `jack` con nombre completo _Jack Benimble_. Asigna a `jack` una contraseña si la seguridad (incluso si son niños cerca que podrían acceder al teclado) es un problema. Cuando te pregunte si quieres invitar a `jack` a otros grupos, teclea `wheel`

[source, shell]
....
Login group is "jack". Invite jack into other groups: wheel
....

Esto hará posible iniciar sesión como `jack` y usar el comando man:su[1] para convertirse en `root`. Después ya no serás reprendido nunca más por iniciar sesión como `root`.

Puedes salir de `adduser` en cualquier momento tecleando kbd:[Ctrl+C], y al final tendrás la oportunidad de aprobar el nuevo usuario o simplemente teclear kbd:[n] para no hacerlo. Podrías querer crear un segundo usuario de forma que cuando edites los ficheros de inicio de sesión de `jack` tengas un repuesto en caso de que algo salga mal.

Una vez hecho esto, utiliza `exit` para volver al prompt de login e inicia sesión como `jack`. En general, es una buena idea hacer todo el trabajo que sea posible como un usuario ordinario que no tiene el poder - y el riesgo - de `root`.

Si ya has creado un usuario y quieres que el usuario sea capaz de hacer `su` a `root`, puedes iniciar sesión como `root` y editar el fichero [.filename]#/etc/group#, añadiendo `jack` a la primera línea (el grupo `wheel`). Pero primero necesitas practicar con man:vi[1], el editor de texto - o usa el editor de texto man:ee[1], más sencillo y que viene instalado en versiones recientes de FreeBSD.

Para eliminar un usuario, utiliza `rmuser`.

[[looking-around]]
== Echando un vistazo

Inicie sesión como un usuario normal, eche un vistazo y pruebe algunos comandos que accederán a las fuentes de ayuda e información de FreeBSD.

Aquí se describen algunos comandos y lo que hacen:

`id`::
¡Te dice quién eres!

`pwd`::
Te muestra dónde estás—el directorio de trabajo actual.

`ls`::
Lista los archivos en el directorio actual.

`ls -F`::
Lista los ficheros en el directorio actual con un * después de los ficheros ejecutables, un `/` después de los directorios, y una `@` después de los enlaces simbólicos.

`ls -l`::
Muestra los archivos en formato largo: tamaño, fecha, permisos.

`ls -a`::
Lista ficheros ocultos "dot" junto a los demás. Si eres `root`, los ficheros "dot" se muestran sin necesidad de usar la opción `-a`.

`cd`::
Cambia directorios. `cd ..` vuelve hacia atrás un nivel; fíjate en el espacio después de `cd`. `cd /usr/local` va a ese directorio. `cd ~` va al directorio home del usuario que ha iniciado sesión, por ejemplo, [.filename]#/usr/home/jack#. Prueba `cd /cdrom`, y luego `ls`, para ver si tu CDROM está montado y funcionando.

`less _filename_`::
Te permite ver el fichero (llamado _filename_) sin cambiarlo. Prueba `less /etc/fstab`. Teclea `q` para salir.

`cat _filename_`::
Muestra _filename_ por pantalla. Si es muy largo y sólo puedes ver la última parte, presiona kbd:[ScrollLock] y utiliza kbd:[up-arrow] para moverte hacia atrás; puedes usar kbd:[ScrollLock] también con páginas del manual. Presiona kbd:[ScrollLock] de nuevo para salir. Podrías querer probar `cat` en algunos de los ficheros dot en tu directorio home-`cat .cshrc`, `cat .login`, `cat .profile`.

Notarás que hay alias en [.filename]#.cshrc# para algunos de los comandos `ls` (son muy útiles). Puedes crear otros alias editando [.filename]#.cshrc#. Puedes poner estos alias disponibles para todos los usuarios del sistema poniéndolos en el fichero de configuración de `csh` a nivel de sistema, en [.filename]#/etc/csh.cshrc#.

[[getting-help]]
== Obteniendo ayuda e información

Aquí hay algunas fuentes de ayuda. _Text_ significa algo que escojas tú y que teclees-normalmente un comando o un nombre de fichero.

`apropos _text_`::
Todo lo que contenta la cadena _text_ en la `base de datos whatis`.

`man _text_`::
La página del manual para _text_. La mayor fuente de documentación de los sistemas UNIX(R). `man ls` te dirá de qué forma se puede usar `ls`. Presiona kbd:[Enter] para moverte por el texto, kbd:[Ctrl+B] para volver atrás una página, kbd:[Ctrl+F] para avanzar, kbd:[q] o kbd:[Ctrl+C] para salir.

`which _text_`::
Te dice dónde se encuentra el comando _text_ en el path del usuario.

`locate _text_`::
Todas las rutas donde se encuentra la cadena _text_.

`whatis _text_`::
Te dice lo que hace el comando _text_ y cuál es su página de manual. Teclear `whatis *` te dará información acerca de todos los binarios en el directorio actual.

`whereis _text_`::
Encuentra el fichero _text_, devolviendo su ruta completa.

Podrías querer probar a usar `whatis` en algunos comandos útiles y comunes como `cat`, `more`, `grep`, `mv`, `find`, `tar`, `chmod`, `chown`, `date`, and `script`. `more` te permite leer una página cada vez como hace en DOS, por ejemplo, `ls -l | more` o `more _filename_`. El * funciona como un wildcard, por ejemplo, `ls w*` mostrará todos los ficheros que empiezan por `w`.

¿Algunos de estos no funcionan muy bien? Tanto man:locate[1] como man:whatis[1] dependen de una base de datos que se reconstruye semanalmente. Si tu máquina no va a estar encendida durante el fin de semana (y ejecutando FreeBSD), podrías querer ejecutar estos comandos de mantenimiento diariamente, semanalmente, y mensualmente de vez en cuando. Ejecútalos como `root` y, de momento, dale tiempo a que termine cada uno antes de empezar con el siguiente.

[source, shell]
....
# periodic daily
output omitted
# periodic weekly
output omitted
# periodic monthly
output omitted
....

Si te cansas de esperar, presiona kbd:[Alt+F2] para ir a otra _consola virtual_ e iniciar sesión de nuevo. Después de todo, es un sistema multiusuario y multitarea. De todas formas estos comandos probablemente mostrarán mensajes en la pantalla mientas se ejecutan; puedes teclear `clear` en el prompt para limpiar la pantalla. Una vez que han terminado, podrías mirar en [.filename]#/var/mail/root# y [.filename]#/var/log/messages#.

Ejecutar dichos comandos es parte de la administración del sistema-y como único usuario de un sistema UNIX(R), tú eres el único administrador. Virtualmente todo lo que necesitas hacer como `root` es administración del sistema. Estas responsabilidades no están bien cubiertas incluso en esos libros gordos de UNIX(R), que parecen dedicar mucho espacio a desplegar menús en gestores de ventanas. Podrías querer obtener uno de los dos libros líderes en administración de sistemas, bien Evi Nemeth et.al.'s UNIX System Administration Handbook (Prentice-Hall, 1995, ISBN 0-13-15051-7)-la segunda edición con la cubierta roja; o Æleen Frisch's Essential System Administration (O'Reilly & Associates, 2002, ISBN 0-596-00343-9). Yo uso Nemeth.

[[editing-text]]
== Editando texto

Para configurar tu sistema, necesitas editar ficheros de texto. La mayoría de ellos estarán en el directorio [.filename]#/etc#; y necesitarás hacer `su` a `root` para poder cambiarlos. Puedes usar el sencillo `ee`, pero a la larga merece la pena aprender `vi`. Hay un tutorial excelente de vi en [.filename]#/usr/src/contrib/nvi/docs/tutorial#, si tienes instaladas los fuentes del sistema.

Antes de editar un fichero, probablemente deberías hacer una copia de seguridad. Imagina que quieres editar [.filename]#/etc/rc.conf#. podrías utilizar `cd /etc` para ir al directorio [.filename]#/etc# y hacer:

[source, shell]
....
# cp rc.conf rc.conf.orig
....

Esto copiaría [.filename]#rc.conf# a [.filename]#rc.conf.orig#, y después copiarías [.filename]#rc.conf.orig# a [.filename]#rc.conf# para recuperar el original. Pero sería incluso mejor mover (renombrar) y luego copiarlo de vuelta:

[source, shell]
....
# mv rc.conf rc.conf.orig
# cp rc.conf.orig rc.conf
....

porque `mv` conserva la fecha y propietario originales del fichero. Ahora ya puedes editar [.filename]#rc.conf#. Si quieres recuperar el original, harías `mv rc.conf rc.conf.myedit` (asumiendo que quieres mantener la versión editada) y luego

[source, shell]
....
# mv rc.conf.orig rc.conf
....

para dejar las cosas como estaban.

Para editar un fichero, escribe

[source, shell]
....
# vi filename
....

Muévete por el texto con las teclas de dirección. kbd:[Esc] (la tecla de escape) pone a `vi` en modo comando. Aquí hay algunos comandos:

`x`::
borra la letra que se encuentre en la posición del cursor

`dd`::
elimina la línea entera (incluso si no aparece por completo en la pantalla)

`i`::
inserta texto en la posición del cursor

`a`::
inserta texto después del cursor

Una vez que tecleas `i` o `a`, ya puedes introducir texto. `Esc` te lleva de vuelta all modo comando donde puedes teclear

`:w`::
para guardar los cambios en el disco y continuar con la edición

`:wq`::
para grabar y salir

`:q!`::
para salir sin grabar los cambios

`/_text_`::
para mover el cursor a _text_; `/` kbd:[Enter] (la tecla enter) para encontrar la siguiente instancia de _text_.

`G`::
para ir al final del archivo

`nG`::
para ir a la línea _n_ en el fichero, donde _n_ es un número

kbd:[Ctrl+L]::
para recargar la pantalla

kbd:[Ctrl+b] y kbd:[Ctrl+f]::
ir hacia atrás y hacia adelante una pantalla, como se hace con `more` y `view`.

Practica con `vi` en tu directorio home creando un nuevo fichero con `vi _filename_` y añadiendo y borrando texto, guardando el fichero y abriéndolo de nuevo. `vi` es una caja de sorpresas porque es en realidad bastante complicado y a veces ejecutas un comando sin querer que hará algo que no esperas. (A algunas personas en realidad les gusta `vi` - es más potente que EDIT en DOS- investiga sobre `:r`). Usa kbd:[Esc] una o más veces para asegurarte de que estás en modo comando y continúa a partir de ahí cuando tengas problemas, guarda frecuentemente con `:w` y usa `:q!` para salir y empezar de nuevo (desde tu último `:w`) cuando lo necesites.

Ahora ya puedes usar `cd` para moverte a [.filename]#/etc#, hacer `su` a `root`, usar `vi` para editar el fichero [.filename]#/etc/group# y añadir un usuario al grupo `wheel` de forma que tenga privilegios de root. Simplemente añade una coma y el nombre del usuario al final de la primera línea del fichero, presiona kbd:[Esc] y usa `:wq` para escribir el fichero en disco y salir. Efectivo al instante. (No pusiste un espacio después de la coma, ¿verdad?)

[[other-useful-commands]]
== Otros comandos útiles

`df`::
muestra el espacio en disco y los sistemas de archivos montados.

`ps aux`::
muestra procesos en ejecución. `ps ax` es una forma más compacta.

`rm _filename_`::
elimina _filename_.

`rm -R _dir_`::
elimina el directorio _dir_ y todos sus subdirectorios-¡cuidado!

`ls -R`::
lista ficheros en el directorio actual y todos los subdirectorios; He usado una variante, `ls -AFR > where.txt` para obtener una lista de todos los ficheros en [.filename]#/# y (separadamente) [.filename]#/usr# antes de que aprendiera mejores formas de encontrar ficheros.

`passwd`::
para cambiar la contraseña del usuario (o la contraseña de ``root``)

`man hier`::
página del manual sobre el sistema de ficheros UNIX(R)

Usa `find` para localizar [.filename]#filename# en [.filename]#/usr# o cualquiera de sus subdirectorios con

[source, shell]
....
% find /usr -name "filename"
....

Puedes usar * como un comodín en `"_filename_"` (que debería ir entre comillas). Si le pides a `find` buscar en [.filename]#/# en lugar de [.filename]#/usr# buscará los ficheros en todos los sistemas de ficheros montados, incluidos el CDROM y la partición DOS.

Un libro excelente que explica comandos UNIX(R) y utilidades es Abrahams & Larson, Unix for the Impatient (2nd ed., Addison-Wesley, 1996). También hay mucha información sobre UNIX(R) en Internet.

[[next-steps]]
== Próximos pasos

Ahora ya deberías tener las herramientas que necesitas para moverte y editar ficheros de forma que puedas poner todo en funcionamiento. Hay mucha información en el FreeBSD handbook (que está probablemente en tu disco duro) y en link:https://www.FreeBSD.org/[El sitio web de FreeBSD]. Hay una gran variedad de paquetes y ports en el CDROM así como en el sitio web. El handbook te dice más sobre cómo usarlos (obtener el paquete si existe, con `pkg add _packagename_` donde _packagename_ es el nombre del paquete). El CDROM tiene listas de paquetes y ports con breves descripciones en [.filename]#cdrom/packages/index#, [.filename]#cdrom/packages/index.txt#, y [.filename]#cdrom/ports/index#, con descripcones completas en [.filename]#/cdrom/ports/\*/*/pkg/DESCR#, donde * representa subdirectorios de tipos de programas y nombres de programas respectivamente.

Si encuentras el manual demasiado sofisticado (con el comando `lndir` y el resto) acerca de instalar los ports desde el CDROM, esto es lo que normalmente funciona:

Localiza el port que deseas, por ejemplo, `kermit`. Habrá un directorio para él en el CDROM. Copia el subdirectorio a [.filename]#/usr/local# (un buen lugar para el software que instales y que debería estar disponible para todos los usuarios) con:

[source, shell]
....
# cp -R /cdrom/ports/comm/kermit /usr/local
....

Esto debería resultar en un subdirectorio [.filename]#/usr/local/kermit# que tiene todos los ficheros que están en el subdirectorio `kermit` del CDROM.

A continuación, si aún no existe, crea el directorio [.filename]#/usr/ports/distfiles# usando el comando `mkdir`. Ahora busca en el directorio [.filename]#/cdrom/ports/distfiles# un archivo que tenga el nombre del port que quieres. Copia ese archivo a [.filename]#/usr/ports/distfiles#; en las versiones más recientes, puedes omitir este paso, FreeBSD lo hará por ti. En el caso de `kermit`, no existe el distfile.

Después usa `cd` para ir al subdirectorio [.filename]#/usr/local/kermit# que tiene el fichero [.filename]#Makefile#. Teclea

[source, shell]
....
# make all install
....

Durante este proceso el port se conectará por FTP para obtener cualquier fichero comprimido que necesite y que no encontró en el CDROM o en [.filename]#/usr/ports/distfiles#. Si no tienes la red funcionando todavía y no había fichero para el port en [.filename]#/cdrom/ports/distfiles#, tendrás que obtener el distfile utilizando otra máquina y copiarlo a [.filename]#/usr/ports/distfiles#. Lee [.filename]#Makefile# (con `cat` o `more` o `view`) para averiguar dónde ir (el sitio maestro) para obtener el fichero y saber cuál es su nombre. (¡Utiliza transferencias binarias!) Después vuelve a [.filename]#/usr/local/kermit#, encuentra el directorio que contiene el fichero [.filename]#Makefile#, y teclea `make all install`.

[[your-working-environment]]
== Tu entorno de trabajo

Tu shell es la parte más importante de tu entorno de trabajo. Ese shell interpreta los comandos que escribes en la línea de comandos y, por lo tanto, se comunica con el resto del sistema operativo. También puedes escribir shell scripts, que consisten en una serie de comandos que se ejecutarán sin intervención.

Con FreeBSD vienen dos shells instalados: `csh` y `sh`. `csh` es bueno para trabajar en línea de comando, pero los scripts deberían escribirse en `sh` (o `bash`). Puedes averiguar qué shell tienes tecleando `echo $SHELL`.

El shell `csh` está bien, pero `tcsh` hace todo lo de `csh` y más. Te permite recordar comandos con las flechas de dirección y editarlos. Tiene auto completado de ficheros con el tabulador (`csh` utiliza kbd:[Esc]), y te permite cambiar al último directorio en el que estuviste con `cd -`. El prompt también es mucho más fácil de cambiar en `tcsh`. Hace la vida mucho más fácil.

Aquí tiene los 3 pasos necesarios para instalar una nueva shell:

[.procedure]
====
. Instala el shell como un port o paquete, tal como harías con cualquier otro port o paquete.
. Utiliza `chsh` para cambiar tu shell a `tcsh` permanentemente, o teclea `tcsh` en el prompt para cambiar tu shell sin iniciar una nueva sesión.
====

[NOTE]
====
Puede ser peligroso cambiar el shell de `root` a algo que no sea `sh` o `csh` en versiones antiguas de FreeBSD y muchas otras versiones de UNIX(R); podrías no tener un shell que funcione cuando el sistema te pone en modo usuario único. El solución es usar `su -m` para convertirse en `root`, lo que te dará un `tcsh` como `root` porque el shell es parte del entorno. Puedes hacer que esto sea permanente añadiéndolo un alias a tu [.filename]#.tcshrc# con:

[.programlisting]
....
alias su su -m
....

====

Cuando `tcsh` se inicia, leerá los ficheros [.filename]#/etc/csh.cshrc# y [.filename]#/etc/csh.login#, como hace `csh`. También leerá [.filename]#.login# en tu directorio home así como [.filename]#.cshrc# a menos que proporciones un [.filename]#.tcshrc#. Esto lo puedes hacer simplemente copiando [.filename]#.cshrc# a [.filename]#.tcshrc#.

Ahora que tienes instalado `tcsh` puedes ajustar tu prompt. Puedes encontrar los detalles en la página de manual de `tcsh`, pero aquí tienes una línea para poner en tu [.filename]#.tcshrc# que te dirá cuántos comandos has tecleado, qué hora es, y en qué directorio estás. También utiliza un `>` si eres un usuario ordinario y un `#` si eres `root`, pero tcsh lo hará de todos modos:

set prompt = "%h %t %~ %# "

Debería de ir en el mismo lugar que la línea del prompt actual, si existiera, o debajo de "if($?prompt) then" si no existiera. Comenta la línea antigua; siempre podrá volver a usar el método antiguo si lo prefieres. No olvides los espacios y las comillas. Puedes forzar la relectura del archivo [.filename]#.tcshrc# escribiendo `source .tcshrc`.

Puedes obtener un listado de las otras variables de entorno que han sido configuradas ejecutando `env` en el prompt. El resultado mostrará tu editor predeterminado, paginador y tipo de terminal, entre muchas otras. Un comando útil si inicias sesión desde una ubicación remota y no puedes ejecutar un programa porque el terminal no es capaz de hacerlo es `setenv TERM vt100`.

[[other]]
== Otros

Como `root`, puedes desmontar el CDROM con `/sbin/umount /cdrom`, sacarlo de la unidad, insertar otro, y montarlo con `/sbin/mount_cd9660 /dev/cd0a /cdrom` asumiendo que cd0a es el nombre de la unidad para tu CDROM. Las versiones más recientes de FreeBSD te permiten montar el CDROM con tan sólo `/sbin/mount /cdrom`.

Utilizar el sistema de archivos live-el segundo disco de los CDROM de FreeBSD- es útil si tienes un espacio limitado. El contenido del sistema de archivos live varía de una versión a otra. Puedes probar a jugar a los juegos que hay en el CDROM. Esto implica usar el comando `lndir`, que se instala junto al sistema de ventanas X (X Window System), para informar al resto de programas dónde encontrar los archivos necesarios, dado que se encuentran en [.filename]#/cdrom# en lugar de [.filename]#/usr# y sus subdirectorios, que es donde se espeara que estén. Lee `man lndir`.

[[comments-welcome]]
== Comentarios Bienvenidos

Si utilizas esta guía, me interesaría saber qué partes no han quedado del todo claras y qué echas en falta y piensas que debería incluirse, y si te fue útil . Gracias a Eugene W. Stark, profesor de ciencias de la computación en SUNY-Stony Brook y a John Fieber por sus útiles comentarios.

Annelise Anderson, mailto:andrsn@andrsn.stanford.edu[andrsn@andrsn.stanford.edu]
