Як правило, я б сказав sh.... але, оскільки ви вказали Linux, я скажу bash- це гарантовано є у всіх системах Linux навколо (ну, виключаючи незрозумілі педантично-крихітні, які фетишизують мінімалізм :).
Якщо вам не потрібно піклуватися про нелінуксну портативність (і якщо вам не потрібно працювати на крихітних дистрибутивах або на вбудованих пристроях Linux, таких як маршрутизатори з пластикової коробки), ви можете також скористатися значними вдосконаленнями, які він пропонує над рівниною sh. В іншому випадку використовуйте sh.
Після bash(і sh) наступною найбільш "універсальною" мовою сценаріїв для Linux буде якийсь діалект awk- зазвичай mawkабо gawk. Якщо ви дотримуєтесь простого awk і уникаєте гаукізмів, ваш сценарій повинен спрацьовувати майже на будь-якій системі Linux (він може бути відсутнім у крихітних дистрибутивах чи вбудованих пристроях). Більшість систем Linux матимуть mawkі gawkнаявні, і доступні, але в деяких дистрибутивах (наприклад, debian) mawkвстановлено за замовчуванням, і вам доведеться встановлювати gawkсебе, якщо цього хочете.
Далі буде perl. AFAIK, основна мова perl встановлюється за замовчуванням у всіх поширених дистрибутивах Linux, так що це робить хорошим вибором. Навіть більше, на щастя, є дуже мало несумісності версій з версіями perl5 (хоча perl 5.12 або це, можливо, було 5.14 нарешті, обійшлося, щоб видалити деякі незрозумілі функції, які були застаріли протягом приблизно 15 років ... достатньо попередження не використовувати їх) якщо ваш стиль кодування по-справжньому дивний, і ви не хочете ігнорувати понад десятиліття попередження "не робіть цього", ваші сценарії Perl працюватимуть чудово майже де завгодно. Мова є надійним і потужним , і може робити все , що awkі sedможе зробити , і багато іншого. З невеликим зусиллям можна робити те, щоshтрадиційно добре також (наприклад, запуск зовнішніх команд та використання / підключення виводу). Стандартні бібліотеки Perl теж досить вичерпні - охоплюють більше, ніж просто основи.
Єдина спіймана програма perl полягає в тому, що існує також величезна бібліотека модулів CPAN, яка дозволяє робити все, що ви можете придумати (і багато іншого, що вам ніколи не трапляється) - і не всі вони будуть доступні в кожній системі з Perl . Зазвичай вони дуже високої якості, тому легко ввійти в звичку просто користуватися ними, але якщо ви все-таки користуєтесь ними, вам доведеться переконатися, що вони встановлені. Багато модулів CPAN попередньо упаковані для Linux, а решта легко встановлюються за допомогою інструмента cpan (або dh-make-perlна debian / ubuntu / тощо, щоб перетворити модуль CPAN в пакет .deb)
Я б хотів сказати pythonдалі, але я справді не можу. Про python дуже багато подобається, але він не включений за замовчуванням у багатьох системах Linux, і, чесно кажучи, його сумісність з версіями (як для самого python, так і його нібито «стандартних» ліб) - це суцільна проблема. Деякі дистрибуції докладають великих зусиль, щоб розібратися в безладі, а деякі ні. Не допомагає і той факт, що python - це в основному мова, написана для програмістів програмістами (на відміну від sysadmins), і вони, здається, не думають, що система, на яку буде встановлений код, взагалі важлива .... їх код насправді супер особливий, тому їм не потрібно займатися нудними речами, такими як інтеграція в існуючі системи.
(Не розумію тут мого сарказму - я дуже люблю python як мову, я просто ненавиджу факт, що управління версіями та залежностями є ПДТА. Це як би повернутися 20+ років до епохи ручного полювання на незрозуміле. біти коду та патчі, щоб отримати щось складене та запущене у вашому фірмовому * nix)
sh.