Lo indispensable para manejar Linux por Consola.

Bueno cuando instalas una distribución de linux lo primero que estára delante de ti será una consola. Y lo primero que te pedirá es que inicies sesión o te logees.
Cabe recalcar que cuando introduzcas la constraseña no veras lo que estes escribiendo. no significa que el teclado no funcione.
 
Ese dato deberas conocerlo. es decir que usuario y contraseña has puesto?.
Al logearte lo primero que veras será: Unos datos adicionales del S.O
y la siguiente linea:
[email protected]:~$_
 
y ahora sabiendo esto empezemos a realizar una serie de ejercicios.
 


 Cerrar sesión
 
[email protected]:~$ logout


Reiniciar y apagar.
 
[email protected]:~$ reboot
[email protected]:~$ halt
 
Solo el superusuario puede ejecutar esta operación. Y el super usuario vendria ser el administrador en windows.
Pero hay otra cosa tu usuario es un usuario superusuario?
al instalar el s.o por defecto el 1er usuario creado es superusuario. sin embargo deberas ejecutar el comando:
 
[email protected]:~$ sudo reboot
que te pedira tu contraseña de usuario y si tienes privilegios de superusuario la operación se ejecutará.
 



 
Que es root  
Este usuario en conclusión es el administrador del sistema, equivale a obtener los máximos privilegios posibles. Root también es llamado supe usuario. Este usuario puede hacer muchas cosas que un usuario no común no puede, tal y como cambiar el dueño, los permisos de archivos, y enlazar a puertos de numeración pequeña.
Como en windows cuando instalamos el sistema operativo, nos creamos 2 usuarios. Uno quien será el administrador y el otro el usuario comun y corriente. En muchos casos por desconocimiento el usuario maneja el administrador como si fuese un usuario normal, sin conocer los riegos que eso implica.
Por lo general al instalar el sistema operativo linux en la instalación se configura el superusuario. Es decir se define usuario y contraseña.
Sin embargo al iniciar jamas se usa el super-usuario, sino un usuario estandar. Ese usuario puede ejecutar comandos de administrador siempre y cuando conosca el usuario y contraseña del superusuario.
 
[email protected]# ?este es el usuario root
 
ahora si ejecutamos el comando sudo su
[email protected]# ejecutando como root.
 



Comando SU
 
Son las siglas de "Switch User" y sirve, como su propio nombre indica, para cambiar de usuario sin necesidad de hacer un cierre o cambio de sesión (todo esto desde la terminal, esa cosa tan rara, pero potente y funcional).
 Es decir como cerrar sesión y cambiar de usuario en windows!!
 
Comando SUDO
 
Sudo" viene de "switch user do" y permite a los usuarios ejecutar acciones con los privilegios de seguridad del root, de manera segura. Se instala por defecto en /usr/bin.
 
 Ejemplos:su tunombre
 no actualizaria a tu carpeta personal y demás variables de entorno, tuyas propias.
Si usas el parametro -
osea:
 
su - nombreactualizaria a tu carpeta personal y demás variables de entorno, tuyas propias.En el prompt veras los cambios.
Ejemplo de prompt:
 [email protected]:~$
 
Estructura prompt
Se denomina: "Prompt" y está compuesta por:--nombre de usuario "tunombreusuario"
 --el símbolo de "@"
 --nombre del equipo "equipo"
 --dos puntos ":"
 --directorio donde nos encontramos "~"
 ---símbolo del dolar "$" (si estamos como root cambiará a "#"). Por defecto Ubuntu trae desactivada la cuenta del "root", por seguridad y para administrar el sistema existe un grupo de usuarios denominado "sudoers users" (administradores o admin), los cuales pueden obtener permisos de root, mediante la utilización de "sudo".
 El usuario con el que instalamos Ubuntu, se encuentra incluido en este grupo de administradores.Cambiar al usuario root activado:
 En sistemas GNU/linux con la cuenta del root activada (no es el caso de Ubuntu por defecto), para cambiar al usuario "root", se puede hacer escribiendo después del "su" el usuario ("su root") o no ("su"), aunque es más utilizada esta última:
 Osea usas su root o su(de una)
Como dijimos, "su", cambia de usuario pero no cambia de directorio $HOME ni demás variables de entorno.
Si queremos cambiar a root y además cambiar a su carpeta personal y demás variables de entorno, añadimos un espacio en blanco y un guión medio "-"


 


 
USUARIOS

 
 
No hay mucho que decir de los usuarios en Linux, solo que podremos darles permisos de acuerdo a las necesidades de ejecución en el servidor. Ejemplo: creando usuarios en Linux Para agregar usuarios no valemos del comando adduser ejemplo:
[email protected]# adduser pepe
[email protected]# adduser pepe2
Tendremos que irnos a la carpeta donde están todos los usuarios es decir home. sintaxis
[email protected]# cd /home
y damos enter para valer la sintaxis el promt nos mostrara lo siguiente [email protected]/home#
Ahora listamos los usuarios con el comando ls [email protected]/home# ls




Permisos a Usuarios
 
Para asignar permisos a usuarios se debe editar el archivo sudoers, ubicado en el directorio de etc. se puede hacer con el editor de archivos nano o vi, es este configuraremos todo lo referente a lo que pueden o no hacer los usuarios creados.
 Aprende ahora a usar el editor de archivos nano.
 
Archivo sudoers.
 
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.dEn el apartado identificado como: ?# User privilege specification? al final del fichero, es el lugar indicado para asignar permisos.

En el fichero, podremos observar como existe una línea similar a la siguiente: root ALL=(ALL) ALL El usuario root cuenta con acceso total al sistema, previo reconocimiento de su contraseña. Los usuarios se pueden escribir en distintas líneas o separados por comas.
Nota: todas las líneas con una # delante son comentarios y el sistema no los lee. Este archivo solo puede ser editado por el root con "
visudo
"
Formato:
usuario-grupo MAQUINA=(Usuario_con_privilegios)=COMANDO
Las opciones de ejecución son diversas y nos permiten regular con un nivel de seguridad el comportamiento de ciertas aplicaciones a la hora de ser invocadas. Pero nos quedaremos con el uso de NOPASSWD (evita que se nos solicite la contraseña). En el fichero, podremos observar como existe una línea similar a la siguiente: root ALL=(ALL) ALL El usuario root cuenta con acceso total al sistema, previo reconocimiento de su contraseña. Los usuarios se pueden escribir en distintas líneas o separados por comas. Para conceder el control total a los usuarios pepe y pepe2, solicitando la contraseña deberemos escribir: pepe, pepe2 ALL=(ALL) ALL No obstante, para que no se solicite la contraseña: ALL=(ALL) NOPASSWD: ALL Y si deseamos conceder permisos a nivel de grupo, deberemos escribir % antes de su nombre: %proyecto_lyc ALL=(ALL) ALL

 
Ahora te dejaremos uno cuantos comandos mas para que los investigues. 
ls
list: listar. Es el primer comando que todo linuxero debe aprender. Nos muestra el contenido de la carpeta que le indiquemos después. Por ejemplo. Si queremos que nos muestre lo que contiene /etc:
$ ls /etc
Si no ponemos nada interpretará que lo que queremos ver es el contenido de la carpeta donde estamos actualmente:
$ ls
Además acepta ciertos argumentos que pueden ser interesantes. Para mostrar todos los archivos y carpetas, incluyendo los ocultos:
$ ls -a

 
cd
change directory: cambiar directorio. Podemos usarlo con rutas absolutas o relativas. En las absolutas le indicamos toda la ruta desde la raíz (/). Por ejemplo, estemos donde estemos, si escribimos en consola?
$ cd /etc/apt
?nos llevará a esa carpeta directamente. Del mismo modo si escribimos?
$ cd /
?nos mandará a la raíz del sistema de ficheros.
Las rutas relativas son relativas a algo, y ese algo es la carpeta donde estemos actualmente. Imaginemos que estamos en /home y queremos ir a una carpeta que se llama temporal dentro de nuestra carpeta personal. Con escribir?
$ cd tu_carpeta/temporal
?nos situará allí. Como vemos hemos obviado el /home inicial ya que si no lo introducimos toma como referencia el directorio donde estamos, que es ese. ¿Y qué sucede si escribimos tan sólo?
$ cd
Esto lo que hace es que te lleva a tu carpeta personal directamente y estemos donde estemos.
 

 

 
mkdir
make directory: hacer directorio. Crea una carpeta con el nombre que le indiquemos. Nuevamente podemos usar rutas absolutas y relativas. Podemos indicarle toda la ruta que le precede al directorio que queremos crear, o si estamos ya en la carpeta que lo va a contener basta con poner tan sólo el nombre:
$ mkdir /home/tu_cuenta/pepino
Si ya estamos en /home/tu_cuenta?
$ mkdir pepino

 
rm
remove: borrar. Borra el archivo o la carpeta que le indiquemos. Como antes se puede indicar la ruta completa o el nombre del archivo. Para borrar un archivo:
$ rm nombre_archivo
Para borrar una carpeta vacía:
rm nombre_carpeta
Para borrar una carpeta que contiene archivos y/o otras carpetas que pueden incluso contener más:
rm -r nombre_carpeta
Otras opciones: ?-f? no te pide una confirmación para eliminar o ?-v? va mostrando lo que va borrando.

 
cp
copy: copiar. Copia el archivo indicado donde le digamos. Aquí podemos también jugar con las rutas, tanto para el fichero origen, como en el del destino. Tambíen podemos poner el nombre que queramos a la copia. Por ejemplo, si estuviéramos en /etc/X11 y quisiéramos hacer una copia de seguridad de xorg.conf en nuestra
 carpeta personal:
$ cp xorg.conf /home/tu_carpeta/xorg.conf.backup

 
mv
move: mover. Es igual que el anterior, sólo que en lugar de hacer una copia, mueve directamente el archivo con el nombre que le indiquemos, puede ser otro distinto al original:
$ mv /etc/pepino.html
/home/tu_carpeta/ese_pepino.html
Otro uso muy práctico que se le puede dar es para renombrar un archivo. Basta con indicar el nuevo nombre en el segundo argumento con la misma ruta del primero. En este ejemplo suponemos que ya estamos en la carpeta que lo contiene:
$ mv pepino.html ese_pepino.html

 
find
find: encontrar. Busca el archivo o carpeta que le indiques:
$ find / -name pepino
El comando anterior buscaría en todos los sitios las carpetas y archivos que se llamen pepino. Si tuviéramos la seguridad de que se encuentra en /var por ejemplo, se lo indicaríamos:
$ find /var -name pepino
Si no estamos muy seguros del nombre podemos indicárselo con comodines. Supongamos que el nombre de lo que buscamos contiene ?pepi?, en la misma carpeta de antes:
$ find /var -name *pepi*
Tiene otras opciones. Por ejemplo podemos decirle que encuentre los archivos/carpetas de más de 1500 KB:
$ find / -size +1500
O los archivos/carpetas contienen el nombre ?pepi? y tienen menos de 1000 KB:
$ find / -name *pepi* -size -1000
 


 ps

process status: estado de los procesos. Nos muestra lo que queramos saber de los procesos que están corriendo en nuestro sistema. Cada proceso está identificado con un número 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 más información:
$ ps aux


 kill

Este es mi comando favorito... le jugamos una mala pasada a un profesor con un amigo matandole la conexion, ya que trabajabamos sobre una maquina todo el grupo inclusive el
kill: matar. Elimina el proceso que le indiquemos con su PID:
$ 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 después la contraseña.
 Por ejemplo, para hacer una copia de seguridad del fichero xorg.conf que está localizado en la carpeta /etc/X11; ahí ningún 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: contraseña. Con este comando podremos cambiar la contraseña de nuestra cuenta. Primero nos pedirá la contraseña actual como medida de seguridad. Después nos pedirá que introduzcamos dos veces seguidas la nueva contraseña.
