Глазурь и кофе

Новости со всего света

Терминал в Linux

by adminon 21.08.202021.08.2020

На основе «20 Linux Command Tips and Tricks That Will Save You A Lot of Time»

Видели про-юзеров Linux, которые эффективно работают в терминале? Хотите так же? Не вопрос: в этой статье мы собрали некоторые из полезных команд, которые помогут вам сэкономить время и повысить продуктивность.

Содержание

    • Использование табов для автодополнения
    • Возвращение в последнюю рабочую директорию
    • Возвращение в домашнюю директорию
    • Вывести содержимое каталога
    • Запуск нескольких команд за раз
    • Запуск нескольких команд за раз при условии, что предыдущая команда была выполнена успешно
    • Время убивать
    • Пора остановиться
    • Простой поиск и использование предыдущих команд
    • Выводим консоль из зависания после Ctrl+S
    • Переход к началу или концу строки
    • Чтение лог-файла в реальном времени
    • Чтение сжатых логов без извлечения
    • Использование less для чтения файлов
    • Использование аргумента предыдущей команды с помощью !$
    • Использование предыдущей команды в текущей с помощью !!
    • Использование alias для исправления опечаток
    • Перезагружаемся
    • Вставка скопированного текста в терминал
    • Завершить работающий процесс/команду
    • Команда для скриптов или команд, которым нужен интерактивный ответ
    • Очистить файл, не удаляя его
    • Узнать, есть ли файл с определённым текстом
    • Получаем справку для каждой команды
    • Получаем историю команд
    • Быстро запускаем команды из истории
    • Выполняем команду в обход истории
    • Поднимаем простой HTTP-сервер
    • Пишем длинные команды с удобством
    • Восстанавливаем терминал
    • Информация о файловых системах
    • Деревья процессов
    • Экран блокировки
    • Супершелл
    • Быстро открываем файлы в программе по умолчанию
    • Статус системных сервисов
    • Быстро ищем файлы
    • Используем вывод одной команды в качестве аргумента другой
    • Календарь
    • Планировщик задач
    • Получаем свой внешний IP
    • Прогноз погоды
    • Получаем таблицу ASCII
    • Простой калькулятор
    • Выполняем команду в другой директории и возвращаемся обратно
    • Узнаём, какие библиотеки нужны команде/библиотеке
    • Узнаём, что лежит внутри файла
    • Многократный запуск команды
    • Время на запуск команды
    • Системные вызовы команды
    • Запоминаем набираемую команду
    • Выкачиваем сайты
    • Проводим туннели
  • 1) Установка Links
    • 2) Установка Elinks
    • 3) Установка Lynx
    • 4) Установка w3m:
    • 5) Установка Links2
    • 6) Установка Netrik
  • Выводы

Использование табов для автодополнения

Когда вы начинаете что-то вводить в терминале, вы можете нажать Tab и вам будут предложены возможные варианты продолжения, которые начинаются с введённой вами строки.

Например, если вы хотите скопировать файл с именем file1.txt, вы можете ввести только cp f, нажать Tab и увидеть возможные варианты.

$ cp f file1.txt file2.txt file3.txt file4.txt $ cp f

Также Tab можно использовать для автодополнения команд.

Возвращение в последнюю рабочую директорию

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

cd —

Она вернёт вас в последнюю рабочую директорию и вам не придётся вручную вводить длинный путь.

Примечание Последняя рабочая директория хранится в переменной окружения OLDPWD; вы можете использовать эту переменную для своих целей (попробуйте echo $OLDPWD) или даже подложить команде cd — другой путь (OLDPWD=/usr/bin cd -).

Возвращение в домашнюю директорию

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

cd ~

А вообще, можно ограничиться командой cd и получить тот же результат. В большинстве современных дистрибутивов Linux эта команда должна сработать.

Вывести содержимое каталога

Вы, наверное, догадываетесь, какая команда нужна для отображения содержимого каталога. Всем известно, что для этого можно использовать ls -l.

Однако не все знают, что можно обойтись командой ll.

Конечно, всё зависит от дистрибутива, но в большинстве случаев вы сможете воспользоваться этой командой.

