Coder Social home page Coder Social logo

you-dont-need-gui's Introduction

You Don't Need GUI

Join the community on Spectrum

It's for noobs :)

Graphical user interfaces are super friendly to computer users. They were introduced in reaction to the perceived steep learning curve of command-line interfaces (CLIs).

Xerox Star 8010 workstations

However, they often require more resources, are less powerful and hard to automate via scripting.

As a computer expert, we want to be more efficient and do our jobs better. We know that command words may not be easily discoverable or mnemonic, so we try to list some common tasks that you might be tempted to do in GUI.

Quick links

  1. copy a file
  2. duplicate a file
  3. copy a directory
  4. duplicate a directory
  5. move a file
  6. rename a file
  7. move a directory
  8. rename a directory
  9. merge directories
  10. create a new file
  11. create a new directory
  12. show file/directory size
  13. show file/directory info
  14. open a file with the default program
  15. zip a directory
  16. unzip a directory
  17. peek files in a zip file
  18. remove a file
  19. remove a directory
  20. list directory contents
  21. tree view a directory and its subdirectories
  22. find a stale file
  23. show a calendar
  24. find a future date
  25. use a calculator
  26. force quit a program
  27. check server response
  28. view content of a file
  29. search for a text
  30. view an image
  31. show disk size
  32. check performance of your computer
  33. Quick tips
  34. Hotkeys
  35. I can't remember these cryptic commands

copy a file

STOP DRAG AND DROPING A FILE, OR CMD/CTRL + C, CMD/CTRL + V A FILE πŸ‘Ž

Copy readme.txt to the documents directory

$ cp readme.txt documents/

duplicate a file

STOP RIGHT CLICKING AND DUPLICATE A FILE πŸ‘Ž

$ cp readme.txt readme.bak.txt

More advanced:

$ cp readme{,.bak}.txt
# Note: learn how the {} works with touch foo{1,2,3}.txt and see what happens.

copy a directory

STOP DRAG AND DROPING A DIRECTORY, OR CMD/CTRL + C, CMD/CTRL + V A DIRECTORY πŸ‘Ž

Copy myMusic directory to the myMedia directory

$ cp -a myMusic myMedia/
# or
$ cp -a myMusic/ myMedia/myMusic/

duplicate a directory

STOP RIGHT CLICKING AND DUPLICATE A DIRECTORY πŸ‘Ž

$ cp -a myMusic/ myMedia/
# or if `myMedia` folder doesn't exist
$ cp -a myMusic myMedia/

move a file

STOP DRAG AND DROPING A FILE, OR CMD/CTRL + X, CMD/CTRL + V A FILE πŸ‘Ž

$ mv readme.txt documents/

Always use a trailing slash when moving files, for this reason.

rename a file

STOP RIGHT CLICKING AND RENAME A FILE πŸ‘Ž

$ mv readme.txt README.md

move a directory

STOP DRAG AND DROPING A DIRECTORY, OR CMD/CTRL + X, CMD/CTRL + V A DIRECTORY πŸ‘Ž

$ mv myMedia myMusic/
# or
$ mv myMedia/ myMusic/myMedia

rename a directory

STOP RIGHT CLICKING AND RENAME A DIRECTORY πŸ‘Ž

$ mv myMedia/ myMusic/

merge directories

STOP DRAG AND DROPING TO MERGE DIRECTORIES πŸ‘Ž

$ rsync -a /images/ /images2/	# note: may over-write files with the same name, so be careful!

create a new file

STOP RIGHT CLICKING AND CREATE A NEW FILE πŸ‘Ž

$ touch 'new file'    # updates the file's access and modification timestamp if it already exists
# or
$ > 'new file'        # note: erases the content if it already exists

create a new directory

STOP RIGHT CLICKING AND CREATE A NEW DIRECTORY πŸ‘Ž

$ mkdir 'untitled folder'
# or
$ mkdir -p 'path/may/not/exist/untitled\ folder'

show file/directory size

STOP RIGHT CLICKING AND SHOW FILE/directory INFO πŸ‘Ž

$ du -sh node_modules/

show file/directory info

STOP RIGHT CLICKING AND SHOW FILE/DIRECTORY INFO πŸ‘Ž

$ stat -x readme.md   # on macOS
$ stat readme.md      # on Linux

open a file with the default program

STOP DOUBLE CLICKING ON A FILE πŸ‘Ž

$ xdg-open file   # on Linux
$ open file       # on MacOS

zip a directory

STOP RIGHT CLICKING AND COMPRESS DIRECTORY πŸ‘Ž

$ zip -r archive_name.zip folder_to_compress

unzip a directory

STOP RIGHT CLICKING AND UNCOMPRESS DIRECTORY πŸ‘Ž

