In dit artikel leg ik uit hoe u de ingebouwde Terminal-opdrachten kunt gebruiken om informatie te geven over sommige opdrachten en wat ze doen.
Ik geef ook voorbeelden om het proces te illustreren.
De opdrachtregeltool is krachtig. Er bestaan hulpmiddelen die een vervelende taak in een Graphical User Interface (GUI) kunnen overnemen en omzetten in een taak die een paar seconden duurt. Het verwijderen van de laatste vier regels in elke rij van een groot bestand zou een langdurig proces zijn in een GUI-applicatie. Het kan echter worden geautomatiseerd in de opdrachtregel.
De meest voorkomende manieren om een Terminal-venster te openen in Ubuntu Linux zijn:
Er zijn veel opdrachten die gekoppeld zijn aan de Terminal Shell in Ubuntu Linux. In het onderstaande artikel vindt u de meest gebruikte, onder de groepen die ze beïnvloeden.
Er zijn drie hoofdopdrachten die we gebruiken om alle informatie te verstrekken die nodig is om de verschillende terminalopdrachten te gebruiken.
Met de opdracht man wordt de handleiding weergegeven voor elke opdracht die wordt gebruikt in de Terminal.
De meeste shell-opdrachten accepteren verschillende opties. Voor informatie over een opdracht en een lijst met de beschikbare opties gebruikt u de man
- afkorting voor handmatige opdracht. Geef de naam van de opdracht waarover u meer wilt vinden als argument. Dat is de opdracht waarop de man
opdracht werkt.
Voorbeeld: Als u de opdracht man who
invoert, wordt de volgende uitvoer weergegeven.
WHO(1) User Commands WHO(1)
NAME
who - show who is logged on
SYNOPSIS
who [OPTION}... [ FILE | ARG1 ARG2 ]
DESCRIPTION
-a, --all
same as -b -d --login -p -r -t -T -u
-b, --boot
time of last system boot
-d, --dead
print dead processes
-H, --heading
print line of column headings
-i, --idle
add idle time as HOURS:MINUTES, . or old (deprecated, use -u)
-l, --login
print system login processes
--lookup
attempt to canonicalize hostnames via DNS
-m, only hostname and user associated with stdin
Manual page who(1) line 1
Veel van de handleidingen zijn meerdere schermen lang. Gebruik de cursor/ARROW
toetsen of de toetsen Page Up/Page Down om door de tekst te navigeren. De spatiebalktoets toont de volgende regel tekst. Als u op de q-toets drukt, wordt de handleiding afgesloten en keert u terug naar de shell.
We kunnen op de man-pagina zien dat we de -a
optie kunnen gebruiken om meer informatie over de actieve gebruikerssessies weer te geven.
user@3[user]$ who -a
|
|
|
|
Nov 14 13:47 |
|
10 |
id=si |
term=0 |
exit=0 |
|
|
|
system boot |
Nov 14 13:47 |
|
|
|
|
|
|
|
|
run-level 5 |
Nov 14 13:47 |
|
|
Last=S |
|
|
|
|
|
|
Nov 14 13:47 |
|
835 |
id=15 |
term=0 |
exit=0 |
LOGIN |
|
|
tty1 |
Nov 14 13:47 |
|
958 |
id=1 |
|
|
root |
|
- |
tty2 |
Nov 14 19:15 |
00:19 |
959 |
|
|
|
user |
|
- |
tty3 |
Nov 14 19:28 |
00:06 |
960 |
|
|
|
LOGIN |
|
|
tty4 |
Nov 14 13:47 |
|
961 |
id=4 |
|
|
LOGIN |
|
|
tty5 |
Nov 14 13:47 |
|
962 |
id=5 |
|
|
LOGIN |
|
|
tty6 |
Nov 14 13:47 |
|
963 |
id=6 |
|
|
user |
|
? |
:0 |
Nov 14 13:47 |
? |
965 |
|
|
|
|
|
|
pts/3 |
Nov 14 16:29 |
|
1746 |
id=/3 |
term=0 |
exit=0 |
user@3[user]$
Het leest ook help-bestanden voor programma's, de man
opdracht kan ook informatie geven over shells, functies en bibliotheken.
Als u niet zeker weet hoe u een specifieke opdracht moet gebruiken, voert u de opdracht uit met de -h
of –help
switches. U ziet gebruiksinformatie en een lijst met opties die u met de opdracht kunt gebruiken.
Voorbeeld: Als u wilt weten hoe u de wget
opdracht, typ wget –help
of wget -h
.
User@Ubuntu@#$ wget --help
GNU Wget 1.12, a non-interactive network retriever.
Usage: wget [OPTION]... [URL]...
Mandatory arguments to long options are mandatory for short options t
oo.
Startup:
-V, --version display the version of Wget and exit.
-h, --help print this help.
-b, --background go to background after startup.
-e, --execute=COMMAND execute a '.wgetrc' -style command.
Logging and input file:
Hiermee wordt vaak een grote hoeveelheid informatie naar de Terminal gestuurd. Het kan lastig zijn om er doorheen te bladeren. Als u de uitvoer eenvoudiger wilt lezen, kunt pipe
u dit doen met de opdracht less . Hiermee kunt u er doorheen bladeren met de cursor/pijl-toetsen op het toetsenbord.
Voorbeeld: wget -help | less
GNU Wget 1.12, a non-interactive network retriever.
Usage: wget [OPTION]... [URL]...
Mandatory arguments to long options are mandatory for short options t
oo.
Startup:
-V, --version display the version of Wget and exit.
-h, --help print this help.
-b, --background go to background after startup.
-e, --execute=COMMAND execute a '.wgetrc' -style command.
Logging and input file:
-o, --output-file=FILE log messages to FILE.
:
Druk op q om het hulpprogramma less te sluiten wanneer u klaar bent.
Als u een specifieke optie wilt vinden, kunt pipe
u de uitvoer via de grep
opdracht uitvoeren. (Bijvoorbeeld: Gebruik de volgende opdracht om te zoeken naar opties die het woord bevatten proxy.
)
wget -help | grep proxy
User@ubuntu:~$ wget --help | grep proxy
--no-proxy explicitly turn off proxy.
--proxy-user=USER set USER as proxy username.
--proxy-password=PASS set PASS as proxy password.
User@Ubuntu:~$
Sommige opdrachten worden ook in het info
systeem gedocumenteerd. De informatie hier is een aanvulling op wat de man
opdracht weergeeft.
Voorbeeld: Voer de opdracht info ls,
in en de volgende uitvoer wordt weergegeven.
[support@support]$" info ls
U kunt nu een handleiding weergeven met belangrijke informatie over de ls
opdracht.
File: coreutils.info, Node: ls invocation, Next: dir invocation, Up: Directory listing
'ls': List directory contents
=============================
The 'ls' program lists information about files (of any type,
including directories). Options and file arguments can be intermixed
arbitrarily, as usual.
For non-option command-line arguments that are directories, by
default 'ls' lists the contents of directories, not recursively, and
omitting files with name beginning with '.'. For other non-option
arguments, be default 'ls' lists just the file name. If no non-option
argument is specified, 'ls' operates on the current directory, acting
as if it had been invoked with a single argument of '.'.
By default, the output is sorted alphabetically, according to the
locale settings in effect. (1) If standard output is a terminal, the
output is in columns (sorted vertically) and control characters are
output as question marks; otherwise, the output is listed one per line
and control characters are output as-is.
--zz-Info: (coreutils.info.gz)ls invocation, 48 lines --Top------------------
Welcome to info version 4.3 Type C-h for help, m for menu item.
U kunt door de pagina's bladeren door op de spatiebalktoets te drukken of door de cursor/ARROW
toetsen te gebruiken.
help
, druk op Hquit
U kunt vrijwel alles doen in een terminal, wat u ook vanuit een GUI zou doen.
Zoals eerder gezegd, werden veel opdrachten eerst ontworpen om in de terminal te werken en vervolgens werd er een GUI bovenop gezet. Dat is de reden waarom sommige GUI's onhandig aanvoelen - in eerste instantie waren ze een bijzaak, aangezien ze in de meeste Linux Server-builds niet worden meegenomen.
De standaardlocatie voor uw Terminal om deze te openen vanuit het menu is in uw homedirectory, Bekend als ~
U kunt uw huidige directory vinden door de .
operator. De meeste opdrachten wanneer ze op de huidige map worden uitgevoerd, werken op opdrachten, locaties en bestanden, en deze zijn hoofdlettergevoelig. /home
is niet hetzelfde als /HOME
of/Home
.
Gebruik de TAB-toets om bestandsnamen te voltooien als u een lange drivertitel hebt. driver-128947232jaseu.sh
bijvoorbeeld, typ dri
en voer de rest in. Als u niet over twee namen begint dri
en als u dat wel doet, voegt u een ander teken toe om het te maken en probeert u het driv
opnieuw. Controleer of het automatisch aanvullen overeenkomt met wat u wilt zien.
Vrijwel elke opdracht kan volledig worden gelezen met behulp van de man
pagina of door de eerste opdracht te -h
typen of --help
na het schrijven van de eerste opdracht. Deze syntaxis is ofwelman command_name
. command_name -h
command_name --help
Om nog meer informatie te krijgen, kunt u info gebruiken. U kunt een opdracht zoeken met behulp van info command_name
. Het merendeel van deze opdrachten maken deel uit van het coreutils-pakket. U kunt ook aanroeping info coreutils command_name
vinden info
waarbij de opdracht naar replaces command_name
heeft gezocht.
Vrijwel elke opdracht kan stap voor stap precies aangeven wat er gebeurt. Dit is meestal de -v
of --verbose
.
U kunt meerdere opdrachtvlaggen tegelijk voor een opdracht opgeven om meer informatie te krijgen. Zie het ls -al
onderstaande voorbeeld.
Opdrachtnamen zijn niet altijd duidelijk vanwege ruimtebeperkingen in de oude dagen van UNIX dat ze werden verkort en deze conventies vastliepen.
cd
- Brengt u terug naar uw homedirectory, net als bij cd ~
cd..
- Brengt u één map terug. /home/user/Desktop
Vanaf het begin kunt cd..
u beginnen met/home/user
. Dit kan worden uitgebreid naar cd ../../
waar u twee mappen terugzet naar /home
.
cd foldername/
- Verplaatst u vooruit naar de gegeven map vanuit uw huidige map.
/
is een belangrijke omissie. Als ik binnen /home/user
ben en ik wil. Desktop
Ik moet typen cd Desktop/
zonder de /
bovenstaande Desktop
. Als u daarvoor typt /
, plaatst u ons in de hoofdmap van het bestandssysteem, wat niet werkt.
cd /some/other/path
- Hiermee gaat u naar het opgegeven mappad. Als u het juiste pad hebt. Vergeet niet dat u de TAB
sleutel kunt gebruiken om automatisch tecomplete.
ls
- Geeft alle bestanden in de huidige map weer.
ls -l
- Biedt een langere lijst, inclusief eigenaars, rechten, grootte en wijzigingsdatum.
ls -a
- Toont de verborgen bestanden en mappen en de normale lijst.
ls -al
- Combineert twee opties om zowel de verborgen bestanden en mappen weer te geven en dit in de lange indeling.
ls -h
- Toont bestandsgrootten in door mensen leesbare bestandsgrootten KB, MB, GB,
in plaats van bytes. Het wordt meestal gebruikt met de -l
vlag.
U kunt bestanden weergeven in mappen waarin u niet eens bent. Als ik me bevindt /home/user/Desktop
en ik een bestand wil weergeven in /home/user
, kan ik doen wat ls ../
de bestanden weergeeft met één map terug.
cp file /path/to/folder
- Kopieert het opgegeven bestand naar het opgegeven pad.
cp -r folder /path/to/folder
- Kopieert de inhoud van de map herhaaldelijk naar een andere map.
cp *.extension /path/to/folder
- Kopieert de bestanden die overeenkomen met de opgegeven extensie naar de nieuwe map. Als u alle .doc-bestanden wilt kopiëren, wordt deze en cp *.doc /path/to/folder
moet de map bestaan.
cp name* /path/to/folder
- Kopieert alle bestanden die beginnen met name
de opgegeven map. Als u alle bestanden wilt kopiëren die beginnen met example
, wordt cp example* /path/to/folder
deze en moet de map al bestaan.
De syntaxis van mv
is vergelijkbaar met het bovenstaande voorbeeld met cp
uitzondering van voorbeeld 2. mv
neemt de -r
vlag niet aan, omdat het verplaatsen van een map ook de inhoud ervan verplaatst. De syntaxis is niet in alle gevallen exact, maar werkt met de bovenstaande voorbeelden. Raadpleeg uw man-pagina's voor meer informatie.
Bestanden verwijderen met behulp van rm
is permanent. De prullenbak wordt niet gebruikt. Gebruik dit voorzichtig en zorg ervoor dat u precies verwijdert wat u wilt, voordat u op de Enter
toets drukt. Als u uw verwijderingsopdrachten te ingewikkeld maakt, eindigt het nooit goed.
rm file
- Verwijder dat specifieke bestand uit de computer.
rm -r folder
- Verwijder die specifieke map uit de computer.
rm -rf folder
- Verwijdert die specifieke map krachtig uit de computer. Deze opdracht kan uw configuratie verstoren als deze onjuist wordt gebruikt.
U kunt bestanden bewerken met behulp van nano
een terminal om snelle en ruwe bestanden tot volledige configuraties uit te voeren. Het kan handig zijn, maar het verwerkt platte tekstbestanden en programmeerbestanden, zodat dingen zoals Microsoft Word-documenten niet correct worden geopend.
Als de hoofdmap eigenaar is van een bestand, kan een gewone gebruiker het niet bewerken. nano
moet worden voorafgegaan door sudo
; om wijzigingen op te slaan. Het wordt anders geopend in de modus alleen-lezen.
nano newfile.whatever
van de opgegeven naam en opent deze om te bewerken.
nano existing_file
- hiermee opent u het bestaande bestand voor bewerking.
Vanuit nano
Sla het bestand op door de CTRL+O
toetsen tegelijk in te drukken en de naam te wijzigen of op de Enter
toets te drukken om dezelfde naam te behouden. Hiermee wordt het bestand opgeslagen.
Sluit nano
af met behulp van de CTRL+X
toetsen samen. Als u niet-opgeslagen wijzigingen hebt, wordt u gevraagd of u ze wilt opslaan.
mkdir folder_name
- Maakt de map met de opgegeven naam
mkdir -p /path/to/folder/name
- Maakt elke map waar dat nodig is. Als u een map /home/user/1stfolder/2ndfolder
wilt maken en alleen /home/user
bestaat, maakt u mkdir -p
zowel directory's 1stfolder,
2ndfolder
als .
ps aux
- Geeft alle processen weer die in detail worden uitgevoerd op de computer. Dit omvat de gebruiker, proces-ID PID,
en de naam van het proces. Hiermee kunt u de proceslijst bekijken en indien nodig kunt u onnodige of vastgelopen processen beëindigen.
kill PID
- PID is een nummer dat verwijst naar het foutieve proces. U moet de PID verkrijgen van een opdracht zoals ps aux
. Als een proces weigert te vervallen, kunt u ook opgeven kill -9 PID
welke procedure het proces op welke manier dan ook moet beëindigen.
killall program
- Killall
hiermee by name
worden alle instanties van de listed program
. Als er bijvoorbeeld 3 Firefox-internetbrowsersessies zijn geopend, killall Firefox
doet u dat precies, beëindigt u alle Firefox-sessies. kill
zou de opgegeven PID nemen van het beledigende Firefox-proces dat u alleen wilt beëindigen en beëindigen.
xkill
is een GUI-manier om op vensters te klikken en deze te beëindigen. Als u een xkill
muis typt, wordt een pictogram met kruiskopjes weergegeven en wordt het volgende venster waarin wordt geklikt, geannuleerd.
Pipes
worden weergegeven als een straight bar,
ander bekend als de |
sleutel.
Het is een toets die zelden wordt gebruikt in Windows, maar wordt vaak aangetroffen boven de backslash-toets.
Deze worden gebruikt om opdrachten aan elkaar te koppelen. Pipes
nemen de uitvoer van één opdracht en leiden deze om als invoer voor een tweede opdracht wanneer ze aan elkaar zijn gekoppeld.
Raadpleeg online bronnen voor meer informatie over pipes
en het gebruik ervan, omdat er volumes over zijn geschreven.
>
wordt gebruikt voor de inhoud van bestaande bestanden door ze te overwrite
vervangen door de uitvoer van de nieuwe opdracht.
>>
wordt gebruikt voor append
informatie over de bestaande bestanden. Dit is handig voor het loggen van acties.
Example:
ps aux > processes.log
stuurt de uitvoer van het bestand naar het bestand processes.log
voor het weergeven van ps aux
de opdrachtuitvoer in een teksteditor en overschrijft de huidige inhoud van het bestand.
tee
wordt samen met een |
opdracht gebruikt om de uitvoer van de opdracht op te nemen en deze ergens anders naartoe te sturen. Dit is handig als er fouten zijn die u mist. Op deze manier wordt alles wat er op het scherm gebeurt ook vastgelegd in een bestand.
Voorbeeld: dmesg
| tee boot.txt
voert u de opdracht dmesg
uit die de initiële opstartinformatie weergeeft. De |
uitvoer wordt dmesg
verzonden naar tee
, die vervolgens zijn werk doet door deze naar de terminal en het logboekbestand boot.txt
te verzenden.
Wilt u een bestand in de huidige map uitvoeren nadat het uitvoerbaar is gemarkeerd? De ./
operator kan het bestand als een normale gebruiker uitvoeren, mits u geen root-rechten nodig hebt. ./
betekent letterlijk dat in the current directory
het niet werkt op bestanden buiten de huidige map.
Als u een bestand wilt uitvoeren dat niet in de huidige map staat, moet u het pad naar het juiste actieve programma doorgeven. Als het een python-programma is, dat is python /path/to/file
het en als het een shell-bestand is, is sh /path/to/file
het als voorbeeld. Er zijn andere programma's, maar dit zijn de meest voorkomende programma's.
Als u een bestand met rootrechten wilt uitvoeren omdat u dit hebt ontvangen operation not permitted?
. U moet de opdracht voorvoegsel geven met sudo
. Net als bij het bovenstaande voorbeeld, sudo python /path/to/file
voert u het script uit met root-rechten.
Als u een GUI-programma vanaf de terminal wilt uitvoeren, typt u de naam case sensitive!
van het programma en wordt het gestart. Hierdoor is de huidige terminal onbruikbaar. Als u de terminal sluit terwijl het programma is geopend, wordt het programma ook verbroken. Een betere manier is om het programma op de achtergrond te zetten, het woord exit
te gebruiken program_name
en vervolgens te typen in de terminal om het te sluiten en het proces gaande te houden.
Als u een GUI-programma wilt uitvoeren met rootrechten vanaf de terminal, moet u het voorvoegsel al gksudo
dan gksu
niet sudo
voorvoegsel gebruiken. Het gebruik sudo
van GUI-applicaties is een slechte gewoonte en moet worden vermeden.
sudo
Gebruik not
alleen omdat er iets wordt weergegeven Operation not permitted.
Houd er rekening mee dat u computers kunt destroy
gebruiken door opdrachten op de verkeerde plaats uit te voeren met root-rechten. Zorg ervoor dat uw bestanden afkomstig zijn van betrouwbare bronnen.
Weet u niet in welke map u zich bevindt? Typ pwd
om de werkmap af te drukken.
Wilt u uw schijfruimte berekenen? df -h
kan een snelle schatting geven.
Wilt u de grootte van een map of bestand berekenen? du -cksh target_name
doet precies dat. Wilt u de grootte van de huidige map berekenen? du -cksh
te installeren.
Wilt u een uitvoerbaar bestand markeren? chmod +x filename
doet dat.
Moet u een ISO koppelen? Linux heeft deze functionaliteit ingebouwd. Maak ergens een map, zeg /home/user/isomount
en geef de opdracht mount -o loop /path/to/myisofile.iso /home/user/isomount
en de inhoud zijn gekoppeld in die map.
Nadat u een opdracht hebt uitgevoerd, moet u deze opnieuw uitvoeren, maar weet u niet precies hoe het ging? Typ history
in de terminal en het drukt uw opdrachtgeschiedenis af. Wilt u uw geschiedenis wissen? history -c
wist de informatie.