A parancssori shell az operációs rendszeréhez egy szöveg alapú felhasználói felület. A GUI-héjtól eltérően, amely a rendszer szolgáltatásainak és erőforrásainak grafikus ábrázolását használja, a parancssori shell csak szöveget használ. Ez az alapfelület az Ön és az operációs rendszer között, és sok esetben közvetlenebb irányítást biztosít a rendszerfolyamatok felett.
Mi a Shell?
Amikor az operációs rendszerrel való kommunikációról van szó, a GUI-val bármit tehetünk a parancssorban. Vegyünk például valamit, amit minden alkalommal meg kell tennie: mozgassa a fájlokat a fájlrendszerben. GUI használatával kiválaszthatja a fájlokat ábrázoló ikonokat, húzhatja őket egy másik mappába, és elhúzhatja őket a mozgatásukhoz.

A parancssor használatával azonban ez a művelet egyetlen parancs segítségével hajtható végre:

A parancssor, amint megszokta, lehetővé teszi a rendszer hatékonyabb és pontosabb vezérlését, mint a GUI-nál.
Miért nevezik "Shell" -nek?
A felhasználói felületet "héjnak" nevezik, mert ez a külső réteg elválasztja Önt az operációs rendszer legbelső részeitől, amit kernelnek nevezünk. Technikailag az operációs rendszer GUI is "héj", de a parancssorot gyakran "héjnak" nevezik.
Hogyan juthatok be a parancssorba?
A parancssori shell elérésének leggyakoribb módja terminálemulátor használata.
Ha Linux disztribúciót használ, akkor az X Window System (vagy "X") rendszerbe indíthat, amely lehetővé teszi a programok futtatását saját ablakukban, és az egér használatával. X-ben a terminálemulátor elindításának különböző módjai vannak, de itt a leggyakoribb:
- Sok Linux disztribúció olyan asztali környezetet használ, amely hasonló a Microsoft Windows rendszerhez, amelyen a "Start menü" van. Ebben a menüben a terminálalkalmazás általában a "Kiegészítők" alatt található. Például a Lubuntu a már telepített LXTerminal terminál emulátorral érkezik, és a parancsikon a Kellékek menüben található.
A terminál menüpont kiválasztása elindítja a terminál emulátort, és egy parancssorba helyezi.
- A Linux különböző verziói különböző ablakkezelőket használnak, amelyek mindegyike kissé eltérő felületet tartalmaz. Számos ablakkezelőnél az asztalon lévő jobb egérgombbal megjelenik egy terminál opciót tartalmazó menü. Például a jobb egérgombbal a Crunchbang Linux menüjében van egy "Terminál" opció. Az alábbiakban látható, hogy mi az a menü, miután jobb gombbal kattintott az asztalon.
Itt a Tartozékok menü is rendelkezik egy lehetőséggel a terminál futtatásához.
- A Linux számos verzióján a Super Key és a " T " egyidejű megnyomása az alapértelmezett gyorsbillentyű a terminál elindításához. (A Super Key általában az első kulcs a szóköztől balra, más néven Windows-kulcsként).
Ha nem tudja kitalálni, hogyan indítsa el a terminál emulátort, olvassa el az adott operációs rendszer dokumentációját, és keresse meg a "terminál" -ot.
A parancssor
A terminálemulátor elindításakor egy parancssor jelenik meg.

Megjegyzés: Ezeket a példákat a Bourne-Again Shell ( bash ) segítségével végezzük, amely az alapértelmezett parancssoros shell a Linuxon.
Nézzük meg ezt a parancsot szorosan. A kérés bármit is szeretne beállítani, de alapértelmezés szerint úgy néz ki, mint amit itt látunk, és hasznos információkat adunk nekünk, mielőtt egy parancsot írnánk be.
Konkrétan azt mondja el nekünk, hogy kik vagyunk (felhasználónév) és hol vagyunk (milyen rendszert használunk és munkakönyvtárunkat). Íme, az azonnali jelentések egyes részei:
a neved | Felhasználóneved. |
@ | A jelszó elválasztja a felhasználónevet és a gazdanevet. |
yourhost | A rendszer gazdaneve. |
: | A kettőspont az a karakter, amely elválasztja a gazdanevet és a munkakönyvtárat. |
~ | Jelenlegi ("működő") könyvtárunk. A tilde (" ~ ") egy speciális karakter, amely a saját könyvtárunkat képviseli. Ha egy shell-munkamenetet elindít, akkor ez az a könyvtár, ahol alapértelmezés szerint általában elkezd dolgozni. |
$ | Egy speciális karakter, amely azt jelzi, hogy nincsenek jogosultságok a felhasználók számára. Ha root felhasználóként jelentkezett be (a superuser), ez a karakter egy # -re változik. |
Parancsok megadása
Írjuk be az első parancsunkat. Kezdjük azzal, hogy felsoroljuk a fájlokat a saját könyvtárunkban. A legegyszerűbb módja annak, hogy ezeket az állományokat az ls parancs segítségével látja; írja be az ls parancsot a parancssorba, és nyomja meg az enter billentyűt.

