Качество превыше количества: создание идеального проекта в науке о данных


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

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

Если вам приходится заглядывать в Stack Overflow или заниматься поиском в интернете каждый раз, когда вы выполняете основные задачи, то вы теряете время, которое можно было бы потратить на что-то более важное, например на написание кода! Ниже — список полезных команд для выполнения повторяющихся, иногда раздражающих задач:

1. SSH-агент и приватные ключи

alias addkey='eval $(ssh-agent) && ssh-add'

Случалось ли у вас такое, что, закончив работу над функцией, вы пытались перенести изменения Git на GitHub или получить доступ к удаленному серверу через SSH — и выбрасывалось сообщение об ошибке или запрос пароля? Скорее всего, причина в том, что вы перезагрузили компьютер и потеряли SSH-агента вместе со всеми добавленными ключами.

Один из простых способов исправить это — перезапустить агента и повторно добавить ключи SSH. Вы можете добавить этот псевдоним в свой профиль bash — тогда, чтобы начать работу, вам потребуется ввести только addkey. Не стесняйтесь менять «addkey» на что-то более подходящее вашему стилю.

Помните: команда ssh-add ожидает, что ключ находится в ~/.ssh/id_rsa. Если вы переименовали ключ или хотите добавить несколько ключей, то укажите имя, используя путь в качестве аргумента:

ssh-add ~/.ssh/my_special_key

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

2. Обнаружение сети с помощью Ping6

ping6 -I en0 ff02::1

Наверняка вы слышали о ping, но как насчет его грозного брата ping6, предназначенного для пингования адресов IPv6?

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

Заменив en0 своим интерфейсом, при передаче специального адреса в строке выше (то есть префикса ff02::1) в ping6 можно увидеть отправителей ответов и просмотреть их адреса.

Эту функцию можно применять для обнаружения сети и даже для получения доступа к системам, адрес которых вы потеряли. Я часто работаю с устройствами с адресами IPv6, и мне трудно их запоминать. Поэтому возможность быстро отправить команду и посмотреть, что происходит в локальной сети, оказалась очень полезной.

3. Подробные списки директорий

alias ll='ls -lah'

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

Список директории с простым ‘ls’

Вы получите гораздо более информативный вывод:

Список директории с подробным ‘ls’

Здесь сразу видно директории, разрешения для их пользователей/групп, размеры, а также время создания и изменения. Я часто применяю этот псевдоним, чтобы узнать, когда данные записываются в файлы, или проверить, кто имеет доступ к определенной директории. Очень удобно!

4. Текущие размеры файлов в директории

alias curfs='du -sch ./*'

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

Вывод выглядит так:

148K ./dir1 136K ./dir2 722M ./dir3 45M ./dir4 8.0K ./dir5 43M ./dir6 4.0K ./dir7 121M ./dir8 257M ./dir9 0B ./dir10 1.2G total

5. Поиск вложенных файлов

find . -name <filename>

Забыли, в какой директории находится файл? Команда find спешит вам на помощь! Заменив <filename> именем файла, который вам нужно найти, вы выполните поиск по всем директориям, начиная с той, в которой вы находитесь. Как только файл найден, вы увидите полный путь к нему:

./dir1/dir2/file.ext

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

6. Watch

Если вы еще не используете watch, то многое теряете! Идея проста: вы передаете какое-либо действие и указываете, как часто его нужно выполнять. Вот так:

watch -n 1 'cat test.txt'

Этот фрагмент сообщает watch, что команду cat нужно выполнять каждую секунду. После запуска этой команды экран будет переписан для отображения содержимого файла, как если бы вы использовали less. Первые строки — это таймер, показывающий время повторного отображения содержимого.

Every 1.0s: cat test.txt hostname.local: Fri Jan 3 08:57:29 2020 line1 line2 line3

Эта команда пригодится, когда вы вывели данные в файл и хотите видеть изменения по мере их возникновения. Также можно использовать tail -f, но способ с watch намного чище, потому что экран переписывается каждый раз, а watch легко обрабатывает интервал между повторами. Эта возможность не доступна в каждом дистрибутиве по умолчанию, но ее легко установить с помощью apt-getyum или brew.

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

alias addkey='eval $(ssh-agent) && ssh-add' alias ll='ls -lah'

Перевод статьи Jeremie Harris: Quality over quantity: building the perfect data science project


Поделиться статьей:


Вернуться к статьям

Комментарии

    Ничего не найдено.