Настройка лаборатории для обучения R в Linux
Эта статья ссылается на функции, доступные в планах лабораторий, которые заменили учетные записи лаборатории.
R — это открытый язык программирования и свободная программная среда для статистических вычислений и графики. Он используется для статистического анализа генетики, обработки естественного языка и анализа финансовых данных. R предоставляет интерактивный интерфейс командной строки. RStudio — это интерактивная среда разработки (IDE), доступная для языка R. Бесплатная версия предоставляет средства редактирования кода, интегрированный процесс отладки и инструменты разработки пакетов.
Эта статья посвящена исключительно RStudio и R в качестве стандартного блока для класса, требующего использования статистических вычислений. Типы классов глубокого обучения и записных книжек для Python и Jupyter настраивают RStudio по-разному. В каждой статье описывается, как использовать образ marketplace Виртуальная машина для обработки и анализа данных для Linux (Ubuntu), который содержит множество средств для обработки и анализа данных, включая RStudio, предварительно установленный.
Конфигурация лаборатории
Чтобы настроить эту лабораторию, вам потребуется подписка Azure и план лаборатории для начала работы. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Настройка внешних ресурсов
Для некоторых классов требуется внешнее хранение определенных файлов, например больших файлов данных. Параметры и инструкции по установке см. в статье Использование внешнего хранилища файлов в Службах лаборатории Azure.
Если вы решили использовать общий сервер R Server для учащихся, то перед созданием лаборатории необходимо настроить сервер. Дополнительные сведения о настройке общего сервера см. в статье Создание лаборатории с общим ресурсом в службе лабораторий Azure. Инструкции по созданию сервера RStudio см. в разделе «Скачивание сервера RStudio» для Debian & Ubuntu и доступ к серверу RStudio с открытым исходным кодом.
Если вы решили использовать внешние ресурсы, необходимо Подключение виртуальной сети в Службах лабораторий Azure с помощью плана лаборатории.
Параметры плана лаборатории
После получения подписки Azure можно создать новый план лаборатории в Службах лабораторий Azure. Дополнительные сведения о создании нового плана лаборатории см. в руководстве по настройке плана лаборатории. Вы также можете использовать существующий план лаборатории.
Включите параметры плана лаборатории, как описано в следующей таблице. Дополнительные сведения о том, как включить образы из Azure Marketplace, см. в статье Выбор образов Marketplace, доступных для создателей лаборатории.
| Настройка плана лаборатории | Instructions |
|---|---|
| Образы Marketplace | Включите образ Ubuntu Server 18.04 LTS . |
Параметры лаборатории
Инструкции по созданию лаборатории см. в руководстве по настройке лаборатории. При создании лаборатории используйте следующие параметры.
| Параметр лаборатории | Значение и описание |
|---|---|
| Размер виртуальной машины | Малый GPU (вычисления) |
| Образ виртуальной машины | Ubuntu Server 18.04 LTS. |
| Разрешение подключения к удаленному рабочему столу | Этот параметр следует включить, если решено использовать RDP. Он не требуется, если для подключения к компьютерам лаборатории используется X2Go. |
Если вы решили использовать RDP, необходимо подключиться к виртуальной машине Linux с помощью SSH и установить пакеты RDP и GUI перед публикацией лаборатории. Затем учащиеся могут подключиться к виртуальной машине Linux с помощью RDP позже. Дополнительные сведения см. в статье Включение удаленного рабочего стола для виртуальных машин Linux в лаборатории в Службах лабораторий Azure.
Конфигурация шаблона
После создания компьютера с шаблоном запустите компьютер и подключитесь к нему, чтобы установить R, RStudio Desktop и (при необходимости) сервер X2Go.
Для начала обновим apt и имеющиеся пакеты на компьютере.
sudo apt update sudo apt upgrade
Установка сервера X2Go
Если решено использовать X2Go, установите сервер. Сначала необходимо Подключение виртуальной машине лаборатории Linux с помощью SSH для установки компонента сервера. Оставшуюся часть настройки можно выполнить после подключения с использованием клиента X2Go.
Стандартная установка X2Go несовместима с RStudio. Чтобы избежать этой проблемы, обновите файл параметров x2goagent.
- Измените файл /etc/x2go/x2goagent.options . Не забудьте редактировать файл в режиме sudo.
- Раскомментируйте следующую строку: X2GO_NXAGENT_DEFAULT_OPTIONS+=» -extension GLX»
- Закомментируйте следующую строку: X2GO_NXAGENT_DEFAULT_OPTIONS+=» -extension GLX»
sudo systemctl restart x2goserverКроме того, можно создать необходимые библиотеки, следуя инструкциям в обходной путь GLX для X2Go.
Установка R
Установить R на виртуальной машине можно несколькими способами. Вы устанавливаете R из репозитория комплексной архивной сети R (CRAN). Она предоставляет самые актуальные версии R. После добавления этого репозитория на наш компьютер можно установить R и многие другие связанные пакеты.
Необходимо добавить репозиторий CRAN. Команды меняются в соответствии с краткими инструкциями по пакетам Ubuntu для R.
#download helper packages sudo apt install --no-install-recommends software-properties-common dirmngr # download and add the signing key (by Michael Rutter) for these repos sudo wget -q "https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc" -O /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc #add repository sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran40/"Теперь мы можем установить R, выполнив следующую команду:
sudo apt install r-baseУстановка RStudio
Теперь, когда выполнена локальная установка R, можно установить интегрированную среду разработки RStudio. Мы устанавливаем бесплатную версию RStudio Desktop. Все доступные версии см. в разделе Загрузки RStudio.
sudo gpg --keyserver keyserver.ubuntu.com --recv-keys 3F32EE77E331692Fexport rstudiover="1.4.1717" wget --quiet -O rstudio.deb https://download1.rstudio.org/desktop/bionic/amd64/rstudio-$rstudiover-amd64.debsudo apt install gdebi-core echo "y" | gdebi rstudio.deb –quietПакеты CRAN
Теперь пришло время установить все нужные пакеты CRAN. Сначала добавьте текущий репозиторий c2d4u R 4.0 или более поздней версии.
sudo add-apt-repository ppa:c2d4u.team/c2d4u4.0+Используйте команду install.packages(“package name”) в интерактивном сеансе языка R, как показано в статье Краткий список полезных пакетов языка R. Кроме того, используйте сервис —> пункт меню «Установить пакеты» в RStudio.
Если вам нужна помощь с поиском пакета, см. список пакетов по задачам или список пакетов по алфавиту.
Себестоимость
Рассмотрим примерную оценку затрат на это занятие. Допустим, что в классе у вас 25 учащихся. Для каждого учащегося запланировано по 20 часов занятий. У каждого учащегося есть также дополнительная квота в виде 10 часов для выполнения домашних заданий или продленных занятий. Мы выбрали размер виртуальной машины Малый GPU (вычисления), что составляет 139 единиц лаборатории.
25 студентов × (20 запланированных часов + 10 часов квоты) × 139 единиц лаборатории × 0,01 USD в час = 1042,5 USD
Оценка стоимости приводится только для примера. Сведения о текущих ценах см. на странице Цены на Службы лабораторий Azure.
Следующие шаги
Теперь образ шаблона можно опубликовать в лаборатории. Дополнительные сведения см. в статье «Публикация виртуальной машины шаблона».
Ознакомьтесь со следующими статьями, связанными с настройкой лаборатории:
- Настройка квоты
- Настройка расписания
- Добавление пользователей
- Отправка учащимся ссылок для регистрации по электронной почте
Обратная связь
Были ли сведения на этой странице полезными?
R-Studio инструкция как пользоваться
Назначение: восстановление информации при повреждении файловой системы, удалении файлов, удалении или пересоздании разделов, переустановки ОС, сборка и восстановление данных с массивов RAID-0, RAID-5, RAID-6, JBOD, виртуальных дисков платформ виртуализации (VMware, VirtualBox, QEMU).
Поддерживаемых файловые системы: FAT12, FAT16, FAT32, NTFS, NTFS5 (созданная и используемая в Windows 2000 /XP/2003/Vista/7, exFAT, ReFS (новая файловая система, представленная Microsoft в Windows 2012 Server), Ext2/3/4FS (созданные в Linux или другой ОС), HFS, HFS+, HFSX, and UFS1, UFS2, UFS BigEndian (используемые в ОС FreeBSD, OpenBSD, и NetBSD).
Автор: R-Tools Technology Inc, www.r-tt.com
Пример практического использования R-Studio
Рассмотрим как восстановить данные на конкретном примере.
Дано: USB-flash SanDisk Ultra 32GB.
Симптом: Windows при попытке открыть диск просит его отформатировать, ниже снимок экрана.

В свойствах диска файловая система определяется как RAW.

Важно заметить, что сама флешка исправна, но повреждён раздел. Раздел или том — понятия исключительно логические, том — более широкое понятие, может состоять из нескольких физических носителей, но, тем не менее, видится, как единое пространство.
И так, запускаем программу. В примере используется Demo-версия с ограничением по размеру восстанавливаемых файлов.
В среде Windows Vista и старше программу нужно запускать от имени администратора даже, если ваша учётная запись имеет права администратора.
В окне Drives слева видим список устройств и разделов. Справа, в Properties, свойства выбранного устройства или раздела. Сканировать на предмет поиска файловых систем и данных можно как всё устройство, так и существующие разделы или можно задать область сканирования вручную.

Но нам сейчас это не нужно, кликаем правой кнопкой мыши на нашей флешке и выбираем Scan.

Откроется следующее окно с параметрами сканирования.

- Simple – выводит только индикатор прогресса сканирования
- Detailed – информация о найденных загрузочных секторах, файловых системах, файлах документов, если включена Extra search
- None – никакой уточняющей информации о сканировании не выводится.

Процесс пошёл. На карте расположения информации на диске цветом показано какие найдены структуры данных. Ниже, под картой приводится расшифровка. Для полного восстановления данных необходимо просканировать всю поверхность накопителя. В данном примере информации на флешке мало, она располагается в первой половине флеш-памяти и дальше сканировать смысла нет, поэтому был нажат Stop. После предварительной обработки, откроется результат сканирования.

- Зелёный — найдена файловая система и boot-сектор — самый лучший вариант
- Оранжевый — найдена файловая система, но нет загрузочного сектора, присутствует часто в нескольких вариантах, отличающихся количеством восстановимых данных
- Красный — найден только загрузочный сектор без файловой системы, причём их может быть много, как правило интереса не представляют.

По окончании данного процесса мы увидим восстановленную структуру, как в проводнике. Слева будут папки, справа файлы и подпапки. Можно открыть любой файл встроенным просмотровщиком. Для этого выделив нужный файл и в контекстном меню выбрать Preview.

Если встроенный просмотровщик поддерживает выбранный тип файла и он полностью может быть считан, то мы увидим содержимой файла. Пример ниже.

Теперь остаётся только переписать найденную информацию на другой носитель. Для этого нужно отметить нужные файлы и папки или выделить всё, поставив галочку около Root-элемента. И в контекстном меню выбрать Recover marked.

Откроется диалог с параметрами сохранения информации.

Output folder – нужно указать, куда сохранять данные. Остальное можно оставить как есть.
Внимание! Никогда не сохраняйте данные на тот же диск с которого Вы их восстанавливаете. Иначе восстановленные файлы будут записываться на место восстанавливаемых файлов, что приведёт к их необратимому повреждению.

Некоторые параметра стоит изменить во вкладке Advanced.
- prompt – спрашивать на каждом случае повтора
- rename – переименовывать автоматически
- overwrite – перезаписывать
- skip – пропускать (стоит выбрать, чтоб не увеличивать объём данных).
- prompt – спрашивать каждый раз
- rename and change invalid symbols to – переименовывать, заменяя недопустимые символы на заданный символ
- skip – просто пропускать (выбрать, часто при первавильном имени содержимое тоже повреждено).
- prompt – спрашивать каждый раз
- remove – удалять (выбрать).
Не всегда сканирование даёт такой превосходный результат, как в данном примере. Чтобы показать, какой может быть результат сканирования, откроем другой, отмеченный красным, вариант восстановления и увидим следующее.

Как видно на иллюстрации, большинство папок отмечено красным знаком вопроса. То, что не отмечено им внутри пустые, а окно с логом переполнено ошибками. Данный результат не содержит практически полезной информации.
Если попытка самостоятельно восстановить данные не принесла положительного результата, то Вы можете обратиться к специалистам лаборатории MHDD.RU. Позвоните и проконсультируйтесь у наших технических специалистов по телефону: 8(495)241-31-97.
Как пользоваться R-Studio
R-studio — это набор программ для восстановления данных и файлов из жесткого диска. У приложения есть версии, как для Windows и Mac, так и для Linux. Программа платная, но имеет бесплатную версию, и считается одной из лучших программ для восстановления данных.
Программа проводит полный анализ диска и определяет какие файловые системы были на нем до этого, а затем позволяет восстановить файлы из этих файловых систем. Интересно, что можно обнаружить файловые системы, которые были на диске достаточно давно и даже из них восстановить файлы. Мы ранее рассматривали свободные утилиты для восстановления данных Linux, а в этой статье поговорим о том, как пользоваться R-Studio.
Table of Contents
- Установка R-Studio
- Как пользоваться R-Studio
- 1. Запуск R-Studio
- 2. Интерфейс R-Studio
- 3. Простое восстановление
- 3. Сканирование раздела
- 4. Поиск файлов
- 5. Создание образов
Установка R-Studio
Вы можете скачать установщик программы для своей операционной системы на официальном сайте. Для Linux здесь есть deb и rpm пакеты, которые установятся в большинстве дистрибутивов.


Например, в Ubuntu, после того как пакет будет загружен, перейдите в папку загрузок и запустите установку:
cd ~/Загрузки/
$ sudo dpkg -i RStudio*
После завершения установки ярлык программы появится в главном меню:

В Windows вам будет достаточно пройти несколько шагов мастера.
Как пользоваться R-Studio
Теперь перейдем ближе к работе с утилитой, рассмотрим ее первый запуск интерфейс и восстановление файлов.
1. Запуск R-Studio
При первом запуске программа попросит лицензию. Не мне вам рассказывать где искать бесплатные лицензии, или можете нажать кнопку Demo. Для восстановления небольших файлов вполне сойдет. Максимальный размер файла для восстановления — 256 кб.

Если в окне программы полностью пусто, то нужно запускать ее через терминал с помощью такой команды:
Теперь все должно работать.
2. Интерфейс R-Studio

Интерфейс программы достаточно типичен для такого рода утилит. Его можно разделить на такие части:
- Главное меню — содержит все доступные действия и функции;
- Панель инструментов — сюда вынесены основные функции программы;
- Вкладки — переключение между различными областями;
- Рабочая область — разделена на две части, в левой стороне находится список дисков или папок, а в правой подробная информация о них;
- Статус бар — в самом низу окна находится статус бар, где отображаются сообщения о работе программы.
В рабочей области главного окна вы будете видеть список всех дисков и разделов. По умолчанию программа на английском, но вы можете выбрать русский язык. Для этого откройте меню «Help» -> «Language» и выберите «Русский»:
3. Простое восстановление
Напоминаю, что независимо от файловой системы, файлы не удаляются физически с диска во время удаления. Зато вы можете потерять их навсегда, если файловая система их чем-либо перезапишет. Если вы случайно удалили некоторые данные лучше сразу отключить этот жесткий диск от компьютера и проводить восстановление, подключив его в качестве внешнего диска к другому устройству. Мы можем просканировать весь раздел и определить все файловые системы, остатки которых на нем еще есть, но существует более простой способ. Можно работать только с этой файловой системой. Для этого просто выберите нужный раздел и нажмите на панели инструментов «Показать содержимое раздела»:

Все удаленные файлы будут помечены красным крестиком. Чтобы восстановить их будет достаточно нажать кнопку «Восстановить» на панели инструментов:


Далее, нужно только выбрать папку, куда будут восстановлены файлы. Ни в коем случае не восстанавливайте все на тот же раздел, это может стереть то, что еще можно было спасти.
3. Сканирование раздела
Если вы хотите восстановить все данные, нужно просканировать нужный раздел, чтобы обнаружить все файловые системы, которые там были и с которыми может работать утилита. Для этого выберите нужный раздел и нажмите кнопку «Сканировать». Этот процесс может занять длительное время, прогресс будет отображаться в правой части рабочей области:


После завершения сканирования вы увидите все доступные файловые системы. Выберите одну из них и нажмите «Показать содержимое диска». Кстати, та же опция доступна из контекстного меню:

Теперь, как и в предыдущем случае вы можете видеть все доступные файлы и те, которые можно восстановить помечены красным крестиком. Кроме того, вы можете отметить галочками нужные файлы в правой части и восстановить их группой:

Если это медиа файл или текстовый, то вы можете его открыть прямо в программе, без того, чтобы выполнить восстановление данных rstudio.

4. Поиск файлов
Очень часто в прошлых файловых системах очень запутанная структура каталогов и вы не всегда помните что и где находилось. Но в программе есть встроенные возможности поиска. Для настройки поиска нажмите «Найти/отменить»:

В открывшемся окне вы можете выбрать где нужно искать, какие файлы искать, какого формата, нужно или искать каталоги и так далее. В выпадающем списке в самом верху окна нужно выбрать параметр, по которому будем искать, например, расширение, имя файла или регулярное выражение.
После завершения настройки нажмите «Ok». В правой части рабочей области будут отображены все найденные файлы и вы можете их восстановить.

5. Создание образов
Когда вы работаете с диском, на котором есть важные удаленные файлы, всегда есть риск что-то повредить. Поэтому вы можете создать образ и работать уже с ним. Для этого выберите на панели инструментов пункт «Создать образ»:

Процесс создания образа может занять достаточно долгое время. Затем вы можете выбрать пункт «Открыть образ» и продолжить работать с полученным образом как с обычным жестким диском.
Выводы
Теперь вы знаете как пользоваться r studio восстанавливаем данные. Удаление важных данных происходит не так часто. Но если это случится, то нужно иметь инструменты, с помощью которых вы смогли бы все вернуть. В этой статье мы рассмотрели как пользоваться программой R-Studio. Она самая популярная, но если у вас достаточно простая задача, то перед использованием этого инструмента можно попробовать свободные утилиты, такие как testdisk или photorec.
Видео про R-Studio в Ubuntu:
Основные linux-команды для новичка
Linux — это операционная система. Как винда (windows), только более защищенная. В винде легко подхватить вирус, в линуксе это практически невозможно. А еще линукс бесплатный, и ты сам себе хозяин: никаких тебе неотключаемых автообновлений системы!
Правда, разобраться в нем немного посложнее… Потому что большинство операций выполняется в командной строке. И если вы видите в вакансии «знание linux» — от вас ожидают как раз умение выполнять простейшие операции — перейти в другую директорию, скопировать файл, создать папочку… В этой статье я расскажу про типовые операции, которые стоит уметь делать новичку. Ну и плюс пара полезняшек для тестировщиков.
Я дам кратенькое описание основных команд с примерами (примеры я все проверяла на cent os, red hat based системе) + ссылки на статьи, где можно почитать подробнее. Если же хочется копнуть еще глубже, то см раздел «Книги и видео по теме». А еще комментарии к статье, там много полезного написали)
Где я? Как понять, где находишься
pwd --- мы ввели команду /home/test --- ответ системы, мы находимся в домашней директории пользователя testОчень полезная команда, когда у вас нет ничего, кроме командной строки под рукой. Расшифровывается как Print Working Directory. Запомните ее, пригодится.
Как понять, что находится в папке
Команда ls позволяет просмотреть содержимое каталога:

Хотя лучше использовать команду сразу с флагом «l»:
ls -lТакая команда выведет более читабельный список, где можно будет сразу увидеть дату создания файла, его размер, автора и выданные файлу права.

У команды есть и другие флаги, но чаще всего вы будете использовать именно «ls – l».
См также:
Команда ls Linux — подробнее о команде и всех ее флагах
Команда ls – просмотр каталога — о команде для новичков (без перечисления всех флагов)Как перейти в другую директорию
С помощью команды cd:
Путь может быть абсолютным или относительным.
По абсолютному пути
Либо у вас где-то записан путь, «куда идти», либо вы подсмотрели его в графическом интерфейсе (например, в WinSCP).
Вставляем путь в командную строку после «cd»
cd /home/student/logНу вот, мы переместились из домашней директории (обозначается как ~) в /home/student/log.

По относительному пути
Относительный путь — относительно вашей текущей директории, где вы сейчас находитесь. Если я уже нахожусь в /home/student, а мне надо в /home/student/log, команда будет такой:
cd log --- перейди в папку log из той директории, где ты сейчас находишьсяЕсли мне надо из /home/student/photo в /home/student/photo/city/msk/2017/cat_1, команда будет такой:
cd city/msk/2017/cat_1Я не пишу /home/student/photo, так как я уже там.

