Академический Документы
Профессиональный Документы
Культура Документы
ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ПЕТРА ВЕЛИКОГО»
Институт компьютерных наук и технологий
Высшая школа программной инженерии
1 курс, в5130904/30022
СПб, ул.Политехническая, 29
Оценка: зачтено
Руководитель практики
от ФГАОУ ВО «СПбПУ»: / Фёдоров С. А. /
Руководитель практики
от профильной организации: -
Обучающийся: / Феллер Г. М. /
Дата: 16.12.23
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ПЕТРА ВЕЛИКОГО»
Институт компьютерных наук и технологий
Высшая школа программной инженерии
Сроки
№ Этапы (периоды) прохождения этапа
Вид работ
п/п практики (периода)
практики
1 Организационный Установочная лекция для разъяснения целей, задач,
этап содержания и порядка прохождения практики, 01.09.23
инструктаж по технике безопасности, выдача
сопроводительных документов по практике
2 Основной Создание инструментальной платформы на 02.09.23-15.12.23
этап базе GNU/Lunux. Работа с менеджером
пакетов. Установка свежих версий
инструментов LaTex. Профессиональная
работа в менеджере окон. Эффективная работа
в текстовом процессоре Vim. Создание
инструментальной среды разработки.
3 Заключительный Защита отчета по практике 16.12.23
этап
Обучающийся / Феллер Г. М. /
Руководитель практической подготовки
от ФГАОУ ВО «СПбПУ» / Фёдоров С. А. /
Оглавление
ОГЛАВЛЕНИЕ ................................................................................................................................. 3
ВВЕДЕНИЕ....................................................................................................................................... 4
ГЛАВА 1. СОЗДАНИЕ ИНСТРУМЕНТАЛЬНОЙ ПЛАТФОРМЫ НА БАЗЕ GNU/LINUX................... 5
1.1 УСТАНОВКА ОС LINUX....................................................................................................................... 5
1.2 АППАРАТНОЕ ОБЕСПЕЧЕНИЕ ............................................................................................................... 5
1.3 ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ИСПОЛЬЗУЕМОЕ В ПРАКТИЧЕСКОЙ РАБОТЕ ................................................ 7
1.4 СЛОЖНОСТИ, ВОЗНИКШИЕ ПРИ СОЗДАНИИ ИНСТРУМЕНТАЛЬНОЙ ПЛАТФОРМЫ И ИХ РЕШЕНИЕ.................... 8
ГЛАВА 2. РАБОТА С МЕНЕДЖЕРОМ ПАКЕТОВ ............................................................................ 9
ГЛАВА 3. УСТАНОВКА СВЕЖИХ ВЕРСИЙ ИНСТРУМЕНТОВ LATEX ........................................ 13
ГЛАВА 4. ПРОФЕССИОНАЛЬНАЯ РАБОТА В МЕНЕДЖЕРЕ ОКОН ............................................ 15
1.1 УСТАНОВКА МЕНЕДЖЕРА ОКОН AWESOME .......................................................................................... 15
1.2 НАСТРОЙКА МЕНЕДЖЕРА ОКОН ......................................................................................................... 15
ГЛАВА 5. ЭФФЕКТИВНАЯ РАБОТА В ТЕКСТОВОМ ПРОЦЕССОРЕ VIM ................................... 16
1.1 УСТАНОВКА ТЕКСТОВОГО ПРОЦЕССОРА VIM: ...................................................................................... 16
1.2 НАВЫКИ ЭФФЕКТИВНОЙ РАБОТЫ С ТЕКСТОВЫМ ПРОЦЕССОРОМ VIM ..................................................... 16
ГЛАВА 6. СОЗДАНИЕ ИНСТРУМЕНТАЛЬНОЙ СРЕДЫ РАЗРАБОТКИ ........................................ 19
1.1 УСТАНОВКА КОМПИЛЯТОРА .............................................................................................................. 19
1.2 НАСТРОЙКА ТЕКСТОВОГО ПРОЦЕССОРА VIM КАК ИНСТРУМЕНТАЛЬНОЙ СРЕДЫ РАЗРАБОТКИ..................... 20
ЗАКЛЮЧЕНИЕ .............................................................................................................................. 21
ПРИЛОЖЕНИЕ 1. ЛАБОРАТОРНЫЕ РАБОТЫ ПО ПРЕДМЕТУ «ВВЕДЕНИЕ В
ПРОФЕССИОНАЛЬНУЮ ДЕЯТЕЛЬНОСТЬ» ................................................................................ 22
1.1 ЛАБОРАТОРНАЯ РАБОТА №1.............................................................................................................. 22
1.2 ЛАБОРАТОРНАЯ РАБОТА №2.............................................................................................................. 22
1.3 ЛАБОРАТОРНАЯ РАБОТА №2.2 ........................................................................................................... 24
1.3 ЛАБОРАТОРНАЯ РАБОТА №3.............................................................................................................. 24
1.4 ЛАБОРАТОРНАЯ РАБОТА №4.............................................................................................................. 26
1.5 ЛАБОРАТОРНАЯ РАБОТА №4.2 ........................................................................................................... 31
1.6 ЛАБОРАТОРНАЯ РАБОТА №5.............................................................................................................. 32
1.7 ЛАБОРАТОРНАЯ РАБОТА №5.2 ........................................................................................................... 33
Введение
Цель практики – персональная инструментальная платформа на базе GNU/Linux и
инструментальная среда разработки на базе Vim.
Задачи, решаемые для достижения этой цели:
1. Создание инструментальной платформы на базе GNU/Linux
2. Изучение работы с менеджером пакетов
3. Установка свежих версий инструментов LaTeX
4. Изучение работы в плиточном менеджере окон
5. Изучение эффективной работы в текстовом процессоре Vim
6. Создание инструментальной среды
Глава 1. Создание инструментальной платформы на базе GNU/Linux
1.1 Установка ОС Linux
Для установки ОС Linux была использована среда виртуализации VirtualBox, так как
нет возможности использовать выделенную рабочую станцию для установки ОС Linux в
качестве основной или дополнительной системы. Использование виртуальной машины
(далее – ВМ) отличается от персонального компьютера (сервера) тем, что для ВМ
выделяются ресурсы гипервизора, что приводит к уменьшению производительности
системы. Для решения задач, поставленных в рамках данной практики, ресурсы и
возможности ВМ достаточны.
• CPU: 2
• hdd: 25Гб
• Memory: 2Гб
1. Добавление репозитория
galina@galina-VirtualBox:~$
9. Получение подробной информации о пакете
galina@galina-VirtualBox:~$
10. Установка всех необходимых зависимостей
Просмотр PDF:
galina@galina-VirtualBox:~$ evince test.pdf
В первом файле нажать `v` для выделения нужного диапазона строк. Нажать `y` для
копирования в буфер обмена. Перейти в файл и переместить курсор на позицию, куда
нужно вставить скопированные строки, нажать клавишу `i` для перехода на режим вставки.
Нажать `Ctrl + Shift + v` для вставки из буфера обмена.
Нажать Ctrl+V и выделить нужный кусок текста. Нажать Shift+i, потом пишем сим-
волы коммента (#, //, ; и так далее). Потом нажать Esc.
:[начало_диапазона],[конец_диапазона]s/старое_слово/новое_слово/g
Глава 6. Создание инструментальной среды разработки
1.1 Установка компилятора
root@galina-VirtualBox:~# apt install gcc build-essential
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
binutils binutils-common binutils-x86-64-linux-gnu dpkg-dev fakeroot g++
g++-9 gcc-9 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-
merge-perl libasan5 libbinutils
libc-dev-bin libc6-dev libcrypt-dev libctf-nobfd0 libctf0 libfakeroot
libgcc-9-dev libitm1 liblsan0 libquadmath0 libstdc++-9-dev libtsan0 libubsan1
linux-libc-dev make manpages-dev
Suggested packages:
binutils-doc debian-keyring g++-multilib g++-9-multilib gcc-9-doc gcc-
multilib autoconf automake libtool flex bison gcc-doc gcc-9-multilib gcc-9-
locales glibc-doc libstdc++-9-doc
make-doc
The following NEW packages will be installed:
binutils binutils-common binutils-x86-64-linux-gnu build-essential dpkg-dev
fakeroot g++ g++-9 gcc gcc-9 libalgorithm-diff-perl libalgorithm-diff-xs-perl
libalgorithm-merge-perl
libasan5 libbinutils libc-dev-bin libc6-dev libcrypt-dev libctf-nobfd0
libctf0 libfakeroot libgcc-9-dev libitm1 liblsan0 libquadmath0 libstdc++-9-
dev libtsan0 libubsan1
linux-libc-dev make manpages-dev
0 upgraded, 31 newly installed, 0 to remove and 0 not upgraded.
Need to get 36,8 MB of archives.
After this operation, 170 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
grep -E '^a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?$' -
проверяет, что символы в алфавитном порядке
grep -vE '([a-z]).*\1' - исключает последовательности с повторяющимися
символами
galina.fel@sc-stage-galina:~/lab2.2$ cat 1.txt
fghi jk
galina.fel@sc-stage-galina:~/lab2.2$ cat 2.txt
abccbb
galina.fel@sc-stage-galina:~/lab2.2$ sed 's/ //g' 1.txt | grep -E
'a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?' | grep -vE '([a-
z]).*\1'
fghijk
galina.fel@sc-stage-galina:~/lab2.2$ sed 's/ //g' 2.txt | grep -E
'a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?' | grep -vE '([a-
z]).*\1'
galina.fel@sc-stage-galina:~/lab2.2$
Bat
Goat
Apple
Dog
First
Eat
Hide
# Извлечение аргументов
file="$1"
start_line="$2"
num_lines="$3"
is_integer () {
[[ $1 =~ ^[0-9]+$ || $1 =~ ^[-][0-9]+$ ]]
}
calculator() {
case $2 in
"+")
result=$(( $1 + $3 ))
;;
"-")
result=$(( $1 - $3 ))
;;
"x" | "X")
result=$(( $1 * $3 ))
;;
"/")
if [ "$3" -eq 0 ]; then
echo "Error: Division by zero is not allowed" >&2
exit 1
fi
result=$(( $1 / $3))
;;
*)
echo "Error: Unsupported operator: $2" >&2
exit 1
;;
esac
echo "$result"
}
или
var='echo “scale=6;$1 + $2” | bc'
#!/bin/bash
is_integer () {
[[ $1 =~ ^[0-9]+$ || $1 =~ ^[-][0-9]+$ ]]
}
is_float () {
[[ $1 =~ ^[0-9]+(\.[0-9]+)?$ || $1 =~ ^[-][0-9]+(\.[0-9]+)?$ ]]
}
calculator() {
"/")
if [ $(echo "$operand == 0" | bc -l) -eq 1 ]; then
echo "Error: Division by zero is not allowed" >&2
exit 1
fi
result=$(echo "scale=6; $1 / $3" | bc -l | awk '{printf "%.6f\n", $0}')
;;
res=$1
shift 1
#!/bin/bash
is_integer () {
[[ $1 =~ ^[-]?[0-9]+$ ]]
}
is_float () {
[[ $1 =~ ^[-]?[0-9]+(\.[0-9]+)?$ ]]
}
calculator() {
result=$1
shift
echo "$result"
}
#!/bin/bash
if [ $# -eq 0 ]; then
echo "Please provide the file name as an argument"
else
file_name=$1
if [ -f "$file_name" ]; then
echo "the file exists"
else
echo "the file does not exists"
fi
fi
*
* *
* * *
* *
*
#!/bin/bash
# Вывод пробелов
print_spaces() {
for ((i = 0; i < $1; i++)); do
echo -n " "
done
}
# Вывод звездочек
print_stars() {
for ((i = 0; i < $1; i++)); do
echo -n "* "
done
echo
}
#!/bin/bash
file_name="$1"
optimisation="$2"
if [ $? -eq 0 ]; then
else
# Компиляция завершена с ошибкой
echo "Compilation failed"
exit 1
fi
#include <stdio.h>
#include <time.h>
unsigned long long performComputation(unsigned long long n) {
unsigned long long sum = 0;
for (unsigned long long i = 1; i <= 10 * n; ++i) { // Увеличиваем
количество итераций
sum += i;
}
return sum;
}
int main() {
unsigned long long n = 1000000000;
return 0;
}
#!/bin/bash
if [ $? -eq 0 ]; then
time ./result
else
echo "Compilation failed"
exit 1
fi
}
real 0m29.756s
user 0m29.729s
sys 0m0.000s
Disk space occupied by executable (bytes):
16744
===================================================================
Optimisation level and parameters: -Os
===================================================================
Execution time:
Результат: 13106511857580896768
real 0m4.126s
user 0m4.122s
sys 0m0.000s
Disk space occupied by executable (bytes):
16744
===================================================================
Optimisation level and parameters: -O1
===================================================================
Execution time:
Результат: 13106511857580896768
real 0m4.220s
user 0m4.212s
sys 0m0.004s
Disk space occupied by executable (bytes):
16744
===================================================================
Optimisation level and parameters: -O2
===================================================================
Execution time:
Результат: 13106511857580896768
real 0m4.243s
user 0m4.240s
sys 0m0.000s
Disk space occupied by executable (bytes):
16744
===================================================================
Optimisation level and parameters: -O3
===================================================================
Execution time:
Результат: 13106511857580896768
real 0m4.077s
user 0m4.072s
sys 0m0.004s
Disk space occupied by executable (bytes):
16744
===================================================================
Optimisation level and parameters: -O2 -march=native
===================================================================
Execution time:
Результат: 13106511857580896768
real 0m4.122s
user 0m4.114s
sys 0m0.004s
Disk space occupied by executable (bytes):
16744
===================================================================
Optimisation level and parameters: -O3 -march=native
===================================================================
Execution time:
Результат: 13106511857580896768
real 0m1.287s
user 0m1.282s
sys 0m0.000s
Disk space occupied by executable (bytes):
16744
===================================================================
Optimisation level and parameters: -O2 -march=native -funroll-loops
===================================================================
Execution time:
Результат: 13106511857580896768
real 0m1.513s
user 0m1.506s
sys 0m0.004s
Disk space occupied by executable (bytes):
16744
===================================================================
Optimisation level and parameters: -O3 -march=native -funroll-loops
===================================================================
Execution time:
Результат: 13106511857580896768
real 0m1.048s
user 0m1.047s
sys 0m0.000s
Disk space occupied by executable (bytes):
16744
real 0m4.099s
user 0m4.098s
sys 0m0.001s
-fipa-icf-functions: Эта опция управляет уровнем интенсивности идентификации
real 0m1.517s
user 0m1.517s
sys 0m0.001s
real 0m1.514s
user 0m1.514s
sys 0m0.000s