Является ли bash сценарием так же, как shell-скрипты?

Проблема заключается в том, что у вас установлено два противоречивых набора программного обеспечения; 'vsftp' и 'vsftp-ext'.

Сначала вам нужно удалить версию, установленную apt-get. Откройте терминал и запустите:

sudo apt-get remove vsftpd

Это приведет к удалению версии vsftpd, установленной apt-get. Как только вы это сделали, вероятно, стоит перекомпилировать «vsftpd-ext», чтобы убедиться, что все настроено правильно. Просто следуйте этому руководству, и все должно быть хорошо.

1
задан 13 October 2016 в 15:26

8 ответов

Введение

Сценарии оболочки и скрипты Bash - это не то же самое, что и другие оболочки, такие как sh, которые могут использоваться для выполнения скрипта; сценарий, предназначенный для выполнения Bash, должен быть помечен как скрипт Bash. Термины часто используются взаимозаменяемо, потому что Bash с расширенной функциональностью по сравнению с sh является наиболее часто используемым для выполнения пользовательских скриптов во многих дистрибутивах. Однако существуют другие оболочки, такие как Korn (ksh), C shell (csh) и Z shell (zsh), но мы не будем вдаваться в них здесь, поскольку обсуждение sh и bash наиболее актуально для Ubuntu. В этой статье мы подробно рассмотрим эволюцию оболочек в Linux и хорошо описываем архитектуру оболочки и то, как отличаются оболочки.

Введение

[ f12] была оригинальной оболочкой Unix, разработанной Стивеном Борном; однако системы на основе Debian и Ubuntu считают dash своей оболочкой sh (sh на самом деле символически связаны с dash). В Debian и Ubuntu из-за скорости sh он чаще используется для критических системных процедур и для запуска ключевых сценариев при запуске; более подробно см. здесь . Bash означает «Bourne Again SHell» и был разработан позднее Брайаном Фокс и значительно расширил оригинал sh. Фокс и другие разработки Bash были важной частью проекта GNU. См. Это замечательное обсуждение истории Bash для получения дополнительной информации.

Важно отметить, что оба sh и Bash, используемые в Ubuntu и других дистрибутивах, являются POSIX совместимыми, что означает, что они подписываются на ряд стандартов о том, как выполняются команды в оболочке. Это делается для того, чтобы результаты сценариев, используемых в ОС, можно было надежно предсказать и что поведение оболочки можно сохранить в пределах тех параметров POSIX, что особенно важно для разработчиков. Для получения дополнительной информации о стандартах см. этот .

Часто скрипты оболочки имеют суффикс .sh, хотя они предназначены для выполнения как скрипты bash и имеют #!/bin/bash в верхней части скрипта. На самом деле неважно, называется ли сценарий script.sh или my.script, имеет значение, является ли вызов интерпретатора /bin/sh или /bin/bash. Сценарии оболочки также можно вызвать в командной строке с помощью sh или bash.

Однако важно отметить, что результаты могут отличаться в зависимости от того, какой вызов интерпретируется, поскольку не все Команды bash будут работать в sh, тогда как большинство команд sh будут работать в bash. В общем, большинство пользователей захотят использовать /bin/bash для своих скриптов, чтобы они могли воспользоваться расширенным набором функций; системные скрипты могут выполняться с /bin/sh, если это необходимо.

important

Иногда бывает сложно найти полезные ресурсы в Интернете, которые следуют хорошей практике и которые дают советы, которые позволят вам создавать полезные скрипты. После man bash некоторые из самых важных ресурсов - это вики Грега, хакеры Bash и недавняя книга Стив Паркера о сценариях Shell, которая в основном фокусируется на Bash и опубликована O'Reilly. Хорошее введение также проводится руководством для начинающих Bash.

14
ответ дан 25 May 2018 в 07:52
  • 1
    Этот ответ на самом деле превосходит мой (принятый ответ), мой только что пришел за неделю до этого. – Hilton Shumway 17 December 2015 в 22:31
$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Mar 29 11:53 /bin/sh -> dash*
$ ls -l /bin/dash
-rwxr-xr-x 1 root root 109768 Mar 29 11:53 /bin/dash*
$ ls -l /bin/bash
-rwxr-xr-x 1 root root 955024 Apr  3 08:58 /bin/bash*

