C выполнить консольную команду linux

Содержание
  1. Способы запуска «Терминала» в Linux
  2. Запускаем «Терминал» в Linux
  3. Способ 1: Стандартная комбинация клавиш
  4. Способ 2: Утилита «Выполнить»
  5. Способ 3: Контекстное меню директорий
  6. Способ 4: Главное меню ОС
  7. Способ 5: Виртуальная консоль
  8. Способ 6: Строка «Избранное»
  9. С++ — выполнить что-то в консоли.
  10. 20 приёмов работы в командной строке Linux, которые сэкономят уйму времени
  11. Приёмы работы в командной строке Linux и экономия времени
  12. 0. Автозавершение команд с использованием клавиши Tab
  13. 1. Переход в последнюю рабочую директорию
  14. 2. Возврат в домашнюю директорию
  15. 3. Вывод на экран содержимого директории
  16. 4. Вызов нескольких команд в одной строке
  17. 5. Выполнение нескольких команд в одной строке и условие на успешное завершение предыдущей команды
  18. 6. Простой поиск и использование ранее введённых команд
  19. 7. Разблокировка терминала после случайного нажатия Ctrl + S
  20. 8. Перемещение к началу или концу строки
  21. 9. Чтение лог-файлов в режиме реального времени
  22. 10. Чтение сжатых лог-файлов без их распаковки
  23. 11. Использование команды less для чтения файлов
  24. 12. Повторное использование последнего элемента из предыдущей команды с помощью !$
  25. 13. Использование предыдущей команды в текущей команде с помощью !!
  26. 14. Использование псевдонимов для исправления ошибок ввода
  27. 15. Копирование и вставка в терминале Linux
  28. 16. Завершение работы команды или процесса
  29. 17. Использование команды yes для автоматизации интерактивных команд или скриптов
  30. 18. Очистка содержимого файла без удаления самого файла
  31. 19. Выяснение наличия в директории файлов, содержащих определённый текст
  32. 20. Вызов справки для любой команды
  33. Итоги: делитесь полезными советами!

Способы запуска «Терминала» в Linux

Консоль — основной инструмент дистрибутивов, основанных на ядре Linux. Через него пользователи выполняют множество полезных команд, которые позволяют взаимодействовать с операционной системой. Большинство юзеров придерживается одной методики запуска «Терминала», хотя на самом деле вариаций гораздо больше. Мы предлагаем ознакомиться со всеми доступными вариантами осуществления поставленной задачи, чтобы вы смогли найти оптимальный для себя или хотя бы узнали о наличии альтернативных способов, которые могут когда-то пригодиться.

Запускаем «Терминал» в Linux

Абсолютно каждый метод запуска «Терминала» в любом из дистрибутивов Linux не занимает много времени, а чаще всего выполняется буквально в несколько кликов. Сегодня в качестве примера мы рассмотрим Ubuntu. Если вы обладаете другой ОС, не беспокойтесь, поскольку почти нигде нет каких-либо различий, а если они и имеются, то самые минимальные, и о них мы обязательно расскажем в методах.

Способ 1: Стандартная комбинация клавиш

В Linux, как и во всех операционных системах, имеется ряд горячих клавиш, отвечающих за быстрый вызов определенных опций. Сюда входит и запуск установленной по умолчанию консоли. Однако некоторые пользователи могут столкнуться с тем, что стандартные комбинации по какой-то причине не работают или сбились. Тогда мы сначала советуем произвести следующие действия:

  1. Откройте главное меню на панели задач и перейдите в раздел «Настройки».

Здесь вас интересует категория «Клавиатура», которая находится в списке на левой панели.

Опуститесь вниз в группу «Запуск приложений» и отыщите там строку «Открыть терминал». По умолчанию комбинация должна иметь вид Ctrl + Alt + T. Если она не настроена или вы хотите изменить ее, просто дважды кликните левой кнопкой мыши по данной строке.

Сбросьте параметры, если хотите вернуть все значения по умолчанию.

Осталось только зажать соответствующую комбинацию, чтобы проверить действенность варианта.

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

Способ 2: Утилита «Выполнить»

Способность применить этот метод зависит от установленного окружения. Практически во всех привычных графических оболочках он функционирует корректно, поэтому его обязательно следует попробовать. Принцип заключается в вызове утилиты «Выполнить», что производится зажатием комбинации Alt + F2.

В появившейся строке достаточно будет вписать gnome-terminal или konsole, что зависит от типа используемой оболочки.

