Slash и backslash: вехи на пути
Возникновение слеша относят к временам Римской империи. На ранних стадиях современности, во Фрактуре [1], которая была широко распространена по всей Европе в средневековье, слеш (/) использовался вместо запятой, в то время как двойной слеш (//) использовался вместо тире. Двойной слеш, в конечном счете, превратился в символ похожий на знак равенства (=), а позже был еще больше упрощен до тире или дефиса [2].
Backslash
Боб Бемер ввел обратный слеш (\) в набор символов ASCII, 18 сентября 1961 года, как результат изучения частоты использования символов встречающихся в частности в программах на ALGOL’е. Тогда же вместе с обратным слешем в стандарт были включены и квадратные скобки.
В частности \ был введен, чтобы булевы операторы ALGOL’a AND и OR могли быть представлены с помощью ASCII символов как «/\» и «\/» соответственно [3,4].
Как же вышло, что исторически православный слеш заменился на свое зеркальное отображение, введенное как вспомогательный символ специально для уже мертвого языка?
Русскоязычная Википедия по этому говорит вот что:
В операционных системах DOS и Windows фирмы Microsoft и их аналогах других разработчиков, обратная косая используется для разделений имён директорий (каталогов) при указании пути к файлу. Прямая косая, применяемая для этого в Unix не могла быть использована в MS-DOS, потому что уже была задействована для указания ключей командной строки (оставшегося в наследство от СР/M, где MS-DOS команда «dir /w» писалась как «dir/w») [5].
Так как такое объяснение меня не слишком удовлетворило, пришлось найти статью «Why is the DOS path character «\»?» [6], которая вполне утолила моё любопытство. Вольный перевод избранных частей в моем исполнении:
То что символ «/» конфликтовал с разделителем пути другой относительно популярной ОС не был связан напрямую с разработчиками – в конце концов, DOS не поддерживал директорий, просто файлы в одном корневом каталоге.
Для MS-DOS 2.0 (в котором появился поддержка каталогов), дизайнеры DOSа выбрали гибридную версию – у них уже были имена дисков в наследство от DOS 1.0, поэтому разработчикам пришлось их использовать. И в дополнение к именам дисков они решили использовать *nix-style метод определения иерархии каталогов — вместо использования каталога в имени файла (как это было сделано в VMS и DEC-20), они просто сделали каталог и имя файла неотъемлемыми частями пути. Но с этим была проблема. Невозможно было использовать разделитель пути *nix (/), по той причине что слэш уже использовался как разделитель ключей.
Что им было делать? Они конечно могли использовать «.» как в DEC, но точка уже использовалась как разделитель между именем файла и расширением. Поэтому они выбрали наилучший вариант из оставшихся — символ «\», который был визуально похож на «/».Таким вот образом и был выбран символ «\» для разделения путей в DOS.
Кстати есть небольшой секрет про MS-DOS. Разработчики DOS не были довольны таким положением дел – они использовали Xenix [7] для почты и прочих вещей, поэтому они были знакомы со структурой *nix команд. Поэтому они добавили в ОС возможность принимать в качестве разделителя путей как «/» так и «\» (это работает и сегодня, кстати – попробуйте выполнить «notepad c:/boot.ini» под XP (если ваш пользователь имеет права админа)). Дальше — больше. Они добавили недокументированный системный вызов, чтобы изменить символ разделителя ключей. И обновили утилиты, чтобы те поддерживали этот флаг. Они даже добавили в config.sys параметр, SWITCHAR, который позволит пользователю установить разделитель ключей на «-«. Таким образом можно было превратить MS-DOS в *nix-style ОС, используя «-switch», и пути с разделителем «/».
Собственно к чему это все?
Меня побудила разобраться в этой теме следующая ситуация.
Была поставлена задача — наладить систему отчетов для автоматизированных тестов. Тесты у нас используются двух видов – Selenium (функциональные) и Jmeter (нагрузочные). Собственно в этом не было ничего сложного — для этих целей существует вполне себе open-source проект под названием logging selenium [8] и plugin для maven — chronos [9]. Настроив всё и протестировав отчеты локально, принялся за интеграцию с нашей CI — TeamCity. Вот тут-то меня и ждала та самая неожиданность, которая стала поводом для написания этой статьи.
После выполнения всех тестов отчет о Selenium-тестах имел следующий вид:
Всё отлично отображалось, и никаких отличий от локальной версии не было.
Но вот отчет, который отобразился для Jmeter-тестов, воодушевления не вызывал:
Напрочь отсутствовали все изображения на странице.
После просмотра исходного кода страницы стало понятно, что во всем виноват backslash. Ссылки на изображения были указаны в таком формате:
Справедливости ради стоит заметить, что изображения отсутствовали в Firefox, но прекрасно отображались в IE. Хотя если бы IE не отображал ресурсы в URI которых встречается обратный слеш, как разделитель пути для Windows, то в, и не без того подпорченной, репутации индийских программистов образовалась бы еще одна брешь.
В общем, после недолгих раздумий стало понятно, что где-то внутри chronos’a используется File.separator, который и повинен в появлении обратного слеша в путях ресурсов и проблемах с отображением графиков в отчетах. Скачивание исходников плагина и исправление соответствующей строки, в которой формировался URL, решило проблему и дало возможность насладится прекрасными графиками, которые генерируются на основе результатов выполнения JMeter-тестов.
В заключении хотелось бы предостеречь от бездумного использования нативного File.separator – это не всегда приводит к кроссплатформенности, а в некоторых случаях даже может стать причиной появления новых багов. Обычный же слеш работает в Windows (зачастую), работает в *nix, Java и наконец его стоит уважать хотя бы по праву старшинства, так как он на полторы тысячи лет старше своего зазеркального брата.
P.S.: Спасибо хабраюзеру AlexanderYastrebov за внесение ясности относительно истории создания C.
Что такое слэш на клавиатуре? Виды слэшей и особенности их использования
Приветствую вас на блоге inetsovety.ru. Сегодня мы расскажем, что такое знак слэш и как его поставить на клавиатуре. Многие компьютерные пользователи знают клавиатуру «от» и «до», но в некоторых случаях они сталкиваются со знаками или символами, цель использования которых им не совсем понятна. И для многих людей такой неизвестной «закорючкой» является символ в виде ровной или косой вертикальной палочки. На компьютерном сленге данный символ называется слешем.
Что это такое, как и для чего применяется этот знак? Где находится этот символ, и какие его виды бывают? Давайте вкратце остановимся на этих вопросах, и дадим на них максимально исчерпывающие ответы.
Что такое слэш, и каким он бывает?
Что такое слэш на клавиатуре? Слэш – это косая линия, которая используется в качестве дроби при написании текстов, математических расчетов, финансовых отчетов и прочих документов. Однако используют символ вертикальной черты на клавиатуре не только для этого. Юзеры, которые активно принимают участие в форумах и чатах, а также практически «живут» в социальных сетях, тоже нередко прибегают к постановке такой косой в сообщении.
Зачем это нужно? Все зависит от того, какой именно вид такой черточки вы собираетесь использовать.
Примечание. В интернете можно увидеть 2 варианта написания данного слова, поэтому многие новички часто путаются в том, как правильно – слэш или слеш. В принципе, большой роли это не играет, поскольку каждый из нас вполне может пользоваться тем вариантом, который ему больше импонирует. Но если вы интересуетесь этим вопросом с точки зрения правил орфографии, то «слеш» — более правильная вариация.
Для чего нужна косая линия?
Для чего нужна кнопка с косой линией, и где она чаще всего применяется? Примечательно, что кнопка слэш на клавиатуре раньше отсутствовала. Этот символ использовался программистами для написания компьютерных программ, а также для разработки интернет-сайтов. Однако на сегодняшний день на клавиатуре каждого стационарного компьютера, ноутбука, нетбука, ультрабука такой символ присутствует. И касается это не только компьютерной техники. Прямой вертикальный и косой слэш также есть и на телефонах, планшетах.
Так, для чего нужна такая опция? Чтобы понять это, поговорим об использовании слеша только в контексте компьютерных технологий. Обратная косая, как и «правильная», используется для:
- Поиска нужного сайта в интернете. В этом случае применяется обычный двойной слэш «//», разделяющий протокол http от домена ресурса. На примере выглядит это так: http://domen.ru.
- Указания пути перед вписыванием ключей при создании команд в специальной строке. В этом случае может использоваться как «правильный», так и обратный слэш. Например: cd / или cd /B, b:\.
- Указания знака деления. Обычно слеш в таком случае используется на компьютерном или автономном калькуляторе.
- Разделения каталогов в путях. Такая функция широко применяется в операционной системе Виндовс. Как правило, используется при этом бэкслэш.
И это еще не все случаи, когда используют данный символ. Так, мы разобрались в том, как называется наклонная палочка на клавиатуре. Теперь же давайте перейдем к изучению видов слешей и особенностей их постановки.
Разновидности слешей, способы их постановки
Как поставить прямую или косую палочку на клавиатуре? Чтобы это понять, необходимо разобраться в разновидностях слешей, поскольку каждому из них соответствует отдельная клавиша.
Пайп
Пайп – это прямой слеш, или ровная вертикальная палочка. Раньше поставить ее на клавиатуре было довольно сложно, но на сегодняшний день это не составляет особого труда. Точно так, как и слэш в другую сторону.
Самым простым является следующий способ постановки «пайпа»:
- Переключите язык клавиатуры на английский.
- Найдите клавишу, на которой обозначен «пайп». Он выглядит как прямая вертикальная линия.
- Нажмите кнопку «шифт».
- Удерживайте «шифт» зажатым, параллельно нажимая на клавишу с изображением «пайпа».
Вот и все – необходимый символ появился в вашем текстовом редакторе. Но есть и второй способ постановки этого знака, и он не требует изменения языковой раскладки на клавиатуре. Чтобы добавить «пайп» в текст в Ворде, следуйте такому алгоритму:
- Установите курсор на том месте, где должен появиться символ.
- Надавите на «шифт» и нажмите на кнопку с изображением «пайпа».
- Отпустите обе клавиши одновременно.
На заметку. Если вы хотите быстро вставить пайп в Ворде, то можете перейти во вкладку «Вставка», после чего нажать «Символы». Отыскав нужную «черточку», просто нажмите на нее 1 раз – и она появится в вашем тексте.
Косая черта, или правый слеш
Если вы интересуетесь вопросом, как поставить дробь на клавиатуре, то вам, бесспорно, нужная косая палочка, «смотрящая» вправо. И поставить ее намного проще, чем «пайп». Так, чтобы добавить ее в текст, необходимо:
- Нажать и удерживать «шифт».
- Найти на клавиатуре косую черточку, наклоненную вправо.
- Нажать на слеш и отпустить сразу обе кнопки.
Это самый быстрый способ установки правого слеша. Если у вас это не получается, то можете воспользоваться функцией вставки символа по схеме, описанной выше. Она же будет актуальной и при условии, что вам нужно вставить обратный слэш, который вы не можете найти на клавиатуре.
Что такое бэкслеш, и как его поставить?
Backslash на клавиатуре – это косая линия, которая наклонена влево. К слову, поставить его намного проще, чем вышеперечисленные виды слешей, поскольку нажатие клавиши «Шифт» в этом случае не обязательно. Находится «обратный слеш» на одной клавише с правой косой линией. Кнопка расположена над клавишей «шифт», хотя возможны и другие варианты (все зависит от размера клавиатуры и производителя компьютера).
Как поставить обратную косую черту на клавиатуре? Если у вас проставлен русский шрифт, то вам всего лишь нужно нажать на кнопку, где нарисована нужная линия – и знак появится в вашем тексте. Если же вы нажмете ее вместе с «шифтом», то вместо обратного слеша у вас появится простой, правый.
Вот и все: теперь вы знаете, что такое слеши, какими они бывают и как их поставить. Главное – не бойтесь экспериментировать. Если вам необходимы знания о постановке слэшэй в связи с вашей работой, то для начала потренируйтесь выставлять их в черновом документе. А когда все начнет получаться, переходите к написанию «чистового» варианта документа.
При подготовке материала использовались источники:
https://habr.com/ru/articles/120652/
https://inetsovety.ru/chto-takoe-slesh/