This wiki is meant to be referenced as a way to learn the Linux terminal. Covered will be:
-
File Browsing/Management
- Viewing your current directory
- Viewing the contents of a directory
- Changing from one directory to another (Navigation)
- Viewing directory permissions
- Viewing file permissions
-
Permissions
-
Networking
-
Editing Text Files
- Editing via Nano
- Editing via vim
-
Getting Help
- Reading the manual
-
…
… And much much more. As this is a Wiki, and the beauty of such thing, is that you will be able to expand upon what is already here. So if you would like to expand on this you are more then welcome to do so.
To be able to contribute to the wiki, all you have to do is click on the teal colored “Edit” button at the bottom right of this post. Then add what you would like to add and then click on the “Save Edit” button. Also, please be sure to add yourself to the contributors section for recognition.
Contributors
If you need a glossary there is one here. Or you can scroll down to post #3.
File Browsing/management
contents
When doing file browsing and management via a graphical interface normally you can see where you are and where you want to go to via the directory tree, usually located in the side-pane of your file browser.
However, when navigating from the terminal, there is no side-panel that can be easily referenced to see where you are in your directory (file) structure.
So from knowing this, how do I know where I am currently in the file system when navigating from the terminal?
Well you would use the command pwd
which stands for “present working directory”. And the output of that command will tell you were you are in the file system. For example if I were to open a terminal and type in pwd
I would receive the following response:
Goalkeeper@Flapjack:~$ pwd
/home/Goalkeeper
Which is my home directory. Because when we first start a terminal emulator our current working directory is set to our home directory by default.
So now we know what directory we are currently in in the file system. However, with that command, we can not see everything that is contained in that particular directory (folder). To be able to view the contents of a directory use the command ls
. The ls
command lists the contents of a directory.
Goalkeeper@Flapjack:~$ pwd
/home/Goalkeeper
Goalkeeper@Flapjack:~$ ls
Desktop
Documents
Music
Videos
So now we know that inside the directory /home/Goalkeeper
there are four sub-directories - Desktop, Documents, Music, Videos. Now lets say that we want to navigate to the Desktop directory. To change a directory use the cd
command.
Goalkeeper@Flapjack:~$ pwd
/home/Goalkeeper
Goalkeeper@Flapjack:~$ ls
Desktop
Documents
Music
Videos
Goalkeeper@Flapjack:~$ cd Desktop
Goalkeeper@Flapjack:~/Desktop$
Too verify that we are in the Desktop directory we can use the ‘pwd’ command.
Goalkeeper@Flapjack:~$ pwd
/home/Goalkeeper
Goalkeeper@Flapjack:~$ ls
Desktop
Documents
Music
Videos
Goalkeeper@Flapjack:~$ cd Desktop
Goalkeeper@Flapjack:~/Desktop$
Goalkeeper@Flapjack:~/Desktop$ pwd
/home/Goalkeeper/Desktop
As you can see we have successfully changed directories (cd), from the home directory to the Desktop directory.
Copy and delete
IMPORTANT NOTE: Before we go any further, a word of advice. In graphical file browser if you delete a file, it may end up in your trash can, but when you manipulate your files from command line, changes are permanent. This means, if you delete files, they will not end up in trash can anymore, but will be deleted permanently. Thus always, ALWAYS, make sure you have back ups for your files.
When you want to copy and delete files in command line, you may do so with specific commands. cp
is for copying files, rm
is for deleting.
Syntax for copy command is $ cp oldfile newfile
. Let’s say you have file name linux_essay.txt
located on you desktop directory, and you want to make a copy of this file in command line. Here’s an example of how to do it.
even@weebhost:~$ cp /home/even/Desktop/linux_essay.txt /home/even/Desktop/linux_essay_V2.txt
This will create new file named linux_essay_V2.txt
to your Desktop directory. This is also handy, if you want to create the copy of your file to other directory. Like this:
even@weebhost:~$ cp /home/even/Desktop/linux_essay.txt /home/even/Documents/linux_essay_V2.txt
Now the file copy is in Documents directory, while the original remains in your Desktop.
Now that you have made a copy, but realize you don’t need it any more and want to delete it. Syntax for delete or remove command is $ rm filename
. Here’s example:
even@weebhost:~$ rm /home/even/Documents/linux_essay_V2.txt
Note that you can always do these actions also by first navigating in your desired directory, and manipulating files without the need to specify the file path in your commands. If you are in your Documents directory, and want to delete file by first navigating there, you can do it like this:
even@weebhost:~$ cd Documents
even@weebhost:~/Documents$ rm linux_essay_V2.txt
Rename files using mv
mv
command is for moving files, but it can also be used to rename files. Syntax is $ mv old_file_name new_file_name
Here’s example. We will rename .png picture file:
even@weebhost:~$ mv picture.png picture1.png
Now if you go to check out, the file name is changed. Note, that above example assumes you have navigated to the directory where the file is located.
If you want, you can also rename files by adding the file path to your command. Then you do not have to navigate to the actual directory.
even@weebhost:~$ mv /home/even/test1/picture1.png /home/even/test1/picture.png
Move files using mv
Syntax for moving files is similar to what you do when you want to rename files using mv. You can move files with the same syntax $ mv file destination
You can navigate to the directory where the file is located, and then simply specify the path to directory you wish to move the file:
even@weebhost:~/extra_folder$ mv picture.png /home/even/picture_folder/
Above will move the file named picture.png
to directory named picture_folder
If you do not want to navigate to the directory, you can also specify both the file path to the file you wish to move, and the file path to the directory you want to move the file:
This example will move file named picture.png
from picture_folder
-directory to extra_folder
-directory.
even@weebhost:~$ mv /home/even/picture_folder/picture.png /home/even/extra_folder/
Move files using rsync
I’ll write something about moving files with rsync later. - @Even747
Permissions
contents
Let’s start with the permission command you should never run: sudo chmod 777 {dir or file}
– everyone can read write and modify
(More to come later @PhaseLockedLoop
Networking
contents
Filler text. Add things here.
Editing Text Files
Nano
Editing via Nano
vim
Editing via vim
How-to Just Kill-it-on Linux!
That’s easy enough to remember, right? No?
Happy Just Keepin’ Linux!
Here, Just Kick Leaves
What do all of these words have in common? They start with the letters to control Vim!
The four basic movements:
H - Left
J - Down
K - Up
L - Right
If you want to move right 5 spaces:
5, then L
We’ll get more advanced in a second. By now you’re probably wanting to type something.
Normal/Command mode is the default starting mode in Vim. To enter Insert mode, press I.
Escape will put you back into Command mode.
To save your file, in Command mode, enter :w filename. Yes, the colon is important. If you already have a file name (mine is named test, as you can see above next to Normal and Insert), then :w! will suffice. You can quit with :q!, and you can save and quit/close the file with :wq. No exclamation point necessary. The ! is used to force an operation, which is important in quit or write so there is not a fragment buffer left over.
// TODO add more Vim awesomeness
Getting Help
Using the man pages
Meta Discussion thread: https://forum.level1techs.com/t/meta-discussion-for-linux-terminal-walk-through/137469