После этого вы увидите, как сразу же отобразится новое окно «Терминала».

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

Способ 3: Контекстное меню директорий

Большинство графических оболочек имеют контекстное меню, которое вызывается путем нажатия ПКМ по свободному месту в любой директории. Одним из пунктов называется «Открыть в терминале» или «Открыть терминал». Именно это мы и рекомендуем использовать в качестве отдельного способа запуска консоли. Особенно актуально это в тех случаях, когда вы хотите запустить новую консоль в необходимом расположении.

Способ 4: Главное меню ОС

Строение практически всех окружений гарантирует наличие главного меню приложений, откуда можно запускать установленные и стандартные программы, включая консоль. Откройте главное меню удобным для вас образом и отыщите там «Терминал». Если просто найти его не получается, воспользуйтесь строкой поиска. Щелкните ЛКМ для запуска, и теперь вы можете смело приступать к вписыванию команд. Если потребуется создать новую сессию, вернитесь в главное меню и проделайте те же самые действия.

Способ 5: Виртуальная консоль

Этот вариант подойдет далеко не всем юзерам, поскольку он используется исключительно для перехода между виртуальными системными консолями. Дело в том, что при запуске операционной системы создается целых семь таких командных строк, последняя из них реализует графическую оболочку, поэтому пользователь видит только ее. При необходимости можно переключаться к другим терминалам, используя горячие клавиши Ctrl + Alt + F1/Ctrl + Alt + F6.

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

Вы будете уведомлены о том, что авторизация в Ubuntu произведена успешно. Отобразится несколько важных строк, где имеется общее описание и ссылки на официальную документацию и страницы поддержи. Теперь можете использовать команды для управления консолью. По завершении введите exit, чтобы выйти, а затем переключитесь на графическую оболочку через Ctrl + Alt + F7 .

Читайте также:  Windows mouse on macbook

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

Способ 6: Строка «Избранное»

Пользователи Windows предпочитают закреплять важные приложения на панели задач, чтобы в необходимый момент быстро их запускать. В графических оболочках Linux эта функция тоже реализована, но сама строка называется «Избранное». Если «Терминал» изначально там отсутствует, предлагаем добавить его следующим образом:

    Откройте главное меню и отыщите там консоль. Кликните по ней правой кнопкой мыши.

В появившемся контекстном меню используйте строку «Добавить в избранное».

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

Это были все возможные методы запуска стандартной консоли в Linux. Ознакомьтесь с инструкциями, чтобы подобрать оптимальный для себя вариант. Учтите, что если вы задействуете пользовательский терминал, установленный отдельно, метод открытия может быть другим. Обязательно читайте эту информацию в официальной документации.

Помимо этой статьи, на сайте еще 12315 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Источник

С++ — выполнить что-то в консоли.

Доброго времени суток.

Как выполнить что-то в консоли от текущего пользователя (от которого была запущена консоль) (или другие варианты тоже рассмотрю, от другого пользователя например) — нужную мне команду?

Например — распаковку архива средствами tar (текущая задача).

Ещё вопрос — у всех ли дистрибутивов из коробки идёт tar? Tar же в ядро зашит?

system(), popen(), fork()/exec() — в порядке возрастания сложности

В BIOS. В новых компьютерах в EFI.

Да, нынче пошли очень крутые разработчики. В какое ещё ядро? tar это тулза такая, отдельный бинарик.

у всех ли дистрибутивов из коробки идёт tar?

Для начала прочитайте это слово наоборот. После этого подумайте, — оно вам надо?

После этого подумайте, — оно вам надо?

Нужно реализовать доставку патчей.

На сервере будет демон. Клиент в какой-то промежуток времени будет опрашивать демон на наличие патча. Если патч есть, то раздавать. После доставки патча — сверяем чек суммы. Если не совпала — повторный запрос с периодичностью.

На сервере Ubuntu, что будет на стороне клиента — неизвестно.

При этом используем unix socket + tar.

Выполнение разорхивации будет от пользователя, от которого будет запущено приложение — и это точно не рут.

tar вроде никаких подтверждений не запрашивает, а это плюс.

Путь, по которому будем располагать архив и распаковывать его — неизвестен. Будет что-то вида: /*/user_name/*/test/test.tar

Не делай так. Это говнокод.

А обёртка на C++ есть?

Попробуйте git или mercurial, — патчи доставлять вроде умеют.

Попробуйте git или mercurial, — патчи доставлять вроде умеют.

Увы, но невозможно.

