Top Related Projects
🖥 📊 🕹 🛠 A curated list of command line apps
A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php.
Master the command line, in one page
Quick Overview
You-Dont-Need-GUI is a GitHub repository that provides a comprehensive list of command-line alternatives to graphical user interface (GUI) operations. It aims to demonstrate that many tasks typically performed through a GUI can be accomplished more efficiently using command-line interfaces (CLI). The project covers a wide range of operations across various operating systems and tools.
Pros
- Improves productivity by offering faster, scriptable alternatives to GUI operations
- Enhances understanding of underlying system operations and commands
- Provides cross-platform solutions for many common tasks
- Encourages learning and mastery of command-line tools
Cons
- Steeper learning curve compared to GUI alternatives
- May be intimidating for users who are not comfortable with command-line interfaces
- Some complex operations might still be easier or more intuitive with a GUI
- Requires memorization of commands or frequent referencing of documentation
Code Examples
As this is not a code library but rather a collection of command-line instructions, there are no code examples in the traditional sense. However, here are a few examples of CLI commands from the repository:
# List files in the current directory
ls -la
# Find files containing a specific text
grep -R "search text" /path/to/directory
# Rename multiple files using a pattern
for file in *.txt; do mv "$file" "${file%.txt}.md"; done
Getting Started
To get started with You-Dont-Need-GUI, simply visit the GitHub repository at https://github.com/you-dont-need/You-Dont-Need-GUI. The README file contains a table of contents with various categories of operations. Browse through the categories to find CLI alternatives for common GUI tasks. To use these commands, open a terminal or command prompt on your system and enter the provided commands.
Remember to exercise caution when running unfamiliar commands, especially those that modify files or system settings. It's always a good idea to understand what a command does before executing it.
Competitor Comparisons
🖥 📊 🕹 🛠 A curated list of command line apps
Pros of awesome-cli-apps
- Extensive collection of CLI apps across various categories
- Regularly updated with new additions and community contributions
- Includes brief descriptions for each app, making it easier to find relevant tools
Cons of awesome-cli-apps
- Lacks detailed explanations or tutorials on using CLI alternatives
- Doesn't directly promote the benefits of CLI over GUI
- May overwhelm users with too many options without guidance
Code comparison
Not applicable, as both repositories are curated lists without significant code samples.
Summary
awesome-cli-apps is a comprehensive resource for discovering CLI applications across various domains. It provides a wide range of options but doesn't focus on teaching users how to transition from GUI to CLI.
You-Dont-Need-GUI, on the other hand, specifically aims to demonstrate how common GUI tasks can be accomplished using command-line tools. It offers more detailed explanations and examples for each task, making it more suitable for users looking to reduce their reliance on graphical interfaces.
While awesome-cli-apps excels in breadth of content, You-Dont-Need-GUI is more focused on education and practical application. Users seeking to expand their CLI toolkit may find awesome-cli-apps more useful, while those looking to learn CLI alternatives to GUI tasks would benefit more from You-Dont-Need-GUI.
A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php.
Pros of awesome-shell
- Comprehensive collection of shell-related tools and resources
- Regularly updated with community contributions
- Covers a wide range of shell topics, including productivity tools, system utilities, and development frameworks
Cons of awesome-shell
- Lacks specific examples or tutorials for using the listed tools
- May be overwhelming for beginners due to the large number of resources
- Does not focus on GUI alternatives or comparisons
Code comparison
While a direct code comparison is not applicable for these repositories, here's an example of how they differ in content:
awesome-shell:
## Command-Line Productivity
* [aliases](https://github.com/sebglazebrook/aliases) - Contextual, dynamic, organized aliases for bash
* [bashhub](https://github.com/rcaloras/bashhub-client) - :cloud: Bash history in the cloud. Indexed and searchable.
You-Dont-Need-GUI:
## cp
Copy a file:
```bash
cp /path/to/source/file.txt /path/to/target/file.txt
The awesome-shell repository provides a curated list of tools, while You-Dont-Need-GUI offers specific command-line alternatives to GUI operations with examples.
Master the command line, in one page
Pros of The Art of Command Line
- More comprehensive coverage of command-line topics
- Includes advanced tips and tricks for experienced users
- Regularly updated with community contributions
Cons of The Art of Command Line
- Less focused on specific GUI alternatives
- May be overwhelming for beginners
- Lacks visual comparisons between GUI and CLI approaches
Code Comparison
The Art of Command Line:
# Find files with names matching a pattern
find . -name '*.py' | xargs wc -l
You Don't Need GUI:
# Find files with names matching a pattern
ls -R | grep '\.py$' | xargs wc -l
Both repositories aim to promote command-line usage, but they approach it differently. The Art of Command Line provides a broader overview of command-line tools and techniques, making it suitable for users at various skill levels. It covers topics ranging from basic commands to advanced shell scripting.
You Don't Need GUI, on the other hand, focuses specifically on replacing GUI-based tasks with command-line alternatives. It offers side-by-side comparisons of GUI and CLI methods for common tasks, making it easier for users to transition from graphical interfaces to the command line.
While The Art of Command Line is more comprehensive, You Don't Need GUI is more accessible for users looking to replace specific GUI actions with command-line equivalents. Both repositories serve valuable purposes in promoting command-line proficiency and can be used complementarily to enhance one's skills.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
You Don't Need GUI
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).
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
- copy a file
- duplicate a file
- copy a directory
- duplicate a directory
- move a file
- rename a file
- move a directory
- rename a directory
- merge directories
- create a new file
- create a new directory
- show file/directory size
- show file/directory info
- open a file with the default program
- open a file in any application
- zip a directory
- unzip a directory
- peek files in a zip file
- remove a file
- remove a directory
- remove all files of certain criteria
- list directory contents
- tree view a directory and its subdirectories
- find a stale file
- show a calendar
- find a future date
- use a calculator
- force quit a program
- check server response
- view content of a file
- search for a text in a file
- search in all files in current working directory, quickly (entire disk in less than 15 minutes)
- view an image
- show disk size
- check cpu usage, processes and RAM
- know whether your computer is under load, and whether it's due to memory or CPU
- poweroff or reboot your computer
- locate USB drives
- unmount USB drives
- format USB drives
- check USB format
- run command on all files of a directory
- check network connectivity to a remote address and port
- check DNS config of a domain
- check the ownership and registration of a domain
- Quick tips
- Hotkeys
- I can't remember these cryptic commands
copy a file
STOP DRAG AND DROPPING A FILE, OR CMD/CTRL + C, CMD/CTRL + V A FILE :-1:
Copy readme.txt
to the documents
directory
$ cp readme.txt documents/
duplicate a file
STOP RIGHT CLICKING AND DUPLICATE A FILE :-1:
$ 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 DROPPING A DIRECTORY, OR CMD/CTRL + C, CMD/CTRL + V A DIRECTORY :-1:
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 :-1:
$ cp -a myMusic/ myMedia/
# or if `myMedia` folder doesn't exist
$ cp -a myMusic myMedia/
move a file
STOP DRAG AND DROPPING A FILE, OR CMD/CTRL + X, CMD/CTRL + V A FILE :-1:
$ 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 :-1:
$ mv readme.txt README.md
move a directory
STOP DRAG AND DROPPING A DIRECTORY, OR CMD/CTRL + X, CMD/CTRL + V A DIRECTORY :-1:
$ mv myMedia myMusic/
# or
$ mv myMedia/ myMusic/myMedia
rename a directory
STOP RIGHT CLICKING AND RENAME A DIRECTORY :-1:
$ mv myMedia/ myMusic/
merge directories
STOP DRAG AND DROPPING TO MERGE DIRECTORIES :-1:
$ 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 :-1:
$ 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 :-1:
$ mkdir 'untitled folder'
# or
$ mkdir -p 'path/may/not/exist/untitled folder'
show file/directory size
STOP RIGHT CLICKING AND SHOW FILE/directory INFO :-1:
$ du -sh node_modules/
show file/directory info
STOP RIGHT CLICKING AND SHOW FILE/DIRECTORY INFO :-1:
$ stat -x readme.md # on macOS
$ stat readme.md # on Linux
open a file with the default program
STOP DOUBLE CLICKING ON A FILE :-1:
$ xdg-open file # on Linux
$ open file # on MacOS
$ start file # on Windows
open a file in any application
STOP RIGHT CLICKING AND OPEN WITH :-1:
$ open -a appName file
zip a directory
STOP RIGHT CLICKING AND COMPRESS DIRECTORY :-1:
$ zip -r archive_name.zip folder_to_compress
unzip a directory
STOP RIGHT CLICKING AND UNCOMPRESS DIRECTORY :-1:
$ unzip archive_name.zip
decompress files of any format
STOP RIGHT CLICKING AND UNCOMPRESS DIRECTORY :-1:
$ unar archive_name.zip
$ unar archive_name.7z
$ unar archive_name.rar
$ unar archive_name.ISO
$ unar archive_name.tar.gz
peek files in a zip file
STOP USING WinRAR :-1:
$ zipinfo archive_name.zip
# or
$ unzip -l archive_name.zip
peek files in a compress file of any format
STOP USING WinRAR :-1:
$ lsar -l archive_name.zip
$ lsar -l archive_name.7z
$ lsar -l archive_name.ISO
$ lsar -l archive_name.rar
$ lsar -l archive_name.tar.gz
remove a file
STOP RIGHT CLICKING AND DELETE A FILE PERMANENTLY :-1:
$ 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 :-1:
$ rm -r my_useless_folder
remove all files of certain criteria
$ find . -name "*.bak" -type f -delete
IMPORTANT: run find . -name "*.bak" -type f
first to see exactly which files you will remove.
list directory contents
STOP OPENING YOUR FINDER OR FILE EXPLORER :-1:
$ 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 :-1:
$ 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 :-1:
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 :-1:
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 :-1:
What is today's 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 :-1:
$ bc -l
force quit a program
STOP CTRL + ALT + DELETE and choose the program to kill :-1:
$ killall -9 program_name
check server response
STOP OPENING A BROWSER :-1:
$ 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 :-1:
$ cat apps/settings.py
# if the file is too big to fit on one page, you can use a 'pager' (less) which shows you one page at a time.
$ less apps/settings.py
search for a text in a file
STOP CMD/CTRL + F IN A FILE :-1:
$ grep -i "Query" file.txt
search in all files in current working directory, quickly (entire disk in less than 15 minutes)
STOP CMD/CTRL + F IN A DIRECTORY :-1:
$ ripgrep -i "Query"
# brew install ripgrep
view an image
STOP USING PREVIEW :-1:
$ imgcat image.png
# Note: requires iTerm2 terminal.
show disk size
STOP RIGHT CLICKING DISK ICON OR OPENING DISK UTILITY :-1:
$ df -h
check cpu usage, processes and RAM
STOP OPENING YOUR ACTIVITY MONITOR OR TASK MANAGER :-1:
$ top
if you want some more details:
$ htop
know whether your computer is under load, and whether it's due to memory or CPU
$ glances
# brew install glances
poweroff or reboot your computer
This can be useful when you're patching a server that is accessed via SSH and you don't have a GUI.
# poweroff
$ sudo shutdown -h now
# reboot
$ sudo shutdown -r now
locate USB drives
$ df
unmount USB drives
$ sudo umount /dev/sdb1
format USB drives
# FAT32
$ sudo mkfs.vfat /dev/sdb1
# NTFS
$ sudo mkfs.ntfs /dev/sdb1
# exFAT
$ sudo mkfs.exfat /dev/sdb1
check USB format
$ sudo fsck /dev/sdb1
run command on all files of a directory
STOP CLICKING THE FILES ONE BY ONE :-1:
$ for FILE in *; do echo $FILE; done
check network connectivity to a remote address and port
STOP USING NETWORK UTILITY
$ nc -vz www.google.com 443
$ nc -vz 1.1.1.1 53
check DNS config of a domain
STOP USING NETWORK UTILITY
$ dig www.google.com
check the ownership and registration of a domain
STOP USING NETWORK UTILITY AND THE WEBSITE OF DOMAIN REGISTRATION PROVIDERS
$ whois www.google.com
Quick tips
Hotkeys
Hotkey | Description |
---|---|
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 | Lets 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 |
Ctrl+F | Move cursor forward one character |
Ctrl+B | Move cursor backward one character |
Esc+T | Swap the last two words before the cursor |
Alt+T | Same as Esc + T |
Alt+F | Move cursor forward one word on the current line |
Alt+B | Move cursor backward one word on the current line |
Esc+F | Same as Alt + F |
Esc+B | Same as Alt + B |
Alt+. | Paste the last word of the most recently command |
Tab | Auto-complete files and directory names |
Go to table of contents ð¼ |
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.
Top Related Projects
🖥 📊 🕹 🛠 A curated list of command line apps
A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php.
Master the command line, in one page
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot