Línea de comandos en Linux
El Shell es un programa que toma comandos desde el teclado y los pasa al Sistema Operativo para realizar alguna operación.
Casi todos las distribuciones Linux,proporcionan un shell, desde el
proyecto GNU, llamado bash, que
reemplaza al original shell de Unix, llamado sh.
Más información en:
Cuando estamos usando una interfaz de usuario gráfica, necesitamos otro programa
llamado emulador de terminal (terminal emulador) o simplemente terminal para interactuar con el shell.
Por ejemplo para interfaces como KDE Gnome
Normalmente podemos lanzar el terminal escribiendo alt + F2
[nombre-usuario@linux~]$
Esto puede variar de la distribución y usualmente incluye
nombre-usuario@nombre-maquina, seguido por el actual directorio de trabajo y un signo de dolar.
Algunas veces en lugar del signo dolar, aparece el signo #, esto significa que el terminal tiene previlegios de super usuario. Eso significa que tu estas logeado como el usuario root o has seleccionado un terminal con permisos de superusuario.
La forma general de los comandos Linux
<comando><opciones><argumentos>
<comando> es la acción que queremos que la computadora tome.<opciones> o flag modifica el compartamiento del comando.<argumentos> son las cosas que queremos sobre que el comando actúe.pwd prints working directory (muestra el directorio actual de trabajo).
ls lista todos los archivos y directorios del actual directorio de trabajo.
ls -a, lista todos los archivos, incluyendo los archivos ocultos.ls -l, lista todos los archivos en un formato con información extra (permisos, tamaño, fecha de modificación, etc.)ls *,lista los contenidos de los subdirectorios (un nivel de profundidad) en tu directorio de trabajo.ls <ruta>, lista los archivos en un directorio específico (sin cambiar tu directorio de trabajo)clear Borra toda la salida de la consola.
cd
cd <ruta> cambia el directorio a la ruta que se especifique, que puede ser una ruta relativa o una ruta absoluta.cd.. mueve hacia un directorio padre. cd se mueve a tu directorio home.mv
mv <nombrearchivo> <nueva ruta> mueve un archivo desde la localización local a moves a <nueva ruta>.mv <nombrearchivo> <nueva ruta > cambia el nombre de un archivo sin cambiar su ubicación.mkdir
mkdir <nombredirectorio> crea un directorio llamado <nombredirectorio>.rm -i
rm <nombrearchivo> remueve (elimina) un archivo permanentemente.rm -i <nombrearchivo> remueve archivos en modo interactivo. rm -ir <nombredirectorio> elimina un directorio y elimina recursivamente todo su contenido.cp
cp <nombrearchivo><nueva ruta> remueve (elimina) un archivo permanentemente.cp <nombrearchivo><nuevoarchivo remueve archivos en modo interactivo. touch
touch <nombrearchivo> crea un archivo vacío llamado <nombrearchivo.touch <nombrearchivo1> <nombrearchivo2>…head
head <nombrearchivo>, imprime el encabezado (las primeras 10 lineas) de un archivo.head -n20 <nombrearchivo, imprime las primeras 20 lineas de un archivo.tail
tail <nombrearchivo> imprime las últimas 10 líneas de un archivo .cat
cat <nombrearchivo>, imprime un archivo.less
less <nombrearchivo> permite desplazarse por el archivo .|
<comando1>|<comando2> canaliza los resultados de <comando 1> en <comando 2> y a continuación, los resultados del <comando 2> se imprimen en la consola.wc
wc <nombrearchivo> devuelve el conteo de líneas, palabras y caracteres en un archivo .wc -l <nombrearchivo, solo cuenta líneas. wc -w <nombrearchivo solo cuenta las palabras. wc -c <nombrearchivo> solo cuenta caracteres. >
<comando> > <nombrearchivo> toma la salida de <nombrearchivo>. Esto sobrescribirá el archivo si ya existe. grep
grep <patron><nombrearchivo> busca en un archivo un patrón de expresión regular e imprime las líneas coincidentes que debe estar entre comillas para permitir varias palabras. El patrón es sensible a mayúsculas y minúsculas por defecto, pero puede usar la opción -i para ignorar el caso.grep -r <patron> <ruta> hace una búsqueda recursiva de la ruta (verifica los subdirectorios) para encontrar coincidencias dentro de los archivosgrep <patron> realiza una búsqueda global (de todo el equipo) por coincidencias. Pulsa ctrl + c si se desea cancelar la búsqueda. find
find <ruta> -name <nombre> buscará recursivamente la ruta de acceso especificada (y sus subdirectorios) y encontrará archivos y directorios con un <nombre>. Usa . para especificar el directorio de trabajo. <nombre>, puede buscar una coincidencia exacta o utilizar caracteres comodín para buscar una coincidencia parcial, usando * y ?.
>>
<comando> >> <nombrearchivo> toma la salida de <comando> y lo agrega a <nombrearchivo>. Esto creará un archivo si aún no existe.El diseño del sistema de archivos en los sistemas Linux es muy similar al de otros sistemas Unix. El diseño es en realidad especificado en un estándar llamado Linux Filesystem Hierarchy Standard y mucho de los más interesantes archivos están en archivo de texto.
Veamos una lista de los directorios más importantes del sistema de archivos de Linux:
/: Directorio raiz. Donde todo empieza./bin: Contiene programas (binarios) que deben estar presente en el sistema para que arranque y corra./boot: Contiene el Kernel de Linux, disco de imagen RAM inicial y el gestor de arranque. Un archivo importante es /boot/vmlinuz que es el Kernel Linux. /dev: Este es un directorio especial que contiene nodos de dispositivos. Aquí es donde el kernel mantiene una lista de todos los dispositivos que entiende./etc: Es un directorio contiene todos los archivos de configuración de todo el sistema. También contiene una colección de scripts del shell que inician cada uno de los servicios del sistema en el arranque.
/etc/crontab: Un archivo que define cuando un proceso automático deberá ejecutarse./etc/fstab: Es una tabla de dispositivos de almacenamiento y sus puntos de montajes asociados./etc/passwd: Contiene una lista de las cuentas de usuario ./home: Directorio del usuario./lib: Contiene librerias compartidas usadas por los programas centrales del sistema. Son similares a las DLL en windows./lost + found: Cada partición formateada o dispositivo usando el sistema de archivos ext3 tiene este directorio. Es usado en el caso de una recuperación parcial de un evento de sistemas dañados./media: Es el directorio, que contiene los puntos de montaje de dispositivos removibles como los USB, CD-ROMs, etc, que son montados automáticamante en la insercción./mnt: Contiene los puntos de montaje de dispositivos removibles que han sidos montados manualmente./opt: Es un directorio usado para instalar opcional software./proc: Es un sistema de archivo virtual mantenido por el Kernel. Los “archivos” que contiene son rendijas en el propio Kernel. Los archivos se pueden leer y le dará una idea de cómo el Kernel ve su computadora. /root: Este es el directorio de la cuenta del usuario root./sbin: Contiene sistemas binarios, que son programas que llevan tareas vitales que son reservadas al usuario root./tmp: El directorio /tmp está destinado para el almacenamiento de archivos temporales, creados por diversos programas. Algunas configuraciones causan que este directorio deba ser vaciado cada vez que se reinicia el sistema./usr: El árbol de directorios /usr probablemente es el más grande en un sistema Linux. Contiene todos los archivos de los programas y de soporte utilizados por los usuarios regulares. Algunos subdirectorios importantes de usr:
/usr/bin: Contiene ejecutables instalados en tu distribución./usr/lib: Librerias compartidas por los programas en /usr/bin./usr/local: Es el directorio donde se encuentran los programas que no son incluidos con la distribución, pero que están destinados para el uso de todo el sistema. Programas compilados desde el código fuente normalmente se instalan en /usr/local/bin. /usr/sbin: Contiene muchos programas de administración del sistema. Algunos subdirectorios importantes de usr:
/usr/share: Es un directorio que contiene toda los datos, usados por los programas en /usr/bin. Esto incluye cosas como archivos de configuración, íconos, archivos de sonido, fondos de pantalla, etc./usr/share/doc: Documentación de programas del sistema. /var: El árbol de directorios /var es donde se almacenan los datos que probablemente cambien. Varias bases de datos, correo de usuario, etc., se encuentran aquí.
/var/log: Contiene los archivos de registro, registros de diversas actividades del sistema. Estos son muy importantes y deben ser vigilados de vez en cuando. El archivo más útil es /var/log/messages. Desde que el shell utiliza nombres de archivo demasiadas veces, proporciona caracteres especiales para ayudar a especificar rápidamente grupos de nombres de archivos. Estos caracteres especiales son llamados comodines.
Los comodines nos permiten seleccionar los nombres de archivo basado en patrones de caracteres. Los principales comodines se muestran a continuación:
* enlaza uno o más caracteres.? enlaza un único caracter. [caracteres] enlaza algún caracter que es miembro de caracteres. [[:clase:]] enlaza algún caracter que es miembro de una determinada clase. Las clases comunmente usadas son:
[:alnum:] enlaza algún caracter alfa numérico. [:alpha:] enlaza algún caracter alfabético. [:digit:] enlaza algún numeral. [:lower:] enlaza alguna letra minúscula. [:upper:] enlaza alguna letra mayúscula.