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

Для быстрого и эффективного управления системой 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. Можно создавать сразу несколько файлов, например:touch файл1.txt файл2.txt файл3.txt
rm
– удаление файлов и директорий.
Пример: rm
Удалить файл. Для удаления директории используйте опцию -r
(рекурсивно): rm -r
-i
, чтобы система спросила перед удалением каждого файла/директории: rm -iудаляемый_файл.txt
cp
– копирование файлов и директорий.
Пример: cp
Скопирует оригинальный_файл.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` – мощная утилита для редактирования текста. Она позволяет выполнять поиск и замену, извлекать данные, изменять формат.
- Пример:
sed 's/old/new/g' myfile.txt > newfile.txt
- Заменяет old на new во всех строках файла myfile.txt и сохраняет результат в newfile.txt.
- Пример:
sed -n '/pattern/p' file.txt
- Пример (более сложный):
sed 's/^[^ ]* //' file.txt
- Удаляет первое слово из каждой строки.
- Пример с использованием `-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 /путь/к/источнику /путь/к/копии`.
Курсы


.png)

.png)

.png)
