От переключения ваших личных ключей на списки каталогов со скрытыми файлами

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

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

Если каждый раз, когда вам нужно выполнить базовые задачи, вам нужно отправиться в 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, но как насчет его (s cary ) брата ping6, предназначенного для проверки связи с IPv6-адресами?

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

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

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

Если вы боретесь с пониманием основных концепций IPv6 (как и я), то Джо Кардилло сделал замечательную статью об IPv6 и IPv4 здесь.

3. Подробный список каталогов

alias ll='ls -lah'

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

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

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

4. Текущий размер каталога

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> именем файла, который вы ищете, find будет перемещаться по всем каталогам (начиная с того, в котором вы находитесь), ища ваш файл.

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

./dir1/dir2/file.ext

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

6. Смотрите

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

watch -n 1 'cat test.txt'

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

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

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

По умолчанию это доступно не во всех дистрибутивах, но для начала легко устанавливается с apt-get, yum или brew.

Надеюсь, вам понравился этот список полезных и забавных команд терминала! Возможно, вы даже внедрите некоторые из них в свой рабочий процесс, чтобы ускорить работу и работать более эффективно. Какие из ваших любимых команд вы придумали?