Sie sind auf Seite 1von 7

INSTITUTO TECNOLÓGICO SUPERIOR JUAN DE VELASCO

CARRERA DE TECNOLOGÍA EN DISEÑO Y MANTENIMIENTO DE REDES

INFORME

DATOS GENERALES:

NOMBRES: CODIGO(S):

Andres Gabriel Gavilanes Paredes 171919400-1

GRUPO No.: 1

FECHA DE REALIZACIÓN: 08/03/2020 FECHA DE ENTREGA: 09/03/2020

1
INSTITUTO TECNOLÓGICO SUPERIOR “JUAN DE VELASCO”
Av. Chimborazo 11-56 y Cuba

Telf: 2942 077

1. TEMA

 6.6 Concatenación
 6.7 Procesamiento de cadenas de caracteres
 6.8 Pre-proceso de información
 6.9 Interacción con el sistema operativo

2. OBJETIVO(S):

2.1. GENERAL
Realizar una correcta programación de scripts

2.2. ESPECÍFICOS:
● Conocer más afondo sobre su funcionamiento

● Conocer para que sirven

● Conocer donde aplicar correctamente los conocimientos aprendidos

3. MARCO TEÓRICO

La siguiente entrada es un ‘tip’ que me sirve personalmente como recordatorio,


seguro que a más de uno le vendrá bien.
Aquí van las variantes a la hora de concatenar comandos en linux, algo muy
básico pero que, como todo, si no se práctica se olvida.
Con | hace que la salida del primero se convierta en la entrada del segundo.
Ejemplo:
[root@server ~]# cmd1 | cmd2
Con & hará que los dos (o más) comandos se ejecuten de manera simultanea.
Ejemplo:
[root@server ~]# cmd1 & cmd2

2
ANDRES GAVILANES
INSTITUTO TECNOLÓGICO SUPERIOR “JUAN DE VELASCO”
Av. Chimborazo 11-56 y Cuba

Telf: 2942 077

Con || El segundo comando se ejecutará si el primero termina sin éxito.


Ejemplo:
[root@server ~]# cmd1 || cmd2
Con && El segundo comando se ejecutará solo si el primero termina con éxito.
Ejemplo:
[root@server ~]# cmd1 && cmd2
Con ; El segundo comando se ejecutará sin importar el resultado del primero.
Ejemplo:
[root@server ~]# cmd1 ; cmd2

Procesamiento de cadenas de caracteres


Las cadenas de caracteres (también llamadas cadenas o strings) son un tipo
particular de vectores, que como su nombre lo dice son vectores de char, con la
particularidad que tienen una marca en el fin del mismo (el caracter '\0'), además
el lenguaje nos permite escribirlas como texto dentro de comillas dobles si son
simples no. Veamos unos ejemplos de su declaración:

char cadena_hola[]="Hola";
char otro_hola[]={'H','o','l','a','\0'}; // Igual al anterior
char vector[]={'H','o','l','a'}; /* Un vector de 4 elementos,
con los elementos 'H','o','l' y 'a' */
char espacio_cadena[1024]="Una cadena en C";
char cadena_vacia[]="";

Cómo vimos anteriormente al declarar un vector se define la cantidad de


elementos que puede contener, en el caso de las cadenas se debe tener en
cuenta el espacio adicional necesario para el \0. Viendo el ejemplo,
tanto cadena_hola y otro_hola tienen un largo 5 y cadena_vacia tiene un largo de
1.
También vimos anteriormente que al usar vectores debemos tener en cuenta su
largo, y así es que el largo o cantidad de elemento lo necesitamos en todas las
funciones que definimos usando vectores y lo recibimos como un parámetro más
en estas, en el caso de las cadenas al tener una marca de fin podemos prescindir
del largo y procesar una cadenas hasta llegar a la marca de fin.

Por ejemplo, la siguiente función calcula el largo de una cadena :

3
ANDRES GAVILANES
INSTITUTO TECNOLÓGICO SUPERIOR “JUAN DE VELASCO”
Av. Chimborazo 11-56 y Cuba

Telf: 2942 077

/* devuelve la cantidad de caracteres en cadena sin contar el '\0' */


int largo_cadena(char cadena[])
{
int largo=0
while (cadena[largo]!='\0') largo++;
return largo;
}

Se debe tener en cuenta que el largo de una cadena y el largo del vector con la que se
representa son distintos, tanto por como largo_cadena() cuenta el largo de la cadena, como
por espacio_cadena del ejemplo anterior.
Algo bastante usual es necesitar unir dos cadenas, veamos un ejemplo:

bool unir_cadenas(char destino[], char origen[], int largo)


