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

31

Upload: yandex

Post on 22-Jun-2015

2.828 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Командная строка Unix
Page 2: Командная строка Unix
Page 3: Командная строка Unix

Виктор Ашик

куратор КИТ

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

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

4

Командная строка жива

CLI - универсальный интерфейс:• параметры ядра ОС• режим диалога с пользователем• интерфейс взаимодействия между процессами

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

5

Бывают cli-приложения:

• debug• edlin• fdisk• diskpart• ed• nslookup• virsh

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

6

Интерпретаторы команд (оболочки)

• command.com• cmd.exe• sh (bash, ash, pdksh, zsh, busybox...)

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

7

Интерфейсы устройств

• сетевое оборудование (Cisco IOS, Junos, коммутаторы)

• встроенные системы (busybox)• загрузчики (GRUB)

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

8

Языки программирования в режиме REPL

Read–eval–print loop:

BASIC, Clojure, F#, Haskell, Perl, PHP, Python, Ruby, Scala, Tcl, Javascript

• Пример: python и ipython

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

9

Бывает встроена в приложения

• видеоигры (Quake) (tilda)• инженерные (Matlab/Octave, Autocad)

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

10

Термины

• System Console– Virtual Console– Command-Line Interface– Win32 console

• Terminal– Terminal Emulator

• TTY (teletype)

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

11

Секреты управления с клавиатуры

• У каждой реализации свои особенности• Часто работают ^a ^e ^w ^s ^q• В Windows: Home/End/Esc/F3/F7/^C• Надо учить постепенно

– man readline

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

12

Команды

• ЧтоДелать -о -опции --опция-с-аргументом КтоВиноват -о КтоВиноват Аргументы

• опции могут быть чувствительны к регистру

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

13

Команды

• Встроенные команды• Исполняемые файлы (внешние)

– PATH

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

14

Текущий каталог

• cd• pwd• pushd / popd

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

15

Пути к файлам

• абсолютные• относительные

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

16

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

• Путь поиска PATH• Формат приглашения PS1/PROMPT• Редактор EDITOR/VISUAL

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

17

Шаблоны имен файлов

• ?• *• *.*

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

18

Регулярные выражения

• .• .*

grep/findstr

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

19

Конвейер

• ЧтоДелать -опции Аргументы | ЧтоДелать -опции Аргументы | ЧтоДелать

• Обычно по конвейеру передается текст• Иногда - объекты (PowerShell)

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

20

Перенаправление

• ЧтоДелать > ФайлКудаПисатьВывод• ЧтоДелать < ФайлОткудаЧитать• ЧтоДелать 2> ФайлКудаПисатьОшибки• ЧтоДелать > ФайлКудаПисатьВсё 2>&1• ЧтоДелать &> ФайлКудаПисатьВсё

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

21

Код возврата

• exit 0 # OK• exit 1 # not OK• exit 2 # not OK• ...

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

22

Условное исполнение

• true && ТогдаВыполняем• false || ТогдаВыполняем• test -f /etc/passwd && ЕслиОК || ЕслиНеОК

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

23

Условное исполнение

if test -f /etc/lsb-release; thencat /etc/lsb-releaseelif [ -f /etc/redhat-release ];

cat /etc/redhat-release ; fi

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

24

Циклы

for f in *.html; do cp -p $f $f~;donefind . -name *.html -print0|xargs -I{} cp -p {} {}~

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

25

Запуск нескольких процессов на одном терминале

• ДолгоРаботающаяКоманда &• man jobs• ^Z• jobs• kill %1• fg 2• ДолгоРаботающаяКоманда• ^Z• bg• jobs

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

26

Unix и DEC стили опций и разделителей

• / и \ - разделитель имен каталогов в стиле Unix и DEC

• - и / - опции в стиле Unix и DEC• -- - разделитель опций в стиле GNU (--help)

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

27

Порядок опций и аргументов

• фиксированный (BSD)ls -ltr /etc

• произвольный (GNU)ls /etc -ltr

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

28

Сценарии (пакетные файлы)

• sh-bang#!/bin/sh#!/usr/bin/env python

• разбор параметров командной строки в sh• Внешние инструменты:

– sed– awk– perl– ...

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

29

Источники информации

• manman 1 printf

• helphelp test

• infoinfo coreutilsinfo sed

• perldoc / man perlfaq6

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

30

Домашнее задание

• Найти и заменить во всех файлах .html подстроку КИТ на ШРИ в тэге <title></title>

• Обеспечить возможность отмены изменения

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

Виктор Ашик

куратор практик

[email protected]

Спасибо