While English may not be the most spoken language in the world, it’s definitely one of the most important ones, especially in the world o business. It is often the language of choice between two parties when both speak and understand only their native languages. Good English skills open new avenues for those aspiring to study abroad or get involved in research activities.
There are many ways you can learn English, but the geekiest way has to be from the Linux terminal. If your job involves working on computers (specifically, the Linux command line), and you don’t have much time to devote to any other activity, here’s a nice little way to improve your English. In this article we will discuss how you can do that.
Note: all commands and instructions mentioned in this article have been tested on Ubuntu 16.04.
Sudocabulary
Sudocabulary is the tool that we will be discussing in this article. It’s basically a script that when executed makes every terminal window that you launch thereafter greet you with a new English word along with its meaning. Basically, you get to learn (or relearn) a new English language word each time you open a command line terminal.
Sudocabulary is developed by a guy named B Adarsh, and its GitHub page reveals that the developer is advertising the tool as “a smart way to memorize flash card words for exams like GRE.” Moving forward, there are even plans to add mnemonics for each word to more easily remember.
Installation and Usage
Installing Sudocabulary is a fairly easy process. All you have to do is execute the following command:
curl https://raw.githubusercontent.com/badarsh2/Sudocabulary/master/script.sh | bash
If the above command is successful (which it most likely should), the tool will be active. You can test it by opening a new terminal window or tab. For example, the following is how the terminal window looked in my case.
Here are a couple more examples.
To remove the tool, just open the “.bashrc” file in your Home folder and delete all references to “.vocab” as well as remove the “.vocab” file from your home directory.
Conclusion
Sudocabulary may represent a very simple idea, but it could be of great help to those who have a very busy daily schedule – learning one word at a time is neither difficult nor time-consuming. Of course, there is a vast scope for improvement – for example, the output could also have a sentence or two explaining how the word can be used – but it’s an effective first step, I’d say.
3 comments
Comments are closed.
I use the fish shell, can I use this by just changing bash to fish?
Looking over the script.sh file, it basically automates the process of adding the location of the (executable) “.vocab” file to bashrc (and similar for zsh and macOS’s darwin). Fish isn’t supported within the script itself, so it won’t work anyway.
bashrc runs everytime you open the terminal – this is how the ‘word of the day’ file (.vocab) is ‘called’. I did a quick search and the ‘fish’ equivalent to bashrc is the following:
~/.config/fish/config.fish (create it if it does not exist (also, note the leading period))
The script also makes the “~/.vocab” file executable. You could opt to do it all manually (pretty straighforward):
(1) download the “.vocab” file directly (2) make it executable (chmod +x /.vocab) (3) edit *config.fish* to point to location of file.
Location of .vocab extracted from script.sh: https://raw.githubusercontent.com/badarsh2/Sudocabulary/master/.vocab
(note: I used getlinkinfo.com to expand the shortUrl (bit.ly) embedded in script.sh)
Did not work for me
[root@localhost ~]# curl https://raw.githubusercontent.com/badarsh2/Sudocabulary/master/script.sh
wget -O ~/.vocab “http://bit.ly/1WinY8l”
if [[ “$OSTYPE” == “linux-gnu” && $(echo $0) == “bash” ]]; then
OSBASHRC=bashrc
elif [[ $(echo $0 == “zsh”) ]]; then
OSBASHRC=zshrc
elif [[ “$OSTYPE” == “darwin”* ]]; then
OSBASHRC=bash_profile
fi
echo “” >> ~/.$OSBASHRC
echo ‘chmod +x ~/.vocab’ >> ~/.$OSBASHRC
echo ‘~/.vocab’ >> ~/.$OSBASHRC
[root@localhost ~]# echo $SHELL
/bin/bash