Гайд по командам Linux-терминала с примерами - основные возможности командной строки

Гайд по командам Linux-терминала с примерами - основные возможности командной строки
На чтение
27 мин.
Просмотров
36
Дата обновления
09.03.2025
Старт:28.10.2024
Срок обучения:300 ч.
«Софрология. Обучение техникам и упражнениям релаксации»
Дистанционное обучение по программе Софрология. Обучение техникам и упражнениям релаксации (300 часов) в ЦАППКК. ✍ Мы подберем вам подходящий курс, пишите!
25 000 ₽
Подробнее

Для быстрого и эффективного управления системой Linux, освойте базовые команды терминала. ls – обязательная команда для просмотра содержимого каталогов. Например, чтобы увидеть файлы в текущем каталоге, введите ls и нажмите Enter.

cd – команда для перемещения по каталогам. Для перехода в каталог Documents введите cd Documents. Использование абсолютных путей, например, cd /home/user/Documents, также поддерживается.

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

mkdir и rmdir – для создания и удаления директорий соответственно. Для создания новой директории "newfolder" используйте команду mkdir newfolder. Удаление выполняется командой rmdir newfolder. Обратите внимание, что для удаления каталога, содержащего файлы, могут потребоваться дополнительные команды.

touch – создание пустого файла. Для создания файла "myfile.txt" используйте touch myfile.txt.

cat – просмотр содержимого файлов. Чтобы отобразить содержимое файла "myfile.txt", используйте cat myfile.txt.

cp и mv – для копирования и перемещения файлов и директорий. Команда cp myfile.txt newfile.txt копирует "myfile.txt" в "newfile.txt". Команда mv myfile.txt anotherfolder/ переместит "myfile.txt" в папку anotherfolder.

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

Навигация по файловой системе: cd, ls и pwd

Для работы с файлами в Linux-терминале жизненно важны команды cd, ls и pwd. Они позволяют перемещаться по каталогам и просматривать содержимое.

Команда Описание Пример Результат
cd Перемещение в каталог. cd /home/user/documents Переход в каталог documents в домашнем каталоге пользователя.
cd .. Переход в родительский каталог. cd .. Возвращение на уровень выше.
cd / Переход в корневой каталог. cd / Переход в корневой каталог файловой системы.
cd ~ Переход в домашний каталог. cd ~ Переход в домашний каталог пользователя.
ls ls Отображение списка файлов и каталогов в текущем каталоге.
ls -l ls -l Отображение списка с правами, размерами, датами и другими атрибутами файлов и каталогов.
ls -a ls -a Показ скрытых файлов и папок, начинающихся с точки (.hidden).
pwd pwd Отображаем путь к текущему каталогу.

Важно помнить, что использование абсолютных путей (начиная с корня '/') или относительных путей (относительно текущего каталога) влияет на место назначения команд cd. Используйте ls -l для более подробных сведений о файлах.

Работа с файлами: mkdir, touch, rm и cp

mkdir – создание директорий.

Пример: mkdir

новая_папка

Создаст директорию новая_папка в текущем каталоге. Для создания вложенных директорий, используйте путь – mkdir директория1/директория2/директория3

touch – создание пустых файлов.

Пример: touch

новый_файл.txt

Создаст пустой текстовый файл новый_файл.txt. Можно создавать сразу несколько файлов, например:touch файл1.txt файл2.txt файл3.txt

rm – удаление файлов и директорий.

Пример: rm

удаляемый_файл.txt

Удалить файл. Для удаления директории используйте опцию -r (рекурсивно): rm -r

директория. Важно! Перед удалением, убедитесь, что это действительно нужная директория. Используйте опцию -i, чтобы система спросила перед удалением каждого файла/директории: rm -i

удаляемый_файл.txt

cp – копирование файлов и директорий.

Пример: cp

оригинальный_файл.txt новый_файл.txt

Скопирует оригинальный_файл.txt в новый_файл.txt. Для копирования в другую директорию: cp оригинальный_файл.txt новая_директория/новый_файл.txt

Важно: Все команды выполняются в терминале. Замените примерные имена файлов и директорий на ваши собственные.

Поиск файлов: find, grep

find – мощная команда для поиска файлов по заданным критериям.

