Имена команд для работы с каталогами

Время на прочтение

Linux — это операционная система. Как винда (windows), только более защищенная. В винде легко подхватить вирус, в линуксе это практически невозможно. А еще линукс бесплатный, и ты сам себе хозяин: никаких тебе неотключаемых автообновлений системы!

Где я? Как понять, где находишься

pwd — мы ввели команду
/home/test — ответ системы, мы находимся в домашней директории пользователя test

Очень полезная команда, когда у вас нет ничего, кроме командной строки под рукой. Расшифровывается как Print Working Directory. Запомните ее, пригодится.

Как понять, что находится в папке

Команда ls позволяет просмотреть содержимое каталога:


Имена команд для работы с каталогами

Хотя лучше использовать команду сразу с флагом «l»:

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


Имена команд для работы с каталогами

У команды есть и другие флаги, но чаще всего вы будете использовать именно «ls – l».

См также:
Команда ls Linux — подробнее о команде и всех ее флагах
Команда ls – просмотр каталога — о команде для новичков (без перечисления всех флагов)

Как перейти в другую директорию

С помощью команды cd:

Путь может быть абсолютным или относительным.

По абсолютному пути

Либо у вас где-то записан путь, «куда идти», либо вы подсмотрели его в графическом интерфейсе (например, в WinSCP).

Вставляем путь в командную строку после «cd»

Ну вот, мы переместились из домашней директории (обозначается как ~) в /home/student/log.

По относительному пути

Относительный путь — относительно вашей текущей директории, где вы сейчас находитесь. Если я уже нахожусь в /home/student, а мне надо в /home/student/log, команда будет такой:

cd log — перейди в папку log из той директории, где ты сейчас находишься

Если мне надо из /home/student/photo в /home/student/photo/city/msk/2017/cat_1, команда будет такой:

Я не пишу /home/student/photo, так как я уже там.


Имена команд для работы с каталогами

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

cd ~/log

Вот пример, где я вошла под пользователем students. Исходно была в директории /var, а попала в /home/students/log:

С автодополнением

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

— (cd tab) Может, ты имел в виду папку 1?
— (tab) Нет? Может, папку 2?
— (tab) Снова нет? Может, папку 3?
— (tab) Снова нет? Может, файл 1 (она перебирает имена всех файлов и директорий, которые есть в той, где вы сейчас находитесь)?
— (tab) У меня кончились варианты, поехали сначала. Папка 1?


Имена команд для работы с каталогами

cd (Tab)(Tab)(Tab) — система перебирает все файлы / папки в текущей директории.

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

Подняться наверх

Подняться на уровень выше:

Если нужно поднять на два уровня выше, то

И так до бесконечности =) Можно использовать файл, лежащий на уровне выше или просто сменить директорию.

См также:
Путь к файлу в linux

Как создать директорию

Используйте команду mkdir:

mkdir test — создает папку с названием «test» там, где вы находитесь

Можно и в другом месте создать папку:

mkdir /home/test — создает папку «test» в директории /home, даже если вы
сейчас не там

Когда это нужно? Например, если вам надо сделать бекап логов. Создаете папку и сохраняете туда нужные логи. Или если вы читаете инструкцию по установке ПО и видите там «создать папку». Через командную строку это делается именно так.

См также:
Как создать каталог в Linux с помощью команды mkdir

Как создать файл

Такая команда создаст пустой файл с названием «app.log». А потом уже можно открыть файл в редакторе и редактировать.

Как отредактировать файл

Вот честное слово, лучше делать это через графический интерфейс!

Начнем с nano. Указываете имя команды и путь в файлу:

Для перемещения по файлу используйте кнопки со стрелками. После того, как закончите редактировать файл, нажмите:

Самое приятное в nano — это подсказки внизу экрана, что нажать, чтобы выйти.


Имена команд для работы с каталогами

А вот с vim с этим сложнее. В него легко зайти:

vim test_env.json
vi test_env.json (предшественник vim)

Делюсь секретом, для выхода надо набрать:

Двоеточие запускает командный режим, а там уже вводим команду «q» (quit).

Исходно, когда мы открываем файл через vim, то видим его содержимое, а внизу информацию о файле:


Имена команд для работы с каталогами

Когда нажимаем двоеточие, оно печатается внизу:


Имена команд для работы с каталогами

Если не печатается, не паникуем! Тогда попробуйте нажать Esc (вернуться в нормальный режим), потом Enter (подтвердить команду), а потом снова печатайте. Фух, помогло, мы вышли оттуда!!!

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

:w — сохранить файл;
:q — закрыть редактор;

Ну а про возможности редактирования см статьи ниже =)

См также:
Как редактировать файлы в Ubuntu — подробнее о разных способах
Как пользоваться текстовым редактором vim — подробнее о vim и всех его опциях
Как выйти из редактора Vi или Vim? — зачем нажимать Esc

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

Допустим, у нас в директории /opt/app/log находится app.log, который мы хотим сохранить в другом месте. Как перенести лог в нужное место, если нет графического интерфейса, только командная строка?

