20 geavanceerde opdrachten voor Linux-gebruikers op gemiddeld niveau
Misschien vond je het eerste artikel erg nuttig, dit artikel is een uitbreiding van de 20 nuttige opdrachten voor Linux-nieuwkomers. Het eerste artikel was bedoeld voor nieuwelingen en dit artikel is voor Middle-Level-User en Advanced Users. Hier vindt u hoe u de zoekopdracht kunt aanpassen, hoe u de processen kunt doorlopen om ze te beëindigen, hoe u uw Linux-terminal productief kunt maken (een belangrijk aspect) en hoe u c, c++, java programma's in nix.
21. Commando: Vind
Zoek naar bestanden in de opgegeven map, hiërarchisch beginnend bij de bovenliggende map en naar submappen.
root@tecmint:~# find -name *.sh
./Desktop/load.sh
./Desktop/test.sh
./Desktop/shutdown.sh
./Binary/firefox/run-mozilla.sh
./Downloads/kdewebdev-3.5.8/quanta/scripts/externalpreview.sh
./Downloads/kdewebdev-3.5.8/admin/doxygen.sh
./Downloads/kdewebdev-3.5.8/admin/cvs.sh
./Downloads/kdewebdev-3.5.8/admin/ltmain.sh
./Downloads/wheezy-nv-install.sh
Opmerking: de optie `-naam‘ maakt de zoekactie gevoelig. Je kunt de optie `-iname‘ gebruiken om iets te vinden, ongeacht het hoofdlettergebruik. (* is een jokerteken en doorzoekt het hele bestand met de extensie ‘.sh’. U kunt de bestandsnaam of een deel van de bestandsnaam gebruiken om de uitvoer aan te passen).
root@tecmint:~# find -iname *.SH ( find -iname *.Sh / find -iname *.sH)
./Desktop/load.sh
./Desktop/test.sh
./Desktop/shutdown.sh
./Binary/firefox/run-mozilla.sh
./Downloads/kdewebdev-3.5.8/quanta/scripts/externalpreview.sh
./Downloads/kdewebdev-3.5.8/admin/doxygen.sh
./Downloads/kdewebdev-3.5.8/admin/cvs.sh
./Downloads/kdewebdev-3.5.8/admin/ltmain.sh
./Downloads/wheezy-nv-install.sh
root@tecmint:~# find -name *.tar.gz
/var/www/modules/update/tests/aaa_update_test.tar.gz
./var/cache/flashplugin-nonfree/install_flash_player_11_linux.i386.tar.gz
./home/server/Downloads/drupal-7.22.tar.gz
./home/server/Downloads/smtp-7.x-1.0.tar.gz
./home/server/Downloads/noreqnewpass-7.x-1.2.tar.gz
./usr/share/gettext/archive.git.tar.gz
./usr/share/doc/apg/php.tar.gz
./usr/share/doc/festival/examples/speech_pm_1.0.tar.gz
./usr/share/doc/argyll/examples/spyder2.tar.gz
./usr/share/usb_modeswitch/configPack.tar.gz
Opmerking: De bovenstaande opdracht zoekt naar alle bestanden met de extensie ‘tar.gz’ in de hoofdmap en alle submappen, inclusief gekoppelde apparaten.
Lees meer voorbeelden van de Linux ‘find’ opdracht op 35 Vind opdrachtvoorbeelden in Linux
22. Commando: grep
Het ‘grep’ commando doorzoekt het gegeven bestand naar regels die een overeenkomst bevatten met de gegeven strings of woorden. Zoek ‘/etc/passwd‘ naar ‘tecmint‘ gebruiker.
root@tecmint:~# grep tecmint /etc/passwd
tecmint:x:1000:1000:Tecmint,,,:/home/tecmint:/bin/bash
Negeer hoofdletters en alle andere combinaties met de optie ‘-i’.
root@tecmint:~# grep -i TECMINT /etc/passwd
tecmint:x:1000:1000:Tecmint,,,:/home/tecmint:/bin/bash
Zoek recursief (-r) d.w.z. lees alle bestanden onder elke map op zoek naar de tekenreeks “127.0.0.1“.
root@tecmint:~# grep -r "127.0.0.1" /etc/
/etc/vlc/lua/http/.hosts:127.0.0.1
/etc/speech-dispatcher/modules/ivona.conf:#IvonaServerHost "127.0.0.1"
/etc/mysql/my.cnf:bind-address = 127.0.0.1
/etc/apache2/mods-available/status.conf: Allow from 127.0.0.1 ::1
/etc/apache2/mods-available/ldap.conf: Allow from 127.0.0.1 ::1
/etc/apache2/mods-available/info.conf: Allow from 127.0.0.1 ::1
/etc/apache2/mods-available/proxy_balancer.conf:# Allow from 127.0.0.1 ::1
/etc/security/access.conf:#+ : root : 127.0.0.1
/etc/dhcp/dhclient.conf:#prepend domain-name-servers 127.0.0.1;
/etc/dhcp/dhclient.conf:# option domain-name-servers 127.0.0.1;
/etc/init/network-interface.conf: ifconfig lo 127.0.0.1 up || true
/etc/java-6-openjdk/net.properties:# localhost & 127.0.0.1).
/etc/java-6-openjdk/net.properties:# http.nonProxyHosts=localhost|127.0.0.1
/etc/java-6-openjdk/net.properties:# localhost & 127.0.0.1).
/etc/java-6-openjdk/net.properties:# ftp.nonProxyHosts=localhost|127.0.0.1
/etc/hosts:127.0.0.1 localhost
Opmerking: je kunt deze volgende opties samen met grep gebruiken.
- -w voor woord (bijvoorbeeld -w ‘woord1|woord2‘/pad/naar/bestand).
- -c voor aantal (d.w.z. het totale aantal keren dat het patroon overeenkwam) (grep -c ‘woord‘ /pad/naar/bestand).
- –color voor gekleurde uitvoer (grep –color server /etc/passwd).
23. Commando: man
De ‘man’ is de handmatige pager van het systeem. Man biedt online documentatie voor alle mogelijke opties met een opdracht en het gebruik ervan. Bijna alle opdrachten worden geleverd met de bijbehorende handleidingpagina's. Bijvoorbeeld,
root@tecmint:~# man man
MAN(1) Manual pager utils MAN(1)
NAME
man - an interface to the on-line reference manuals
SYNOPSIS
man [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-m system[,...]] [-M path] [-S list] [-e extension] [-i|-I]
[--regex|--wildcard] [--names-only] [-a] [-u] [--no-subpages] [-P pager] [-r prompt] [-7] [-E encoding] [--no-hyphenation] [--no-justification] [-p
string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z] [[section] page ...] ...
man -k [apropos options] regexp ...
man -K [-w|-W] [-S list] [-i|-I] [--regex] [section] term ...
man -f [whatis options] page ...
man -l [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-P pager] [-r prompt] [-7] [-E encoding] [-p string] [-t] [-T[device]]
[-H[browser]] [-X[dpi]] [-Z] file ...
man -w|-W [-C file] [-d] [-D] page ...
man -c [-C file] [-d] [-D] page ...
man [-hV]
Handleidingpagina voor de manpagina zelf, vergelijkbaar met ‘man cat’ (Handmatige pagina voor cat-commando) en ‘man ls‘ (Handmatige pagina voor commando ls).
Opmerking: de manpagina is bedoeld voor commandoreferentie en om te leren.
24. Commando: ps
ps (Proces) geeft de status van actieve processen weer met een unieke Id genaamd PID.
root@tecmint:~# ps
PID TTY TIME CMD
4170 pts/1 00:00:00 bash
9628 pts/1 00:00:00 ps
Om de status van alle processen samen met proces id en PID weer te geven, gebruikt u de optie ‘-A‘.
root@tecmint:~# ps -A
PID TTY TIME CMD
1 ? 00:00:01 init
2 ? 00:00:00 kthreadd
3 ? 00:00:01 ksoftirqd/0
5 ? 00:00:00 kworker/0:0H
7 ? 00:00:00 kworker/u:0H
8 ? 00:00:00 migration/0
9 ? 00:00:00 rcu_bh
....
Opmerking: deze opdracht is erg handig als u wilt weten welke processen actief zijn of soms PID nodig hebben om het proces te beëindigen. Je kunt het gebruiken met de opdracht ‘grep’ om aangepaste uitvoer te vinden. Bijvoorbeeld,
root@tecmint:~# ps -A | grep -i ssh
1500 ? 00:09:58 sshd
4317 ? 00:00:00 sshd
Hier wordt ‘ps’ gepipelined met de opdracht ‘grep’ om aangepaste en relevante output van onze behoefte te vinden.
25. Commando: doden
Oké, je hebt misschien begrepen waar dit commando voor is, aan de hand van de naam van het commando. Dit commando wordt gebruikt om een proces te beëindigen dat nu niet relevant is of niet reageert. Het is een zeer nuttig commando, eerder een heel erg nuttig commando. Je bent misschien bekend met het veelvuldig herstarten van Windows vanwege het feit dat een lopend proces meestal niet kan worden gedood, en als het wordt gedood, heeft het Windows nodig om opnieuw op te starten, zodat de wijzigingen van kracht kunnen worden, maar in de wereld van Linux, zulke dingen bestaan niet. Hier kunt u een proces beëindigen en starten zonder het hele systeem opnieuw op te starten.
Je hebt de pid (ps) van een proces nodig om het te beëindigen.
Stel dat u het programma ‘apache2‘ wilt afsluiten dat mogelijk niet reageert. Voer ‘ps -A‘ uit samen met de opdracht grep.
root@tecmint:~# ps -A | grep -i apache2
1285 ? 00:00:00 apache2
Zoek proces ‘apache2‘, noteer de pid ervan en dood het. In mijn geval is ‘apache2‘ pid bijvoorbeeld ‘1285‘.
root@tecmint:~# kill 1285 (to kill the process apache2)
Opmerking: elke keer dat u een proces opnieuw uitvoert of een systeem start, wordt voor elk proces een nieuwe pid gegenereerd en kunt u meer te weten komen over de huidige lopende processen en de >pid met behulp van het commando 'ps'.
Een andere manier om hetzelfde proces te beëindigen is.
root@tecmint:~# pkill apache2
Opmerking: Kill vereist taak-ID/proces-ID voor het verzenden van signalen, waarbij je, net als bij pkill, een optie hebt van het gebruik van een patroon, het specificeren van de proceseigenaar, enz.
26. Commando: waar is
Het ‘whereis’ commando wordt gebruikt om de Binaire, Bronnen en Handmatige Pagina's van het commando te lokaliseren. Als u bijvoorbeeld de Binaire, Bronnen en Handmatige pagina's van de opdracht 'ls' en 'doden'.
root@tecmint:~# whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz
root@tecmint:~# whereis kill
kill: /bin/kill /usr/share/man/man2/kill.2.gz /usr/share/man/man1/kill.1.gz
Opmerking: dit is handig om te weten waar de binaire bestanden zijn geïnstalleerd, zodat ze soms handmatig kunnen worden bewerkt.
27. Commando: dienst
Met het commando 'service' regelt u het Starten, Stoppen of Herstarten van een 'service >'. Met deze opdracht kunt u een service starten, herstarten of stoppen zonder het systeem opnieuw op te starten, zodat de wijzigingen van kracht worden.
Een apache2-server starten op Ubuntu
root@tecmint:~# service apache2 start
* Starting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
httpd (pid 1285) already running [ OK ]
Een apache2-server opnieuw opstarten op Ubuntu
root@tecmint:~# service apache2 restart
* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting .apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName [ OK ]
Een apache2-server op Ubuntu stoppen
root@tecmint:~# service apache2 stop
* Stopping web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting [ OK ]
Opmerking: het hele processcript bevindt zich in '/etc/init.d', en het pad moet mogelijk op bepaalde systemen worden opgenomen, d.w.z. ondanks het uitvoeren van “ service apache2 start ” wordt u gevraagd om “/etc/init.d/apache2 start” uit te voeren.
28. Commando: alias
alias is een ingebouwde shell-opdracht waarmee u een naam kunt toewijzen aan een lange opdracht of veelgebruikte opdracht.
Ik gebruik regelmatig de opdracht ‘ls -l’, die 5 tekens bevat, inclusief spatie. Daarom heb ik hiervoor een alias gemaakt: ‘l‘.
root@tecmint:~# alias l='ls -l'
controleer of het werkt of niet.
root@tecmint:~# l
total 36
drwxr-xr-x 3 tecmint tecmint 4096 May 10 11:14 Binary
drwxr-xr-x 3 tecmint tecmint 4096 May 21 11:21 Desktop
drwxr-xr-x 2 tecmint tecmint 4096 May 21 15:23 Documents
drwxr-xr-x 8 tecmint tecmint 4096 May 20 14:56 Downloads
drwxr-xr-x 2 tecmint tecmint 4096 May 7 16:58 Music
drwxr-xr-x 2 tecmint tecmint 4096 May 20 16:17 Pictures
drwxr-xr-x 2 tecmint tecmint 4096 May 7 16:58 Public
drwxr-xr-x 2 tecmint tecmint 4096 May 7 16:58 Templates
drwxr-xr-x 2 tecmint tecmint 4096 May 7 16:58 Videos
Om de alias ‘l‘ te verwijderen, gebruikt u de volgende opdracht ‘unalias‘.
root@tecmint:~# unalias l
controleer of ‘l‘ nog steeds een alias is of niet.
root@tecmint:~# l
bash: l: command not found
Maak van deze opdracht een beetje plezier. Maak een alias van een bepaald belangrijk commando voor een ander belangrijk commando.
alias cd='ls -l' (set alias of ls -l to cd)
alias su='pwd' (set alias of pwd to su)
....
(You can create your own)
....
Als je vriend nu ‘cd‘ typt, bedenk dan eens hoe grappig het zou zijn als hij een directorylijst krijgt en niet de directory verandert. En als hij 'su' probeert te zijn, krijgt hij alleen de locatie van de werkmap. U kunt de alias later verwijderen met het commando ‘unalias’, zoals hierboven uitgelegd.
29. Commando: df
Rapporteer schijfgebruik van het bestandssysteem. Handig voor zowel gebruikers als systeembeheerders om hun schijfgebruik bij te houden. ‘df’ werkt door directory-items te onderzoeken, die doorgaans alleen worden bijgewerkt wanneer een bestand wordt gesloten.
root@tecmint:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 47929224 7811908 37675948 18% /
none 4 0 4 0% /sys/fs/cgroup
udev 1005916 4 1005912 1% /dev
tmpfs 202824 816 202008 1% /run
none 5120 0 5120 0% /run/lock
none 1014120 628 1013492 1% /run/shm
none 102400 44 102356 1% /run/user
/dev/sda5 184307 79852 94727 46% /boot
/dev/sda7 95989516 61104 91045676 1% /data
/dev/sda8 91953192 57032 87218528 1% /personal
Voor meer voorbeelden van de opdracht ‘df’ leest u het artikel 12 Voorbeelden van df-opdrachten in Linux.
30. Commando: du
Schat het gebruik van de bestandsruimte. Voer de samenvatting van het schijfgebruik per bestand hiërarchisch uit, d.w.z. op recursieve wijze.
root@tecmint:~# du
8 ./Daily Pics/wp-polls/images/default_gradient
8 ./Daily Pics/wp-polls/images/default
32 ./Daily Pics/wp-polls/images
8 ./Daily Pics/wp-polls/tinymce/plugins/polls/langs
8 ./Daily Pics/wp-polls/tinymce/plugins/polls/img
28 ./Daily Pics/wp-polls/tinymce/plugins/polls
32 ./Daily Pics/wp-polls/tinymce/plugins
36 ./Daily Pics/wp-polls/tinymce
580 ./Daily Pics/wp-polls
1456 ./Daily Pics
36 ./Plugins/wordpress-author-box
16180 ./Plugins
12 ./May Articles 2013/Xtreme Download Manager
4632 ./May Articles 2013/XCache
Opmerking: ‘df’ rapporteert alleen gebruiksstatistieken over bestandssystemen, terwijl ‘du‘ daarentegen de inhoud van mappen meet. Voor meer ‘du’ commandovoorbeelden en gebruik, lees 10 du (Schijfgebruik) Commando's.
31. Commando: rm
Het commando ‘rm‘ staat voor verwijderen. rm wordt gebruikt om bestanden(en) en mappen te verwijderen.
Een map verwijderen
root@tecmint:~# rm PassportApplicationForm_Main_English_V1.0
rm: cannot remove `PassportApplicationForm_Main_English_V1.0': Is a directory
De map kan niet eenvoudigweg worden verwijderd met het commando ‘rm’; u moet de schakelaar ‘-rf’ gebruiken samen met ‘rm‘.
root@tecmint:~# rm -rf PassportApplicationForm_Main_English_V1.0
Waarschuwing: het commando “rm -rf ” is een destructief commando als je per ongeluk in de verkeerde map terechtkomt. Zodra u een map 'rm -rf' gebruikt, zijn alle bestanden en de map zelf plotseling voor altijd verloren. Gebruik het met voorzichtigheid.
32. Commando: echo
echo, zoals de naam doet vermoeden, echoot een tekst in de standaarduitvoer. Het heeft niets met shell te maken, en shell leest ook niet de uitvoer van het echo-commando. In een interactief script geeft echo het bericht echter via de terminal door aan de gebruiker. Het is een van de commando's die vaak worden gebruikt bij scripting, interactieve scripting.
root@tecmint:~# echo "linux-console.net is a very good website"
linux-console.net is a very good website
een klein interactief script maken
1. maak een bestand met de naam ‘interactive_shell.sh‘ op het bureaublad. (Houd er rekening mee dat de extensie ‘.sh‘ must is).
2. kopieer en plak het onderstaande script, precies hetzelfde, als hieronder.
#!/bin/bash
echo "Please enter your name:"
read name
echo "Welcome to Linux $name"
Stel vervolgens de uitvoeringsrechten in en voer het script uit.
root@tecmint:~# chmod 777 interactive_shell.sh
root@tecmint:~# ./interactive_shell.sh
Please enter your name:
Ravi Saive
Welcome to Linux Ravi Saive
Opmerking: ‘#!/bin/bash‘ vertelt de shell dat het een script is en het is altijd een goed idee om dit bovenaan het script op te nemen. ‘lezen‘ leest de gegeven invoer.
33. Commando: passwd
Dit is een belangrijke opdracht die handig is voor het wijzigen van uw eigen wachtwoord in de terminal. Uiteraard moet u om veiligheidsredenen uw huidige wachtwoord weten.
root@tecmint:~# passwd
Changing password for tecmint.
(current) UNIX password: ********
Enter new UNIX password: ********
Retype new UNIX password: ********
Password unchanged [Here was passowrd remians unchanged, i.e., new password=old password]
Enter new UNIX password: #####
Retype new UNIX password:#####
34. Commando: lpr
Met deze opdracht worden bestanden met de naam op de opdrachtregel afgedrukt naar de genoemde printer.
root@tecmint:~# lpr -P deskjet-4620-series 1-final.pdf
Opmerking: Met de opdracht ‘lpq‘ kunt u de status van een printer bekijken (of deze nu aan staat of niet) en de taken (bestanden) die wachten om te worden afgedrukt.
35. Commando: cmp
vergelijk twee bestanden van welk type dan ook en schrijft de resultaten naar de standaarduitvoer. Standaard retourneert ‘cmp‘ 0 als de bestanden hetzelfde zijn; als ze verschillen, wordt het byte- en regelnummer gerapporteerd waarop het eerste verschil optrad.
Laten we, om voorbeelden van deze opdracht te geven, twee bestanden bekijken:
bestand1.txt
root@tecmint:~# cat file1.txt
Hi My name is Tecmint
bestand2.txt
root@tecmint:~# cat file2.txt
Hi My name is tecmint [dot] com
Laten we nu twee bestanden vergelijken en de uitvoer van de opdracht bekijken.
root@tecmint:~# cmp file1.txt file2.txt
file1.txt file2.txt differ: byte 15, line 1
36. Commando: wget
Wget is een gratis hulpprogramma voor het niet-interactief downloaden (dat wil zeggen dat het op de achtergrond kan werken) van bestanden van internet. Het ondersteunt HTTP, HTTPS, FTP protocollen en HTTP proxy's.
Download ffmpeg met wget
root@tecmint:~# wget http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2
--2013-05-22 18:54:52-- http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2
Resolving downloads.sourceforge.net (downloads.sourceforge.net)... 216.34.181.59
Connecting to downloads.sourceforge.net (downloads.sourceforge.net)|216.34.181.59|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://kaz.dl.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2 [following]
--2013-05-22 18:54:54-- http://kaz.dl.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2
Resolving kaz.dl.sourceforge.net (kaz.dl.sourceforge.net)... 92.46.53.163
Connecting to kaz.dl.sourceforge.net (kaz.dl.sourceforge.net)|92.46.53.163|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 275557 (269K) [application/octet-stream]
Saving to: ‘ffmpeg-php-0.6.0.tbz2’
100%[===========================================================================>] 2,75,557 67.8KB/s in 4.0s
2013-05-22 18:55:00 (67.8 KB/s) - ‘ffmpeg-php-0.6.0.tbz2’ saved [275557/275557]
37. Commando: mounten
Mount is een belangrijk commando dat wordt gebruikt om een bestandssysteem te mounten dat zichzelf niet mount. Je hebt root-toestemming nodig om een apparaat te koppelen.
Voer eerst ‘lsblk’ uit nadat u uw bestandssysteem hebt aangesloten, identificeer uw apparaat en noteer de toegewezen naam van het apparaat.
root@tecmint:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 923.6G 0 part /
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 7.9G 0 part [SWAP]
sr0 11:0 1 1024M 0 rom
sdb 8:16 1 3.7G 0 disk
└─sdb1 8:17 1 3.7G 0 part
Op dit scherm was het duidelijk dat ik een pendrive van 4 GB had aangesloten, dus 'sdb1' is mijn bestandssysteem dat moet worden gemount. Word een root om deze bewerking uit te voeren en ga naar de map /dev waar het hele bestandssysteem is aangekoppeld.
root@tecmint:~# su
Password:
root@tecmint:~# cd /dev
Maak een map met de naam alles behalve relevant als referentie.
root@tecmint:~# mkdir usb
Mount nu het bestandssysteem ‘sdb1‘ in de map ‘usb‘.
root@tecmint:~# mount /dev/sdb1 /dev/usb
Nu kunt u vanaf het terminal- of X-windows-systeem naar /dev/usb navigeren en toegang krijgen tot het bestand vanuit de aangekoppelde map.
38. Commando: gcc
gcc is de ingebouwde compiler voor de taal ‘c’ in de Linux-omgeving. Een eenvoudig c programma, sla het op uw bureaublad op als Hallo.c (onthoud dat de extensie '.c' verplicht is).
#include <stdio.h>
int main()
{
printf("Hello world\n");
return 0;
}
Compileer het
root@tecmint:~# gcc Hello.c
Voer het uit
root@tecmint:~# ./a.out
Hello world
Opmerking: bij het compileren van een c programma wordt de uitvoer automatisch gegenereerd naar een nieuw bestand “a.out ” en elke keer dat u een compileert c programma hetzelfde bestand “a.out ” wordt gewijzigd. Daarom is het een goed advies om tijdens het compileren een uitvoerbestand te definiëren en er is dus geen risico dat het uitvoerbestand wordt overschreven.
Stel het op deze manier samen
root@tecmint:~# gcc -o Hello Hello.c
Hier stuurt ‘-o’ de uitvoer naar het ‘Hallo’ bestand en niet naar ‘a.out’. Voer het opnieuw uit.
root@tecmint:~# ./Hello
Hello world
39. Commando: g++
g++ is de ingebouwde compiler voor ‘C++‘ , de eerste objectgeoriënteerde programmeertaal. Een eenvoudig c++ programma, sla het op uw bureaublad op als Add.cpp (onthoud dat de extensie '.cpp' verplicht is).
#include <iostream>
using namespace std;
int main()
{
int a;
int b;
cout<<"Enter first number:\n";
cin >> a;
cout <<"Enter the second number:\n";
cin>> b;
cin.ignore();
int result = a + b;
cout<<"Result is"<<" "<<result<<endl;
cin.get();
return 0;
}
Compileer het
root@tecmint:~# g++ Add.cpp
Voer het uit
root@tecmint:~# ./a.out
Enter first number:
...
...
Opmerking: bij het compileren van een c++ programma wordt de uitvoer automatisch gegenereerd naar een nieuw bestand “a.out ” en elke keer dat u een compileert c++ programma hetzelfde bestand “a.out ” wordt gewijzigd. Daarom is het een goed advies om tijdens het compileren een uitvoerbestand te definiëren en er is dus geen risico dat het uitvoerbestand wordt overschreven.
Stel het op deze manier samen
root@tecmint:~# g++ -o Add Add.cpp
Voer het uit
root@tecmint:~# ./Add
Enter first number:
...
...
40. Commando: java
Java is een van de meest gebruikte programmeertalen ter wereld en wordt als snel, veilig en betrouwbaar beschouwd. Het merendeel van de webgebaseerde diensten van vandaag draait op Java.
Maak een eenvoudig Java-programma door de onderstaande test in een bestand te plakken met de naam tecmint.java (onthoud dat de extensie '.java' must is).
class tecmint {
public static void main(String[] arguments) {
System.out.println("Tecmint ");
}
}
compileer het met javac
root@tecmint:~# javac tecmint.java
Voer het uit
root@tecmint:~# java tecmint
Opmerking: bijna elke distributie wordt geleverd met een gcc-compiler, een groot aantal distributies heeft een ingebouwde g++ en java-compiler, terwijl sommigen dat misschien niet hebben gedaan. Je kunt het gewenste pakket aanpassen of yum.
Vergeet niet uw waardevolle reactie en het type artikel dat u wilt zien hier te vermelden. Ik kom binnenkort terug met een interessant onderwerp over de minder bekende feiten over Linux.