Kezdőoldal » Számítástechnika » Programok » A Linux futtatható állományokn...

A Linux futtatható állományoknál miért nincs kiterjesztés?

Figyelt kérdés
Arra gondolok, hogy pl a Windowsnál van az .exe kiterjesztés a futtathatóknál. A Linuxnál miért nincs semmi? Olyanról hallottam, hogy .elf kiterjesztés, de nem szokták kitenni. Értem én, hogy a Linux nem követeli, hogy legyen bármi is írva, akár egy .png képet is felismer kiterjesztés nélkül, de na, szerintem csak jobb lenne, ha lenne rendesen kiterjesztése a futtathatóknak is. Bár gondolom megvan az oka, hogy miért nincs, vagy csak nagyon ritka. Na de mi az oka? Nekem valahogy jobban tetszene, ha rendesen kiterjesztés hozzáírással lehetne indítani a programokat.

#linux #fájl #fájlkiterjesztés #futtatható állomány
2022. aug. 22. 23:01
1 2
 1/14 anonim ***** válasza:
70%

Más elven működnek a unix rendszerek. Van egy fájl, legyen annak bármilyen neve, ha adsz neki futtatási jogot akkor futtatható lesz. Persze ha egy képnek adsz futtatási jogot attól még az nem fog csinálni semmit, de futtatható jogot megkapja.

Egyébként az egész fájlrendszer úgy épül fel, hogy mindennek megvan a saját helye. Pl. a futtatható fájlok a /bin, /usr/bin mappákban vannak. A rendszergazdai joghoz kötött futtatható fájlok a /sbin, /usr/sbin mappában találhatóak. A szükséges programkönyvtárak a /lib ill. /usr/lib mappában helyezkednek el. Tehát nem szükséges kiterjesztés, mivel a megfelelő mappában vannak a fájlok.


"jobban tetszene, ha rendesen kiterjesztés hozzáírással lehetne indítani a programokat"

nem értem ezzel mit akarsz mondani

2022. aug. 23. 00:51
Hasznos számodra ez a válasz?
 2/14 anonim ***** válasza:

"Na de mi az oka?"

A fájl típusát sok esetben a fájlok elején elhelyezkedő fejlécek határozzák meg, így nincs szükség feltétlen kiterjesztésre - az "csak egy kényelmi szolgáltatás a felhasználónak".


Például futtatható ELF-bináris esetén:

[link]

szkriptek (bash, Python, perl,...) esetén a Shebang:

[link]

illetve ott vannak még a fájl jogosultságai:

[link]

2022. aug. 23. 02:48
Hasznos számodra ez a válasz?
 3/14 anonim ***** válasza:
51%

Mert fölösleges. A rendszer tudja, melyik a futtatható fájl, és a felhasználó is el szokta tudni dönteni, így nem sok értelme lenne.

Windowson egyébként alapértelmezetten rejtve van az ismert kiterjesztések elrejtése, így ha csak át nem állítod, ott sem látod a kiterjesztését.

2022. aug. 23. 04:04
Hasznos számodra ez a válasz?
 4/14 anonim ***** válasza:
76%

Egyébként Linuxon történelmi okokból jellemzően sokat használjuk a paranccsort (míg a Windows alapvetően GUI-s felhasználásra van tervezve), ahol egy külső parancs megegyezik a futtatható fájl nevével. Ha még a kiterjesztést is oda kellene írni, sokkal többet kellene feleslegesen gépelni. Tehát pl. e helyett:


cat /var/log/authlog | grep "Accepted password"


Mondjuk ezt kéne írnod:


cat.exe /var/log/authlog | grep.exe "Accepted password"


Persze, lehetne aliasokat gyártani tömegesen, de az meg karbantartási szempontból lenne rémálom.

2022. aug. 23. 05:01
Hasznos számodra ez a válasz?
 5/14 anonim ***** válasza:
76%
Ha programra gondolsz, akkor azért mert parancssorban használod őket és nem akarnád percenként 20-szor kiírni hogy .exe (vagy Linux megfelelőjét)
2022. aug. 23. 05:32
Hasznos számodra ez a válasz?
 6/14 Tom Benko ***** válasza:

Alapvetően azért, mert fölösleges. Nem tudsz annyiféle kiterjesztést adni, ahányféle fájltípusra lehet szükséged. Ráadásul mondjuk egy .exe fájlkiterjesztés kvázi szabványos jelentéssel bír, de mondjuk egy .nus mit jelent? Vagy egy .con, egy .ktk? Ezeket le kell írni egy szabványban, aztán utána megkövetelni az alkalmazást. De itt két lehetőség van:

1; Minden lehetőséget fel kell sorolni. Ez cirka 20000 eset, mindegyiknek egy rövid leírás is dukál. A fene sem fogja mindig minden fájl esetében megnézni, melyik takarja jól az éppen elkészített fájl jellemzését. És mi van, ha mondjuk két ilyen van?

2; Nem írunk le mindent. Akkor a kimaradó kiterjesztésekkel a probléma megmarad.

2022. aug. 23. 11:19
Hasznos számodra ez a válasz?
 7/14 anonim ***** válasza:
51%

A Linux (és a Unix rendszerek úgy általában) más szisztémát követ. Mígy Windowsban az egy alkalmazáshoz tartozó fileok vannak egy helyen (pl. C:\Program Files\Akarmicsoda mappában van a futtatható program, a config file, a DLL-ek és az egyéb fileok is) addig Linuxon az egy funkcióhoz tartozó fileok vannak egy helyen (pl /usr/bin mappában az összes futtatható program, /etc mappában a config). Emiatt fölösleges a kiterjesztés. Nomeg a Linuxban (szerencsére) nem a kiterjesztés dönti el, hogy futtatható-e valami, hanem a jogosultságok. Plusz Linuxon nagyon sok a script file, amik szintén futtathatók. Lehet, hogy egy program egy scriptfile-al indul, lehet, hogy egy ELF binárissal. De neked elég csak a nevét begépelni, ha rajta van a +x jog, akkor tudod futtatni.


Az, hogy neked nem tetszik így, egyéni probléma. A Linuxnak (szerencsére) nem kell úgy működnie, mint a Windowsnak.

Mit ne mondjak, sokkal logikusabb ez a megoldás szerintem.

2022. aug. 23. 11:43
Hasznos számodra ez a válasz?
 8/14 anonim ***** válasza:
Más elven működik. A Windows ezt az (PC) DOS rendszerből örökölte /illetve ha jól emlékszem az egyik "őse" a CP/M is ugyanígy működött, de azt keveset és nagyon régen használtam/. Ott pont azért amit fent is írtak, hogy ne kelljen mindig pötyögni, hogy .EXE vagy .COM a parancsértelmező úgy működött, hogyha beírtál egy parancsot akkor először megnézte, hogy az belső parancs-e /amit külön fájl nélkül a parancsértelmőz végre tud hajtani/. Ha belső parancsként nem találta akkor először megpróbálta úgy, hogy végignézte az ún. "PATH"-ban felsorolt directorykat, hogy abban szerepel-e a .BAT kiterjesztéssel (kötegelt feldolgozás parancsfájl), .COM (command program /ez max. 64k lehetett tokkal-vonóval), vagy .EXE (futatható program). A keresési metódusra már nem annyira emlékszem, hogy könyvtáranként nézte ezt a sorrendet, vagy előszőr kereste végig az összes .BAT-ot majd .COM-ot és .EXE-t, vagy egy könyvátron belül kereste. Ez azt is jelentette, hogy ha volt egy "PROGI.BAT" "PROGI.COM" és egy "PROGI.EXE" és kiterjesztés nélkül annyit írtál be, hogy "PROGI" akkor a BAT hajtódott végre. Ott a kiterjesztést ő automatikusan hozzá csapta. Később úgy a WinNT környékén (2000 környéke) kezdődőtt, hogy már kevesebb jelentősége volt a kiterjesztésnek, de máig megmaradt. Hogy most, mit csinál ha kiterjesztés nélkül akarom indítani a progit nem tudom, de ha lesz egy kis időm kipróbálom.
2022. aug. 23. 15:53
Hasznos számodra ez a válasz?
 9/14 anonim ***** válasza:
70%
Manapság már a windows is sem mutatja alapból a kiterjesztést. Szóval mégsem olyan fontos az. A Unix rendszerek már akkor grafikusak voltak, amikor még a Windows sehol sem volt.
2022. aug. 26. 11:08
Hasznos számodra ez a válasz?
 10/14 anonim ***** válasza:
#9: Nem manapság, hanem a Windows 95 óta és ez speciel egy baromság a Windowsnál, mert a sok hülye nem látja, hogy melyik file is lenne a futtatható.
2022. aug. 26. 11:48
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!