cp что_копировать куда_копировать

Если мы находимся в директории /opt/app/log:

cp app.log /home/olga

В данном примере мы использовали относительный путь для «что копировать» — мы уже находимся рядом с логом, поэтому просто берем его. А для «куда копировать» используем абсолютный путь — копируем в /home/olga.

Можно сразу переименовать файл:

cp app.log /home/olga/app_test_2020_03_08.log

В этом случае мы взяли app.log и поместили его в папку /home/olga, переименовав при этом в app_test_2020_03_08.log. А то мало ли, сколько логов у вас в этом папке уже лежит, чтобы различать их, можно давать файлу более говорящее имя.

Если в «куда копировать» файл с таким именем уже есть, система не будет ничего спрашивать, просто перезапишет его. Для примера положим в папку log внутри домашней директории файл «app.log», который там уже есть:

Никаких ошибок, система просто выполнила команду.

См также:
Копирование файлов в linux

Скопировать директорию

Команда остается та же, «cp», только используется ключ R — «копировать папку рекурсивно»:

cp -r путь_к_папке путь_к_новому_месту

cp /opt/app/log /home/olga

Так в директории /home/olga появится папка «log».

Переместить файл

Если надо переместить файл, а не скопировать его, то вместо cp (copy) используем mv (move).

cp app.log /home/olga

mv app.log /home/olga

Можно использовать относительные и абсолютные пути:

mv /opt/app/logs/app.log /home/olga — абсолютные пути указаны, команда сработает из любого места

mv app.log /home/olga/app_2020_03_08.log — перенесли лог в /home/olga и переименовали

Переместить директорию

Аналогично перемещению файла, команда mv

mv /opt/app/log/ /home/olga/bakup/

Как удалить файл

С помощью команды rm (remove):

rm test.txt — удалит файл test.txt

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

rm * — удалит все файлы в текущей директории


Имена команд для работы с каталогами

Если нужно удалить папку, надо добавить флаг -r (recursive):

rm -r test_folder

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

rm -rf test_folder — просто все удалит без разговоров

Опция -v показывает имена удаляемых файлов:

rm -rfv test_folder — удалит папку со всем содержимым, но выведет имена удаляемых файлов

Тут вы хотя бы можете осознать, что натворили )))

См также:
Как удалить каталог Linux

Как изменить владельца файла

Это плохо, потому что никто другой с ними работать уже не сможет. Но можно создать файл под root-ом, а потом изменить его владельца с помощью команды chown.


Имена команд для работы с каталогами

В итоге был владелец root, а стал testbase. То, что надо!

См также:
Команда chown Linux

Как установить приложение

См также:
5 Best Linux Package Managers for Linux Newbies

Давайте посмотрим на примере, как это работает. В командной строке очень удобно работать с Midnight Commander (mc) — это как FAR на windows. К сожалению, программа далеко не всегда есть в «чистом» дистрибутиве.

И вот вы подняли виртуалку на centos 7, хотите вызвать Midnight Commander, но облом-с.

Ничего страшного, установите это приложение через yum:

yum install mc


Имена команд для работы с каталогами

Он там будет что-то делать, качать, а потом уточнит, согласны ли вы поставить программу с учетом ее размеров. Если да, печатаем «y»:

И система заканчивает установку.

Вот и все! Никаких тебе унылых «далее-далее-далее», сказал «установи», программа установилась! Теперь, если напечатать «mc» в командной строке, запустится Midnight Commander:


Имена команд для работы с каталогами

См также:
Как устанавливать программы для Linux
Yum, шпаргалка — всякие опции и плагины

Как запустить приложение

Некоторые приложения запускаются через скрипты. Например, чтобы запустить сервер приложения WildFly, нужно перейти в папку bin и запустить там standalone.sh. Файл с расширением .sh — это скрипт.

Чтобы запустить скрипт, нужно указать полный путь к нему:

/opt/cdi/jboss/bin/standalone.sh — запустили скрипт standalone.sh

Это важно! Даже если вы находитесь в той папке, где и скрипт, он не будет найден, если просто указать название sh-скрипта. Надо написать так:

./standalone.sh — запустили скрипт, если мы в той же директории

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

standalone.sh — запустили скрипт standalone.sh, путь к которому прописан в PATH

См также:
Запуск скрипта sh в Linux — подробнее о скриптах


Имена команд для работы с каталогами

Если же приложение запускается как сервис, то все еще проще:

service test start — запустить сервис под названием «test»
service test stop — остановить сервис

Чтобы сервис test запускался автоматически при рестарте системы, используйте команду:

chkconfig test on

Она добавит службу в автозапуск.

Как понять, где установлено приложение

Вот, например, для интеграции Jenkins и newman в Jenkins надо прописать полный путь к ньюману в параметре PATH. Но как это сделать, если newman ставился автоматически через команду install? И вы уже забыли, какой путь установки он вывел? Или вообще не вы ставили?

