Редактирование: Программирование в Linux

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 3: Строка 3:
 
=== Bash-скрипты ===
 
=== Bash-скрипты ===
  
==== Задание 0 ====
+
==== Задание 1 ====
 
Написать скрипт, генерирующий пароль (случайный набор символов) заданной длины. Минимальный набор разрешённых символов: буквы латинского алфавита, цифры.
 
Написать скрипт, генерирующий пароль (случайный набор символов) заданной длины. Минимальный набор разрешённых символов: буквы латинского алфавита, цифры.
  
==== Задание 1 ====
+
==== Задание 2 ====
Вариант 1.
+
===== Вариант 1 =====
 
 
 
Дан текстовый файл,содержащий лог компилятора g++ с описанием ошибок и предупреждений, выданных при компиляции. Написать скрипт, читающий данный текстовый файл и выводящий сообщения об ошибках в формате "Error in the file %имя файла%: line #%номер строки%, symbol #%номер столбца%".
 
Дан текстовый файл,содержащий лог компилятора g++ с описанием ошибок и предупреждений, выданных при компиляции. Написать скрипт, читающий данный текстовый файл и выводящий сообщения об ошибках в формате "Error in the file %имя файла%: line #%номер строки%, symbol #%номер столбца%".
  
Вариант 2.
+
===== Вариант 2 =====
 
 
 
Написать скрипт, принимающий в качестве аргумента адрес веб-страницы, сохраняющий выдачу этой страницы и выводящий в текстовый файл адреса всех картинок, указанных на странице в html-тегах <''img''>.
 
Написать скрипт, принимающий в качестве аргумента адрес веб-страницы, сохраняющий выдачу этой страницы и выводящий в текстовый файл адреса всех картинок, указанных на странице в html-тегах <''img''>.
  
Вариант 3.
+
===== Вариант 3 =====
 
 
 
Написать скрипт, печатающий контур Российской Федерации в стандартный поток вывода терминального окна. Использовать псевдографику, доступную в кодировке ASCII. Размеры терминального окна считать стандартными.
 
Написать скрипт, печатающий контур Российской Федерации в стандартный поток вывода терминального окна. Использовать псевдографику, доступную в кодировке ASCII. Размеры терминального окна считать стандартными.
  
Вариант 4.
+
==== Задание 3 ====
 
 
Дан текстовый поток, где каждая строчка содержит два числа, разделённых пробелом. Написать скрипт на основе команды '''awk''', обрабатывающий этот поток и выводящий суммы чисел в строках.
 
 
 
==== Задание 2 ====
 
 
Написать скрипт, принимающий 3 опциональных аргумента и производящий в соответсвии с указанными параметрами компиляцию исходного кода на Си++. Дополнительно указываются флаги ''-pedantic -std=c++11''.
 
Написать скрипт, принимающий 3 опциональных аргумента и производящий в соответсвии с указанными параметрами компиляцию исходного кода на Си++. Дополнительно указываются флаги ''-pedantic -std=c++11''.
 
Список аргументов:
 
Список аргументов:
Строка 29: Строка 22:
 
# Имя выходного файла. По умолчанию ''app.out''.
 
# Имя выходного файла. По умолчанию ''app.out''.
 
# Имя компилятора. По умолчанию ''g++''.
 
# Имя компилятора. По умолчанию ''g++''.
 
==== Задание 3 ====
 
Написать скрипт, принимающий в качестве аргументов названия двух файлов. Используя команду diff, скрипт должен выводить количество изменений, которые нужно сделать для получения из первого файла второй.
 
 
<div class="mw-collapsible mw-collapsed" style="width:100%" >
 
=== Список изучаемых команд ===
 
<div class="mw-collapsible-content">
 
<syntaxhighlight lang="test" line start="1" enclose="div">
 
alias
 
apt-cache
 
apt-get
 
aptitude
 
awk
 
bash
 
bc
 
cat
 
cd
 
chmod
 
chown
 
clang
 
clang++
 
clang-format
 
clear
 
cron
 
cp
 
date
 
diff
 
dos2unix
 
dpkg
 
echo
 
emacs
 
exit
 
expect
 
find
 
ftp
 
g++
 
gcc
 
gedit
 
gfortran
 
git
 
grep
 
head
 
help
 
history
 
ifconfig
 
ip
 
kate
 
kill
 
killall
 
less
 
ln
 
ls
 
lynx
 
make
 
man
 
mc
 
mcedit
 
more
 
mount
 
mv
 
nano
 
open
 
passwd
 
perl
 
ping
 
ps
 
pwd
 
python
 
sed
 
seq
 
sftp(+ put, get)
 
sh
 
shutdown
 
sleep
 
source
 
spawn
 
ssh
 
su
 
sudo
 
svn
 
tac
 
tail
 
time
 
top
 
touch
 
tr
 
traceroute
 
unmount
 
useradd
 
vi(vim)
 
wait
 
watch
 
wget
 
whatis
 
whereis
 
whoami
 
yum
 
</syntaxhighlight>
 
</div>
 
</div>
 
 
==== Список ПО к установке ====
 
 
Список пакетов к установке с помощью apt-get:
 
* vim
 
* gcc
 
* g++
 
* python3
 
* python-pip3
 
* p7zip
 
* make
 
* binutils
 
 
Список библиотек к установке с помощью pip3:
 
* numpy
 
* matplotib
 
 
==== Список вопросов для подготовки ====
 
# Идеалогия '''unix''', история '''linux''' и отличие от других ОС, структура директорий, различия пользовательских интерфейсов (''unix, linux, bsd, macos, windows, core, uname, cui, cli, gui, etc.'').
 
# Основы работы в консоли (''sudo, useradd, passwd, su, date, time, bc, sleep, mount, top, kill, etc.'').
 
# Всё про '''bash''', включая синтаксис, примеры, обработку текста (''sh, bash, stdin, stdout, grep, awk, sed, etc.'').
 
# Установка и удаление приложений, пакетные менеджеры, поиск информации о пакетах (''dpkg, apt, aptitude, yum, apt-get, apt-cache, etc.'').
 
# Интерпретаторы и интерпретируемые языки (''bash, python, perl, etc.'').
 
# Компиляторы и компилируемые языки (''gcc, clang, c, c++, fortran, etc.'').
 
# Регулярные выражение: описание, живые примеры, применение в коде (''regex, awk, python, perl, etc.'').
 
# Резервное копирование, системы контроля версий, непрерывная интеграция (''diff, rsync, cron, git, svn, github, bitbucket, etc.'').
 
# Настройка и автоматизация сборки (''env. variables, building flags, optimisation, scripts, configure, makefile, cmake, etc.'').
 
# Настройка виртуальных машин, тестирование, оформление документации (''virtualbox, qemu, mingw, cygwin, catch2, doxygen, etc.'').
 
# Микроконтроллеры (всё, что вспомните).
 
# Удалённое управление, пакеты, сетевая модель '''OSI''', сетевые атаки (''ssh, ftp, sftp, ping, ifconfig, traceroute, nmap, injection, man in the middle, etc.'').
 
  
 
=== Литература ===
 
=== Литература ===
Строка 165: Строка 28:
 
* [http://www.linux-ink.ru/static/Docs/Courses/adv-user-guide/adv-user-guide.pdf Садов О. Л. Основы ОС Linux/UNIX для пользователей]
 
* [http://www.linux-ink.ru/static/Docs/Courses/adv-user-guide/adv-user-guide.pdf Садов О. Л. Основы ОС Linux/UNIX для пользователей]
 
* [https://github.com/EbookFoundation/free-programming-books/blob/master/free-programming-books-ru.md#unix Открытые книги по Unix]
 
* [https://github.com/EbookFoundation/free-programming-books/blob/master/free-programming-books-ru.md#unix Открытые книги по Unix]
 
=== Материалы ===
 
* [http://mech.spbstu.ru/images/5/51/UnixSHORT.pdf Вводная презентация]
 
* [http://mech.spbstu.ru/images/6/6f/Linux191022.zip Конспект занятий C++]
 
* [http://mech.spbstu.ru/images/2/27/Doxygen.zip Пример использования Doxygen] (zip)
 
* [http://mech.spbstu.ru/images/c/cc/Catch.zip Пример использования Catch2] (zip)
 
  
 
=== Cсылки по темам занятий ===
 
=== Cсылки по темам занятий ===
Строка 178: Строка 35:
 
* [http://nuclear.mutantstargoat.com/articles/make/ Создание Makefile]
 
* [http://nuclear.mutantstargoat.com/articles/make/ Создание Makefile]
 
* [https://www.cs.swarthmore.edu/~newhall/unixhelp/howto_makefiles.html Примеры Makefile]
 
* [https://www.cs.swarthmore.edu/~newhall/unixhelp/howto_makefiles.html Примеры Makefile]
* [https://www.networkworld.com/article/2974753/linux/doing-math-with-awk.html Применение awk]
 
* Применение grep: [https://www.thegeekstuff.com/2009/03/15-practical-unix-grep-command-examples 1], [https://www.thegeekstuff.com/2011/10/grep-or-and-not-operators/ 2]
 
* [http://proiot.ru/blog/posts/2017/11/11/neinteraktivnyi-tekstovyi-redaktor-sed/ Применение sed]
 
* [https://www.tecmint.com/difference-between-apt-and-aptitude/ Отличия aptitude и apt]
 
* [https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%82%D0%B5%D0%B2%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C_OSI Сетевая модель OSI]
 
Вам запрещено изменять защиту статьи. Edit Создать редактором

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии Public Domain (см. Department of Theoretical and Applied Mechanics:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Отменить | Справка по редактированию  (в новом окне)