В нашей предыдущей статье сделали подборку полезных комбинаций горячих клавиш терминала linux. Терминал linux остается главным инструментом по доступу к удаленным серверам и основным помощником в работе профессионалов и новичков, и в этой статье мы рассмотрим другие возможности работы с командной строкой. Ниже подборка.
- bg/fg
Используя сочетание клавиш Ctrl+Z (подробно рассказывали в предыдущей статье), вы можете оставить процесс в нерабочем состоянии. Вы можете запустить его заново командой fg (forground). Также можно возобновить процесс в фоне, что позволит и дальше использовать терминал, пока программа работает. Делается это командой bg (background). Эти команды применяются к последнему остановленному процессу. - pushd/popd
Довольно часто приходится прыгать между одними и теми же директориями. Чтобы постоянно не прописывать путь заново, вы можете ввести команду pushd, которая добавит в стек текущее местоположение. Теперь, когда вы будете находиться в другой директории, просто введите popd и вас вернёт назад.
Как уже упоминалось выше: pushd - это стек (последний вошёл - первый вышел). А значит вы можете добавлять сколько угодно путей, которые будут уходить со стека с каждым вызовом popd.
- !!
Одна из удобнейших функций терминала. Введите в терминале !! , и они автоматически заменятся на последнюю введённую вами команду. Самое частое его использование: sudo !! , однако - это не единственное применение восклицательного знака. Прописав history вам в терминал выдаст список из всех ранее введённых вами команд и их номера. Вы можете воспроизвести их так: ![num].
Ещё один вариант использования: ![номер команды]: [номер аргумента] - позволяет вывести конкретный аргумент ранее введённой команды
- nohup ... &
Бывает необходимо создать демон из некоторой команды. Для этого введите в терминале команду: nohup [command] & - команда создаст фоновый процесс, который продолжит работать даже после того, как пользователь вышел из системы.
Если же вам просто нужно создать фоновый процесс, то введите & после необходимой команды.
- readlink
Иногда нужно указать полный путь до файла, но он слишком длинный и/или запутанный. В этом случае поможет команда readlink. Введите readlink -e [file] и в выводе получите путь до файла.
Пример использования: firefox $(readlink -e index.html)
- cd -
Выше мы рассматривали команды pushd/popd, которые позволяют запоминать предыдущие директории и быстро между ними переключаться. Если же вам нужно перемещаться лишь между двумя директориями, то можете использовать команду cd -. Символ ~ используется, как домашняя директория текущего пользователя. Так же как и $USER. - Файловые дескрипторы
Существует два стандартных потока:
stdout - стандартный поток вывода,
stderr - стандартный поток ошибок. Из первого будет идти всё, что должна вывести программа, а из второго, только ошибки, которые возникли во время работы программы. С ними мы и будем работать.
Рассмотрим несколько примеров:
- prog > file - Вывод stdout записывается в файл, а stderr в терминал,
- prog 2>err - Вывод stdout в терминал, а stderr в файл err,
- prog 1>file 2>err - Вывод stdout в file, а stderr в файл err,
- prog >file 2>&1 - слияние stderr и stdout.