Это показывает, что «sh» является символической ссылкой на «тире» и что / bin / bash, которая является интерактивной оболочкой по умолчанию на Ubuntu, является исполняемым файлом, который почти в 9 раз больше, чем / bin / sh .

Действительно, «man sh» (1590 строк) против «man bash» (5459 строк) показывает, что bash - это большой надмножество традиционного «sh».

Подробнее здесь:

bash on wikipedia dash on wikipedia
2
ответ дан 25 May 2018 в 07:52

Для Ubuntu доступно несколько оболочек, таких как bash, zsh, ksh, tcsh и csh.

Поэтому в любое время кто-то говорит shell, он говорит об одном из тех. Однако эти оболочки немного отличаются друг от друга. Итак, когда кто-то говорит о скриптах bash, он использует оболочку, но когда кто-то говорит о сценариях оболочки, он сам по себе не использует bash. Но поскольку bash обычно используется в сценариях для Ubuntu, он обычно есть. Более того, разные оболочки одинаковы во многих аспектах, поэтому обычно это не имеет значения.

2
ответ дан 25 May 2018 в 07:52

Введение

Сценарии оболочки и скрипты Bash - это не то же самое, что и другие оболочки, такие как sh, которые могут использоваться для выполнения скрипта; сценарий, предназначенный для выполнения Bash, должен быть помечен как скрипт Bash. Термины часто используются взаимозаменяемо, потому что Bash с расширенной функциональностью по сравнению с sh является наиболее часто используемым для выполнения пользовательских скриптов во многих дистрибутивах. Однако существуют другие оболочки, такие как Korn (ksh), C shell (csh) и Z shell (zsh), но мы не будем вдаваться в них здесь, поскольку обсуждение sh и bash наиболее актуально для Ubuntu. В этой статье мы подробно рассмотрим эволюцию оболочек в Linux и хорошо описываем архитектуру оболочки и то, как отличаются оболочки.

Введение

[ f12] была оригинальной оболочкой Unix, разработанной Стивеном Борном; однако системы на основе Debian и Ubuntu считают dash своей оболочкой sh (sh на самом деле символически связаны с dash). В Debian и Ubuntu из-за скорости sh он чаще используется для критических системных процедур и для запуска ключевых сценариев при запуске; более подробно см. здесь . Bash означает «Bourne Again SHell» и был разработан позднее Брайаном Фокс и значительно расширил оригинал sh. Фокс и другие разработки Bash были важной частью проекта GNU. См. Это замечательное обсуждение истории Bash для получения дополнительной информации.

Важно отметить, что оба sh и Bash, используемые в Ubuntu и других дистрибутивах, являются POSIX совместимыми, что означает, что они подписываются на ряд стандартов о том, как выполняются команды в оболочке. Это делается для того, чтобы результаты сценариев, используемых в ОС, можно было надежно предсказать и что поведение оболочки можно сохранить в пределах тех параметров POSIX, что особенно важно для разработчиков. Для получения дополнительной информации о стандартах см. этот .

Часто скрипты оболочки имеют суффикс .sh, хотя они предназначены для выполнения как скрипты bash и имеют #!/bin/bash в верхней части скрипта. На самом деле неважно, называется ли сценарий script.sh или my.script, имеет значение, является ли вызов интерпретатора /bin/sh или /bin/bash. Сценарии оболочки также можно вызвать в командной строке с помощью sh или bash.

Однако важно отметить, что результаты могут отличаться в зависимости от того, какой вызов интерпретируется, поскольку не все Команды bash будут работать в sh, тогда как большинство команд sh будут работать в bash. В общем, большинство пользователей захотят использовать /bin/bash для своих скриптов, чтобы они могли воспользоваться расширенным набором функций; системные скрипты могут выполняться с /bin/sh, если это необходимо.

important

Иногда бывает сложно найти полезные ресурсы в Интернете, которые следуют хорошей практике и которые дают советы, которые позволят вам создавать полезные скрипты. После man bash некоторые из самых важных ресурсов - это вики Грега, хакеры Bash и недавняя книга Стив Паркера о сценариях Shell, которая в основном фокусируется на Bash и опубликована O'Reilly. Хорошее введение также проводится руководством для начинающих Bash.

