paint-brush
Introducing Linux Command Line to Beginnersโ€‚by@dolamu-asipa
378 reads
378 reads

Introducing Linux Command Line to Beginners

by Dolamu AsipaAugust 21st, 2021
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Last month, I learned how to use the Linux command line with The Odin Project (TOP) curriculum. I am currently curating my coding studies with the Odin Project. The project encourages students to use a Linux system to learn to code, while those with a windows computer are taught how to access Ubuntu through a virtual machine. For this learning-in-public journey, I have chosen to share my notes below. To see what files or directories are in your current directories, type the mkdir command. To create a file, use the touch command to create a single file.

Company Mentioned

Mention Thumbnail
featured image - Introducing Linux Command Line to Beginners
Dolamu Asipa HackerNoon profile picture


In my last blog post, I mentioned that I would be learning in public and sharing what I learn online to hold myself accountable and measure my progress.


Well, last month, I learned how to use the Linux command line. Here's some background information: In the previous post, I explained that I am currently curating my coding studies with The Odin Project (TOP) curriculum. TOP encourages students to use a Linux system to learn to code, while those with a windows computer are taught how to access Ubuntu through a virtual machine. After installing the virtual machine, we then explored how to manipulate the command line.


Whenever I'm studying or learning something new, my usual practice is to jot down useful and relevant notes in a notebook. However, for this learning-in-public journey, I have chosen to share my notes below ๐Ÿ‘‡

Linux File System Operations

Manipulating files and directories

  • To create a new directory, type ๐Ÿ‘‰ mkdir <directoryname>. To create intermediate or nested directories, the mkdir command will allow you to do so using the -p flag like this ๐Ÿ‘‰ mkdir -p Documents/book/page.


  • To create a file, use ๐Ÿ‘‰ touch <filename(s)>. For example, to create a single file, type ๐Ÿ‘‰ touch novel.txt and touch letter.doc index.html script.js style.css to create multiple files at once.


  • To copy a file, use the cp command citing two arguments; the first argument is the file you want to copy (the source file) while the second argument (or target) is the location you want to copy the source file. For instance, type ๐Ÿ‘‰ cp letter.doc book.doc. When copying one directory to another, use the -r flag and specify both the source and target directories' paths. To copy only the contents of a directory, remember to use the star * operator at the end of the source directory path e.g cp ~/book/* ~/Documents.


  • To delete directories, use rmdir <directory name> or rm -d <directory name> and rm -r <directory name> or rm -rf <directory name> for empty and non-empty directories respectively. To delete a file, type ๐Ÿ‘‰ rm <filename> e.g., rm script.js. To confirm that a command is about to be executed, use the -i flag, for instance, to confirm that a file is about to be overwritten, type ๐Ÿ‘‰ cp -i <originfile> <targetfile>.


  • To rename or move a file (or directory), use the mv command and type ๐Ÿ‘‰ mv <oldname> <newname> for instance, mv book.doc index.html to rename a file or mv <directoryname> <targetdirectory> to move a directory. You can also move a file or directory by first using the cp and then therm commands. Remember to use the -r flag when copying directories. To move or copy a file to the current directory, specify the path/location of the file followed by . (which means the 'current directory') for instance, type ๐Ÿ‘‰ cp ~/book/page.txt .


  • To print the results of a command to the console, add the -v flag. e.g., rm -v book.doc. Using this flag can provide useful reporting when writing scripts that will execute many commands for you.


Note: most command-line programs support tab completion, which automatically completes a word if there's only one valid match on the system. For example, if the only file starting with the letters 'Pic' is Picture, you could create the command to remove it as follows ๐Ÿ‘‰ rm Picโ‡ฅ where โ‡ฅ is the tab key.


The program would then complete the filename, yielding rm Picture. This feature is especially handy with longer filenames (or directories) where tab completion can save a huge amount of typing.


Navigating Directories and Files

  • To find out where you are on the terminal, use the pwd command. You can also use this to get the path of your home directory. To see if a given program is available at the command line, type ๐Ÿ‘‰ which <program name>. The which command technically locates a file on the userโ€™s [usr] path; which is a list of directories where executable programs are located.


  • To see what files or directories are in your current directories, type ls. To see both 'visible' and 'hidden' files and directories, use the -a flag as follows ๐Ÿ‘‰ ls -a. To find out the contents of another directory, without first leaving your current directory, specify the full path of the other directory to the ls command as follows ๐Ÿ‘‰ ls /home/username/books. To list directories' names only without listing their contents, use the -d flag, for instance, type ๐Ÿ‘‰ ls -d txt* to list all files and directories starting with txt without listing their contents.


  • To list all files and directories of a certain type, for instance; for all files ending in txt pattern, type ๐Ÿ‘‰ ls *txt; for all files starting with txt, type ๐Ÿ‘‰ ls txt*; for all files containing txt, type ๐Ÿ‘‰ ls *txt*. To find files whose names match a certain pattern or file extension e.g .txt starting in the current directory . and in its sub-directories, use the find command and type ๐Ÿ‘‰ find . -name '*.txt'.


  • To find out detailed information on files and directories, type ๐Ÿ‘‰ ls -l. To see the sizes of files and directories, in a human-readable format such as 1K or 23M, use ๐Ÿ‘‰ ls -lh. To list the long form of each file or directory in order of how recently it was modified (reversed so that the most recently modified entries appear at the bottom of the screen for easy inspection), type ๐Ÿ‘‰ ls -lrt. To display the long-form of files sorted, so the largest files appear at the bottom, type ๐Ÿ‘‰ ls -lrS.


  • To navigate to the home directory, type ๐Ÿ‘‰ cd. To navigate back up a directory (i.e., to move one level up to the parent directory of the current directory), type ๐Ÿ‘‰ cd .. To move change directories to the previous directory, wherever that was, type ๐Ÿ‘‰ cd -. To move to an immediate sub-directory, type ๐Ÿ‘‰ cd <directory> e.g cd Documents. To change directories, call the cd command by specifying to it the full path of the directory you want to navigate to, e.g., cd ~/book.


  • To redirect the output of one command to the input of another command, use the pipe operator |. For instance, to interactively navigate the full output of a command like git help in your terminal window, pipe the output to less as follows ๐Ÿ‘‰ git help | less.


  • To combine commands, use the semicolon ; or double-ampersand && characters after each command you want to combine, e.g., to create a file in another directory without leaving your current directory, type ๐Ÿ‘‰cd <directory> && touch <filename> && cd -. The difference between these two characters is that commands separated by && run only if the previous command succeeded while with ; all the commands will be run no matter what.


Hey, thanks for reading! ๐Ÿ‘‹ ๐Ÿ‘‹


Also published on https://theconsistentdeveloper.hashnode.dev/an-introduction-to-the-linux-command-line-for-beginners.