В линуксе можно задавать путь относительно домашней папки текущего пользователя. Домашняя директория обозначается ~/. Заметьте, не ~, а именно ~/. Дальше вы уже можете указывать подпапки:
cd ~/logЭта команда будет работать отовсюду. И переместит нас в /home/user/log.
Вот пример, где я вошла под пользователем students. Исходно была в директории /var, а попала в /home/students/log:

С автодополнением
Если вы начнете набирать название папки и нажмете Tab, система сама его подставит. Если просто нажмете Tab, ничего не вводя, система начнет перебирать возможные варианты:
— (cd tab) Может, ты имел в виду папку 1?
— (tab) Нет? Может, папку 2?
— (tab) Снова нет? Может, папку 3?
— (tab) Снова нет? Может, файл 1 (она перебирает имена всех файлов и директорий, которые есть в той, где вы сейчас находитесь)?
— (tab) У меня кончились варианты, поехали сначала. Папка 1?
cd lon(Tab) → cd long-long-long-long-name-folder — начали вводить название папки и система сама подставила имя (из тех, что есть в директории, где мы находимся).
cd (Tab)(Tab)(Tab) — система перебирает все файлы / папки в текущей директории.
Это очень удобно, когда перемещаешься в командной строке. Не надо вспоминать точное название папки, но можно вспомнить первую букву-две, это сократит количество вариантов.
Подняться наверх
Подняться на уровень выше:
Если нужно поднять на два уровня выше, то
И так до бесконечности =) Можно использовать файл, лежащий на уровне выше или просто сменить директорию.
Обратите внимание, что команда для линукса отличается от команды для винды — слеш другой. В винде это «cd ..\..», а в линуксе именно «cd ../..».
Как создать директорию
Используйте команду mkdir:
mkdir test --- создает папку с названием «test» там, где вы находитесьМожно и в другом месте создать папку:
mkdir /home/test --- создает папку «test» в директории /home, даже если вы сейчас не тамКогда это нужно? Например, если вам надо сделать бекап логов. Создаете папку и сохраняете туда нужные логи. Или если вы читаете инструкцию по установке ПО и видите там «создать папку». Через командную строку это делается именно так.
Как создать файл
Командой touch:
touch app.logТакая команда создаст пустой файл с названием «app.log». А потом уже можно открыть файл в редакторе и редактировать.
Как отредактировать файл
Вот честное слово, лучше делать это через графический интерфейс!
Но если такой возможности нет, чтож… Если использовать программы, которые есть везде, то у вас два варианта:
- nano — более простая программа, рассчитана на новичков
- vim — более сложная, но позволяет сделать кучу всего
nano test_env.jsonДля перемещения по файлу используйте кнопки со стрелками. После того, как закончите редактировать файл, нажмите:
- Ctrl+O — чтобы сохранить
- Ctrl+X — для выхода

