SHELL
SHELL
SHELL
md 2/11/2023
Shell
Hola mundo
Systema Unix
Bash
Es un interprete de comandos que por defecto viene con diferentes distribuciones de linux, sin embargo no
es la unica cascara que existe.
funcionamiento de la shell
como poderemos redireccionar una salida pues con el simbolo > (mayor que) de esta forma:
este simbolo funciona para escribir en nuestro archivo la salida de cat pero puede llegar a tener
complicaciones ya uqe sobreescribira el archivo en este caso.
SI lo que deseamos el concatenarle se usaran >> dos signos mayor que para agregar una salida a
nuestro archivo en este caso:
NOTA: por defecto redirige el estandar stdout por defecto si queremos cambiarlo tendremos que Esto
ya dicho veremos que tipo de errores tendremos
2>&1 indica que queremos redirigir el estandar error a el estandar salida y nos mostrara en el
documento creado y modificado el error en este caso
cowsay nos dara como salida una vaquita y una comentario que le queramos poner
man Nos permite ver el manual de cada comando o algunos programas que instalaremos
man ls
alias
alias
Podremos crear nuestro alias de forma muy facil usando alias como comando y ya conociendo la
sintaxis solo es cambiar valores.
ms
nvim ~/.bashrc
/
SHELL.md 2/11/2023
Recordemos que los alias son temporales si lo usamos en nuestra terminal de forma directa.
Ahora bien si deseamos que sea de forma permanente los lias debemos ingresar de esta forma a
nuestro archivo de configuraciones llamado .bashrc en la siguiente ruta.
nano ~/.bashrc
Buscaremos nuestras lineas de comando que empiecen con alias y simplemente tendremos que
crear nuestros alias:
...
alias temp='echo "hola mundo"'
...
source ~/.bashrc
unalias hm
awk
Es un comando un poco confuso para los mas nuevos sin embargo muy util a la hora de filtrar
algunas columnas de algunn fichero o bien la salidad de un ls -l.
/
SHELL.md 2/11/2023
ls -l este comando lo veremos mas adelante pero en resumidas palabras nos lista un
directorio en el cual nos encontramos o seleccionamos. Otra forma de filtrar con awk seria de
la siguiente manera segun este planteamiento:
Si quiero filtrar por extencion podria usar `ls -lh *.txt` esto nos imprime todos los archivos
que terminen con extencion `.txt` adicional a ello nos brindaran diferentes columnas donde
se encontraran datos del fichero. Pero si queremos filtrar por algun dato del fichero en
particular que se encuentre en alguna columna podremos realizarlo de la siguiente forma.
lista los ficheros y directorios del directorio en el que me encuentro posicionado asegurate que cada
fichero tenga la extencion .txt por lo tanto descarta todo lo demas pasalo como parametro a awk y
este seleccionara la columna 5 de las filas pasadas como argumentos.
Es una herramienta muy util cuando tengamos una cantidad ingente de ficheros y queramos hacer
algo mas que listarlos o buiscarlos por otros medios como permisos fecha de creacion etc ...
FS → Field Separator
/
SHELL.md 2/11/2023
awk soporta algunos operadores como: *, /, %, +, -, =, ++, --, +=, -=, *=, /=, %=.
Contamos una increible flexibilidad logica si queremos crear algo mas impresionante.
basename
Realmente solo sirve para extraer el nombre de la ultima ruta con su respectiva extencion.
basename /usr/loquesea/texmporal,txt
cal
Si deseamos visualizar las fechas a travez de nuestra terminal de forma sencilla cal es la solucion:
cal
esto muestra por terminal el mes con sus respectivos dias aunque podemos usar algunas opciones
como:
cal 03 2000
cat Extrae el formato o contenido de un documento representando lineas vaciaso lineas enumeradas
segun las opciones que usemos. En palabras mas simples nos deja tener una visualizar.
cat nombre.txt
/
SHELL.md 2/11/2023
cd /hola/mundo/
cd ../
Se tiene que tener presente que grupo es para que no existan problemas de seguridad.
chmod
chmod nos permite modificar los permisos de lectura, escritura y ejecucion de algun archivo o
directorio.
Se tiene que tener en cuenta que tenemos que por posicion 1 indica Permisos del Usuario, posicion 2
indica Permisos del Grupo, posicion 3 indica Permisos de Otros.
1. read 4
2. write 2
3. execute 1
Se repite para cada posicion se suman y dan como resultado la cantida de permisos qeu tienen en
cada grupo y adicional a ello que tipo de permiso.
chown Cambia la propiedad a otro usuario o bien otro gurpo o ambas de esta forma:
/
SHELL.md 2/11/2023
cp /directorio/archivo.txt /directorio/archivo_copia.txt
Es una util herramiento que veremos constantemente para enviar o recibir datos con cualquier
protocolo.
curl https://example.com
Tambien podremos indicarle si queremos mostrar la barra que muestra medicion de pogreso en
ejecucion y los caracteres que lo determinara y se dibujaran uno a uno mostrando a si el progreso:
curl -# -O https://example.com
Podemos realizar peticions get que nos retornara un formato JSON el cual podemos modificar.
curl https://jsonplaceholder.typicode.com/todos/1
Podremos enviar correos electronicos si deseamos con curl tendremos que tener configurado
nuestra cuenta de Google segun esta documentacion.
Otras caracteristicas
/
SHELL.md 2/11/2023
Podremos obtener los encabezados de nuestra peticion get con la opcion -v o para resumir la
informacion entregada con la opcion -i
Podremos extraer el nombre por defecto de la ultima ruta para guardar el archivo con ese
nombre la opcion es -O.
curl -O ruta_online_de_la_imagen
Si deseamos realizar una peticion POST osea enviando datos y obtener una respuesta a partir
de este POST enviado:
cut Es una herramienta de corte muy util para eliminar columnas, recuerda que uan columna es un
conjunto de datos con un separador representando dicha columna y filas.
Estamos obsecionados con las columnas por lo tanto en este caso podremos seleciconar las
columnas uqe necesitaremos una documento con las fechas del mes y adicionalmente filtraremos
cada una de sus columnas de la siguiente forma
/
SHELL.md 2/11/2023
Esto no se limita a documentos tambien es una forma simplificada de awk a la hora de capatar datos
y quiza guardarlos en un fichero como muestra la siguiente intruccion en donde listamos los
ficherosy directorios sin emabrgo solo requerimos guaradas sus permisos en un documento de esta
forma:
date Este comando es bastante interesante ya que si bien solo mostrara fechas tambien tiene varias
opciones muy interesantes como:
date
date --date="yesterday"
date --date="10 sec ago"
date --date="next monday"
date --date="4 day"
date --date="tomorrow"
date --file=file_name.txt
Por supuesto si se puede con ficheros tambien con directorios de forma recursiva
/
SHELL.md 2/11/2023
date -r /etc/hosts
df Si deseamos saber queesta haciendo nuestro disco duro podemos usar df, espiemos este
comando un poco mas:
La opción más usada es la -h ya que nos muestra el espacio en unidades más fácil de interpretar, MB,
GB, etc..
df -h
du -sh
Contamos con mas opciones segun nuestra necesidad, podemos jugar con las opciones que nos
ofrece para mostrar lista de ficheros y sus pesos respectivamente en diferentes unidades.
diff Si queremos conocer las diferencias de dos directorios diff es la respuesta, pues nos permite
conocer mas en detalle estas diferencias que para un aser humano o creando una programa nos
tardariamos demaciado tiempo analizar.
r Nos indica uqe compare de forma recursiva los directorios q Nos indica las diferencias que salen en
un directorio y no en el otro
dig Avanzado
/
SHELL.md 2/11/2023
tree rutadeldirectorio
expand Lo unico que realiza esto es darle tabulacion o contrario quitar tabulizacion de una cadena
de caracteres.
expand -t 1 NOMBRE_ARCHIVO
less Muestra mas informacion de tal forma que nos ofrece herramienta integradas esto como salida
puede beneficiar en la busqueda e algun caractere en algun documento.
less documento.txt
la salida puede cambiar y de igual forma se podra usar los filtros como en este caso
ls -l | less
Un pipe line nos permite redirigir la salida de un comnaod haciendolo pasar por otro comando de
shell para por modificarlo segun la salida del segundo comando como muestra este ejemplo:
/
SHELL.md 2/11/2023
file nos ayuda a determinar el tipo de archivo en texto plano o algun sistema diferente a el comun
por ejemplo texto ASCII ou otro como tipo MIME
MIME son una serie de convenciones o especificaciones dirigidas al intercambio a traves de internet
de todo tipo de archivo text, auto, etc ...
file nombre_arichivo.extension
o bien si queremos
operadores aritmeticos Contamos con una gran cantidad de operadores aritmeticos en bash en
este caso usaremos los mas usados.
wildcards
Son combinaciones de caracteres que nos sirven a nosotros como un medio de filtracion mas
eficiente, tenemos que saber que una wildcard no son expresiones regulares aunque tengan
simiulitudes.
Este comando con el wildcard nos permite filtrar teniendo en cuenta solamente las mayusculas
ls [[:upper:]]
Este comando con el wildcard nos permite filtrar teniendo en cuenta solamente las minusculas
ls [[:lower:]]
Este comando con el wildcard nos permite filtrar teniendo en cuenta solamente las minusculas
ls [[:upper:]]
El comportamiento de * nos indica como podemos filtrar por parte de las busques ejemplo
ls *.txt
/
SHELL.md 2/11/2023
nos indica que busque todos los documentos que terminen con la extencion .txt no se limita a
esto podremos jugar de diferentes formas a si que vamos a probarlo en el siguiente ejemplo:
ls *hola*
el anterior ejemplo indica que no importa que fichero sea siempre y cuando tenga la palabra
hola lo filtra
Si deseamos que comience con alguna letra o una lista de letras podemos realizarlos con el
wildcard:
ls [aA]*
Si Deseamos quiza negar una declaracion podemos usar el signo de exclamacion ! para negar
en este caos quiro que me liste todos los ficherosuqe NO empeicen por un dijito y el resto de
contenido no importa:
ls [![:digit:]]*
?hola?????
[n-z]??
ln Contamos tambien con los links simbolicos como por ejemplo, esto es un acceso directo como los
oacceso director de windows
*printenv Este comando nos ayuda a nosotros a conocer cuales son las variables globales:
printenv
/
SHELL.md 2/11/2023
history Nos permite visuaklizar una lista de comandos que hemos usado anteriormente
history
!numero
head Nos permite visualiza un encabezado qeu como salida sea texto
head file.txt
ls -la
mv hola.txt cambiado.txt
mv ./hola.txt ../
ping Nos ayuda a conocer algunos detalles de envio y captacion de paquetes en la red
ping google.com
/
SHELL.md 2/11/2023
which Nos busca en todas las rutas genericas que encontramos enlas variables globales por ejemplo:
which OBS
touch Creamos archivos con touch con cualqueir tipo de extension o sin extension
touch nombreficheroinventado.txt
UN PROGRAMA EJECUTABLE
PUEDE SER UNA FUNCION DE LA UTILIDAD DE LA SHELL
O PUEDE SER COMANDO S DE UTILIDAD DE SHELL
SI DESEAMOS SABER QUE TIPO ES CUALQUEIR COMANDO TENDREMOS EL COMANDO TYPE DE ESTA
FORMA
type ls
mkdir nombrenuevodirectorio
reboot
/
SHELL.md 2/11/2023
source Podremos ejecutar algun binario por ejemplo la virtualizacion de python con virtualenv
source env/bin/activate
rm Podremos borrar lo qeu queramos pero etngamos mucho cuidado a la hora de usarlo
rm -rf borra_todo.XD