Ismerkedés a parancssorral

Az előző évek anyagai között láttunk már példákat parancsértelmező rendszerekre. Ilyen volt a postgresql interaktív terminálja…

tux@madas:~/public_html/txt/mp$ psql -h localhost -U madas
psql (9.5.14)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.

madas=> 

…vagy a python parancsértelmezője:

tux@madas:~/public_html/txt/mp$ python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Mint az efféle rendszerekben általában, a linux parancsértelmezője esetén is a sor elején álló prompt mutatja meg, hogy a rendszer készen áll egy parancs fogadásásra, illetve végrehajtására:

tux@madas:~/public_html/txt/mp$ 

A prompt gyakran látott beállítás szerint megmutathatja, hogy melyik felhasználó melyik gépen futtatja (most éppen a tux nevű felhasználó a madas nevű gépen), illetve hogy melyik az aktuális könyvtár (most éppen a tux nevű felhasználó saját könyvtárában található public_html könyvtár txt nevű alkönyvtárának mp nevű alalkönyvtára).

Bár manapság a legtöbbünk számára alighanem a parancsértelmező is egy grafikus felületen jelenik meg, ez nem volt mindig így (illetve komolyan vehető kiszolgálók esetén ma sincs mindig így). Egy tisztán szöveges rendszer esetén olyan parancsokra is szükség volt, illetve szükség van, amelyek a széles körben megszokott rendszerekben fölöslegesen tűnnek: sok év óta elegendő a képernyő megfelelő pontjára pillantanunk, illetve a megfelelő helyen kattintanunk, hogy információt kapjunk az aktuális dátumról, időről; évről vagy hónapról.

A unix/linux rendszerekben erre szolgál a cal parancs:

tux@madas:~/public_html/txt/mp$ cal
    Október 2018      
 v  h  k sz cs  p sz  
    1  2  3  4  5  6  
 7  8  9 10 11 12 13  
14 15 16 17 18 19 20  
21 22 23 24 25 26 27  
28 29 30 31           
                      
tux@madas:~/public_html/txt/mp$ 

Ahogyan sok parancs, a cal is kaphat argumentumot:

tux@madas:~/public_html/txt/mp$ cal 1752
                            1752
       Január               Február               Március         
 v  h  k sz cs  p sz   v  h  k sz cs  p sz   v  h  k sz cs  p sz  
          1  2  3  4                     1   1  2  3  4  5  6  7  
 5  6  7  8  9 10 11   2  3  4  5  6  7  8   8  9 10 11 12 13 14  
12 13 14 15 16 17 18   9 10 11 12 13 14 15  15 16 17 18 19 20 21  
19 20 21 22 23 24 25  16 17 18 19 20 21 22  22 23 24 25 26 27 28  
26 27 28 29 30 31     23 24 25 26 27 28 29  29 30 31              
                                                                  

      Április                Május                 Június         
 v  h  k sz cs  p sz   v  h  k sz cs  p sz   v  h  k sz cs  p sz  
          1  2  3  4                  1  2      1  2  3  4  5  6  
 5  6  7  8  9 10 11   3  4  5  6  7  8  9   7  8  9 10 11 12 13  
12 13 14 15 16 17 18  10 11 12 13 14 15 16  14 15 16 17 18 19 20  
19 20 21 22 23 24 25  17 18 19 20 21 22 23  21 22 23 24 25 26 27  
26 27 28 29 30        24 25 26 27 28 29 30  28 29 30              
                      31                                          

       Július              Augusztus             Szeptember       
 v  h  k sz cs  p sz   v  h  k sz cs  p sz   v  h  k sz cs  p sz  
          1  2  3  4                     1         1  2 14 15 16  
 5  6  7  8  9 10 11   2  3  4  5  6  7  8  17 18 19 20 21 22 23  
