Skip to content

RezaRahemtola/42sh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

42sh

Features

Aliases

Making up new commands as abbreviations for longer, more complex commands:

  • alias lists all aliases
  • alias name displays the value of this alias
  • alias name [word_list] sets word_list as the value for name
  • unalias [name1, name2...] remove the given aliases. * is supported.

Special aliases supported:

  • precmd runs just before each prompt is printed
  • cwdcmd runs after every change of working directory
History

Invoking previous commands using command history:

  • !! executes the previous command
  • !n executes the nth command that was previously executed
  • !-n executes the command that was executed n commands ago
  • !string executes the most recently executed command that starts with string
  • !?string executes the most recently executed command that contains string
  • history [nb] displays the previous commands (up to nb if specified) with their index and time of execution (hh:mm)
A .42sh_history file is also stored in the user's home folder to have a persistent history between sessions.
Job control
  • fg id brings the specified job into the foreground, where id is the job ID
  • jobs lists all jobs
Line editing
  • and to select a command from the history to edit/execute
  • and to move in the input and edit it
  • CTRL + L to clear the screen
Local environment

Variables specific to the current shell:

  • set var = val creates/updates var with val
  • set var1 var2 ... creates/updates several variables with empty values
  • -r is an option that can be used with set for a read-only variable, which means that you won't be able to use set or unset on it again.
  • unset var1 var2 ... removes the given variables

Preloaded variables:

  • cwd for the current working directory (will be updated when you change directory)
  • euid for the effective user id
  • euser for the effective username
  • gid for the user's group id
  • group for the user's group name
  • history explained below, set to 100 by default
  • home for the user's home directory
  • owd for the old working directory (will be updated when you change directory)
  • uid for the user id
  • user for the username

Special variables supported:

  • ignoreeof to disable EOF shell exit if set to 0 or empty. If set to a number n, the shell will exit on the nth consecutive EOF.
  • history to set a limit of commands display by the builtin of the same name.

Developers


Florian Lauch

Léa Guillemard

Dorian Moy

Reza Rahemtola

About

A complete UNIX Shell in C.

Resources

Stars

Watchers

Forks

Releases

No releases published

Contributors 4

  •  
  •  
  •  
  •