$ ll total 44 -rw-r—r—. 1 root root 720 May 31 2016 bootchart.conf -rw-r—r—. 1 root root 615 Jun 22 14:11 coredump.conf -rw-r—r—. 1 root root 0 Apr 20 16:56 dont-synthesize-nobody -rw-r—r—. 1 root root 1027 Jun 22 14:11 journald.conf -rw-r—r—. 1 root root 1042 Jul 18 19:03 logind.conf drwxr-xr-x. 2 root root 4096 Jul 18 19:05 network -rw-r—r—. 1 root root 688 Jul 18 19:03 resolved.conf drwxr-xr-x. 16 root root 4096 Sep 15 13:29 system -rw-r—r—. 1 root root 1682 Jul 18 19:03 system.conf -rw-r—r—. 1 root root 677 Jul 18 19:03 timesyncd.conf drwxr-xr-x. 2 root root 4096 Jul 18 19:05 user -rw-r—r—. 1 root root 1130 Jun 22 14:11 user.conf

Примечание На самом деле, ll является не отдельной командой, а псевдонимом для ls -l.

Запуск нескольких команд за раз

Допустим, вам нужно запустить несколько команд одну за другой. Что вы будете делать? Подождёте завершения первой команды, а затем запустите следующую?

Вместо этого вы можете использовать разделитель ;. Таким образом можно запустить несколько команд на одной строке. Вам не нужно ждать, пока какая-то из команд завершит свою работу, чтобы запустить следующую.

command_1; command_2; command_3

Примечание При запуске команд таким образом, они выполняются не параллельно, а последовательно. Если вам нужен именно первый вариант, то используйте конструкцию (command_1 &); (command_2 &).

Запуск нескольких команд за раз при условии, что предыдущая команда была выполнена успешно

Как запускать несколько команд за раз вы уже знаете. А как убедиться, что команды не завершились с ошибкой?

Допустим, вы хотите собрать код и запустить его в случае успешной сборки.

В этом случае вы можете использовать разделитель &&, который запускает следующую команду только при условии, что предыдущая успешно завершилась.

command_1 && command_2

Как пример использования && можно привести команду sudo apt update && sudo apt upgrade для обновления системы через терминал на системах, основанных на Debian.

Время убивать

Есть несколько способов «убить» программу. Команда killall сделает это по имени, а kill требуется номер процесса. Например, killall chrome убьёт все процессы chrome. Также можно послать любому процессу сигнал прерывания (как Ctrl+C) с помощью kill -INT <номер процесса>.

Пора остановиться

Чтобы поставить работающую команду на паузу нажмите комбинацию Ctrl+Z, а чтобы продолжить — %.

Простой поиск и использование предыдущих команд

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

Здесь поможет обратный поиск. С его помощью можно по заданному условию найти команду в истории.

Просто нажмите комбинацию Ctrl+R и введите часть команды. Затем вам будут показаны команды из истории, которые удовлетворяют заданному условию.

Ctrl+R <условие>

По умолчанию показывается только один результат. Чтобы увидеть больше результатов, нужно повторно нажать Ctrl+R. Чтобы выйти из поиска, нажмите Ctrl+C.

Учтите, что в некоторых оболочках Bash можно использовать Page Up и Page Down с условием поиска для автодополнения команды.

Выводим консоль из зависания после Ctrl+S

Многие привыкли использовать комбинацию Ctrl+S для сохранения. Однако после её использования в терминале, он часто зависает. Чтобы вернуть его в нормальное состояние, нажмите комбинацию Ctrl+Q.

Переход к началу или концу строки

Допустим, вы вводите длинную команду и вдруг понимаете, что вам нужно что-то изменить в её начале. Чтобы попасть в начало или конец строки вы можете несколько раз нажать клавишу стрелки влево/вправо или Home/End. А можете нажать Ctrl+A или Ctrl+E.

Чтение лог-файла в реальном времени

В ситуациях, когда вам нужно анализировать логи при запущенном приложении, можно использовать команду tail с флагом -f.

tail -f <путь к лог-файлу>

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

tail -f <путь к лог-файлу> | grep <регулярное выражение>

Кроме того, вы можете использовать флаг -F, чтобы tail продолжал работу даже в случае удаления лог-файла. Таким образом, когда лог-файл снова будет создан, tail продолжит логирование.

Если вы хотите просматривать системный лог в реальном времени, воспользуйтесь аналогичной опцией -f команды journalctl:

journalctl -f

Чтение сжатых логов без извлечения

Серверные логи обычно сжимаются gzip’ом для сохранения дискового пространства. Это становится проблемой для разработчика или сисадмина, который анализирует эти логи. Возможно, вам придётся скопировать архив в другое место, а затем извлечь его, так как не всегда есть права на извлечение логов.

К счастью, в таких ситуациях всегда спасут z-команды. Они являются альтернативами обычных команд, которые используются для работы с логами вроде less, cat, grep.

Поэтому вы можете воспользоваться zless, zcat, zgrep и т.д., даже не извлекая логи.

Использование less для чтения файлов

Команда cat не всегда лучший выбор для отображения содержимого файла, особенно если он большой — cat выведет сразу весь файл.

Вы можете использовать Vi, Vim или другой терминальный текстовый редактор, но если вам просто нужно прочитать файл, то команда less подойдёт гораздо лучше.

less <путь к файлу>

В less можно искать нужную подстроку, листать по страницам, отображать номера строк и не только. А ещё less может читать не только текстовые документы, но ещё и архивы и другие типы файлов.

Использование аргумента предыдущей команды с помощью !$

Использование аргумента предыдущей команды может пригодиться во многих ситуациях. Например, вы создали директорию и вам нужно сразу в неё перейти.

$ ls / bin boot cdrom dev etc home sys tmp usr var vmlinuz vmlinuz.old $ cd !$ cd /

Ещё лучше использовать alt+. . Множественное нажатие точки позволяет выбрать аргумент одной из нескольких предыдущих команд.

Использование предыдущей команды в текущей с помощью !!

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

Быстрое sudo !! позволяет сэкономить немного времени.

Использование alias для исправления опечаток

Вероятно, вы уже знаете, зачем нужна команда alias. Её можно приспособить для исправления опечаток.

Представим, что вместо grep вы часто пишете gerp. Если вы установите псевдоним следующим образом, то вам не придётся больше перепечатывать команду:

alias gerp=grep

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

Перезагружаемся

Чтобы выключить компьютер из терминала, введите poweroff, а для перезагрузки — reboot.

Вставка скопированного текста в терминал

Здесь не всё однозначно, так как между дистрибутивами Linux и терминалами есть определённая разница. Но в общем случае вставить текст можно одним из следующих способов:

  • Скопируйте текст и кликните правую кнопку мыши для вставки (работает в Putty и других Windows-клиентах SSH);
  • Скопируйте текст и нажмите среднюю кнопку мыши (колёсико) для вставки;
  • Ctrl+Shift+C для копирования и Ctrl+Shift+V для вставки;
  • В некоторых эмуляторах терминала работает привычная комбинация Ctrl+V.

Завершить работающий процесс/команду

Возможно, это слишком очевидно. Если у вас запущена команда, работу которой вы хотите завершить, просто нажмите Ctrl+C и команде будет отправлен сигнал прерывания (SIGINT). А если вы хотите быстро покинуть терминал, нажмите комбинацию Ctrl+D, которая для баша и других интерактивных программ означает окончание ввода.

Команда для скриптов или команд, которым нужен интерактивный ответ

Команда yes может пригодиться, если какой-то скрипт/команда требует взаимодействия с пользователем, которое заключается только в нажатии Y каждый раз.

yes | <команда или скрипт>

Очистить файл, не удаляя его

Если вам нужно только очистить содержимое файла, а не удалить его, вы можете сделать это следующим образом:

> имя_файла

Узнать, есть ли файл с определённым текстом

В терминале Linux можно искать разными способами. Если вам нужно узнать, есть ли файл(ы) с определённым текстом, можете воспользоваться этой командой:

grep -Pri <текст_для_поиска> <путь_к_директории>

Получаем справку для каждой команды

Почти все команды/инструменты командной строки содержат справку с указаниями по работе. Чтобы получить справку, воспользуйтесь этой командой:

<команда> —help

Кроме того, порой можно получить более подробную справку с помощью команды man <команда>.

Получаем историю команд

Если вы хотите взглянуть на все команды, которые вы когда-либо запускали, введите history. Если вам нужен не полный список, а только несколько последних, воспользуйтесь командой fc -l.

Быстро запускаем команды из истории

При получении команд одним из вышеуказанных способов рядом с каждой командой находится её номер в истории. Чтобы быстро запустить команду из этого списка просто введите !<номер команды>.

Выполняем команду в обход истории

Если вы хотите выполнить команду так, чтобы она не сохранилась в истории, просто введите пробел перед командой.

Поднимаем простой HTTP-сервер

Чтобы поднять сервер и сделать доступной текущую директорию по адресу http://localhost:8000/ введите python3 -m http.server.

Пишем длинные команды с удобством

Если зажать Ctrl, а затем нажать по очереди X и E, то откроется текстовый редактор, в котором можно будет спокойно записать длинную команду, а после выхода из него — выполнить её.

