Skip to content

Matoi647/myshell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Simple Linux Shell

Features

  • Build-in commands: exit, pwd, cd, wait
mysh> cd			# change the working directory to $HOME
mysh> cd [dir]		# change the working directory to specific directory
mysh> pwd			# print working directory
/home/username
mysh> wait			# wait for background jobs to finish
  • Externel commands: cat, echo, ls, ps, find... Depending on binary files in /bin/
mysh> echo hello
hello
mysh> ls -a
.  ..  .git  .gitignore  Makefile  README.md  mysh  mysh.c  test-mysh.sh
  • Redirection: Both input and output redirection
mysh> ls -la /tmp > output	# output redirection
mysh> cat < mysh.c > tmp.c	# input and output redirection
  • Background job: Use a trailing ampersand '&' to create background. Use wait to wait for background jobs to finish.
mysh> ls &
mysh> ps &
mysh> find . -name *.c -print &
mysh> wait
  • Batch Mode: Read from the batch file back to the user before executing it. Use .\mysh [batch_file] . to run batch mode.

For example, the content of test.sh is as follows:

echo hello > tmp
cat tmp
bash> mysh test.sh
echo hello > tmp
cat tmp
hello