Skip to content

Latest commit

 

History

History
155 lines (113 loc) · 4.37 KB

Sem1.md

File metadata and controls

155 lines (113 loc) · 4.37 KB

Семинар 1

Задания в курсе

  • контесты
  • проект (будет куратор)
  • лекционные контрольные
  • мини-тесты

Цели курса

  • база
  • паттерны и антипаттерны
  • code-style
  • узнать лучшие практики

Как добыть Linux

  • WSL
  • вторая ОС на одной машине
  • ВМ
  • Docker

ФС

Linux

  • / - корень
  • /home/USER - домашние папки
  • /etc - конфигурационные файлы всех программ, которые установлены в системе
  • /usr - директория, в которой создается вторичная иерархия для данных пользователя (user system resources)
    • /usr/bin - программы для всех пользователей
    • /usr/local - третичная иерархия, все то же самое
    • /usr/lib - библы
    • /usr/include - заголовки
  • /var - переменные файлы: бд, кеши
  • /dev - файлы устройств
  • /prop - файлы процессов
  • /tmp, /opt - прочая лабуда

Windows

  • C:/ - disk
  • C:/Windows - system folder
  • C:/Users/USER - user folder

Терминал

  • можно сделать все из терминала
  • есть много кастомных версий терминала (tmux)

Полезные команды

  • touch
  • ls
  • mkdir
  • cp FROM WHERE
  • cd
  • rm
  • pwd
  • wc FILENAME - word count
  • man

Регулярки

  • cp *.txt dest - скопировать все файлы .txt в dest
  • rm dest/*.txt - удалить все файлы .txt в dest

Работа с файлами

  • touch - создать
  • command > input - запись вывода command в input
  • command >> input - добавление вывода command в input
  • cat test - печать содержимого файла
  • less / more - просмотр файлов с прокруткой
  • command 2 > input - запись stderr в input
  • cmd1 | cmd2 - перенаправление stdout cmd1 в stdin cmd2

Скрипты

  • скрипт - последовательность команд
  • чтобы автоматизировать повторяющиеся действия
  • запуск скрипта myprog -> ./myprog или sudo ./myprog

Права пользователей для файлов или директорий

  • пользователя - read, write. execute
  • группы пользователя - read, write. execute
  • всех пользователей - read, write. execute
  • посмотреть права файла можно через ls -lah
  • менять права командой chmod (+x для запуска)

Полезные команды

  • htop - список процессов
  • tree - дерево файлов
  • realpath - путь до файла
  • watch - повторение команды
  • sudo MANAGER install PACKAGE

Переменные bash

  • $0 - имя скрипта
  • $1-$9 - первые 9 аргументов
  • $# - кол. аргументов
  • $@ - список всех аргументов
  • $? - статус последней завершенной команды
  • $USER - имя пользователя
  • $HOSTNAME - имя компа
  • $SECONDS - время со старта текущего скрипта
  • $LINENO - номер строки в скрипте

Переменные окружения

  • $PATH - путь к исполняемым файлам (не надо писать полный путь)
  • $HOME - путь к домашней директории
  • $PWD - текущая директория
  • $LANG - язык системы (локаль - Locale)
  • $SHELL - используемая утилита для скриптов (изначально - Bash)
  • $LD_LIBRARY_PATH - где лежат библиотеки
  • Разделитель :

Арифметика

  • арифметические операции над целыми делать в (( expression ))
  • для вещественных чисел есть команда bc

Цикл for

x = 'A B C'
for var in $x
do
  echo $var
done

функции

myfunc () {
  echo inside $1
}

myfunc myarg

Упоротые команды

  • shift
  • [