А вот с vim с этим сложнее. В него легко зайти:
vim test_env.json vi test_env.json (предшественник vim)Войти вошли, а как выйти то, аааа? Тут начинается легкая паника, потому что ни одна из стандартных комбинаций не срабатывает: Esc, ctrl + x, ctrl + q… Если под рукой есть второй ноутбук или хотя бы телефон / планшет с интернетом, можно прогуглить «как выйти из vim», а если у вас только одно окно с терминалом, которое вы заблокировали редактором?
Делюсь секретом, для выхода надо набрать:
- :q — закрыть редактор
- :q! — закрыть редактор без сохранения (если что-то меняли, то просто «:q» не проканает)
Исходно, когда мы открываем файл через vim, то видим его содержимое, а внизу информацию о файле:

Когда нажимаем двоеточие, оно печатается внизу:

Если не печатается, не паникуем! Тогда попробуйте нажать Esc (вернуться в нормальный режим), потом Enter (подтвердить команду), а потом снова печатайте. Фух, помогло, мы вышли оттуда.
На самом деле сейчас всё не так страшно. Даже если вас заслали работать в банк, где нет доступа в интернет, а вы вошли в vi и не знаете как выйти, всегда можно погулить выход с телефона. Слава мобильному интернету! Ну а если вы знаете логин-пароль от сервера, то можно просто закрыть терминал и открыть его снова.
Если нужно выйти, сохранив изменения, используйте команду
:w — сохранить файл; :q — закрыть редактор;Ну а про возможности редактирования см статьи ниже =)
См также:
Как редактировать файлы в Ubuntu — подробнее о разных способах
Как пользоваться текстовым редактором vim — подробнее о vim и всех его опциях
Как выйти из редактора Vi или Vim? — зачем нажимать EscКак перенести / скопировать файл
Допустим, у нас в директории /opt/app/log находится app.log, который мы хотим сохранить в другом месте. Как перенести лог в нужное место, если нет графического интерфейса, только командная строка?
Скопировать файл
cp что_копировать куда_копироватьЕсли мы находимся в директории /opt/app/log:
cp app.log /home/olgaВ данном примере мы использовали относительный путь для «что копировать» — мы уже находимся рядом с логом, поэтому просто берем его. А для «куда копировать» используем абсолютный путь — копируем в /home/olga.
Можно сразу переименовать файл:
cp app.log /home/olga/app_test_2020_03_08.logВ этом случае мы взяли app.log и поместили его в папку /home/olga, переименовав при этом в app_test_2020_03_08.log. А то мало ли, сколько логов у вас в этом папке уже лежит, чтобы различать их, можно давать файлу более говорящее имя.
Если в «куда копировать» файл с таким именем уже есть, система не будет ничего спрашивать, просто перезапишет его. Для примера положим в папку log внутри домашней директории файл «app.log», который там уже есть:

Никаких ошибок, система просто выполнила команду.
Скопировать директорию
Команда остается та же, «cp», только используется ключ R — «копировать папку рекурсивно»:
cp -r путь_к_папке путь_к_новому_местуcp /opt/app/log /home/olgaТак в директории /home/olga появится папка «log».
Переместить файл
Если надо переместить файл, а не скопировать его, то вместо cp (copy) используем mv (move).
cp app.log /home/olga ↓ mv app.log /home/olgaМожно использовать относительные и абсолютные пути:
mv /opt/app/logs/app.log /home/olga — абсолютные пути указаны, команда сработает из любого местаМожно сразу переименовать файл:
mv app.log /home/olga/app_2020_03_08.log — перенесли лог в /home/olga и переименовалиПереместить директорию
Аналогично перемещению файла, команда mv
mv /opt/app/log/ /home/olga/bakup/Как удалить файл
С помощью команды rm (remove):
rm test.txt — удалит файл test.txtЕсли нужно удалить все файлы в текущей директории (скажем, вычищаем старые логи перед переустановкой приложения), используйте «*»:
rm * — удалит все файлы в текущей директории
Если нужно удалить папку, надо добавить флаг -r (recursive):
rm -r test_folderЕсли вы пытаетесь удалить файлы, которые уже используются в программе или доступны только для чтения, система будет переспрашивать:

А теперь представьте, что вы чистите много файлов. И на каждый система переспрашивает, и надо постоянно отвечать «да, да, да. » (y – enter, y – enter, y – enter)… Чтобы удалить все без вопросов, используйте флаг -f (force):
rm -rf test_folder --- просто все удалит без разговоров
Но учтите, что это довольно опасная команда! Вот так надоест подстверждать удаление и введешь «-rf», а директорию неправильно укажешь… Ну и все, прости-прощай нужные файлы. Аккуратнее с этой командой, особенно если у вас есть root-полномочия!
Опция -v показывает имена удаляемых файлов:
rm -rfv test_folder --- удалит папку со всем содержимым, но выведет имена удаляемых файлов
Тут вы хотя бы можете осознать, что натворили )))
Как изменить владельца файла
Если у вас есть root-доступ, то вы наверняка будете выполнять все действия под ним. Ну или многие… И тогда любой созданный файл, любая папка будут принадлежать root-пользователю.
Это плохо, потому что никто другой с ними работать уже не сможет. Но можно создать файл под root-ом, а потом изменить его владельца с помощью команды chown.

Допустим, что я поднимаю сервис testbase. И он должен иметь доступ к директории user и файлу test.txt в другой директории. Так как никому другому эти файлики не нужны, а создала я их под рутом, то просто меняю владельца:
chown testbase:testbase test.txt — сменить владельца файла chown -R testbase:testbase user — сменить владельца папкиВ итоге был владелец root, а стал testbase. То, что надо!
Как установить приложение
Если вы привыкли к винде, то для вас установка приложения — это скачать некий setup файлик, запустить и до упора тыкать «далее-далее-далее». В линуксе все немного по-другому. Тут приложения ставятся как пакеты. И для каждой системы есть свой менеджер пакетов:
- yum — red hat, centos
- dpkg, apt — debian
Давайте посмотрим на примере, как это работает. В командной строке очень удобно работать с Midnight Commander (mc) — это как FAR на windows. К сожалению, программа далеко не всегда есть в «чистом» дистрибутиве.
И вот вы подняли виртуалку на centos 7, хотите вызвать Midnight Commander, но облом-с.

Ничего страшного, установите это приложение через yum:
yum install mc
Он там будет что-то делать, качать, а потом уточнит, согласны ли вы поставить программу с учетом ее размеров. Если да, печатаем «y»:

И система заканчивает установку.
Вот и все! Никаких тебе унылых «далее-далее-далее», сказал «установи», программа установилась! Теперь, если напечатать «mc» в командной строке, запустится Midnight Commander:

Как запустить приложение
Некоторые приложения запускаются через скрипты. Например, чтобы запустить сервер приложения WildFly, нужно перейти в папку bin и запустить там standalone.sh. Файл с расширением .sh — это скрипт.
Чтобы запустить скрипт, нужно указать полный путь к нему:
/opt/cdi/jboss/bin/standalone.sh — запустили скрипт standalone.shЭто важно! Даже если вы находитесь в той папке, где и скрипт, он не будет найден, если просто указать название sh-скрипта. Надо написать так:
./standalone.sh — запустили скрипт, если мы в той же директорииПоиск идет только в каталогах, записанных в переменную PATH. Так что если скрипт используется часто, добавляйте путь туда и вызывайте просто по названию:
standalone.sh --- запустили скрипт standalone.sh, путь к которому прописан в PATHСм также:
Запуск скрипта sh в Linux — подробнее о скриптах
Если же приложение запускается как сервис, то все еще проще:
service test start — запустить сервис под названием «test» service test stop — остановить сервисЧтобы сервис test запускался автоматически при рестарте системы, используйте команду:
chkconfig test onОна добавит службу в автозапуск.
Как понять, где установлено приложение
Вот, например, для интеграции Jenkins и newman в Jenkins надо прописать полный путь к ньюману в параметре PATH. Но как это сделать, если newman ставился автоматически через команду install? И вы уже забыли, какой путь установки он вывел? Или вообще не вы ставили?
Чтобы узнать, куда приложение установилось, используйте whereis (без пробела):
whereis newman
Как создать архив
Стандартная утилита, которая будет работать даже на «голой» системе — tar. Правда, для ее использования надо запомнить флаги. Для создания архива стандартная комбинация cvzf:
tar -cvzf archive.tar.gz /home/test
В данном примере мы упаковали директорию /home/test, внутри которой было две картинки — 502.jpg и 504.jpg.
Для распаковки меняем флаг «c» на «x» и убираем «z»:
tar -xvf archive.tar.gz
Хотя система пишет, что распаковала «/home/test», на самом деле папка «test» появляется там, где мы сейчас находимся.
Давайте разберемся, что все эти флаги означают:
- c — создать архив в linux
- x — извлечь файлы из архива
- v — показать подробную информацию о процессе работы (без него мы бы не увидели, какие файлики запаковались / распаковались)
- f — файл для записи архива
- z — сжатие

Если очень хочется использовать rar, то придется изгаляться. Через yum установка не прокатит:
yum install rar yum install unrarГоворит, нет такого пакета:
No package rar available. Error: Nothing to doПридется выполнить целую пачку команд! Сначала скачиваем, разархивируем и компилируем:
wget http://rarlabs.com/rar/rarlinux-x64-5.4.0.tar.gz tar xzf rarlinux-x64-5.4.0.tar.gz cd rar make installmkdir -p /usr/local/bin mkdir -p /usr/local/lib cp rar unrar /usr/local/bin cp rarfiles.lst /etc cp default.sfx /usr/local/libunrar x test.rarКак посмотреть использованные ранее команды
Вот, допустим, вы выполняли какие-то сложные действия. Или даже не вы, а разработчик или админ! У вас что-то сломалось, пришел коллега, вжух-вжух ручками, magic — работает. А что он делал? Интересно же!
Или, может, вы писали длинную команду, а теперь ее надо повторить. Снова набирать ручками? Неохота! Тем более что есть помощники:
↑ (стрелочка «наверх») — показать последнюю команду history — показать последние 1000 командЕсли надо «отмотать» недалеко, проще через стрелочку пролистать команды. Один раз нажали — система показала последнюю команду. Еще раз нажали — предпоследнюю. И так до 1000 раз (потому что именно столько хранится в истории).

