Difference between revisions of "Useful Linux commands"

From Earlham CS Department
Jump to navigation Jump to search
m
(Starting fresh; added some file and directory management commands.)
Line 1: Line 1:
This page will contain some useful Linux commands.
+
The one-stop shop for all your Linux command needs. Most commands listed will work on our machines, though that can vary based on installed packages and/or operating systems.
  
Vocabulary – in the UNIX/Linux world directory is a special type of file that contains a list of objects (files or other directories). Folder and directory are interchangeable terms.  
+
== File and Directory Management ==
Directories are organized in a tree structure. The highest in the chain is ‘/’ (root directory).  
+
=== ls ===
 +
Lists all files and directories
 +
* <code>ls -a</code> - List all files, including hidden ones like .ssh, .bashrc, and so on.
 +
* <code>ls -l</code> - Include extra file information like permissions, owner, groups, modified date, and more.
 +
* <code>ls -s</code> - List size of files in blocks.
 +
* <code>ls -S</code> - List by size, largest first.
  
ls - (list) – list the contents (files and directories) of a directory. If no directory path is specified it defaults to your working directory.
+
=== cd ===
Some useful arguments:
+
Used to change the directory.
* ls -l displays the permissions, user and group ownership, and date of creation in addition to displaying the contents.
+
* <code>cd</code> - When no path is specified, you will move to the user's home directory. As root, you will move to <code>/root/</code>. As your user, you will move to <code>/eccs/home/<username>/</code>.
* ls doesn’t display hidden files by default (.<filename> - if a filename starts with dot, then it is not visible). ls -a shows you hidden files too.
+
* <code>cd /path/to/file</code> - When changing directories, if you're not in the immediate parent directory, you need to specify the full path. For example, if my current working directory is <code>/etc</code>, I can <code>cd jupyterhub</code> since it's within <code>/etc</code>. However, if my current working directory is <code>/bin</code>, I would have to specify the full path for <code>/etc/jupyterhub</code>.
 
 
mkdir - (make directory) – creates a new directory.
 
 
 
cd - (change directory) – change your working directory to a specified path. If no path is provided, then it brings you to the previous working directory.  
 
* Useful shortcuts – cd .. (“cd out”) – brings you to the parent directory of your current working directory.  
 
* cd ~  - your home directory
 
* cd / - here the path is / so it brings you to the root directory.
 
 
 
pwd – (print working directory) – prints the full path of your current working directory
 
 
 
rm - (remove) – deletes files. If you want to delete a folder use rm -r option.
 
 
 
cp <source_file_path> <target_file_path> (copy)- make a copy of a file. (use -r option for folders)
 
 
 
mv –(move)-  move a file to a new location. This command is also often used to rename files.
 
 
 
vi/nano/emacs – file editors – also helps you create new files.
 
 
 
diff –(difference) - you can provide this command with two files and it will compare them line by line. If these files are identical then the output will be empty.
 
 
 
cat – (concatenate) – displays the contents of a file to stdout.
 
 
 
grep – searches text data for lines that contain some string.
 
 
 
head – display
 
 
 
whoami – displays your username
 
 
 
history – display your command line history
 
clear – clears your terminal window
 
 
 
chown – change owner of a file/directory
 
 
 
chmod – change permissions of a file/directory
 
 
 
chgrp – change group ownership of a file/directory
 
 
 
passwd – change your password
 
 
 
echo – pring a string to stdout
 
 
 
sudo – run a command with root permissions
 
 
 
su – (substiture user) - change the user
 
 
 
apt/yum – package managers
 
 
 
hostname – display the name of a host (machine you’re working on)
 
 
 
exit – exit the terminal
 
 
 
date – display date/time
 
 
 
 
 
 
 
mount, df, ps(pstree), awk, sed, head, tail, ln, alias, scp, ssh, wget, find, which, locate, chown, man, tar, ifconfig, ping
 
 
 
 
 
Piping('|')
 
 
 
 
 
Keyboard Shortcuts:
 
 
 
Tab - autofill the file or directory name currently being typed
 
 
 
Up/down arrows - go through the history of commands you have typed
 
 
 
Ctrl + C - end the command that is currently being executed (useful for getting out of a place where it keeps asking you to enter something and you don't want to)
 
 
 
Tested and working 2022
 

Revision as of 20:24, 22 March 2025

The one-stop shop for all your Linux command needs. Most commands listed will work on our machines, though that can vary based on installed packages and/or operating systems.

File and Directory Management

ls

Lists all files and directories

  • ls -a - List all files, including hidden ones like .ssh, .bashrc, and so on.
  • ls -l - Include extra file information like permissions, owner, groups, modified date, and more.
  • ls -s - List size of files in blocks.
  • ls -S - List by size, largest first.

cd

Used to change the directory.

  • cd - When no path is specified, you will move to the user's home directory. As root, you will move to /root/. As your user, you will move to /eccs/home/<username>/.
  • cd /path/to/file - When changing directories, if you're not in the immediate parent directory, you need to specify the full path. For example, if my current working directory is /etc, I can cd jupyterhub since it's within /etc. However, if my current working directory is /bin, I would have to specify the full path for /etc/jupyterhub.