14
ответ дан 25 May 2018 в 07:52

Введение

Сценарии оболочки и скрипты Bash - это не то же самое, что и другие оболочки, такие как sh, которые могут использоваться для выполнения скрипта; сценарий, предназначенный для выполнения Bash, должен быть помечен как скрипт Bash. Термины часто используются взаимозаменяемо, потому что Bash с расширенной функциональностью по сравнению с sh является наиболее часто используемым для выполнения пользовательских скриптов во многих дистрибутивах. Однако существуют другие оболочки, такие как Korn (ksh), C shell (csh) и Z shell (zsh), но мы не будем вдаваться в них здесь, поскольку обсуждение sh и bash наиболее актуально для Ubuntu. В этой статье мы подробно рассмотрим эволюцию оболочек в Linux и хорошо описываем архитектуру оболочки и то, как отличаются оболочки.

Введение

[ f12] была оригинальной оболочкой Unix, разработанной Стивеном Борном; однако системы на основе Debian и Ubuntu считают dash своей оболочкой sh (sh на самом деле символически связаны с dash). В Debian и Ubuntu из-за скорости sh он чаще используется для критических системных процедур и для запуска ключевых сценариев при запуске; более подробно см. здесь . Bash означает «Bourne Again SHell» и был разработан позднее Брайаном Фокс и значительно расширил оригинал sh. Фокс и другие разработки Bash были важной частью проекта GNU. См. Это замечательное обсуждение истории Bash для получения дополнительной информации.

Важно отметить, что оба sh и Bash, используемые в Ubuntu и других дистрибутивах, являются POSIX совместимыми, что означает, что они подписываются на ряд стандартов о том, как выполняются команды в оболочке. Это делается для того, чтобы результаты сценариев, используемых в ОС, можно было надежно предсказать и что поведение оболочки можно сохранить в пределах тех параметров POSIX, что особенно важно для разработчиков. Для получения дополнительной информации о стандартах см. этот .

Часто скрипты оболочки имеют суффикс .sh, хотя они предназначены для выполнения как скрипты bash и имеют #!/bin/bash в верхней части скрипта. На самом деле неважно, называется ли сценарий script.sh или my.script, имеет значение, является ли вызов интерпретатора /bin/sh или /bin/bash. Сценарии оболочки также можно вызвать в командной строке с помощью sh или bash.

Однако важно отметить, что результаты могут отличаться в зависимости от того, какой вызов интерпретируется, поскольку не все Команды bash будут работать в sh, тогда как большинство команд sh будут работать в bash. В общем, большинство пользователей захотят использовать /bin/bash для своих скриптов, чтобы они могли воспользоваться расширенным набором функций; системные скрипты могут выполняться с /bin/sh, если это необходимо.

important

Иногда бывает сложно найти полезные ресурсы в Интернете, которые следуют хорошей практике и которые дают советы, которые позволят вам создавать полезные скрипты. После man bash некоторые из самых важных ресурсов - это вики Грега, хакеры Bash и недавняя книга Стив Паркера о сценариях Shell, которая в основном фокусируется на Bash и опубликована O'Reilly. Хорошее введение также проводится руководством для начинающих Bash.

14
ответ дан 25 May 2018 в 07:52

Введение

Сценарии оболочки и скрипты Bash - это не то же самое, что и другие оболочки, такие как sh, которые могут использоваться для выполнения скрипта; сценарий, предназначенный для выполнения Bash, должен быть помечен как скрипт Bash. Термины часто используются взаимозаменяемо, потому что Bash с расширенной функциональностью по сравнению с sh является наиболее часто используемым для выполнения пользовательских скриптов во многих дистрибутивах. Однако существуют другие оболочки, такие как Korn (ksh), C shell (csh) и Z shell (zsh), но мы не будем вдаваться в них здесь, поскольку обсуждение sh и bash наиболее актуально для Ubuntu. В этой статье мы подробно рассмотрим эволюцию оболочек в Linux и хорошо описываем архитектуру оболочки и то, как отличаются оболочки.

Введение

