- Упражнения по работе с командной строкой linux
- Основные команды для работы с файлами
- Работа с текстовыми файлами
- Лабораторная работа 1. Изучение базовых команд Linux.¶
- Основные теоретические сведения¶
- Задания к лабораторной работе¶
- Вопросы к лабораторной работе¶
- HackWare.ru
- Этичный хакинг и тестирование на проникновение, информационная безопасность
- Азы работы в командной строке Linux (часть 1)
- Командная строка Linux
- TAB для автодополнения
- ENTER для запуска выполнения команд
- CTRL + c для прерывания выполнения программы
- ↑ (курсорная клавиша вверх) для просмотра истории команд
- Азы файловой системы Linux
- Базовые команды Linux
- pwd для показа текущей рабочей директории
- mkdir для создания новых директорий
- ls для просмотра содержимого каталогов
- cd для перехода по папкам (смены текущей рабочей директории)
- cp для копирования файлов
- mv для переименования и перемещения файлов.
- rm для удаления файлов и папок
- Как копировать текст в командной строке и как вставлять в командную строку Linux
- Ошибка «команда не найдена»
- Ещё несколько полезных сочетаний клавиш для командной строки Linux
Упражнения по работе с командной строкой linux
На этой странице собраны упражнения по основным командам для манипуляции с файлами и директориями из командной строки Linux. Каждая из этих команд выполняет одно простое действие, но в дальнейшем может быть использована для составления более сложных цепочек команд.
Перед тем как начать — первый простой вопрос:
Как получить справку по команде ssh? ответ
Основные команды для работы с файлами
Как посмотреть текущую рабочую директорию? ответ
Как сменить рабочую директорию? ответ
например, cd /var/www/
Как перейти в родительскую директорию? ответ
Как вернуться в домашнюю директорию? ответ
cd — вызов команды без аргументов приводит к переходу в директорию, указанную в переменной окружения $HOME.
Как вывести список файлов в директории? ответ
ls — вывести список файлов в текущей директории
ls /var/log/ — вывести список файлов в директории /var/log/
ls -l — вывести подробный список файлов
Как посмотреть вермя последнего изменения/доступа к файлу /tmp/test.txt? ответ
ls -l /tmp/test.txt — посмотреть время последнего изменения файла
ls -lu /tmp/test.txt — посмотреть время последнего доступа к файлу
stat /tmp/test.txt — показывает 3 временные метки:
- Access — время последнего доступа к файлу (любое открытие файла для чтения: просмотр, поиск по файлу и т.п.)
- Modify — время последнего изменения файла
- Change — время изменения статуса файла (прав доступа, владельца, изменение файла).
Как создать новую директорию test? ответ
Как создать пустой файл? ответ
Существует множество способов создать пустой файл. Вот некоторые из них:
- cp empty.txt empty1.txt — скопировать любой другой пустой файл
- touch empty.txt — «потрогать» несуществующий файл
- :> empty.txt — перенаправить в файл вывод команды, которая ничего не делает
- vi empty.txt, затем сразу :wq — открыть файл и сохранить его пустым
Как создать файл /tmp/2mb.txt размером 2Mb? ответ
dd if=/dev/zero of=2mb.txt bs=1M count=2
если в предыдущей команде задать bs=1MB, то файл будет размером 2_000_000 байт.
в данном примере файл будет заполнен нулевыми байтами (0x00).
Как узнать тип файла? ответ
$ file empty.txt empty.txt: empty $ file /usr/bin/perl /usr/bin/perl: symbolic link to `perl5.16.3′ $ file /usr/bin/perl5.16.3 /usr/bin/perl5.16.3: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, stripped $ file index.html index.html: HTML document, UTF-8 Unicode text, with very long lines
Как переименовать файл? ответ
mv имя_файла новое_имя_файла
Как удалить файл/директорию? ответ
rm имя_файла — удалить файл
rmdir имя_директории или rm -r имя_директории — удалить директорию
shred -uv имя_файла — удаление файла для параноиков (без опции -u просто перезаписывает содержимое файла мусором)
Как создать символическую/жесткую ссылку на файл/директорию? ответ
ln -s имя_файла имя_ссылки — создаём символическую ссылку на файл
ln -s имя_директории имя_ссылки — создаём символическую ссылку на директорию
ln имя_файла имя_жесткой_ссылки — создаём жесткую ссылку на файл
в обычных условиях создать жесткую ссылку на директорию невозможно
Как посмотреть размер файла? ответ
ls -l имя_файла — размер файла в байтах
ls -lh имя_файла — размер файла в более привычном формате
Как как узнать размер директории? ответ
du -s имя_директории — размер места в килобайтах (блоках по 1024 байт), которое директория со всем своим содержимым занимает на диске
du -sh имя_директории — в более привычном формате
Как узнать сколько свободного места осталось на разделе диска? ответ
при помощи команды df место_монтирования_раздела или просто df
df -h выведет размеры не в килобайтах, а в более удобном формате.
df -ih выведет информацию о количестве использованных и свободных инодов
Работа с текстовыми файлами
Как сравнить два текстовых файла? ответ
diff файл_1 файл_2 или diff -a файл_1 файл_2
Как посчитать количество строк в текстовом файле? ответ
или awk ‘END
а можно открыть файл в текстовом редакторе vi имя_файла и посмотреть кол-во строк CTRL+G
Как вывести на экран отсортированные строки текстового файла? ответ
Как удалить дубли строк из файла? ответ
sort -u имя_файла
или sort имя_файла | uniq
Как дописать содержимое одного текстового файла в конец второго? ответ
cat файл_1 >> файл_2
Как разбить текстовый файл на несколько по 100 строк в каждом? ответ
split -l 100 имя_файла 100-
в результате работы этой команды в директории появятся файлы 100-aa, 100-ab… содержащие по 100 строк из исходного файла. Если исходный файл содержал число строк не кратное 100, то в последнем файле будет меньше ста строк.
Как вывести на экран первые 30 строк файла? ответ
head -n30 имя_файла
Как вывести на экран последние 30 строк файла? ответ
tail -n30 имя_файла
Как посмотреть содержимое текстового файла? ответ
cat имя_файла — вывести файл на экран целиком
more имя_файла — выводить файл на экран постранично (пробел — перейти к следующей странице, enter — на строку вниз)
less имя_файла — выводить файл на экран с возможностью перемещаться по нему вверх и вниз
vi имя_файла или nano имя_файла или emacs имя_файла — открыть файл в любимом текстовом редакторе
Как вывести на экран строки текстового файла /tmp/file.txt начинающиеся со слова ‘START’? ответ
*!G4;:%#`START/ p’ имя_файла
Как вывести на экран содержимое текстового файла без однострочных комментариев (строка комментария начинается с символа #)? ответ
Как среди нескольких файлов в директории найти те, которые содержат слово ‘test’? ответ
grep ‘test’ * — поиск во всех файлах в текущей директории
grep ‘test’ файл_1 файл_2 файл_3 — поиск только в указанных файлах
Источник
Лабораторная работа 1. Изучение базовых команд Linux.¶
Основные теоретические сведения¶
Цель: Первичное знакомство с командным интерпретатором. Изучение базовых команд операционной системы Linux.
Теоретическая часть:
Среди всех элементов операционной системы Linux самым важным, является командная строка (Терминал). Оболочка во многом определяет богатые возможности и гибкость операционной системы Linux. С помощью командной строки можно выполнять действия, которые были бы немыслимы при работе с графическим пользовательским интерфейсом. Независимо от того, KDE или GNOME, оказывается, что многие действия гораздо быстрее и эффективнее выполнить, пользуясь только командной строкой. Освоение Linux стоит начинать с изучения средств командной оболочки.
Файлы и ничего кроме файлов
Все, с чем Вы встретитесь в операционной системе Linux, — это файлы. Абсолютно все! Очевидно, что текстовый документ — это файл. Изображения, аудиоданные в формате МР3 и видеофрагменты — это несомненно файлы. Каталоги — это тоже файлы, содержащие информацию о других файлах. Дисковые устройства — это большие файлы. Сетевые соединения тоже файлы. Даже исполняемый процесс — это файл. С точки зрения операционной системы Linux файл представляет собой поток битов или байтов. Система не интересуется тем, что означает каждый байт. Это забота конкретных программ, выполняющихся в операционной системе Linux. Для операционной системы Linux и документ, и сетевое соединение всего лишь файлы. Как обрабатывать текстовый документ, знает редактор, а сетевое приложение умеет работать с сетевым соединением.
В отличие от Windows и МасOS в операционной системе Linux имена файлов чувствительны к регистру символов. В частности, Вы можете встретить в одном каталоге все три файла которые приведены ниже в качестве примера:
С точки зрения файловой операционной системы Linux — это различные имена файлов. Если вы попытаетесь создать файлы с этими же именами в Windows или МасOS, то вероятнее всего попытка увенчается провалом, и система предложит Вам выбрать другое имя для файла.
Чувствительность к регистру символов также означает, что при вводе команд они должны в точности совпадать с именами файлов, поддерживающих их. Так, например, удаляя файл с помощью команды rm, нельзя вводить RM, Rm или rM. Надо также следить за написанием имен, задаваемых в качестве параметров. Если вы захотите удалить файл «SIT.txt», а укажете имя Sit.txt, вы лишитесь совсем не того файла, с которым предполагали расстаться.
Список специальных символов которые не рекомендуется использовать в названиях файлов.
Групповые операции:
Предположим, что в одном из каталогов на вашем компьютере содержатся сто файлов с изображениями и два текстовых файла. Ваша задача удалить все файлы с изображениями за исключением двух текстовых файлов. Удалять файлы по одному — это утомительное занятие. В операционных системах Linux для автоматизации данного процесса можно применять символы групповых операций. Групповые операции задаются посредством звездочки (*), знака вопроса (?) и квадратных скобок ( [ ] ).
Пример использования групповых операций:
Групповая операция с применение » * » — отмечает любое (в том числе нулевое) количество любых символов.
Групповая операция с применение » ? «. Символ » ? » — соответствует одному произвольному символу.
Групповая операция с применение » [] «. Квадратные скобки позволяют задавать один символ из набора или символ, принадлежащий определенному диапазону.
Консольные команды:
- $ pwd — определить текущий каталог.
- $ cd [имя каталога] — осуществить переход в заданный каталог.
- $ ls [имя каталога] — просмотреть список файлов и подкаталогов.
- $ mkdir [имя каталога] — создать каталог с заданным именем.
- $ cp — скопировать файл «имя файла 1» в файл «имя файла 2», например: cp first.txt copy1.txt.
- $ mv — переименовать файл «имя файла 1» в файл «имя файла 2», например: mv first.txt orig.txt.
- $ ln «имя файла» «имя ссылки» — создать жёсткую ссылку «имя ссылки» на файл «имя файла». Пример: ln orig.txt copy2.txt.
- $ ln -s «имя файла» «имя ссылки» — создать символическую ссылку «имя ссылки» на файл «имя файла». Пример: ln -s orig.txt copy2.txt.
- $ rm — удалить файл.
- $ touch — создание файла.
- $ man — получение справочной документации о выбранной команде.
Задания к лабораторной работе¶
- Откройте терминал.
- Ознакомьтесь с возможностями команды pwd c помощью команды man:
- Определите текущий каталог, в котором вы находитесь командой pwd:
- Ознакомьтесь с возможностями команды cd c помощью команды man:
- Перейдите в корневой каталог командой cd
- Ознакомьтесь с возможностями команды ls c помощью команды man:
- Просмотрите содержимое корневого каталога командой ls:
- Сделайте копию экрана для использования в отчете по лабораторной работе .
- Вернитесь в домашний каталог, используя команду cd без параметров:
- Ознакомьтесь с возможностями команды mkdir c помощью команды man:
- Создайте каталог «test», используя команду mkdir:
- Перейдите в каталог «test», используя команду cd:
- Просмотрите содержимое каталога, используя команду ls:
- Создайте каталог «test2», используя команду mkdir:
- Ознакомьтесь с возможностями команды touch c помощью команды man:
- Создайте файл «text» в каталоге «test2» используя команду touch:
- Ознакомьтесь с возможностями команды mv c помощью команды man:
- Переименуйте файл «text» в «textSIT» используя команду mv
- Ознакомьтесь с возможностями команды cp c помощью команды man:
- Скопируйте файл «textSIT» в каталог «test2» под именем «copy.txt», используя команду cp:
- Ознакомьтесь с возможностями команды ln c помощью команды man:
- Создайте жесткую ссылку «link» на файл «copy.txt» используя команду ln:
- Создайте символическую ссылку «simlink» на файл «copy.txt» используя команду ln:
- Просмотрите результаты в текущем каталоге при помощи команды ls с аргументами la:
- Сделайте копию экрана для использования в отчете по лабораторной работе .
- Удалите созданные вами файлы и ссылки в лабораторной работе используя команду rm
- Сделайте копию экрана для использования в отчете по лабораторной работе .
Вопросы к лабораторной работе¶
- Чем отличается вывод команд ls -F и ls -la?
- С помощью какой команды и как можно переместить файл в другой каталог?
- Какие действия вы совершаете, нажимая на кнопки «стрелка вверх» и «стрелка вниз»?
- Куда вы переходите, выполнив команду cd без параметров?
- Как посмотреть, какие еще параметры можно задать команде ls?
- Что такое «жесткая ссылка»?
- Что такое «символическая ссылка»?
- Как осуществить просмотр подкаталогов и их содержимого ?
- Как осуществить вывод содержимого каталога с запятыми в качестве разделителя?
- Как осуществить просмотр скрытых файлов в домашнем каталоге?
- Как осуществить создание нового каталога и необходимых подкаталогов рекурсивно?
- Как осуществить рекурсивное копирование всех файлов из одного каталога в другой?
- Как осуществить рекурсивное копирование всех файлов и подкаталогов из одного каталога в другой?
- Как рекурсивно удалить все файлы и подкаталоги в определенном каталоге?
Составьте отчет о выполнении лабораторной работы.
Включите в него копии экрана и ответы на вопросы лабораторной работы.
© Copyright 2016, Пантюхин Игорь Сергеевич, Университет ИТМО.
Источник
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Азы работы в командной строке Linux (часть 1)
Возникло желание написать мануал о консоли, базовых командах и азах файловой системы Linux. Когда я начинал своё знакомство с Linux именно такой инструкции мне не хватало. Надеюсь, абсолютным новичкам, которых пугают консольные команды, она поможет «влиться» в число умеющих использовать командную строку Linux.
Командная строка Linux
В зависимости от вашего Linux, ярлык для открытия консоли может быть вынесен на рабочий стол,
добавлен в избранные команды,
доступен в контекстном меню при клике правой кнопкой мыши в области рабочего стола.
Либо вы для вызова эмулятора терминала вы можете воспользоваться сочетанием клавиш CTRL + ALT + t.
В приглашении командной строки отображается имя пользователя и имя хоста. Перед областью ввода команд может быть символ решётки (#) или символ доллара ($). Символ доллара означает, что вы работаете под обычным пользователем, а символ решётки – что под суперпользователем (root).
На скриншоте видно, что я открыл консоль как обычный пользователь (символ $), а затем вошёл как root (символ сменился на #).
В некоторых инструкциях перед командами пишут $ или # и новички, пытаясь выполнить команды копированием-вставкой, получают разнообразные ошибки. Если перед командной вы видите $ или #, то их не нужно печатать – они написаны только для информирования вас о том, нужны ли дополнительные привилегии для выполнения данной команды.
TAB для автодополнения
При вводе команды или имени файла, обязательно используйте клавишу TAB – она автоматически допишет для вас команду или имя файла. Если при нажатии на TAB ничего не происходит, то быстро нажмите TAB два раза, чтобы увидеть все доступные варианты. Если варианты не выводятся, то это верный признак того, что: 1) вы неправильно начали вводить имя команды, 2) программа, которую вы намереваетесь запустить, ещё не установлена.
ENTER для запуска выполнения команд
Набрав команду, нажмите ENTER и после этого она запустится.
CTRL + c для прерывания выполнения программы
Если вы хотите оборвать выполнение команды, то используйте для этого сочетание клавиш CTRL + c. Если вы ввели команду, но передумали её запускать, то вместо удаления строки, можете также нажать CTRL + c.
↑ (курсорная клавиша вверх) для просмотра истории команд
Если вы хотите повторить выполнение команды, то клавишами ↑ и ↓ вы можете пролистать историю ранее введённых команд, выбрать любую из них для повторного выполнения, отредактировать перед запуском.
Азы файловой системы Linux
Если нужно прочитать какие-то данные или сохранить информацию в файл из консоли, нужно уметь указывать путь до файла. В файловой система Linux нет такого понятия как буквы дисков. Там используется понятие «корень». Обозначается корень символом /
После корня указываются папки (в Linux они называются директориями) и файлы. Одни папки могут быть вложены в другие – точно также как в Windows. Вложенные папки и файлы разделяются символом / (точно таким же как корень).
Пример указания пути до файла:
Эта запись означает, что файл book.txt находится в папке mial, а папка mial находится в папке home.
Базовые команды Linux
pwd для показа текущей рабочей директории
Откройте консоль и введите туда
У меня вывелось:
Здесь / (первый слеш) – это корень, home – это название папки (директории), далее / (второй слеш) – отделяет название вложенной папки, mial – название второй вложенной папки.
Команда pwd показывает «текущую рабочую директорию». Текущую рабочую директорию нужно знать при указании относительных путей до файлов и папок, также некоторые программы сохраняют результаты своего выполнения в текущую директорию.
mkdir для создания новых директорий
После mkdir укажите название папки, которую вы хотите создать. Если вы укажите относительный путь, например, так:
То будет создана новая папка test1 в текущей рабочей директории, т.е. в моём случае путь до неё будет
Также можно указать абсолютный путь до папки:
ls для просмотра содержимого каталогов
Команда ls используется для вывода списка файлов и папок текущей рабочей директории:
Теперь мы можем убедиться, что папки test1 и test2 действительно были созданы.
Чтобы список выглядел лучше, можно использовать команду ls с опцией -l
После команды и опций можно указать путь до папки, содержимое которой вы хотим посмотреть. Чтобы увидеть содержимое директории /var/log нужно ввести:
Для просмотра содержимого корневой директории:
cd для перехода по папкам (смены текущей рабочей директории)
Для перехода по папкам используется команда cd после которой пишется директория, в которую вы хотите перейти. Можно указывать относительный путь или абсолютный:
Символ . (одна точка) означает текущую директорию, а символ .. (две точки) означаете родительскую директорию. Следовательно, для перехода на один уровень вверх нужно набрать
cp для копирования файлов
Если вам нужно скопировать файл в другую директорию, то используется команда cp. После неё указывается файл, который нужно скопировать и затем через пробел директория, куда вы хотите поместить файл, например:
Этой командой я скопировал файл test.sh в директорию test1. Проверим
mv для переименования и перемещения файлов.
После команды mv указывается имя файла, который вы хотите переименовать или переместить. Затем через пробел пишется директория, куда вы хотите переместить файл (тогда файл будет перемещён в неё с исходным именем), или директория и новое имя файла (тогда файл будет перемещён и переименован), или только новое имя файла (тогда файл будет переименован).
Файл test.sh из каталога test1 я переместил в каталог test2:
Файл test.sh в каталоге test2 я переименовал в test2.sh:
Файл test2.sh в каталоге test2 я переместил в каталог test1 и присвоил ему имя new.txt:
rm для удаления файлов и папок
Чтобы удалить наши тестовые директории, воспользуемся командой rm. После этой команды укажите путь до файла или папки, которые нужно удалить. Если вы собираетесь удалить директорию, то используйте также опцию -r, она означает рекурсивно удалять каталоги и их содержимое. Можно указать сразу несколько файлов и (или) каталогов:
Для понимания иерархии файловой системы рекомендуется ещё одна статья для новичков «Структура директорий Linux. Важные файлы Linux».
Как копировать текст в командной строке и как вставлять в командную строку Linux
Привычные сочетания клавиш Ctrl+c и Ctrl+v в терминале имеют другое действие. Для копирования нужно использовать Ctrl+Insert, а для вставки Shift+Insert.
Ошибка «команда не найдена»
Причиной данной ошибки могут быть:
- неправильно набрано имя команды
- программа не установлена
- данную команду может выполнять только root
Ещё несколько полезных сочетаний клавиш для командной строки Linux
- Ctrl+l для очистки экрана
- Ctrl+a для перехода в начало введённой команды
- Ctrl+e для перехода в конец введённой команды
- Ctrl+u для удаления всего, что стоит до курсора
- Ctrl+k для удаления всего, что стоит после курсора
- Ctrl+d для завершения текущего сеанса, закрытия консоли
Одна из самых часто используемых:
- Ctrl+R: Поиск по ранее запущенным командам, начните писать искомую и вам будут предлагаться самые подходящие варианты. Для запуска нажмите ENTER.
Имеется функционал копи-пастинга:
- Ctrl+W: Вырезать слово перед курсором, добавить его в буфер обмена.
- Ctrl+K: Вырезать часть строки после курсора, добавить её в буфер обмена.
- Ctrl+U: Вырезать часть строки перед курсором, добавить её в буфер обмена.
- Ctrl+Y: Вставить из буфера обмена последнее, что вы вырезали.
Источник