Bash: Comandos Básicos - c13inb/c13inb.github.io GitHub Wiki

Lista de comandos:

man = manual

La gran mayoria de los comandos vienen con un manual de uso, para acceder a estos hay que utilizar man y despues escribir el nombre del comando que quieres aprender a usar:

man echo

NAME
       echo - display a line of text

SYNOPSIS
       echo [SHORT-OPTION]... [STRING]...
       echo LONG-OPTION

DESCRIPTION
       Echo the STRING(s) to standard output.

       -n     do not output the trailing newline

       -e     enable interpretation of backslash escapes

       -E     disable interpretation of backslash escapes (default)

       --help display this help and exit

       --version
              output version information and exit     
.
.
.
.

echo

Imprime una frase o lo que sea que se escriba en la terminal:

echo Hello world!

## Hello world!

pwd = print working directory

Si necesitas saber en que directorio estas tranajando, este comando lo que hace es que imprime tu actual directorio

pwd

## /home/inb/paulinav

cd = change directory

Este comando funciona para cambiar directorio. Cuando inicias sesión en tu computadora, lo más probable es que tu directorio sea el home y muy probable es que tengas que cambiar al directorio donde se encuentran tus datos.

Mi directorio actual es:

pwd
## /home/inb/paulinav

Cambio de directorio a donde esten mis datos:

cd /misc/nyquist/paulinav/datos

pwd

## /misc/nyquist/paulinav/datos

Para regresar directorios:

cd ..

## /misc/nyquist/paulinav

cd ../..

## /misc/nyquist

cd ../../../

## /misc

ls = list

Este comando va a enlistar los archivos que existen en tu actual directiorio. Supongamos que estamos en el home:

ls

## Desktop
## Documents
## Downloads
## Music
## Videos

Pero tambien puedes utilizar ls para enlistar los archivos que existen en una ruta específica

ls /misc/nyquist/paulinav/miniconda

## bin
## compiler_compat
## condabin
## envs
....ect

mkdir = make directory

Ahora podemos crear uno o multiples nuevos directorios/carpetas con este comando:

mkdir Mi_carpeta

o multiples:

mkdir carpeta1 carpeta2 carpeta3

cp = copy

Con este comando podemos hacer una copia de los archivos que queramos de un directorio a otro, por ejemplo:

cp /misc/nyquist/paulinav/archivo.txt /misc/rhesus/paulinav/datos

mv = move

este comando tiene dos funciones: mover el archivo de un lugar a otro o/y renombrar dicho archivo. Para mover mi archivo de un directorio a otro:

mv archivo.txt ~/Documentos

Para cambiarle el nombre:

mv archivo.txt nuevo_archivo.txt

rm = remove

Poderoso y peligroso. El comando rm es para eliminar archivos de forma definitiva ya que NO hay vuelta atrás una vez que lo ejecutas, así que aguas! Para usarlo solo necesitas darle el path del archivo:

rm archivo.txt

o

rm /misc/nyquist/paulinav/archivo.txt

cat = concatenate

Este comando es muy útil y tiene varias funciones, entre las más relevantes es leer/imprimir, crear y unir archivos .txt, .sh y más.

Para leer el contenido de un archivo .txt:

cat archivo.txt

Para concatenar dos archivos:

cat archivo1.txt archivo2.txt > nuevo_archivo.txt

Para crear un nuevo archivo:

cat > archivo.txt

head

Este comando imprime/lee las primeras líneas de un archivo y es muy util cuando estas explorando el contenido de ciertos archivos sin tener que ver todo el contenido usando cat.

head abecedario.txt

## A
## B
## C
## D

tail

Mientras que tail lee las últimas lineas de un archivo:

tail abecedario.txt

## W
## X
## Y
## Z

tree

este comando despliega a los directorios con su estructura e información. Da una representación visual de las carpetas y sus archivos de manera muy eficaz. Ya que por ejemplo, ls si bien es efectivo, solo enlista los archivos de un solo path, mientras que tree despliega todos los directorios y sub directorios dentro del path.

tree /home/paulinav

# /home/paulinav
# ├── Documents
# │   ├── file1.txt
# │   └── file2.txt
# ├── Downloads
# │   └── program1
# └── Pictures
#     └── image1.jpg

* = wildcard

Uno de mis favoritos es el super asterisco *, que es una manera altamente efectiva de filtrar, buscar y seleccionar archivos en un directorio. Aquí vamos a poner unos ejemplos. Suponiendo que tenemos una serie de archivos en nuestro directorio:

ls

## img.png
## img_hm.png
## img_rat.png
## img_b.png
## script_rat.sh
## script_hm.sh
## script_img.sh
## list_px.txt
## list_task.txt
## list_class.txt

Puedo seleccionar solamente todos aquellos con terminación .sh:

ls *.sh

## script_rat.sh
## script_hm.sh
## script_img.sh

O filtrar aquellos archivos que son relacionados a roedores:

ls *rat*

## img_rat.png
## script_rat.sh

O seleccionar todos los archivos que empiecen con list:

ls list*

## list_px.txt
## list_task.txt
## list_class.txt

& = ampersand

Este es un indicativo al final de un comando que permite que se ejecute en el background mientras te permite seguir trabajando o escribiendo en la terminal. Un ejemplo donde es increiblemente útil es al abrir imágenes, por ejemplo:

display imagen.png &