24
ответа

Колоризация Ваша терминальная и среда оболочки?

Я провожу большую часть своего времени, работая в средах Unix и с помощью эмуляторов терминала. Я пытаюсь использовать цвет на командной строке, потому что цвет делает вывод более полезным и интуитивным. Какие опции существуют...
09.01.2019
21
ответ

Как добавить новую строку в конец файла?

Используя системы управления версиями я раздражаюсь в шуме, когда разность говорит что никакая новая строка в конце файла. Таким образом, я задавался вопросом: Как добавить новую строку в конце файла для избавлений от тех сообщений?
18.02.2016
18
ответов

Простой калькулятор командной строки

Проблема: время от времени мне нужно делать простая арифметика в среде командной строки. НАПРИМЕР. при следующем выводе: Диск / dev / sdb: 256 ГБ Размер сектора (логический / физический): 512 Б / 512 Раздел ...
08.11.2018
18
ответов

Как сделать целочисленные и вычисления плавающие в ударе или других языках/платформах?

Используя эхо "20+5" буквально производит текст "20+5". Какую команду я могу использовать для получения числовой суммы, 25 в этом случае? Кроме того, что самый легкий путь состоит в том, чтобы сделать это просто использующий удар для п
24.12.2017
18
ответов

Как считать IP-адрес назад?

Если у нас есть эта строка (IP-адрес): 192.168.1.1 Как я могу произойти (форма записи реверса DNS) от этой строки, таким образом, ее покажут как 1.1.168.192.in-addr.arpa использование сценария оболочки?
27.07.2014
17
ответов

Удалите дублирующиеся записи $PATH с командой awk

Я пытаюсь записать функцию оболочки удара, которая позволит мне удалять дубликаты каталогов от моей переменной окружения PATH. Мне сказали, что возможно достигнуть этого с тем...
29.05.2017
17
ответов

Получите статус выхода процесса, это передается по каналу другому

У меня есть два нечто процессов и панель, соединенная с каналом: нечто $ | панель панели всегда выходит 0; я интересуюсь кодом выхода нечто. Там какой-либо путь состоит в том, чтобы достигнуть его?
17.05.2013
15
ответов

Лучший способ перерыть историю оболочки

Существует ли лучший способ искать мой файл истории команду, чем grep? У меня действительно есть некоторая идея, что команда запускает как, но я не знаю, как далеко назад в истории это. обновление: был раньше zsh...
22.09.2019
14
ответов

Как я могу получить размер файла в сценарии удара?

Как я могу получить размер файла в сценарии удара? Как я присваиваю это переменной удара, таким образом, я могу использовать ее позже?
05.04.2015
14
ответов

Как я повторяю последнюю команду, не используя клавиши со стрелками?

Я знаю, что могу израсходовать для итерации посредством предыдущих команд. Выполнение последней команды просто включает +, Входят. Однако я думал о покупке Счастливой Клавиатуры Взламывания, поскольку я провожу много времени в...
01.08.2014
14
ответов

Удаление каталога от ПУТИ

Я пытаюсь скомпилировать wxWidgets использование MingW, и у меня есть cygwin в моем пути, который, кажется, конфликтует. Таким образом, я хотел бы удалить/d/Programme/cygwin/bin из переменной ПУТИ и интересно, существует ли...
11.01.2014
14
ответов

Файлы переименования пакета

У меня есть каталог, полный изображений: image0001.png image0002.png image0003.png... И я хотел бы, чтобы острота переименовала их, чтобы (сказать). 0001.png 0002.png 0003.png... Как я делаю это?
24.08.2010
13
ответов

Выключите буферизацию в канале