Можем довольствоваться только средствами самого дистрибутива, которые поставляются вместе с ним. Вероятно tar есть везде.

Тред не читал, но вместо system(«tar -xf») тебе нужно использовать libarchive, у которой есть поддержка нужного тебе формата. И она не так сложна в использовании, как кажется на первый вгляд. Глядя на примеры на гитхабе можно запросто разобраться, как ей пользоваться.

чем в данном случаи использование libarchive будет лучше распаковки new_ver.tar.gz ?

ну что тут ещё добавить, зато про libarchive все знают.

Говнокод — тащить в проект библиотеку-велосипед вместо того, чтобы юниксвейно использовать проверенный временем инструмент.

юниксвейно использовать проверенный временем инструмент.

А если демону запрещён транзишн в bin_t (проще говоря, ничего нельзя запускать)? Или лимиты выставлены так что запустить не хватит сил. Или кто-то положит в начало PATH свой одноимённый tar, который нужное не умеет и/или наоборот, делает плохие вещи. Или нет места на временные файлы. Или их нельзя писать. (инбифо: разрешить bin_t, убавить лимиты, захардкодить путь, забандлить свою копию tar, найти место, разрешить писать)

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

Источник

20 приёмов работы в командной строке Linux, которые сэкономят уйму времени

Тема полезных приёмов работы в терминале Linux неисчерпаема. Казалось бы — всё устроено очень просто: приглашение оболочки, да введённые с клавиатуры команды. Однако, в этой простоте кроется бездна неочевидных, но полезных возможностей. Именно поэтому мы регулярно публикуем материалы, посвящённые особенностям работы в командной строке Linux. В частности, сегодня это будет перевод статьи, автор которой увлечён экономией времени через повышение продуктивности труда.

Если вас интересует работа в командной строке Linux — вот некоторые из наших материалов на эту тему:

Приёмы работы в командной строке Linux и экономия времени

Вам когда-нибудь доводилось видеть, как коллега использует некие простые команды Linux для решения задач, решение которых занимает у вас несколько строк? Должно быть, когда подобное случалось, вы только и могли сказать себе: «Ну ничего ж себе! Я и не знал, что это можно сделать так просто».

В этом материале я покажу вам некоторые профессиональные приёмы работы в командной строке Linux, которые сэкономят вам уйму времени и в некоторых случаях избавят от плохого настроения. Мало того, что ваши друзья или коллеги скажут: «Ну надо же!», глядя на вас. Эти приёмы, кроме того, помогут вам увеличить личную продуктивность, так как вам понадобится вводить меньше команд и даже делать меньше щелчков мышью.

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

Читайте также:  Statistica portable для windows 10

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

0. Автозавершение команд с использованием клавиши Tab

Я начну с кое-чего вполне очевидного, но весьма важного: с автозавершения команд с помощью клавиши Tab .

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

Например, собираясь скопировать файл с именем my_best_file_1.txt , вы можете просто ввести cp m и нажать Tab для того, чтобы увидеть возможные варианты продолжения команды.

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

Клавишу Tab можно использовать и для автозавершения команд.

1. Переход в последнюю рабочую директорию

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

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

Простое переключение между директориями

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

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

Однако, в домашнюю директорию можно вернуться ещё быстрее — с помощью команды cd .

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

Самый быстрый способ перехода в домашнюю директорию

3. Вывод на экран содержимого директории

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

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

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

Использование команды ll вместо команды ls -l

4. Вызов нескольких команд в одной строке

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

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

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

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

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

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

Вот хороший пример использования && :

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

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

В подобной ситуации вас спасёт обратный поиск. Данная методика позволяет проводить поиск в истории команд по ключевому слову. Тут достаточно использовать комбинацию клавиш Ctrl + R для запуска обратного поиска и ввести что-то, имеющее отношение к команде. Система просмотрит историю команд и покажет команды, соответствующие введённому запросу.

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

Обратный поиск по истории команд

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

7. Разблокировка терминала после случайного нажатия Ctrl + S

Возможно, вы привыкли пользоваться комбинацией клавиш Ctrl + S для сохранения файлов. Но если нажать эти клавиши в терминале Linux, вы его заблокируете.

Если раньше вы, для того, чтобы исправить положение, вынуждены были закрывать и снова запускать терминал — теперь может вздохнуть спокойно, больше вам этого делать не придётся. Для того, чтобы привести терминал в рабочее состояние, просто воспользуйтесь комбинацией клавиш Ctrl + Q .

8. Перемещение к началу или концу строки

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

