|
Лаб_11-15. Практическая работа 11. Работа с файловой системой в оc просмотр и упорядочение файлов и папок
Практическая работа № 13. Работа в терминале 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 для автоматизации данного процесса можно применять символы групповых операций. Групповые операции задаются посредством звездочки (*), знака вопроса (?) и квадратных скобок ( [ ] ).
Пример использования групповых операций:
Групповая операция с применение » * » - отмечает любое (в том числе нулевое) количество любых символов.
rm sit1*.* Удаляться файлы : sit1.txt, sit1.jpg, sit11.jpg, sit123123.txt
rm sit*.jpg Удаляться файлы : sit1.jpg, sit11.jpg
rm *txt Удаляться файлы : sit1.txt, sit123123.txt
rm sit* Удаляться файлы : sit1.txt, sit1.jpg, sit11.jpg, sit123123.txt
rm * Удалятся все файлы в каталоге
Групповая операция с применение » ? «. Символ » ? » - соответствует одному произвольному символу.
rm sit1?.jpg Удалится файл : sit11.jpg, но не sit1.txt, sit1.jpg, sit123123.txt
rm sit?.jpg Удалится файл : sit1.jpg, но не sit1.txt, sit11.jpg, sit123123.txt
rm sit?.* Удаляться файлы : sit1.txt, sit1.jpg, но не sit11.jpg, sit123123.txt
Групповая операция с применение » [] «. Квадратные скобки позволяют задавать один символ из набора или символ, принадлежащий определенному диапазону.
rm sit[0-1].txt Удалится файл : sit1.txt, но не sit1.jpg, sit11.jpg, sit123123.txt
rm sit1[0-2].jpg Удалится файл : sit11.jpg, но не sit1.txt, sit1.jpg, sit123123.txt
Консольные команды:
$ pwd - определить текущий каталог. $ cd [имя каталога] — осуществить переход в заданный каталог. $ ls [имя каталога] - просмотреть список файлов и подкаталогов. $ mkdir [имя каталога] — создать каталог с заданным именем. $ cp <имя файла 1> <имя файла 2> - скопировать файл «имя файла 1» в файл «имя файла 2», например: cp first.txt copy1.txt. $ mv <имя файла 1> <имя файла 2> - переименовать файл «имя файла 1» в файл «имя файла 2», например: mv first.txt orig.txt. $ ln «имя файла» «имя ссылки» - создать жёсткую ссылку «имя ссылки» на файл «имя файла». Пример: ln orig.txt copy2.txt. $ ln -s «имя файла» «имя ссылки» - создать символическую ссылку «имя ссылки» на файл «имя файла». Пример: ln -s orig.txt copy2.txt. $ rm <имя файла> - удалить файл. $ touch <имя файла> - создание файла. $ man <название команды> - получение справочной документации о выбранной команде.
Вопросы к практической работе
Чем отличается вывод команд ls -F и ls -la?
Команда ls выводит список файлов и каталогов в текущем (без указания пути) либо в указанном каталоге.
Опция -F добавляет к именам каталогов символ / (может добавлять и некоторые другие спецсимволы, которые не используются в пространстве имён файлов. (Какие именно и почему, что это вообще обозначает - гуглить!) таким образом:
/Test/dir1$ ls
dir dir2 file.sh tmp
/Test/dir1$ ls -F
dir/ dir2/ file.sh tmp/
Опция -li в дополнение к простому перечислению имён файлов и каталогов выдаёт информацию и об инодах (метаданных) файлов и каталогов, в том числе и перечисление прав на каждый файл и каталог:
/Test/dir1$ ls -li
13205510 drwxr-xr-x 2 neo neo 4096 мар 17 2017 dir
13205511 drwxr-xr-x 3 neo neo 4096 мар 18 2017 dir2
13109842 -rw-r--r-- 1 neo neo 28 мар 17 2017 file.sh
13205513 drwxr-xr-x 2 neo neo 4096 мар 19 2017 tmp
С помощью какой команды и как можно переместить файл в другой каталог?
Для перемещения и переименования файлов и каталогов используется команда mv. Название этой команды является сокращением слова move. Переименовать файл можно с помощью команды: mv имя_файла новое_имя. Для того чтобы переместить файл, используется команда: mv имя_файла путь/ Копирование. Для копирования используется команда cp. Название этой команды является сокращением слова copy.
Какие действия вы совершаете, нажимая на кнопки «стрелка вверх» и «стрелка вниз»?
Перемещение указателя/фокуса, листание многостраничного текста и много всего прочего. Конкретое действие зависит от контекста.
Куда вы переходите, выполнив команду cd без параметров?
В домашний каталог пользователя.
Как посмотреть, какие еще параметры можно задать команде ls?
С помощью команды man. Данная команда в качестве аргумента принимает имя любой имеющейся в системе на данный момент утилиты/команды и выдаёт в ответ справочную страницу по указанной команде/утилите с полным списком всех возможных опций и ключей для неё.
Что такое «жесткая ссылка»?
Жёсткая ссылка по сути - второе, третье, стопицотое имя для указанного файла. Это имя может быть перемещено в любой каталог. На данное имя файла будут распространяться те же самые права, как и на первое и переход по данному имени будет открывать тот же самый файл, как и первое его имя. У файла может быть неограниченное количество имён.
Что такое «символическая ссылка»?
Символические ссылки - особый тип файлов, представляющие собой указатели на файлы. Ближайший аналог (хотя и не совсем корректный!) - ярлыки на файлы в виндовсах.
Если для жёстких ссылок верно то, что удаление всех жёстких ссылок на файл является удалением файла, то для символических ссылок это неверно: у файла может не быть вовсе символических ссылок и он будет существовать.
Как осуществить просмотр подкаталогов и их содержимого ?
Use ls -R, Luke!
Как осуществить вывод содержимого каталога с запятыми в качестве разделителя?
Use ls -m, Luke!
Как осуществить просмотр скрытых файлов в домашнем каталоге?
Use ls -la, Luke!
Как осуществить создание нового каталога и необходимых подкаталогов рекурсивно?
Для рекурсивного создания каталогов существует опция -p для команды mkdir. То есть, если вам в текущем каталоге нужно создать подкаталог my_Catalog то в текущем каталоге следует выполнить команду mkdir my_Catalog и в текущем каталоге появится подкаталог my_Catalog с дефолтными правами 755 и вы будете его владельцем. Если же вам необходимо создать в текущем каталоге подкаталог с подкаталогом определённой вложенности, то следует использовать mkdir -p newDir/subDir1/subDir2/subDirN/targetDir и у вас в текущем каталоге появится указанный вами путь подкаталогов с дефолтными правами 755 и вы будете владельцем всех их.
Как осуществить рекурсивное копирование всех файлов из одного каталога в другой?
12,13. Use cp -R FromDirectory/ ToDirectory/, Luke! Для только файлов можно создать конструкцию с $(find . -type f) в качестве первого аргумента cp.
Как осуществить рекурсивное копирование всех файлов и подкаталогов из одного каталога в другой?
Как рекурсивно удалить все файлы и подкаталоги в определенном каталоге?
Для удаления каталогов вне зависимости от их заполненности существует rm -rf DirectoryName.
|
|
|