GNU/Linux Zelfstudie
Aan de slag met GNU / Linux
Zoeken…
Hallo Wereld
Typ de volgende code in uw terminal en druk op Enter :
echo "Hello World"
Dit levert de volgende uitvoer op:
Hello World
Bestandsmanipulatie
Bestanden en mappen (een andere naam voor mappen) vormen de kern van Linux, dus het is erg belangrijk en behoorlijk krachtig om ze vanaf de opdrachtregel te kunnen maken, bekijken, verplaatsen en verwijderen. Met deze opdrachten voor bestandsmanipulatie kunt u dezelfde taken uitvoeren die een grafische bestandsverkenner zou uitvoeren.
Maak een leeg tekstbestand met de naam myFile
:
touch myFile
Hernoem myFile
naar myFirstFile
:
mv myFile myFirstFile
De inhoud van een bestand bekijken:
cat myFirstFile
Bekijk de inhoud van een bestand met pager (één scherm tegelijk):
less myFirstFile
Bekijk de eerste verschillende regels van een bestand:
head myFirstFile
Bekijk de laatste paar regels van een bestand:
tail myFirstFile
Bewerk een bestand:
vi myFirstFile
Bekijk welke bestanden zich in uw huidige werkmap bevinden:
ls
Maak een lege map met de naam myFirstDirectory
:
mkdir myFirstDirectory
Maak een map met meerdere paden: (maakt twee mappen, src en myFirstDirectory)
mkdir -p src/myFirstDirectory
Verplaats het bestand naar de map:
mv myFirstFile myFirstDirectory/
U kunt het bestand ook hernoemen:
user@linux-computer:~$ mv myFirstFile secondFileName
Wijzig de huidige werkmap in myFirstDirectory
:
cd myFirstDirectory
Verwijder een bestand:
rm myFirstFile
Ga naar de bovenliggende map (die wordt weergegeven als ..
):
cd ..
Verwijder een lege map:
rmdir myFirstDirectory
Verwijder een niet-lege map (dwz bevat bestanden en / of andere mappen):
rm -rf myFirstDirectory
Houd er rekening mee dat u bij het verwijderen van mappen ./
niet /
dat uw hele bestandssysteem wist.
Bestands- / mapgegevens
De opdracht ls
heeft verschillende opties die samen kunnen worden gebruikt om meer informatie weer te geven.
Details / Rechten
De optie l
toont de bestandsrechten, de grootte en de laatste gewijzigde datum. Dus als de hoofdmap een map met de naam test
en een bestand someFile
de opdracht:
user@linux-computer:~$ ls -l
Zou zoiets uitvoeren
-rw-r--r-- 1 user users 70 Jul 22 13:36 someFile.txt
drwxrwxrwx 2 user users 4096 Jul 21 07:18 test
De machtigingen hebben de indeling drwxrwxrwx
. Het eerste teken vertegenwoordigt het bestandstype d
als het een map is -
anders. De volgende drie rwx
zijn de machtigingen die de gebruiker voor het bestand heeft, de volgende drie zijn de machtigingen die de groep voor het bestand heeft en de laatste drie zijn de machtigingen die iedereen voor het bestand heeft.
De r
van rwx
staat voor als een bestand kan worden gelezen, de w
staat voor als het bestand kan worden gewijzigd, en de x
staat voor als het bestand kan worden uitgevoerd. Als er geen toestemming wordt verleend, staat a -
in plaats van r
, w
of x
.
Dus van bovenaf kan de user
someFile.txt
lezen en wijzigen someFile.txt
maar de groep heeft alleen alleen-lezen rechten.
Om rechten te wijzigen kunt u de opdracht chmod ### fileName
gebruiken als u sudo-rechten hebt. r
wordt voorgesteld door een waarde van 4, w
wordt voorgesteld door 2 en x
wordt voorgesteld door een 1. Dus als je alleen de inhoud van de test
wilt kunnen wijzigen
Owner rwx = 4+2+1 = 7
Group r-x = 4+0+1 = 5
Other r-x = 4+0+1 = 5
Dus het hele commando is
chmod 755 test
Nu zou het doen van een ls -l
zoiets als laten zien
drwxr-xr-x 2 user users 4096 Jul 21 07:20 test
Leesbare grootte
In combinatie met de l
optie toont de h
optie bestandsgroottes die voor mensen leesbaar zijn. Rennen
user@linux-computer:~$ ls -lh
Zou uitvoeren:
total 4166
-rw-r--r-- 1 user users 70 Jul 22 13:36 someFile.txt
drwxrwxrwx 2 user users 4.0K Jul 21 07:18 test
Verborgen
Gebruik de optie a
om verborgen bestanden te bekijken. Bijvoorbeeld
user@linux-computer:~$ ls -a
Misschien lijst
.profile
someFile.txt
test
Totale mapgrootte
Gebruik de optie s
om de grootte van de huidige map te bekijken (de optie h
kan ook worden gebruikt om de grootte leesbaarder te maken).
user@linux-computer:~$ ls -s
uitgangen
total 4166
someFile.txt test
Recursieve weergave
Laten we zeggen dat test
directory had een file anotherFile
en je wilde om het te zien vanuit de hoofdmap, kunt u gebruik maken van de R
optie die de recursieve boom zou noemen.
user@linux-computer:~$ ls -R
uitgangen
.:
someFile.txt test
./test:
anotherFile
Basis Linux-hulpprogramma's
Linux heeft een opdracht voor bijna alle taken en de meeste zijn intuïtief en gemakkelijk te interpreteren.
Hulp krijgen in Linux
Commando | Usability |
---|---|
man <name> | Lees de handleidingpagina van <naam>. |
man <section> <name> | Lees de handleidingpagina van <naam>, gerelateerd aan de gegeven sectie. |
man -k <editor> | Voer alle software uit waarvan de man-pagina's het trefwoord <editor> bevatten. |
man -K <keyword> | Voert alle man-pagina's uit met daarin <keyword>. |
apropos <editor> | Voer alle toepassingen uit waarvan de beschrijving van één regel overeenkomt met de woordeditor . Gebruik deze opdracht als u de naam van de toepassing niet kunt oproepen . |
help | In Bash shell geeft dit de lijst weer met alle beschikbare bash-opdrachten. |
help <name> | In Bash shell geeft dit de informatie weer over de opdracht <name> bash. |
info <name> | Bekijk alle informatie over <naam>. |
dpkg -l | Een lijst uitvoeren van alle geïnstalleerde pakketten op een Debian-systeem. |
dpkg -L packageName | Toont de geïnstalleerde bestanden en paddetails voor een bepaald pakket op Debian. |
dpkg -l | grep -i <edit> | Retourneer alle .deb geïnstalleerde pakketten met <edit> ongeacht de cases. |
less /var/lib/dpkg/available | Retourbeschrijvingen van alle beschikbare pakketten. |
whatis vim | Geef een eenregelige beschrijving van vim. |
<command-name> --help | Toon gebruiksinformatie over de <toolnaam>. Soms werkt command -h ook, maar niet voor alle commando's. |
Gebruikersidentificatie en wie is wie in Linux-wereld
Commando | Usability |
---|---|
hostname | Hostnaam van het systeem weergeven. |
hostname -f | Toont de volledig gekwalificeerde domeinnaam (FQDN) van het systeem. |
passwd | Verander wachtwoord van huidige gebruiker. |
whoami | Gebruikersnaam van de gebruikers die zijn ingelogd op de terminal. |
who | Lijst met alle gebruikers die momenteel als gebruiker zijn aangemeld. |
w | Toon huidige systeemstatus, tijd, duur, lijst van gebruikers die momenteel zijn ingelogd op het systeem en andere gebruikersinformatie. |
last | Wie heeft het systeem onlangs gebruikt. |
last root | Wanneer is root voor het laatst als gebruiker ingelogd. |
lastb | Toont alle slechte inlogpogingen in het systeem. |
chmod | Machtigingen wijzigen - lezen, schrijven, uitvoeren van een bestand of map. |
Proces gerelateerde informatie
Commando | Usability |
---|---|
top | Maak een lijst van alle processen gesorteerd op hun huidige gebruik van systeembronnen. Toont een continu bijgewerkte weergave van processen (standaard 3 seconden). Gebruik de q toets om naar boven te gaan. |
ps | Lijstprocessen die momenteel worden uitgevoerd in de huidige shell-sessie |
ps -u root | Maak een lijst van alle processen en opdrachten die root uitvoert |
ps aux | Maak een lijst van alle processen door alle gebruikers op het huidige systeem |
Bestandsbeheeropdrachten
Linux gebruikt enkele conventies voor huidige en bovenliggende mappen. Dit kan een beetje verwarrend zijn voor beginners.
Wanneer u zich in een terminal in Linux bevindt, bevindt u zich in wat de huidige werkmap wordt genoemd. Vaak toont uw opdrachtprompt de volledige werkmap of alleen het laatste deel van die map. Uw prompt kan er als volgt uitzien:
user@host ~/somedir $
user@host somedir $
user@host /home/user/somedir $
waarin staat dat je huidige werkmap /home/user/somedir
.
In Linux ..
staat voor de bovenliggende map en .
vertegenwoordigt de huidige map.
Als de huidige map /home/user/somedir
, zal cd ../somedir
niet wijzigen.
In de onderstaande tabel staan enkele van de meest gebruikte opdrachten voor bestandsbeheer
Directory-navigatie
Commando | Nut |
---|---|
pwd | Download het volledige pad van de huidige werkmap. |
cd - | Navigeer naar de laatste map waarin u werkte. |
cd ~ of gewoon cd | Navigeer naar de thuismap van de huidige gebruiker. |
cd .. | Ga naar de bovenliggende map van de huidige map (let op de ruimte tussen cd en .. ) |
Bestanden in een map weergeven
Commando | Nut |
---|---|
ls -l | Maak een lijst van de bestanden en mappen in de huidige map in lange (tabel) indeling (het wordt aanbevolen om -l met ls te gebruiken voor een betere leesbaarheid). |
ls -ld dir-name | Lijst informatie over de map dir-name plaats van de inhoud. |
ls -a | Maak een lijst van alle bestanden inclusief de verborgen (Bestandsnamen die beginnen met a . Zijn verborgen bestanden in Linux). |
ls -F | Voegt een symbool toe aan het einde van een bestandsnaam om het type aan te geven ( * betekent uitvoerbaar, / betekent directory, @ betekent symbolische link, = betekent socket, | betekent genaamd pipe, > betekent deur). |
ls -lt | Toon de bestanden gesorteerd op laatst gewijzigde tijd met de meest recent gewijzigde bestanden bovenaan (onthoud -l optie biedt het lange formaat dat een betere leesbaarheid heeft). |
ls -lh | Geef de bestandsgrootten weer in een leesbaar formaat. |
ls -lR | Toont alle submappen recursief. |
tree | Genereert een boomweergave van het bestandssysteem beginnend vanuit de huidige map. |
Bestand / map maken, kopiëren en verwijderen
Commando | Nut |
---|---|
cp -p source destination | Kopieert het bestand van source naar bestemming . -p staat voor conservering. Het behoudt de originele attributen van het bestand tijdens het kopiëren, zoals bestandseigenaar, tijdstempel, groep, machtigingen etc. |
cp -R source_dir destination_dir | Zal recursief de bronmap naar de opgegeven bestemming kopiëren. |
mv file1 file2 | In Linux is er geen opdracht om de naam te wijzigen . Daarom verplaatst / hernoemt mv bestand1 naar bestand2. |
rm -i filename | Vraagt u vóór elke verwijdering van het bestand om bevestiging. ALS U EEN NIEUWE GEBRUIKER VAN LINUX COMMAND LINE BENT, MOET U ALTIJD rm -i GEBRUIKEN. U kunt meerdere bestanden opgeven. |
rm -R dir-name | Zal de map dir-name recursief verwijderen. |
rm -rf dir-name | Zal de map dir recursief verwijderen, niet-bestaande bestanden negeren en nooit om iets vragen. Wees voorzichtig met het gebruik van dit commando! U kunt meerdere mappen opgeven. |
rmdir dir-name | Zal de map dir-name , als deze leeg is. Met deze opdracht kunnen alleen lege mappen worden verwijderd. |
mkdir dir-name | Maak een dir-name . |
mkdir -p dir-name/dir-name | Maak een directoryhiërarchie. Maak zo nodig bovenliggende mappen aan, als ze niet bestaan. U kunt meerdere mappen opgeven. |
touch filename | Maak een filename , als deze niet bestaat, wijzig anders de tijdstempel van het bestand naar de huidige tijd. |
Bestands- / mapmachtigingen en groepen
Commando | Nut |
---|---|
chmod <specification> filename | Wijzig de bestandsrechten. Specificaties = u gebruikers, g groep, o anderzijds + voeg toestemming - verwijderen, r gelezen, w write, x voeren. |
chmod -R <specification> dir-name | Wijzig de machtigingen van een map recursief. Gebruik deze opdracht om de machtiging van een map en alles in die map te wijzigen. |
chmod go=+r myfile | Voeg leesrechten toe voor de eigenaar en de groep. |
chmod a +rwx myfile | Laat alle gebruikers myfile lezen, schrijven of uitvoeren. |
chmod go -r myfile | Verwijder leesrechten van de groep en anderen. |
chown owner1 filename | Wijzig het eigendom van een bestand in gebruiker owner1 . |
chgrp grp_owner filename | Wijzig primair grp_owner van filename in groep grp_owner . |
chgrp -R grp_owner dir-name | Wijzig het primaire grp_owner van de map dir-name recursief in grp_owner . Gebruik deze opdracht om het groepseigendom van een map en alles in die map te wijzigen. |
Handige snelkoppelingen
De terminal gebruiken
De voorbeelden in dit document gaan ervan uit dat u een POSIX-compatibele (zoals bash , sh , zsh , ksh ) shell gebruikt.
Grote delen van GNU / Linux-functionaliteit worden bereikt met behulp van de terminal. De meeste Linux-distributies bevatten terminal-emulators waarmee gebruikers vanuit hun desktopomgeving met een shell kunnen communiceren. Een shell is een opdrachtregelinterpreter die door de gebruiker ingevoerde opdrachten uitvoert. Bash (Bourne Again SHell) is een veel voorkomende standaardshell bij veel Linux-distributies en is de standaardshell voor macOS.
Deze snelkoppelingen werken als u Bash gebruikt met de emacs- sneltoetsen (standaard ingesteld):
Terminal openen
- Ctrl + Alt + T of Super + T
Cursor beweging
- Ctrl + A Ga naar het begin van de regel waarop u aan het typen bent.
- Ctrl + E Ga naar het einde van de regel waarop u aan het typen bent.
- Ctrl + XX Ga tussen het begin van de regel en de huidige positie van de cursor.
- Alt + F Cursor één woord vooruit verplaatsen op de huidige regel.
- Alt + B Verplaats cursor één woord achteruit op de huidige regel.
- Ctrl + F Verplaats cursor één teken vooruit op de huidige regel.
- Ctrl + B Verplaats cursor één teken achteruit op de huidige regel.
Tekstmanipulatie
- Ctrl + U Knip de lijn vanaf de huidige positie tot het begin van de lijn en voeg deze toe aan het klembord. Als u aan het einde van de lijn bent, snijdt u de hele lijn af.
- Ctrl + K Knip de lijn vanaf de huidige positie tot het einde van de lijn en voeg deze toe aan het klembord. Als u aan het begin van de lijn staat, snijdt u de hele lijn af.
- Ctrl + W Verwijder het woord vóór de cursor en voeg het toe aan het klembord.
- Ctrl + Y Plak het laatste van het klembord dat u recent hebt geknipt (maak de laatste verwijdering ongedaan op de huidige cursorpositie).
- Alt + T Wissel de laatste twee woorden voor de cursor.
- Alt + L Maak kleine letters van cursor tot einde van woord.
- Alt + U Maak hoofdletters van cursor tot einde van woord.
- Alt + C Hoofdlettergebruik tot einde van woord beginnend bij cursor (hele woord als cursor aan begin van woord staat).
- Alt + D Wissen tot einde van woord dat begint bij cursor (hele woord als cursor aan begin van woord staat).
- Alt +. Drukt het laatste woord af dat in de vorige opdracht is geschreven.
- Ctrl + T Wissel de laatste twee tekens voor de cursor.
Geschiedenis toegang
- Ctrl + R Hiermee kunt u door eerder gebruikte opdrachten zoeken.
- Ctrl + G Verlaat de zoekmodus voor geschiedenis zonder een opdracht uit te voeren.
- Ctrl + J Hiermee kunt u de huidige overeenkomende opdracht naar de opdrachtregel kopiëren zonder deze uit te voeren, zodat u wijzigingen kunt aanbrengen voordat u de opdracht uitvoert.
- Alt + R Zet wijzigingen terug in een opdracht die u uit uw geschiedenis hebt gehaald, als u deze hebt bewerkt.
- Ctrl + P Toont het laatst uitgevoerde commando, dwz loop terug door de commandogeschiedenis (vergelijkbaar met pijl omhoog).
- Ctrl + N Toont het volgende uitgevoerde commando, dwz loop vooruit door de commandogeschiedenis (vergelijkbaar met pijl-omlaag).
Terminal controle
- Ctrl + L Wist het scherm, vergelijkbaar met het commando wissen.
- Ctrl + S Alle uitvoer naar het scherm stoppen. Dit is handig bij het uitvoeren van opdrachten met veel lange uitvoer. Maar dit stopt het lopende commando niet.
- Ctrl + Q Hervat de uitvoer naar het scherm na het stoppen met Ctrl + S.
- Ctrl + C Beëindig het huidige actieve proces en retourneer de prompt.
- Ctrl + D Log uit bij de huidige shell-sessie, vergelijkbaar met de opdracht exit of logout. In sommige opdrachten fungeert het als het einde van een bestand om aan te geven dat het einde van een bestand is bereikt.
- Ctrl + Z Onderbreekt (pauze) momenteel uitgevoerd voorgrondproces, dat shell-prompt retourneert. U kunt vervolgens de opdracht
bg
gebruiken om dat proces op de achtergrond uit te voeren. Gebruik het commandofg
om dat proces opnieuw naar de voorgrond te brengen. Gebruik de opdrachtjobs
om alle achtergrondprocessen te bekijken. - Tab Bestanden en mapnamen automatisch aanvullen.
- Tab Tab Toont alle mogelijkheden, wanneer getypte tekens niet uniek overeenkomen met een bestands- of mapnaam.
Speciale tekens
- Ctrl + H Hetzelfde als Backspace.
- Ctrl + J Hetzelfde als Return (historisch regelinvoer).
- Ctrl + M Hetzelfde als Return (historisch Carriage Return).
- Ctrl + I Hetzelfde als Tab.
- Ctrl + G Bell Character.
- Ctrl + @ nul karakter.
- Esc Deadkey equivalent aan de Alt- modificator.
Terminal sluiten
- Ctrl + Shift + W Om het terminaltabblad te sluiten.
- Ctrl + Shift + Q Om de volledige terminal te sluiten.
Als alternatief kunt u overschakelen naar de vi- keybindings in bash met behulp van set -o vi
. Gebruik set -o emacs
om terug te schakelen naar de emacs- toetsverbindingen.
Zoeken naar bestanden op patronen in naam / inhoud
Een veel voorkomende en taak van iemand die de Linux-opdrachtregel (shell) gebruikt, is om te zoeken naar bestanden / mappen met een bepaalde naam of die bepaalde tekst bevatten. Er zijn 2 opdrachten waarmee u zich vertrouwd moet maken om dit te bereiken:
Zoek bestanden op naam
find /var/www -name '*.css'
Hiermee wordt het volledige pad / de bestandsnaam afgedrukt naar alle bestanden onder /var/www
die eindigen op .css
. Voorbeelduitgang:
/var/www/html/text-cursor.css
/var/www/html/style.css
Voor meer informatie:
man find
Zoek bestanden met tekst
grep font /var/www/html/style.css
Hiermee worden alle lijnen die het af te drukken font
in het opgegeven bestand. Voorbeelduitgang:
font-weight: bold;
font-family: monospace;
Een ander voorbeeld:
grep font /var/www/html/
Dit werkt niet zoals je had gehoopt. Jij krijgt:
grep: /var/www/html/: Is a directory
Je moet recursief grep
om het te laten werken, met behulp van de optie -R
:
grep -R font /var/www/html/
Hé leuk! Bekijk de output van deze:
/var/www/html/admin/index.php: echo '<font color=red><b>Error: no dice</b></font><br/>';
/var/www/html/admin/index.php: echo '<font color=red><b>Error: try again</b></font><br/>';
/var/www/html/style.css: font-weight: bold;
/var/www/html/style.css: font-family: monospace;
Merk op dat wanneer grep
met meerdere bestanden overeenkomt, de overeenkomende regels worden voorafgegaan door de bestandsnamen. Je kunt de optie -h
gebruiken om daar vanaf te komen, als je wilt.
Voor meer informatie:
man grep