Сделайте так чтобы окна передвигались вместе со всем их содержимым ubuntu

Обновлено: 06.07.2024

2. Поменяйте Фон, сначала на одноцветный, а затем вставьте фоновое изображение.

3. Установите хранитель экрана, на своё усмотрение, и режим ожидания равный минуте.

4. Сделайте так, чтобы окна передвигались вместе со всем их содержимым.

5. Задайте звуковой щелчок, подтверждающий нажатие каждой клавиши.

6. Измените ширину линейки панели.

7. Запустите диспетчер приложений. И запустите программу текстового процессора KWord.

8. В другом рабочем столе откройте программу растрового редактора Paint.

9. Откройте KWord и наберите следующий текст:

The Quick Brown Fox Jumps Over The Lazy Dog, используя два разных стиля по вашему выбору. Сохраните этот файл в домашнем каталоге пользователя, закройте KWord.

10. Откройте ваш домашний каталог пользователя Konqueror'ом, создайте в нем каталог, скопируйте ваш текстовой файл в этот каталог.

11. Ознакомьтесь с содержанием домашнего каталога, скопируйте с дискеты файлы.

12. Получите справку об интересующем вас объекте.

13. Создайте любой рисунок с помощью Paint, чтобы в нем были ВСЕ фигуры (1. эллипс, 2. окружность, 3. линия, 4. прямоугольник, 5. круг) хотя бы по одному разу и присутствовало не менее четырех цветов.

14. Сохраните файл с рисунком в домашнем каталоге, закройте Paint.

15. Скопируйте файл с рисунком в тот же созданный вами каталог.

16. Измените атрибуты доступа к созданным файлам.

17. Покажите преподавателю ваши файлы, затем удалите их.

ЛАБОРАТОРНАЯ РАБОТА №6

Файловый менеджер Konqueror Web Browser

Цель работы

Целью работы является получение основных навыков работы с файловом менеджером Konqueror.

Общие теоретические сведения

Будучи программой для просмотра и управления файловыми системами, Konqueror также является клиентом протокола FTP, броузером World Wide Web, работает с архивными файлами, изображениями и может делать многое другое. Диспетчер файлов Konqueror является универсальным и позволяет просматривать не только файлы и содержимое каталогов, но и отображать многие другие объекты. Реализовать такие широкие возможности удалось за счет использования в Konqueror универсальных указателей ресурсов (URL) для всех просматриваемых путей, а также за счет использования подключаемых модулей для отображения информации самого разного типа.

В Unix каждому файлу соответствует набор прав доступа, представленный в виде 9-ти битов режима. Он определяет, какие пользователи имеют право читать файл, записывать в него данные или выполнять его. Вместе с другими тремя битами, влияющими на запуск исполняемых файлов, этот набор образует код режима доступа к файлу. Двенадцать битов режима хранятся в 16-битовом поле индексного дескриптора вместе с 4-мя дополнительными битами, определяющими тип файла. Последние 4 бита устанавливаются при создании файлов и не подлежат изменению. Биты режима (далее права) могут изменяться либо владельцем файла, либо суперпользователем с помощью команды chmod.

Существует три пути управления доступом к файлу или каталогу. Было определено, что каждый файл должен иметь владельца (owner), группового владельца (group owner), а также может потребоваться доступ для всех остальных пользователей (everyone). Эти названия обычно приводятся как пользователь/группа/остальные (user/group/others) или коротко ugo. Реализация управления доступом к файлам и каталогам в Unix позволяет или запрещает доступ по трем флагам: флаг чтения (Read), флаг записи (Write), флаг выполнения (eXecute). Они представляются следующим образом:

Флаг типа (flag) может быть одним из следующих:

Флаг Описание
- Отсутствие флага
l - лат. «л» Символическая ссылка (symbolic link)
d Директория (directory)
b Блочное устройство (block device)
c Символьное устройство (character device)
p Канал, устройство fifo (fifo device)
s Unix сокет (unix domain socket)

Права доступа

Посмотреть права доступа на объекты можно командой ls c ключем -l («л»). Также можно добавить ключ -a, для того,чтобы были отображены скрытые объекты:

Для назначения прав используются три группы флагов, первая определяет права для владельца, вторая - права для основной группы пользователя, третья - для всех остальных пользователей в системе.

Для файлов: r - право на чтение из файла; w - разрешает запись в файл (в частности перезапись или изменение); x - позволяет исполнить файл.

Для каталогов, флаги r w x имеют несколько отличный смысл: r - позволяет читать только имена файлов в каталоге; x - позволяет иметь доступ к самим файлам и их атрибутам (но не именам); w имеет смысл только в сочетании с x, и позволяет (в дополнение к x) манипулировать с файлами в каталоге (создавать, удалять и переименовывать). w без x - не имеет никакого эффекта.

Рассмотрим таблицу, чтобы было понятнее:

OCT BIN Mask Права на файл Права на каталог
0 000 - - - отсутствие правотсутствие прав
1 001 - - x права на выполнениедоступ к файлам и их атрибутам 1)
2 010 - w - права на записьотсутствие прав
3 011 - w x права на запись и выполнениевсе, кроме доступа к именам файлов 2)
4 100 r - - права на чтениетолько чтение имен файлов
5 101 r - x права на чтение и выполнениечтение имен файлов и доступ файлам и их атрибутам 3)
6 110 r w - права на чтение и записьтолько чтение имен файлов
7 111 r w x полные прававсе права

Для администрирования часто удобнее использовать не буквенное представление прав, а цифровое, в восьмеричном представлении (оно короче). Так, например, права на файл всем и вся, соответствуют записи 777 (что аналогично символьному представлению rwxrwxrwx).

Существуют также специальные биты, такие как SUID, SGID и Sticky-бит. SUID, SGID влияют на запуск файла, а Sticky влияет на определение владельца объектов в каталоге. При их применении необходимо использовать не три восьмеричных цифры, а 4. Зачастую, в различной технической литературе права обозначаются именно 4-мя цифрами, например 0744. Многие стараются не использовать специальные биты, сетуя на безопасность (и не без основательно), но, в некоторых ситуациях без них не обойтись. Поговорим о них несколько позже.

Давайте рассмотрим пример, итак:

Для первой строки:

Следующие три символа (rwx) обозначают права для владельца файла, в данном случае полные права для пользователя allexserv. 4) Следующие три (- - -) - определяют права для группы nogroup, в нашем примере для всех пользователей группы nogroup доступ запрещен. Ну и последние три символа (- - -) определяют права для всех остальных пользователей, в нашем случае доступ запрещен.

Восьмеричное обозначение прав для файла pro_ubuntu.zip: 0700.

Для второй строки (это каталог, о чем свидетельствует флаг «d»), по аналогии:

Для владельца каталога allexserv - полные права (rwx). Для группы nogroup - права на листинг каталога и доступ к файлам (r-x). Для пользователя «все остальные» - права на листинг каталога и доступ к файлам (r-x).

Восьмеричное обозначение в этом примере: 0755.

Для полноценного просмотра каталога, необходимы права на чтение каталога и доступ к файлам, а главное к их атрибутам, т.е. минимальные разумные права на каталог - 5 (r-x). Прав 4 (r–) хватит только на просмотр имен файлов, без атрибутов, т.е. не будут известны размер файла, права доступа, владелец.

На практике для каталогов используется только три режима: 7 (rwx), 5 (r-x) и 0 (—).

Очень любопытный режим доступа к каталогу - 3 (-wx): он позволяет делать в директории все, что угодно, но не позволяет прочитать имена объектов в директории. Т.е. если вам не известны названия объектов в этом каталоге, то вы сделать с ними ничего не сможете (даже удалить по маске * т.к. маску не к чему применять - имена то недоступны).

В каталоге с режимом доступа 3 (-wx) можно создавать новые, переименовывать и удалять файлы и каталоги (если вы знаете их имя); читать, изменять, запускать файл (если достаточно на него прав, и опять же - вы знаете его имя). Можно даже менять права доступа на файлы и каталоги (если вы знаете имя). Но самое интересное, что если вы сможете перейти (по cd 5) ) в подкаталог такого каталога (а для этого вам опять нужно знать его имя), то там у вас будет «все в ожуре» (если конечно у этого подкаталога будет нормальный режим доступа).

Никакой рекурсивный поиск/удаление тоже не сможет залезть внутрь такого каталога - ему ведь нужны названия - а их из такого каталога - никак не получить.

Но не надо думать, что такой каталог полноценно заменяет крипто-контейнер (т.е. может использоваться для хранения очень секретных данных). Да, имен объектов из такого каталога никак не получить, однако если попытаться создать объект с именем, которое уже существует, то такая операция закончится неудачей (т.е. мы получим подтверждение, что такое имя уже есть). Так же можно пытаться открыть (как файл или как каталог) объект с произвольным именем, если такого имени нет, то мы получим ошибку. Безусловно имя может быть очень длинным и шансы угадать его могут быть не велики, но не надо забывать, что права доступа могут сменить как владелец каталога так root. Да и пути доступа могут сохраниться в различных логах и файлах истории.

Команда chmod

Права устанавливаются командой chmod. Команда chmod поддерживает установку прав как в восьмеричном представлении, так и в символьном (маска режима доступа).

Синтаксис команды прост:

chmod <опции> <права> <объект или регулярное выражение>

Опции

Из самых полезных и часто используемых опций можно выделить одну:

-R - рекурсивное назначение прав. Т.е. назначить права всем объектам, руководствуясь регулярным выражением. chmod -R 755 * - Назначение прав всем объектам текущего каталога, включая подкаталоги. chmod -R 700 z* - Назначить полные права для владельца и исключить права для группы и всех остальных для всех объектов, которые начинаются именоваться на z, находящиеся в текущем каталоге и его подкаталогах. 6)

Права

Права можно записывать как в восьмеричном представлении так и в символьном. В восьмеричном представлении, для стандартных прав, указываются 3 восьмеричные цифры (1-я для владельца, 2-я для группы, 3-я для всех остальных. См. таблицу выше).

chmod 744 koshka.txt - установит права для файла koshka.txt - (r w x r - - r - -); chmod -R 775 sobaki - установит права на каталог sobaki и на все объекты, что внутри этого каталога, включая содержимое подкаталогов (r w x r w x r - x); chmod 700 * - установит права только для владельца на все файлы и каталоги в текущем каталоге, включая подкаталоги и их объекты (rwx - - - - - -).

Другой способ назначения прав - это использование маски режима доступа (символьное представление). Помимо прав задается еще кому мы собираемся эти права выставлять:

Для назначения прав используются три знака: минус, плюс или равно:

+ - добавить указанные права к существующим правам объекта; = - заменить права объекта на указанные. chmod g+w koshki.txt - Добавить пользователям группы файла koshki.txt права на запись в этот файл; chmod a=rwx sobaki.doc - Заменит существующие права на файле sobaki.doc на полные права всем; chmod o-w test.cgi - Уберет права на запись для пользователя «Все остальные». chmod ug=rw spisok.doc - Выставить права на чтение и запись файлу spisok.doc для владельца и группы. Обратите внимание, что если у пользователя «все остальные» были какие-либо права, они сохранятся в неизменном виде.

Использование символьного представления позволяет редактировать права файлов более гибко:

chmod u+x,g+w-x koshki.txt - Добавить владельцу файла koshki.txt права на его выполнение, пользователям группы разрешить запись и запретить выполнение и оставить права остальных пользователей без изменений; chmod u=rwx,g+w,go-x sobaki.doc - Установить полные права для владельца файла, разрешить пользователям группы запись и запретить выполнение всем пользователям, кроме владельца файла.

Символьное назначение окажет неоценимую услугу, если требуется добавить права на объект к уже существующим правам.

Массовое назначение прав

Иногда, бывает, нужно массово установить права на определенный тип объектов, например, только на каталоги или только на файлы. Простое использование опции -R (рекурсия) здесь не поможет т.к. chmod будет проходить по всем объектам удовлетворяющим маске, что иногда вовсе не то, что нужно.

Итак, чтобы массово установить права на определенный тип объектов можно использовать один из вариантов (вообще, их очень много):

где -type d - каталоги, -type f - файлы. В данном примере chmod установит, начиная от текущего каталога 7) , права на все каталоги (включая подкаталоги) разрешения 770 (rwx rwx- - -) при этом не трогая права на другие объекты.

Более длинный вариант аналогичной операции:

где -type d - каталоги, -type f - файлы. В данном варианте chmod установит разрешения 775 на все файлы включая файлы в подкаталогах начиная от текущего.

Биты SUID, SGID и Sticky

Unix отслеживает не символьные имена владельцев и групп, а их идентификаторы (UID - для пользователей и GID для групп). Эти идентификаторы хранятся в файлах /etc/passwd и /etc/group соответственно. Символьные эквиваленты идентификаторов используются только для удобства, например, при использовании команды ls, идентификаторы заменяются соответствующими символьными обозначениями.

1000 - идентификатор (UID) пользователя allexserv 0 - идентификатор (GID) основной группы (root) для пользователя allexserv

1000 - идентификатор (GID) дополнительной группы allexserv пользователя allexserv 8)

Если при создании пользователя основная группа не указана явно, то основной группой пользователя будет группа с тем же именем, что и имя пользователя. Например:

Что касается процессов, то с ними связано не два идентификатора, а 4-е: реальный и эффективный пользовательский (UID), а также реальный и эффективный групповой (GID). Реальные номера применяются для учета использования системных ресурсов, а эффективные для определения прав доступа к процессам. Как правило, реальные и эффективные идентификаторы совпадают. Владелец процесса может посылать ему сигналы, а также изменять приоритет.

Процесс не может явно изменить ни одного из своих четырех идентификаторов, но есть ситуации когда происходит косвенная установка новых эффективных идентификаторов процесса. Дело в том, что существуют два специальных бита: SUID (Set User ID - бит смены идентификатора пользователя) и SGID (Set Group ID - бит смены идентификатора группы). Когда пользователь или процесс запускает исполняемый файл с установленным одним из этих битов, файлу временно назначаются права его (файла) владельца или группы (в зависимости от того, какой бит задан). Таким образом, пользователь может даже запускать файлы от имени суперпользователя.

Восьмеричные значения для SUID и SGID - 4000 и 2000.

