Using the terminal

An introduction to using Bela on the command line

Though it’s small, Bela is a full Linux system. As well as using the browser-based IDE, you can manipulate the files in your Bela system using your computer’s command line. On this page, we show you the basics of interacting with Bela using the command line. Open a terminal and go through the instructions below, and try some of the techniques listed here.

(Note that in this wiki we use the convention here that commands to be typed by the user are here displayed prepended by a $, while the output of a program is displayed without the leading $.)

Execute a program

Executing a program is as simple as typing its name and hit enter. Once your terminal is open, try typing the following

$ ls

file1
file2
file3

again, according to the convention mentioned above, in this snippet you will only have to type ls followed by enter, and the program will output a list of the files contained in the current folder. So we learned the command ls, which lists the files in the current directory. Again, executing a program is as simple as typing its name followed by enter

Get help

Often times commands accept options that allow to modify their default behaviour. Most of the time, it is possible to obtain help on a command and info on the supported options by typing --help after the program name. Make sure you leave a space between the program name and the --help option.

$ ls --help
usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]

Now, the sample response above was not very informative. The response above was from a Mac OSX machine, it may be different (e.g.: more informative) on your machine. A way of obtaining more exhaustive help on a program is to prepend the command name with man.

$ man ls

On systems that support man, this will bring up a detailed help file which you can browse with the up and down arrow keys and you can quit by pressing q.

Pass options to a program

As mentioned, a program may allow (or require) additional options beside the command name. We have already seen two examples above of how to pass options to a program:

$ ls --help

passed the option --help to the program ls and

$ man ls

passed the option ls to the program man.

As a general rule, the program name is going to be the first word of the line (apart for some special cases) and anything else that is separated from it by spaces is considered to be an option passed to the program. If you want to pass multiple options, you will again have to leave a space between them. For instance the following command

$ ls -l -h

will list the files in the folder with the -l option (which means long format) and the -h option (which means human-readable sizes).

Browsing the filesystem

You will often find that you have to move to a different folder than the one you are in before you are able to execute a particular program. To know the folder you are currently in, use pwd (print working directory):

$ pwd
/Users/yourname

To move to a different directory, use cd (change directory):

$ cd Desktop

you will have noticed that this command did not produce any output. Nothing to be worried about. When cd succeeds, it produces no output. Now try

$ cd Bela-master

if you get something like

bash: cd: Bela-master: No such file or directory

then it means that you probably did not download this [[archive|https://github.com/BelaPlatform/Bela/archive/master.zip]] and unzipped it on your desktop. Do that before proceeding and make sure the cd Bela-master command succeeds before continuing.

Prepare to use the Bela scripts

Now that you know everything (you need) about the terminal and you are in the Bela-master folder, have a look at the content of the scripts/ folder. To do so run

cd scripts 
$ ls
build_pd_heavy.sh
build_project.sh
connect_to_project.sh
halt_board.sh
hvresources
ide.sh
run_project.sh
set_startup.sh
setup_ssh.sh
stop_running.sh
update_board

Of the listed files, hvresources is a folder (and depending on your shell’s settings, it may be displayed in a different color), while all the others are the Bela scripts. The help for each of those can be reached adding the --help option. This will give you a description of what the program does and what options it takes. Try, e.g.:

$ ./update_board --help

note that there is only one small (but crucial) difference from all the examples above: the program name is now preceded by a “./”. This tells the shell to “look for the file in the current folder”. This is not needed for programs like ls or pwd which reside somewhere else on your disk drive.

Every time you use a Bela script, you need to prepend “./” to its name, otherwise you would get something like

$ update_board
bash: update_board: command not found