От переключения ваших личных ключей на списки каталогов со скрытыми файлами
Для разработчика есть два ключевых фактора, которые имеют первостепенное значение для продуктивной настройки: скорость и эффективность.
Чем больше времени вы тратите на выполнение простых задач, таких как поиск файлов или отображение их содержимого, тем больше у вас уходит от критического времени разработки. При работе в командной строке такие вещи, как псевдонимы и пользовательские функции, могут ускорить процесс и позволить вам быстрее вернуться к разработке.
Если каждый раз, когда вам нужно выполнить базовые задачи, вам нужно отправиться в 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
.
Надеюсь, вам понравился этот список полезных и забавных команд терминала! Возможно, вы даже внедрите некоторые из них в свой рабочий процесс, чтобы ускорить работу и работать более эффективно. Какие из ваших любимых команд вы придумали?