Скорость и эффективность — ключевые навыки, имеющие первостепенное значение для продуктивности в разработке.
Чем больше времени уходит на выполнение простых задач, таких как поиск файлов или отображение их содержимого, тем меньше времени остается на саму разработку. При работе в командной строке псевдонимы и пользовательские функции ускоряют рутину, позволяя быстрее вернуться к основной работе.
Если вам приходится заглядывать в 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'
Это общий псевдоним для отображения содержимого директории, но с добавленной скоростью отображения скрытых файлов в форме списка с дополнительными подробностями и в удобочитаемом формате. Вместо бесполезного вывода:
Вы получите гораздо более информативный вывод:
Здесь сразу видно директории, разрешения для их пользователей/групп, размеры, а также время создания и изменения. Я часто применяю этот псевдоним, чтобы узнать, когда данные записываются в файлы, или проверить, кто имеет доступ к определенной директории. Очень удобно!
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-get
, yum
или brew
.
Надеюсь, вам понравился этот список команд терминала и, возможно, вы даже внедрите некоторые из них в свой рабочий процесс, чтобы работать быстрее и эффективнее. Псевдонимы для копирования:
alias addkey='eval $(ssh-agent) && ssh-add'
alias ll='ls -lah'
Читайте также:
- Как писать Bash-однострочники для клонирования и управления GitHub/GitLab репозиториями
- Программное обеспечение без конструкции if-else
- Руководство по навигации с помощью клавиатуры
Перевод статьи Tate Galbraith: 6 Terminal Commands You Should Know