Samba & Bonjour with Avahi

Okay, so you have a shiny new Linux box, and it’s running Samba, all nice and configured to share your files.  You have a Mac, and you want to use it with your nifty new Windows shares.  You can connect with Command-K in the finder, but it doesn’t show up in Finder under the Shared section.

You need Avahi.

I won’t bother going into the details of configuring Samba.  If you’ve not gotten that far, there are some pretty good resources out on the ‘net that will tell you how.  Where interacting with Bonjour is concerned, however, most of the references I found were flat wrong with modern OS X and Samba.

To make this work, the steps are simple (I’m running Ubuntu 12.04, so you may have to adjust accordingly for your Linux distro of choice).  The first step is to install Avahi:

root@core:/# apt-get install avahi-daemon avahi-utils

When this command completes, you’ll essentially have Bonjour running on your Linux box.  This has a number of advantages, most notably that you can now log into the thing by hostname (eg. core.local for my machine) without having to configure DNS.  But it still won’t allow you to browse shares in Finder; for that, you need a bit of configuration.

And so we move to step 2: create a file in /etc/avahi/services called smb.service, and place the following content in it:

<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
 <name replace-wildcards="yes">%h</name>

Upon saving it, your new Linux box will happily appear in the Finder sidebar, and should all work.  You don’t even need to restart Avahi; it’ll pick up the new service file automagically.

There are other references out there for how to do this, but they all use port 139 – which doesn’t work.  I haven’t a clue when Microsoft changed the port number, but whatever; I don’t really care.  I have finder browsing goodness, so I’m happy.

How to Check Open Ports in Linux?

Which ports are occupied by which service? How many open ports are there? Learn to scan for open ports on your Linux system or any remote system.Table of Contents

  1. Method 1: Checking open ports in the currently logged in Linux system using lsof command
  2. Method 2: Checking ports on any remote Linux server using the netcat command
  3. Conclusion

Whether you are using Linux as a server or desktop, knowing open ports or ports in use can be helpful in a variety of situations.

For example, if you are running an Apache or Ngnix based web server, the port in use should be 80 or 443. Checking the ports will confirm that. Similarly, you can check which port is being used by SMTP or SSH or some other services. Knowing which ports are in use can be helpful while allocating the ports to a new service.

You may also check if there are open ports for intrusion detection.

There are various ways for checking ports in Linux. I’ll share two of my favorite methods in this quick tip.

Method 1: Checking open ports in the currently logged in Linux system using lsof command

If you are logged into a system, either directly or via SSH, you can use the lsof command to check its ports.

sudo lsof -i -P -n

This lsof command is used to find the files and processes used by a user. The options user here are:

  • -i: If no IP address is specified, this option selects the listing of all network files
  • -P: inhibits the conversion of port numbers to port names for network files
  • -n: inhibits the conversion of network numbers to host names for network files
Checking open ports in Linux

But, this also shows us a lot of extra ports that the computer does not actually listen to.

You can just pipe this output to the grep command and match the pattern “LISTEN”, like this:

sudo lsof -i -P -n | grep LISTEN

This will only show the ports that our computer is actively listening to and also which service is using said open port.

Method 2: Checking ports on any remote Linux server using the netcat command

nc (Netcat) is a command line utility that read and writes data between computers over network using the TCP and UDP protocols.

Given below is the syntax for nc command:

nc [options] host port

This utility has a nifty -z flag. When used, it will make nc scan for listening daemons without actually sending any data to the port.

Combine this with the -v flag, enabling verbosity, you can get a detailed output.

Below is the command you can use to scan for open ports using the nc command:

nc -z -v <IP-ADDRESS> 1-65535 2>&1 | grep -v 'Connection refused'

Replace IP-ADDRESS with the IP address of the Linux system you are checking the ports for.

As for why I selected values 1 to 65535, that is because the port range starts from 1 and ends at 65535.

Finally, pipe the output to the grep command. Using the -v option, it excludes any line that has “Connection refused” as a matched pattern.

This will show all the ports that are open on the computer which are accessible by another machine on the network.


Of the two methods, I prefer the lsof command. It’s quicker than nc command. However, you need to be logged into the system and have sudo access for that. In other words, lsof is more suitable a choice if you are managing a system.

The nc command has the flexibility of scanning ports without being logged in.

Both commands can be used for checking open ports in Linux based on the scenario you are in. Enjoy.TipsSHARE

Setting Up Your Local Web Server on macOS Big Sur 11.0.1 (2020)| MAMP Setup on mac | macOS, Apache, MySQL, PHP

Apple released its 2020 newest macOS Big Sur on November 12, 2020. It is a time of the year again that you might need to reconfigure your macOS if you are upgrading from the macOS Catalina. Or if you have a new macOS, follow the below steps to enable your local web server on macOS Big Sur (version 11.0.1)

NOTE: For macOS 12 Monterey, please check out the How to Setup MAMP (MacOS, Apache, MySQL, PHP) on macOS12 Monterey (2021)

Table of Contents

Start the Apache Server

macOS comes with Apache Server by default. To start the built-in Apache server, open the Terminal app from your Application folder or type Terminal in the Spotlight Search (shortcut: Command + Space Bar)

Type sudo apachectl start and press enter

Open any of your favorite browser (e.g. Safari, Chrome)

Type localhost or in the address bar

If Apache Server is started, you should see the below:

Create Sites Directory

It is recommended to create a Sites directory under username folder (username is your mac login name) This directory will be your document root for any web-related stuff.

  1. Go to Mac HDD > Users > [your account folder]
  2. Create a folder with the name Sites. When the folder is created, it will generate a folder with a compass image on the folder as you can see from the below screenshot.

Create username.conf file

To be able to recognize the files putting into Sites directory, username.conf needed to be setup.

1. Type whoami and press enter. (Note down the name. this is your account name / username) For example, if your username is developer, we will be making a .conf file with the name of developer.conf under /etc/apache2/users

2. Type cd /etc/apache2/users and press enter.

3. Type ls and press enter. Check if there is an existing username.conf file (username is your account name)

4. If there is an existing username.conf, make a backup copy by typing sudo cp username.conf username.conf.bak

5. Type sudo nano username.conf and press enter (note: username will be your account name e.g. developer.conf)

6. Copy and paste the following configuration.

<Directory "/Users/developer/Sites/">
AllowOverride All
Options Indexes MultiViews FollowSymLinks
Require all granted

7. Press Control + o and press enter to save the file.

8. Press Control + x to exit the nano editor.

Configure the httpd.conf file

1. Open the Terminal app from your Application folder or type Terminal in the Spotlight Search (shortcut: Command + Space Bar)

2. Type cd /etc/apache2 and press enter.

3. Type sudo cp httpd.conf httpd.conf.bak and press enter. (This step is optional if you want to keep the copy of the original config file but I would recommend keeping one just in case.)

