shell-opdrachttaal. Sommige Ssh-opdrachten - Linux Shell-opdrachten

In dit artikel zullen we proberen de meest gebruikte commando's in SSH- of linux-shell te verzamelen. De lijst is niet definitief, de beschrijving van de commando's is natuurlijk niet compleet, je kunt een volledige beschrijving van de commando's krijgen in linux shell# man commando.



Sneltoetscombinaties en Linux-opdrachten:

AANDACHT: VERGEET NIET DAT LINUX-COMMANDO'S HOOFDLETTERS gevoelig zijn. Bijvoorbeeld: De opdrachten Netscape, NETSCAPE en nEtscape zijn drie verschillende opdrachten, net zoals mijn_bestand, mijn_bestand en mijn_BESTAND drie verschillende bestanden zijn.

1. Natuurlijke sneltoetsen en notaties
Overschakelen naar de eerste consoleterminal
Schakel over naar #e consoleterminal (#=1..6)
Overschakelen naar een grafische terminal (indien actief)
Aanvulling van de huidige reeks tekens die in de console zijn getypt tot een uitvoerbaar commando. Deze functie maakt het leven veel gemakkelijker bij het typen van opdrachten! Dit werkt ook bij het opstarten van de computer via LILO!
Bekijk en bewerk de opdrachtgeschiedenisbuffer. Druk op om de opdracht uit te voeren.
De tekst bekijken die op de consoleterminal wordt weergegeven en verder gaat dan het scherm. Beweeg omhoog.
Hetzelfde als hierboven. Schuif naar beneden.
[+] (in X-windows) Resolutie wijzigen. Schakel over naar de volgende configuratie.
[-] (Op X-windows) Resolutie wijzigen. Keer terug naar de vorige configuratie.
(in X-windows) Dood de huidige X-windows-server (verlaat de grafische shell, waarbij alle processen worden uitgeschakeld). Dood het huidige proces.
D Verlaat de huidige terminal (werkt meestal).
D Het [End-of-file] (end-of-file) signaal naar het huidige proces sturen.
s Stop de uitgang naar de terminal.
Q Uitvoer naar de terminal hervatten. Probeer deze toetsencombinatie als uw terminal zonder reden niet meer reageert.
z Stuur het huidige proces naar de achtergrond.
resetten Het herstellen van de standaardwaarden voor een "verwende" terminal (de terminal vertoont vreemde tekens en reageert onvoldoende op toetsaanslagen). Gebruik deze opdracht als u een binair bestand probeert weer te geven. U kunt deze opdracht waarschijnlijk niet zien tijdens het typen.
~ Mijn thuismap. Bijvoorbeeld cd ~/mijn_submap.
. (punt) huidige map.
.. (twee puntjes) De bovenliggende map voor de huidige map.

2. Standaardcommando's en commando's die systeeminformatie geven
pwd Maak een lijst van de huidige map.
hostnaam De netwerknaam van het apparaat weergeven of wijzigen.
wie ben ik Vul de naam in waaronder ik sta ingeschreven.
datum Datum en tijd weergeven of wijzigen. Als u bijvoorbeeld de datum en tijd wilt instellen op 2000-12-31 23:57, voert u de opdracht uit: date 123123572000
tijd Krijg informatie over de tijd die nodig is om het proces te voltooien + wat andere informatie. Verwar dit commando niet met datum. Bijvoorbeeld: ik kan bepalen hoe lang het duurt om bestanden in een map weer te geven door te typen: time ls
WHO Bepaal welke gebruiker aan de machine werkt.
rwho-a Identificeer alle gebruikers die op uw netwerk zijn aangesloten. Voor deze opdracht moet het rwho-proces worden uitgevoerd. Als dat niet het geval is, voert u "setup" uit als superuser.
vinger [gebruikersnaam] Systeeminformatie over de geregistreerde gebruiker. Probeer: vingerwortel
uptime De hoeveelheid tijd die is verstreken sinds de laatste keer opnieuw opstarten.
ps a Lijst met huidige processen.
bovenkant Een interactieve lijst van huidige processen gesorteerd op cpu-gebruik.
je naam Systeeminformatie weergeven.
vrij Informatie ophalen uit het geheugen.
df-h(=schijfruimte) Informatie weergeven over vrije en gebruikte schijfruimte (in leesbare vorm).
du/-bh | meer(= wie nam hoeveel) Gedetailleerde informatie over de grootte van bestanden weergeven per directory vanaf de root (in een leesbare vorm).
cat /proc/cpuinfo Informatie over het processorsysteem. Merk op dat de bestanden in de /proc directory geen echte bestanden zijn. Ze worden gebruikt om informatie te verkrijgen die bekend is bij het systeem.
cat /proc/interrupts Interrupts gebruikt.
cat /proc/versie Linux-kernelversie en andere informatie
cat /proc/bestandssystemen Geef de momenteel gebruikte bestandssysteemtypen weer.
kat /etc/printcap Printerinstellingen weergeven.
lsmod(als root) Informatie weergeven over momenteel geladen kernelmodules.
set|meer Geef de huidige waarden van omgevingsvariabelen weer.
echo $PATH Print de waarde van de omgevingsvariabele "PATH" Dit commando kan gebruikt worden om de waarden van andere omgevingsvariabelen af ​​te drukken. Gebruik het set-commando voor een volledige lijst.

3. Netwerken
netconf(als root) Een zeer goed netwerkconfiguratieprogramma dat een tekstmenu gebruikt voor een interactieve gebruikerservaring.
ping [hostnaam]"Luizencontrole". Of er al dan niet contact is met een andere machine (u kunt de netwerknaam of het IP-adres van de machine als parameter aan de opdracht doorgeven), druk op -C als alle vereiste informatie is verkregen.
route-n Geef de routeringstabel weer.
ipfwadm -F -p m Stel een firewall in.
ifconfig(als root) Druk informatie af over de huidige netwerkinterfaces (ethernet, ppp, enz.) Je eerste ethernetkaart wordt weergegeven als eth0, de tweede als eth1, de eerste ppp-modem als ppp0 enzovoort. "lo" - staat voor "loopback only" netwerkinterface, die permanent moet worden geactiveerd. Gebruik de juiste opties (zie de uitvoer van ifconfig --help) om netwerkinterfaces te configureren.
ifup [netwerk_interface_naam](/sbin/ifup bij gebruik als normale gebruiker) Activeer de juiste netwerkinterface. Bijvoorbeeld: ifup eth0 ifup ppp0. De gebruiker kan de ppp-netwerkinterface alleen in- en uitschakelen als de juiste machtigingen zijn ingesteld (machtigingen kunnen worden ingesteld tijdens ppp-configuratie via "netconf")
ifdown [interfacenaam](/sbin/ifdown bij gebruik als normale gebruiker). Deactivering van de bijbehorende netwerkinterface.

4. De eenvoudigste acties
ls Lijst met bestanden in de huidige map. De opdracht dir voert de opdracht ls uit.
cd [map] Adresboek wijzigen.
cp [wat te kopiëren][waar te kopiëren] Kopieer bestanden.
mcopy [wat te kopiëren][waar te kopiëren] Kopieer bestanden wanneer u met het dos-bestandssysteem werkt (het is niet nodig om de dos-drive te mounten). Bijvoorbeeld: mcopy a:\autoexec.bat ~/junk . Voor meer informatie over soortgelijke commando's (mdir, mcd, mren, mmove, mdel, mmd, mrd, mformat ....) zie man mtools.
mv [wat te verhuizen][waarheen te verhuizen] Verplaats of hernoem het bestand.
ln -s [link naar] [linknaam] Maak een symbolische link.
rm [bestanden] Verwijder bestanden.
mkdir [map] Maak een nieuwe map aan.
rmdir [map] Verwijder lege map.
rm -r [bestanden en/of mappen](recursief verwijderen) Verwijder bestanden, mappen en hun submappen. WEES VOORZICHTIG met dit commando als je superuser-rechten hebt! Tot nu toe heeft Linux geen systeem om verwijderde bestanden volledig te herstellen (tenzij je speciale programma's gebruikt om verwijderde bestanden in een speciale map te plaatsen - a la de mand onder W95).
kat [bestandsnaam] | meer Bekijk de inhoud van een tekstbestand pagina voor pagina.
minder [bestandsnaam] Bekijk de inhoud van een tekstbestand met de mogelijkheid om terug te keren naar vorige pagina's. Druk op q als u het programma wilt verlaten. "Minder" is analoog aan het DOS-commando "meer", hoewel vaak "minder" handiger is dan "meer".
pico [bestandsnaam] Tekstbestand bewerken.
lynx Een html-bestand of WWW-link bekijken met de Lynx-tekstbrowser.
tar -zxvf [bestanden] Pak het tgz- of tar.gz-archief uit dat u van het net hebt gehaald.
find / -name "bestandsnaam" Zoek het bestand met de naam "bestandsnaam". Het zoeken begint vanuit de directory / . "bestandsnaam" kan een zoekmasker bevatten.
pijnboom Een goede tekstgerichte e-maillezer. Een ander soortgelijk programma heet "elm". Netscape leest uw e-mail van uw internetadres en met pine kunt u "lokale" e-mail bekijken - dat wil zeggen de e-mail die door het son- of cron-proces naar u is verzonden.
mc Voer het bestandsbeheerprogramma "Midnight Commander" uit (lijkt op "Norton Commander", maar is dichter bij ver of dn qua mogelijkheden).
telnet [server] Telnet naar een andere machine. Gebruik de machinenaam of het IP-adres. Log in met uw wachtwoord (u moet ingelogd zijn op deze externe machine). Hiermee kunt u inloggen op een andere machine en eraan werken alsof u achter het toetsenbord zit (bijna geen verschil).
ftp [server] Communiceer via ftp met een externe computer. Dit type koppeling is goed voor het kopiëren van bestanden van/naar een externe machine.

5. Basisbeheeropdrachten
afdruktool(als root in X-terminal) Configureer uw printer.
opstelling(als root) Configureer de muis, geluidskaart, toetsenbord, X-windows GUI en systeemdiensten. Een heel makkelijk te gebruiken programma.
alias ls="ls -Fskb --color" Maak een alias - een alias zodat één opdracht een complexere combinatie van opdrachten kan uitvoeren. Plaats een aliascreatie in /etc/bashrc als u wilt dat deze aliassen beschikbaar zijn voor alle gebruikers op uw systeem.
adduser [gebruikersnaam] Registreer een nieuwe gebruiker (u moet superuser-rechten hebben). Bijvoorbeeld: adduser ivanov . Vergeet hierna niet het wachtwoord van de gebruiker in te stellen. De gebruikersdirectory bevindt zich in de directory /home/gebruikersnaam.
useradd [gebruikersnaam] Hetzelfde als adduser.
userdel [gebruikersnaam] Verwijder een gebruiker van het systeem (u moet ingelogd zijn als root). De gebruikersdirectory en ongelezen berichten van een externe gebruiker moeten afzonderlijk worden behandeld.
groupadd [groepsnaam] Maak een nieuwe gebruikersgroep aan op uw systeem. Het is niet nodig om direct op de hoofdcomputer een groep aan te maken.
passwd Wijzig wachtwoord. Als u een supergebruiker bent, kunt u het wachtwoord van elke geregistreerde gebruiker wijzigen door de opdracht te typen: passwd gebruikersnaam
chmod [permissies][bestand](=wijzig modus) Wijzig de machtigingen van bestanden die uw eigendom zijn (als u root bent, in welk geval u de machtigingen van elk bestand kunt wijzigen). Er zijn drie manieren om toegang te krijgen tot een bestand: lezen - lezen (r), schrijven - schrijven (w), uitvoeren - uitvoeren (x) en drie soorten gebruikers: bestandseigenaar - eigenaar (u), leden van dezelfde groep als de eigenaar van het bestand (g) en alle anderen (o). U kunt de huidige toegangsrechten op de volgende manier controleren: ls -l bestandsnaam. Als het bestand op alle mogelijke manieren toegankelijk is voor alle gebruikers, staat de volgende lettercombinatie tegenover de bestandsnaam: rwxrwxrwx. De eerste drie letters zijn de machtigingen voor de eigenaar/eigenaar van het bestand, de tweede triplet zijn de machtigingen voor zijn/haar groep, de volgende drie zijn de machtigingen voor de anderen. Gebrek aan toestemming wordt weergegeven als "-".; Bijvoorbeeld: Met dit commando kun je leesrechten voor het bestand "junk" instellen voor iedereen (all=user+group+others):
chmod a+r junk
Deze opdracht neemt het recht weg om het bestand uit te voeren van iedereen behalve de gebruiker en de groep:
chmod o-x junk
Typ voor meer informatie chmod --help of man chmod, of lees een Linux-handleiding.
U kunt de standaardmachtigingen instellen voor de bestanden die u aanmaakt met het "umask"-commando (type man umask).
chown [nieuwe_master][bestanden]
chgrp [nieuwegroep][bestanden] Wijzig de eigenaar en groep voor een bestand.
U kunt deze twee commando's gebruiken nadat u een kopie van het bestand voor iemand anders heeft gemaakt. zo(=supergebruiker) Log in als supergebruiker (er wordt om uw wachtwoord gevraagd). Als u "exit" typt, keert u terug naar uw vorige gebruikersshell. De rootgebruiker bestaat om het systeem te beheren, en de opdracht su geeft je snel toegang tot superuser-mogelijkheden wanneer je ze nodig hebt. Log nooit in als root, gebruik hiervoor het su commando.

6. Proces controle
ps(=afdrukstatus) Druk een lijst af van huidige processen met hun ID's (PID's). Gebruik ps axu om een ​​lijst te maken van alle processen die op uw systeem draaien en die u als eigenaar hebben (dit omvat ook processen die losgekoppeld zijn van de terminal).
fg Een achtergrond of onderbroken proces terugbrengen naar een interactieve (hoge prioriteit) status;
bg Maak de procesachtergrond. Inverse functie van fg. Kan de combinatie z volgen.
doden"Dood" het proces. Bepaal eerst de PID van het "gedood"-proces met behulp van ps.
killall [programmanaam]"Dood" alle processen op programmanaam.
lpc(als root) Controleer de printerwachtrij.
lpq Maak een lijst van de wachtrij met afdruktaken.
lprm [Opdrachtnummer] Een taak uit de afdrukwachtrij verwijderen.
leuk [programmanaam] Start een proces door de prioriteit ervan in te stellen.
renice De prioriteit van het proces wijzigen.

Let op de toetscombinaties: c, z, s en q. Ze worden eerder beschreven in het gedeelte Natuurlijke sneltoetsen en notaties.

  • zelfstudie

Waarom en voor wie is het artikel?

In eerste instantie was dit een herinnering voor studenten die met unix-achtige systemen gaan werken. Met andere woorden, het artikel is bedoeld voor degenen die geen eerdere ervaring hebben met de Unix-opdrachtregel, maar om de een of andere reden willen of moeten leren hoe er effectief mee om te gaan.

Er zal geen hervertelling van manas (documentatie) zijn en het artikel annuleert of vervangt het lezen ervan op geen enkele manier. In plaats daarvan zal ik het hebben over de belangrijkste dingen (commando's, trucs en principes) die je vanaf het allereerste begin van het werken in de unix-shell moet begrijpen om effectief en prettig te kunnen werken.

Het artikel gaat over volwaardige unix-achtige omgevingen, met een volledig uitgeruste shell (bij voorkeur zsh of bash) en een vrij breed scala aan standaardprogramma's.

Wat is shell?

Shell (shell, ook bekend als "opdrachtregel", ook bekend als CLI, ook bekend als "console", ook bekend als "terminal", ook wel "zwart venster met witte letters") is een tekstinterface voor communicatie met het besturingssysteem (nou ja, strikt gezegd programma, die een dergelijke interface biedt, maar nu is dit verschil niet significant).

Over het algemeen ziet het doorlopen van de shell er als volgt uit: de gebruiker (dwz u) voert een opdracht in vanaf het toetsenbord, drukt op Enter, het systeem voert de opdracht uit, schrijft het resultaat van de uitvoering naar het scherm en wacht opnieuw op de volgende opdracht in te voeren.

Typische shell-look:

De shell is de belangrijkste manier om te communiceren met alle Unix-achtige serversystemen.

Waar zijn opdrachtregelsystemen te vinden?

Waar een Unix-shell op je kan wachten, populaire opties:
  • macOS (bash);
  • toegang op afstand tot de server voor werk of voor een persoonlijk webproject;
  • thuisbestandsserver met toegang op afstand;
  • Ubuntu, PC-BSD op laptop/desktop - Unix-achtige systemen zijn tegenwoordig eenvoudig te installeren en te gebruiken.

Welke taken zijn redelijk op te lossen met een shell?

Natuurlijke taken waarvoor de schelp geschikt, nuttig en onmisbaar is:
  • interactief werken in de terminal:
    • het compileren, uitvoeren van banen door make;
    • vergelijking van tekstbestanden;
    • snelle ad-hoc data-analyse (aantal unieke ips in het logboek, verdeling van records in uren/minuten, enz.);
    • eenmalige massale acties (vernietig veel processen; als u met een versiecontrolesysteem werkt, draai dan een aantal bestanden om of los ze op);
    • diagnostiek van wat er in het systeem gebeurt (semaforen, sloten, processen, descriptoren, schijfruimte, enz.);
  • scripten:
    • scripts instellen waarvan u niet op andere interpreters kunt vertrouwen - niet voor beginners;
    • functies voor het aanpassen van de interactieve shell (de prompt beïnvloeden, de map wijzigen, omgevingsvariabelen instellen) - ook niet helemaal voor beginners;
    • eenmalige scripts zoals transcodering van bulkbestanden;
    • make-bestanden.

Absoluut eerste stappen

Aan de slag: inloggen en uitloggen

Zorg ervoor dat u precies weet hoe u de shell moet starten en hoe u deze moet verlaten.

Als u op een computer werkt waarop Ubuntu is geïnstalleerd, moet u het Terminal-programma starten. Aan het einde van het werk kunt u het venster eenvoudig sluiten.

Start op MacOS ook Terminal.

Om toegang te krijgen tot een externe server, gebruik je ssh (als je MacOS, Ubuntu of een ander Unix-achtig systeem lokaal hebt) of putty (als je Windows hebt).

Wie ben ik, waar ben ik?

Voer de volgende opdrachten uit:
  • hostnaam - geeft de naam weer van de machine (server) waarop u zich momenteel bevindt;
  • whoami - toont uw login (uw naam in het systeem);
  • tree -d / |less - pseudografisch beeld van de directorystructuur op de machine; verlaat het scrollen - q ;
  • pwd - geeft de map weer waarin u zich momenteel bevindt; op de commandoregel kun je niet "zomaar" zijn, je bent noodzakelijkerwijs in een directory (=huidige directory, werkdirectory). Waarschijnlijk wordt de huidige werkdirectory weergegeven in uw prompt (prompt).
  • ls - lijst met bestanden in de huidige map; ls /home - lijst met bestanden in de opgegeven map;

Commandogeschiedenis (geschiedenis)

Een belangrijke eigenschap van een volwaardige commandoregel is de geschiedenis van commando's.

Voer een paar commando's uit: hostname , ls , pwd , whoami . Druk nu op de omhoog-toets. Het vorige commando verscheen in de invoerregel. De omhoog- en omlaagtoetsen kunnen worden gebruikt om vooruit en achteruit door de geschiedenis te gaan. Wanneer u naar hostnaam bladert, drukt u op Enter - de opdracht wordt opnieuw uitgevoerd.

Commando's uit de geschiedenis kunnen niet alleen opnieuw worden uitgevoerd, maar ook worden bewerkt. Blader door de geschiedenis naar het ls-commando, voeg de -l-toets eraan toe (het bleek ls -l , er is een spatie voor de min, maar niet erna). Druk op Enter - de gewijzigde opdracht wordt uitgevoerd.

Door de geschiedenis scrollen, opdrachten bewerken en opnieuw uitvoeren zijn de meest typische acties bij het werken in de opdrachtregel, wen er maar aan.

kopiëren plakken

De opdrachtregel is erg tekstgericht: opdrachten zijn tekst, de invoergegevens voor de meeste standaardprogramma's zijn tekst, het resultaat van het werk is meestal ook tekst.

Het leuke van tekst is dat het kan worden gekopieerd en geplakt, en dit geldt ook voor de opdrachtregel.

Probeer datum +"%y-%m-%d, %A" uit te voeren
Heb je het volledig met de hand ingevoerd of gekopieerd uit het artikel? Zorg ervoor dat u het kunt kopiëren, in de terminal kunt plakken en uitvoeren.

Nadat u heeft geleerd hoe u man " moet gebruiken, moet u ervoor zorgen dat u de voorbeeldcommando's uit de help kunt kopiëren en uitvoeren. Om dit te controleren, kijkt u in de help voor het datumprogramma voor de sectie VOORBEELDEN, kopieert en voert u het eerste gegeven voorbeeld uit (voor het geval dat : het dollarteken maakt geen deel uit van de opdracht , dit is een voorwaardelijke afbeelding van de invoerprompt).

Hoe u precies tekst van de terminal kopieert en in de terminal plakt, hangt af van uw systeem en zijn instellingen, dus helaas zal het niet werken om een ​​universele instructie te geven. Probeer op Ubuntu dit: kopiëren is slechts muisselectie, plakken is middelste muisknop. Als het niet werkt, of als je een ander systeem hebt, kijk dan op internet of vraag meer ervaren vrienden.

Toetsen en opties

Bij het onderzoeken van de commandogeschiedenis ben je al tegengekomen dat het ls-commando ten minste twee opties heeft. Als je het zo noemt, drukt het een eenvoudige lijst af:

[e-mail beveiligd]: ~/shell-survival-quide> ls Makefile shell-first-steps.md shell-first-steps.pdf shell-survival-quide.md shell-survival-quide.pdf
Als u de schakeloptie -l toevoegt, wordt voor elk bestand gedetailleerde informatie weergegeven:

[e-mail beveiligd]: ~/shell-survival-quide> ls -l totaal 332 -rw-rw-r-- 1 akira akira 198 13 feb 11:48 Makefile -rw-rw-r-- 1 akira akira 15107 14 feb 22:26 shell -first-steps.md -rw-rw-r-- 1 akira akira 146226 13 feb 11:49 shell-first-steps.pdf -rw-rw-r-- 1 akira akira 16626 13 feb 11:45 shell-survival -quide.md -rw-rw-r-- 1 akira akira 146203 13 feb 11:35 shell-survival-quide.pdf
Dit is een zeer typische situatie: als speciale modifiers (schakelaars, opties, parameters) worden toegevoegd aan de opdrachtaanroep, verandert het gedrag van de opdracht. Vergelijk: tree / en tree -d / , hostname en hostname -f .

Bovendien kunnen opdrachten bestandsnamen, mappen of alleen tekstreeksen als parameters gebruiken. Poging:

ls -ld /home ls -l /home grep root /etc/passwd

Mens

man - Hulp bij de opdrachten en programma's die beschikbaar zijn op uw machine, evenals systeemaanroepen en de C-standaardbibliotheek.

Probeer: man grep , man atoi , man chdir , man man .

Vooruit en achteruit scrollen gaat met de “omhoog”, “omlaag”, “PageUp”, “PageDown” knoppen, het verlaten van de helpweergave gaat met de q knop. Zoeken naar specifieke tekst in een Help-artikel: druk op / (slash), typ de zoektekst, druk op Enter. Ga naar de volgende keer - n-toets.

Alle helpartikelen zijn onderverdeeld in categorieën. Meest belangrijk:

  • 1 - uitvoerbare programma's en shell-opdrachten (wc, ls, pwd, enz.);
  • 2 - systeemoproepen (fork, dup2 enz.)
  • 3 - bibliotheekfuncties (printf, scanf, cos, exec).
Het is noodzakelijk om aan te geven uit welke categorie de hulp moet worden getoond in geval van samenvallen van namen. Man 3 printf beschrijft bijvoorbeeld een functie uit de C-standaardbibliotheek en man 1 printf beschrijft een consoleprogramma met dezelfde naam.

U kunt een lijst bekijken van alle help-artikelen die beschikbaar zijn op de machine met het man -k commando. (de stip maakt ook deel uit van het team).

minder

Wanneer een zeer lange tekst (de inhoud van een bestand, een lange man, enz.) in een klein terminalvenster moet worden bekeken, worden speciale "pager" -programma's gebruikt (van het woord pagina / pagina, dat wil zeggen paging). De meest populaire scroller is minder , en het is wat je voorziet van scrollen als je aan het lezen bent.

Probeer en vergelijk gedrag:

cat /etc/bash.bashrc cat /etc/bash.bashrc |less

U kunt het bestand onmiddellijk naar de scroller overbrengen in de parameters:

Minder /etc/bash.bashrc

Scroll omhoog en omlaag - knoppen "up", "down", "PageUp", "PageDown", exit - knop q. Zoeken naar specifieke tekst: druk op / (slash), voer de zoektekst in en druk op Enter. Ga naar de volgende keer - n-toets. (Herken je de instructie over de mens? Geen wonder, less wordt ook gebruikt om hulp te tonen.)

De rechten

Aan elk bestand of elke map is een reeks "rechten" gekoppeld: het recht om het bestand te lezen, het recht om naar het bestand te schrijven, het recht om het bestand uit te voeren. Alle gebruikers zijn onderverdeeld in drie categorieën: bestandseigenaar, bestandseigenaargroep, alle andere gebruikers.

U kunt bestandspermissies bekijken met ls -l . Bijvoorbeeld:

> ls -l Makefile -rw-r--r-- 1 akira studenten 198 13 feb 11:48 Makefile
Deze uitvoer betekent dat de eigenaar (akira) het bestand kan lezen en schrijven, de groep (studenten) alleen kan lezen en alle anderen in de gebruiker ook alleen kunnen lezen.

Als u tijdens het werken het bericht 'permissie geweigerd' krijgt, betekent dit dat u niet genoeg machtigingen hebt voor het object waarmee u wilde werken.

Lees meer in man chmod.

STDIN, STDOUT, pijpleidingen (pijpen)

Elk uitvoerend programma heeft 3 standaard datastromen die ermee verbonden zijn: input stream STDIN , output stream STDOUT , error stream STDERR .

Voer het wc-programma uit, typ Good day today, druk op Enter, typ good day, druk op Enter, druk op Ctrl+d. Het wc-programma toont statistieken over het aantal letters, woorden en regels in uw tekst en sluit af:

> wc goede dag vandaag goede dag 2 5 24
In dit geval gaf je het programma STDIN een tekst van twee regels en kreeg je drie cijfers in STDOUT.

Voer nu het commando head -n3 /etc/passwd uit, het zou er ongeveer zo uit moeten zien:

> head -n3 /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x: 2:2:bin:/bin:/usr/sbin/nologin
In dit geval las het head-programma niets uit STDIN, maar schreef het drie regels naar STDOUT.

Zie het als volgt: een programma is een pijp waarin STDIN naar binnen stroomt en STDOUT naar buiten stroomt.

De belangrijkste eigenschap van de Unix-opdrachtregel is dat "pipe"-programma's met elkaar kunnen worden verbonden: de uitvoer (STDOUT) van het ene programma kan als invoer (STDIN) worden doorgegeven aan een ander programma.

Zo'n constructie van verbonden programma's wordt in het Engels pijp (pijp) genoemd, in het Russisch - transportband of pijp.

Het combineren van programma's in een pijplijn gebeurt met het symbool | (verticale balk)

Voer het commando head -n3 /etc/passwd |wc uit, je krijgt zoiets als dit:

> hoofd -n3 /etc/passwd |wc 3 3 117
Dit is wat er gebeurde: het head-programma voerde drie regels tekst uit naar STDOUT, dat onmiddellijk in de invoer van het wc-programma terechtkwam, dat op zijn beurt het aantal tekens, woorden en regels in de resulterende tekst telde.

U kunt zoveel programma's combineren als u wilt in een pijplijn. U kunt bijvoorbeeld nog een wc-programma aan de vorige pijplijn toevoegen, dat zal tellen hoeveel woorden en letters er in de uitvoer van de eerste wc waren:

> hoofd -n3 /etc/passwd |wc |wc 1 3 24

Het compileren van pijplijnen (pijplijnen) is een veel voorkomend iets bij het werken op de opdrachtregel. Voor een voorbeeld van hoe dit in de praktijk wordt gedaan, zie de paragraaf Een éénregelige pijpleiding samenstellen.

I/O-omleiding

De uitvoer (STDOUT) van een programma kan niet alleen worden doorgesluisd naar een ander programma, maar eenvoudigweg naar een bestand worden geschreven. Deze omleiding gebeurt met > (groter dan teken):

Datum > /tmp/today.txt
Als resultaat van het uitvoeren van deze opdracht zal het bestand /tmp/today.txt op de schijf verschijnen. Bekijk de inhoud met cat /tmp/today.txt

Als er al een bestand met dezelfde naam bestond, wordt de oude inhoud vernietigd. Als het bestand niet bestond, wordt het aangemaakt. De map waarin het bestand is gemaakt, moet bestaan ​​voordat de opdracht wordt uitgevoerd.

Als u het bestand niet wilt overschrijven, maar uitvoer wilt toevoegen aan het einde ervan, gebruik dan >> :

Datum >> /tmp/today.txt
Controleer wat er nu in het bestand staat.

Bovendien kunt u elk bestand in plaats van STDIN aan het programma doorgeven. Poging:

wc

Wat te doen als iets niet duidelijk is?

Als je systeemgedrag tegenkomt dat je niet begrijpt, of een bepaald resultaat wilt bereiken, maar niet weet hoe, raad ik je aan om in de volgende volgorde te werk te gaan (dit geldt overigens niet alleen voor shells):
  • formuleer de vraag of taak zo duidelijk mogelijk - er is niets moeilijker dan het oplossen van "Ik weet niet wat";
  • onthoud of u hetzelfde of een soortgelijk probleem al bent tegengekomen - in dit geval is het de moeite waard om de oplossing te proberen die de vorige keer werkte;
  • lees de juiste man-s (als u begrijpt welke man-s geschikt zijn voor uw geval) - u kunt geschikte voorbeelden vinden van het gebruik van commando's, noodzakelijke opties of links naar andere commando's;
  • denk er eens over na: is het mogelijk om de taak een beetje te veranderen? - misschien krijg je door de voorwaarden iets te veranderen een probleem dat je al weet op te lossen;
  • stel uw goed gedefinieerde vraag in een zoekmachine - misschien is het antwoord te vinden op Stack Overflow of andere sites;
Als geen van de bovenstaande punten heeft geholpen, vraag dan advies aan een leraar, een ervaren collega of vriend. En wees niet bang om "domme" vragen te stellen - het is geen schande om het niet te weten, het is een schande om het niet te stellen.

Als je een moeilijk probleem hebt opgelost (in je eentje, met behulp van internet of andere mensen) - schrijf je oplossing op voor het geval jij of je kameraden hetzelfde probleem opnieuw hebben. U kunt opnemen in een eenvoudig tekstbestand, in Evernote, publiceren in sociale netwerken.

Werkwijze

Knippen en plakken- van man-s, van artikelen over StackOverflow, etc. De opdrachtregel bestaat uit tekst, gebruik het: kopieer en gebruik opdrachtvoorbeelden, schrijf succesvolle vondsten op voor geheugen, publiceer ze op twitter en blogs.

Haal de vorige opdracht uit de geschiedenis, voeg een andere opdracht toe aan de pijplijn, uitvoeren, herhalen.Cm. Zie ook het gedeelte "Een pijplijn met één lijn samenstellen".

Basisopdrachten

  • directory wijzigen: cd ;
  • de inhoud van bestanden bekijken: cat , less , head , tail ;
  • bestandsmanipulatie: cp , mv , rm ;
  • directorylijst: ls , ls -l , ls -lS ;
  • directorystructuur: tree , tree -d (u kunt een directory als parameter doorgeven);
  • bestand zoeken: vind . -naam ... ;

Analytics

  • wc , wc -l ;
  • sort -k - sorteer op het opgegeven veld;
  • sort -n - numerieke sortering;
  • diff - bestanden vergelijken;
  • grep , grep -v , grep -w , grep "\ " , grep -E - zoek naar tekst;
  • uniq , uniq -c - unieke tekenreeksen;
  • awk - in de awk "(print $1)" variant, om alleen het eerste veld van elke regel te verlaten, kan $1 worden gewijzigd in $2 , $3, etc.;

Systeemdiagnose

  • ps axuww - informatie over processen (lopende programma's) die op de machine draaien;
  • top - interactieve weergave van de meest resource-intensieve processen;
  • df - gebruikte en vrije schijfruimte;
  • du - totale grootte van bestanden in de map (recursief met submappen);
  • strace , ktrace - welk systeem het proces aanroept;
  • lsof - welke bestanden het proces gebruikt;
  • netstat -na , netstat -nap - welke poorten en sockets zijn open op het systeem.

Het kan zijn dat u bepaalde programma's niet hebt, deze moeten extra worden geïnstalleerd. Bovendien zijn sommige opties van deze programma's alleen beschikbaar voor bevoorrechte gebruikers (root "y").

Bulk en semi-automatische uitvoering

Sla deze sectie in eerste instantie over, je hebt deze commando's en constructies nodig als je aan de slag gaat met eenvoudige shell-scripting.
  • test - controle voorwaarden;
  • terwijl lezen - door regels STDIN bladeren;
  • xargs - vervanging van strings van STDIN in de parameters van het gespecificeerde programma;
  • seq - generatie van reeksen natuurlijke getallen;
  • () - combineer de uitvoer van verschillende opdrachten;
  • ; - doe de een na de ander;
  • && - voer uit als de eerste opdracht met succes is voltooid;
  • || - voer uit als het eerste commando mislukt;
  • tee - dupliceer programma-uitvoer naar STDOUT en naar een bestand op schijf.

Diversen

  • datum - huidige datum;
  • curl - downloadt het document op de opgegeven url en schrijft het resultaat naar STDOUT;
  • touch - update bestandswijzigingsdatum;
  • kill - stuur een signaal naar het proces;
  • true - doet niets, geeft true terug, handig voor het organiseren van eeuwige lussen;
  • sudo - voer een commando uit als root "a.

Een one-liner pijplijn samenstellen

Laten we eens kijken naar een voorbeeld van een echte taak: we willen alle task-6-serverprocessen die namens de huidige gebruiker worden uitgevoerd, uitschakelen.

Stap 1.
Begrijp welk programma ongeveer de benodigde gegevens produceert, zelfs als het niet in zijn pure vorm is. Voor onze taak is het de moeite waard om een ​​lijst te krijgen van alle processen in het systeem: ps axuww. Rennen.

Stap 2
Kijk met je ogen naar de ontvangen gegevens, bedenk een filter dat een deel van de onnodige gegevens weggooit. Vaak is dit grep of grep -v . Gebruik de "Omhoog"-toets om het vorige commando uit de geschiedenis te halen, er een uitgevonden filter aan toe te wijzen en het uit te voeren.

Ps axuww |grep `whoami`
- alleen processen van de huidige gebruiker.

Stap 3
Herhaal stap 2 totdat u de gewenste schone gegevens krijgt.

"
- alle processen met de gewenste naam (plus, misschien, overbodige zoals vim task-6-server.c, etc.),

Ps axuww |grep `whoami` | grep "\ " | grep -v vim ps axuww |grep `whoami` | grep "\ " | grep -v vim | grep -v minder
- alleen processen met de gewenste naam

Ps axuww |grep `whoami` | grep "\ " | grep -v vim |grep -v minder |awk "(print $2)"

Pids van de vereiste processen, stap 3 voltooid

Stap 4
Pas een geschikte eindafhandelaar toe. Met behulp van de "Omhoog"-toets halen we de vorige opdracht uit de geschiedenis en voegen we verwerking toe die de oplossing van het probleem voltooit:

  • |wc -l om het aantal processen te tellen;
  • >pids om pids naar een bestand te schrijven;
  • |xargs kill -9 kill-processen.

Taken voor training

Wil je nieuwe vaardigheden oefenen? Probeer de volgende taken:
  • krijg een lijst van alle bestanden en mappen in je thuismap;
  • een lijst krijgen van alle man-artikelen uit categorie 2 (systeemoproepen);
  • tel hoe vaak het woord grep voorkomt in de grep man-pagina;
  • tel hoeveel processen momenteel als root worden uitgevoerd;
  • zoek welk commando voorkomt in het maximale aantal hulpcategorieën (man);
  • tel hoe vaak het woord var voorkomt op de ya.ru-pagina.
Hint: je hebt find , grep -o , awk "(print $1)" , reguliere expressies in grep , curl -s nodig.

Wat daarna studeren?

Als je de opdrachtregel leuk begint te vinden, stop dan niet, blijf je vaardigheden verbeteren.

Hier zijn enkele programma's die zeker van pas zullen komen als je op de opdrachtregel leeft:

  • zoeken met complexe opties
  • apropos
  • bevind zich
  • telnet
  • netcat
  • tcpdump
  • rsync
  • scherm
  • zgrep, zless
  • visudo
  • crontab -e
  • Verzend mail
Het is ook de moeite waard om in de loop van de tijd een scripttaal te leren, zoals perl of python, of zelfs beide.

Wie heeft het nodig?

Is het de moeite waard om vandaag de opdrachtregel en shellscripting te leren? Zeker de moeite waard. Ik zal slechts een paar voorbeelden geven van de vereisten van Facebook voor kandidaten die een baan bij FB willen krijgen.

=====================================================

LABORATORIUMWERK Nr. 1 (tijd om te voltooien - 3 uur)

Onderwerp: ”Inleiding totschelp

1. Inleiding tot de schaal

Shell is een commando-interpreter (commandoprocessor) die fungeert als een interface tussen de gebruiker en de Unix-kernel. Solaris biedt drie hoofdschillen:

    De standaard Bourne-shell is /sbin/sh

    C-shell -- /bin/csh

    Korn-opdrachtprocessor-- ./bin/ksh

Naast de genoemde biedt Solaris extra shells:

    J shell -- /sbin/jsh

    Beperkte Korn l -- / usr/ bin/rsh

    T-shell -- /usr/bin/tcsh

    GNU Bourne Again -- /usr/bin/bash

    Z-shell - usr/bin/zsh

De keuze van de schaal is een kwestie van persoonlijke voorkeur.

2. Voer opdrachten uit

Elk commando in Unix bestaat uit de naam van het te starten programma (commando), opties (switches) en argumenten die aan het programma worden doorgegeven. Scheidingstekens op de opdrachtregel zijn spaties of tabs.

Voorbeeld

$ /bin/ping –t 10 192.168.2.13

argument

shell-prompt

Als het pad naar het uitvoerbare bestand niet is opgegeven bij het starten van het programma, kijkt het besturingssysteem achtereenvolgens door de mappen die zijn opgegeven in de PATH-variabele. Als er een programma met dezelfde naam in de doorbladerde map is, wordt het gestart voor uitvoering. De huidige werkdirectory wordt niet opgezocht bij het zoeken naar programma's, tenzij deze is ingesteld in de PATH-variabele.

! Om veiligheidsredenen wordt een beheerder geadviseerd om de huidige directory en home (persoonlijke) directory's van de gebruiker niet toe te voegen aan de PATH-variabele.

Voorbeelden

Het programma starten met het volledige pad

$ / usr/ lokaal/ bin/ mijn_ programma

Een programma starten vanuit een hogere (bovenliggende) map

$ ../ lokaal/ bin/ mijn_ programma

Het programma starten vanuit de huidige map

$ ./ mijn_ programma

3. Speciale tekens in de shell

Sommige tekens in de schaal hebben een speciale betekenis.

3.1. Genereringspatronen voor bestandsnamen

? (vraagteken) komt overeen met elk afzonderlijk teken behalve de eerste punt;

(vierkante haakjes) definieer een groep symbolen (één symbool uit de groep wordt geselecteerd);

- (minteken") definieert het bereik van geldige tekens;

! (uitroepteken) verwerpt de groep tekens die erop volgt;

* (ster symbool) komt overeen met een willekeurig aantal tekens behalve de eerste punt.

3.2. I/O-omleidingssymbolen

< - invoeromleiding;

>, >> - outputomleiding;

2>, 2>> - omleiden van foutmeldingen;

| - transportband.

3.3. Wildcard symbolen

$variabele_naamQ - variabele substitutie;

$(opdracht) of `commando` - opdrachtvervanging;

~ - tilde-substitutie.

4. Zoeken

Voor een snelle zoektocht naar bestanden en mappen wordt het whereis-commando gebruikt, voor een diepere het find-commando (zoek naar bestanden die voldoen aan de opgegeven vereisten;).

5. vi teksteditor

De vi-teksteditor is een universele teksteditor die op elke Unix te vinden is. Naast het bewerken van tekstbestanden, kan de vi-editor worden gebruikt om de opdrachtregel te bewerken.

De vi-editor heeft 3 werkingsmodi (zie afbeelding).

De vi-editor openen

Verlaat vi

Het teken "~" (tilde) in de eerste positie markeert lege (niet-bestaande) regels van het bestand.

De hoofdmodus is de opdrachtmodus, waarin opdrachten worden ingevoerd door op een bepaalde reeks toetsen te drukken (ze worden op geen enkele manier op het scherm weergegeven).

Door de tekst bladeren in de opdrachtmodus wordt uitgevoerd met behulp van pijlen en toetsen (links) (omlaag), (omhoog), (naar rechts).

Sommige vi-commando's staan ​​in de tabel.

De huidige regel verwijderen

Kopieer huidige regel naar klembord

Cursorbeweging

De met de cursor gemarkeerde tekens in de buffer plaatsen

Voeg onderaan een nieuwe regel in

Voeg bovenaan een nieuwe regel in

Toevoegen na cursor

Toevoegen na huidige regel

Plakken voor cursor

Invoegen vóór huidige regel

Een teken vervangen door een teken dat met het toetsenbord is ingevoerd

Tekst van klembord plakken

. (punt)

Voer de laatst uitgevoerde opdracht opnieuw uit

Laatste opdracht annuleren

Alle wijzigingen op de huidige regel ongedaan maken

Teken boven cursor verwijderen

In de invoermodus worden alle tekens die op het toetsenbord worden getypt in de tekst ingevoegd.

In de laatste regelmodus wordt de opdracht die u typt weergegeven op de laatste regel van het scherm.

6. Hulp

Unix heeft een elektronische handleiding die een beschrijving bevat van het doel van commando's, hun syntaxis, gebruiksvoorbeelden, enz. De handleiding wordt aangeroepen door het man-commando:

7. Basis shell-commando's

WHO– het weergeven van informatie over actieve gebruikers;

echo– output berichten naar de terminal;

banier– berichten in hoofdletters naar de terminal sturen;

Mens– het online helpsysteem bellen;

datum – output van de huidige datum;

schrijven– verzending van berichten naar de terminal van een andere gebruiker;

bericht– toestemming/verbod om berichten van andere gebruikers weer te geven;

mail– verzenden/ontvangen van post;

nieuws- kennismaken met het nieuws van het systeem;

pwd– toon de absolute padnaam van de huidige werkdirectory;

CD– het wijzigen van de werkdirectory;

ls– het weergeven van informatie over de inhoud van de directory;

mkdir- het maken van een map;

rmdir– het verwijderen van een map;

aanraken– het bijwerken van de tijdstempel van het bestand;

cp– bestanden kopiëren;

kat- samenvoegen en weergeven van de inhoud van bestanden;

meer– paginering van bestandsinhoud.

mv – een bestand verplaatsen of hernoemen;

rm– het verwijderen van een bestand;

alias– creatie van een pseudoniem;

tr– karakter transformatie;

Uitgang- voltooiing van de huidige schelp-maar;

tee– onderschepping van pijplijnresultaten;

snee – selectie van velden uit een string;

grep– zoeken op patroon;

pr– bestandsuitvoer naar standaarduitvoer in het opgegeven formaat;

soort- sorteren;

hoofd– uitvoer van de eerste regels van het bestand;

staart- voer de laatste regels van het bestand uit;

wc- tellen van het aantal karakters, woorden en regels;

lezen, echo - lezen en weergeven van variabele waarden;

test- evaluatie van de waarde van de uitdrukking;

expr, laten- berekening van rekenkundige uitdrukkingen;

8. Schelp-programma's

Met Shell kunt u een reeks opdrachten in een bestand opslaan en vervolgens uitvoeren. Om een ​​bestand uit te voeren met een shell-programma voor uitvoering, moet u het uitvoerrecht toevoegen aan de toegangsrechten:

$ chmod +x programma_bestandsnaam

Vertakking in shell-programma's wordt georganiseerd met behulp van operators:

als dan anders

Loop-instructies:

OPDRACHTEN

1. Welke van de volgende opdrachten zal resulteren in een welkomstbericht op het scherm? Wat zijn niet? Waarom?

$ echo hallo

$ echo hallo

$ echo HALLO, WERELD

$ banier Hallo

$ BANNER HALLO, WERELD

2. Druk een bericht af van meerdere regels met behulp van opdrachten echo En spandoek.

3. Voer de datum uit in twee regels: op de eerste regel - dag, maand, jaar, op de tweede regel - de huidige tijd, waarbij de uitvoer wordt voorzien van een opmerking.

4. Commando gebruiken: schrijven, stuur een bericht naar de console. Stuur berichten naar meerdere terminals tegelijk.

5. Commando gebruiken bericht, bepaal of berichten op uw terminal zijn toegestaan. Schakel berichten uit. Wat zal de reactie van het systeem zijn als iemand u een bericht probeert te sturen?

6. Geef je naam een ​​naam THUIS-catalogus.

7. Blader door de substructuur van mappen beginnend vanuit de /export/home map met behulp van de commando's cd, ls En pwd.

8.. Creëer in je THUIS-directory subdirectories van het formulier:

fruit bloemen

appel peer druiven roos violet paardebloem

donkergroen

9. In je zijn THUIS-directory, maak de volgende submappen aan met een enkele opdrachtregel:

A/B/C/D

10. In je zijn THUIS-directory, verwijder alle subdirectories van de directory A.

11. Binnen zijn THUIS-directory, maak een bestand macintosh in de bestaande catalogus appel en verschillende bestanden in mappen donker En groente. Ga naar de catalogus Fverlaagt. In de directory zijn Fverlaagt, kopieer alle submappen Fruiten samen met de bestanden die ze bevatten naar een speciaal aangemaakte map mand.

12. In de catalogus staan Fverlaagt, verwijder map Fruiten.

13. Lees het bestand .profiel commando's gebruiken kat En meer.

14. Aanmaken in THUIS- directory tekstbestand mijn bestand van meerdere regels met het commando kat. Een tekstbestand maken mjaFiel, door er dezelfde regels in te schrijven. Hoeveel bestanden heb je gekregen? Waarom?

15. Bekijk de inhoud van het bestand gemaakt in taak 2.2 mijn bestand. Kopieer het bestand mijn bestand archiveren mijn kopie. Bekijk de inhoud van beide bestanden.

16. Verplaats het bestand mijn kopie catalogiseren bloemen.

17. Binnen zijn THUIS-directory, maak een link mjakoppeling per bestand mijn kopie bevindt zich in de map bloemen. Bekijk het linkbestand.

18. Voeg een regel toe aan het bestand mijnkoppeling. Welke van de bestanden mijnkoppeling, mijnkopiëren, mijnhet dossier veranderd? Waarom?

19. Welk commando kan worden gebruikt om het aantal links te bepalen? Bepaal het aantal links voor bestanden mijnkoppeling, mijnkopiëren, mijnhet dossier.

Verwijder bestand mijn kopie. Wat is er met het linkbestand gebeurd? Bepaal het aantal links voor bestanden mijnkoppeling, mijnhet dossier.

20. Maak een alias dir Een die de inhoud van de huidige map in uitgevouwen formaat afdrukt.

21. Log uit en log opnieuw in. Werkt de alias? dir? Wat moet er worden gedaan zodat de alias niet "verloren" gaat tussen sessies?

22. Maak een alias punt, die een lijst met bestanden in de werkdirectory afdrukt waarvan de namen beginnen met een punt.

23. Commando gebruiken aanraken, maak bestanden in een nieuwe map met namen zodanig dat tegelijkertijd:

Sjabloon een* overeenkomende 5 bestanden;

Sjabloon * een overeenkomende 4 bestanden;

Sjabloon ??.? overeenkomende 3 bestanden;

Sjabloon * aa* overeenkomende 2 bestanden;

Sjabloon??? kwam overeen met 1 bestand.

24. Welke opdracht moet worden ingevoerd om het volgende te doen:

a) de namen weergeven van alle bestanden die beginnen met een punt;

b) de namen weergeven van alle bestanden die eindigen op ".tekst";

c) druk de namen af ​​van alle bestanden die het woord bevatten "mijn";

25. Verander alle kleine letters in hoofdletters in een bepaald bestand, alle hoofdletters in kleine letters in een ander bestand. Verwijder alle dubbele spaties uit het bestand.

26. Maak een bestand met de naam * . Verwijder alleen dit bestand. Wees voorzichtig bij het gebruik van karakters voor het genereren van bestandsnamen!

27. Maak een bestand met een spatie in de naam. Hoe verwijder je zo'n bestand?

28. Commando gebruiken kat verdubbel de inhoud van het bestand door de originele inhoud toe te voegen aan het einde van hetzelfde bestand. Ga naar map bloemen. Toevoegen aan bestand lijst lijst directory-inhoud bloemen. De inhoud van een bestand bekijken

29. Probeer te lezen met het commando kat niet-bestaand bestand. Wat is de reactie van het systeem? Doe hetzelfde door foutmeldingen om te leiden naar een bestand myerror. Wat zie je op het scherm? Bestand bekijken myerror.

30. Maak een pijplijn om alleen de namen en machtigingen weer te geven van de bestanden die zich momenteel in uw werkmap bevinden.

31. Wijzig de ingebouwde pijplijn zodat de lijst in een bestand wordt opgeslagen lijst Jouw zijn THUIS-directory, en alleen het aantal bestanden in de lijst werd weergegeven.

32. Geef de inhoud van een bestand weer /etc/passwd, gesorteerd op het gebruikersnaamveld.

33. Maak een alias gelogdAan, die een alfabetisch geordende lijst weergeeft van de namen van de gebruikers die momenteel zijn aangemeld bij het systeem.

33. Geef de huidige datum in hoofdletters weer met behulp van de opdrachten datum En spandoek.

34. Toewijzen aan een variabele IK BEN Uw registratienaam. Voer een andere uit schelp. Zie je deze variabele? Wat moet er worden gedaan om het in de gegenereerde te zien? schelp? De waarde van een variabele wijzigen IK BEN in gegenereerd schelp. Exit voortgebracht schelp. Kijk naar de waarde van deze variabele in het origineel schelp. Leg het resultaat uit.

35. Schrijf schelp-programma info, waarbij de gebruiker wordt gevraagd een naam, adres, dag, maand en geboortejaar in te voeren en deze informatie in omgekeerde volgorde weer te geven

36. Schrijf schelp- een programma dat een uitnodiging toont om een ​​nummer in te voeren, sla het ingevoerde nummer op in een variabele ja en druk een bericht af “Y is groter dan 7”, als waarde ja groter dan 7, en "J is"niet groter dan 7” anders.

37. Schrijf een shell-programma dat de volgende statistieken weergeeft:

a) uw naam;

b) het aantal argumenten waarmee het wordt gelanceerd;

c) drukt elk van zijn argumenten en de lengte van het argument in karakters af;

38. Schrijf schelp-een programma dat het aantal argumenten op de opdrachtregel bepaalt en een foutmelding geeft als het aantal argumenten niet gelijk is aan drie, of de argumenten zelf als hun aantal gelijk is aan drie.

39. Schrijf schelp- een programma dat u vraagt ​​om een ​​gebruikers-ID in te voeren, de ID controleert op overeenstemming met de ID's die in het systeem worden gebruikt en de volledige naam weergeeft THUIS-directory of, in het geval van een ongeldige identifier, een foutmelding geven.

40. Schrijf een shell-programma Hallo, met het volgende antwoord op opdrachtregelargumenten:

Argument "-D"- het programma zal de opdracht uitvoeren datum;

Argument "-l"- het programma toont de inhoud van de huidige directory;

    als er geen argumenten of ongeldige argumenten op de opdrachtregel staan, zal het programma hulp over de opties weergeven.

41. Schrijf een programma woorden, die de gebruiker zal vragen om één woord tegelijk in te voeren totdat hij een woord invoert einde. Onthoud alle ingevoerde woorden. Na het invoeren van het woord einde alle ingevoerde woorden op het scherm weergeven.

42. Wijzig de systeemprompt om de volledige padnaam van de huidige werkdirectory op te nemen .

43. Schrijf een programma virus, die een uitvoerbare kopie van zichzelf maakt met een andere naam en zichzelf vervolgens verwijdert.

44. Schrijf een programma virus2 , die de huidige directory doorzoekt naar programma's in de commandotaal en aan hun tekst een commando toevoegt om het woord weer te geven besmet!”.

45. Schrijf een programma virus3 , dat zijn eigen code toevoegt aan de programma's in de commandotaal die het vindt om andere programma's te infecteren.

46. ​​​​Schrijf een programma virus4 door uw virus zo aan te passen dat bij besmetting de infecterende code uit het infecterende programma wordt verwijderd.

47. Schrijf een programma antivirus, die alle shell-programma's zou vinden die door uw virus zijn geïnfecteerd.

48. Pas het ontwikkelde programma aan zodat het niet alleen geïnfecteerde programma's vindt in de door het opgegeven map, maar ze ook "genezen", door de geïnfecteerde versie op te slaan in een nieuw bestand, met de naam waarvan het einde . vir, en het verwijderen van het execute attribuut uit een dergelijk bestand.

49. Schrijf een programma virus5 , welke zou:

a) zou shell-programma's in de huidige map en zijn submappen alleen met een virus infecteren als de gebruiker de opdracht invoerde ls;

b) gedraag je als een team ls, zonder iets uit te geven op de terminal van hun werk.

50. Schrijf een virus6-programma op basis van programma's virus2 -virus5 , waarvan de infecterende code niet kon worden gedetecteerd door het door u ontwikkelde programma antivirus, en infectie zou optreden bij elke waarde van de variabele PAD.

51. Schrijf een programma supervirus, waarvan de lancering uw bestanden infecteert met het virus dat in de vorige taak is ontwikkeld, en elke keer dat u zich aanmeldt bij het systeem, wordt een poging gedaan om de bestanden van uw kameraden te infecteren. Programma supervirus wist zichzelf na de eerste run.

52. Schrijf een programma superantivirus, die alle bestanden in de opgegeven map en zijn submappen van alle ontwikkelde virussen detecteert en volledig "genezen" (als de bijbehorende optie is opgegeven).

De commandotaal shell (in vertaling - shell, shell) is eigenlijk een programmeertaal van een zeer hoog niveau. In deze taal bestuurt de gebruiker de computer. Meestal begin je na het inloggen met een shell te communiceren. Een teken dat de shell (shell) klaar is om commando's te ontvangen, is de prompt die door hem naar het scherm wordt gestuurd. In het eenvoudigste geval is dit één dollar ("$"). Shell is geen noodzakelijke en enige commandotaal (hoewel het wel gestandaardiseerd is in het kader van POSIX - de standaard voor mobiele systemen). De cshell-taal is bijvoorbeeld behoorlijk populair, er zijn ook kshell, bashell en andere. Bovendien kan elke gebruiker zijn eigen commandotaal creëren. Het kan tegelijkertijd met verschillende opdrachttalen werken op één instantie van het besturingssysteem. shell is een van de vele UNIX-opdrachten. Dat wil zeggen, de "shell"-opdrachtenset bevat de "sh"-opdracht - die de "shell"-interpreter aanroept. De eerste "shell" wordt automatisch aangeroepen wanneer u zich aanmeldt en geeft de prompter weer. Daarna kun je alle commando's voor uitvoering aanroepen, inclusief opnieuw de "shell" zelf, die een nieuwe shell voor je zal maken in de oude. Dus als u bijvoorbeeld het bestand "file_1" voorbereidt in de editor:

Echo Hallo!

dan zal het een gewoon tekstbestand zijn dat de "echo"-opdracht bevat, die, wanneer uitgevoerd, alles zal weergeven dat rechts ervan op het scherm is geschreven. Je kunt het bestand "file_1" uitvoerbaar maken met het commando "chmod 755 file_1". Maar het kan worden gedaan door expliciet de opdracht "sh" ("shell") aan te roepen:

Sh file_1

Sh< file1

Het bestand kan ook worden uitgevoerd in de huidige "shell"-instantie. Hiervoor is er een specifiek commando "." (punt), d.w.z.

Bestand_1

Aangezien UNIX een systeem voor meerdere gebruikers is, kunt u zelfs parallel op een pc werken, bijvoorbeeld op 12 schermen (schakel van scherm naar scherm ALT / functietoets), met op elk scherm een ​​nieuwe (of dezelfde) gebruiker met zijn commandoschelp. U kunt ook een groot aantal vensters openen in de grafische modus van X-Window, en elk venster kan zijn eigen gebruiker hebben met zijn eigen opdrachtshell... Het kernelement van de shell-taal is de opdracht.

Commando structuren:

Shell-opdrachten hebben meestal de volgende indeling:

<имя команды> <флаги> <аргумент(ы)>

Bijvoorbeeld:

ls -ls /usr/bin

Waar ls de naam is van het commando voor het uitgeven van de inhoud van de directory, -ls zijn vlaggen ("-" is een teken van vlaggen, l is een lang formaat, s is de grootte van bestanden in blokken), /usr/bin is de directory waarvoor het commando wordt uitgevoerd. Dit commando zal de inhoud van de /usr/bin directory in een lang formaat weergeven en tegelijkertijd informatie toevoegen over de grootte van elk bestand in blokken.diversiteit in de presentatie van argumenten .Het aantal commando's met exotische formaten omvat dergelijke "lopende" commando's als cc - roep de C-compiler aan, tar - werk met archieven, dd - kopieer een bestand met transformatie, zoek - zoek naar bestanden en een aantal andere In de regel , het eerste woord van de shell wordt behandeld als een opdracht, dus op de opdrachtregel

het eerste woord wordt door de shell geïnterpreteerd als een (aaneenschakeling)opdracht, die een bestand met de naam "cat" (het tweede woord) in de huidige map zal weergeven. Opdrachtomleiding Standaardinvoer (invoer) - "stdin" in UNIX OS wordt uitgevoerd vanaf het terminaltoetsenbord en standaarduitvoer (uitvoer) - "stdout" wordt naar het terminalscherm geleid. Er is ook een standaard diagnostisch berichtenbestand - "stderr", dat iets later zal worden besproken. Het commando dat op standaard invoer en uitvoer kan werken, wordt FILTER genoemd. De gebruiker heeft handige middelen om invoer en uitvoer om te leiden naar andere bestanden (apparaten). De symbolen ">" en ">>" duiden uitvoeromleiding aan. ls >file_1 Het "ls" commando zal de bestanden in de huidige directory weergeven en in bestand "file_1" plaatsen (in plaats van het op het scherm weer te geven). Als het bestand "file_1" eerder bestond, wordt het overschreven door het nieuwe.

Wwd >>bestand_1

het pwd-commando vormt de volledig gekwalificeerde naam van de huidige map en plaatst deze aan het einde van het bestand "file_1", d.w.z. ">>" wordt aan het bestand toegevoegd als het niet leeg is. symbolen "<" и "<<" обозначают перенаправление ввода.

WC-l

telt en toont het aantal regels in het bestand file_1.

Ed file_2<

zal het bestand "file_2" maken met behulp van de editor, rechtstreeks vanaf de terminal. Het einde van de invoer wordt bepaald door het teken rechts "<<" (т. е. "!"). То есть ввод будет закончен, когда первым в очередной строке будет "!". Можно сочетать перенаправления. Так

WC-l file_4

WC -l >file_4

worden op dezelfde manier uitgevoerd: het aantal regels van het bestand "file_3" wordt geteld en het resultaat wordt in het bestand "file_4" geplaatst. Een faciliteit die de standaarduitvoer van het ene commando combineert met de standaardinvoer van een ander, wordt een PIPELINE genoemd en wordt aangegeven met de verticale balk "|".

Ls | wc -l

de lijst met bestanden in de huidige map wordt doorgegeven aan de invoer van het "wc"-commando, dat het aantal regels in de map zal weergeven. Een pijplijn kan ook meer dan twee opdrachten combineren, wanneer ze allemaal, mogelijk behalve de eerste en de laatste, filters zijn:

Kat file_1 | grep -hresult | sorteren | cat -b > file_2

Deze pijplijn uit het bestand "file_1" ("cat") selecteert alle regels die het woord "result" ("grep") bevatten, sorteert ("sort") de resulterende regels en nummer ("cat -b") en voer het resultaat uit naar bestand "file_2". Omdat UNIX-apparaten worden weergegeven door speciale bestanden, kunnen ze worden gebruikt in omleidingen. De speciale bestanden bevinden zich in de map "/dev". Bijvoorbeeld "lp" - afdrukken; "console" - console; "ttyi" - i-de terminal; "null" - dummy (leeg) bestand (apparaat). Dan is bijv.

Ls > /dev/lp

zal de inhoud van de huidige map afdrukken, en file_1< /dev/null обнулит файл "file_1".

sorteer bestand_1 | tee /dev/lp | staart -20

In dit geval wordt het bestand "file_1" gesorteerd en afgedrukt en worden ook de laatste 20 regels op het scherm weergegeven. Laten we teruggaan naar het afsluiten van de omleiding. Standaardbestanden zijn genummerd:

0 - standaard, 1 - standaard 2 - standaard. Als u geen foutmelding op het scherm wilt hebben, kunt u het van het scherm omleiden naar het bestand dat u hebt opgegeven (of het helemaal "gooien" door het om te leiden naar het bestand "leeg apparaat" - /dev/null). Bijvoorbeeld, bij het uitvoeren van de opdracht

Kat file_1 file_2

die de inhoud van de bestanden "file_1" en "file_2" achtereenvolgens op het scherm moet weergeven, geeft u bijvoorbeeld het volgende

111111 222222 cat: f2: Geen dergelijk bestand of map

waarbij 111111 222222 de inhoud is van bestand "file_1" en bestand "file_2" ontbreekt, zoals standaard gerapporteerd door de "cat"-opdracht in het standaard diagnostische bestand, evenals de standaarduitvoer die door het scherm wordt weergegeven. Als u zo'n bericht niet op het scherm wilt, kunt u het doorsturen naar het door u opgegeven bestand:

Cat file_1 file_2 2>f-err

foutmeldingen worden verzonden (zoals aangegeven door de "2>" omleiding) naar het "f-err"-bestand. Trouwens, je kunt alle informatie naar één "ff"-bestand sturen, in dit geval de constructie

Cat file_1 file_2 >>ff 2>ff

U kunt niet alleen specificeren welke van de standaardbestanden u wilt omleiden, maar ook naar welk standaardbestand u wilt omleiden.

Cat file_1 file_2 2>>ff 1>&2

Hier wordt eerst "stderr" omgeleid (in append-modus) naar het bestand "ff", en vervolgens wordt de standaarduitvoer omgeleid naar "stderr", wat nu het bestand "ff" is. Dat wil zeggen, het resultaat zal vergelijkbaar zijn met het vorige. Constructie "1>&2" - betekent dat naast het nummer van het standaardbestand waarnaar moet worden doorverwezen, het noodzakelijk is om "&" ervoor te plaatsen; de hele structuur is geschreven zonder spaties.<- закрывает стандартный ввод. >- sluit standaard uitgang. commando bestanden. Om een ​​tekstbestand als commando te kunnen gebruiken, zijn er verschillende mogelijkheden. Laat de editor een bestand maken met de naam "cmd" dat één regel van de volgende vorm bevat:

datum; pwd; ls

Je kunt de shell aanroepen als een commando, aangeduid met "sh", en het een "cmd"-bestand doorgeven, hetzij als argument of als een omgeleide invoer, d.w.z.

$ sh cmd

$sh

Elk van deze opdrachten drukt de datum af, vervolgens de naam van de huidige map en vervolgens de inhoud van de map. Een interessantere en handigere optie voor het werken met een batchbestand is om er een uitvoerbaar bestand van te maken, d.w.z. maak er gewoon een commando van, dat wordt bereikt door de beveiligingscode te wijzigen. Om dit te doen, moet u de uitvoering van dit bestand toestaan. Bijvoorbeeld,

Chmod 711cmd

maakt de beveiligingscode "rwx__x__x". Dan een simpel telefoontje

zal resulteren in het uitvoeren van dezelfde drie commando's. Het resultaat zal hetzelfde zijn als het bestand met de inhoud

datum; pwd; ls

wordt weergegeven als: datum pwd ls omdat een regeleinde ook een scheidingsteken is in een opdrachtreeks. Zo kunnen uitvoerbare bestanden niet alleen bestanden zijn die zijn verkregen als resultaat van compilatie en assemblage, maar ook bestanden die zijn geschreven in de shell-taal. Ze worden uitgevoerd in de interpretatiemodus met behulp van een shell-interpreter.

Batchbestanden debuggen

SHELL gebruikt twee mechanismen voor het debuggen van batchbestanden. De eerste: set -v drukt de regels van het batchbestand af terwijl ze worden gelezen. Deze modus wordt gebruikt bij het zoeken naar syntaxisfouten. Om het te gebruiken, hoeft u het batchbestand niet te wijzigen, bijvoorbeeld: sh -v proc... waarbij proc de naam is van het batchbestand. De schakeloptie -v kan worden gebruikt in combinatie met de schakeloptie -n om uitvoering van de volgende opdrachten te voorkomen (de opdracht set -n blokkeert de terminal totdat de EOF-vlag wordt ingevoerd). De opdracht set -x voert opdrachten uit terwijl ze worden uitgevoerd, met programmaregels die naar de terminal worden afgedrukt en variabele waarden worden vervangen door variabelen. Om de schakelaars -x en -v uit te schakelen, kunt u het set-commando gebruiken - en om in te stellen - de juiste waarde toewijzen aan de macrovariabele. SHELL-OMGEVING (VARIABELEN EN PARAMETERS) U kunt batchbestanden in de shell-taal schrijven en uitvoerbaar maken met het "chmod"-commando. Daarna zijn ze niet anders dan andere UNIX OS-opdrachten.

Shell-variabelen

De naam van een shell-variabele is een reeks letters, cijfers en onderstrepingstekens die beginnen met een letter. De waarde van een shell-variabele is een tekenreeks. Het feit dat er slechts twee datatypes in de shell zijn: een tekenreeks en een tekstbestand enerzijds, maakt het gemakkelijk om eindgebruikers bij het programmeren te betrekken die nog nooit eerder hebben geprogrammeerd, en aan de andere kant veroorzaakt enige intern protest bij veel programmeurs die gewend zijn aan meer variatie en meer flexibiliteit van taalmiddelen. Het is echter interessant om te zien hoe eersteklas programmeurs, die de "spelregels" van de shell onder de knie hebben, er vele malen sneller programma's in schrijven dan in C, maar wat vooral interessant is, in sommige gevallen werken deze programma's zelfs sneller dan die geïmplementeerd in C. De naam van de variabele is vergelijkbaar met het traditionele begrip van een identifier, d.w.z. de naam kan een reeks letters, cijfers en onderstrepingstekens zijn, beginnend met een letter of een onderstrepingsteken. De toewijzingsoperator "=" kan worden gebruikt om waarden aan variabelen toe te wijzen.

Var_1=13 - "13" is geen getal, maar een reeks van twee cijfers. var_2="UNIX OS" - Dubbele aanhalingstekens (" ") zijn hier nodig omdat er een spatie in de tekenreeks zit.

Er zijn andere manieren om waarden toe te wijzen aan shell-variabelen. Dus bijvoorbeeld de invoer

DAT=`datum`

zorgt ervoor dat het "date"-commando als eerste wordt uitgevoerd (de aanhalingstekens geven aan dat het bijgevoegde commando eerst moet worden uitgevoerd), en het resultaat van zijn uitvoering, in plaats van te worden afgedrukt op standaarduitvoer, wordt toegewezen als de waarde van een variabele, in dit geval "DAT". U kunt ook een waarde aan een variabele toewijzen met behulp van het "lees"-commando, waarmee de waarde van een variabele kan worden ontvangen van het (toetsenbord)display in dialoogmodus. Meestal wordt het "lees"-commando in een batchbestand voorafgegaan door het "echo"-commando, waarmee u een soort bericht vooraf op het scherm kunt afdrukken. Bijvoorbeeld:

echo -n "Voer een driecijferig nummer in:" lees x

Bij het uitvoeren van dit fragment van een batchbestand, na het weergeven van het bericht

Voer een driecijferig nummer in:

de interpreter zal stoppen en wachten tot een waarde wordt ingevoerd vanaf het toetsenbord. Als u bijvoorbeeld "753" invoert, wordt dit de waarde van de variabele "x". Eén "lees"-commando kan waarden voor meerdere variabelen tegelijk lezen (toewijzen). Als er meer variabelen in "read" staan ​​dan er zijn ingevoerd (gescheiden door spaties), krijgen de overige variabelen een lege string. Als er meer waarden worden doorgegeven dan variabelen in het "lees"-commando, dan worden de extra genegeerd. Bij toegang tot een shell-variabele moet u de naam vooraf laten gaan door het "$"-symbool. Dus de commando's echo $var_2 echo var_2 worden op het scherm weergegeven

UNIX OS var_2 Ontsnappen

Laten we de ontsnappingstechnieken die in de shell worden gebruikt eens nader bekijken. De escapetekens zijn dubbele aanhalingstekens (" "), enkele aanhalingstekens (" ") en backslashes (\). Hun actie blijkt duidelijk uit de voorbeelden: Je kunt meerdere opdrachten op één regel schrijven.

X=22 y=33 z=$x A="$x" B="$x" C=\$x D="$x + $y + $z" E="$x + $y + $z " F=$x\ +\ $y\ +\ $z

(de opdracht G=$x+$y zou vanwege spaties niet zijn uitgevoerd) Dan

echo A = $A B = $B C = $C echo D = $D E = $E F = $F evaluatie echo A = $A evaluatie echo B = $B evaluatie echo C = $C

Weergegeven op het scherm

A = 22 B = $x C = $x D = 22 + 33 + 22 E = $x + $y + $z F = 22 + 33 + 22 geëvalueerd A = 22 geëvalueerd B = 22 geëvalueerd C = 22

Laten we nog wat voorbeelden geven met betrekking tot het ontsnappen van regeleinden. Laat de variabele "string" de waarde "array" 2x3 krijgen: abc def Merk op dat om het toewijzen van extra spaties te vermijden, de tweede regel van de array begint vanaf de eerste positie van de volgende regel: string="abc def" Dan is er zijn drie manieren om de variabele in het commando "echo" te schrijven echo $string echo "$string" echo "$string" geeft respectievelijk drie verschillende resultaten: abc def $string abc def en de volgorde van de commando's echo "str_1 str_2" > file_1 echo "str_1 str_2" > file_2 cat file_1 file_2 geeft opeenvolgende identieke bestanden file_1 en file_2: str_1 str_2 str_1 str_2 Merk ook op dat de backslash (\) niet alleen ontsnapt aan het teken dat erop volgt, waardoor speciale tekens eenvoudig kunnen worden gebruikt als karakters die zichzelf voorstellen (het kan aan zichzelf ontsnappen - \\), maar in een batchbestand kun je met een backslash regels combineren tot één (escape aan het einde van de regel).Bijvoorbeeld het eerder gegeven voorbeeld van de opdrachtregel:

Kat file_1 | grep -hresult | sorteren | cat -b > file_2

kan in een batchbestand worden geschreven, zeg like

Kat file_1 | grep -h \resultaat | sorteren | cat -b > file_2

Trouwens, het pijplijnsymbool geeft ook het effect van voortzetting van de opdrachtregel. In dit geval kan dit een mooier resultaat geven, bijvoorbeeld:

Kat file_1 | grep -hresult | sorteren | cat -b > file_2

Manipulaties met shell-variabelen Hoewel shell-variabelen over het algemeen worden behandeld als tekenreeksen, d.w.z. "35" is geen getal, maar een reeks van twee tekens "3" en "5", kunnen ze in sommige gevallen anders worden geïnterpreteerd, bijvoorbeeld als gehele getallen. Het commando "expr" heeft verschillende mogelijkheden. Laten we er enkele illustreren met voorbeelden: Een batchbestand uitvoeren:

X=7 y=2 a=`uitdr $x + $y` ; echo a=$a a=`expr $a + 1` ; echo a=$a b=`expr $y - $x`; echo b=$b c=`expr $x "*" $y` ; echo c=$c d=`expr $x / $y` ; echo d=$d e=`expr $x % $y` ; echo e=$e

wordt weergegeven op het scherm

A=9 a=10 b=-5 c=14 d=3 e=1

De vermenigvuldigingsbewerking ("*") moet worden geëscaped, omdat dit pictogram in de shell wordt gezien als een speciaal teken, wat betekent dat elke reeks tekens voor deze plaats kan worden gebruikt. Met het "expr"-commando zijn niet alleen (gehele) rekenkundige bewerkingen mogelijk, maar ook stringbewerkingen:

A=`expr "cocktail" : "haan"`; echo $A B=`expr "cocktail" : "staart"`; echo $B C=`expr "cocktail" : "koken"`; echo $C D=`expr "haan" : "cocktail"`; echo $D

Cijfers worden weergegeven op het scherm met het aantal overeenkomende tekens in de tekenreeksen (vanaf het begin). De tweede regel mag niet langer zijn dan de eerste:

4 0 0 0

Variabelen exporteren UNIX heeft het concept van een proces. Een proces vindt plaats wanneer een opdracht wordt uitgevoerd voor uitvoering. Bijvoorbeeld bij het typen van "r" op het toetsenbord ", wordt het proces "p" voortgebracht. Op zijn beurt kan "p" andere processen voortbrengen. Stel dat "p" "p1" en "p2" oproept, die opeenvolgend de corresponderende processen voortbrengen. Elk proces heeft zijn eigen omgeving - een reeks variabelen die ervoor beschikbaar zijn Voordat bijvoorbeeld "p" werd uitgevoerd, bestond er al een omgeving waarin enkele variabelen al waren gedefinieerd. Het uitvoeren van "p" leidt tot een nieuwe omgeving waarin "p1" en "p2" zullen worden voortgebracht. zijn lokaal binnen het proces waarin ze worden gedeclareerd, dwz waar ze waarden zijn toegewezen.Om ze beschikbaar te maken voor andere voortgebrachte processen, moeten ze expliciet worden doorgegeven.Hiervoor wordt het ingebouwde commando "exporteren" gebruikt .

Parameters:

Parameters kunnen worden doorgegeven aan het batchbestand. De shell gebruikt positionele parameters (d.w.z. de volgorde waarin ze verschijnen is significant). In een commandobestand beginnen de variabelen die overeenkomen met de parameters (vergelijkbaar met shellvariabelen) met het teken "$", gevolgd door een van de cijfers van 0 tot 9: Laat "examp-1" worden aangeroepen met de "cock" en "staart"-parameters. Deze parameters komen de nieuwe omgeving binnen onder de standaardnamen "1" en "2". De (standaard) variabele met de naam "0" zal de naam van de aangeroepen berekening bevatten. Bij toegang tot parameters wordt het dollarteken "$" voor het cijfer geplaatst (zoals bij toegang tot variabelen): $0 komt overeen met de naam van het opgegeven batchbestand; $1 eerste parameter; $2 is de tweede parameter, enzovoort. Aangezien het aantal variabelen waaraan parameters kunnen worden doorgegeven, beperkt is tot één cijfer, d.w.z. 9de ("0", zoals reeds opgemerkt, heeft een speciale betekenis), dan wordt een speciaal "shift"-commando gebruikt om een ​​groter aantal parameters over te dragen. De opdracht "set" geeft een eigenaardige benadering van parameters. Bijvoorbeeld fragment

Stel een b in met echo eerste=$1 seconde=$2 derde=$3

wordt weergegeven op het scherm

Eerste=a Tweede=b Derde=c

die. het "set"-commando stelt de parameterwaarden in. Dit blijkt erg handig te zijn. De opdracht "date" geeft bijvoorbeeld de huidige datum weer, zeg "Mon May 01 12:15:10 2000", bestaande uit vijf woorden en vervolgens

Stel `datum` in echo $1 $3 $5

wordt weergegeven op het scherm

ma 01 2000

Met de opdracht "set" kunt u ook de uitvoering van het programma regelen, bijvoorbeeld: set -v voert regels uit die door de shell kunnen worden gelezen naar de terminal. set +v annuleert de vorige modus. set -x drukt opdrachten naar de terminal af voordat ze worden uitgevoerd. set +x annuleert de vorige modus. Het "set"-commando zonder parameters print de status van de softwareomgeving naar de terminal.

Vervanging van Shell-interpreter

Alvorens te beginnen met directe interpretatie en uitvoering van commando's in batchbestanden, voert de shell verschillende soorten vervangingen uit: 1. RESULTAATVERVANGING. Alle opdrachten tussen aanhalingstekens worden uitgevoerd en het resultaat wordt op hun plaats vervangen. 2. VERVANGING VAN DE WAARDEN VAN PARAMETERS EN VARIABELEN. Dat wil zeggen, woorden die beginnen met "$" worden vervangen door de bijbehorende waarden van variabelen en parameters. 3. INTERPRETATIE VAN HITEN. Ontsnapte spaties worden genegeerd. 4. GENERATIE VAN BESTANDSNAMEN. Woorden worden gecontroleerd op de aanwezigheid van speciale tekens ("*", "?", "") erin en de overeenkomstige generaties worden uitgevoerd. Software-omgeving Elk proces heeft een omgeving waarin het draait. Shell gebruikt een aantal omgevingsvariabelen. Als u het "set"-commando typt zonder parameters, zal het scherm informatie weergeven over een aantal standaardvariabelen die bij het inloggen zijn gemaakt (en worden doorgegeven aan al uw nieuwe processen "door overerving"), evenals variabelen die door uw processen zijn gemaakt en geëxporteerd . Het specifieke type en de inhoud van de weergegeven informatie hangt in grote mate af van welke versie van UNIX wordt gebruikt en hoe het systeem is geïnstalleerd.

Het resultaat van het uitvoeren van het set-commando zonder parameters (niet compleet):

HOME=/root PATH=/usr/local/bin:/usr/bin:/bin:.:/usr/bin/X11: IFS= LOGNAME=sae MAIL=/var/spool/mail/sae PWD=/home/ sae/STUDIE/SHELL PS1=$(PWD):" " PS2=> SHELL=/bin/bash

Laten we commentaar geven op de waarden van de variabelen. HOME=/root is de naam van de homedirectory waar de gebruiker terechtkomt na het inloggen. Dat wil zeggen, door de gebruikersnaam en het wachtwoord correct in te voeren, kom ik in de map "/root". PATH=/bin:/usr/bin:.:/usr/local/bin:/usr/bin/X11 - deze variabele stelt de volgorde in van bestanden die "shell" zoekt naar een commando. Bestandsnamen worden hier gescheiden door dubbele punten. De bladervolgorde komt overeen met de volgorde van de namen in het parcours. Maar in eerste instantie vindt het zoeken plaats tussen de zogenaamde ingebouwde commando's. De ingebouwde commando's bevatten de meest gebruikte commando's, zoals "echo", "cd", "pwd", "date". Daarna zoekt het systeem in de map "/bin", die de commando's "sh", "cp", "mv", "ls", enz. kan bevatten. Dan de directory "/usr/bin" met de commando's "cat", "cc", "expr", "nroff", "man" en vele anderen. Verder vindt de zoekopdracht plaats in de huidige map ("".", of een andere aanduiding "leeg", d.w.z. ""), waar de commando's die u hebt geschreven zich waarschijnlijk bevinden. Na het typen van de opdrachtregel en het indrukken van "shell" (na het maken van de nodige vervangingen) herkent de naam die overeenkomt met de opdracht en zoekt ernaar in de mappen die in het PATH worden vermeld. Als de opdracht buiten deze mappen wordt geplaatst, wordt deze niet gevonden. Als er meerdere commando's zijn met dezelfde naam, dan wordt het commando aangeroepen dat zich in de eerst bekeken directory bevindt. PATH kan, net als andere variabelen, eenvoudig worden gewijzigd door mappen toe te voegen, te herschikken of uit te sluiten. IFS= (Internal Field Separator) geeft de tekens weer die worden gebruikt om woorden (velden) te scheiden. Dit zijn "spatie", "tab" en "line feed", dus hier is links van de opdracht niets zichtbaar en zijn twee regels bezet. LOGNAME=root - loginnaam ("gebruikersnaam"). MAIL=/var/spool/mail/root is de naam van het bestand dat (e-mail)mail ontvangt. PWD=/root - huidige mapnaam PS1=$(PWD):" " - type promter. In dit geval zal de prompter de naam van de huidige directory, een dubbele punt en een spatie weergeven. Dat wil zeggen, "/root:" zal hier zijn. PS2=> - deze prompter (hier ">") wordt gebruikt als een uitnodiging om door te gaan met het typen (op de volgende regel) van een onvoltooid commando. Typ bijvoorbeeld de openingshaak "(" en nadat u op hebt gedrukt op de volgende regel ziet u deze prompter. Als u nog niet weet wat u vervolgens moet doen, typt u het afsluitende haakje ")" en het zal verdwijnen. SHELL=/bin/sh - Deze variabele specificeert de shell die de gebruiker gebruikt. In dit geval wordt de standaard shell ("sh") gebruikt. De initiële omgeving wordt automatisch ingesteld bij het inloggen met behulp van bestanden zoals "/etc/rc" en "/etc/.profile". Een manier om eenvoudig de omgeving te wijzigen (bijv. zoekpad voor opdrachten, prompterweergave, shellweergave, schermkleur, enz.) is door deze informatie in uw homedirectory te plaatsen in een gespecialiseerd ".profile"-bestand ($(HOME)/.profile ) door de gewenste waarden toe te kennen aan de omgevingsvariabelen. Dat wil zeggen, roep dit bestand op in de editor en schrijf wat je maar wilt). Elke keer dat u inlogt, wordt dit bestand automatisch uitgevoerd en een nieuwe omgeving opgezet. Dit bestand MOET in uw HOME-directory (login-directory) worden geplaatst. Merk op dat bestandsnamen die beginnen met een punt over het algemeen een speciale status hebben. Ze worden dus niet op het scherm weergegeven met een eenvoudige "ls"-opdracht - u moet deze opdracht aanroepen met de vlag "-a". Trouwens, ze worden niet zonder onderscheid vernietigd door het "rm *"-commando. De shell-interpreter wijst zelf automatisch waarden toe aan de volgende variabelen (parameters): ? de waarde die is geretourneerd door de laatste opdracht; $ procesnummer; ! achtergrond proces nummer;

  1. het aantal positionele parameters dat aan de shell is doorgegeven;
  • parameterlijst als één regel;

@ lijst met opties als een verzameling woorden; - vlaggen doorgegeven aan de shell. Bij toegang tot deze variabelen (dat wil zeggen, wanneer u ze gebruikt in een batchbestand - een shell-programma), moet u "$" ervoor zetten. Een belangrijke rol bij het maken van unieke bestanden wordt gespeeld door de speciale variabele "$$", waarvan de waarde overeenkomt met het nummer van het proces dat deze berekening uitvoert. Elke nieuwe berekening die door de computer wordt uitgevoerd, start een of meer processen die automatisch getallen in volgorde ontvangen. Door het procesnummer als bestandsnaam te gebruiken, kunt u er dus zeker van zijn dat elk nieuw bestand een nieuwe naam krijgt (niet een bestaande overschrijft). Het voordeel is ook het grootste nadeel van deze manier van bestandsnaamgeving. Het is niet bekend welke namen aan de bestanden worden toegekend. En als het in het kader van dit proces mogelijk is om een ​​bestand te vinden "zonder te kijken", d.w.z. door ernaar te verwijzen met $$, dan kunnen dergelijke bestanden gemakkelijk verloren gaan. Dit zorgt voor extra problemen bij het debuggen van programma's. De tolk oproepen Nadat de gebruiker in het systeem is ingelogd (met het login-commando), wordt de SHELL-taaltolk aangeroepen. Als de login-directory van de gebruiker een .profile-bestand bevat, voert de interpreter dit bestand uit voordat ten minste één opdracht van de terminal wordt ontvangen (aangenomen wordt dat het .profile-bestand opdrachten bevat). De volgende schakelaars kunnen tijdens de aanroep worden opgegeven: -c string Opdrachten worden gelezen uit de opgegeven string. -s Commando's worden gelezen vanaf standaard invoer. Interpreterberichten worden naar het standaard diagnosebestand geschreven. -i Interactieve modus. Als het eerste teken van de parameter "0" - is, worden de opdrachten uit het .profile-bestand gelezen.

PROGRAMMASTRUCTUREN===

Zoals in elke programmeertaal, kunnen er opmerkingen in de tekst in de shell-taal staan. Hiervoor wordt het symbool "#" gebruikt. Alles wat in de regel (in het batchbestand) links van dit symbool staat, wordt door de interpretator als commentaar ervaren. Bijvoorbeeld,

# Dit is een opmerking.

Zoals elke procedurele programmeertaal heeft de shell-taal operators. Met een aantal operators kunt u de volgorde van uitvoering van opdrachten regelen. Bij dergelijke operators is het vaak nodig om de voorwaarde te controleren, die de richting van voortzetting van de berekeningen bepaalt.

test(") commando

Het testcommando controleert of aan een bepaalde voorwaarde wordt voldaan. Met behulp van dit (ingebouwde) commando worden shell-taalselectie- en loop-instructies gevormd. Twee mogelijke opdrachtformaten:

test conditie

[ voorwaarde ]

we zullen de tweede optie gebruiken, d.w.z. in plaats van het woord "test" voor de voorwaarde te schrijven, zullen we de voorwaarde tussen haakjes plaatsen, wat meer vertrouwd is voor programmeurs. In feite zal de shell dit commando herkennen aan de openingshaak "[" als het woord dat overeenkomt met het commando "test". Er moeten spaties zijn tussen de haakjes en de voorwaarde die erin staat. Er moeten ook spaties zijn tussen de waarden en het vergelijkingsteken of de bewerking. De shell gebruikt voorwaarden van verschillende "types". BESTANDSCONTROLE VOORWAARDEN: -f bestand "bestand" is een normaal bestand; -d bestand bestand "bestand" - map; -c bestand "bestand" is een speciaal bestand; -r bestand heeft toestemming om bestand "bestand" te lezen; -w bestand heeft toestemming om naar bestand "bestand" te schrijven; -s bestand "bestand" is niet leeg.

STRING CONTROLE VOORWAARDEN: str1 = str2 strings "str1" en "str2" komen overeen; str1 != str2 strings "str1" en "str2" komen niet overeen; -n str1 string "str1" bestaat (niet leeg); -z str1 string "str1" bestaat niet (leeg). Voorbeelden.

x="wie is wie"; x exporteren; [ "wie is wie" = "$x" ]; echo $? 0 x=abc ; x exporteren; [abc = "$x"]; echo $? 0 x=abc ; x exporteren; [ -n "$x" ] ; echo $? 0 x="" ; x exporteren; [ -n "$x" ] ; echo $? een

Daarnaast zijn er twee standaard conditiewaarden die in plaats van de conditie gebruikt kunnen worden (haakjes zijn niet nodig). INTEGER VERGELIJKINGSVOORWAARDEN: x -eq y "x" is gelijk aan "y", x -ne y "x" is niet gelijk aan "y", x -gt y "x" is groter dan "y", x -ge y "x" is groter dan of is gelijk aan "y", x -lt y "x" is kleiner dan "y", x -le y "x" is kleiner dan of gelijk aan "y". COMPLEXE VOORWAARDEN: Geïmplementeerd met behulp van typische logische bewerkingen: ! (not) keert de waarde van de exit-code om. -o (of) komt overeen met logische "OF". -a (en) komt overeen met logische AND.

Voorwaardelijke "if"-instructie

Over het algemeen heeft de "if"-instructie de structuur

als voorwaarde dan lijst

Hier is "elif" een afkorting voor "else if" en kan samen met de volledige worden gebruikt, d.w.z. het nesten van een willekeurig aantal "if"-statements (evenals andere statements) is toegestaan. Zeker moet "lijst" in elk geval zinvol en toelaatbaar zijn in de gegeven context. De meest afgeknotte structuur van deze operator

Indien voorwaarde, lijst dan fi

als aan de voorwaarde is voldaan (in de regel is dit wie de voltooiingscode "0" heeft gekregen, dan wordt de "lijst" uitgevoerd, anders wordt deze overgeslagen. Voorbeelden. Laat "if-1" worden geschreven

Als [ $1 -gt $2 ]

dan pwd else echo $0: Hallo!

Als je dan if-1 12 11 belt, krijg je /home/sae/STUDY/SHELL en als-1 12 13 if-1: Hallo!

Telefoniste ("case")

De selectieverklaring "case" heeft de structuur:

Case string in

patroon) lijst met opdrachten;; patroon) lijst met opdrachten;; ... patroon) lijst met opdrachten;;

Hier zijn "case", "in" en "esac" hulpwoorden. Een "string" (het kan een enkel teken zijn) wordt vergeleken met een "patroon". Vervolgens wordt de "commandolijst" van de geselecteerde rij uitgevoerd. Kijk ongebruikelijk naar het einde van de selectieregels ";;", maar schrijf hier ";" het zou een vergissing zijn. Voor elk alternatief kunnen meerdere commando's worden uitgevoerd. Als deze commando's op één regel staan, dan is het teken ";" wordt gebruikt als opdrachtscheidingsteken. Meestal heeft de laatste selectieregel het patroon "*", wat "elke waarde" betekent in de "case"-structuur. Deze tekenreeks wordt geselecteerd als de waarde van de variabele (hier $z) niet overeenkomt met een van de eerder geschreven patronen die worden begrensd door de ")"-haak. De waarden worden opgezocht in de volgorde waarin ze zijn geschreven.

Opsommingslus-instructie ("voor")

De "for"-lus-operator heeft de structuur:

voor naam

do lijst met uitgevoerde opdrachten waarbij "for" een functiewoord is dat het type cyclus definieert, "do" en "done" zijn servicewoorden die de hoofdtekst van de cyclus benadrukken. Laat de opdracht "lsort" worden weergegeven door een batchbestand

Voor i in file_1 file_2 file_3 doe proc_sort $i done

In dit voorbeeld speelt de naam "i" de rol van een lusparameter. Deze naam kan worden beschouwd als een shell-variabele, waaraan de vermelde waarden (i=file_1, i=file_2, i=file_3) in volgorde worden toegewezen, en de opdracht "proc_sort" wordt in een lus uitgevoerd. De vorm "voor i in *" wordt vaak gebruikt, wat betekent "voor alle bestanden in de huidige map". Laat "proc_sort" op zijn beurt worden weergegeven door een batchbestand

Kat $1 | sorteren | tee /dev/lp > $(1)_gesorteerd

die. de opgegeven bestanden worden opeenvolgend gesorteerd, de sorteerresultaten worden afgedrukt ("/dev/lp") en verzonden naar de bestanden file_1_sorted file_2_sorted en file_3_sorted

Loop-instructie met echte voorwaarde ("while")

De "terwijl"-structuur, die ook voor berekeningen zorgt, heeft de voorkeur wanneer de exacte lijst met parameterwaarden niet vooraf bekend is of deze lijst moet worden verkregen als resultaat van berekeningen in een lus. De lusinstructie "while" heeft de structuur:

terwijl voorwaarde

do lijst met uitgevoerde opdrachten waarbij "while" een functiewoord is dat het type lus met een true-voorwaarde definieert. De lijst met opdrachten in de hoofdtekst van de loop (tussen "do" en "done") wordt herhaald totdat de voorwaarde waar is (dwz de afsluitcode van de laatste opdracht in de hoofdtekst van de loop is "0") of de lus wordt onderbroken vanaf de binnen door speciale commando's ("break", "continue", of "exit"). De eerste keer dat u de lus betreedt, moet aan de voorwaarde worden voldaan. Met de opdracht "break [n]" kunt u de lus verlaten. Als "n" afwezig is, dan is dit gelijk aan "break 1". "n" geeft het aantal geneste lussen aan dat moet worden verlaten, bijvoorbeeld "break 3" - verlaat drie geneste lussen. In tegenstelling tot het "break"-commando, beëindigt het "continue [n]"-commando alleen de uitvoering van de huidige lus en keert terug naar het BEGIN van de lus. Het kan ook met een parameter. "Doorgaan 2" betekent bijvoorbeeld naar het begin van de tweede (indien vanaf de diepte geteld) geneste lus gaan. Met de opdracht "exit [n]" kunt u de procedure helemaal verlaten met een retourcode van "0" of "n" (als de parameter "n" is opgegeven). Deze opdracht kan niet alleen in lussen worden gebruikt. Zelfs in een lineaire opeenvolging van instructies kan het bij het debuggen nuttig zijn om de uitvoering van de (huidige) berekening op een bepaald punt te stoppen.

Loop-instructie met valse voorwaarde ("tot")

De lusoperator "tot" heeft de structuur:

tot voorwaarde

do lijst met uitgevoerde opdrachten waarbij "tot" een functiewoord is dat het type lus definieert met een false voorwaarde. De lijst met opdrachten in de hoofdtekst van de lus (tussen "do" en "done") wordt herhaald totdat de voorwaarde onwaar is of de lus van binnenuit wordt onderbroken door speciale opdrachten ("break", "continue" of "exit") . De eerste keer dat u de lus opent, mag de voorwaarde niet waar zijn. Het verschil met de "while"-operator is dat de lusvoorwaarde wordt gecontroleerd op onwaarheid (voor een exitcode die niet nul is van het laatste commando van de lustekst) wordt gecontroleerd NA elke (inclusief de eerste!) uitvoering van de opdrachten van de lus lichaam. Voorbeeld.

tot valse do

lees x als [$x = 5] echo dan genoeg; pauze anders echo wat meer fi

Hier wacht het programma in een oneindige lus op de invoer van woorden (herhaling van de zin "some more" op het scherm) totdat "5" wordt ingevoerd. Daarna wordt "enough" gegeven en het "break"-commando beëindigt de uitvoering van de lus.

Lege verklaring

De lege instructie heeft de indeling

:

Niks doen. Retourneert de waarde "0".".

Shell-functies

Met deze functie kunt u een lijst met shell-commando's voorbereiden voor latere uitvoering. De functiebeschrijving ziet er als volgt uit:

Naam() (opdrachtlijst)

waarna de aanroep van de functie op naam plaatsvindt. Wanneer de functie wordt uitgevoerd, wordt er geen nieuw proces gemaakt. Het wordt uitgevoerd in de omgeving van het bijbehorende proces. De argumenten van de functie worden de positionele parameters; de naam van de functie is de nulparameter. U kunt de uitvoering van een functie onderbreken met de instructie "return [n]", waarbij (optioneel) "n" de returncode is.

Afhandeling onderbreken ("trap")

Soms is het nodig om de uitvoering van het programma te beschermen tegen onderbrekingen. De meest voorkomende onderbrekingen zijn de volgende, overeenkomend met signalen: 0 verlaten van de tolk, 1 vrijgeven (verbreken van de externe abonnee), 2 onderbreking van , 9 doden (niet onderschept), 15 einde executie. Om te beschermen tegen interrupts, is er een "trap"-opdracht, die het formaat heeft:

Trap "commandolijst" signalen

Als er onderbrekingen optreden in het systeem, waarvan de signalen met een spatie in "signalen" worden weergegeven, wordt de "lijst met opdrachten" uitgevoerd, waarna (indien de opdracht "exit" niet werd uitgevoerd in de lijst met opdrachten), de controle keert terug naar het breekpunt en de uitvoering van het batchbestand wordt voortgezet. Als u bijvoorbeeld de bestanden in "/tmp" wilt verwijderen voordat u de uitvoering van een batchbestand onderbreekt, kunt u dit doen met het "trap"-commando:

Trap "rm /tmp/* ; exit 1" 1 2 15

die voorafgaat aan andere opdrachten in het bestand. Hier, na het verwijderen van de bestanden, zal "exit" worden gedaan vanuit het batchbestand.

Chief Technology Schrijver

Iemand heeft u een SHELL-bestand ge-e-maild en u weet niet hoe u dat moet openen? Misschien heeft u een SHELL-bestand op uw computer gevonden en vraagt ​​u zich af waar het voor is? Windows kan u vertellen dat u het niet kunt openen, of in het ergste geval kunt u de bijbehorende foutmelding tegenkomen die is gekoppeld aan het SHELL-bestand.

Voordat u een SHELL-bestand kunt openen, moet u uitzoeken wat voor soort bestand de SHELL-bestandsextensie is.

tip: Foute SHELL-bestandsassociaties kunnen een symptoom zijn van onderliggende problemen met uw Windows-besturingssysteem. Deze ongeldige vermeldingen kunnen ook bijbehorende symptomen veroorzaken, zoals traag opstarten van Windows, vastlopen van de computer en andere prestatieproblemen met de pc. Daarom wordt het ten zeerste aanbevolen dat u uw Windows-register scant op ongeldige bestandsassociaties en andere problemen met betrekking tot een gefragmenteerd register.

Antwoord:

SHELL-bestanden hebben Uncommon Files, die voornamelijk wordt geassocieerd met Unknown Apple II File (te vinden op Golden Orchard Apple II CD Rom).

Andere bestandstypen kunnen ook de SHELL-bestandsextensie gebruiken. Als u andere bestandsindelingen kent die de SHELL-bestandsextensie gebruiken, neem dan contact met ons op zodat we onze informatie dienovereenkomstig kunnen bijwerken.

Hoe u uw SHELL-bestand opent:

De gemakkelijkste en snelste manier om uw SHELL-bestand te openen is door eropt te dubbelklikken. In dit geval kiest het Windows-systeem het benodigde programma om uw SHELL-bestand te openen.

In het geval dat uw SHELL-bestand niet wordt geopend, is het zeer waarschijnlijk dat u niet het vereiste applicatieprogramma op uw pc hebt geïnstalleerd om bestanden met de SHELL-extensies te bekijken of te bewerken.

Als uw pc het SHELL-bestand opent maar in het verkeerde programma, moet u de instellingen voor bestandskoppeling in uw Windows-register wijzigen. Met andere woorden, Windows associeert de SHELL-bestandsextensies met het verkeerde programma.

Optionele producten installeren - FileViewPro (Solvusoft) | | | |

SHELL Bestandsanalyse Tool™

Weet u niet zeker welk type het SHELL-bestand is? Wilt u nauwkeurige informatie krijgen over een bestand, de maker ervan en hoe het kan worden geopend?

U kunt nu meteen alle informatie krijgen die u nodig hebt over het SHELL-bestand!

De revolutionaire SHELL File Analysis Tool™ scant, analyseert en rapporteert gedetailleerde informatie over een SHELL-bestand. Ons algoritme (patent aangevraagd) zal het bestand snel analyseren en binnen enkele seconden gedetailleerde informatie verstrekken in een visueel en gemakkelijk leesbaar formaat.†

Binnen enkele seconden weet u precies wat uw SHELL-bestandstype is, de toepassing die aan het bestand is gekoppeld, de naam van de gebruiker die het bestand heeft gemaakt, de beveiligingsstatus van het bestand en andere nuttige informatie.

Om uw gratis bestandsanalyse te beginnen, sleept en plaatst u gewoon uw SHELL-bestand binnen de onderstaande stippellijnen of klikt u op Blader door mijn computer en selecteert u uw bestand. Het SHELL-bestandsanalyserapport wordt hieronder weergegeven, direct in het browservenster.

Sleep het SHELL-bestand hierheen om de analyse te starten

Bekijk mijn computer »

Controleer ook mijn bestand op virussen

Uw bestand wordt geparseerd... even geduld a.u.b.