12 13 14 15 16 17 18   9 10 11 12 13 14 15  24 25 26 27 28 29 30  
19 20 21 22 23 24 25  16 17 18 19 20 21 22                        
26 27 28 29 30 31     23 24 25 26 27 28 29                        
                      30 31                                       

      Október               November              December        
 v  h  k sz cs  p sz   v  h  k sz cs  p sz   v  h  k sz cs  p sz  
 1  2  3  4  5  6  7            1  2  3  4                  1  2  
 8  9 10 11 12 13 14   5  6  7  8  9 10 11   3  4  5  6  7  8  9  
15 16 17 18 19 20 21  12 13 14 15 16 17 18  10 11 12 13 14 15 16  
22 23 24 25 26 27 28  19 20 21 22 23 24 25  17 18 19 20 21 22 23  
29 30 31              26 27 28 29 30        24 25 26 27 28 29 30  
                                            31                    
tux@madas:~/public_html/txt/mp$ 

A unix-alapú rendszerek félévszázados története során számos rendszer számtalan módon gyarapította a parancsokat (illetve azok argumantumait). (A linux számon is alig tartható változataira ki sem tér a unix történetét taglaló wikipédia-cikk ábrája.)

Így a cal parancs mintájára megszületett az ncal parancs: ez egyfelől a kimenet átformálásával biztosította, hogy az eredmény elférjen az annak idején általánosan használt 25 soros, 80 oszlopos terminálokon…

tux@madas:~/public_html/txt/mp$ ncal 1587
                                  1587
    Január            Február           Március           Április           
 h     2  9 16 23 30     6 13 20 27        6 13 20 27        3 10 17 24   
 k     3 10 17 24 31     7 14 21 28        7 14 21 28        4 11 18 25   
sz     4 11 18 25     1  8 15 22        1  8 15 22 29        5 12 19 26   
cs     5 12 19 26     2  9 16 23        2  9 16 23 30        6 13 20 27   
 p     6 13 20 27     3 10 17 24        3 10 17 24 31        7 14 21 28   
sz     7 14 21 28     4 11 18 25        4 11 18 25        1  8 15 22 29   
 v  1  8 15 22 29     5 12 19 26        5 12 19 26        2  9 16 23 30   

    Május             Június            Július            Augusztus         
 h  1  8 15 22 29        5 12 19 26        3 10 17 24 31     7 14 21 28   
 k  2  9 16 23 30        6 13 20 27        4 11 18 25     1  8 15 22 29   
sz  3 10 17 24 31        7 14 21 28        5 12 19 26     2  9 16 23 30   
cs  4 11 18 25        1  8 15 22 29        6 13 20 27     3 10 17 24 31   
 p  5 12 19 26        2  9 16 23 30        7 14 21 28     4 11 18 25      
sz  6 13 20 27        3 10 17 24        1  8 15 22 29     5 12 19 26      
 v  7 14 21 28        4 11 18 25        2  9 16 23 30     6 13 20 27      

    Szeptember        Október           November          December          
 h     4 11 18 25        2  9 16           2  9 16 23 30     7 14 21 28   
 k     5 12 19 26        3 10 17           3 10 17 24     1  8 15 22 29   
sz     6 13 20 27        4 11 18           4 11 18 25     2  9 16 23 30   
cs     7 14 21 28        5 12 19           5 12 19 26     3 10 17 24 31   
 p  1  8 15 22 29        6 13 20           6 13 20 27     4 11 18 25      
sz  2  9 16 23 30        7 14 21           7 14 21 28     5 12 19 26      
 v  3 10 17 24        1  8 15           1  8 15 22 29     6 13 20 27      
tux@madas:~/public_html/txt/mp$ 

…másfelől új argumentumok bevezetésével biztosított többletszolgáltásokat, így például a feltámadás ünnepnapjának meghatározását: -e opcióval a nyugati egyházak, -o opcióval a keleti egyházak számára:

tux@madas:~/public_html/txt/mp$ ncal -e
április  1 2018
tux@madas:~/public_html/txt/mp$ ncal -o
április  8 2018
tux@madas:~/public_html/txt/mp$