|
лабораторная по сетям. ИСТ-012_Голубев_МС_ЛР1. Доценту кафедры икд громову В. В
Доценту кафедры
ИКД Громову В.В. Лабораторная работа №1 Я, Голубев Михаил Сергеевич, в ходе лабораторной работы №1 проанализировал разницу в командах терминала между 3 системами linux, Mac OS и Windows. Основная задача состоит в том, чтоб познакомиться с Linux и научиться работать в терминале, рассмотреть перемещение по каталогам, файлам работа с ними.
Если смотреть на актуальность, то можно смело отметить, что Linux является Open Source (открытым программным обеспечением) в следствии чего, это бесплатный, а самое важное защищенный продукт, что я имею ввиду: Open Source дает то, что никакие ваши данные не будут украдены ни одной внутренней утилитой, если конечно в мне принесете ее из вне. Основная часть:
Командная строка - это способ взаимодействия с компьютером. Она может использоваться для запуска программ (например на языке PHP) и для настройки некоторых программ. Рассмотрим терминал в каждой системе, для примера посмотрим какие файлы есть в текущем каталоге, далее разберем более подробно. Mac OS : Linux: Windows: Клавиши, работающие во всех операционных системах:
↑,↓ — стрелки вверх и вниз в командной строке позволяют смотреть предыдущие введенные команды, чтобы 2 раза не набирать. В Windows при закрытии окошка консоли вся история теряется, в других ОС — сохраняется. [tab] — автодополняет имена файлов и команды. Если в текущем каталоге есть файл file.txt, ты наберешь fi и нажмешь [tab] то он автодополнит имя файла (или предложит варианты, если таких файлов несколько). [ctrl+c] — прерывает выполнение команды, например, если она долго тупит Важно: клавиша Esc, как и многие привычные клавиши, **не работает** в командной строке. Клавиши Ctrl + C, V, X обычно не работают как «копировать/вырезать/вставить» (иногда для вставки можно использовать Shift + Ins). Клавиша Ctrl + Q не работает как «выход».
Особенности линукса и мака:
В линуксе и маке, [ctrl+l] очищает экран, [ctrl+k] и [ctrl+u] удаляют все перед или после курсора, [ctrl+w] удаляет слово перед курсором, [ctrl+r] делает поиск по истории команд (для отмены поиска нажми [ctrl+c], escape в командной строке не работает, для завершения поиска нажми стрелку вправо/влево), [ctrl+d] завершает работу и закрывает консоль. Еще в линуксе и маке иногда не работают Home и End, используй [ctrl+a], чтобы перейти в начало строки и [ctrl+e], чтобы в конец. [alt + b] \(back) и [alt + f] \(forward) двигают курсор на 1 слово назад/вперед. В линуксовой и маковской файловой системе нет букв дисков. Пути к файлам там начинаются из единого корня, и используют прямой слеш (например `/home/ivan/file.txt`), а дополнительные диски (например USB-носители) монтируются в одну из папок внутри файловой системы (например `/mnt/flash`). В линуксе регистр букв в имени файла имеет значение.
Особенности Windows
По умолчанию в Windows в консоли очень маленький и нечитаемый шрифт. Пути к файлу в Windows используют бекслеш (например `d:\tmp\file.txt`), а регистр букв в них не имеет значения.
Буфер обмена
В командной строке обычно не работает ctrl+v,c,x для вставки, копирования и вырезания текста. Иногда (зависит от настроек системы) вставить текст можно через [shift+ins], иногда правой кнопкой мыши. Скопировать текст обычно можно, выделив мышью (в Windows надо разрешить выделение текста, нажав правой кнопкой на заголовок, зайдя в настройки окна, и также нажать Enter после выделения).
Текущий каталог: В командной строке результат выполнения команд часто зависит от того, в каком каталоге и на каком диске вы находитесь. Также, когда вы указываете в команде относительное имя файла (без полного пути и имени диска), оно ищется в текущем каталоге. Какой каталог текущий, в Windows написано в подсказке, а в linux можно узнать командой `pwd` (print working directory)
Чтобы перейти в другой каталог, в линуксе используют команду `cd`: cd / — перейти в корневой каталог (в линукс нет букв дисков, и корневой каталог один на всю систему)
cd /etc/apache — перейти в каталог /etc/apache
cd files — переходит в каталог files внутри текущего
cd .. — переходит в родительский каталог
cd ../.. — переходит на 2 уровня выше
cd — перейти в свой домашний каталог (/home/anon например)
cd /test — перейти в /home/anon/test
В Windows, сначала надо перейти на нужный диск командой `c:`, `d:`, `e:` и так далее. Потом использовать `cd` или `chdir`: d: - перейти на диск d:
cd \ — перейти в корневой каталог
cd \windows\system32
cd ..
cd ..\.. Обратите внимание, windows и linux используют разные виды слешей. Обратите внимание, `..` обозначает «родительский каталог». Обратите внимание, только в линукс и мак `` обозначает «домашний каталог» (это `/home/username` или `/Users/username`). `.` (одна точка) обозначает текущий каталог и `cd .` никуда не перейдет. `/` (линукс) или `\` (Windows) обозначает корневой каталог.
В Windows 7 и выше можно открыть окно консоли с заданной текущей папкой. Есть 2 способа, как это сделать: 1. зажав shift, щелкнуть правой кнопкой по пустому месту в открытом окне папки, из появившегося меню выбрать пункт «command line here» («открыть командную строку»)
2. поставить курсор в адресную строку в окне папки, ввести cmd и нажать Enter Если вам часто в windows приходится открывать консоль в какой-то папке (например папке с твоими программами), ты можешь создать на рабочем столе ярлык (правой кнопкой на рабочем столе → создать ярлык → ввести cmd, нажать "Далее" → ввести название, нажать "Готово" → зайти в свойства ярлыка → указать рабочую папку, нажать "ОК"). При запуске ярлыка будет открываться командная строка с выбранной текущей папкой. В линуксе/маке, чтобы быстро перейти в нужную папку, можно набрать cd и перетащить в консоль иконку папки - должен вставиться полный путь к ней. Не гарантирую что это работает во всех дистрибутивах линукса, на маке работает. Очистка экрана В linux — команда `clear` или клавиша [ctrl+L], в windows — команда `cls` (clear screen). Список файлов
Посмотреть, какие файлы есть в текущем каталоге, можно командой `dir` в Windows и командой `ls` в линуксе (`ls -a` — показывает все файлы, включая скрытые, `ls -l` — показывает не только имена, но и размер, дату создания файла, права на него). Посмотреть права на файл в Линукс можно либо командой `ls -l`, либо `stat file.txt`
Команды и оболочка Оболочка — это cmd.exe в Windows и bash в линукс, это та программа, которая собственно мигает курсором и выполняет выши команды. Вы набираете команды, а она их выполняет. Команда обычно состоит из имени команды, и, иногда, дополнительных параметров, отделенных пробелом, вроде: ls — показать список файлов в линукс
ls -l — показать файлы с подробностями
dir — показать список файлов в windows с подробностями
dir /b — показать только имена файлов, без подробностей Подсказка и получение помощи Почти у любой команды есть подсказки. Чтобы их увидеть, добавь к имени команды параметр (`--help` или `/?`): В линукс: `ls --help` — выведет справку по команде ls В линукс: `man bash` — выведет подробную длинную справку по команде bash (для выхода нажмите q,
для прокрутки используйте стрелки и PgUp/PgDn). Также, `man bash` можно набирать в поисковой системе (Гугл, Яндекс) - скорее всего она покажет ссылку на тот же самый мануал. Также, для Линукса есть прекрасный сайт https://explainshell.com/ , который умеет для введенной команды находить мануал по ней и выводить объяснения каждого аргумента. Он полезен, когда ты видишь где-то в статье команду и хочешь понять, что делает каждая опция в ней. [Пример объяснения для команды ls -la /tmp](https://explainshell.com/explain?cmd=ls+-la+%2Ftmp). В Хроме и ФФ также можно нажать правой кнопкой мыши в поле поиска, выбрать там пункт вроде "Добавить как поисковую систему", задать для него ключевое слово (например, exp) и тогда запрос можно будет писать прямо в адресной строке браузера как `exp ls -la /tmp`. В Windows: `dir /?` — выведет справку по команде dir
В Windows: `help` выведет подсказку по основным командам
В Mac OS и Linux подсказку можно получить по команде «man man» рассмотрим на примере на примере Mac OS
Виды команд Команды бывают внутренние (это маленький список команд, встроенных в оболочку). Встроенные команды — это, например, `cd` в линукс или `exit` в Windows. Их мало. Внешние команды — их большинство — это фактически программы, лежащие на диске. Оболочка ищет их не по всему диску, а только в заранее заданных папках. Список папок перечислен в специальной переменной PATH.
Просмотреть эту переменную можно так: В линуксе: `echo $PATH` В windows: `echo %PATH%` В linux PATH — это папки /bin, /usr/bin, /usr/local/bin, /sbin, /usr/sbin, именно в них в Линуксе хранятся почти все программы. В текущем каталоге программы не ищутся, если это не указать явно, набрав `./command`. В Windows PATH — это всякие системные папки вроде c:\windows, c:\windows\system32 и так далее + текущий каталог, в котором вы находитесь. Заметь, что папки вроде c:\program files\autocad в PATH не добавлены и в Windows таким образом, из командной строки обычные программы, установленные в Program Files, не запустить. Только то, что положено в системные папки. Таким образом: если вы под линуксом, и ты набираешь команду `php`, то скорее всего файл php лежит в одной из *bin папок и эта команда запустит php. Если вы под Windows установил php допустим в c:\php, и не прописал этот путь в PATH, то набрав `php`, оболочка не найдет файл php.exe и ничего не запустит. И вы скажете «что за кривой мануал, ничего не работает». Что же делать? Есть 2 варианта: 1. добавить папку с php в PATH через мой компьютер — свойства и перезалогиниться в систему
2. писать вместо `php` полный путь `c:\php\php.exe` Продолжаем. Допустим, вы хотите запустить в командной строке файл my.php , который находится в текущем каталоге: Линукс: php my.php
Windows: c:\php\php.exe my.php Допустим, вы хотите запустить php-файл не из текущего каталога. Тогда надо написать путь к нему: Линукс: php /some/dir/my.php
Windows: c:\php\php.exe d:\files\my.php В общем, проще запускать файлы из текущего каталога, чем мучаться с путями.
Больше команд — linux Попрактиковаться в линукс в командной строке можно на таких командах: - Создать текстовый файл: `cat > file.txt` [enter] ввести текст [enter][ctrl+d] — и файл создан
- Создать текстовый файл содержащий данную строку: `echo Hello World > file.txt`
- Просмотреть текстовый файл: `cat file.txt`
- Просмотреть огромный текстовый файл, который не влезает на экран: `cat file.txt | less` или `less file.txt`. В просмотрщике работают стрелки и q для выхода (escape не работает).
- Удалить файл: `rm file.txt`
- Скопировать файл: `cp file.txt copy.txt`
- Переместить/переименовать файл: `mv file.txt copy.txt`
- Скопировать в другую папку: `cp file.txt /some/other/directory`
- Запустить команду и сохранить ее вывод в файл, не выводя на экран: `ls -la > file.txt` (эта команда выведет список файлов, но не на экран, а сохранит в файл. Бывает иногда полезно).
- Запустить команду, вывести результат на экран и сохранить в файл: `ls | tee -a file.txt`
- Вывести файл, но не весь, а только первые 10 строк: `cat file.txt | head -10`
- Вывести последние 10 строк файла: `cat file.txt | tail -10`
- Следить за обновлением файлов и выводить в консоль новые строки, которые в них дописывают: `tail -f file1.txt file2.txt` (удобно так мониторить логи)
- Вывести только строки файла, содержащие слово «dog»: `cat file.txt | grep -i dog` (`-i` значит игнорировать регистр букв)
- Найти файлы, в имени которых есть «dog», в каталоге /tmp: `find /tmp -iname '*dog*'`
- Узнать текущее время: `date`
- Создать папку: `mkdir folder`
- Удалить папку: `rm -r folder`
- Померять, сколько времени выполнялась команда: `time [команда]`
- Узнать свой id пользователя: `id`
- Показать список запущенных процессов: `ps -lax`
- Показать что-то вроде диспетчера задач: `top` (для выхода q)
- Запустить редактор, из которого сложно выйти, так как никакие привычные кнопки не работают: `vi` (попробуйте `:q!` если все-таки в него попали)
- Запустить нормальный редактор файла: `nano file.txt` Подробнее о работе команд можно узнать с помощью параметра `--help`, дописанного после команды.
Больше команд - Windows Попрактиковаться в командной строке в Windows можно так: - `help` — выводит список полезных команд
- `dir` — выводит файлы в каталоге
- Создать текстовый файл: `copy con file.txt`[enter]ввести текст[enter][ctrl+z][enter] — файл создан
- Просмотреть текстовый файл: `type file.txt`
- Просмотреть огромный текстовый файл: `type file.txt | more` (enter — прокрутка, q — выход)
- Удалить файл: `del file.txt`
- Скопировать файл: `copy /b file.txt copy.txt`
- Переименовать файл: `ren file.txt copy.txt`
- Запустить команду и сохранить вывод в файл: `dir /? > file.txt`
- Создать текстовый файл с одной строкой текста: `echo lalala lololo > file.txt`
- Дописать строчку в конец файла: `echo boom >> file.txt`
- Создать папку: `mkdir folder`
- Удалить папку: `rmdir folder`
- Узнать текущее время: `time` и `date` (ctrl+с для выхода) Подробнее о работе команд можно узнать с помощью параметра `/?`, дописанного после команды.
Команды для работы с сетью Интернет В линукс: показать информацию о настройке сети: `ifconfig` (или `/sbin/ifconfig` если у тебя в PATH нет /sbin) В Windows показать информацию о сети: `ipconfig` Пропинговать (проверить связь) с сервером: `ping google.com` Узнать IP по имени домена: `nslookup yandex.ru` Показать список открытых с компьютера сетевых соединений: `netstat -an` (в подсказке по команде указаны также параметры, с помощью которых, например, можно вывести какая программа установила это соединение). Проверить путь до какого-то сервера или узла сети: - в Windows: `tracert google.com`
- в linux: `traceroute google.com` (не работает? пишите `/usr/sbin/traceroute` или пропиши уже sbin в PATH) Если резюмировать все выше сказанное и добавить некоторые команды которые я не освещал, то можно составить таблицу с командами Windows и linux, Mac OS
Описание
| Команда CMD Windows
| Команда Linux
| Команда
Mac OS
| Вызов справочной системы
| HELP
| apropos, man, whatis
| apropos, man, whatis
| Вызов командного интерпретатора (оболочки)
| CMD
| bash, csh, sh
| bash, csh, sh
| Очистка экрана
| CLS
| clear, reset
| clear, reset
| Вывод сообщения на экран
| ECHO
| echo
| echo
| Пауза в работе
| PAUSE
| sleep
| sleep
| Настройка параметров терминала
| MODE
| stty
| stty
| Установка значений переменных окружения (указание путей к каталогам)
| PATH, SET, SETx
| env, set
| env, set
| Изменение системной даты
| DATE
| date
| date
| Изменение системного времени
| TIME
| date
| date
| Выход из командной строки
| EXIT
| exit
| exit
| Работа с файлами и каталогами
|
|
|
| Отображение списка файлов и каталогов
| DIR
| dir, ls
| dir, ls
| Создание каталога
| MKDIR
| mkdir
| mkdir
| Удаление каталога
| RMDIR
| rmdir
| rmdir
| Удаление файла
| DEL, ERASE
| rm
| rm
| Переход в другой каталог
| CD
| cd
| cd
| Копирование файлов или каталогов
| COPY, XCOPY
| cp
| cp
| Переименование файла
| REN, RENAME
| mv
| mv
| Перемещение файлов
| MOVE
| mv
| mv
| Поиск файла
| WHERE
| find, locate
| find, locate
| Вывод на экран содержимого файла
| TYPE, MORE
| cat, less, more
| cat, less, more
| Сравнение содержимого двух файлов
| COMP, FC
| cmp, diff, diff3, sdiff
| cmp, diff, diff3, sdiff
| Сортировка строк в текстовом файле
| SORT
| sort
| sort
| Изменение атрибутов файла
| ATTRIB
| chmod
| chmod
| Создание символьной ссылки на файл или каталог
| MKLINK
| ln
| ln
| Резервное копирование данных
| ROBOCOPY
| cpio, tar
| cpio, tar
| Вызов текстового редактора
| EDIT (нет в Windows Vista и старше)
| vi
| vi
| Работа с томами и разделами
|
|
|
| Создание разделов
| FDISK
| fdisk
| fdisk
| Управление разделами
| DISKPART
| parted, partx
| parted, partx
| Форматирование диска, создание файловой системы
| DISKPART, FORMAT
| mformat, mkfs
| mformat, mkfs
| Проверка файловой системы
| CHKDSK
| fsck
| fsck
| Управление системой.
|
|
|
| Отобразить список процессов
| TASKLIST, QUERY PROCESS
| ps
| ps
| Уничтожить процесс
| TASKKILL
| kill, killall
| kill, killall
| Перезагрузить компьютер
| SHUTDOWN
| shutdown, reboot
| shutdown, reboot
| Выключить компьютер
| SHUTDOWN
| shutdown, halt
| shutdown, halt
| Выполнить команду от имени другого пользователя
| RUNAS
| sudo
| sudo
| Отобразить имя компьютера
| HOSTNAME
| hostname
| hostname
| Пользователи и группы.
|
|
|
| Создать нового пользователя
| NET USER
| useradd
| Non
| Изменить параметры пользователя
| NET USER
| usermod
| dscl
| Изменить пароль пользователя
| NET USER
| passwd
| dscl
| Удалить пользователя
| NET USER
| userdel
| dscl
| Создать новую группу пользователей
| NET GROUP
| groupadd
| dscl
| Изменить параметры группы
| NET GROUP
| groupmod
| dscl
| Удалить группу
| NET GROUP
| groupdel
| dscl
| Отобразить список активных пользователей
| QUERY USER
| users
| dscl
| Работа с сетью.
|
|
|
| Работа с таблицей соответствия IP и MAC адресов ARP
| arp
| arp
| arp
| Конфигурация протокола IP
| IPCONFIG, NETSH
| ifconfig, ip
| Networksetup
| Работа с таблицей маршрутизации
| ROUTE
| route
| route
| Опрос узла по протоколу ICMP
| PING
| ping
| ping
| Клиент Telnet
| TELNET
| telnet
| telnet
| Работа с DNS-сервером в интерактивном режиме
| NSLOOKUP
| dig, nslookup
| dig, nslookup
| Трассировка маршрута к удаленному узлу
| TRACERT
| traceroute
| traceroute
| Отобразить статистику сетевых соединений
| NETSTAT
| netstat
| netstat
|
Стоит отметить Mac OS X — это ОС Unix, и ее командная строка на 99,9% такая же, как и в любом дистрибутиве Linux . bash это ваша оболочка по умолчанию, и вы можете скомпилировать все те же программы и утилиты.
Bash — это bash, поэтому оболочка и ее встроенные компоненты совпадают. Но учтите, что поведение некоторых инструментов, таких как ps или head может отличаться в деталях, может привести к сбою ваших сценариев.
Во время лабораторной работы была проделана проделана работа по сравнению команд в терминалах Windows, Linux и Mac OS. Были получены ценные знания в работе с терминалом. В ходе работы были пройдены основные параметры по работе с каталогами и файлами, а так же затронуты настройки сети и пользователей.
Студент группы ИСТ-012 Голубев М.С.
|
|
|