Amint a fentiekben látható, az ls parancs felsorolja a könyvtár tartalmát, és egy másik parancssorba helyez.
Megjegyzés: Minden Unix és Linux parancs és fájlnév kis- és nagybetű-érzékeny. Az ls parancsot például kisbetűkkel kell írni, ahogyan a fenti.
A címtár tartalmának részletesebb felsorolásához megadhatjuk a parancssori opciókat is, más néven kapcsolóként . Ezek további argumentumok a parancshoz, amely módosítja a működés módját. Itt a -l (használja a hosszú lista formátumot) opciót, ha további információkat szeretne kapni a listánkról.

Ahogy a fentiekben látható, az ls -l parancs sokkal több információt ad nekünk otthoni könyvtárunk tartalmáról. Jelenleg a legfontosabb információk, amelyeket észre kell vennünk, az, hogy a listák első betűje egy d, ami azt jelenti, hogy mindegyik címtár tartalma önmagában egy könyvtár.
Mielőtt bármit mást csinálnánk, tisztítsuk meg a képernyőt, hogy eltávolítsuk a korábbi parancsok kimenetéből származó zűrzavarokat. Használja az egyértelmű parancsot az új parancssorba való törléssel, majd nyomja meg az Enter billentyűt.

Az Enter megnyomása után a képernyő törli és elhelyez egy új parancssorba a terminál képernyő tetején.

Könyvtár módosítása
Lépjünk a dokumentumok mappájába a cd ("change directory") paranccsal. Az aktuális könyvtár megváltoztatásához írja be a " cd " parancsot, majd egy szóközt, majd a kívánt könyvtár nevét, majd nyomja meg az enter billentyűt.
A cd parancs feltételezi, hogy a megadott könyvtár neve az aktuális könyvtárhoz viszonyítva. Ezért a jelenlegi könyvtárunkban létező dokumentumkönyvtárba való átváltáshoz írja be a " cd document " -t.

A parancssor most az új munkakönyvtárat tükrözi: ~ / dokumentumok, amelyek megegyeznek a teljes elérési névvel: / home / yourname / document . Nem számít, hogy melyik felhasználó van bejelentkezve, a " ~ " mindig az otthoni könyvtárat képviseli. A példában az új munkakönyvtár is látható a terminálablakunk címsorában.
Megjegyzés: Az MS-DOS és a Microsoft Windows-okkal ellentétben a Linux hierarchikus könyvtárnevei egymástól elválasztó vonallal (" / ") vannak elválasztva, nem pedig egy visszafelé (""). Ez a változás a különböző operációs rendszerek között alapvető különbség.
Bármikor ellenőrizheti az aktuális könyvtárat a pwd ("nyomtatási munkakönyvtár") paranccsal.

A parancs kinyomtatja az aktuális könyvtár nevét a terminálra, ebben az esetben " / home / yourname / documents ". Ismét " ~ / dokumentumok " esetén a " ~ " a saját könyvtárunkat jelenti, amely az / home / yourname . Tehát, ha a saját könyvtárunkban vagyunk, írjuk be a " cd dokumentumokat ", a " cd / home / yourname / Documents " vagy a " cd ~ / dokumentumok " mindannyian ugyanabban a könyvtárban helyezkednek el.
Most lépjünk fel egy könyvtárba, vissza az otthoni könyvtárunkba. A " .. " speciális könyvtárnév (a kettős pont) "egy könyvtárat" jelent.

Most visszatértünk az otthoni könyvtárunkba.
Megjegyzés: Ha jobban ismeri az MS-DOS-t, ne feledje, hogy a cd és a két periódus között kell lennie.
Fájlok mozgatása
Most ismerkedjünk meg a fájlok mozgatásával.
Tegyük fel, hogy csak két képet töltöttünk le egy webböngészővel, és mentettük a letöltési mappába. Menjünk be, és vessünk egy pillantást. Először a könyvtárat a letöltési könyvtárba változtatjuk.