У меня есть сценарий, который называет две команды: long_running_command | print_progress long_running_command печатает прогресс, но я недоволен им. Я использую print_progress для создания этого более хорошим (а именно, я...
27.01.2020
13
ответов

Используя уведомляют - отправляют с кроном

Я использую Дугу Linux с KDE/Awesome WM. Я пытаюсь добраться, уведомляют - отправляют к работе с кроном. Я попробовал переменные установки DISPLAY/XAUTHORITY, и выполнение уведомляет - отправляют с "sudo-u", все без...
13.04.2017
12
ответов

Linux - управляйте для списка файлов (кроме ls)

Предположите, что Вы работали над системой, и кто-то случайно удалил команду ls (/bin/ls). Как Вы могли получить список файлов в текущем каталоге?Попробуйте. Я попробовал много методов...
06.08.2018
12
ответов

Как делают меня grep для нескольких шаблонов с шаблоном, имеющим символ вертикальной черты?

Я хочу найти все строки в нескольких файлах, которые соответствуют одному из двух шаблонов. Я пытался найти шаблоны, которые я ищу путем ввода grep (foo|bar) *.txt, но оболочка интерпретирует | как канал и...
11.04.2018
12
ответов

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

У меня есть .csv файл (на Mac), который имеет набор пустых строк, например: "1", "2", "lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum...
29.11.2012
12
ответов

Как контролировать ЦП/использование памяти единственного процесса?

Я хотел бы контролировать память одного процесса / использование CPU в режиме реального времени. Подобный вершине, но предназначенный только для одного процесса, предпочтительно с каким-то графиком истории.
04.02.2011
11
ответов

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

Существует ли способ найти все символьные ссылки, которые не указывают на anywere? найдите./-тип l даст мне все символьные ссылки, но не делает различия между ссылками, которые идут куда-нибудь и ссылки, которые не делают...
25.10.2019
11
ответов

Как проверить, является ли оболочка входом в систему/интерактивным/пакетом

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

Как к CD автоматически после клона мерзавца?

Я хочу к автоматически CD к каталогу, созданному командой клона после того, как я мерзавец клонировал что-то. Важный: Я не хочу изменять синтаксис для команды (например, использовать псевдоним/функцию) потому что...
15.04.2016
11
ответов

Как я могу распечатать строки из файла назад (не используя “tac”)?

Я хочу распечатать строки из файла назад, не используя tac команду. Там какое-либо другое решение состоит в том, чтобы сделать такую вещь с ударом?
29.07.2015
11
ответов

Существует ли острота, которая позволяет мне создавать каталог и перемещаться в него одновременно?

Я повторяю много из: mkdir longtitleproject CD longtitleproject Является там способом сделать его в одной строке, не повторяя имя каталога? Я нахожусь на ударе здесь.
31.01.2013
11
ответов

Выполнить команду однажды на строку переданного по каналу входа?

Я хочу выполнить команду Java однажды для каждого соответствия ls | grep шаблон-. В этом случае я думаю, что мог сделать, находят шаблон - должностное лицо java MyProg '{}' \; но мне любопытно на предмет общего случая - там...
17.02.2011
11
ответов

Как я преобразовываю метку времени эпохи в человекочитаемый формат на cli?

Как я преобразовываю метку времени эпохи в человекочитаемый формат на cli? Я думаю, что существует способ сделать это с датой, но синтаксис ускользает от меня (другие приветствующиеся пути).
08.11.2010
10
ответов

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

Как преобразовать несколько строк в одну строку с пробелами и кавычками используя awk или tr или любой другой инструмент, который упрощает (но не для петель )? $ cat базы данных.txt Wp _новый Фронтенд БД БД _РАСШ...
24.06.2020
10
ответов

Тест, если существуют файлы, соответствующие шаблону для выполнения сценария

Я пытаюсь записать если оператор, чтобы протестировать, существуют ли любые файлы, соответствующие определенному шаблону. Если существует текстовый файл в каталоге, он должен запустить данный скрипт. Мой код в настоящее время: если [-f/*...
21.10.2019
10
ответов

Каково точное различие между 'терминалом', 'оболочкой', 'tty' и 'консолью'?

Я думаю, что эти термины почти относятся к тому же самому при свободном использовании: терминальная оболочка tty консоль, К чему точно относится каждый из этих терминов?
07.11.2015
10
ответов

Как я использую команды popd и pushd?

Каковы практические применения и pushd и popd, когда существует преимущество использования этих двух команд по CD и CD-?Править: Я ищу некоторые практические примеры использования для обоих из них...
09.07.2013
10
ответов

Способ Bash проверить, работает ли процесс уже в фоновом режиме (и повторное выполнение пропуска на основе этого)?

Я могу сделать командную строку удара, которая только выполняет определенную команду, если процесс уже не работает (в фоновом режиме)? Как я проверяю*, если команда уже работает? (таким образом, я могу добавить следующее...
10.06.2013

Оболочка является интерфейсом командной строки Unix. Можно ввести команды в оболочке в интерактивном режиме или записать сценарии для автоматизации задач. Используйте этот тег для вопросов, относящихся/bin/sh и самых совместимых оболочек (пепел, удар, ksh, zsh, …). Для сценариев оболочки с ошибками проверьте их в http://shellcheck.net прежде, чем отправить здесь.

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

Более точно, если иначе не указано, оболочка Unix совместима с POSIX / Единственная спецификация оболочки UNIX. Большинство Нельдов имеет такую оболочку в наличии как /bin/sh.

Используйте этот тег для вопросов, которые относятся к большинству оболочек Bourne/POSIX-style. Для вопросов об определенной оболочке используйте тег той оболочки вместо этого (см. ниже).

Связанные теги

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

Реализации Shell

Основные оболочки стиля Границы

  • Оболочка Bourne является одной из двух выживающих оболочек с былых времен, теперь главным образом замененных различными оболочками, названными пеплом, ksh и ударом. Спецификация POSIX основывается на Оболочке Bourne.
  • Bash стиль Границы, совместимая POSIX оболочка из проекта GNU. Это - интерактивная и пишущая сценарий оболочка по умолчанию на большинстве дистрибутивов Linux, и доступный на большинстве других Нельдов. Bash добавляет много опций, и для сценариев и для интерактивного использования.
  • Ksh стиль Границы, совместимая POSIX оболочка. Это добавляет много расширенных опций, главным образом для сценариев. Хотя ksh был открытым исходным кодом с 2000, это является еще менее привилегированным в мире с открытым исходным кодом, и существует несколько частичных клонов ksh, как .
  • Zsh главным образом стиль Границы, но с несколькими синтаксическими различиями. Это имеет режим эмуляции POSIX. Это имеет много дополнительных функций, и для сценариев и для интерактивного использования.
  • Almquish Shell относительно маленькая совместимая с границей оболочка. Это имеет два известных ветвления:
    • Busybox содержит главным образом совместимую POSIX оболочку (busybox ash) с некоторыми возможностями выпуска строки вместе со многими простыми утилитами. Это предназначено к встроенным системам и поэтому настойчиво оптимизируется для размера. Busybox также содержит другую маленькую подобную границе оболочку, названную тишиной.
    • Тире совместимая POSIX реализация /bin/sh это имеет целью быть как можно меньше. Это делает это, не жертвуя скоростью, если это возможно.

Другие известные оболочки

  • Оболочка C является одной из двух выживающих оболочек с былых времен. Это не одобрено для сценариев. Основная реализация сегодня является tcsh. Оболочки C раньше имели более интерактивные функции, чем оболочки стиля Границы, но удар и zsh теперь настигли tcsh.
  • Рыба относительный вновь прибывший, вдохновленный классическим и нацеливающимся для объединения питания и простоты.

Дальнейшее чтение

Интерактивное использование

Это функции, обычно находимые в оболочках с хорошей поддержкой взаимодействия (удар, tcsh, zsh, рыба):

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

Дальнейшее чтение

Сценарии Shell

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

Почти каждая подобная Unix система обеспечивает совместимую POSIX оболочку, обычно как /bin/sh. Таким образом, сценарии, имеющие целью быть портативными между вариантами Unix, должны быть записаны согласно тому стандарту и запуститься с #!/bin/sh строка хижины.

Много систем имеют, по крайней мере, ksh или колотят доступный. Они обеспечивают много полезных расширений, хотя не всегда с тем же синтаксисом. Функции, существующие и в (и в zsh), включают локальные переменные в функцию, переменные типа массив, двойной синтаксис скобки для условных выражений ([[ … ]]), и (требование, чтобы опция была установлена в ударе и zsh) дополнительные globbing шаблоны такой как @(…).

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

Полезные инструменты

  • checkbashisms (от devscripts пакет), полезный инструмент для обеспечения, что сценарий оболочки совместим POSIX и не использует функции, не указанные POSIX.

  • ShellCheck является веб-приложением, которое анализирует сценарии оболочки и проверки на частые ошибки (и синтаксис и семантические ошибки), а также соответствие стандарту POSIX, например, он выделяет закрывшие кавычки переменные и Bashisms (если sh используется в хижине). Это может также быть установлено как инструмент командной строки, который может быть выполнен локально.

Связанные теги

Дальнейшее чтение