:/>  Что за программа «Power Automate на Windows 11» и можно ли ее удалить - Новости города Салавата

Чтобы узнать, куда приложение установилось, используйте whereis (без пробела):

Как создать архив

Стандартная утилита, которая будет работать даже на «голой» системе — tar. Правда, для ее использования надо запомнить флаги. Для создания архива стандартная комбинация cvzf:

tar -cvzf archive.tar.gz /home/test

В данном примере мы упаковали директорию /home/test, внутри которой было две картинки — 502.jpg и 504.jpg.

Для распаковки меняем флаг «c» на «x» и убираем «z»:

tar -xvf archive.tar.gz

Хотя система пишет, что распаковала «/home/test», на самом деле папка «test» появляется там, где мы сейчас находимся.

Давайте разберемся, что все эти флаги означают:

Для упаковки используется опция c — Create, а для распаковки x — eXtract.


Имена команд для работы с каталогами

Если очень хочется использовать rar, то придется изгаляться. Через yum установка не прокатит:

yum install rar
yum install unrar

Говорит, нет такого пакета:

No package rar available.
Error: Nothing to do

Придется выполнить целую пачку команд! Сначала скачиваем, разархивируем и компилируем:

wget http://rarlabs.com/rar/rarlinux-x64-5.4.0.tar.gz
tar xzf rarlinux-x64-5.4.0.tar.gz
cd rar
make install

mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib

unrar x test.rar

См также:
Установка RAR на Linux

Как посмотреть использованные ранее команды

Вот, допустим, вы выполняли какие-то сложные действия. Или даже не вы, а разработчик или админ! У вас что-то сломалось, пришел коллега, вжух-вжух ручками, magic — работает. А что он делал? Интересно же!

Или, может, вы писали длинную команду, а теперь ее надо повторить. Снова набирать ручками? Неохота! Тем более что есть помощники:

↑ (стрелочка «наверх») — показать последнюю команду
history — показать последние 1000 команд

Если надо «отмотать» недалеко, проще через стрелочку пролистать команды. Один раз нажали — система показала последнюю команду. Еще раз нажали — предпоследнюю. И так до 1000 раз (потому что именно столько хранится в истории).


Имена команд для работы с каталогами

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

Если тыкать в стрелочку не хочется, или команды была давно, можно напечатать «history» и внимательно изучить команды.

См также:
История команд Linux — больше о возможностях history

Как посмотреть свободное место

Сколько места свободно на дисках

Сколько весит директория

du -sh
du -sh * — с разбиением

Как узнать IP компьютера

Чтобы узнать IP машины, используйте команду:

Также можно использовать ifconfig:

ifconfig — выведет кучу инфы, в том числе ваш внешний IP
ip a — аналог, просто иногда Ifconfig дает очень много результата, тут поменьше будет

См также:
Displaying private IP addresses

Как узнать версию OS

Сидите вы у Заказчика на линуксовой машине. Пытаетесь что-то установить — не работает. Лезете гуглить, а способы установки разные для разных операционных систем. Но как понять, какая установлена на данной машине?


Имена команд для работы с каталогами

На этой виртуалке стоит CentOs 7.

Если нужна версия ядра:

См также:
Как узнать версию Linux

Как узнать, как работает команда

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


Имена команд для работы с каталогами

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

Команда удобна тем, что не надо даже уходить из командной строки, сразу получаешь всю информацию. К тому же это всегда актуальная информация. А что вы там нагуглите — неизвестно =))

Хотя лично мне проще какую-то команду прогуглить, ведь так я получу русское описание + сначала самые главные флаги (а их может быть много). Но я сама новичок в линуксе, это подход новичка. А лучше сразу учиться прокачивать навык поиска по man-у. Он вам очень пригодится для более сложных задач!

Если man у программы нет, используйте флаг -h (–help):

Как создать много тестовых папок и файлов

Допустим, у нас есть некая папка test. Создадим в ней сотню директорий и кучу файликов в каждой:

Вот и все, дальше можно играться с ними!


Имена команд для работы с каталогами

А выражения в скобках играют роль функции, которая выполняется в цикле и делает ручную работу за вас:

Как я пробовала эту команду. Сначала посмотрела, где нахожусь:

Символ $ при описании команд означает начало строки, куда мы пишем команду. Так мы отделяем то, что ввели сами (pwd) от ответа системы (/home/test).

Ага, в домашней директории. Создам себе песочницу:

Вот в ней и буду творить!

А потом можно проверить, что получилось:

cd olga
ls -l

Как-то так! Имхо, полезные команды.

Я нашла их в книге «Командная строка Linux. Полное руководство», они используются для того, чтобы создать песочницу для прощупывания команды find. Я, как и автор, восхищаюсь мощью командной строки в данном случае. Всего 2 строчки, а сколько боли бы принесло сделать похожую структуру через графический интерфейс!

И, главное, тестировщику полезно — может пригодиться для тестов.

Как протестировать IOPS на Linux

Это очень полезно делать, если машину вам дает заказчик. Там точно SSD-диски? И они дают хороший iops? Если вы разрабатываете серверное приложение, и от вас требуют выдерживать нагрузку, нужно быть уверенными в том, что диски вам выдали по ТЗ.

Наше приложение активно использует диск. Поэтому, если заказчик хочет видеть хорошие результаты по нагрузке, мы хотим видеть хорошие результаты по производительности самих дисков.

Но верить админам другой стороны на слово нельзя. Если приложение работает медленно, они, разумеется, будут говорить, что у них то все хорошо, это «они» виноваты. Поэтому надо тестировать диски самим.

Я расскажу о том, как мы тестировали диски. Как проверили, сколько IOPS они выдают.


Имена команд для работы с каталогами

Используем утилиту fio — https://github.com/axboe/fio/releases.

1) Скачиваем последнюю версию, распаковываем, переходим в каталог. В командах ниже нужно заменить «fio-3.19» на актуальную версию из списка

cd /tmp
wget https://github.com/axboe/fio/archive/fio-3.19.tar.gz
tar xvzf fio-3.19.tar.gz
rm fio-3.19.tar.gz
cd fio-fio-3.19

2) Должны стоять пакеты для сборки

./fio -readonly -name iops -rw=randread -bs=512 -runtime=20 -iodepth 32 -filename /dev/sda -ioengine libaio -direct=1

Какие должны быть результаты:

Свежесть определяется на момент написания статьи в 2017 году.

Если должно быть 50 тысяч, а диск выдает сильно меньше, то:

— он не SSD;
— есть сетевые задержки;
— неправильно примонтирован;
— с ними что-то еще плохое случилось и стоит поднять алярм.

И это все?

Разумеется, нет =))

Еще полезно изучить команду find и регулярные выражения. Тестировщику как минимум надо уметь «грепать логи» — использовать grep. Но это уже остается на самостоятельный гуглеж.
База, которая всегда нужна — pwd, cp, mv, mkdir, touch. Остальное можно легко гуглить, как только возникает необходимость.

Вот вам еще пара ссылочек от меня:

Для понимания структуры папок рекомендую статью «Структура папок ОС Linux. Какая папка для чего нужна. Что и где лежит в линуксе»

Книги и видео по теме

Книги:
Командная строка Linux. Уильям Шоттс
Скотт Граннеман. Linux. карманный справочник

Где тренироваться

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

А можно купить облачную машину. Когда мне надо было поиграться с линуксом, я пошла на SimpleCloud (он мне в гугле одним из первых выпал и у него дружелюбный интерфейс. Но можно выбрать любой аналог) и купила самую дешманскую машину — за 150 руб в месяц. Месяца вам за глаза, чтобы «пощупать-потыркать», и этой машины с минимумом памяти тоже.

У меня был когда-то план самой платить эти 150р за то, чтобы дать машину в общий доступ. Но увы. Как я не пыталась ее огородить (закрывала команды типа ssh, ping и прочая), у меня не получилось. Всегда есть люди, которых хлебом не корми, дай испортить чужое. Выложил в общий доступ пароли? На тебе ддос-атаку с твоего сервера. Ну и сервер блокируют. После N-ой блокировки я плюнула на это дело. Кто хочет научиться, найдет 150р.

Чтобы подключиться к машине, используйте инструменты:

WinSCP — что это и как использовать

Простые консольные команды, которые стоит знать всем

Навыки работы в терминале помогают быть более продуктивным.


Имена команд для работы с каталогами

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

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

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

Список базовых команд

pwd — информация о каталоге
cd — смена каталога
ls — список файлов в каталоге
cp & mv — скопировать/переместить файл/каталог
mkdir & touch — создать каталог/файл
rmdir & rm — удалить каталог/файл

cat, tail & head

— прочитать файл
grep — поиск текста в файле по регулярному выражению
find — поиск файла/каталога

Статья переведена при поддержке компании EDISON.

Мы программируем серверы, как управляемые через консоль, так и имеющие удобный пользовательский интерфейс.

Мы очень любим работать с интефейсами! 😉

Команда pwd выдаёт некоторый контекст о текущем рабочем каталоге. pwd — это сокращение от print working directory т.е. распечатать рабочий каталог. Результат команды — полный системный путь для текущего каталога.


Имена команд для работы с каталогами

Хотя pwd не имеет столько параметров, сколько у большинства других команд (поскольку она довольно проста), с её помощью можно игнорировать символические ссылки. Для этого надо передать опцию -P.

Это одна из наиболее часто используемых команд вместе со следующими двумя командами в этом списке.

Другая часто используемая команда, это cd. cd — это сокращение от change directory, т.е. смена каталога. Как следует из названия, она позволяет изменить текущий рабочий каталог.

:/>  IT S.W.A.T. – компьютерные и мобильные технологии –


Имена команд для работы с каталогами

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