Ezután jegyezze fel a könyvtárban lévő fájlokat az ls paranccsal.

Itt két JPEG-fájl látható. Vegyük ki őket a letöltési mappából, és helyezzük őket megfelelőbbé, mint a képek mappája. A fájlok áthelyezéséhez az mv ("move") parancsot használjuk.
Az mv parancs az alábbi általános formát veszi fel.
mv [ OPCIÓK ...] SOURCE DESTINATION
Az OPTIONS zárójelben van, mert nem kell megadnia a parancs befejezéséhez szükséges opciókat. Mind a SOURCE, mind a DESTINATION argumentumok szükségesek.
A SOURCE az áthelyezni kívánt fájl vagy fájlok neve. A DESTINATION az, ahová szeretné áthelyezni őket. Ha a DESTINATION egy könyvtárnév, a fájl vagy a fájlok átkerülnek a könyvtárba.
Jelenleg a könyvtár / home / yourname / letöltésekben vagyunk, és a fájlokat a / home / yourname / képekre szeretnénk áthelyezni. A teljes helynévvel (" / home / yourname / images "), vagy a jelenlegi könyvtárunkhoz (" ../images ") viszonyítva, vagy a tilde-t használva a saját könyvtárunk rövidítéseként adhatjuk meg a DESTINATION- t. " ~ / képek "). Mindezek egyenértékűek és ugyanazt eredményezik. Használjuk a DESTINATION relatív pathname- jét : ../images .
Szóval, hogyan fogjuk meghatározni a forrásunkat ?
Mindkét fájlt át szeretnénk mozgatni, és az egyetlen fájl a könyvtárban. Tehát a legegyszerűbb módja annak, hogy megadja az mv-t, hogy "az összes fájl áthelyezése a könyvtárba ../images-re ". Ezt egy helyettesítő karakter segítségével teheti meg.
A helyettesítő karakter egy különleges karakter, amely több fájlnevet is képviselhet (vagy a fájlnév egynél több részét ). Itt használjuk a csillag karaktert (" * "). Ha a teljes fájlnévként * -et használunk, akkor a shell a munkakönyvtárunk minden fájljára alkalmazza a parancsunkat.
Így a parancsunk a következőképpen fog olvasni: " mv * ../images ". Írjuk be most.

Úgy tűnik, hogy semmi sem történt, de ez a héj módja, hogy elmondja nekünk, hogy nem történt hiba. Ha probléma merült fel, egy hibaüzenetet vagy valamilyen figyelmeztetést jelenít meg.
Ellenőrizzük, hogy a fájlok mozgottak-e. Egy másik könyvtár tartalmát az ls segítségével futtathatjuk, és megadhatunk egy pathname-t. Ebben az esetben a mi névünk " ../images ".

A képek egyaránt megtalálhatók egy másik már létező könyvtárral (" wallpapers "). Egy új könyvtárat kell készítenünk a sajátunkból, hogy jobban megszervezzük képeinket, és tartsuk meg a fő képkönyvtárat, hogy ne legyenek elzárva. Most csináljuk.
Könyvtárak készítése
Váltsunk át a képkönyvtárba, ahol a két pingvin képünk most elhelyezkedik.

Most készítsünk egy új könyvtárat a pingvin képeinkhez. Új könyvtárak létrehozása az mkdir paranccsal érhető el.
Az mkdir parancs legegyszerűbb formája, hogy egy argumentumot adjon meg: az új könyvtár nevét. Új könyvtárat szeretnénk készíteni a jelenlegi könyvtárunkban, ezért nem kell megadnunk az mkdir-nek egy teljes elérési utat, csak a könyvtár címét. Hívjuk új penguin-pix könyvtárunkat.
Tehát az a parancs, amelybe belépünk, az " mkdir penguin-pix ", hogy új könyvtárat készítsünk.

Most ellenőrizzük, hogy van-e, a könyvtár tartalmának felsorolásával.

Megjegyzés: Láthatjuk, hogy a könyvtár tartalmának felsorolásakor a fájlnevek és a könyvtárnevek különböző színekkel szolgálnak a különböző fájlok és könyvtárak azonosításához. Bár a színek kiemelése a legtöbb kagylónál közös, nem minden kagyló ezt alapértelmezés szerint teszi.
Ha nem tudtuk megmondani a nevek színével, mindig ellenőrizhetjük, hogy ezek közül melyik könyvtárak az l (hosszú lista) opcióval az ls- re hivatkozva.

A további információk a következőket tartalmazzák.
- Engedélyek - kinek van hozzáférése a fájlhoz és milyen hozzáférés.
- Tulajdonjog - ki a fájl tulajdonosa.
- Szerzőség - aki létrehozta a fájlt.
- Fájl mérete - a fájl mérete bájtban.
- mtime - a fájl utolsó módosításának dátuma és ideje.
A pingvin-pix és a háttérképek sorainak első betűje " d ", ami azt jelzi, hogy ezek könyvtárak. A fájllistákkal kapcsolatos további információkért lásd a chmod parancs dokumentációját.
Most áthelyezhetjük képeinket az új könyvtárba. Ahhoz, hogy az mv-nek elmondhassa, hogy milyen fájlokat szeretne mozgatni, újra használhatunk helyettesítő karaktert, de ezúttal győződjön meg róla, hogy tudja, hogy csak a képfájlokat, nem pedig a könyvtárakat mozgatja. Mivel mindkét képfájl a JPEG kiterjesztésű, a .jpg kiterjesztésű, megadhatjuk a " * .jpg " fájlnevet: ez azt mondja a shellnek, hogy "az áthelyezni kívánt fájlok az aktuális könyvtárban lévő fájlok .jpg- vel végződnek". Így a parancsunk így néz ki: " mv * .jpg pingvin-pix ."

Nincs hibaüzenet, ami azt jelenti, hogy a parancs sikeresen befejeződött. Ellenőrizzük, hogy a fájlokat a pingvin-pixel tartalmának felsorolásával mozgatták -e .

Fájlok eltávolítása
Két pingvin képünk van, de talán úgy döntöttünk, hogy csak reális penguin.jpg-re van szükségünk, és már nincs szükségünk a tux-the-penguin.jpg-re . Ezt a fájlt az rm ("remove") paranccsal törölhetjük.
Meg kell adnunk az rm- et a törölni kívánt fájlnévvel. Jelenleg a képkönyvtárban vagyunk, de a képünk most a pingvin-pix alkönyvtárban van. A munkakönyvtárat penguin-pix-re változtathatjuk, majd futtathatjuk a parancsot, de ez csak extra munka, kihagyhatjuk ezt a lépést a könyvtár részeként az útvonal részeként.
A parancsunk így néz ki: " rm penguin-pix / tux-the-penguin.jpg ."

Még egyszer, a shell végrehajtja a parancsunkat anélkül, hogy visszajelzést adnánk. A parancs sikeresen végrehajtott, így a shell visszaadja a parancssorba, hogy tudjuk, hogy készen áll egy másik parancsra.
Figyelmeztetés: A fájl törlése a szemétbe vagy a Microsoft Windows hulladéktárolójába ellentétben nem lehet visszavonni egy fájl törlését az rm- rel. Távolítsa el a fájlokat óvatosan! Miután elment, (gyakorlatilag) lehetetlen visszaszerezni őket.
Ellenőrizzük, hogy a fájl valóban eltűnt.

Könyvtárak eltávolítása
Ez nagyszerű fájlokra, de mi van a könyvtárakkal? Alapértelmezés szerint az rm csak a fájlokat, és nem a könyvtárakat távolítja el.
Az rmdir ("könyvtár eltávolítása") parancs eltávolítja a könyvtárat, feltéve, hogy üres. Teszteljük meg egy új, üres könyvtár létrehozásával az " mkdir teszt-könyvtár " parancs használatával.

Ellenőrizzük, hogy van-e az " ls -l " paranccsal.

Most már eltávolíthatjuk a vadonatúj könyvtárunkat az " rmdir test-directory " parancs segítségével, és ellenőrizzük, hogy az " ls -l " parancs futtatásával ismét elment-e.

Igen, eltűnt.
Mi lenne azonban, ha megpróbálnánk " rmdir penguin-pix " -et próbálni?

Nem tudjuk rmdir ezt a könyvtárat, mert nem üres.
Ha biztos benne, hogy el akarja távolítani a pingvin-pixelt és mindent benne (beleértve az összes fájlt és könyvtárat is), akkor az rm parancsot a -r opcióval használhatja.
Általában az rm nem fog működni egy könyvtárban. Ha azonban az -r opcióval meghívjuk, az rm rekurzívan távolítja el a könyvtárat, ami azt jelenti, hogy a könyvtárba és bármelyik alkönyvtárba utazik, mindent törölve, beleértve a könyvtárat is. Tehát, ha futtatjuk az " rm -r penguin-pix " parancsot, akkor eltávolítja a könyvtárat és a benne lévő fájlt. Ha vannak olyan könyvtárak is, amelyek törlésre kerültek, akkor is törölték őket.

Figyelem! Ismét nincs visszavonás erre a parancsra. Amikor rm -r könyvtárat készít, az a könyvtár és a belsejében levő mindent örökre eltávolítja! A legtöbb Linux-parancshoz hasonlóan az rm nagyon erős, és óvatosan kell használni.
Fájl másolásához használja a cp parancsot.
cp SOURCE DESTINATION
A SOURCE a másolni kívánt fájl neve, a DESTINATION pedig az új fájl célállomásának megnevezése. A rendeltetési hely lehet egy új fájlnév vagy annak a könyvtárnak a neve, ahová a másolatot el szeretné helyezni.
Tegyük fel, hogy van egy dokumentumfájlunk az orig.txt nevű dokumentumok mappájában, és azt szeretnénk, hogy másolatot készítsünk a copy.txt néven. A parancsot a " cp orig.txt copy.txt ."

Másrészről, ha a cp parancs célállomásaként egy könyvtárat adunk meg, akkor a célkönyvtárban az eredetivel azonos nevű példányt készít. A következő példában hat dolgot teszünk.
- Sorolja fel a munkakönyvtár tartalmát.
- Készítsen egy új könyvtárat, más néven másolatot .
- Sorolja fel a munkakönyvtár tartalmát, amely most tartalmazza a másolati könyvtárat.
- Sorolja fel a másolatok könyvtárának tartalmát (nincsenek benne. Ez üres).
- Másolja a copy.txt fájlt a másolatok könyvtárába.
- Sorolja fel a másolatkönyvtár tartalmát, amely most egy copy.txt példányt tartalmaz.

Fájl átnevezése
Az mv parancs használható a fájl nevének módosítására is. Például az " mv orig.txt original.txt " parancs átnevezi az orig.txt fájlt az eredeti.txt fájlra.

Könyvtár átnevezése
A könyvtárak átnevezése pontosan úgy működik, mint a fájlok átnevezése az mv paranccsal. Itt létrehozunk egy " másolat " nevű könyvtárat, de átnevezzük " másolatok " -ra " mv copy copy " parancs segítségével.

Ha a másolási könyvtár fájlokat vagy könyvtárakat tartalmazott, akkor ezek változatlanok lennének. Az egyetlen dolog, ami megváltoztatná, az a könyvtár neve, amely tartalmazza őket.
Automatikus befejezés
A legtöbb Linux parancssori kagyló automatikusan kitölti a beírt szót, ha megnyomja a Tab billentyűt. Az automatikus befejezés segíthet időt takarítani, különösen hosszú fájlnevekkel. Tegyük fel például, hogy a dokumentumok mappájában három fájl található: penguin-diving.jpg, penguin.jpg és penguins.jpg .

Ha beír egy parancsot, majd írja be a " p " -t, és nyomja meg a Tab billentyűt, akkor a shell kiegészíti az Ön számára a "pingvin" szót.

Ott áll meg, mert az összes fájl a pingvin szóval kezdődik, de ezt követően nem biztos, hogy melyik fájlt szeretné megadni.
Ha olyan helyzetben van, amikor egynél több automatikus kiegészítés illeszkedik a már beírtakhoz, a Tab gomb kétszeri megnyomásával kéri a shellet, hogy felsorolja az összes lehetséges találatot. Tehát a fenti helyzetben, ahol beírta a p és a Tab billentyűt, és a héj automatikusan kitölti a pingvint . Nyomja meg a Tab gombot még két alkalommal, hogy megadja az összes lehetséges beállítást, és tegye vissza a parancssorba, a parancsod kitöltve, ahol elhagyta.

Az automatikus kiegészítés az útvonalnevek és a parancsnevek kitöltésére is szolgál.
Kilépés a héjból
A kilépési parancs beírása kilép a parancssorból, és vagy zárja be a terminálablakot, vagy előkészíti a záróablakot, amelyet kézzel kell zárni.