Skip to content
This repository has been archived by the owner on Nov 10, 2020. It is now read-only.

Commit

Permalink
Create Lab1.md
Browse files Browse the repository at this point in the history
  • Loading branch information
dehasi authored Oct 10, 2020
1 parent 6415f3f commit 05eb29d
Showing 1 changed file with 97 additions and 0 deletions.
97 changes: 97 additions & 0 deletions lab2/Lab1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
### Лабораторочка 1

В домашнем каталоге (`~`) создайте папку (`mkdir`) `lab1` и перейдите в нее (`cd`).

Убедитесь, что вы находитесь в папке `lab1` (`pwd`).

Узнайте имя своего пользователя (`whoami`).

#### Задание 1

Создайте в нем файл `file1` с произвольным текстом.
Убедитесь, что файл создан (`ls`).

Создайте на этот файл символическую ссылку (`ln -s`).
Убедитесь, что ссылка создана (`ls -l`).

Какие иноды у файла и ссылки (`stat`, `ls -i`)?

Выведите содержимое файла и ссылки (`cat`).

Удалите файл (`rm`). Убедитесь, что файл удален (`ls`).

Выведите содержимое ссылки.

Создайте файл заново, с другим текстом.

Выведите содержимое файла и ссылки (`cat`).

Удалите (`rm`) и ссылку.

------
#### Задание 2
Повторите то же самое, только вместо символической ссылки, создайте жесткую.

Какие иноды у файла и ссылки?

Поменяйте права у файла (`chmod`), поменялись ли права у ссылки?

------
#### Задание 3-5
- Заберите право `r` у каталога и попробуйте повторить задание 1 (или 2).
- Заберите право `w` у каталога и попробуйте повторить задание 1 (или 2).
- Заберите право `x` у каталога и попробуйте повторить задание 1 (или 2).

-----
#### Задание 6

Убедитесь что у вас установлен компилятор Си (`gcc -v`).
Установите в случае необходимости (`apt-get install gcc`, `yum install gcc`, `brew install gcc`)/

Создайте файл `program.c` с содержимым:

```
$cat program.c
#include<stdio.h>
int main(int argc, char *argv[]) {
printf("%s is %d\n", "argc", argc);
return 0;
}
```

Скомпилируйте программу (`gcc program.c -o program`).

Запустите программу.
```
$./program
argc is 1
```

Модифицируйте программу так, чтобы она печатала свое имя (`argv[0]`)

Убедитесь, что программа работает.

----
Модифицируйте программу так, чтобы она впадала в бесконечный цикл (`while(1);`).

Запустите, убедитесь, что программа работает, остановите программу (`Ctrl-C`).

----
Запустите программу в фоне (`&`).

Найдите ее `pid` (`ps`).

Остановите программу (`kill`).

----

Запустите программу в фоне еще раз.

Найдите ее `job id` (`jobs`).

Верните программу из фона (`fg`).

Остановите программу.

0 comments on commit 05eb29d

Please sign in to comment.