$ passwd

 
su
super-user: superusuario. Mediante su podremos loguearnos como superusuario. Tras escribirlo nos pedirá la contraseña de root y estaremos como administrador. Podremos hacer todo lo que queramos.
$ su
Este comando también nos permite hacer login con otra cuenta distinta. Por ejemplo, imaginemos que tenemos otra cuenta, además de root y la nuestra, llamada ?invitado?. Para hacer login como tal bastaría con poner:
$ su invitado
y después escribir la contraseña de esa cuenta.
 


 sudo passwd

No es un comando propiamente dicho, pero es interesante que lo conozcáis. Gracias a la unión de estos dos comandos podemos cambiar la contraseña de root (la del super-usuario).
$ sudo passwd

 
apt
advanced packets tool: herramienta avanzada de paquetes. Es uno de los comandos más útiles que se han desarrollado en los sistemas GNU/Linux debian o basados en esta distro. Nos permite comprobar actualizaciones, actualizar todo el sistema. También nos ofrece funcionalidad para buscar, descargar e instalar
 paquetes con una sola orden. Tenemos variantes, las más usadas son las siguientes:
$ apt-cache search nombre_paquete
Busca nombre_paquete para ver si existe literal o aproximadamente ofreciéndonos los paquetes que pudieran ser en caso de que hayamos puesto un nombre
 aproximado.
$ apt-get update
Actualiza los repositorios que son los que contienen los paquetes. Los repositorios son como las direcciones que contienen nuestros paquetes. apt-get update lo que hace es actualizar el listado de todos esos paquetes, con la dirección de dónde obtenerlos para que a la hora de hacer la búsqueda y su posterior descarga sea más rápida haciéndolo en nuestro ordenador.
$ apt-get upgrade
Actualiza nuestro sistema con todas las posibles actualizaciones que pudiera haber. La actualización no se realiza sólo sobre el propio sistema operativo, sino también sobre las aplicaciones que estén contenidas en los repositorios. Una útil forma de estar siempre al día.
$ apt-get install nombre_paquete
Localizado el nombre del paquete que queremos descargar e instalar, este comando se encargará del proceso. Buscará en nuestro índice (el que se crea con update) de dónde tiene que descargarse el paquete, lo hace y posteriormente lo instala.
$ apt-get remove [--purge] nombre_paquete
Elimina el paquete especificado del sistema. Admite el argumento ??purge? (corchetes = opcional) para que borre también los ficheros de configuración.
$ apt-get autoremove
Elimina paquetes que han quedado inservibles tras realizar algún apt-get remove, los llamados huérfanos. Normalmente tras hacer este último te avisa en un mensaje que lo realices. Todos estos comandos necesitan tener privilegios de administración, así que si no los usáis como root, debéis agregar primero el conocido ?sudo?.

 
aptitude
aptitude: aptitud, habilidad. En el fondo juega con las siglas de apt para crear
 aptitude. Es una versión mejorada de apt.
 aptitude nació como un front-end de apt, es decir, como una especie de aplicación
 gráfica y en modo texto para realizar todo lo que hace apt. Pero lo cierto es que sus
 características son mejores.
 apt cuando instala algo te puede realizar una sugerencia para que instales algo más que te podría venir bien, pero no lo hace. Hay programas que a la vez usan otros para algunas de sus funciones u opciones. apt no instalaría los segundos, como mucho te avisaría. Sin embargo aptitude sí que lo instalará porque sabe que de
 alguna forma es indispensable para el que has pedido. De la misma forma, si con apt instalas luego ese programa que es usado por otro, cuando desinstalas el principal, no se desinstalará el secundario, aunque éste ya no
 tenga mucho sentido que esté instalado, y lo mismo sucede con librerías. aptitude está capacitado para desinstalar lo que él mismo ha instalado como recomendación. Te deja el sistema más limpio tras las desinstalaciones. Para abrir el interfaz gráfico de aptitude, tan sólo hay que teclearlo:
$ aptitude
Sin embargo, también se puede usar exactamente igual que apt, pero con las características que he comentado de aptitude:
$ aptitude search nombre_paquete
 $ aptitude install nombre_paquete
 $ aptitude remove nombre_paquete
 $ aptitude purge nombre_paquete
 $ aptitude update
 $ aptitude upgrade
Y al igual que antes, necesitaréis usarlo con el sudo delante si no estáis como
 administrador.

 
dpkg
depackage: despaquetar. Los paquetes cuando se instalan sufren un proceso de desempaquetado. En el fondo un paquete .deb contiene una serie de scripts de preinstalación, post-instalación y los archivos en cuestión del paquete. Este comando lo usaremos para instalar un paquete .deb que ya tengamos descargados en nuestro sistema. En muchas ocasiones hay una aplicación que no está en los repositorios y nos hemos bajado el .deb para instalarlo con el interfaz gráfico que corresponda (GDebi en el caso de GNOME). En el fondo estas interfaces gráficas están basadas en dpkg. Si queremos instalar un paquete ya descargado mediante consola usaremos el argumento ?-i? (i=install):
$ dpkg -i nombre_paquete
Para desinstalarlo ?-r? (r=remove):
$ dpkg -r nombre_paquete
Para desinstalar el paquete y los ficheros de configuración ??purge? (purgar):
$ dpkg -r --purge nombre_paquete

 
man
manual: manual. Es otro de los comandos de gran potencia en linux. Normalmente cada programa o comando viene con un archivo de ayuda muy completo sobre su uso y sus argumentos. Cuando desconocemos cómo se usa y qué argumentos tiene un comando o aplicación tan sólo tenéis que escribir en consola:
$ man nombre
En ocasiones la información que nos ofrece man puede llegar a ser excesiva. Casi todos los comandos y aplicaciones aceptan el argumento ??help? para que muestre cierta ayuda más resumida. Por ejemplo con aptitude:
$ aptitude --help
Todos estos comandos tienen muchos más argumentos, como tambien existen muchos otros que no están aquí listados. Son simplemente los más usados o necesarios.

 
chown
El comando chown te permite modificar a los usuarios o grupos dueños de un archivo o carpeta en el sistema de archivos.
$chown (usuario) (archivo o carpeta)
ej: $chown sa_pirata /home/Document/carpeta
Aquí va a cambiar el propietario de "carpeta" por el usuario "sa_pirata"
otr ej: $chown -R sa_pirata /carpeta/otra-carpeta
En este último ejemplo va a cambiar el propietario de la carpeta sub-carpeta y archivos que haya en ella

 
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 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 quedarían 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

 
touch
El comando touch sirve para crear archivos en un directorio...
 sintaxis:
$touch "nombre-archivo"
ej: 
$touch archivo1

 
History Muestra el listado de comandos usados por el usuario
Ej $ hisotory 10

 
Halt Apaga el equipo

 
Reboot Reinicia el equipo

 
shutdown -h now Apaga el equipo

 
shutdown -r now Reinicia el equipo

 
passwd Cambia la contraseña del usuario

 
 

 
free Muestra información sobre el estado de la memoria del sistema, tanto la swap como la memoria física.Tambien muestra el buffer utilizado por el kernel. || Sintaxis: free.

 
Fsck Para chequear si hay errores en nuestro disco duro. || Sintaxis: fsck t fs_typo dispositivo.
$ clear        Limpia la pantalla, o Ctrl + L
$ date       Ver y cambiar la fecha del sistema
  $ cal        Nos muestra el calendario en pantalla

 
ps              Nos muestra los procesos que se estan ejecutando
 


 
Mas info aqui

Cualquier duda pregunten.
Lo indispensable para manejar Linux por Consola.
6 Puntos Score: 2/10
Visitas: 2159 Favoritos: 15
Ver los usuarios que votaron...
5 Comentarios Lo indispensable para manejar Linux por Consola.
+2 (es todo lo que tengo) por postear linux
Cita adicto_: Mostrar
gracias
Cita shamamoto: Mostrar
Para dejar un comentario Registrate! o.. eres ya usuario? Accede!