Восстанавливаем терминал

Если вы вывели в терминал сырые бинарные данные или ещё что-то, что выводить не стоило, то убрать увиденную абракадабру позволит команда reset.

Информация о файловых системах

Чтобы получить информацию о текущих смонтированных файловых системах с удобным оформлением по столбцам, введите команду mount | column -t.

Также вы можете воспользоваться командой findmnt, которая отображает информацию в виде красивого дерева и сама форматирует столбцы, а также может найти нужную файловую систему:

$ findmnt TARGET SOURCE FSTYPE OPTIONS / /dev/sda4 ext4 rw,relatime,seclabel ├─/sys sysfs sysfs rw,nosuid,nodev,noexec,rela │ ├─/sys/kernel/security securityfs securit rw,nosuid,nodev,noexec,rela │ ├─/sys/fs/cgroup tmpfs tmpfs ro,nosuid,nodev,noexec,secl │ │ ├─/sys/fs/cgroup/unified cgroup2 cgroup2 rw,nosuid,nodev,noexec,rela │ │ ├─/sys/fs/cgroup/pids cgroup cgroup rw,nosuid,nodev,noexec,rela │ │ └─/sys/fs/cgroup/devices cgroup cgroup rw,nosuid,nodev,noexec,rela │ ├─/sys/fs/pstore pstore pstore rw,nosuid,nodev,noexec,rela │ ├─/sys/firmware/efi/efivars efivarfs efivarf rw,nosuid,nodev,noexec,rela │ ├─/sys/kernel/config configfs configf rw,relatime │ └─/sys/fs/fuse/connections fusectl fusectl rw,relatime ├─/proc proc proc rw,nosuid,nodev,noexec,rela │ └─/proc/sys/fs/binfmt_misc systemd-1 autofs rw,relatime,fd=30,pgrp=1,ti │ └─/proc/sys/fs/binfmt_misc binfmt_misc binfmt_ rw,relatime ├─/home /dev/sda6 ext4 rw,relatime,seclabel └─/var/lib/nfs/rpc_pipefs sunrpc rpc_pip rw,relatime

Деревья процессов

Есть инструмент pstree, который умеет рисовать красивые деревья процессов. Например:

$ pstree 1721 gnome-shell─┬─Xwayland───5* ├─gnome-system-mo───3* ├─ibus-daemon─┬─ibus-dconf───3* │ ├─ibus-engine-sim───2* │ ├─ibus-extension-───3* │ └─2* ├─telegram-deskto───14* └─13*

Экран блокировки

Чтобы заблокировать экран, используйте команду $ loginctl lock-session.

Для разблокировки экрана введите команду $ loginctl unlock-session. Конечно, вряд ли вы сможете использовать терминал при заблокированном экране, однако вы можете пойти обходными путями. Например, можно создать задачу для разблокировки через какое-то время.

Супершелл

Чтобы запустить шелл от имени суперпользователя, можно воспользоваться командой sudo -s. Во многих источниках можно встретить вариант sudo su, который тоже работает, но медленнее, так как запускает лишний процесс.

Быстро открываем файлы в программе по умолчанию

Команда xdg-open позволяет открыть любой файл в соответствующей программе. Например, xdg-open file.txt откроет файл в текстовом редакторе по умолчанию.

Статус системных сервисов

Чтобы посмотреть статус системных сервисов, введите команду systemctl status или systemctl status <имя сервиса>, если вас интересует конкретный сервис.

Быстро ищем файлы

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

$ find /usr/include -name gtk.h /usr/include/gtk-3.0/gtk/gtk.h

Используем вывод одной команды в качестве аргумента другой

Чтобы использовать вывод одной команды в качестве аргумента другой, используйте конструкцию команда-2 $(команда-1). Например:

$ less $(find /usr/include -name gtk.h)

Календарь

Команда cal может нарисовать календарь на текущий месяц (и даже выделить текущее число) или на другой промежуток:

$ cal September 2018 Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 $ cal 2019 2019 January February March Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 1 2 3 1 2 3 7 8 9 10 11 12 13 4 5 6 7 8 9 10 4 5 6 7 8 9 10 14 15 16 17 18 19 20 11 12 13 14 15 16 17 11 12 13 14 15 16 17 21 22 23 24 25 26 27 18 19 20 21 22 23 24 18 19 20 21 22 23 24 28 29 30 31 25 26 27 28 25 26 27 28 29 30 31 April May June Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 1 2 3 4 5 1 2 8 9 10 11 12 13 14 6 7 8 9 10 11 12 3 4 5 6 7 8 9 15 16 17 18 19 20 21 13 14 15 16 17 18 19 10 11 12 13 14 15 16 22 23 24 25 26 27 28 20 21 22 23 24 25 26 17 18 19 20 21 22 23 29 30 27 28 29 30 31 24 25 26 27 28 29 30 July August September Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 1 2 3 4 1 8 9 10 11 12 13 14 5 6 7 8 9 10 11 2 3 4 5 6 7 8 15 16 17 18 19 20 21 12 13 14 15 16 17 18 9 10 11 12 13 14 15 22 23 24 25 26 27 28 19 20 21 22 23 24 25 16 17 18 19 20 21 22 29 30 31 26 27 28 29 30 31 23 24 25 26 27 28 29 30 October November December Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 1 2 3 1 7 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8 14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15 21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22 28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29 30 31

Планировщик задач

Чтобы выполнить какую-то команду в нужное вам время, воспользуйтесь at:

echo команда-для-выполнения | at время_выполнения

Учтите, что эта команда может отсутствовать на вашей системе, и вам придётся установить её самостоятельно.

Получаем свой внешний IP

Чтобы получить свой внешний IP-адрес введите curl ifconfig.me или curl ipinfo.io/ip. Возможно, сначала вам придётся установить curl.

Прогноз погоды

Введите команду curl wttr.in/<нужный город> и получите красивую таблицу с прогнозом погоды:

$ curl wttr.in/Москва Weather report: Москва \ / Sunny .-. 13-14 °C ― ( ) ― → 11 km/h `-’ 10 km / \ 7.4 mm ┌─────────────┐ ┌──────────────────────────────┬───────────────────────┤ Sun 16 Sep ├───────────────────────┬──────────────────────────────┐ │ Morning │ Noon └──────┬──────┘ Evening │ Night │ ├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤ │ _`/»».-. Moderate or he…│ .-. Heavy rain │ .-. Light drizzle │ \ / Partly cloudy │ │ ,\_( ). 16 °C │ ( ). 15-16 °C │ ( ). 13-15 °C │ _ /»».-. 11-13 °C │ │ /(___(__) 7-12 km/h │ (___(__) ↘ 12-18 km/h │ (___(__) ↘ 19-27 km/h │ \_( ). ↘ 22-33 km/h │ │ ‚‘‚‘‚‘‚‘ 14 km │ ‚‘‚‘‚‘‚‘ 14 km │ ‘ ‘ ‘ ‘ 17 km │ /(___(__) 19 km │ │ ‚’‚’‚’‚’ 4.3 mm | 72% │ ‚’‚’‚’‚’ 6.5 mm | 71% │ ‘ ‘ ‘ ‘ 0.7 mm | 66% │ 0.5 mm | 49% │ └──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘ ┌─────────────┐ ┌──────────────────────────────┬───────────────────────┤ Mon 17 Sep ├───────────────────────┬──────────────────────────────┐ │ Morning │ Noon └──────┬──────┘ Evening │ Night │ ├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤ │ \ / Partly cloudy │ \ / Partly cloudy │ \ / Partly cloudy │ \ / Partly cloudy │ │ _ /»».-. 13-14 °C │ _ /»».-. 18 °C │ _ /»».-. 16 °C │ _ /»».-. 13-14 °C │ │ \_( ). ↘ 16-18 km/h │ \_( ). → 15-18 km/h │ \_( ). → 14-18 km/h │ \_( ). ↗ 13-19 km/h │ │ /(___(__) 20 km │ /(___(__) 20 km │ /(___(__) 20 km │ /(___(__) 20 km │ │ 0.0 mm | 0% │ 0.0 mm | 0% │ 0.0 mm | 0% │ 0.0 mm | 0% │ └──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘ ┌─────────────┐ ┌──────────────────────────────┬───────────────────────┤ Tue 18 Sep ├───────────────────────┬──────────────────────────────┐ │ Morning │ Noon └──────┬──────┘ Evening │ Night │ ├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤ │ _`/»».-. Light rain sho…│ _`/»».-. Patchy rain po…│ \ / Partly cloudy │ \ / Partly cloudy │ │ ,\_( ). 14-15 °C │ ,\_( ). 17 °C │ _ /»».-. 15 °C │ _ /»».-. 12-14 °C │ │ /(___(__) → 19-25 km/h │ /(___(__) → 21-24 km/h │ \_( ). ↘ 17-24 km/h │ \_( ). ↘ 15-21 km/h │ │ ‘ ‘ ‘ ‘ 17 km │ ‘ ‘ ‘ ‘ 16 km │ /(___(__) 20 km │ /(___(__) 20 km │ │ ‘ ‘ ‘ ‘ 0.1 mm | 23% │ ‘ ‘ ‘ ‘ 0.3 mm | 72% │ 0.1 mm | 54% │ 0.0 mm | 0% │ └──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘

Получаем таблицу ASCII

Чтобы получить быстрый доступ к таблице ASCII просто введите man ascii.

Простой калькулятор

$ echo 35+42 | bc 77 $ echo $((35+42)) 77

Выполняем команду в другой директории и возвращаемся обратно

Если вы хотите выполнить команду в другой директории, но при это не хотите покидать текущую, то просто оберните команду скобками. Например, (cd /tmp && ls). Здесь скобки запускают подшелл (subshell), внутри которого мы и выполняем cd.

Узнаём, какие библиотеки нужны команде/библиотеке

Чтобы узнать, какие динамические библиотеки нужны программе или библиотеке и как они будут разрешены при запуске, используйте команду ldd:

$ ldd /usr/lib/systemd/systemd linux-vdso.so.1 (0x00007fff7e7c6000) libsystemd-shared-239.so => /usr/lib/systemd/libsystemd-shared-239.so (0x00007f265acbd000) librt.so.1 => /lib64/librt.so.1 (0x00007f265ac7e000) libseccomp.so.2 => /lib64/libseccomp.so.2 (0x00007f265ac3a000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f265ac0e000) … libunistring.so.2 => /lib64/libunistring.so.2 (0x00007f265a076000) libsepol.so.1 => /lib64/libsepol.so.1 (0x00007f2659fc1000) libudev.so.1 => /lib64/libudev.so.1 (0x00007f2659f99000) libm.so.6 => /lib64/libm.so.6 (0x00007f2659e15000)

Узнаём, что лежит внутри файла

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

$ file Pictures/wayland-screenshot.png Pictures/wayland-screenshot.png: PNG image data, 1920 x 1080, 8-bit/color RGBA, non-interlaced $ file dev/gnome-builder/src/main.c dev/gnome-builder/src/main.c: C source, UTF-8 Unicode text

Многократный запуск команды

Чтобы запускать команду каждые несколько секунд (по умолчанию две) и смотреть на её вывод, воспользуйтесь командой watch <команда>.

Время на запуск команды

Чтобы узнать, сколько времени уходит на запуск команды, используйте time <команда>.

Системные вызовы команды

Чтобы узнать, какие системные вызовы совершает программа, введите strace <команда>.

Запоминаем набираемую команду

Если вы набираете какую-то команду и вам по какой-то причине нужно прерваться и, например, ввести другую команду, вы можете «запомнить» то, что вы ввели комбинацией Ctrl+U, а затем вставить комбинацией Ctrl+Y.

Выкачиваем сайты

Чтобы выкачать сайт используйте команду wget —random-wait -r -p -e robots=off -U mozilla <адрес сайта>.

Проводим туннели

С помощью команды ssh -N -L 2001:localhost:80 somemachine можно создать туннель от 80 порта на удалённой машине до 2001 на локальной.

Все мы слышали, и с большой долей вероятности пользуемся браузерами с графическим интерфейсом, такие как Firefox, Chrome и т.д. В этой статье вы узнаете про консольные браузеры Linux. Текстовый (консольный) браузер обычно используется системными администраторами для просмотра веб-сайтов, так как на серверные компьютеры X-сервер обычно не ставят.

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

Популярные текстовые браузеры Linux:

  • Links
  • Links2
  • Elinks
  • Lynx
  • w3m
  • Netrik

1) Установка Links

Links — консольный браузер ubuntu, работающий как в псевдографическом, так и в текстовом режимах. Он рендерит «тяжелые» страницы, поддерживает эмуляторы терминала как с возможностью цветного вывода, так и монохромного, и позволяет прокручивать страницы по горизонтали. Links можно установить на различных Linux дистрибутивах, таких как Debian, RHEL, Ubuntu, Linux Mint, CentOS, Fedora, openSUSE, suse, ArchLinux, Manjaro, Antergos Mageia, и других. Данный консольный браузер Linux один из наиболее популярных среди пользователей, наряду с Lynx.

Debian, Mint и Ubuntu, а также основанные на них:

sudo apt-get install links

RHEL, CentOS, Fedora 21 и старше:
yum install links

Fedora 22 и новее:
dnf install links

SUSE и openSUSE:

zypper install links

Archlinux, Manjaro, Antergos:

sudo pacman -S links

urpmi links

Как пользоваться:

links www.losst.ru

2) Установка Elinks

Elinks — форк Links; полнофункциональный консольный браузер, с большими возможностями, может отображать кадры и таблицы, поддается кастомизации и его функциональность можно расширить с помощью Lua или Guile скриптов. Данный браузер можно запустить на большом количестве платформ. Elinks также доступен для различных Linux дистрибутивов, таких как Debian, RHEL, Ubuntu, Linux Mint, CentOS, Fedora, openSUSE, suse, ArchLinux, Manjaro, Antergos, Mageia, и других.

Debian, Mint и Ubuntu, а также основанные на них:

sudo apt-get install elinks

RHEL, CentOS и Fedora 21 и старше:
yum install elinks

Fedora 22 и новее:
dnf install elinks

SUSE, openSUSE:
zypper install elinks

ArchLinux, Manjaro, Antergos:
sudo pacman -S elinks

Mageia:
urpmi elinks

Как пользоваться:
elinks www.losst.ru

3) Установка Lynx

Lynx — веб-браузер с отличными возможностями настройки под себя для использования на эмуляторах терминала с символьным курсором. Это самый старый из браузеров. Lynx доступен для различных Linux дистрибутивов, таких как Debian, RHEL, Ubuntu, Linux Mint, CentOS, Fedora, openSUSE, suse, ArchLinux, Manjaro, Antergos, Mageia, и других.

Debian, Mint и Ubuntu, а также основанные на них:

sudo apt-get install lynx

RHEL, CentOS и Fedora 21 и старше:
yum install lynx

Fedora 22 и новее:
dnf install lynx

SUSE и openSUSE:

zypper install lynx

Archlinux, Manjaro, Antergos:

sudo pacman -S lynx

urpmi lynx

Как пользоваться:

lynx www.losst.ru

4) Установка w3m:

w3m — текстовый браузер linux, выводящий страницы в текстовом формате, а так же может использоваться в качестве программы для форматирования текста, которая переводит HTML документы в простой текст. Программа работает в окне любого эмулятора терминала (rxvt, xterm, gnome-terminal и т.д) Браузер доступен для различных Linux дистрибутивов, таких как Debian, RHEL, Ubuntu, Linux Mint, CentOS, Fedora, openSUSE, suse, ArchLinux, Manjaro, Antergos, Mageia, и других.

Debian, Mint и Ubuntu, а также основанные на них:
sudo apt-get install w3m w3m-img

RHEL, CentOS и Fedora 21 и старше:
yum install w3m

Fedora 22 и новее:
dnf install w3m

SUSE, openSUSE:
zypper install w3m

ArchLinux, Manjaro, Antergos:
sudo pacman -S w3m

Mageia:
urpmi w3m

Как пользоваться:
w3m www.losst.ru

5) Установка Links2

Links2 — консольный браузер linux, также как и links, на котором он основан, позволяет работать как в графическом, так и в текстовом режимах. Он рендерит «тяжелые» страницы, поддерживает эмуляторы терминала как с поддержкой цветов, так и монохромные, и позволяет прокручивать страницы по горизонтали. Links2 доступен для различных Linux дистрибутивов, таких как Debian, RHEL, Ubuntu, Linux Mint, CentOS, Fedora, openSUSE, suse, ArchLinux, Manjaro, Antergos, Mageia, и других.

Debian, Mint и Ubuntu, а также основанные на них:

sudo apt-get install w3m w3m-img

RHEL, CentOS и Fedora 21 и старше:
yum install links2

Fedora 22 и новее:
dnf install links2

SUSE, openSUSE:
zypper install links2

ArchLinux, Manjaro, Antergos:
sudo pacman -S links2

Mageia:
urpmi links2

Как пользоваться:
links2 www.losst.ru

6) Установка Netrik

Netrik — простой веб-браузер, работающий в текстовом режиме, как ему подобные браузеры w3m, links и lynx. Он без проблем отображает объемные веб-страницы; его работа возможна в эмуляторах терминала как с поддержкой цветов, так и монохромных. Как и все вышеперечисленные, он поддерживает горизонтальную прокрутку. Netrik обладает несколько ограниченными возможностями по сравнению с вышеперечисленными браузерами, что также делает его уникальным в своем роде.

Debian, Mint и Ubuntu, а также основанные на них:
sudo apt-get install netrik

RHEL, CentOS и Fedora 21 и старше
yum install netrik

Fedora 22 и новее
dnf install netrik

SUSE, openSUSE
zypper install netrik

ArchLinux, Manjaro, Antergos
sudo pacman -S netrik

Mageia
netrik links2

Как пользоваться:
netrik www.losst.ru

Выводы

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

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

Узнать, в какой же папке вы сейчас находитесь, очень просто, достаточно посмотреть на приглашение терминала, то есть на те символы, которые печатаются автоматически в начале каждой строки:

Текущий каталог — это то, что между символами : и $. Кстати, обратите внимание, перед : стоит имя пользователя и имя компьютера, разделённые символом @. Но когда вы запускаете терминал, то между : и $ стоит символ ~:

Я говорил, что при запуске терминала текущим каталогом становится домашняя папка пользователя, так вот, символ ~ — это синоним адреса домашней папки текущего пользователя1). Кстати, если вы ещё не знаете, полный адрес домашнего каталога выглядит как

/home/логин_пользователя

У меня это /home/malamut.

Хорошо, как выяснить текущее местоположение, вроде разобрались, а как же его сменить? Для этого предназначена команда cd, выполните, например, команду

cd Музыка

Видите, текущее местоположение изменилось:

На всякий случай напоминаю, что имена файлов и каталогов в Linux чувствительны к регистру символов, то есть Музыка и музыка — эта два совершенно разных имени.

После команды cd можно указывать как полные пути относительно корня, так и относительные, отсчитывающиеся от текущего каталога. В примере выше я использовал относительный путь. А вот полный:

cd /etc/apt

Хочу сразу обратить внимание на несколько важных особенностей. Во-первых, при наборе путей так же работает автодополнение по Tab, это очень удобно. Во-вторых, использовать различные небуквенные символы и пробелы напрямую при наборе путей нельзя. Например, для того, чтобы перейти в каталог, содержащий в имени символ пробела, надо при наборе пути к такому каталогу перед пробелом поставить символ обратного слеша \. Вот так:

cd Каталог\ с\ плохими\ символами\ в\ имени\<\>

Установка обратного слеша перед некоторыми символами называется экранированием. Кстати, при использовании автодополнения все слеши расставляются автоматически. Кроме того, можно просто заключить путь в двойные кавычки:

cd «Каталог с плохими символами в имени<>»

Но в этом случае автодополнение работать не будет.

Заменитель адреса домашнего каталога ~ можно использовать и при наборе путей, например:

cd ~/Музыка

А для перемещения непосредственно в домашний каталог достаточно просто набрать cd без аргументов.

Для перемещения на каталог выше можно использовать команду

cd ..

Вообще, две точки обозначают всегда родительский каталог, поэтому можно делать так:

cd ../..

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

cd —

В качестве наглядного примера использования cd небольшое путешествие по моему компьютеру:

Как перемещаться по каталогам в первом приближении вроде разобрались, теперь же я расскажу про некоторые другие полезные операции. Посмотреть содержимое текущего каталога можно командой ls:

Обычно командам можно передавать различные модификаторы, например:

Кстати, эта команда показывает различную дополнительную информацию о содержимом каталога.

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

Разное
0

Свежие записи

  • Я провокатор
  • Программирование музыки
  • 10 иллюзий
  • Как запомнить прочитанное?
  • Как заработать имея машину?
  • Кабачки жареные
  • Книги про компании
  • Развитие ответственности
  • Как без циркуля нарисовать круг?
  • Инфоцентр вконтакте

Архивы

  • Октябрь 2020
  • Сентябрь 2020
  • Август 2020
  • Июль 2020
  • Июнь 2020
  • Декабрь 2019
  • Ноябрь 2019
  • Октябрь 2019
  • Сентябрь 2019
  • Август 2019
  • Июль 2019
  • Июнь 2019
  • Февраль 2019
  • Январь 2019
  • Декабрь 2018
  • Ноябрь 2018
  • Октябрь 2018
  • Сентябрь 2018
  • Август 2018
  • Июль 2018
  • Июнь 2018
  • Май 2018
  • Апрель 2018
  • Март 2018
© Copyright 2020 Глазурь и кофе. All Rights Reserved. The Ultralight by Raratheme. Powered by WordPress .