Вобщем, одним словом установка битов SUID или SGID позволит пользователям запускать исполняемые файлы от имени владельца (или группы) запускаемого файла. Например, как говорилось выше, команду chmod по умолчанию может запускать только root. Если мы установим SUID на исполняемый файл /bin/chmod, то обычный пользователь сможет использовать эту команду без использования sudo, так, что она будет выполнятся от имени пользователя root. В некоторых случаях очень удобное решение. Кстати по такому принципу работает команда passwd, c помощью которой пользователь может изменить свой пароль.

Возьмите на заметку! Если установить SGID для каталога, то все файлы созданные в нем при запуске будут принимать идентификатор группы каталога, а не группы владельца, который создал файл в этом каталоге. Аналогично SUID. Одним словом, если пользователь поместил исполняемый файл в такой каталог, запустив его, процесс запустится от имени владельца (группы) каталога, в котором лежит этот файл.

Однако, в системе FreeBSD, если скомпилировать ядро с поддержкой suiddir, а так же смонтировать раздел с этой опцией, то, все объекты создаваемые в каталоге где установлен SUID будут иметь владельца этого каталога (наследование). Реализация подобного в Linux возможна (?) на файловой системе GFS2. Данная функция считается уязвимостью.

Установить SUID и SGID можно командой chmod:

Window menu (Меню управления окном) - В левом верхнем углу каждого окна находится пиктограмма манипулирования окном. При щелчке на ней появляется меню, содержащее команды с помощью которых можно манипулировать данным окном . Maximize (Максимизировать) увеличит окно до максимально возможного размера . Minimize (Минимизировать ) сделает ваше окно невидимым. Move (Переместить) позволяет передвигать окно с помощью мыши. Size (Изменить размер) позволит вам увеличить или уменьшить окно. Shade – свернет окно до заголовка. То desktop . (На рабочий стол) позволит перевести окно на другой рабочий стол. Выберите рабочий стол, на который вы хотите переместить это окно. Окно при этом исчезнет. Для того чтобы увидеть его снова, выберите имя на Линейке задач, или щелкните на соответствующую кнопку рабочего стола на панели KDE. Close (Закрыть) закроет данное окно. Always on Top – оставляет окно поверх всех открытых окон.

Использование панели меню каждого окна в КDЕ очень просто. Щелкните на команду, и она будет исполнена. При нажатии на правую кнопку мыши появится контекстное меню, позволяющее вывести на экран панель меню. Можете отсоединить меню от окна и оставить его "плавать" по экрану.

Ниже панели меню находятся пиктограммы инструментов, которые позволяют исполнять различные команды. Можно передвинуть инструментальную панель - влево, вправо, вверх, вниз, и, конечно, она тоже может "плавать".


  1. Запустите Центр управлений.

  1. Установите хранитель экрана, на своё усмотрение, и режим ожидания равный

  1. Сделайте так, чтобы окна передвигались вместе со всем их содержимым.

  2. Задайте звуковой щелчок, подтверждающий нажатие каждой клавиши.

  3. Измените ширину линейки панели.

  4. Запустите диспетчер приложений. И запустите программу текстового процессора

  1. В другом рабочем столе откройте программу растрового редактора Paint.

  2. Откройте KWord и наберите следующий текст:

  1. Откройте ваш домашний каталог пользователя Konqueror'ом, создайте в нем каталог, скопируйте ваш текстовой файл в этот каталог.

  2. Ознакомьтесь с содержанием домашнего каталога, скопируйте с дискеты файлы.

  3. Получите справку об интересующем вас объекте.

  4. Создайте любой рисунок с помощью Paint, чтобы в нем были ВСЕ фигуры (1. эллипс, 2. окружность, 3. линия, 4. прямоугольник, 5. круг) хотя бы по одному разу и присутствовало не менее четырех цветов.

  5. Сохраните файл с рисунком в домашнем каталоге, закройте Paint.

  6. Скопируйте файл с рисунком в тот же созданный вами каталог.

  7. Измените атрибуты доступа к созданным файлам.

  8. Покажите преподавателю ваши файлы, затем удалите их.

Диспетчер файлов Konqueror предназначен не только для просмотра документов. Он может также быть использован для настройки просматриваемых объектов и активной работы с ними. Например, он использует систему типизации файлов KDE для запуска программ и загрузки документов. Распознавание типа файла производится как для локальных файлов, так и для файлов на удаленных узлах. Поэтому, таких проблем, как, скажем, выбор отображаемых ярлыков или контекстных меню для данного элемента, не возникает. При запуске файла на удаленной системе KDE загрузит этот файл и запустит нужное для работы с ним приложение. Можно перетаскивать элементы из одного окна диспетчера файлов в другое, создавая, таким образом, копию элемента или связь с этим элементом. Наконец, при работе с локальной файловой системой, Konqueror может быть использован для изменения атрибутов этой самой файловой системы (как, например, владелец файла и права доступа) с помощью простого графического диалогового окна.