4. Type sudo nano /etc/apache2/httpd.conf and press enter.

5. Press control + w and type LoadModule authz_core_module and press enter. (control + w will activate the search and it will look for a line with the keyword you put in)

Uncomment the following modules. The # you see in front of each line means that line is commented out. That means that a specific line or module on that line will be ignored. What we want to do is, uncomment this so the module is enabled.

6. Use control + w to find each of the modules below.

LoadModule authn_core_module libexec/apache2/
LoadModule authz_host_module libexec/apache2/
LoadModule userdir_module libexec/apache2/
LoadModule include_module libexec/apache2/
LoadModule rewrite_module libexec/apache2/

7. Uncomment the following line for the User home directories.

Include /private/etc/apache2/extra/httpd-userdir.conf

8. Replace the below two lines with your username document root. (You can comment on those two lines by putting # in front of them.

DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">

9. Replace with the following:

Note: USERNAME needs be replaced with your username (e.g. developer)

DocumentRoot "/Users/USERNAME/Sites/"
<Directory "/Users/USERNAME/Sites/">

10. Press control + w and type AllowOverride None then enter

Replace AllowOverride None to AllowOverride All

Your DocumentRoot configuration in httpd.conf will look like below:

DocumentRoot "/Users/developer/Sites/"
<Directory "/Users/developer/Sites/">
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    # The Options directive is both complicated and important.  Please see
    # for more information.
    Options FollowSymLinks Multiviews
    MultiviewsMatch Any

    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   AllowOverride FileInfo AuthConfig Limit
    AllowOverride All

    # Controls who can get stuff from this server.
    Require all granted

11. Press control + o and press enter to save the file.

12. Press control + x to exit the nano editor.

Configure the httpd-userdir.conf file

1. Type cd /etc/apache2/extra and press enter.

2. Type sudo cp httpd-userdir.conf httpd-userdir.conf.bak and press enter. (this step is optional if you want to keep the copy of original file.)

3. Type sudo nano httpd-userdir.conf and press enter.

Uncomment the following line.

Include /private/etc/apache2/users/*.conf

4. Press control + o and press enter to save the file.

5. Press control + x to exit the nano editor.

6. Type sudo apachectl restart (this step will restart the Apache server to take effect of the changes made in the config file)

Enable the PHP

macOS has built-in PHP (at least in Big Sur and prior versions) You just need to enable the PHP from the Apache’s config file. Follow the below steps to do so.

1. Open the Terminal app from your Application folder or type Terminal in the Spotlight Search (shortcut: Command + Space Bar)

2. Type cd /etc/apache2 and press enter.

3. Type sudo nano /etc/apache2/httpd.conf and press enter.

4. Press control + w and type php (this will search for a line with keyword php in Apache’s config file.)

You should be seeing the following line. Uncomment the LoadModule php7_module libexec/apache2/ by removing the # in the front of that line of code.

5. Press control + o and press enter to save the file.

6. Press control + x to exit the nano editor.

7. Type sudo apachectl restart (this step will restart the Apache server to take effect of the changes made in the config file)

Create a phpinfo() page

To try out the PHP is working on your local mac web server, create a phpinfo() file and load it on the browser.

1. Open the Terminal app from your Application folder or type Terminal in the Spotlight Search (shortcut: Command + Space Bar)

2. Type cd ~/Sites/ and press enter.

3. Type sudo nano phpinfo.php and press enter. (this will bring up the nano editor with blank screen since the phpinfo.php is newly created file and has no code at this point)

4. Put the following code.

<?php phpinfo(); ?>

5. Press control + o and press enter to save the file.

6. Press control + x to exit the nano editor.

7. Open a browser and type the following in the address bar.


You should be seeing a page something like below. This means, the PHP is working on your local mac server.

Setting Up the MySQL Server

To be able to use a local database, you need to install a database server. In this case, we will be installing the MySQL Server. Follow the below steps to setup your MySQL Server on your local macOS.

  1. Go to

2. Download the installer with DMG file.

3. Double click the MySQL server installer.

Follow the instructions on the Installer.

If above message shows up, click Allow.

Select Use Strong Password Encryption

Setup a password for “root” user and click Finish to complete the setup.

Once the installation is complete, you can move the installer to the trash.

Now, if you go to System Preferences, you should be seeing MySQL.

If you check, it should have the green indicator showing it is up and running.

If you need to setup a MySQL Workbench, you can refer to Using MySQL Workbench on macOS Catalina (2019)

If you are using macOS Catalina, check out Setting Up Your Local Server on macOS Catalina (2019) – MAMP – macOS, Apache, MySQL, PHP to setup your mac local web server.

Latest Post

Feel free to share this post!

What is APIPA (Automatic Private IP Addressing)?

APIPA stands for Automatic Private IP Addressing (APIPA). It is a feature or characteristic in operating systems (eg. Windows) which enables computers to self-configure an IP address and subnet mask automatically when their DHCP(Dynamic Host Configuration Protocol) server isn’t reachable. The IP address range for APIPA is ( to having 65, 534 usable IP addresses, with the subnet mask of


Initially, the Internet Engineering Task Force (IETF) has reserved the IPv4 address block ( – for link-local addressing. Due to the simultaneous use of IPv4 addresses of different scopes, traffic overload becomes high. The link-local addresses are allocated to interface i.e., stateless in nature such that communication will be established when not getting a response from DHCP Server. After that Microsoft refers to this address autoconfiguration method as “Automatic Private IP Addressing (APIPA)”.

Automatic Configuration and Service Checks

It starts with when the user(client) is unable to find the data/information, then uses APIPA to configure the system with an IP address automatically(ipconfig). The APIPA provides the configuration to check for the presence of a DHCP server(in every five minutes, stated by Microsoft). If APIPA detects a DHCP server on the network configuration area, it stops, and let run the DHCP server that replaces APIPA with dynamically allocated addresses.

Note: To Know the given IP address is provided by which addressing, just run the following command:



  • Communication can be established properly if not getting response from DHCP Server.
  • APIPA regulates the service, by which always checking response and status of the main DHCP server in a specific period of time.


  • It can be used as a backup of DHCP because when DHCP stops working then APIPA has the ability to assign IP to the networking hosts.
  • It stops unwanted broadcasting.
  • It uses ARP(Address Resolution Protocol) to confirm the address isn’t currently in use.


  • APIPA ip addresses can slow you network.
  • APIPA doesnot provide network gateway as DHCP does.


  • APIPA addresses are restricted for use in local area network.
  • APIPA configured devices follow the peer to peer communication rule.

ASML’s toekomstplannen tot 2030

Eind september maakte ASML zijn toekomstplannen aan zijn investeerders bekend. ASML, ooit begonnen als dochter van Philips, is een van de belangrijkste enablers van de chipindustrie. Het bedrijf uit Veldhoven levert de machines aan chipfabrikanten waarmee de meest geavanceerde chips van vandaag en morgen geproduceerd worden. Die zogeheten lithografiesystemen zijn nodig voor de cruciale stappen om een chipontwerp op een plak silicium te krijgen. De leading edge-processen maken tegenwoordig gebruik van machines die de chipwafers hiertoe met extreem ultraviolet licht, of euv, belichten.

De chipindustrie waarvan ASML onderdeel is, behaalde in 2020 een winst van pakweg 426 miljard euro. Daarvan is ASML goed voor slechts ongeveer 1 procent, maar desondanks is de chipindustrie sterk afhankelijk van de machines van ASML. Naar verwachting zal de vraag naar chips door diverse factoren in de komende jaren flink doorgroeien. De belangrijkste drijfveren daarvoor zijn onder meer automotive, kunstmatige intelligentie, iot-devices, edgecomputing en de cloud, en 5G-infrastructuur om alles aan elkaar te knopen, en datacentra om alle gegenereerde data te verwerken en op te slaan.

Groei in halfgeleiderproductie
Groei in halfgeleiderproductie

Zoals bekend zijn er in alle sectoren van de industrie tekorten, waarvan de productiecapaciteit van chips in zogeheten fabs er maar een is. De hele supplychain, van bulktransport tot toeleveranciers van halffabrikaten en machines, staat onder druk. Het is geen geheim dat er tijdens de pandemie enorme tekorten van chips zijn ontstaan. Niet alleen de videokaarten en processors waren daardoor slecht leverbaar, maar bijvoorbeeld ook de chips voor de auto-industrie waren zo slecht leverbaar dat sommige fabrikanten de productie moesten stilleggen.

Die tekorten zijn niet binnen een paar maanden opgelost. Analisten verwachten dat er zeker tot 2022, en voor sommige sectoren tot 2023, tekorten zullen blijven. ASML is een van de fabrikanten die hierbij een rol spelen. Het bedrijf werkt met man en macht om aan de vraag te voldoen, maar zowel de machines die het bouwt, als de uitbreidingen van de fabs die daadwerkelijk chips produceren, hebben flink tijd nodig voordat ze productiegereed zijn. Op de volgende pagina’s lopen we door de toekomstplannen die ASML heeft om aan de alsmaar groeiende vraag naar chips te voldoen.

Groei voor halfgeleiderindustrie

De jaarlijkse groei van de halfgeleiderindustrie als geheel wordt geschat op ongeveer 7 procent, maar niet elk segment groeit uiteraard even hard. Bovendien vragen de verschillende segmenten om verschillende chips. ASML rekent in zogeheten waferstarts, aangezien het belichten van chipwafers het segment is waarmee ASML zijn geld verdient. Daarbij maakt het bedrijf onderscheid tussen logic en mpu (ofwel geavanceerde nodes), dram en nand. Er is echter nog een vierde categorie, die groter is dan voorgaande categorieën. Dat zijn de zogeheten mature nodes, groter dan 28nm.

Voor die waferstarts zijn zijn uiteraard systemen van ASML nodig en het bedrijf is van plan in de komende jaren zowel het aantal geleverde machines, als het aantal wafers dat het kan verwerken, flink te verhogen. Daarbij concentreert ASML zich niet alleen op de geavanceerde euv-machines, maar ook op de lithografiesystemen voor duv-lithografie.

Duv en euv

We gaven het al even aan; ASML rekent in waferstarts en dat doet het in duizenden of miljoenen waferstarts per maand. In 2020 bedroeg de totale wafercapaciteit van alle foundry’s en fabrikanten ongeveer 20,8 miljoen waferstarts. De grootste producenten zijn Samsung, met bijna 3,1 miljoen waferstarts, gevolgd door TSMC met 2,7 miljoen waferstarts, en Micron, SK Hynix en Kioxia. Samen is de top vijf verantwoordelijk voor ruim de helft van de wafercapaciteit.

Uitgesplitst per segment verwacht ASML een flinke groei in het aantal waferstarts. Gemiddeld moet dat tot 2025 een jaarlijkse groei van ruim 5 procent worden, met advanced logic als grootste groeimarkt van bijna 10 procent jaar op jaar. De kleinste groei komt van de mature nodes, maar dat is wel het grootste segment in absolute aantallen. Reden voor ASML om de duv-machines dus nog de nodige aandacht te geven.

'Mature' nodes hebben een groot aandeel in wafercapaciteit
‘Mature’ nodes hebben een groot aandeel in wafercapaciteit

ASML leverde in 2020 nog ongeveer 250 lithografiesystemen voor droge en immersielithografie, maar dat moet tot 2025 met 50 procent groeien tot ongeveer 375 systemen. Daarbij moet de wafercapaciteit dankzij optimalisaties van de machines zelfs verdubbelen. Ook van de veel duurdere euv-machines moeten er veel meer geleverd gaan worden. In 2020 waren dat 35 stuks; dat moet worden verdubbeld tot jaarlijks 70 stuks in 2025. De wafercapaciteit moet ook hier harder groeien dan het aantal machines. Het aantal euv-systemen verdubbelt, maar de capaciteit moet verdrievoudigen.

Groei in duv- en euv-systemen
Groei in duv- en euv-systemen

Om aan die planningen te voldoen, moet de productiecapaciteit van lithografiemachines efficiënter worden. Machines voor duv, zoals de 193i-scanners NXT:2050i en NXT:2000i, en scanners voor droge lithografie als de NXT:1470 moeten 10 procent sneller geproduceerd gaan worden en de productielijnen moeten worden uitgebreid. Euv-scanners als de NXE:3600D moeten zelfs 35 procent sneller gemaakt worden. Een uitgebreide verbouwing van de ASML-campus in Veldhoven moet dat faciliteren.

Moore’s Law nog steeds levend

ASML benadrukt net als vrijwel elke chipfabrikant dat de Wet van Moore nog altijd niet dood is. Traditionele transistorscaling is misschien niet langer de enige drijvende kracht achter scaling, het speelt nog altijd een belangrijke rol. Naast transistorscaling moet ook het systeem als geheel leiden tot zuinigere en krachtigere chips. Denk hierbij aan technieken als AMD’s chiplets, Intels Foveros en andere voorbeelden van heterogene integratie en 2,5d- of 3d-structuren.

Toch is scaling in de zin van kleinere nodes en dito transistors nog steeds van groot belang, hoewel het lang niet altijd dezelfde transistors zijn die kleiner gemaakt worden. Ook andere klassen transistors worden ontwikkeld, zoals de finfet die Intel tien jaar geleden introduceerde met Ivy Bridge. Om nog kleinere transistors te maken, werkt imec samen met onder meer TSMC en fabrikanten als Intel aan andere typen transistors. Zo zijn gate all around-transistors, ofwel GAA-transistors, of nanosheets in ontwikkeling en voor nog verder in de toekomst komen wellicht atomic channels in focus.

Nieuwe typen transistors in onwikkeling (IMEC)
Nieuwe typen transistors in onwikkeling. imec

TSMC’s Mark Liu opperde een nieuwe metric om aan te tonen dat de Wet van Moore nog leeft, in ieder geval op systeemniveau. Door het aantal operaties per seconde te delen door de benodigde energie voor die berekeningen, kan een Energy-Efficient Performance-getal, of EEP, berekend worden. Bedrijven en vooral investeerders in de halfgeleiderindustrie kunnen daar blij mee zijn, want als je EEP gebruikt om de prestaties van chips in een grafiek weer te geven, zie je een mooie stijgende lijn. Die stijgt harder dan de transistordichtheid (groen), lithografiedichtheid (zwart) en uiteraard kloksnelheid (wit). Los van mooie grafieken toont EEP aan dat transistors, of liever complete systemen, vier keer zo zuinig worden met een verdubbeling van de transistordichtheid. En uiteraard is dat goed nieuws, want de enorme vraag naar halfgeleiderproducten moet gepaard gaan met een drastische afname van het energiegebruik.

EEP. of Energy Efficient Performance
EEP, of Energy-Efficient Performance

Een voorbeeld hoe design technology co-optimalisation, of dtco, EEP-verbeteringen kan opleveren, is AMD’s V-cache. Door een die met L3-cache boven op de cores te plaatsen, moet een Zen 3-chip 4 tot 25 procent prestatiewinst krijgen en volgens AMD’s cijfers een ruim drievoudige verbetering in EEP opleveren. Uiteraard is dat geen drievoudige tdp-reductie; we zien niet opeens Zen 3-chips met een tdp van 40W. De winst zal vooral zitten in minder geheugentoegang.

De Wet van Moore leeft nog
De Wet van Moore leeft nog.

Traditionelere scaling blijft uiteraard ook een belangrijke focus in de komende jaren. Zo moeten niet alleen transistors kleiner worden, maar ook de metal pitch, en contactpunten moeten dichter op elkaar. Daarvoor zijn niet alleen lithografiemachines nodig, maar ook controlesystemen. Een belangrijke functie van die systemen is controleren of opeenvolgende lagen netjes boven elkaar liggen. Het heeft immers weinig zin om een chip te maken als de laagjes niet netjes op elkaar aansluiten. Hoe kleiner de node, hoe kleiner de foutmarge mag zijn.

Om de kritieke dimensies van chips te controleren, een proces dat metrologie wordt genoemd, worden optische of scanning elektronenmicrosopen gebruikt. Ook aan die techniek werkt ASML, door zijn e-beam-inspectietool verder te ontwikkelen van een enkele e-beam naar verscheidene elektronenstralen. Zo kan de precisie van e-beam-inspectie gecombineerd worden met hogere throughput en kunnen defecten effectiever worden opgespoord.

We schreven zojuist al dat lithografische systemen nu en in de toekomst cruciaal blijven voor de chipproductie. Ongeacht of er GAA-transistors, forksheets of andere technieken gebruikt worden, moeten de kleinste structuren op een wafer overgebracht worden. De overstap van duv naar euv heeft erg lang op zich laten wachten, maar inmiddels wordt euv in steeds meer kritieke lagen ingezet. Zo gebruikt TSMC euv-lithografie voor de 5nm-node voor ongeveer tien lagen. Met duv, of 193i-lithografie, zouden vier maskers en vier belichtingen nodig zijn voor zo’n enkele laag, terwijl met euv-lithografie slechts één masker en één belichting volstaan.

Overzicht euv-aandeel in logic, dram en nand
Overzicht euv-aandeel in logic, dram en nand

Voor dram worden de meeste lagen nog met duv gemaakt. Sinds 14nm-dram, een node die als 1Z bekendstaat, wordt euv kleinschalig ingezet door Samsung. Micron en SK Hynix gebruiken euv pas bij de volgende node, 1A, of 13nm. Dat aandeel wordt bij opeenvolgende nodes steeds groter, maar het gros blijft met al dan niet droge duv en nog oudere lithografietechnieken belicht worden. Om een idee te krijgen: voor de huidige 1A-node gebruiken de genoemde drie fabrikanten ongeveer zestig maskers, waarvan minder dan vijf voor euv. Voor 3d-nand is zelfs helemaal geen euv gepland tot 2030. Daar zit de innovatie vooral in steeds meer lagen op elkaar stapelen. Momenteel produceert bijvoorbeeld Micron nand met 176 laagjes en dat moet richting 2030 tot pakweg 500 lagen groeien.

Het aantal maskers voor logic-wafers
Het aantal maskers voor logicwafers

Het chiptype waarvoor de meeste geavanceerde lithografiemachines worden ingezet, is logic. Afhankelijk van de fabrikant wordt voor lagen van transistors kleiner dan de 10nm-node deels euv ingezet. Dat aandeel groeit bij 5nm-nodes; bij 3nm-nodes, 2nm-nodes en kleiner wordt dat aandeel steeds groter. Een aanzienlijk deel wordt echter nog gemaakt met duv, hetzij ArF(i), hetzij ArF en voor een deel nog KrF. Dat zijn de niet-kritieke lagen die met natte of droge duv-lithografie worden gemaakt. Er is een roadmap tot pakweg 2030, die geprojecteerd wordt op 1nm. Bij die featuresize en de stap ervoor van 1,5nm is ook euv zoals we dat nu kennen, niet meer toereikend.

Half pitches van 16nm (met 0,33NA euv) en 8nm (met 0,55NA-euv
Half pitches van 16nm (met 0,33NA-euv) en 8nm (met 0,55NA-euv. Beeld: imec

Om de kleinste featuresizes voor de 1nm-nodetransistors te maken, moet euv een kleinere focus krijgen. Door de optische elementen aan te passen kan de apertuur, in lithografie uitgedrukt als het NA-getal, vergroot worden. De huidige euv-machines hebben een NA van 0,33, maar de volgende generatie euv-systemen moet een NA van 0,55 krijgen. Volgens ASML maakt dat een reductie van de featuresize van 1,7x en een toename in transistordichtheid van 2,9x mogelijk. Dat zou een resolutie van 8nm, ofwel lijntjes die 16nm uit elkaar liggen, mogelijk maken. Om de extra kosten te compenseren zouden chipfabrikanten met high-NA-euv met een enkele belichting en een enkel masker twee ‘gewone’ euv-belichtingen en maskers kunnen vervangen.


De presentaties van ASML en eerdere presentaties van andere chipfabrikanten, waaronder TSMC, en onderzoeksinstituut imec laten zien dat de halfgeleiderindustrie nog altijd hard werkt om van de Wet van Moore een selffulfilling prophecy te maken. Het bekende transistorscaling is, zoals bekend, al lang niet meer toereikend, maar dankzij steeds meer intregratie van processen en ontwerpfilosofie kunnen chips of systemen als geheel steeds sneller en zuiniger worden.

Die design technology co-optimalisation, of dtco, zal in de komende jaren alleen maar belangrijker worden. Dat behelst heterogene chips tot slimme verpakkingen en het stapelen van wafers of chips, naast natuurlijk architectuur. Om dat alles te realiseren, zullen state-of-the-artfabs cruciaal zijn en de machines die daar werken, zijn de spil van de productie. Met de roadmap die ASML heeft laten zien, moeten de oudere lithografiemachines verbeterd worden om als workhorse dienst te blijven doen, terwijl tegelijkertijd de meest geavanceerde euv-apparatuur verder moet worden verbeterd. Daarmee wordt niet alleen het aantal wafers dat kan worden geproduceerd opgeschroefd, zo worden ook kleinere transistors mogelijk.

ASML's NXE:3400 euv-lithografiesysteem
ASML’s NXE:3400 euv-lithografiesysteem

Voor logic, kortweg microprocessors en andere rekenunits als gpu’s, gaat euv een steeds grotere rol spelen, met high-NA-euv vanaf de tweede helft van dit decennium om onder de 2nm te duiken. Voor dram blijft de inzet van euv in ieder geval tot 2025 beperkt tot enkele lagen en voor nand is nog geen rol weggelegd voor euv. Voor beide chipsegmenten zijn er echter behoorlijk uitgekristalliseerde plannen om tot 2030, of in ieder geval 2025, steeds kleinere, geavanceerde en zuinigere chips te maken.nm = nanometer. De schaal waarin chipstructuren worden gemeten.
ASML = Advanced Semiconductor Manufacturing Lithography
EUV = Extreem UltraViolet. Bij lithografie wordt licht/straling gebruik. Bij de EUV machines heeft dit een golflengte van 13nm, dichtbij het röntgenspectrum (11nm) en dit is extreem ultraviolet licht.
iot = internet of thing
fabs = fabrieken
mpu = microprocessor unit (is als afkorting opgenomen in het artikel)
dram = dynamic random access memory
nand = Not AND (NAND-poort)
Node = geen afkorting, hiermee wordt het productieproces in nm aangeduid. 14nm is een node, 5nm is een andere node.
TSMC = Taiwan Semiconductor Manufacturing Company, ik denk ‘s werelds grootste producent van (geavanceerde) chips.
DUV = Deep UV. Langere golflengte dan EUV. Hieronder vallen verschillende golflengtes, (N)XT (en misschien de oude PAS (Philips Advanced Semiconductor) vallen “onder” DUV.

De oudste (courante) systemen van ASML zijn de PAS systemen, zogenaamde steppers (verplaatsing, statische belichting). Daarna kwam XT, zogenaamde scanners: de belichting gebeurde tijdens een scan, een beweging, dus dynamisch. De volgende machines waren NXT’s, typerend voor immersie (NXT1470 is een uitzondering), waar tussen lens en wafer tijdens exposure een laag water zit waardoor het licht breekt en hiermee kleinere structuren gemaakt kunnen worden.
Als laatste is er EUV. Deze machine is typerend voor het licht. Extreem ultraviolet wordt in een (diep) vacuum gegenereerd: gassen, zoals zuurstof, absorberen het (te veel). In deze machine is de “lens” een set spiegels: lenzen zouden de straling ook (te veel) absorberen. Spiegels hebben dit probleem minder.

193i = 193nm voor de golflengte van het licht, “i” voor immersie.
tdp = thermal design power
ArF = Argon Fluor, de gassen waarmee de lichtbron, de laser, wordt gerealiseerd.
KrF = Krypton Fluor
NA = Numerical Aperture (is als afkorting opgenomen in het artikel)
imec = Interuniversitair Micro-Electronica Centrum (VZW). Een onderzoekscentrum waar onder andere ASML mee samenwerkt.

Lithografiesysteem in een notendop: een chip bestaat uit een reeks lagen. De lagen worden gerealiseerd met een lithografische machine. Lithografie is in de grafische industrie bekend als druktechniek en dit principe (een ontwerp ergens op kopiëren) wordt ook toegepast in een lithografiemachine. De basis waar een chip op wordt gerealiseerd is een plak silicium, een wafer. Het ontwerp wordt daarop “afgedrukt”, waarbij het origineel een masker (of reticle) is. Licht gaat via het masker door de lens (of via spiegels) op de wafer, waar het reageert met een chemische vloeistof, resist. Waar het licht het resist raakt, kan na het belichten dit behandeld worden zodat daar “kanalen” ontstaan (of in het onbelichte deel). Die kanalen kunnen weer opgevuld worden met een geleidend materiaal, waarmee uiteindelijk transistoren gerealiseerd kunnen worden.

Hoe gaat dat in de praktijk? Wafer gaat de machine in, metingen worden verricht (omdat het plaatje op enkele nanometers nauwkeurig geplaatst dient te worden), wafer komt onder de lens/spiegels. Licht gaat via het masker en lens/spiegels op de wafer. De wafer verlaat de machine, wordt nabehandeld, zodat de volgende laag op de wafer belicht kan worden. Laag na laag wordt op die manier gerealiseerd en dat maakt uiteindelijk de (basis van de) chip.      

T-mobile instellingen modem

De instellingen voor (V)VDSL werken voor vrijwel alle DSL-verbindingen die T-Mobile aanbiedt. Werkt dit niet, probeer dan de instellingen voor ADSL. Voor glasvezelaansluitingen (Fiber via WAN/SFP) dien je het modem achter de zwarte Media Converter of witte Media Converter (ONT) aan te sluiten. Heb je momenteel een Draytek modem, dan dien je ook zelf voor een Media Converter te zorgen of een modem met glasvezelaansluiting te gebruiken. De instellingen voor het gebruik van een eigen Media Converter of ONT zie je verderop in dit artikel.

Eigen Media Converter aansluiten

Verberg inhoud

Om een eigen Media Converter te gebruiken (dit kan alleen bij een PtP verbinding op zowel het WBA-netwerk als ons eigen netwerk) dien je de volgende instellingen te gebruiken. Let er bij het aansluiten op dat je de glazen connector niet aanraakt. Dit kan de verbinding nadelig beïnvloeden.


  • Bidi optic LR (20KM)
  • TX 1310 nm, -3 ~ -9 dBm
  • RX -3 ~ -22 dBm
  • Class 1 laser product
  • Single mode Fiber (9/125)
  • SP/PC connector of SC/APC connector

Auto Negotiation: On
Duplex mode: Full
Flow control: Disabled
F/O mode: Auto

Alternatieve setting
Auto Negotiation: Off
Manual TP speed: 1000M
Duplex mode: Full
Flow control: Disabled
F/O mode: Auto

Eigen ONT (Optical Network Terminal) aansluiten 

Verberg inhoud

Om een eigen ONT te gebruiken, dien je een ONT te nemen die geschikt is voor het gebruik op je netwerk. We raden het gebruik van een eigen ONT af, omdat we bij het omwisselen enkele dagen nodig kunnen hebben om de door ons geleverde ONT weer te registreren. Als je begrijpt wat de risico’s hiervan zijn, kan je via onze klantenservice een verzoek indienen om je eigen ONT te registreren. Binnen enkele dagen zal de T-Mobile ONT de verbinding verliezen. Vanaf dat moment kan je je eigen ONT aansluiten. Let er bij het aansluiten op dat je de glazen connector niet aanraakt. Dit kan de verbinding nadelig beïnvloeden.

Op een KPN WBA glasvezelverbinding is een eigen ONT alleen mogelijk wanneer je met XGSPON verbonden bent. Mogelijk moet je lijn gemigreerd worden voordat je een eigen XGSPON ONT kan aansluiten.

Op ons eigen netwerk (GPON of XGSPON) kan je, afhankelijk van de verbinding, een GPON ONT gebruiken of een XGSPON ONT gebruiken.

VoIP (Vast Bellen)

Verberg inhoud

  • SIP Username: Kan klant vinden in My T-Mobile Thuis 
  • SIP Password: Dit moet klant zelf instellen in My T-Mobile thuis 
  • SIP Proxy Server Address: 
  • Primair compressie type: G.711a 
  • Secundair compressie type: G.722 
  • Tertiair compressie type: G.711u 
  • Bediening van spreek volume: Middle 
  • Luister volume regelaar: Middle 
  • G.168 (Echo-annulering): inschakelen 
  • RTP Start – eind poort:  40000 – 40018 
  • DTMF-modus: PCM 
  • Transport Type: UDP 
  • SIP DSCP Markeringinstelling: 46 
  • RTP DSCP Markeringinstelling: 46 
  • Vervaltermijn van SIP-registratie: 3600 seconden 
  • Mislukte timer voor opnieuw proberen van SIP-registratie: 1800 
  • Sessie verloopt (SE): 900 
  • Min-SE : 600 

IPTV (tv-kijken)

Verberg inhoud

Deze instellingen zijn enkel nodig wanneer je op het oude TV platform zit (Interactieve TV). Op het nieuwere platform T-Mobile TV gaat het tv-signaal over het internet VLAN en is er ook geen routing nodig. 

VPI/VCI   8/71 
Mode Routing Routing Routing 
Encapsulation IPoE IPoE IPoE 
IPv4/IPv6 Mode IPv4 IPv4 IPv4 
VLAN Enable 802.1p: 0 802.1q: 640 Enable 802.1p: 0 802.1q: 640 Disable 
MTU 1500 1500 1500 
IGMP Proxy 

Static Route: 

Rule Name Destination IP Subnet mask WAN Interface 
IPTV_SR01 IPTV Sub interface 
IPTV_SR02 IPTV Sub interface 
IPTV_SR03 IPTV Sub interface 
IPTV_SR04 IPTV Sub interface 
IPTV_SR05 IPTV Sub interface 
IPTV_SR06 IPTV Sub interface 
IPTV_SR07 IPTV Sub interface 
IPTV_SR08 IPTV Sub interface 
IPTV_SR09 IPTV Sub interface 

IGMP Proxy: Enabled 

IGMP Mode: Blocking Mode 

IGMP version: 2 

Notes tips en tricks

check jumbo-frames on Juniper switch :

ping no-resolve routing-instance ri-main do-not-fragment size 9170


Dit is een 55 inch – 139 cm LED 4K Ultra HD tv en wordt geleverd inclusief smart-touch afstandsbediening en een standvoet. De tv heeft 2600 PQI, 40 watt geluidsvermogen, 60 hertz en een quad core processor. 

2600 PQI

Het totaal aantal beelden dat per seconde door de gehele tv wordt geproduceerd, wordt aangeduid door PQI Picture Quality Index. Dit bepaalt de kwaliteit van weergave van bewegende beelden. Samsung maakt gebruik van hoogwaardige schermen met een extreem hoge responsetijd, die een snelle afwisseling van beelden garanderen. Elk getoond beeld wordt tot in het kleinste detail weergegeven. Hiervoor heeft Samsung drie factoren geperfectioneerd: de scherpte, de snelheid van de chipset en een breder kleurenpalet. De krachtige processor berekent tussenliggende beelden voor een vloeiende overgang tussen frames.

Uitgebreide content met Smart Hub en het platform Tizen

Stap in een wereld van grenzeloze entertainment. Alle Samsung Smart tv’s zijn uitgerust met Tizen. Ontdek een wereld aan apps, multitasking en je favoriete content, die jouw manier van tv-kijken voor altijd zal veranderen. Je kunt surfen op het net met de snelle webbrowser, tv apps snel openen en een programma bekijken via o.a. Netflix, Youtube, RTL gemist en nog veel meer want via het apps panel kunt u kiezen uit talloze apps en deze downloaden en installeren. Dankzij de enorm uitgebreide connectiviteit kun je nu pas echt genieten.

CI+ geschikt

Dit model is CI+ geschikt voor ZiggoCanal Digitaal, KPN digitenne, Telenet of een andere digitale tv aanbieder die werken met een module. Dit betekent wanneer je in het gebied woont van ZiggoCanal Digitaal, Telenet of een andere digitale tv provider, je met een smartcard en module direct digitaal televisie kunt kijken op je Samsung televisie zonder aparte digitale ontvanger! Je bedient dus alles met maar 1 afstandsbediening. Je hebt dus geen apart kastje meer nodig om naar digitale televisie in HD-kwaliteit te kijken op de Samsung ue55nu8040.

Quad Core Processor

Krachtige processor voor een volmaakt beeld. Deze processor analyseert tv beelden sneller dan ooit voor de hoogste beeldkwaliteit in de markt. De huidige smart tv’s bieden steeds meer mogelijkheden en daarom is er in deze tv een Quad core processor verwerkt. Deze supersnelle processor is 2 keer zo krachtig als de vorige generatie en daardoor is deze smart tv supersnel in het gebruik. Je kunt sneller Mutlitasken, dus lekker snel moeiteloos schakelen met 1 druk op de knop tussen een tv-serie of een app en sneller internetten met de ingebouwde webbrowser. Je kunt dus lekker snel schakelen tussen apps en tv-programma’s en websites.

HDR 1000 High Dynamic Range

Zie beelden die andere niet kunnen zien. Laat je meeslepen in de scènes zoals de regisseur ze bedoeld heeft. Bekijk alle details die vroeger onzichtbaar bleven, zowel in donkere als in lichte beelden. Een nieuw niveau van helderheid. Geniet van de zon in haar volle stralende glorie, en vind de kleinste details in de donkerste schaduw dankzij HDR 1000. Elke scène komt tot leven in je eigen woonkamer. Beleef nu zelf hoe lichtsterk deze HDR tv is. HDR is het resultaat van de combinatie van expertise en HDR10+ technologie. Zie elke nuance in beeld.

360 graden design

Zet je televisie waar je maar wil. De achterkant is strak ontworpen en de kabels kunnen netjes worden opgeborgen in de elegante voet. Rustig en modern, ook aan de achterkant. Blinkt uit in eenvoud en eigentijdse verfijning. Op een voet of aan de muur, de gestroomlijnde, schitterend afgewerkte televisie, zonder zichtbare kabels, staat overal prachtig. Tijdloos design, volmaakt voor iedere omgeving. Ongestoord kijkplezier zonder zichtbare omlijsting. De volgende stap in het design van een televisie. Met het mooie ontwerp staat hij overal goed.

Dynamic Crystal Color

Dynamic Crystal Colour technologie houdt in dat Samsung pixels verbeterd heeft en die leveren een verbluffend contrast met meer dan 17 miljoen levensechte kleuren. Er wordt een breder kleurenpalet bereikt dan bij een normale UHD TV en hierdoor treedt er minder snel ruis op en verzadiging van tinten. Resultaat zijn mooie, heldere beelden en veel kijkplezier voor jou. Alle schitterende facetten van het leven worden briljant weergegeven in dynamische, kristalheldere kleuren. Gegarandeerd perfect beeld voor alle content. Dit moet je echt zien.

4K Ultra HD Connected

Het tv kijken was nog nooit zo realistisch. Ronddwarrelend stof, een schittering in de ogen en vliegensvlugge actie; met deze Samsung TV mis je niks. Alle details zijn superscherp en beelden komen echt tot leven. Bovendien leidt het slanke design niet af van waar het echt om gaat: dé perfecte kijkervaring. Niet alle 4K-tv’s zijn hetzelfde. Het certificaat 4K ULTRA HD Connected garandeert dat de beeld- en geluidskwaliteit van de televisie voldoet aan de hoogste standaard van de Consumer Electronics Association.

Non-stop entertainment en on screen notification

Content synchroniseren en delen. Ook als je niet stilzit, kun je blijven kijken. Je kunt nu je content synchroniseren en delen met je mobiel, je tv en zelfs je koelkast. Eigenlijk met alle Samsung-apparaten, via Samsung Cloud. Je kunt dus rustig een bak popcorn gaan halen in de keuken, zonder dat je iets hoeft te missen. Ben je een was aan het draaien? Dan hoef je voortaan niet meer te kijken of de machine al klaar is. Er verschijnt namelijk een melding in de hoek van je tv-scherm als de was gedaan is. Dus blijf gerust genieten van je favoriete programma want zodra je wasmachine klaar is krijg je een melding.

Één afstandsbediening

Ultiem bediengemak in de palm van je hand. Bedien alle aangesloten apparaten met één afstandsbediening. Smart Control-remote met bewegingsdetectie die ingezet kan worden als universele afstandsbediening. Apparaten zoals set-top boxen, gameconsoles en home-cinema systemen kunnen ermee worden bediend. Doordat de televisie zelf detecteert welk merk en type apparaat is aangesloten is het niet nodig om deze functie voor gebruik te configureren. Bij deze televisie krijg je de Smart Touch Remote Control geleverd met ingebouwde microfoon en touchpad.

SmartThings app

Met de SmartThings app zijn de mogelijkheden bijna eindeloos. Verschillende apparaten aansturen? Geen probleem. Je hoeft alleen de SmartThings-app te downloaden op je mobiel om je nieuwe LED tv en alle andere verbonden apparaten aan te sturen en in de gaten te houden, via één scherm! Eén app voor alles. Stuur je apparaten in huis naadloos aan vanaf je nieuwe LED televisie. Vanuit het dashboard kun je elk verbonden apparaat afzonderlijk instellen. Je regelt het hele huishouden ontspannen op de bank, voor de televisie en ontdek alle mogelijkheden die er zijn.

Auto Detection en Instant On

Deze televisie vindt en herkent al je aangesloten apparaten sneller. Deze Samsung televisie toont automatisch de namen van de aangesloten apparaten en maakt het kiezen van de juiste ingang wel heel gemakkelijk. Door middel van een informatiebalk op de tv word het nu heel makkelijk te zien wat er is aangesloten op welke bron. Met de Instant On technologie van Samsung is je televisie in 2 seconden opgestart. Dus je hoeft niet meer lang te wachten en gelijk genieten van je smart tv. De televisie onthoud waar je gebleven was en je kunt weer verder waar je mee bezig was.

Content synchroniseren en delen en SmartThings

Haal het maximale uit de Samsung Cloud. Verbind je slimme Samsung-apparaten zonder problemen om foto’s te synchroniseren. Nu kun je alle foto’s van je telefoon delen en bekijken op de tv of het scherm van je koelkast. Een eindeloze hoeveelheid content wacht op je. Verbind je slimme apparaten. Met SmartThings verbind je jouw tv met de slimme apparaten in je huis, van je koelkast tot je smartphone, voor naadloze interactie. Entertainment, maar dan sneller, simpeler en slimmer. Ontdek on-screen entertainment met een indrukwekkend formaat.

UHD Dimming

Met UHD Dimming technologie geniet je van documentaires, series, televisie programma’s en films in de uitstekende beeldkwaliteit. Het beeld word geoptimaliseert door wit nog witter en zwart nog zwarter te maken en verbetert de kleuren en de scherpte door het scherm in meerdere zones te verdelen. Door haarscherpe details en pure kleuren ben jij verzekerd van uitmuntende beeldkwaliteit. De televisie herkent welk signaal binnenkomt en past automatisch de instelling daarop aan zodat lichte en donkere kleuren optimaal worden weergegeven.

UHD picture engine

Automatische upscaling van content met lagere resolutie. Samsungs UHD Picture Engine verbetert materiaal met een lagere resolutie naar aan UHD grenzende kwaliteit. In 4 innovatieve stappen wordt je favoriete content omgezet in levensechte beelden. De ULTRA HD Engine kun je als de motor van het ULTRA HD-paneel beschouwen, die ervoor zorgt dat de kwaliteit van de upscaler wordt verbeterd. Gewone resolutiebeelden wordt dankzij de engine omgezet naar ULTRA HD-kwaliteit. Geniet dus altijd van haarscherpe beelden op deze tv van de Samsung NU8040 serie.

Multimediacenter en WiFi

Dankzij de USB-ingangen van Samsung televisies tover je je eigen kamer om in een multimediacenter. Via USB speel je content rechtstreeks af op je TV. Door je USB-stick of externe harde schijf aan te sluiten op je televisie kun je jouw persoonlijke video’s en foto’s bekijken. Deel je vakantiefoto’s met je familie, vrienden of kennissen of luister naar je favoriete muziek. Deze televisie beschikt over geintegreerde WiFi. Hierdoor hoef je de televisie niet bedraad aan te sluiten op je netwerk, maar kan je meteen gebruik maken van alle internetfuncties die deze LED televisie je aanbiedt. Surf gemakkelijk op het internet en deel moeiteloos al je content.

Contrast enhancer

Deze tv staat voor fenomenale beelden met meer diepte en krachtigere contrasten. Laat je ieder moment van de dag en in elke omgeving betoveren door intense scènes. De combinatie van krachtig contrast en Local Dimming geeft het beeld een grote scherpte en contrast. Laat je raken, de contrast enhancer technologie verbetert het contrast dankzij een optimale lichtproductie en maakt alles nog mooier en spectaculairder. Deze technologie zorgt ervoor dat de zwarttinten nog zwarter worden weergegeven. De technologie herkent voor- en achtergrond en past automatisch verschillende niveaus van contrast toe.

Learn to Use CURL Command in Linux With These Examples

Page Contents

What is CURL ?

CURL is a tool for data transfer. It is also available as a library for developers and as a CLI for terminal-based use cases. Both have the same engine inside (Truth is that CLI tool is just the program that uses the library under the hood).

CURL works with every protocol you might have used. Head over this site to check whether CURL works with your target protocol or not.

What CURL can do?

Hmm… Everything that is related to data transfer. Everyone must have used a browser. Even now, you are reading this article through your browser. What browser does, it requests a page and gets it as a response. It can write and read cookies. And then it renders(displaying the content, images and executing JS scripts) it. 

CURL can do everything a browser except for the last part rendering because it is not related to data transfer.

As wrap up, CURL can download HTML pages, fill HTML forms and submit them, download files from a FTP/HTTP server and upload files to the same and read/write cookies.

This makes it an excellent tool to be used in scripting, debugging and forensic analysis etc.

Curl command examples

curl command examples in Linux

Let’s see what can you do with Curl.

1. Get a response from a server

Everything from server is a response to the request. So getting a HTML page is same as downloading a file.

To get a HTML response from,


To get the list of posts as a response from a server (, 


Since we know how to get a response from a server, you can download a file ( say Google logo ).


Above command will dump binary image data which you can’t view in the terminal. You need to save them and then use a photo viewer to see them.  Continue reading to find out how to do so.
READ  9 Useful Examples of Touch Command in Linux

Note that various option flags can be placed anywhere on the command instead of the strict ordering. So no worry if you placed any option in the last while the examples had the flag in the beginning.

2. Save the file with a default file name

Every file that is served on the internet has a filename. To use the same filename as the downloaded filename use -O flag.

curl -O

3. Save the file with custom name

To save the filename with your own custom name, use -o flag followed (strictly) by a custom name.

curl -O googleRobots.txt

4. Download multiple files

To download multiple files, separate them with a white space.

curl url1 url2 url3

If you want to use -O flag for all the URL’s, use

curl url1 url2 url3 -O -O -O 

The same workaround should be done for any flag. This is because the first occurrence of a certain flag is for the first URL, the second flag is for the second URL and so on.

5. Download a range of files

curl has the in-built ability to download a range of files from the server. This can be illustrated from the following example.


Above command downloads files from logo1.png, logo2.png, logo3.png and up to logo9.png.

6. Download a file only if latest

To download a file only if the file’s modification time is latest than the given time.

curl url -z "DD MMM YY MM:HH:SS"

7. Resume Downloading

If you have already partially transferred a file, you can resume the transfer by using the -C flag. Offset from which transfer needs to be continued should be passed as a parameter to the -C flag.

curl -C 1024 -O

8. Upload a file

To upload a file to the server, one needs to use -T flag followed by the file path on your local system.

curl -T uploadFile.txt

9. Delete a file

To delete a file named deleteFile.txt in a server, one can use -X flag which is intended for any HTTP verb/method(like GET, POST, PUT, DELETE, PATCH). Most of the FTP servers will have configured DELETE method if not all advanced HTTP methods.

curl -X DELETE

You can also modify the above command for any HTTP method to do the corresponding task. For Example, if your server allows TRUNCATE method ( this is made-up HTTP method, not a standard one) which removes only the content in the file and not the file, one can use the command similar to the below one.


Above mentioned are the main uses of curl. But there might be difficulties which needed to be fought such as redirects, user authentication, SSL certificates, etc., We can call them add-ons as they are only optional but still remain crucial for certain purposes. Let’s see some of those addons and how to handle it with curl in the next section.READ  5 Practical Examples of chgrp command in Linux

10. Avoid redirects

When you request htttp:// , you will be served only the regional page such as This is done with the help of redirects (HTTP packets with status codes in the range 300-399).

You can avoid redirects with the option L.

curl -L  htttp://

11. Authentication

When the server is configured to serve for only certain individuals with credentials, they will be provided with username and password. One can make login with the help of -u flag.

curl -u username:password

12. Limit data transfer

If you want to impose a data transfer limit use –limit-rate flag. Following command tries to download the file with rate limit as 10K.

curl --limit-rate 10K

13. Show/Hide transfer Status

If the response is redirected from the terminal such as downloading, uploading then curl automatically shows the status/progress meter for the transfer.

If you do not want to see the progress meter, just append the command with -s flag. Progress will not be shown for response directed for the terminal.

14. Ignore SSL certificates

Do you remember the situations in which you need to give security certificate exception to visit some websites? If you trust the sources and you want to do a data transfer, you can ignore SSL certificate validation by using -k flag.

curl -k

15. Get Header Information also

To display the header information along with transferred data, use the -i flag.

curl -i

16. Get Header information Only

If you want only the headers and not the data, use the -I flag

curl -I

17. Change User Agent

Some websites and servers don’t allow certain kinds of devices to access their systems. But how do they know that we are using a specific kind of device? This is due to the User-Agent HTTP header field. We can change this User Agent with -A flag.

curl -A "Mozilla FireFox(42.0)"

18. Sending data to the Server

If the server needs some data such as token or API key, use -d flag to send the data. Data that needs to be sent should follow the flag in the command. One can use “&” to combine multiple data. This is usually done by GET and POST requests in browsers. This is one of the ways by which you can send your form information.

curl -d "token=34343abvfgh&name='seeni'"

19. Write Cookies to a File

Cookies are some small information that allows maintaining a session with a stateless HTTP protocol. If you want to know more about Cookies, refer to this great resource.READ  10 Practical Grep Command Examples for Developers

To write cookies to a file, -c flag followed by the cookie filename should be used.

curl -c googleCookie.txt

20. Reading Cookies from a File

To read a cookie from the file, -b flag followed by cookie filename can be used.

curl -b googleCookie.txt

Note that -b flag only reads the cookie from the file. So if the server resends another cookie, you might need to use -c option to write them.

21. Start a new Session

If you want to initiate a new session by discarding the cookies, use -j flag. It starts a new session even if you have provided the cookie file to read with -b flag.

curl -b googleCookie.txt -