$ unzip archive_name.zip

peek files in a zip file

STOP USING WinRAR πŸ‘Ž

$ zipinfo archive_name.zip
# or
$ unzip -l archive_name.zip

remove a file

STOP RIGHT CLICKING AND DELETE A FILE PERMANENTLY πŸ‘Ž

$ rm my_useless_file

IMPORTANT: The rm command deletes my_useless_file permanently, which is equivalent to move my_useless_file to Recycle Bin and hit Empty Recycle Bin.

remove a directory

STOP RIGHT CLICKING AND DELETE A DIRECTORY PERMANENTLY πŸ‘Ž

$ rm -r my_useless_folder

list directory contents

STOP OPENING YOUR FINDER OR FILE EXPLORER πŸ‘Ž

$ ls my_folder        # Simple
$ ls -la my_folder    # -l: show in list format. -a: show all files, including hidden. -la combines those options.
$ ls -alrth my_folder # -r: reverse output. -t: sort by time (modified). -h: output human-readable sizes.

tree view a directory and its subdirectories

STOP OPENING YOUR FINDER OR FILE EXPLORER πŸ‘Ž

$ tree                                                        # on Linux
$ find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'      # on MacOS
# Note: install homebrew (https://brew.sh) to be able to use (some) Linux utilities such as tree.
# brew install tree

find a stale file

STOP USING YOUR FILE EXPLORER TO FIND A FILE πŸ‘Ž

Find all files modified more than 5 days ago

$ findΒ my_folder -mtime +5

show a calendar

STOP LOOKING UP WHAT THIS MONTH LOOKS LIKE BY CALENDAR WIDGETS πŸ‘Ž

Display a text calendar

$ cal

Display selected month and year calendar

$ cal 11 2018

find a future date

STOP USING WEBAPPS TO CALCULATE FUTURE DATES πŸ‘Ž

What is todays date?

$ date +%m/%d/%Y

What about a week from now?

$ date -d "+7 days"                                           # on Linux
$ date -j -v+7d                                               # on MacOS

use a calculator

STOP USING CALCULATOR WIDGET πŸ‘Ž

$ bc

force quit a program

STOP CTRL + ALT + DELETE and choose the program to kill πŸ‘Ž

$ killall program_name

check server response

STOP OPENING A BROWSER πŸ‘Ž

curl -i umair.surge.sh
# curl's -i (--include) option includes HTTP response headers in its output.

view content of a file

STOP DOUBLE CLICKING A FILE πŸ‘Ž

$ cat apps/settings.py
# if the file is too big to fit on one page, you can send it to a 'pager' (less) which shows you one page at a time.
$ cat apps/settings.py | less

search for a text

STOP CMD/CTRL + F IN A DIRECTORY πŸ‘Ž

$ grep -i "Query" file.txt

grep

view an image

STOP USING PREVIEW πŸ‘Ž

$ imgcat image.png
# Note: requires iTerm2 terminal.

show disk size

STOP RIGHT CLICKING DISK ICON OR OPENING DISK UTILITY πŸ‘Ž

$ df -h

check performance of your computer

STOP OPENING YOUR ACTIVITY MONITOR OR TASK MANAGER πŸ‘Ž

$ top

Quick tips

CLI tips

Hotkeys

Ctrl + A  Go to the beginning of the line you are currently typing on
Ctrl + E  Go to the end of the line you are currently typing on
Ctrl + L  Clears the Screen, similar to the clear command
Ctrl + U  Clears the line before the cursor position. If you are at the end of the line, clears the entire line.
Ctrl + H  Same as backspace
Ctrl + R  Let’s you search through previously used commands
Ctrl + C  Kill whatever you are running
Ctrl + D  Exit the current shell
Ctrl + Z  Puts whatever you are running into a suspended background process. fg restores it.
Ctrl + W  Delete the word before the cursor
Ctrl + K  Clear the line after the cursor
Ctrl + T  Swap the last two characters before the cursor
Esc + T   Swap the last two words before the cursor
Alt + F   Move cursor forward one word on the current line
Alt + B   Move cursor backward one word on the current line
Tab       Auto-complete files and directory names

I can't remember these cryptic commands

You can always google or man the commands you are not familiar with. Or, checkout tldr, a collection of simplified and community-driven man pages.

you-dont-need-gui's People

Contributors

analyticalmonk avatar ashleyharvey avatar berkmann18 avatar cht8687 avatar dennisxzx avatar diegoleme avatar gutierri avatar haroenv avatar jakebrinkmann avatar majewsky avatar maujfernandezuvr avatar mischah avatar mortal avatar nosir avatar stevemao avatar tomsaleeba avatar umr55766 avatar yfgeek avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.