В этом примере мы переходим в папку проекта, которая находится внутри папки «Загрузки»:


Имена команд для работы с каталогами

Имена команд для работы с каталогами

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


Имена команд для работы с каталогами

Следующая команда — это ls, сокращение от list, т.е. список. Она выводит список всех файлов в каталоге. Можно также указать каталог, чтобы получить список файлов в нём. Если каталог не указан, используется текущий рабочий каталог.


Имена команд для работы с каталогами

Обратите внимание, что есть несколько очень полезных опций, с помощью которых можно извлекать ещё более ценную информацию. Опция -a, например. Эта опция позволяет увидеть в списке скрытые файлы (названия которых начинаются с точки). Опция -l выдаёт длинный список, в котором, помимо прочего, указаны размеры файлов и разрешения.

Опции можно комбинировать:

Команда cp происходит от слова copy, т.е. копирование. Позволяет копировать файлы и каталоги. Первый указанный файл/каталог является исходным (что копируем), на втором месте — местом назначения (куда копируем). В следующем примере мы перемещаем изображение в папку «Загрузки».


Имена команд для работы с каталогами

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

Существует довольно много вариаций, как копировать файлы и каталоги. Например, возможно скопировать только файлы с определенным расширением. В следующем примере копируются все файлы с расширением jpg в папку «Загрузки».


Имена команд для работы с каталогами

Помимо команды cp есть также команда mv, которая обозначает move, т.е. перемещение. Эта команда используется для перемещения файлов и каталогов. Работает в целом так же, как и cp. Тем не менее, есть различия. Например, команда mv не идёт с опцией -R.

Чтобы изучить все параметры, доступные для команды mv, просто введите:

Чтобы создать каталог, можно воспользоваться командой mkdir, которая обозначает make directory, т.е. создание каталога. Эта команда требует обязательный аргумент: имя нового каталога. Проверить, была ли команда выполнена успешно, можно с помощью ls, рассмотренной выше.


Имена команд для работы с каталогами

Создать файл так же просто, как создать каталог. Вместо mkdir нужно использовать команду touch для создания нового файла.


Имена команд для работы с каталогами

Следует знать, что новосозданный файл будет пустым. И ещё раз, если хотите проверить, была ли команда выполнена успешно — используйте команду ls.

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

Чтобы удалить каталог, можно использовать команду rmdir, что является сокращением от remove directory, т.е. удаление каталога. Имейте ввиду — команда удаляет только пустые каталоги.


Имена команд для работы с каталогами

Более мощной является команда rm. Как вы, наверное, догадались, это сокращение от remove, т.е. удаление. Команда rm удаляет каждый указанный файл. Хотя с помощью этой команды можно удалить и каталоги, по умолчанию она этого не делает.


Имена команд для работы с каталогами

Когда rm выполняется с опцией -r, рекурсивно удаляются соответствующие каталоги, их подкаталоги и все файлы, которые там содержатся.

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


Имена команд для работы с каталогами

Когда дело доходит до чтения содержимого файла, есть несколько вариантов. Первый — команда cat — сокращение от concatenate, т.е. конкатенация. Несмотря на то, что команду можно использовать в разных целях, одна из вещей, которую она может делать, — показать содержимое файла.


Имена команд для работы с каталогами

Обратите внимание: выводится весь файл. Также есть случаи, когда вам нужны только первые или последние X строк файла. Для этого используется команды tail и head. tail выводит последние 10 строк файла, тогда как head — первые 10.


Имена команд для работы с каталогами

Используя опцию -n, можно указать, сколько строк нужно выводить. Тут приведён пример с tail, для head работает точно так же.


Имена команд для работы с каталогами

Команда grep, это сокращение от global regular expression print, т.е. глобальный вывод регулярного выражения. Используется для поиска текста. Файл будет просканирован на предмет информации, которую вы требуется получить, и результат будет представлен в указанном формате.

Начнём с очень простого примера. Есть файл, содержащий названия всех стран. Мы хотим проверить, есть ли слово Netherlands (Нидерланды) в списке. Обратите внимание, по умолчанию grep чувствителен к регистру.

Первый передаваемый аргумент — слово, которое ищем. А второй — файл, в котором будем искать.


Имена команд для работы с каталогами

Для поиска без учёта регистра используется опцию -i. В следующем примере найдётся и BeL и bel и BEL.


Имена команд для работы с каталогами

Обратите внимание, в приведённых выше примерах видно, что grep выводит всю соответствующую шаблону строку в терминал. Для ограничения количества совпадающих строк, используйте опцию -c.


Имена команд для работы с каталогами

Find ← ⇑

Последняя команда на сегодня — find (поиск), позволяющая быстро найти файл или каталог. Допустим, нужны все CSS-файлы в текущем каталоге. Мы могли бы получить их список, используя команду find.


Имена команд для работы с каталогами

Обратите внимание, команда find ищет и в подпапках тоже.

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

Если считаете, что в этом списке отсутствует команда или у вас просто есть отличное дополнение к этому списку, пожалуйста, дайте мне знать.

