What is bash in unix/linux/ubuntu?

  • Thread starter Avichal
  • Start date
In summary, shells such as bash are textual ways to interact with a Unix-like operating system, similar to how the desktop is a graphical way to interact with the OS. Bash scripting refers to writing a series of bash commands in a text file to be executed automatically. Bash is also a programming language, allowing for more complex tasks to be performed through the use of loops and conditions. The multiple terminals in Ubuntu allow for multiple users to log in simultaneously or for one user to have multiple terminals open. Shells are used by system administrators to automate complex tasks, even when a GUI is available.
  • #1
Avichal
295
0
Desktop is the graphical way to interact with the OS right?
So similarly is bash the textual way to interact with the OS?
Then what is bash scripting? Can we program bash? I don't really understand what bash is actually
 
Computer science news on Phys.org
  • #2
Avichal said:
So similarly is bash the textual way to interact with the OS?

It's one of the textual ways to interact with a Unix-like OS. Generically these are called shells. Besides bash, some other shells are sh, csh, ksh, and tcsh.

Then what is bash scripting?

A bash script is simply a file that contains a series of bash commands. Similarly for the other shells. The first line of the script normally indicates which shell is to be used, for example a sh script might have

#!/bin/sh

at the beginning. The exact form depends on exactly where the shell is installed, which depends on your version of Unix or Linux.
 
  • #4
To approach it from a slightly different direction, shell (and as jtbell already wrote, bash is a shell, actually bash stands for Bourne-again shell) is a program that takes input from your keyboard and executes it (either directly, or running other programs). Scripting means instead of typing series of commands one by one from the keyboard you put them in a single text file - and shell executes them automatically. This file is what we call a shell script.
 
  • #5
But you can also write programs in bash...with the for loops, while loops, if conditions etc.
So bash is more than just textual input and output?
 
  • #6
Not sure what you mean by "just textual input and output" but yes, it is more than just a simple command line interpreter like the one known from MS-DOS. In a way it is a programming language.

Note that it is possible to use loops even from command line, for example single line like this one:

Code:
while :; do for i in *.avi; do omxplayer $i; done; done

plays for ever all *.avi files in the current directory using omxplayer (I am using it on my Raspberry Pi). Same combination of commands can be also put in its own file without semicolons, but with newlines separating commands - then it will be a standard bash script.
 
  • #7
Before gui came was terminal/bash like shell the way to communicate with the computer?

And is this the reason why linux users love using terminal as it allows writing code to do something that would be tedious using gui
 
  • #8
Avichal said:
Before gui came was terminal/bash like shell the way to communicate with the computer?

It was machine dependent. Definitely all Unix machines worked this way.

And is this the reason why linux users love using terminal as it allows writing code to do something that would be tedious using gui

Giving commands through command line is often much faster than using GUI, plus it let's you easily combine many tools, which is not easily doable in GUI. There are things that can be done much easier using command line, there are things that can be done much easier using GUI.
 
  • #9
Why are there 6-7 terminals in ubuntu?
I have noticed that ubuntu has tty1, tty2, tty3, tty4 ...till tty7.
 
  • #10
tty0?

With tty0 there would be 8, and 8 is a nice number on computers. But it still looks low to me.

In Debian on Raspberry I have 64 terminals. Same on an older that dirt RedHat and and on CentOS that was set up last year.

These are just machines I have an access to, no idea what is the standard.
 
  • #11
One of the reasons is you may want several users to be able to log in simultaneously. Or even just one user have multiple terminals, so they can do something else while a long process is running.

Note that not all these users need to be physically at the computer. If you open a remote session, for example through ssh, you will also be assigned to one of the terminals.
 
  • #12
The contextual question you should ask is: why don't other operating systems have this.

1. shells like bash enable you you use and program your computer without a GUI. In the old days people just had terminals.

Examples of terminals

1.1 Teletypes (antiquated)
http://en.wikipedia.org/wiki/Teletype_Model_33

1.2 VT220
http://en.wikipedia.org/wiki/VT220

1.3
PDP 11 computer (probably running Unix) and an LA120 terminal (its a dot matrix printer too)
(Unix was a predecessor of linux)

2. you can log multiple times to many versions of Microsoft Windows, just like you can log in multiple times to Ubuntu using the various terminals. In the old days these corresponded to real terminals.


4. In the old days people had terminals, these days people have terminal emulators. A LOT of the way bash and other shells work is based on how these terminals worked.

To list the terminals in Ubuntu type 'ls /dev" in the shell. Everything starting with 'pty' is a psuedo teletype, everything starting with 'tty' is a teletype.
 
Last edited by a moderator:
  • #13
A shell is just a command-line language; it is a set of commands you can give to the computer's operating system. As other users point out above, there are multiple dialects of shells available, and you can configure your account to use the one you want. 'bash' is just one dialect of shell language.

You use shell commands either in a command window, or if no GUI is running. Windows computers also have a command-line language, similar to shells, but the Windows command-line language is not called a shell; instead, it is now called Power Script. Current versions of Windows tend to have all the same capabilities in their scripting language that Linux shell languages tend to have.

System administrators like to use command-line scripts (programs of multiple commands) to automate complex actions that have many parts, even if a GUI is also available. Scripts can also run when the machine is on but a user has not logged in, whereas a GUI will only run for a logged-in user.
 

What is bash?

Bash is a command language interpreter that is used in various Unix, Linux, and Ubuntu operating systems. It stands for "Bourne Again SHell" and was developed as a replacement for the original Unix shell, the Bourne shell.

How is bash different from other shells?

Bash is the default shell for most Unix, Linux, and Ubuntu operating systems. It is more powerful and versatile than the original Bourne shell and has features such as command history, command line editing, and job control. Bash also supports the use of scripts, making it a popular choice for system administrators and developers.

Can bash be used on other operating systems?

While bash is primarily associated with Unix, Linux, and Ubuntu operating systems, it can also be used on other operating systems such as macOS and Microsoft Windows. There are various implementations of bash available for these systems, such as the GNU Bash and Windows Subsystem for Linux (WSL).

How do I use bash?

To use bash, you can open a terminal or command prompt on your Unix, Linux, or Ubuntu system and start typing commands. Bash uses a syntax where you enter the command followed by any arguments or options. You can also write scripts in bash using a text editor and run them using the bash interpreter.

Is bash the only shell available on Unix, Linux, and Ubuntu?

No, there are other shells available such as csh, ksh, zsh, and more. However, bash is the most commonly used and is the default shell for most systems. Users can also choose to use a different shell by changing the default shell in their system settings.

Similar threads

Replies
16
Views
2K
  • Programming and Computer Science
Replies
1
Views
505
Replies
3
Views
326
  • Programming and Computer Science
Replies
33
Views
2K
  • Computing and Technology
Replies
21
Views
2K
  • Computing and Technology
Replies
20
Views
2K
  • Computing and Technology
Replies
12
Views
3K
  • Programming and Computer Science
Replies
3
Views
1K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
15
Views
1K
  • Computing and Technology
Replies
31
Views
2K
Back
Top