GNU/LinuxAan de slag met GNU / Linux


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 commando fg om dat proces opnieuw naar de voorgrond te brengen. Gebruik de opdracht jobs 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.

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.

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
 

Hallo Wereld

Typ de volgende code in uw terminal en druk op Enter :

echo "Hello World"
 

Dit levert de volgende uitvoer op:

Hello World
 

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