Home Learn Linux Running JavaScript in the Linux Terminal

Running JavaScript in the Linux Terminal

Running JavaScript in the Linux terminal offers developers flexibility and power. This concise guide unveils the steps to seamlessly execute, test, and debug your JS scripts from the command line.

by Arun Kumar
running javascript in linux

If you’re a developer, you might be surprised to learn that you can use JavaScript directly from the Linux terminal. This feature has many benefits, including the ability to test code snippets, automate tasks, or even build powerful applications.

In this article, we’ll take a closer look at how to run JavaScript in the Linux terminal, and explore the different commands and their syntaxes. By the end of this article, you’ll have a better understanding of the potential of running JavaScript in the Linux terminal.

Running JavaScript in Linux Terminal

What will you need?

  1. A Linux machine: Almost any distribution will do, but I’m a fan of Ubuntu for its ease of use.
  2. Node.js: This is the magic tool that allows us to run JavaScript outside of the browser.

Installing Node.js

Before diving into running JavaScript, we need to set up our environment. Node.js is our go-to runtime for this. To install Node.js:

sudo apt update
sudo apt install nodejs

Output:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
...
Setting up nodejs (version_number) ...

The sudo apt update command updates the package lists for upgrades, while sudo apt install nodejs installs the latest version of Node.js. I must say, I always find it satisfying to see those package installations complete without a hitch!

Checking Node.js version

After installation, it’s always a good habit to check the version:

node -v

Output:

v16.5.0

The -v switch provides the version number of the installed Node.js. It’s like asking, “Hey Node, which version are you?” And Node politely responds.

Running your first JavaScript code

The moment of truth! Let’s execute some JavaScript:

node -e "console.log('Hello from the FOSSLinux!')"

Output:

Hello from the FOSSLinux!

The -e switch allows you to execute the code written in quotes. While it’s quite simple, I find myself giddy every time I see my JavaScript code come to life in the terminal!

Running JavaScript from a file

While running code snippets is fun, sometimes you’ll have a .js file you want to run. Here’s how:

  1. Create a file named sample.js.
  2. Inside, write console.log('Running JS from a file!').

To run the file:

node sample.js

Output:

Running JS from a file!

Honestly, there’s something wholesome about running a JS file from the terminal. It’s like the bridge between web development and system operations!

REPL: The interactive JavaScript shell

Another cool feature I’ve grown fond of is the REPL (Read-Eval-Print Loop). It’s an interactive JavaScript shell:

node

Then you can start typing JavaScript commands directly.

Sample Input & Output:

> let a = 10;
undefined
> let b = 5;
undefined
> console.log(a+b);
15
undefined

To exit the REPL, just type .exit or press CTRL + C twice.

Node.js built-in modules: A quick reference table

The following table gives an overview of Node.js’s built-in modules and how they can be used. By utilizing these modules, you can greatly enhance your JavaScript scripting abilities in the Linux terminal. As someone who is passionate about coding, I frequently refer back to this table as a quick reference guide.

Module Name Description Sample Usage
fs File System module to interact with files. const fs = require('fs')
http Create HTTP server and client. const http = require('http')
url Parse URL strings. const url = require('url')
path Handle and transform file paths. const path = require('path')
os Provides information about the operating system. const os = require('os')
querystring Parse and format URL query strings. const qs = require('querystring')
util Access to utility functions mainly for internal use. const util = require('util')
stream Handle streaming data (like reading large files). const stream = require('stream')
crypto Cryptographic functionality including hash, cipher etc. const crypto = require('crypto')
events Event-driven programming, like creating custom events. const EventEmitter = require('events')

Some handy tips

  1. NPM (Node Package Manager): While not directly related to running JS in the terminal, NPM is a gem that comes bundled with Node.js. It’s the largest software registry, and with it, you can install packages, libraries, and tools to supercharge your JS journey.
  2. Scripting with Node.js: When you’re comfortable running JS in the terminal, think bigger! Automate tasks, access file systems, or even build CLI tools.
  3. Error Handling: Errors are inevitable. When they pop up in the terminal, don’t fret! They’re just messages to help us, not to hinder. Embrace them and learn from them. I’ve spent countless nights befriending those error messages!

Frequently Asked Questions (FAQs) about Running JavaScript in the Linux Terminal

1. Can I use ES6 and later features in the Linux terminal?

Answer: Absolutely! Node.js supports many ES6 and later features out of the box. However, it’s essential to know that the supported features depend on the version of Node.js you have installed. Always ensure you’re using a recent version to enjoy the latest ECMAScript goodies.

2. I’ve heard about frameworks like Deno. Can I use them instead of Node.js?

Answer: Yes, Deno is another runtime that allows you to run JavaScript and TypeScript in the terminal. I have a personal soft spot for Node.js because of its maturity and vast community support. However, Deno brings in some unique features and is definitely worth a try!

3. How can I update Node.js to the latest version?

Answer: Keeping Node.js updated ensures you benefit from the latest features and security patches. You can use package managers like nvm (Node Version Manager) to manage and switch between different Node versions effortlessly.

4. Is there a performance difference between running JavaScript in a browser vs. the terminal?

Answer: Generally, the core JavaScript engine (like V8 for Chrome and Node.js) is the same. However, the environment and available APIs differ. Browsers provide APIs for DOM manipulation, while Node.js offers APIs for server and system tasks. Performance can vary based on the task and the APIs used, but the inherent processing of JavaScript remains consistent.

5. Can I connect to databases and other services using JavaScript in the Linux terminal?

Answer: Yes, with Node.js, you can connect to databases, make HTTP requests, interact with file systems, and much more! This is one of the reasons I love Node.js; it transforms JavaScript from a mere browser scripting language to a powerful general-purpose language.

6. How do I handle asynchronous operations in terminal-based JavaScript?

Answer: Just like in browser-based JavaScript, you can use callbacks, promises, and async/await. Node.js fully supports asynchronous operations, which is one of the reasons it’s so powerful for tasks like I/O operations.

7. Why do I sometimes see undefined in the Node.js REPL?

Answer: Ah, that’s a classic! The REPL returns the result of the expression you’ve typed. If an expression doesn’t explicitly return a value, it’ll show undefined. It’s just the REPL’s way of saying, “I’ve processed your command, but there’s no value to show.”

Wrapping up

Although it may seem unconventional, running JavaScript in the Linux terminal can be a valuable skill to have. The versatility it offers is immense, allowing you to execute simple commands or run full scripts. Despite my preference for GUI tools, I can’t resist the undeniable charm of the Linux terminal. Every command, every line of code, and every error is a step closer to mastery. So dive in, experiment, and soon enough, you might just find that the terminal is your favorite playground for JavaScript!

You may also like

Leave a Comment

fl_logo_v3_footer

ENHANCE YOUR LINUX EXPERIENCE.



FOSS Linux is a leading resource for Linux enthusiasts and professionals alike. With a focus on providing the best Linux tutorials, open-source apps, news, and reviews written by team of expert authors. FOSS Linux is the go-to source for all things Linux.

Whether you’re a beginner or an experienced user, FOSS Linux has something for everyone.

Follow Us

Subscribe

©2016-2023 FOSS LINUX

A PART OF VIBRANT LEAF MEDIA COMPANY.

ALL RIGHTS RESERVED.

“Linux” is the registered trademark by Linus Torvalds in the U.S. and other countries.