Прежде чем начинать работать с диспетчером файлов, полезно сначала познакомиться с некоторыми элементами интерфейса пользователя. Ниже описаны те задачи, которые можно решать с помощью Konqueror.

4.1. Работа с файлами и каталогами.

Чтобы начать работу с диспетчером файлов, достаточно щелкнуть на папке любого каталога или щелкнуть кнопкой с изображением глобуса на панели. В результате запустится диспетчер файлов, и в главном окне будет выведено содержимое рабочего каталога. Эта область называется областью просмотра. Как правило, в основном окне такая область просмотра единственная. Тем не менее, там также есть область, где отображается дерево каталогов, которая вместе с областью просмотра занимает место в основном окне при его отображении на экране. Наконец, там еще можно увидеть и область эмуляции окна терминала.

4.1.1. Область просмотра


    • Icon View (ярлыки). Содержимое каталога отображается в виде больших ярлыков, помещенных в рамку.

    • Text View (Текст). Выводится детальный листинг файлов и каталогов со всеми их атрибутами.

    • MultiColumn View (Колонки). Выводится в виде колонок только название файлов

    • Detailed List View (Список). Выводится та же информация, что и в режиме Text View, только включая еще и мини-ярлыки для идентификации типа файлов.

    • Tree View (Дерево). Все точно так же, как в предыдущем случае, только теперь каждый ярлык может быть развернут в дерево подкаталогов.

    нужно выбрать опции меню View(Bид)⇒Show Hidden Files (Показывать скрытые файлы). Переходить между каталогами с помощью диспетчера файлов можно несколькими способами. Для перехода в подкаталог нужно щелкнуть на названии папки или каталога в области просмотра. Для перехода в каталог высшего уровня можно щелкнуть на кнопке со стрелкой вверх на панели инструментов диспетчера файлов. Для переключения между каталогами, которые уже посещались, можно использовать кнопки со стрелками влево и вправо на той же панели инструментов. Каждая из этих кнопок имеет маленькую стрелочку, направленную вниз. Это значит, что если удерживать кнопку нажатой, можно будет увидеть список адресов, куда можно перейти. Для кнопки со стрелкой вверх такой список будет состоять из каталогов вышестоящих уровней – первого, второго и так далее. Для кнопок со стрелками влево и вправо это будут каталоги, которые последовательно посещались. Их хронологический порядок записан в кэш-памяти.

    Для переключения на элемент, помеченный закладкой, нужно выбрать соответствующий пункт из меню закладок Bookmarks (Закладки).

    Наконец, для перехода в нужное место файловой системы можно просто ввести адрес перехода в поле Location (Адрес), размещенном в верхней части окна диспетчера файлов. Это же можно сделать и при помощи выпадающего диалогового окна Open Location (Открыть Адрес). Для этого достаточно выбрать опции меню Location ⇒Open Location. К тому же результату приведет нажатие комбинации клавиш . При вводе адреса его можно указывать как обычный путь к каталогу или как URL. При работе с локальной файловой системой следует использовать префикс file.

    4.1.2. Дерево каталогов

    квадрате появляется минус. Для отображения в окне просмотра содержимого каталога нужно в подокне просмотра дерева каталогов щелкнуть мышью на названии этого каталога 68 (при этом должна быть установлена связь между окнами, подробнее об этом рассказано в разделе "Установка связи между окнами").

    4.1.3. Окно эмуляции терминала

    В нижней части окна диспетчера файлов можно вывести эмуляцию окна терминала (что-то вроде консольного устройства). Для этого достаточно выбрать опции меню

    Window(Окно)⇒Show Terminal emulator (Показать окно эмуляции терминала). Это позволит получить доступ к командной строке, где можно обычным способом вводить команды LINUX. Когда с помощью дерева каталогов или в окне просмотра пользователь переходит в другой каталог, изменение текущего каталога будет автоматически отображаться и в этом окне (при установленной связи между окнами). А вот перемещения, выполняемые в окне эмуляции терминала с помощью команды cd, не изменят содержимого области просмотра и подокна дерева каталогов.

    4.1.4. Установка связи между окнами

    Изменения, внесенные в области просмотра диспетчера файлов или подокна дерева каталогов, могут отражаться и в других окнах. По умолчанию все окна связаны друг с другом, так что они будут отражать одни и те же каталоги. Иногда бывает полезно убрать такую связь для отдельного окна, чтобы оно отражало какой-то один каталог.

    Для установки или снятия связи между окнами, нужно воспользоваться опцией View

    ⇒ Link View (Связать). Между всеми выделенными таким способом окнами устанавливается связь, поэтому они будут отображать одинаковые каталоги. Единственным исключением является эмулятор окна терминала. При использовании команды cd эмулятор терминала с другими окнами работать синхронно не будет.

    4.1.5. Создание окон

    Три окна, используемые в диспетчере файлов, — это только начало. Пользователь может создать несколько копий окна просмотра или эмулятора терминала. Причем каждая копия может работать с разными каталогами или узлами Web.


    • Window (Oкно)⇒Split View Left/Right (Разделить по вертикали) – текущее окно разбивается по вертикали на два окна того же типа. Это же можно сделать, используя комбинацию клавиш .

    Для создаваемых окон по умолчанию связи с другими окнами не устанавливаются. Это удобно для того, чтобы просматривать разные каталоги. Для изменения просматриваемой области нужно сначала просто щелкнуть мышью на окне. Маленький зеленый индикатор указывает активное в данный момент окно. Затем следует ввести новый адрес для просмотра в поле Location в верхней части окна Konqueror (Location ⇒ Duplicate Windows).

    Для того чтобы убрать существующее окно просмотра или эмулятор терминала, нужно выделить его щелчком мыши, а затем выбрать опции контекстного меню

    Window⇒Remove Active View (Убрать окно) или нажать комбинацию клавиш . Для изменения размера нужно при помощи мыши переместить границу между двумя соседними окнами.

    4.1.6. Сохранение формата

    Для использования созданного пользователем формата для отображения на экране диспетчера файлов, этот формат нужно сохранить. Для этого следует воспользоваться опциями Settings(Установки) => Save View Profile (Сохранить профиль).

    Тема полезных приёмов работы в терминале Linux неисчерпаема. Казалось бы — всё устроено очень просто: приглашение оболочки, да введённые с клавиатуры команды. Однако, в этой простоте кроется бездна неочевидных, но полезных возможностей. Именно поэтому мы регулярно публикуем материалы, посвящённые особенностям работы в командной строке Linux. В частности, сегодня это будет перевод статьи, автор которой увлечён экономией времени через повышение продуктивности труда.


    Если вас интересует работа в командной строке Linux — вот некоторые из наших материалов на эту тему:

    Приёмы работы в командной строке Linux и экономия времени

    Вам когда-нибудь доводилось видеть, как коллега использует некие простые команды Linux для решения задач, решение которых занимает у вас несколько строк? Должно быть, когда подобное случалось, вы только и могли сказать себе: «Ну ничего ж себе! Я и не знал, что это можно сделать так просто».

    В этом материале я покажу вам некоторые профессиональные приёмы работы в командной строке Linux, которые сэкономят вам уйму времени и в некоторых случаях избавят от плохого настроения. Мало того, что ваши друзья или коллеги скажут: «Ну надо же!», глядя на вас. Эти приёмы, кроме того, помогут вам увеличить личную продуктивность, так как вам понадобится вводить меньше команд и даже делать меньше щелчков мышью.

    Нельзя сказать, что эти советы по Linux предназначены только для начинающих. Вполне возможно, что даже опытные пользователи найдут здесь что-нибудь полезное, то, о чём они не знали несмотря на то, что пользовались Linux многие годы. Linux изучают на основе опыта. Тут сгодится и собственный опыт, и опыт других людей.

    Прежде чем мы начнём, хочется отметить, что некоторые из приведённых здесь методов зависят от настройки командной оболочки.

    0. Автозавершение команд с использованием клавиши Tab

    Я начну с кое-чего вполне очевидного, но весьма важного: с автозавершения команд с помощью клавиши Tab .

    Когда вы начинаете набирать что-то в терминале Linux, вы можете нажать клавишу Tab , после чего будет выведена подсказка, содержащая набор вариантов продолжения ввода, начинающихся с только что введённых символов.

    Например, собираясь скопировать файл с именем my_best_file_1.txt , вы можете просто ввести cp m и нажать Tab для того, чтобы увидеть возможные варианты продолжения команды.


    Использование клавиши Tab для автозавершения ввода

    Клавишу Tab можно использовать и для автозавершения команд.

    1. Переход в последнюю рабочую директорию

    Представьте, что вы работали в директории, до которой не так уж и просто добраться, а потом перешли в другую директорию, расположенную совершенно в другом месте. Потом вы поняли, что вам нужно вернуться в предыдущую директорию. В этом случае достаточно воспользоваться следующей командой:


    Она позволит вам оказаться в последней рабочей директории. Теперь в подобных ситуациях вам не нужно больше будет вводить длинные пути, или пользоваться копированием и вставкой.


    Простое переключение между директориями

    2. Возврат в домашнюю директорию

    Этот приём тоже весьма очевиден. Вы можете использовать нижеприведённую команду для того, чтобы вернуться в домашнюю директорию из любого места:


    Однако, в домашнюю директорию можно вернуться ещё быстрее — с помощью команды cd .

    В большинстве современных дистрибутивов Linux оболочка предварительно настроена на именно такое восприятие команды cd . Это сэкономит вам пару нажатий клавиш на клавиатуре.


    Самый быстрый способ перехода в домашнюю директорию

    3. Вывод на экран содержимого директории

    Возможно, вы зададитесь вопросом о том, в чём состоит тонкость использования команды для вывода содержимого директории. Все знают, что для этой цели служит команда ls -l .

    Но в том-то всё и дело. Практически все используют команду ls -l для вывода содержимого директорий, в то время как то же самое можно сделать с помощью следующей команды:


    Работоспособность этой команды зависит от дистрибутива Linux и от настройки оболочки, но весьма вероятно, что вы сможете воспользоваться ей в большинстве дистрибутивов.


    Использование команды ll вместо команды ls -l

    4. Вызов нескольких команд в одной строке

    Представьте, что вам нужно последовательно выполнить несколько команд. Наверное, вы вводите одну команду, потом ждёте, когда она завершится, дальше — вводите следующую?

    В подобной ситуации полезным окажется разделитель команд ; (точка с запятой). При таком подходе вы можете ввести несколько команд в одной строке. При этом, в отличие от обычного ввода команд, для выполнения следующей команды не надо ждать завершения предыдущей.

    5. Выполнение нескольких команд в одной строке и условие на успешное завершение предыдущей команды

    Только что мы рассмотрели способ вызова нескольких команд в одной строке. Это экономит время. Но что если вам нужно, скажем, при вызове двух команд, чтобы следующая команда была выполнена только в том случае, если предыдущая завершится без ошибок?

    Представьте себе, что хотите собрать код, а затем, если сборка оказалась успешной, вызвать make ?

    В подобной ситуации можно использовать разделитель && . Этот разделитель позволяет гарантировать то, что следующая команда будет выполнена лишь в том случае, если предыдущая отработает успешно.


    Вот хороший пример использования && :

    6. Простой поиск и использование ранее введённых команд

    Представьте себе, что вы, пару минут или пару часов назад, вводили длинную команду, и вам снова нужна эта команда. Причём, проблема заключается в том, что вспомнить точно эту команду вы не можете.

    В подобной ситуации вас спасёт обратный поиск. Данная методика позволяет проводить поиск в истории команд по ключевому слову. Тут достаточно использовать комбинацию клавиш Ctrl + R для запуска обратного поиска и ввести что-то, имеющее отношение к команде. Система просмотрит историю команд и покажет команды, соответствующие введённому запросу.


    По умолчанию показан будет лишь один результат. Для того, чтобы увидеть больше результатов, соответствующих запросу, вам понадобится использовать комбинацию клавиш Ctrl + R снова и снова. Для того, чтобы выйти из режима обратного поиска, нажмите Ctrl + C .


    Обратный поиск по истории команд

    Обратите внимание на то, что в некоторых оболочках Bash для перебора результатов поиска можно пользоваться клавишами Page Up и Page Down .

    7. Разблокировка терминала после случайного нажатия Ctrl + S

    Возможно, вы привыкли пользоваться комбинацией клавиш Ctrl + S для сохранения файлов. Но если нажать эти клавиши в терминале Linux, вы его заблокируете.

    8. Перемещение к началу или концу строки

    Представьте себе, что вы вводите длинную команду и где-нибудь посередине понимаете, что должны что-нибудь изменить в её начале. Вероятно, вы используете клавиши-стрелки для того, чтобы сначала переместиться в начало строки, а потом вернуться в конец.

    Конечно, в подобной ситуации можно использовать клавиши Home и End , но, как вариант, с помощью комбинации клавиш Ctrl + A можно перейти в начало строки, а с помощью комбинации Ctrl + E — в конец.


    Перемещение к началу или концу строки

    Мне такой способ кажется удобнее, чем использование клавиш Home и End , особенно когда я работаю на ноутбуке.

    9. Чтение лог-файлов в режиме реального времени

    Когда вам нужно проанализировать файлы журналов, в которые, во время анализа, пишет данные какое-нибудь работающее приложение, вы можете использовать команду tail с опцией -f .


    Кроме того, вы можете использовать команду grep в её обычном виде для отображения только тех строк, которые вас интересуют:


    Также тут можно задействовать опцию F . Это приведёт к тому, что утилита tail продолжит работать даже в том случае, если просматриваемый лог-файл будет удалён. При таком подходе, если этот файл снова будет создан, tail продолжит выводить данные из него на экран.

    10. Чтение сжатых лог-файлов без их распаковки

    Серверные журналы обычно сжаты с помощью gzip для экономии места на диске. Это может привести к некоторым неудобствам при анализе логов разработчиками или системными администраторами. Вам может понадобиться использовать команду scp для копирования файла в свою локальную директорию, а после этого извлечь файл из архива для того, чтобы его просмотреть, так как у вас может не быть разрешения на запись туда, где хранится интересующий вас файл.

    Тут нам на помощью приходит группа команд, имя которых начинается с буквы «z». Эти команды являются альтернативой обычным командам, которые используются для работы с файлами журналов. Среди них — less , cat , grep , и другие.

    Итак, используя команды zless , zcat , zgrep и подобные им, вам не придётся явным образом распаковывать сжатые файлы. Подробности об этих командах можно посмотреть здесь.

    Кстати, когда я рассказал об этих «секретных» командах коллеге, мне досталась чашка кофе.

    11. Использование команды less для чтения файлов

    Если вам нужно просмотреть файл, особенно — большой, можно попробовать команду cat , но гораздо лучше поискать что-нибудь другое. Дело в том, что cat выведет на экран весь файл, что не так уж и удобно.

    Для просмотра файлов можно воспользоваться редакторами вроде Vi или Vim, работающими в терминале, но если вам просто нужно прочесть файл, очень кстати окажется команда less .


    Во время сеанса работы с less можно искать нужные фрагменты текста по ключевым словам, перемещаться по страницам, выводить данные с номерами строк, и так далее.

    12. Повторное использование последнего элемента из предыдущей команды с помощью !$

    Во многих ситуациях очень кстати оказывается возможность использования аргумента предыдущей команды.

    Предположим, вам нужно создать директорию, а потом в неё перейти. Тут можно воспользоваться опцией !$ , вводя команду перехода после команды создания директории.


    Применение !$ для использования аргумента последней команды

    Ещё лучше то же самое делается с помощью сочетания клавиш Alt +. (точка). Точку можно использовать несколько раз для перебора опций последней команды.

    13. Использование предыдущей команды в текущей команде с помощью !!

    С помощью !! можно вызвать всю предыдущую команду. Этот приём оказывается особенно полезным, когда вам нужно выполнить команду и оказывается, что для её выполнения нужны привилегии суперпользователя. Например, на рисунке ниже показана ситуация, в которой команда sudo !! позволяет сэкономить немало времени.


    Воспользуйтесь. для подстановки последней команды в качестве аргумента

    14. Использование псевдонимов для исправления ошибок ввода

    Возможно, вы уже знакомы с командой alias . Её можно использовать для исправления ошибок во введённых командах.


    Теперь вам не придётся перенабирать эту команду если вы введёте её имя неправильно.

    15. Копирование и вставка в терминале Linux

    Этот совет несколько неоднозначен, так как он зависит от дистрибутива Linux и от терминала.

    Но обычно команды копирования и вставки можно вызывать следующим образом:

    • Выделите текст, который надо скопировать, и щёлкните правой кнопкой мыши для его вставки (работает в Putty и других SSH-клиентах для Windows).
    • Выделите текст, который надо скопировать, после чего щёлкните центральной кнопкой мыши (колесом прокрутки) для того, чтобы его вставить.
    • Используйте комбинации клавиш Ctrl + Shift + C для копирования, и Ctrl + Shift + V для вставки.

    16. Завершение работы команды или процесса

    Возможно, то, что я тут хочу посоветовать, совершенно очевидно, однако, всё равно об этом расскажу. Если команда выполняется на переднем плане и вы хотите из неё выйти, можете нажать клавиши Ctrl + C для того, чтобы её остановить.

    17. Использование команды yes для автоматизации интерактивных команд или скриптов

    Если вам приходится работать с некоторыми командами или скриптами, которые предусматривают взаимодействие с пользователем, и вы знаете, что будете вводить Y в ответ на каждый вопрос программы, можете автоматизировать этот процесс с помощью команды yes . Делается это так:

    18. Очистка содержимого файла без удаления самого файла

    Если вы хотите очистить содержимое текстового файла, не удаляя сам файл, можете использовать следующую команду:

    19. Выяснение наличия в директории файлов, содержащих определённый текст

    Командная строка Linux поддерживает множество способов поиска информации. Однако, если вам просто нужно узнать, имеются ли в некоей директории файлы, которые содержат определённый текст, вы можете воспользоваться такой командой:


    Однако я советую всем, кому нужен поиск в Linux, разобраться как следует с командой find .

    20. Вызов справки для любой команды

    Хочу завершить этот материал одним весьма очевидным, но, тем не менее, очень важным «трюком», который заключается в вызове справки для команды или инструмента командной строки.

    Практически все средства командной строки содержат справочную информацию, раскрывающую особенности их использования. Обычно чтение справки помогает разобраться с основами команды. Вызвать справку можно так:

    Итоги: делитесь полезными советами!

    Я намеренно не включил в этот материал команды вроде fuck, так как они не из тех стандартных средств, которые можно найти буквально повсюду. То, о чём я тут рассказал, может принести пользу при работе практически со всеми дистрибутивами Linux и оболочками командной строки без необходимости установки новых программ.

    Читайте также: