15
ответов

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

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

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

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

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

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

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

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

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

У меня есть .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
9
ответов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Я хотел бы удалить все содержание текущего рабочего каталога. Как сделать это эффективным и изящным способом? У меня есть несколько файлов, каталоги и некоторые из них запускается с точки, как: касание .abc;...
15.06.2013
8
ответов

Самый универсальный язык сценариев для Linux?

Мы пишем сценарии для систем Linux, были некоторые дебаты по тому, что было бы наиболее универсально язык сценариев подарка Linux для использования. Bash, SH, Posix? Что?
26.09.2012
7
ответов

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

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

“который” с небольшим “grep” - как решение?

# какой mkdir/bin/mkdir #, какой mkdi #, Как может, я получаю путь, например: двоичный файл mkdir, не зная название двоичного файла? (команда). Так, чтобы, какой mkdi произвел бы/bin/mkdir также.
14.10.2014
7
ответов

Какую оболочку я должен использовать - tcsh по сравнению с ударом? [закрытый]

Я использовал tcsh в течение долгого времени теперь. Но каждый раз, когда я ищу что-то, я часто нахожу, что указанные методы являются конкретным ударом. Даже синтаксис для сценариев оболочки отличается для...
19.06.2014
7
ответов

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

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

Присвоение IP-адреса к переменной среды [дубликат]

Как я могу присвоить IP-адрес eth0 к переменной среды, скажем $ip, максимально легко? Обновление: Дистрибутивом является Сервер Ubuntu 12.04 LTS.
19.12.2012
7
ответов

Как я удаляю файл, имя которого начинается “-” (дефис иначе подчеркивают штриховой линией или минус)?

Как Вы удаляете файл, имя файла которого начинается с тире (дефис или минус)-? Я - ssh'd в удаленный сервер OSX, и у меня есть этот файл в моем каталоге: tohru: ~ $ ls-l общие 8-rw-r - r - 1 я...
14.01.2012
7
ответов

Каково различие между/sbin/nologin и/bin/false

Технически, если pam не настраивается для проверки оболочки с pam_shells, ни один из них не может на самом деле предотвратить вход в систему, если Вы не находитесь на оболочке. В моей системе они - даже различные размеры, таким образом, я...
07.04.2011
7
ответов

Как проверить, является ли $PWD подкаталогом данного пути

Например, проверьте, является ли $PWD подкаталогом / домой. Другими словами, я ищу строковую операцию удара, чтобы проверить, запускается ли одна строка с другого.
25.01.2011
6
ответов

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

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

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

Скажем, у меня есть следующий псевдоним в ударе - искажают ls ='ls - color=auto' - и я хочу назвать обычный ls без опций. Единственный путь состоит в том, чтобы сделать, который должен не исказить, сделать команду и затем исказить...
12.12.2016
6
ответов

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

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

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

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

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

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

Как я мог помнить, как использовать перенаправление?

Я знаю, какую программу>/dev/null 2> &1 делает. Это перенаправляет вывод к/dev/null, и 2> &1 означает перенаправлять вывод ошибок в том же месте, куда вывод отправляется. Мой...
03.01.2014

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

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

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