[ f12] была оригинальной оболочкой Unix, разработанной Стивеном Борном; однако системы на основе Debian и Ubuntu считают dash своей оболочкой sh (sh на самом деле символически связаны с dash). В Debian и Ubuntu из-за скорости sh он чаще используется для критических системных процедур и для запуска ключевых сценариев при запуске; более подробно см. здесь . Bash означает «Bourne Again SHell» и был разработан позднее Брайаном Фокс и значительно расширил оригинал sh. Фокс и другие разработки Bash были важной частью проекта GNU. См. Это замечательное обсуждение истории Bash для получения дополнительной информации.

Важно отметить, что оба sh и Bash, используемые в Ubuntu и других дистрибутивах, являются POSIX совместимыми, что означает, что они подписываются на ряд стандартов о том, как выполняются команды в оболочке. Это делается для того, чтобы результаты сценариев, используемых в ОС, можно было надежно предсказать и что поведение оболочки можно сохранить в пределах тех параметров POSIX, что особенно важно для разработчиков. Для получения дополнительной информации о стандартах см. этот .

Часто скрипты оболочки имеют суффикс .sh, хотя они предназначены для выполнения как скрипты bash и имеют #!/bin/bash в верхней части скрипта. На самом деле неважно, называется ли сценарий script.sh или my.script, имеет значение, является ли вызов интерпретатора /bin/sh или /bin/bash. Сценарии оболочки также можно вызвать в командной строке с помощью sh или bash.

Однако важно отметить, что результаты могут отличаться в зависимости от того, какой вызов интерпретируется, поскольку не все Команды bash будут работать в sh, тогда как большинство команд sh будут работать в bash. В общем, большинство пользователей захотят использовать /bin/bash для своих скриптов, чтобы они могли воспользоваться расширенным набором функций; системные скрипты могут выполняться с /bin/sh, если это необходимо.

important

Иногда бывает сложно найти полезные ресурсы в Интернете, которые следуют хорошей практике и которые дают советы, которые позволят вам создавать полезные скрипты. После man bash некоторые из самых важных ресурсов - это вики Грега, хакеры Bash и недавняя книга Стив Паркера о сценариях Shell, которая в основном фокусируется на Bash и опубликована O'Reilly. Хорошее введение также проводится руководством для начинающих Bash.

14
ответ дан 25 May 2018 в 07:52

Введение

Сценарии оболочки и скрипты Bash - это не то же самое, что и другие оболочки, такие как sh, которые могут использоваться для выполнения скрипта; сценарий, предназначенный для выполнения Bash, должен быть помечен как скрипт Bash. Термины часто используются взаимозаменяемо, потому что Bash с расширенной функциональностью по сравнению с sh является наиболее часто используемым для выполнения пользовательских скриптов во многих дистрибутивах. Однако существуют другие оболочки, такие как Korn (ksh), C shell (csh) и Z shell (zsh), но мы не будем вдаваться в них здесь, поскольку обсуждение sh и bash наиболее актуально для Ubuntu. В этой статье мы подробно рассмотрим эволюцию оболочек в Linux и хорошо описываем архитектуру оболочки и то, как отличаются оболочки.

Введение

[ f12] была оригинальной оболочкой Unix, разработанной Стивеном Борном; однако системы на основе Debian и Ubuntu считают dash своей оболочкой sh (sh на самом деле символически связаны с dash). В Debian и Ubuntu из-за скорости sh он чаще используется для критических системных процедур и для запуска ключевых сценариев при запуске; более подробно см. здесь . Bash означает «Bourne Again SHell» и был разработан позднее Брайаном Фокс и значительно расширил оригинал sh. Фокс и другие разработки Bash были важной частью проекта GNU. См. Это замечательное обсуждение истории Bash для получения дополнительной информации.

Важно отметить, что оба sh и Bash, используемые в Ubuntu и других дистрибутивах, являются POSIX совместимыми, что означает, что они подписываются на ряд стандартов о том, как выполняются команды в оболочке. Это делается для того, чтобы результаты сценариев, используемых в ОС, можно было надежно предсказать и что поведение оболочки можно сохранить в пределах тех параметров POSIX, что особенно важно для разработчиков. Для получения дополнительной информации о стандартах см. этот .

Часто скрипты оболочки имеют суффикс .sh, хотя они предназначены для выполнения как скрипты bash и имеют #!/bin/bash в верхней части скрипта. На самом деле неважно, называется ли сценарий script.sh или my.script, имеет значение, является ли вызов интерпретатора /bin/sh или /bin/bash. Сценарии оболочки также можно вызвать в командной строке с помощью sh или bash.