Спасибо за внимание!


Имена команд для работы с каталогами

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

Эта статья предназначена как раз для начинающих разработчиков. В ней описаны 8 крайне важных команд для работы с файлами, папками и файловой системой в целом. Все примеры из этой статьи размещены в Google Colab Notebook (ссылка на ресурс — в конце статьи).

Показать текущий каталог

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

Так вот, для того чтобы показать текущий каталог, нужна встроенная в Python OS-библиотека:

Ее легко запомнить, так что лучше выучить один раз, чем постоянно гуглить. Это здорово экономит время.

Имейте в виду, что я использую Google Colab, так что путь /content является абсолютным.

Проверяем, существует файл или каталог

Функция os.path.exists () принимает аргумент строкового типа, который может быть либо именем каталога, либо файлом.

В случае с Google Colab при каждом запуске создается папка sample_data. Давайте проверим, существует ли такой каталог. Для этого подойдет следующий код:

Эта же команда подходит и для работы с файлами:

Если папки или файла нет, команда возвращает false.

Объединение компонентов пути

Но не переживайте, Python прекрасно решает эту проблему благодаря функции os.path.join (). Давайте перепишем вариант из примера в предыдущем пункте, используя эту функцию:

Создание директории

Давайте посмотрим, как это работает на практике.

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


Имена команд для работы с каталогами

Именно поэтому рекомендуется всегда проверять наличие каталога с определенным названием перед созданием нового:

if not os.path.exists(‘test_dir’):
os.mkdir(‘test_dir’)

Еще один совет по созданию каталогов. Иногда нам нужно создать подкаталоги с уровнем вложенности 2 или более. Если мы все еще используем os.mkdir (), нам нужно будет сделать это несколько раз. В этом случае мы можем использовать os.makedirs (). Эта функция создаст все промежуточные каталоги так же, как флаг mkdir -p в системе Linux:

os.makedirs(os.path.join(‘test_dir’, ‘level_1’, ‘level_2’, ‘level_3’))

Вот что получается в результате.

Показываем содержимое директории

Команда отличается от os.walk (), где последний рекурсивно показывает все, что находится «под» каталогом. os.listdir () намного проще в использовании, потому что просто возвращает список содержимого:

В некоторых случаях нужно что-то более продвинутое — например, поиск всех CSV-файлов в каталоге «sample_data». В этом случае самый простой способ — использовать встроенную библиотеку glob:

from glob import globlist(glob(os.path.join(‘sample_data’, ‘*.csv’)))

Перемещение файлов

import shutilfor file in list(glob(os.path.join(‘sample_data’, ‘*.csv’))):
shutil.move(file, ‘test_dir’)

Кстати, есть два способа выполнить задуманное. Например, мы можем использовать библиотеку OS, если не хочется импортировать дополнительные библиотеки. Как os.rename, так и os.replace подходят для решения задачи.

Но обе они недостаточно «умные», чтобы позволить перемесить файлы в каталог.


Имена команд для работы с каталогами

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

for file in list(glob(os.path.join(‘test_dir’, ‘*.csv’))):
os.rename(
file,
os.path.join(
‘sample_data’,
os.path.basename(file)
))

Здесь функция os.path.basename () предназначена для извлечения имени файла из пути с любым количеством компонентов.

Другая функция, os.replace (), делает то же самое. Но разница в том, что os.replace () не зависит от платформы, тогда как os.rename () будет работать только в системе Unix / Linux.

Еще один минус — в том, что обе функции не поддерживают перемещение файлов из разных файловых систем, в отличие от shutil.

Поэтому я рекомендую использовать shutil.move () для перемещения файлов.

Копирование файлов

Если нужно скопировать файл README.md из папки «sample_data» в папку «test_dir», поможет функция shutil.copy():

shutil.copy(
os.path.join(‘sample_data’, ‘README.md’),
os.path.join(‘test_dir’)
)

Удаление файлов и папок

Когда нужно удалить файл, нужно воспользоваться командой os.remove():

Если требуется удалить каталог, на помощь приходит os.rmdir():

os.rmdir(os.path.join(‘test_dir’, ‘level_1’, ‘level_2’, ‘level_3’))

Однако он может удалить только пустой каталог. На приведенном выше скриншоте видим, что удалить можно лишь каталог level_3. Что если мы хотим рекурсивно удалить каталог level_1? В этом случае зовем на помощь shutil.


Имена команд для работы с каталогами

Функция shutil.rmtree() сделает все, что нужно:

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

Собственно, на этом все. 8 важных операций по работе с файлами и каталогами в среде Python мы знаем. Что касается ссылки, о которой говорилось в анонсе, то вот она — это Google Colab Network с содержимым, готовым к запуску.


Имена команд для работы с каталогами

Введение

