18
ответов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Предположите, что Вы работали над системой, и кто-то случайно удалил команду ls (/bin/ls). Как Вы могли получить список файлов в текущем каталоге?Попробуйте. Я попробовал много методов...
06.08.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
11
ответов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Использует “в то время как верный” для хранения сценария живым хорошая идея?

Я просто вскакиваю в Unix от другого мира, и требуемый, чтобы знать, делают ли, в то время как верный/someperlscript.pl, сделанный, сам сценарий жемчуга внутренне имеет наблюдателя папки/файла, который выполняется когда файлы...
01.04.2015
9
ответов

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

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

Bash управляет внутри vi

Действительно ли возможно ввести команду удара внутри vi и получить stdout? Я часто нахожу его утомительным, чтобы закрыть и вновь открыть vi просто, потому что я хочу искать что-то в оболочке.
11.09.2012
9
ответов

Как разделить терминал больше чем на одно “представление”?

От vi, если Вы даете команду: SP, экран разделяет на два "представления", позволяя Вам отредактировать больше чем один файл от того же терминала. Вдоль тех тех же строк, там способ иметь несколько...
23.06.2012
9
ответов

Метафора для понятия оболочки?

Я выручаю некоторых одноклассников в своем классе информатики, потому что у меня есть предшествующий опыт разработки, и мне нелегко объяснять определенные вещи как оболочка. Что...
10.02.2012
8
ответов

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

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

Почему *не* анализируют 'ls' (и что сделать вместо этого)?

Я последовательно вижу, что ответы заключить в кавычки эту ссылку, указывающую окончательно ", Не анализируют ls!" Это беспокоит меня по нескольким причинам: кажется, что информация в той ссылке была принята оптовая торговля с...
05.08.2019
8
ответов

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

У меня есть экземпляр Linux, который я настроил некоторое время назад. Когда я разжигаю его и вхожу в систему как корень, там некоторые переменные среды, которые я настроил, но я не могу помнить или найти, куда они произошли из. Я имею...
29.01.2019
8
ответов

Как я удаляю все в каталоге?

Как я удаляю все в каталоге, включая скрытые файлы и каталоги? Прямо сейчас я использую следующее: комната-rf * комната-rf.*
15.12.2018
8
ответов

удалите самые старые файлы

Я пытаюсь удалить старые файлы из каталога и оставить только 3 новейших файла. cd/home/user1/test, в то время как ['ls-lAR | grep ^-| туалет-l' <3]; сделайте комнату 'ls-t1/home/user/test | хвост-1'...
25.11.2018
8
ответов

Что является утилитой: команда в сценариях оболочки, учитывая, что это явно ничего не делает?

В ответе на этот вопрос о комментариях в сценариях оболочки обозначается что: пустая команда, которая явно ничего не делает (но не должен использоваться для комментариев). Что было бы...
13.04.2017
8
ответов

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

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

Как получить доступ к истории на лету в Unix?

Например, если я делаю mkdir thisismyfolder912, я помню, что существует некоторый более легкий способ переключиться на thisismyfolder912, чем необходимость сделать cd thisismyfolder912, Каков тот путь и как это работает?...
23.09.2016

Оболочка является интерфейсом командной строки 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 используется в хижине). Это может также быть установлено как инструмент командной строки, который может быть выполнен локально.

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

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