Однако важно отметить, что результаты могут отличаться в зависимости от того, какой вызов интерпретируется, поскольку не все Команды bash будут работать в sh, тогда как большинство команд sh будут работать в bash. В общем, большинство пользователей захотят использовать /bin/bash для своих скриптов, чтобы они могли воспользоваться расширенным набором функций; системные скрипты могут выполняться с /bin/sh, если это необходимо.

important

Иногда бывает сложно найти полезные ресурсы в Интернете, которые следуют хорошей практике и которые дают советы, которые позволят вам создавать полезные скрипты. После man bash некоторые из самых важных ресурсов - это вики Грега, хакеры Bash и недавняя книга Стив Паркера о сценариях Shell, которая в основном фокусируется на Bash и опубликована O'Reilly. Хорошее введение также проводится руководством для начинающих Bash.

14
ответ дан 25 May 2018 в 07:52

Введение

Сценарии оболочки и скрипты Bash - это не то же самое, что и другие оболочки, такие как sh, которые могут использоваться для выполнения скрипта; сценарий, предназначенный для выполнения Bash, должен быть помечен как скрипт Bash. Термины часто используются взаимозаменяемо, потому что Bash с расширенной функциональностью по сравнению с sh является наиболее часто используемым для выполнения пользовательских скриптов во многих дистрибутивах. Однако существуют другие оболочки, такие как Korn (ksh), C shell (csh) и Z shell (zsh), но мы не будем вдаваться в них здесь, поскольку обсуждение sh и bash наиболее актуально для Ubuntu. В этой статье мы подробно рассмотрим эволюцию оболочек в Linux и хорошо описываем архитектуру оболочки и то, как отличаются оболочки.

Введение

[ f12] была оригинальной оболочкой Unix, разработанной Стивеном Борном; однако системы на основе Debian и Ubuntu считают dash своей оболочкой sh (sh на самом деле символически связаны с dash). В Debian и Ubuntu из-за скорости sh он чаще используется для критических системных процедур и для запуска ключевых сценариев при запуске; более подробно см. здесь . Bash означает «Bourne Again SHell» и был разработан позднее Брайаном Фокс и значительно расширил оригинал sh. Фокс и другие разработки Bash были важной частью проекта GNU. См. Это замечательное обсуждение истории Bash для получения дополнительной информации.

Важно отметить, что оба sh и Bash, используемые в Ubuntu и других дистрибутивах, являются POSIX совместимыми, что означает, что они подписываются на ряд стандартов о том, как выполняются команды в оболочке. Это делается для того, чтобы результаты сценариев, используемых в ОС, можно было надежно предсказать и что поведение оболочки можно сохранить в пределах тех параметров POSIX, что особенно важно для разработчиков. Для получения дополнительной информации о стандартах см. этот .

Часто скрипты оболочки имеют суффикс .sh, хотя они предназначены для выполнения как скрипты bash и имеют #!/bin/bash в верхней части скрипта. На самом деле неважно, называется ли сценарий script.sh или my.script, имеет значение, является ли вызов интерпретатора /bin/sh или /bin/bash. Сценарии оболочки также можно вызвать в командной строке с помощью sh или bash.

Однако важно отметить, что результаты могут отличаться в зависимости от того, какой вызов интерпретируется, поскольку не все Команды bash будут работать в sh, тогда как большинство команд sh будут работать в bash. В общем, большинство пользователей захотят использовать /bin/bash для своих скриптов, чтобы они могли воспользоваться расширенным набором функций; системные скрипты могут выполняться с /bin/sh, если это необходимо.

important

Иногда бывает сложно найти полезные ресурсы в Интернете, которые следуют хорошей практике и которые дают советы, которые позволят вам создавать полезные скрипты. После man bash некоторые из самых важных ресурсов - это вики Грега, хакеры Bash и недавняя книга Стив Паркера о сценариях Shell, которая в основном фокусируется на Bash и опубликована O'Reilly. Хорошее введение также проводится руководством для начинающих Bash.

14
ответ дан 25 May 2018 в 07:52

Другие вопросы по тегам:

Похожие вопросы: