Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gabrieldiem/unix-utils-implementation
Unix / GNU command utilities implementation with Linux syscalls
https://github.com/gabrieldiem/unix-utils-implementation
7508 c clang fiuba gnu linux syscalls unix
Last synced: 3 days ago
JSON representation
Unix / GNU command utilities implementation with Linux syscalls
- Host: GitHub
- URL: https://github.com/gabrieldiem/unix-utils-implementation
- Owner: gabrieldiem
- Created: 2025-02-09T22:13:46.000Z (6 days ago)
- Default Branch: main
- Last Pushed: 2025-02-09T22:27:21.000Z (6 days ago)
- Last Synced: 2025-02-09T23:24:56.830Z (6 days ago)
- Topics: 7508, c, clang, fiuba, gnu, linux, syscalls, unix
- Language: C
- Homepage:
- Size: 134 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Lab Challenges
## Compilación y ejecutables
Para **compilar** correr el comando:
```shell
make
```Una vez compilado, se pueden **ejecutar** los siguientes programas:
```shell
./ps
``````shell
./find [-i]
``````shell
./ls
``````shell
./cp
``````shell
./timeout
```Para **eliminar** los ejecutables correr el comando:
```shell
make clean
```Para **formatear** el código fuente:
```shell
make format
```También se ofrece ejecución contenerizada con Docker, donde se pueden ejecutar los siguientes comandos:
Para crear el container ejecutar:
```shell
make docker-build
```Para ejecutar una shell dentro de Docker, lista para compilar y ejecutar los challenges (como se describió anteriormente):
```shell
make docker-run
```## Más información sobre los ejecutables
### ps (process status)
Muestra información básica de los procesos que están corriendo en el sistema. Equivale al comando:
```shell
ps -eo pid,comm
```La implementación muestra el pid y comando (i.e. argv) de cada proceso.
### find
Invocado como `./find xyz`, el programa buscará y mostrará por pantalla todos los archivos del directorio actual (y subdirectorios) cuyo nombre contenga (o sea igual a) xyz. Si se invoca como `./find -i xyz`, se realizará la misma búsqueda, pero sin distinguir entre mayúsculas y minúsculas.
### ls
Información del output:
```
[link destination]
```Donde filetype toma los valores:
- `d`: si es un directorio
- `l`: si es un link
- `-`: si es un archivoLos permisos tienen la forma estándar:
```
```Donde si el permiso correspondiente no está presente el caracter mostrado es: `-`.
El `[link destination]` se muestra sólo en el caso de las entidades que son links.
### cp
Copia un archivo, denominado archivo fuente, en una ubicación con nombre especificado, archivo denominado cono destino.
### timeout
Realiza una ejecución de un segundo proceso, y espera una cantidad de tiempo prefijada. Si se excede ese tiempo y el proceso sigue en ejecución, lo termina enviándole SIGTERM. Si el proceso termina antes, el programa finaliza.
En la invocación `` se refiere a un argumento que será pasado al proceso a monitorear ``. Se ofrece como ejemplo un programa `infloop` que cicla de manera indefinida imprimiendo un mensaje por pantalla cada cierto tiempo. Para probar timeout, también de podría ejecutar algo como: `./timeout 3 ping google.com`.