Командная строка Unix
Командная строка Unix
Виктор Ашик
куратор КИТ
Командная строка
4
Командная строка жива
CLI - универсальный интерфейс:
• параметры ядра ОС
• режим диалога с пользователем
• интерфейс взаимодействия между процессами
5
Бывают cli-приложения:
• debug
• edlin
• fdisk
• diskpart
• ed
• nslookup
• virsh
6
Интерпретаторы команд (оболочки)
• command.com
• cmd.exe
• sh (bash, ash, pdksh, zsh, busybox...)
7
Интерфейсы устройств
• сетевое оборудование (Cisco IOS, Junos,
коммутаторы)
• встроенные системы (busybox)
• загрузчики (GRUB)
8
Языки программирования в режиме
REPL
Read–eval–print loop:
BASIC, Clojure, F#, Haskell, Perl, PHP, Python, Ruby,
Scala, Tcl, Javascript
• Пример: python и ipython
9
Бывает встроена в приложения
• видеоигры (Quake) (tilda)
• инженерные (Matlab/Octave, Autocad)
10
Термины
• System Console
– Virtual Console
– Command-Line Interface
– Win32 console
• Terminal
– Terminal Emulator
• TTY (teletype)
11
Секреты управления с клавиатуры
• У каждой реализации свои особенности
• Часто работают ^a ^e ^w ^s ^q
• В Windows: Home/End/Esc/F3/F7/^C
• Надо учить постепенно
– man readline
12
Команды
• ЧтоДелать -о -опции --опция-с-аргументом
КтоВиноват -о КтоВиноват Аргументы
• опции могут быть чувствительны к регистру
13
Команды
• Встроенные команды
• Исполняемые файлы (внешние)
– PATH
14
Текущий каталог
• cd
• pwd
• pushd / popd
15
Пути к файлам
• абсолютные
• относительные
16
Переменные (окружения)
• Путь поиска PATH
• Формат приглашения PS1/PROMPT
• Редактор EDITOR/VISUAL
17
Шаблоны имен файлов
• ?
• *
• *.*
18
Регулярные выражения
• .
• .*
grep/findstr
19
Конвейер
• ЧтоДелать -опции Аргументы | ЧтоДелать -опции
Аргументы | ЧтоДелать
• Обычно по конвейеру передается текст
• Иногда - объекты (PowerShell)
20
Перенаправление
• ЧтоДелать > ФайлКудаПисатьВывод
• ЧтоДелать < ФайлОткудаЧитать
• ЧтоДелать 2> ФайлКудаПисатьОшибки
• ЧтоДелать > ФайлКудаПисатьВсё 2>&1
• ЧтоДелать &> ФайлКудаПисатьВсё
21
Код возврата
• exit 0 # OK
• exit 1 # not OK
• exit 2 # not OK
• ...
22
Условное исполнение
• true && ТогдаВыполняем
• false || ТогдаВыполняем
• test -f /etc/passwd && ЕслиОК || ЕслиНеОК
23
Условное исполнение
if test -f /etc/lsb-release; then
cat /etc/lsb-release
elif [ -f /etc/redhat-release ];
cat /etc/redhat-release ; fi
24
Циклы
for f in *.html; do cp -p $f $f~;done
find . -name *.html -print0|xargs -I{} cp -p {} {}~
25
Запуск нескольких процессов на
одном терминале
• ДолгоРаботающаяКоманда &
• man jobs
• ^Z
• jobs
• kill %1
• fg 2
• ДолгоРаботающаяКоманда
• ^Z
• bg
• jobs
26
Unix и DEC стили опций и
разделителей
• / и  - разделитель имен каталогов в стиле Unix и
DEC
• - и / - опции в стиле Unix и DEC
• -- - разделитель опций в стиле GNU (--help)
27
Порядок опций и аргументов
• фиксированный (BSD)
ls -ltr /etc
• произвольный (GNU)
ls /etc -ltr
28
Сценарии (пакетные файлы)
• sh-bang
#!/bin/sh
#!/usr/bin/env python
• разбор параметров командной строки в sh
• Внешние инструменты:
– sed
– awk
– perl
– ...
29
Источники информации
• man
man 1 printf
• help
help test
• info
info coreutils
info sed
• perldoc / man perlfaq6
30
Домашнее задание
• Найти и заменить во всех файлах .html подстроку
КИТ на ШРИ в тэге <title></title>
• Обеспечить возможность отмены изменения
Виктор Ашик
куратор практик
vashik@yandex.ru
Спасибо

More Related Content

PDF
SECON'2017, Клементьев Михаил, Обнаружение руткитов в GNU/Linux
PDF
Эволюция php code coverage в Badoo. Доклад Ильи Агеева на LoveQA РИТ.
PDF
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
PPT
iweb01
PDF
Семь тысяч Rps, один go
PDF
Perl in da shell
PDF
2014.10.15 Сергей Бурладян, Avito.ru
PDF
"Почему язык Lua — это интересно?", Ник Заварицкий, (Mail.ru Group)
SECON'2017, Клементьев Михаил, Обнаружение руткитов в GNU/Linux
Эволюция php code coverage в Badoo. Доклад Ильи Агеева на LoveQA РИТ.
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
iweb01
Семь тысяч Rps, один go
Perl in da shell
2014.10.15 Сергей Бурладян, Avito.ru
"Почему язык Lua — это интересно?", Ник Заварицкий, (Mail.ru Group)

What's hot (20)

PPTX
С чем едят JS-дебаггур?!
PDF
Советы для начинающих разработчиков PostgreSQL
PPTX
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
PDF
Проникновение в Docker с примерами
PDF
Язык программирования GO
PDF
Docker integration into Badoo
PDF
Язык Lua — секреты производительности / Ник Заварицкий (Mail.ru)
PDF
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
PPTX
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
PDF
Docker networking
PPTX
Быстрое развёртывание шаблонов и статики в Mail.ru, Николай Кондратов
PDF
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...
PDF
Aviasales: миграция поискового движка в docker / Дмитрий Кузьменков (Aviasales)
PDF
Docker & Puppet: как их скрестить и надо ли вам это?
PDF
Про асинхронное сетевое программирование
PDF
Алексей Фомкин, Практическое применение Web Workers
PPT
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
PDF
Вячеслав Бахмутов
PDF
Быстрое прототипирование бэкенда игры с геолокацией на OpenResty, Redis и Doc...
PPT
Web весна 2013 лекция 3
С чем едят JS-дебаггур?!
Советы для начинающих разработчиков PostgreSQL
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Проникновение в Docker с примерами
Язык программирования GO
Docker integration into Badoo
Язык Lua — секреты производительности / Ник Заварицкий (Mail.ru)
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
SWIG — cоздание мультиязыковых интерфейсов для C/C++ библиотек
Docker networking
Быстрое развёртывание шаблонов и статики в Mail.ru, Николай Кондратов
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...
Aviasales: миграция поискового движка в docker / Дмитрий Кузьменков (Aviasales)
Docker & Puppet: как их скрестить и надо ли вам это?
Про асинхронное сетевое программирование
Алексей Фомкин, Практическое применение Web Workers
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Вячеслав Бахмутов
Быстрое прототипирование бэкенда игры с геолокацией на OpenResty, Redis и Doc...
Web весна 2013 лекция 3
Ad

Similar to Командная строка Unix (20)

PDF
Сергей Еланцев - Troubleshooting
PDF
08 linux-course
PPTX
Scripting languages
PDF
Caché Native Access. InterSystems Meetup 2014
PDF
"Девопс - это не только для программистов. Практические примеры из жизни одно...
PPTX
современная практика статического анализа безопасности кода веб приложений
PDF
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
PDF
PostgreSQL performance recipes
PDF
presentation_r00t_conf
PDF
Enter: legacy code
PDF
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
PDF
Romanova techforum bash
PPTX
PowerShell
PDF
Практика разработки веб-серверов на Rust
PDF
Компьютерная графика. Введение в Processing
PDF
Linux basics. Занятие 3.
PDF
Rust - GDG DevFest Siberia 2016
PDF
Юрий Василевский «Автоматизация в XCode»
PDF
Юрий Василевский "Автоматизация в XCode"
PDF
Не превращайте ваши логи в клинопись
Сергей Еланцев - Troubleshooting
08 linux-course
Scripting languages
Caché Native Access. InterSystems Meetup 2014
"Девопс - это не только для программистов. Практические примеры из жизни одно...
современная практика статического анализа безопасности кода веб приложений
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
PostgreSQL performance recipes
presentation_r00t_conf
Enter: legacy code
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Romanova techforum bash
PowerShell
Практика разработки веб-серверов на Rust
Компьютерная графика. Введение в Processing
Linux basics. Занятие 3.
Rust - GDG DevFest Siberia 2016
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский "Автоматизация в XCode"
Не превращайте ваши логи в клинопись
Ad

More from Yandex (20)

PDF
Предсказание оттока игроков из World of Tanks
PDF
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
PDF
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
PDF
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
PDF
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
PDF
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
PDF
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
PDF
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
PDF
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
PDF
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
PDF
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
PDF
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
PDF
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
PDF
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
PDF
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
PDF
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
PDF
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
PDF
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
PDF
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
PDF
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Предсказание оттока игроков из World of Tanks
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...

Командная строка Unix