Ключевые параметры:

  • -name: ищет файлы с определённым именем (или шаблоном - например, *.txt). Пример: find . -name "*.log" ищет все файлы с расширением .log в текущей директории и вложенных.
  • -type: уточняет тип файла (например, f для файлов, d для каталогов, l для символических ссылок). Пример: find /home -type d -name "Документы". Ищет каталог "Документы" в домашнем каталоге.
  • -size: поиск по размеру файла. +1M ищет файлы больше 1 мегабайта. Пример: find /tmp -size +100c -name "*.tmp" ищет временные файлы больше 100 байтов.
  • -mtime: поиск по времени последнего изменения файла в днях. -1 означает изменения в последние 24 часа. Пример: find . -mtime -1 ищет файлы, изменённые в последние сутки.
  • -exec: выполняет команду над найденными объектами. Пример: find . -name "*.txt" -exec rm {} \; удаляет все txt-файлы в текущей директории.

grep – ищет строки текста в файлах по шаблону (регулярному выражению).

  • -r: рекурсивно ищет в подкаталогах. Пример: grep -r "error" * ищет строку "error" во всех файлах в текущей директории и поддиректориях.
  • -i: поиск без учёта регистра. Пример: grep -i "warning" *.log ищет "warning" в логах, игнорируя регистр.

Рекомендация: Для сложных задач сочетайте find и grep. Например, найдите все лог-файлы, изменённые вчера, и выведите строки с ошибками:

find . -type f -name "*.log" -mtime -1 -exec grep -i "error" {} \;

Обработка текста: `cat`, `less`, `sed`

  • Пример: `cat myfile.txt`

`less` – более удобная альтернатива `cat` для больших файлов. Она позволяет прокручивать текст по страницам и искать.

  • Пример: `less logfile.txt`
  • Функции: Используйте стрелки для навигации, 'q' для выхода, '/' для поиска.
  • Быстрый поиск: `less -N file.txt` добавляет номера строк.

`sed` – мощная утилита для редактирования текста. Она позволяет выполнять поиск и замену, извлекать данные, изменять формат.

  1. Пример: sed 's/old/new/g' myfile.txt > newfile.txt
    • Заменяет old на new во всех строках файла myfile.txt и сохраняет результат в newfile.txt.
  2. Пример: sed -n '/pattern/p' file.txt
  3. Пример (более сложный): sed 's/^[^ ]* //' file.txt
    • Удаляет первое слово из каждой строки.
  4. Пример с использованием `-i` (редактирование на месте): sed -i 's/old/new/g' myfile.txt
    • Заменяет "old" на "new" в файле myfile.txt, не создавая резервной копии

Важно запомнить, что `sed` работает с регулярными выражениями, что расширяет его функциональность.

Основы управления процессами: `ps`, `kill`

Для управления процессами в Linux используются команды ps и kill. ps отображает список текущих процессов, а kill позволяет их остановить.

Команда ps показывает состояние процессов. Базовая форма: ps. Для большей информации используйте опции:

  • ps aux: отображает все процессы с подробной информацией (пользователь, процессы, ресурсы).
  • ps -fu user: отображает процессы конкретного пользователя user.
  • ps -p PID: отображает информацию о процессе с указанным идентификатором PID.
  • ps -C program_name: показывает процессы, использующие программу с указанным именем.

Пример: ps aux | grep firefox найдет все процессы, связанные с Firefox.

  • kill PID: завершает процесс с указанным PID. Будьте осторожны.
  • kill -9 PID: экстренное завершение процесса. Используйте с осторожностью.

Пример: Найдите процесс Firefox (ps aux | grep firefox), возьмите его PID и выполните kill PID, чтобы остановить процесс.

Основы работы с архивами: `tar`, `unzip`, `gzip`

`tar` – универсальный архиватор. Создание архива: `tar -cvzf архив.tar.gz директория1 директория2` (создаёт сжатый архив из директорий). Извлечение: `tar -xvzf архив.tar.gz`. Для не сжатых архивов используйте `tar -cvf архив.tar директории` и `tar -xvf архив.tar`.

`unzip` – для работы с архивами в формате ZIP. Извлечение: `unzip архив.zip`. Создание архива: `zip -r архив.zip директория`. Обратите внимание: `zip` создаёт архив с файлами, но не с каталогами. Для сохранения структуры каталога используйте `tar`.

`gzip` – утилита для сжатия файлов. Сжатие: `gzip файл.txt`. Получаете `файл.txt.gz`. Извлечение: `gunzip файл.txt.gz`.

Примеры:

- Сжать папки 'docs' и 'images' в архив 'data.tar.gz': `tar -cvzf data.tar.gz docs images`

- Извлечь архив 'data.tar.gz': `tar -xvzf data.tar.gz`

- Сжать файл 'report.txt' в 'report.txt.gz': `gzip report.txt`

- Извлечь 'report.txt.gz': `gunzip report.txt.gz`

Вопрос-ответ:

Как быстро найти нужный файл в огромном каталоге?

Для поиска файлов в каталоге можно использовать команду `find`. Например, чтобы найти все файлы с расширением `.txt` в текущей директории и её поддиректориях, используйте команду `find . -name "*.txt"`. Если нужно найти файлы, содержащие определённые слова, то к команде `find` добавляется параметр `-exec`. Например, `find . -name "*.log" -exec grep "error" \;` найдёт все файлы `.log`, содержащие слово "error". Для более продвинутых поисков можно использовать дополнительные параметры, такие как `-type`, `-mtime`, `-size`, позволяющие искать файлы по типу, времени модификации или размеру. В документации к `find` подробно описаны все доступные фильтры.

Как копировать папки целиком, сохраняя структуру?

Для копирования папки целиком с сохранением структуры используйте команду `cp -r`. Например, чтобы скопировать папку `old_folder` в новую папку `new_folder`, пишите: `cp -r old_folder new_folder`. Параметр `-r` (рекурсивно) гарантирует, что будут скопированы не только сама папка, но и все файлы и подпапки внутри неё.

Как отслеживать изменения в файлах в реальном времени?

Для отслеживания изменений в файлах можно использовать программу `watch`. Комбинация с командой (например `ls -l`) позволит вам видеть изменения содержимого каталога в заданные интервалы. Например, `watch -n 5 ls -l`. Эта команда будет освежать вывод списка файлов в каталоге раз в 5 секунд. Также существует инструмент `inotify`, который позволяет реагировать на события в файловой системе. Он более сложен в использовании, но даёт возможность автоматизировать задачи по отслеживанию изменений.

Есть ли команда для удаления пустых каталогов?

Для удаления пустых каталогов используйте команду `rmdir`. Например, `rmdir empty_folder`. Если каталог не пустой, то `rmdir` выдаст ошибку. Для удаления каталогов с содержимым нужна команда `rm -r`, но будьте внимательны, `rm -r` удаляет все, включая подкаталоги.

Как переименовать несколько файлов одновременно?

Для переименования нескольких файлов с одинаковым префиксом, например, с добавлением номера к названию файлов, можно использовать команду `rename`. Например, `rename 's/^file_/file_00/g' file_1 file_2 file_3`. Эта команда переименует `file_1`, `file_2`, `file_3` в `file_001`, `file_002`, `file_003` соответственно. Для более сложных случаев можно использовать инструмент `find` с параметром `-exec`, который позволит создать более гибкие правила переименования.

Как быстро найти все файлы с определённым расширением в текущей директории?

Для поиска файлов с определённым расширением в текущей директории используется команда `find`. Например, чтобы найти все файлы с расширением `.txt`, вы используете команду `find . -name "*.txt"`. Символ `*` является подстановкой для любого количества символов. Если нужно найти файлы с расширением `.log` в поддиректориях текущей директории, то используйте `find . -name "*.log"` . Для более сложных случаев поиска (например, поиск файлов старше определённой даты), можно использовать дополнительные опции `find`. Более подробно о возможностях и опциях `find` вы сможете найти на странице документации.

Есть ли команда для копирования файлов и папок, сохраняющих права доступа, атрибуты и владельца?

Да, команда `cp` позволяет копировать файлы, но она по умолчанию не сохраняет права доступа, атрибуты и владельца. Для этого используется опция `-p` (preserve). Например, команда `cp -p /путь/к/источнику /путь/к/копии` скопирует файл, сохраняя все указанные атрибуты. Если требуется скопировать папку целиком с её содержимым и атрибутами, то вместо `cp` можно использовать `rsync`, который отличается большей мощностью и гибкостью при копировании больших объёмов и при работе с удаленными серверами. Он также может копировать файлы и папки, сохраняя полные атрибуты. Для точного копирования полных атрибутов папки используется опция `-a` в команде `rsync`. Например, `rsync -a /путь/к/источнику /путь/к/копии`.

0 Комментариев
Комментариев на модерации: 0
Оставьте комментарий

Курсы