Большой бонус в том, что линукс хранит историю даже при перезапуске консоли. Это вам не как в винде — скопировал текст, скопировал другой, а первый уже потерялся. А при перезагрузке системы вообще все потерялось.
Если тыкать в стрелочку не хочется, или команды была давно, можно напечатать «history» и внимательно изучить команды.
См также:
История команд Linux — больше о возможностях historyКак посмотреть свободное место
Сколько места свободно на дисках
df -hСколько весит директория
du -sh du -sh * --- с разбиениемКак узнать IP компьютера
Если у вас настроены DNS-имена, вы подключаетесь к linux-машине именно по ним. Ведь так проще запомнить — это testbase, это bugred… Но иногда нужен именно IP. Например, если подключение по DNS работает только внутри рабочей сети, а коллега хочет подключиться из дома, вот и уточняет айпишник.
Чтобы узнать IP машины, используйте команду:
hostname -iТакже можно использовать ifconfig:
ifconfig — выведет кучу инфы, в том числе ваш внешний IP ip a — аналог, просто иногда Ifconfig дает очень много результата, тут поменьше будетКак узнать версию OS
Сидите вы у Заказчика на линуксовой машине. Пытаетесь что-то установить — не работает. Лезете гуглить, а способы установки разные для разных операционных систем. Но как понять, какая установлена на данной машине?
cat /etc/*-release
На этой виртуалке стоит CentOs 7.
Если нужна версия ядра:
uname -aКак узнать, как работает команда
Если вы не знаете, как работает команда, всегда можно спросить о ней саму систему, используя встроенную команду man:
man ls
Закрыть мануал можно с помощью клавиши q. Для того, кто первый раз в линуксовой консоли, это совсем не очевидно, а подсказки есть не везде.
Команда удобна тем, что не надо даже уходить из командной строки, сразу получаешь всю информацию. К тому же это всегда актуальная информация. А что вы там нагуглите — неизвестно =))
Хотя лично мне проще какую-то команду прогуглить, ведь так я получу русское описание + сначала самые главные флаги (а их может быть много). Но я сама новичок в линуксе, это подход новичка. А лучше сразу учиться прокачивать навык поиска по man-у. Он вам очень пригодится для более сложных задач!
Если man у программы нет, используйте флаг -h (—help):
ls -hКак создать много тестовых папок и файлов
Допустим, у нас есть некая папка test. Создадим в ней сотню директорий и кучу файликов в каждой:
mkdir -p test/dir-- touch test/dir--/file-
Вот и все, дальше можно играться с ними!

- mkdir — создать директорию
- touch — создать файл (или изменить существующий, но если файла с таким именем нет, то команда создаст новый, пустой)
- — пробежится по всем числам от 0 до 100
- — пробежится по всем буквам английского алфавита от A до Z
$ pwd /home/testСимвол $ при описании команд означает начало строки, куда мы пишем команду. Так мы отделяем то, что ввели сами (pwd) от ответа системы (/home/test).
Ага, в домашней директории. Создам себе песочницу:
mkdir olgaВот в ней и буду творить!
mkdir -p olga/dir-- touch olga/dir--/file-
А потом можно проверить, что получилось:
cd olga ls -lКак-то так! Имхо, полезные команды.
Я нашла их в книге «Командная строка Linux. Полное руководство», они используются для того, чтобы создать песочницу для прощупывания команды find. Я, как и автор, восхищаюсь мощью командной строки в данном случае. Всего 2 строчки, а сколько боли бы принесло сделать похожую структуру через графический интерфейс!
И, главное, тестировщику полезно — может пригодиться для тестов.
Как протестировать IOPS на Linux
Это очень полезно делать, если машину вам дает заказчик. Там точно SSD-диски? И они дают хороший iops? Если вы разрабатываете серверное приложение, и от вас требуют выдерживать нагрузку, нужно быть уверенными в том, что диски вам выдали по ТЗ.
Наше приложение активно использует диск. Поэтому, если заказчик хочет видеть хорошие результаты по нагрузке, мы хотим видеть хорошие результаты по производительности самих дисков.
Но верить админам другой стороны на слово нельзя. Если приложение работает медленно, они, разумеется, будут говорить, что у них то все хорошо, это «они» виноваты. Поэтому надо тестировать диски самим.
Я расскажу о том, как мы тестировали диски. Как проверили, сколько IOPS они выдают.

1) Скачиваем последнюю версию, распаковываем, переходим в каталог. В командах ниже нужно заменить «fio-3.19» на актуальную версию из списка
cd /tmp wget https://github.com/axboe/fio/archive/fio-3.19.tar.gz tar xvzf fio-3.19.tar.gz rm fio-3.19.tar.gz cd fio-fio-3.192) Должны стоять пакеты для сборки
apt-get install -y gcc make libaio-dev | yum install -y make gcc libaio-develmake./fio -readonly -name iops -rw=randread -bs=512 -runtime=20 -iodepth 32 -filename /dev/sda -ioengine libaio -direct=1Какие должны быть результаты:
- Средний SSD, выпущенный 2-3 года назад — 50 тысяч IOPS.
- Свежий Samsung 960 Pro, который стоит на одной из железок у нас в офисе — 350 тысяч IOPS.
Если должно быть 50 тысяч, а диск выдает сильно меньше, то:
— он не SSD;
— есть сетевые задержки;
— неправильно примонтирован;
— с ними что-то еще плохое случилось и стоит поднять алярм.И это все?
Еще полезно изучить команду find и регулярные выражения. Тестировщику как минимум надо уметь «грепать логи» — использовать grep. Но это уже остается на самостоятельный гуглеж.
База, которая всегда нужна — pwd, cp, mv, mkdir, touch. Остальное можно легко гуглить, как только возникает необходимость.Вот вам еще пара ссылочек от меня:
- Что значат символы >> и >& в unix/Linux — а то вроде про «>» знаешь еще по винде, а что значит «>>»? Вот в статье и ответ!
- Ахтунг, прод! Как настроить приветствие на Linux — очень полезная штука, если у вас есть доступы на продакшен. Обезопасьте себя )))
Книги и видео по теме
Где тренироваться
Можно поднять виртуалку. Правда, тут сначала придется разбираться, как поднимать виртуалку )))
А можно купить облачную машину. Когда мне надо было поиграться с линуксом, я пошла на SimpleCloud (он мне в гугле одним из первых выпал и у него дружелюбный интерфейс. Но можно выбрать любой аналог) и купила самую дешманскую машину — за 150 руб в месяц. Месяца вам за глаза, чтобы «пощупать-потыркать», и этой машины с минимумом памяти тоже.
У меня был когда-то план самой платить эти 150р за то, чтобы дать машину в общий доступ. Но увы. Как я не пыталась ее огородить (закрывала команды типа ssh, ping и прочая), у меня не получилось. Всегда есть люди, которых хлебом не корми, дай испортить чужое. Выложил в общий доступ пароли? На тебе ддос-атаку с твоего сервера. Ну и сервер блокируют. После N-ой блокировки я плюнула на это дело. Кто хочет научиться, найдет 150р.
Чтобы подключиться к машине, используйте инструменты:
- Putty — командная строка
- WinSCP — графический интерфейс