{
int largo_origen = largo_cadena(origen);
int largo_destino = largo_cadena(destino);
if ( largo_origen+largo_destino+1 > largo ) {
return false;
}
for (int i=0; i<largo_origen;i++) {
destino[largo_destino+i] = origen[i];
}
destino[largo_destino+largo_origen]='\0';
return true;
}
...
if ( unir_cadenas(espacio_cadena," que puede crecer hasta 1023
caracteres",1024) ) {
...

Estos dos ejemplos son versiones simplificadas de funciones provistas por la


biblioteca estándar de C a través del encabezado string.h.
Nuestro largo_cadena() es similar al strlen() de la biblioteca estándar,
y unir_cadenas() se asemeja al strncat(). Si bien ver estas versiones nos sirven
para entender las cadenas en C, en general será preferible usar las funciones
provistas por la biblioteca estándar, ya que podemos estar seguros que van a
estar programadas de la mejor manera posible.
Entre las funciones que provee la biblioteca estándar de C, las más importantes
son:

4
ANDRES GAVILANES
INSTITUTO TECNOLÓGICO SUPERIOR “JUAN DE VELASCO”
Av. Chimborazo 11-56 y Cuba

Telf: 2942 077

largo = strlen(cadena) // Para obtener el largo de una cadena


strcpy(destino, origen) // Copia el contenido de origen en destino
// destino debe ser lo suficientemente grande
strcat(destino, origen) // Agrega el contenido de origen al final de
destino
// destino debe ser lo suficientemente grande
resultado = strcmp(cadena1, cadena2) // Compara dos cadenas
// devuelve un valor menor, igual o mayor que 0 según si
cadena1 es menor,
// igual o mayor que cadena2, respectivamente.
posicion = strchr(cadena, caracter) // Devuelve la posición en memoria de
la primer
// aparición de caracter dentro de cadena
posicion = strstr(cadena,subcadena) // Devuelve la posición en memoria de
la primer
// aparición de subcadena dentro de cadena

Veamos algunos ejemplos usando  <string.h> :

#include <stdio.h>
#include <string.h>
...
char color[] = "rojo";
char grosor[] = "grueso";
...
char descripcion[1024];

strcpy(descripcion, "Lapiz color ");


strncat(descripcion, color, 1024);
strncat(descripcion, " de trazo ", 1024);
strncat(descripcion, grosor, 1024);
// descripcion contiene "Lapiz color rojo de trazo grueso"
...

void intercambiar(char vector[], int pos1, int pos2);


void invierte_cadena(char cadena[])
{
int largo = strlen(cadena);
for (int i=0; i < (largo/2); i++) {
intercambiar(cadena, i, (largo-1)-i);

5
ANDRES GAVILANES
INSTITUTO TECNOLÓGICO SUPERIOR “JUAN DE VELASCO”
Av. Chimborazo 11-56 y Cuba

Telf: 2942 077

}
}
void intercambiar(char vector[], int pos1, int pos2)
{
char aux=vector[pos1];
vector[pos1]=vector[pos2];
vector[pos2]=aux;

Pre-proceso de información
Por cierto, si quieres aprender Linux desde cero, te proponemos nuestro Curso de
Linux , que es una forma de aprender Linux y comenzar a dominar este estupendo
Sistema Operativo, el manejo de la terminal, sus comandos y todo lo demás,
desde cero y sin necesitar conocimientos previos en el mismo.
Los procesos juegan un papel muy importante en las distribuciones Linux, ya que
son los que consumirán estos recursos hardware tan preciados en entornos de
producción, administrarlos y gestionarlos correctamente es de vital importancia ya
que estos procesos y la gestión que hace el sistema sobre ellos, hacen posible
mantener funcionando el servidor sin necesidad de reiniciar después de un cambio
o actualización importante. Esto es uno de los puntos más importantes por los que
Linux gobierna el 90% de los servidores alrededor del mundo .
Para esta labor contamos con varias herramientas a nuestra disposición, veamos
algunas de ellas.
Para ver los procesos en sistemas Linux, contamos con el comando ‘ ps ’, que
listará (de múltiples formas según las opciones que le pasemos) todos los
procesos que se encuentran corriendo en nuestro equipo.

Interacción con el sistema operativo


1. Describir el objetivo de cada directorio y su contenido.
2. Investigar y describir a detalle los shells que pueden utilizarse en
GNU/Linux.
3. Investigar y describir a detalle los escritorios de trabajo que pueden
utilizarse en GNU/Linux
4. Desarrollar una investigación sobre X Window de al menos cinco cuartillas
donde se explique con claridad la arquitectura del servicio, sus
caracteríticas y su uso en GNU/Linux.

4. Observaciones

6
ANDRES GAVILANES
INSTITUTO TECNOLÓGICO SUPERIOR “JUAN DE VELASCO”
Av. Chimborazo 11-56 y Cuba

Telf: 2942 077

Debemos tener en cuenta que estemos conectados a internet y leer bien


cada concepto y verificar que no sean datos incorrectos

5. Conclusiones

 Conocer para que sirven y que son es muy importante para lo que se
esta estudiando
 Es un sistema muy extenso de conocer asique hay que prestar
atención en toda la información que se da he implementar un poco
con más investigación

6. RECOMENDACIONES:
⮚ Tener el pc siempre con batería o conectado a la corriente
⮚ Revisar si está conectado a internet
⮚ Ver si tenemos el sistema según la función de la PC.

⮚ Analizar si los archivos están bien

7. Webgrafías
https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Cadenas_de_caracteres

https://www.jorgebastida.es/concatenar-comandos-en-linux-y-sus-variantes/

https://openwebinars.net/blog/20-comandos-para-administrar-y-gestionar--facilmente-los-
procesos-linux/

https://www.uv.mx/personal/rcarrera/programacion-de-sistemas/3-el-sistema-operativo-
linux/4-introduccion-a-gnulinux/

7
ANDRES GAVILANES

Das könnte Ihnen auch gefallen