Если у вас нет большого опыта работы с системами Linux, вы можете быть очень удивлены возможностями управления операционной системой из командной строки. Понимание принципов работы через консоль пригодится и для управления домашним компьютером, например, с ОС Ubuntu, и для администрирования серверов с установленными Unix-подобными системами. В этой статье мы попытаемся ознакомить вас с основами. Это руководство должно дать вам необходимый минимум знаний и хорошую отправную точку для дальнейших исследований.

:/>  Error abrt victoria что это


Имена команд для работы с каталогами

Навигация

Наиболее фундаментальные навыки, которыми вам необходимо овладеть, — это перемещение по файловой системе и получение представления о том, что находится вокруг вас. В этом разделе мы обсудим инструменты, которые позволят вам это сделать.

Поиск своего местоположения

После того как вы подключаетесь к своему серверу, вы обычно попадаете в домашний каталог вашей учетной записи пользователя (если не применены нестандартные настройки). Домашняя директория — это директория, которая используется для хранения пользовательских файлов, например документов, фото, видео-файлов. В этой директории вы имеете полные права для совершения любых действий, таких как создание, перемещение, удаление файлов и директорий. Чтобы узнать, где находится домашний каталог пользователя, используйте команду pwd (сокращение от print working directory). Эта команда выведет путь до каталога, в котором вы находитесь в данный момент:

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

директории пользователя совпадает с именем его учетной записи. Этот каталог находится внутри каталога /home, который, в  свою очередь, сам расположен внутри каталога верхнего уровня, который называется root, но обозначается одной косой чертой /.

Перемещение по файловой системе

Часто вам может понадобиться изменить текущий рабочий каталог, чтобы получить доступ к другим подкаталогам и файлам.

Чтобы изменить текущий каталогlinuxcd (сокращение от change directory), за которой, в качестве аргумента, следует имя каталога, относительно текущего:

или абсолютный (полный) путь:

Чтобы вернуться на уровень выше, в родительскую директорию, можно в качестве аргумента передать команде cd две точки:

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

Чтобы перейти в корневой каталог:

Просмотр содержимого каталогов

Теперь, когда мы знаем, как перейти в нужный нам каталог и отобразить путь до него, пришло время разобраться, как просмотреть содержимое каталога. Чтобы это сделать, в linuxкоманда ls (сокращение от list):

В ответ мы увидим список файлов и директорий:

addresses.txt    Documents    Downloads    grades.txt

Чтобы посмотреть содержимое каталога, надо передать путь до него:

Чтобы вывести список всех файлов в подкаталогах, используйте флаг -R:

ls -R /home/demo/

Так же в linux-команде ls можно передать дополнительные флаги. Например, чтобы вывести подробную информацию о содержимом каталога, такую как права доступа, дату последнего изменения, можно использовать команду:

ls -l /home/demo/

Чтобы увидеть скрытые файлы и директории (обычно их имена начинаются с точки) нужно использовать флаг -a. Флаги можно комбинировать друг с другом, например:

ls -la /home/demo/

Просмотр содержимого файлов

Для вывода содержимого файла в терминал, используется команда cat (сокращение от concatenate). В качестве аргумента ей необходимо передать имя файла в текущем каталоге или путь до него:

cat file1.txtcat /home/demo/file2.txt

Иногда вам может понадобиться найти местоположение определенного файла. Поиск файла в linux легко можно сделать с помощью команд find или locate.

Команда find ищет файл в определенном месте и принимает два аргумента: путь до директории, в которой нужно произвести поиск, и имя файла, который нужно найти. Для того, чтобы поискать файл с именем file1.txt в домашней директории пользователя demo, команда будет выглядеть следующим образом:

find /home/demo -name file1.txt

Команда locate, как и команда find, выполняет поиск файлов, но принимает только один аргумент. Команда locate ищет все возможные файлы и каталоги с заданным именем в системе:

Основные операции с файлами и каталогами

создать файл в linux, мы можем воспользоваться командой touch. Например, чтобы создать файл с именем file1.txt в домашней директории пользователя, введите в терминале команду:

Для того, чтобы создать папку в linux, используется команда mkdir (сокращение от make directory). В качестве аргумента передайте имя директории или путь, по которому хотите ее создать:

Удаление файлов и каталогов

Удаление файла в linux осуществляется при помощи команды rm (сокращение от remove).

Для удаление каталога используется эта же команда rm, но с флагом -r:

rm /home/demo/file1.txtrm -r /home/demo/Photos

Используйте эту команду с осторожностью, так как ее действие необратимо.

Перемещение и переименование

Для того, чтобы переместить, или переименовать файл в linux используется универсальная команда mv (сокращение от move).

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

mv file1.jpeg /home/demo/Photos/

Для переименования файла из file1.txt в file2.txt используется следующая запись:

mv file1.txt  file2.txt

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

mv file1.txt /home/demo/Documents/file2.txt

Команда cp (сокращение от copy), копирует файл из одного места в другое. В отличие от команды mv, используемой для перемещения, команда cp сохраняет исходный файл в его текущей директории и создает копию в другой директории. Команда для копирования файла с именем file1.txt в каталог /home/demo/Documents будет выглядеть так:

cp file1.txt  /home/demo/Documentscp  /home/demo/Ptotos/photo1.jpeg  /home/demo/Documents

Если вы хотите скопировать директорию, то необходимо использовать флаг -R:

cp -R /home/demo/tutorilas /home/demo/Documents/

Размер файлов и директорий

linux размер папки можно узнать при помощи команды du (сокращенно от disk utility). Если ввести эту команду без аргументов, то она выведет размеры всех файлов внутри текущей директории. Обычно, в качестве аргумента ей передают путь до директории, размер которой необходимо узнать, и флаги -sh для более красивого и читаемого вывода:

du -sh /home/demo/Music

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

df -h /dev/sda1

Отображение размера директории в конкретных единицах измерения

По умолчанию команда du отображает размер каталога в байтах. Если нам вдруг потребуется отображать размер файлов и каталогов в килобайтах или мегабайтах, используется эта же команда du, но к ней необходимо будет добавить флаг -k (килобайты) или -m (мегабайты).

Для того, чтобы установить отображение использования дискового пространства в килобайтах для нашей директории

du -k /home/demo/

Или в мегабайтах:

du -m /home/demo/

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

Чтобы узнать размеры ее файлов, нам понадобится флаг -a.

du -ah /home/demo/

Редактирование файлов

Для того, чтобы отредактировать файлы, можно воспользоваться встроенным в linuxnano.

Чтобы открыть файл с именем file1.txt, введите:

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

Копирование и вставка

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

Чтобы вставить строку из буфера, нажмите

Чтобы скопировать текст произвольной длины, сначала требуется его выделить. Для этого поместите курсор на начало текста, который планируется копировать, и нажмите Ctrl+6. Перемещайте курсор, текст будет выделяться.

Чтобы скопировать выделенный текст в буфер обмена, нажмите

Чтобы вырезать выделенный текст, нажмите

Поиск и замена

Для поиска используйте комбинацию клавиш Ctrl+W, затем введите поисковый запрос и нажмите Enter. Курсор переместится к первому найденному совпадению. Чтобы продолжить поиск до следующего совпадения, используйте комбинацию Alt+W.

Сохранение и выход из редактора

Если вы хотите сохранить текущие изменения в файле, нажмите комбинацию клавиш Ctrl+O. Если вы редактируете новый файл, вам будет предложено дать ему имя. Это сохранит текущие изменения, при этом nano останется открытым и вы сможете продолжить работу.

Если вы хотите выйти из редактора нажмите комбинацию клавиш

Программистам часто приходится работать в консоли — например, чтобы запустить тестирование проекта, закоммитить новый код на Github или отредактировать документ в vim. Всё это происходит так часто, что все основные действия с файлами становится быстрее и привычнее выполнять в консоли. Рассказываем и показываем основные команды, которые помогут ускорить работу в терминале под OS Windows.

Для начала нужно установить терминал или запустить командную строку, встроенную в Windows — для этого нажмите Win+R и введите cmd. Терминал часто встречается и прямо в редакторах кода, например, в Visual Studio Code.

Чтобы ввести команду в консоль, нужно напечатать её и нажать клавишу Enter.

Содержимое текущей папки — dir

Выводит список файлов и папок в текущей папке.

Открыть файл

Чтобы открыть файл в текущей папке, введите его полное имя с расширением. Например, blog.txt или setup.exe.

Перейти в другую папку — cd

Команда cd без аргументов выводит название текущей папки.

Перейти в папку внутри текущего каталога:

Перейти на одну папку вверх:

Перейти в папку на другом диске:

Чтобы просто изменить диск, введите c: или d:

Создать папку — mkdir или md

Создаём пустую папку code внутри папки html:

Создаём несколько пустых вложенных папок — для этого записываем их через косую черту:

Создаётся папка css, внутри которой находится папка js. Чтобы проверить это, используем команду tree. Она показывает дерево папок.

Удалить папку — rmdir или rd

Чтобы удалить конкретную папку в текущей, введите команду rmdir:

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

Чтобы удалить дерево папок, используйте ключ /s. Тогда командная строка запросит подтверждение перед тем, как удалить всё.

Показать дерево папок — tree

В любом момент мы можем увидеть структуру папок. Для этого используется команда tree.

Если вы хотите посмотреть содержимое всего диска, введите tree в корне нужного диска. Получится красивая анимация, а если файлов много, то ещё и немного медитативная.

Удаление файла — del или erase

Команда для удаления одного или нескольких файлов.

Переименование файла — ren или rename

Последовательно вводим ren, старое и новое имя файла.

Команды одной строкой

Информация о сетевых настройках — ipconfig.

Список запущенных процессов — tasklist.

Справка по командам — help

Команда help без аргументов выводит список всех возможных команд. help вместе с именем команды выведет справку по этой команде.

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

👉🏻 Больше статей о фронтенде и работе в айти в телеграм-канале.

Материалы по теме

«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.