Common unix commands I have used and put together for quick reference.
Command/Flag |
Explanation |
cd ~ |
Changes the directory to the home. |
cd directory-name |
Changes the directory to the specified one. |
cd .. |
Moves up one directory. |
cd - |
Switched back to the previous directory. |
ls |
Lists the contents of the current directory. |
ls -a |
Lists the contents of the current directory including invisible files/directories. |
ls -l |
Lists the contents of the current directory vertically with file size, permissions, etc. |
ls -F |
Lists the contents of the current directory with "/" after sub-directories. |
ls -X |
Lists the contents of the current directory sorted by file extension, then alphabetically. |
ls *.ext |
Lists only the files with the extension ".ext", works with any extension. |
mkdir name |
Creates a new directory with the specified name. |
vim filename |
Opens a text file with the vim editor (":q!" to exit if unfamiliar with vim). |
pwd |
Prints the current directory path. |
chmod +x filename |
Adds executable permission to a file. |
chmod +r filename |
Adds read permission to a file. |
chmod +w filename |
Adds write permission to a file. |
cat filename |
Displays a text file in the terminal. |
grep "expression" |
Searches for all instances of the expression in the current directory. |
head filename |
Displays the first 10 lines of a file. |
tail filename |
Displays the last 10 lines of a file. |
Command/Flag |
Explanation |
mv oldname newname |
Rename the old file to the new filename. |
mv filename /path/to/new/location |
Moves the file to the specified path. |
rm filename |
Removes the file. |
rm * |
Removes everything in the directory. |
rm -r directory-name |
Removes everything inside a directory, then removes the directory. |
rmdir directory-name |
Removes an empty directory. |
cp oldfile newfile |
Copies the old file into one with the new name. |
cp file destination/to/go |
Copies the file to the new destination. |
Command/Flag |
Explanation |
git init project-name |
Initializes a directory with a .git folder inside it. |
git init --bare project-name |
Initializes a bare repository with the project name. |
git clone link-to-repository |
Creates a git repository copy from a remote source. |
git status |
Shows the status of the local copy of the repository. |
git diff |
Shows the changes that have not been added to the index, i.e. not staged. |
git add/stage filename |
Adds the file changes to your index. |
git add/stage * |
Adds all file changes to your index. |
git commit -m "Message" |
Commits the changes in the index with the message given. |
git commit --amend |
Adds the current staged changes to the last commit for the repository. |
git stash |
Saves the local changes while reverting the working tree back to the HEAD. |
git stash apply |
Restores the changes from the last stash, without removing them from the stash list. |
git stash pop |
Restores the changes from the last stash, removing them from the stash list. |
git stash clear |
Deletes all current stashes. |
git reset |
Unstages files after they have been added/staged. |
git reset HEAD~ |
Cancels the last commit, but keeps the changes in the working tree so your work is not lost. |
git clean |
Removes all untracked files and cleans the working tree. |
git push |
Pushes the latest commit to the remote repository. |
git pull |
Gets changes from the remote repository. |
git log |
Shows the list of commits on the branch. |
git checkout newbranch |
Checks out a new branch. |
git merge new-version |
Merges branches into your current version. |
Command/Flag |
Explanation |
gcc main.c |
Compiles main.c to make an executable, default name is a.out . |
gcc main.c -o name |
Compiles main.c to make an executable with the given name. |
gcc -E main.c -o main.i |
Preprocessess main.c to main.i . |
gcc -S main.c -o main.s |
Compiles main.c to assembly instructions in main.s . |
gcc -c main.c -o main.o |
Assembles main.c into machine code, creating an object file, main.o . |
gcc main.o -o main.out |
Links the object file main.o into an executable. |
-Wall |
Flag used to show major warnings when compiling. |
-Wextra |
Flag used to show minor warnings when compiling. |
-std=c99 |
Flag used to specify the C99 standards. |
-pedantic |
Flag that is picky about syntax in source files. |
valgrind --leak-check=full ./program |
Runs valgrind to analyze memory usage, good for finding memory leaks. |
Command/Flag |
Explanation |
g++ main.cpp |
Compiles main.cpp to make an executable, default name is a.out . |
g++ main.cpp -o main.out |
Compiles main.cpp to make an executable named main.out . |
g++ -E main.cpp -o main.i |
Preprocesses main.c to main.i . |
g++ -S main.cpp -o main.s |
Compiles main.c to assembly instructions in main.s . |
g++ -c main.cpp -o main.o |
Assembles main.cpp into machine code, creating an object file, main.o . |
g++ main.o -o main.out |
Links the object file main.o into an executable. |
Command/Flag |
Explanation |
javac file.java |
Compiles file.java to file.class . |
java file |
Runs file.class through the jvm. |
javac -sourcepath src src/file.java -d out |
Compiles file.java in the src directory into file.class in the out directory. |
java -cp out file |
Runs file.class, which is in the out/ directory, through the jvm. |
jar cvfm MyJarFile.jar Manifest.txt *.class |
Makes a .jar executable file which combines all the .class files in the directory. |
jar xvf MyJarFile.jar |
Expands the jar file to all the individual files it contained. |
java -jar MyJarFile.jar |
Runs the .jar executable using the jvm. |
Command/Flag |
Explanation |
<gradle> is equivalent to <./gradlew> and <gradlew.bat> |
If gradle is installed you may use the command "gradle", if not use "./gradlew" on Linux and OSX or
"gradlew" to run the gradlew.bat file on Windows. |
gradle build |
Compiles the .java files into .class files, creates a .jar if enabled, and runs all junit tests that
are written. |
gradle classes |
Compiles the .java files into .class files. |
gradle clean |
Removes .class, .jar, and any build files that can be re-generated. |
gradle run |
Compiles the java files and runs the program. |
gradle test |
Runs the unit tests for the project. |
Command/Flag |
Explanation |
unzip file.zip |
Extracts the zip file in the current directory. |
zip new.zip file1 file2 directory1 |
Creates a zip file by compressing all the files and directories named. |
tar -cvf file.tar file1 file2 file3 |
Creates a tarball of the 3 files. |
tar -xvf file.tar |
Expands the tarball in the current directory. |
tar -zcvf archive.tar.gz directory |
Creates a compressed tarball of the directory specified. |
tar -zxvf archive.tar.gz |
Extracts and expands the compressed tarball. |
sh script.sh |
Runs the shell script in the terminal. |
wc -w filename |
Counts the number of words in a file. |
wc -l filename |
Counts the number of lines in a file. |
ln -s target-file-path link-name |
Creates a symlink to a file. |
du -sh directory/* |
Displays the disk space used by all the files and sub-directories of the file/directory specified. |
top |
Displays information about CPU and memory usage. |
free |
Displays information about used and unused memory in kilobytes. |
free -m |
Displays information about used and unused memory in megabytes. |
free -g |
Displays information about used and unused memory in gigabytes. |
watch free |
Displays information about used and unused memory and updates the display every two seconds. |
sensible-browser |
Opens a new window in the default web browser. |
sensible-browser filename.html |
Opens the local html file in a new tab in the default web browser. |
time some-command |
Runs a command and displays the time it took to run. |