Конечно, в подобной ситуации можно использовать клавиши Home и End , но, как вариант, с помощью комбинации клавиш Ctrl + A можно перейти в начало строки, а с помощью комбинации Ctrl + E — в конец.

Перемещение к началу или концу строки

Мне такой способ кажется удобнее, чем использование клавиш Home и End , особенно когда я работаю на ноутбуке.

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

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

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

Читайте также:  Baldurs gate 2 linux

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

10. Чтение сжатых лог-файлов без их распаковки

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

Тут нам на помощью приходит группа команд, имя которых начинается с буквы «z». Эти команды являются альтернативой обычным командам, которые используются для работы с файлами журналов. Среди них — less , cat , grep , и другие.

Итак, используя команды zless , zcat , zgrep и подобные им, вам не придётся явным образом распаковывать сжатые файлы. Подробности об этих командах можно посмотреть здесь.

Кстати, когда я рассказал об этих «секретных» командах коллеге, мне досталась чашка кофе.

11. Использование команды less для чтения файлов

Если вам нужно просмотреть файл, особенно — большой, можно попробовать команду cat , но гораздо лучше поискать что-нибудь другое. Дело в том, что cat выведет на экран весь файл, что не так уж и удобно.

Для просмотра файлов можно воспользоваться редакторами вроде Vi или Vim, работающими в терминале, но если вам просто нужно прочесть файл, очень кстати окажется команда less .

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

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

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

Предположим, вам нужно создать директорию, а потом в неё перейти. Тут можно воспользоваться опцией !$ , вводя команду перехода после команды создания директории.

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

Ещё лучше то же самое делается с помощью сочетания клавиш Alt +. (точка). Точку можно использовать несколько раз для перебора опций последней команды.

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

С помощью !! можно вызвать всю предыдущую команду. Этот приём оказывается особенно полезным, когда вам нужно выполнить команду и оказывается, что для её выполнения нужны привилегии суперпользователя. Например, на рисунке ниже показана ситуация, в которой команда sudo !! позволяет сэкономить немало времени.

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

14. Использование псевдонимов для исправления ошибок ввода

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

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

Теперь вам не придётся перенабирать эту команду если вы введёте её имя неправильно.

15. Копирование и вставка в терминале Linux

Этот совет несколько неоднозначен, так как он зависит от дистрибутива Linux и от терминала.

Но обычно команды копирования и вставки можно вызывать следующим образом:

  • Выделите текст, который надо скопировать, и щёлкните правой кнопкой мыши для его вставки (работает в Putty и других SSH-клиентах для Windows).
  • Выделите текст, который надо скопировать, после чего щёлкните центральной кнопкой мыши (колесом прокрутки) для того, чтобы его вставить.
  • Используйте комбинации клавиш Ctrl + Shift + C для копирования, и Ctrl + Shift + V для вставки.

16. Завершение работы команды или процесса

Возможно, то, что я тут хочу посоветовать, совершенно очевидно, однако, всё равно об этом расскажу. Если команда выполняется на переднем плане и вы хотите из неё выйти, можете нажать клавиши Ctrl + C для того, чтобы её остановить.

17. Использование команды yes для автоматизации интерактивных команд или скриптов

Если вам приходится работать с некоторыми командами или скриптами, которые предусматривают взаимодействие с пользователем, и вы знаете, что будете вводить Y в ответ на каждый вопрос программы, можете автоматизировать этот процесс с помощью команды yes . Делается это так:

18. Очистка содержимого файла без удаления самого файла

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

19. Выяснение наличия в директории файлов, содержащих определённый текст

Командная строка Linux поддерживает множество способов поиска информации. Однако, если вам просто нужно узнать, имеются ли в некоей директории файлы, которые содержат определённый текст, вы можете воспользоваться такой командой:

Однако я советую всем, кому нужен поиск в Linux, разобраться как следует с командой find .

20. Вызов справки для любой команды

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

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

Итоги: делитесь полезными советами!

Я намеренно не включил в этот материал команды вроде fuck, так как они не из тех стандартных средств, которые можно найти буквально повсюду. То, о чём я тут рассказал, может принести пользу при работе практически со всеми дистрибутивами Linux и оболочками командной строки без необходимости установки новых программ.

Уважаемые читатели! Возможно, вы уже знакомы с некоторыми из приведённых здесь методов использования команд Linux, а может и знаете их все. В любом случае, приглашаем вас поделиться вашими любимыми приёмами в комментариях.

Источник

Оцените статью