Dawno temu zacząłem korzystać z konsoli Linux, ale nigdy nie zadawałem sobie pytania o postać otaczającą, czyli znak karetki ( ^
). Chciałbym zapytać, dlaczego jest używany jako zamiennik tego słowa Ctrl
.
Zastanawiałem się nad tym, kiedy korzystałem z nano i szukałem też odpowiedzi w Internecie, ale znalazłem tylko pytania dotyczące „co to jest” i „co to reprezentuje”.
Czy są jakieś historyczne powody? A może pochodzi z jakiejś dziwnej konwencji?
history
documentation
special-characters
Giacomo Cerquone
źródło
źródło
vi
(przynajmniej ten w SunOS 3.5) używał karetki / daszka przed literami, aby reprezentować ctrl-C, ctrl-V itd.stty
I to robi. Z drugiej strony,^
działał jako synonim|
skryptów powłoki w tamtej epoce, więc zawsze będziesz musiał odwrócić kursor wstty
wywołaniach. Dobre pytanie.3
/#
),^
Może to być skrót wizualny dla innego rodzaju „przesunięcia”, że tak powiem. Fakt, że w przypadku większości klawiszy / znaków, które można wpisać, Ctrl po prostu wyłącza 64-bitowy znak, może być również powiązany -^
jest to skrótNOT (0x40)
.Odpowiedzi:
Dookoła (
^
) zostało zrównane ze znakiem strzałki w górę na drukarkach. Do czasu pojawienia się SunOS i tak dalej ta część trwała ponad 10 lat w przeszłości. Ten sam znak (zamiennik) został użyty w wyrażeniach matematycznych, np. W^
odniesieniu do potęg (tam, gdzie inni mogliby użyć**
). Był również używany w Pascalu do wskazywania wskaźników.Służy do wskazywania znaków kontrolnych, datuje się to (przynajmniej) przed 1980 r. Można go znaleźć na przykład w dokumentacji DEC (z pewnością był używany w połowie lat 70., kiedy korzystałem z teco. Podręcznik narzędzi z 1973 r. (Strona 927) pokazuje controlCna przykład.
Poszukując odpowiedniego źródła, znajduję Kody komunikacji Teletypewriter autorstwa Gil Smitha, który mówi wystarczająco dużo, aby umieścić to pod koniec lat 60. XX wieku (pokazując, że pochodzenie również pochodzi z wersji wcześniejszej niż Unix):
Kiedyś było to dobrze znane ze względu na problemy z wymianą plików między różnymi kodowaniami, takimi jak ASCII i EBCDIC, gdzie wciąż istniały drukarki zdolne do renderowania strzałek w górę, długo po tym, jak znak już nie istniał w ASCII.
źródło
^
wyjaśnieniem, dlaczego znak ten był używany jako operator potoku w oryginalnej powłoce uniksowej (przekazuje ideę danych przepływających z jednego polecenia do drugiego). Powłoka Bourne'a nadal traktuje^
jako alternatywny operator potoku (przypuszczam, że dla kompatybilności wstecznej z powłoką Thomsona).^I
0x89 asM-^I
, 0xc9 asM-I
, 0xe9 asM-i
. Czy teraz, jeśli jakaś postać była kiedyś używana do reprezentowania MetaM-
?