26 ms·
Ask HN: Best Command-Line Applications?
I really enjoy using a command-line interface instead of a graphical user interface, and was wondering if anyone had any solid recommendations for applications that one can use in a terminal window.
- laixintao 8y agojq It saved my life.
- jac08h 8y agoLedger is a simple tool to keep track of your expenses. https://www.ledger-cli.org/ https://www.ledger-cli.org/
- chapium 8y agogrep is one of the most useful tools that you can use on the commandline
- tbrock 8y agoSaw: https://github.com/TylerBrock/saw https://github.com/TylerBrock/saw -- Stream (tail -f) colorized AWS CloudWatch logs
- zzo38computer 8y agoI agree. A lot of them come with a UNIX system, although there are others. I use some of the moreutils stuff. For email, I use Heirloom-mailx. For text editing, I use vim. For database I use SQLite. For typesetting I use TeX. For processing pictures I implemented my own package called Farbfeld Utilities. For making MOD/XM musics, I wrote AmigaMML which uses a text file rather than the GUI that many other programs do. Hopefully other people on here can mention even more, because I am interested in the answer too, and probably my answer is insufficient to the original asker anyways.
- artwr 8y agoA few of the ones I use almost daily - Pandoc a handy document format converter: https://pandoc.org/ https://pandoc.org/ - Ripgrep, a faster grep: https://github.com/BurntSushi/ripgrep https://github.com/BurntSushi/ripgrep - There are quite a few prompt-toolkit based CLI which have been really nice: * mycli (https://github.com/dbcli/mycli https://github.com/dbcli/mycli), pgcli (https://github.com/dbcli/pgcli https://github.com/dbcli/pgcli) * ptpython/ptipython (https://github.com/prompt-toolkit/ptpython https://github.com/prompt-toolkit/ptpython) - Youtube-dl: http://rg3.github.io/youtube-dl/ http://rg3.github.io/youtube-dl/ - fzf a fuzzy finder for the console: https://github.com/junegunn/fzf https://github.com/junegunn/fzf - jq for JSON manipulation: https://stedolan.github.io/jq/ https://stedolan.github.io/jq/ - Miller for CSV/TSV: https://github.com/johnkerl/miller https://github.com/johnkerl/miller I would imagine you have already scoured the "awesome" lists: https://github.com/agarrharr/awesome-cli-apps#terminal-utilities https://github.com/agarrharr/awesome-cli-apps#terminal-utili...
- jaydouken 8y agoThank you so much for posting that list, somehow it slipped under my radar. Great suggestions!
- deleted 8y ago[deleted]
- egze 8y agoWow. mycli and pgcli are so good!
- h1d 8y agoIt is. Omitting the semi colon to execute a statement alone feels good.
- pingiun 8y agoptpython seems really useful, thank you! I was frustrated with the limited capabilities of the vanilla python REPL.
- akoster 8y agoAnother awesome list with some command line apps: https://github.com/alebcay/awesome-shell#applications https://github.com/alebcay/awesome-shell#applications
- yesenadam 8y agoMaybe the best part of bash for me is AWK - so useful, and enjoyable to use. I use ffmpeg a lot for making movies from images, video conversion etc. I use Sage on the command line, mostly for programming in Cython and mathematical stuff with the Sage/Python REPL. It was 2.7GB (!) and comes with an absurd number of libraries and packages[0], mostly for maths and graphics. I started by using it in a browser notebook, but switched to the command line and never went back. [0] http://www.sagemath.org/links-components.html http://www.sagemath.org/links-components.html
- pacifika 8y agoNcdu
- donatj 8y agovim It's really worth the time to learn. It's pre-installed basically everywhere, it's amazingly useful. It has the features of a modern text editor all in a command line.
- amelius 8y agoVim is an interactive application.
- nurettin 8y agoso is less
- amelius 8y agoBoth are not command line tools, imho.
- Lio 8y agoSo are Midnight Commander, ranger, Mutt, tig, htop, emacs and many of the other great programs mentioned here. I've taken this list to be of thing things that run in a terminal rather than strictly non-interactive programs.
- pjs_ 8y agoI love watch. watch df -h watch ls -sh watch cat file watch nmcli device wifi list watch -n 10 --color curl -s wttr.in
- gyrgtyn 8y agoalways need to install watch and tree
- ianai 8y agoI think I remember combining watch with tail before...not sure why since -f keeps a stream open.
- dijit 8y agoTail -f works by opening the file and remembering the byte offset, if it’s a log file that gets flushed/wiped then tail -f won’t see anything until the logs fill enough to exceed the previous file contents.
- antocv 8y agoUnless you pass the option --follow=name in which case tail will if necessary reopen the file and follow it even when log-application has closed and moved it elsewhere and opened a new one of the same name.
- stevekemp 8y agoTrue, but the `-F` flag will work in that case.
- dijit 8y agoTIL Works on BSD `tail` too. :)
- kieckerjan 8y agoMy favorite use is: watch ps fx I find it very soothing. :)
- thelibrarian 8y agoIf you need to handle XML, xmlstarlet (http://xmlstar.sourceforge.net http://xmlstar.sourceforge.net) is fantastic, and much more powerful than the standard line-oriented tools like sed and awk for this task. Similarly jq (https://stedolan.github.io/jq/ https://stedolan.github.io/jq/) for JSON data is great.
- fiddlerwoaroof 8y agoThe only issue I have with xmlstarlet is that it can be sort of a pain when there are xml namespaces in the document. Most of the time, you just have to pass it the long option that ignores them all together
- CJKerr 8y agoAnd to round out the set, xsv (https://github.com/BurntSushi/xsv/ https://github.com/BurntSushi/xsv/) is a powerful toolkit for CSV.
- dllthomas 8y agoI'm not big on applications, period. Activities should be decomposed (or at least decomposable) into individual actions that I can stitch together in the shell.
- zzo38computer 8y agoI agree, we can use the pipes to put them together. That is how I do such thing, and design these programs, at least. For example, one program is "playmod" which read a module music file from stdin, and write the raw audio data to stdout. The program "amigamml" is takes the MML code from stdin and write the module music file to stdout. And then, program "aplay" is playing the audio data from stdin on the speaker. Other example can be, "ls" to list files, "shuf" to put into a random order, and "xargs" to run another program for each one, and a shell script might then do "playmod" and "aplay", you can play the music at random!
- chrisseaton 8y agoAren’t those individual actions still applications? I don’t know what you mean?
- dllthomas 8y agoThere's a frequent (but by no means universal) distinction drawn between "applications" and "utilities". In the former case, you have repeated interaction with a single process, typically with some measure of "ownership" of its display port. On the other hand, a utility typically does a single thing, produces some output, and then exits.
- fiddlerwoaroof 8y agoFor working on servers, tmux + mosh is a killer combination: mosh makes your connection resilient to network issues and tmux gives you (back) scrollback and cross-session persistence. mutt is hard to beat as an email client and circe (an emacs package) + znc on a digital ocean instance or equivalent makes for a great persistent irc session.
- cjoelrun 8y agoMusic organizer/player http://beets.io http://beets.io File browser https://github.com/ranger/ranger https://github.com/ranger/ranger Emacs - It does anything you want. Emacs If you like vim keys bindings - http://spacemacs.org http://spacemacs.org Terminal multiplexer - Tmux
- catacombs 8y agoAnother alternative to Emacs with vim keybindings is Doom Emacs. It's superior to Spacemacs imo.
- suprfnk 8y agoI've been using Spacemacs for a while, what sets Doom Emacs apart?
- colelyman 8y agoI am a convert from Spacemacs to Doom, and I have found that one of the main differences that sets Doom apart is easier configurability than Spacemacs. In Doom, there is still the concept of "layers," but IMO it is much easier to figure out what the layers are doing and customize them from there. Also, I have found Doom to be much quicker (takes about 2 seconds to load, not using server/client) and less buggy than Spacemacs. I would highly recommend giving Doom a try!
- ivan_ah 8y agoyoutube_dl an ffmpeg would be my top two in terms of power. Here are my top commands by frequency of use: 4421 git 952 open 936 vim 908 cd 603 ls 566 grep 533 cp 429 rm 414 mv 250 atom 247 pip 233 mkdir 223 fab 163 docker 130 touch 128 find 123 youtube-dl 113 python 103 ssh 100 cat 99 wget 81 pytest 75 brew total is of ~16k history lines... this means one in ever 4 commands I type is git! Wow I didn't know that. Probably `git status`...
- adtac 8y agoI use git so much that I made these aliases in zsh: alias g="git show" alias gh="git show HEAD" alias gs="git status" alias gl="git log" alias gco="git checkout" alias gd="git diff" alias gbl="git branch -v" alias gbd="git branch -D" alias gri="git rebase --interactive" alias grc="git rebase --continue" alias gra="git rebase --abort" alias gst="git stash" alias gsta="git stash apply" alias gx="gco -- \*; git reset HEAD \*" alias gcp="git cherry-pick" alias gcpc="git cherry-pick --continue" alias gcpa="git cherry-pick --abort" A few hundred instances of "gs" in my .zhistory :)
- ryannevius 8y agoI find that... alias glol="git log --oneline" ...comes in handy as well, and it's fun to type.
- RichardCA 8y agoTry this one sometime... alias lg = log --date=format:'%Y-%m-%d %H:%M:%S' --pretty=format:'%cd %<(20,trunc)%an %C(auto)%h%Creset%C(auto)%d%Creset %s'
- lloeki 8y agoI find my git graph, git save, and git lint (also, git fetch --prune but lo alias for that one) extremely useful. Aliases in my ~/.gitconfig: [alias] co = checkout cm = !git add -A && git commit br = branch ci = commit st = status unstage = reset HEAD -- recent = for-each-ref --count=10 --sort=-committerdate refs/heads/ --format="%(refname:short)" overview = log --all --oneline --no-merges recap = !git log --all --oneline --no-merges --author=${1-$(git config user.email)} today = !git log --all --since=00:00:00 --oneline --no-merges --author=${1-$(git config user.email)} changelog = !git log --oneline --no-merges ${1-$(git describe --abbrev=0)}..HEAD upstream = !git log --oneline --no-merges HEAD..${1-$(git branch -lvv | perl -ne '/^\\*.*\\[(.*?)\\]/ and print "$1\n"')} local = !git log --oneline --no-merges ${1-$(git branch -lvv | perl -ne '/^\\*.*\\[(.*?)\\]/ and print "$1\n"')}..HEAD graph = log --oneline --graph --all --decorate --date=iso save = !git add -A && git commit -m 'SAVEPOINT' undo = reset HEAD~1 --mixed backup = !git push origin/backup/$(whoami)/$(git branch) lint = !git branch --merged | grep -v \"^\\s*master$\" | grep -v \"\\*\" | xargs -n 1 git branch -d
- thanksDr 8y agoNot exactly useful, but it makes me smile every time I use it: https://github.com/will8211/unimatrix https://github.com/will8211/unimatrix
- dharmab 8y agohttpie + jq is a great duo for exploring and manually probing APIs. Gron (grep JSON) is handy when you get a massive API response and quickly need to figure out what subkeys interest you. The silver searcher (ag) is my go-to code search tool. I'll have to try ripgrep to compare. Pass is neat for injecting personal secrets into bash scripts securely.
- petdance 8y agoHere's a feature comparison chart of the various grepalike tools: https://beyondgrep.com/feature-comparison/ https://beyondgrep.com/feature-comparison/
- gh02t 8y agoSome of my favorites, apart from the obvious ones like Vim/Emacs and common Unix utils... notmuch - email database ncmpcpp - MPD frontend (music player) taskwarrior - task and time management mutt - email ranger - file manager pass - password manager
- jodrellblank 8y agoIf you aren't using tmux or screen, you probably should be, especially over SSH sessions. They allow you to have multiple consoles open and switch between them, split window, and disconnect from SSH and then reconnect with all your things still open and running (as long as the server stayed running).
- dllthomas 8y agoI use some scripts around screen (and tmux would do the job at least as well, just haven't had reason enough to switch) to manage contexts for my shells. The key is that that process will be the parent of any shells I spawn in contained windows, and so if I set an environment variable (I use SESSION) before kicking off screen it will be inherited, and visible in my bashrc. This lets me set up a lot of context specific things - path and functions and aliases - but the single best thing about it is a separate bash history per context.
- berbec 8y agoI have a EC2 instance who's main purpose is to run a screen session. I ssh to my EC2, and load that screen. I have every server I manage in it's own "window" inside this screen. I run screen on each of these machines, so I can hop between inner and outer screens. The main screen instance is started with: screen -S outer_screen I then create a screen session for that EC2 with screen -S inner_screen I pop open new screens with this handy command: screen -S outer_screen -X screen -t newmachine ssh user@newserver.example.com
- spondyl 8y agoAs someone who hasn't invested much time into tmux/screen, what are the benefits of it over just using eg; multiple terminal tabsn or using the terminal's built in split windowing? I'm sure there's probably a benefit but I dunno what it is
- weavie 8y agoIt persists your session, so if you get disconnected you can just log in again and 'tmux attach' to resume from where you left off. Any long running commands will still be running.
- sys_64738 8y agoEmacs. Because it is.
- deanmoriarty 8y agorsync. It’s installed everywhere and makes it super easy to keep source code in sync between laptop and remote servers. It’s so fast that I completely ignore more advanced solutions based on fanotify or similar, and literally include rsync before every “build/run” command during development.
- adtac 8y agorg (ripgrep): https://github.com/BurntSushi/ripgrep https://github.com/BurntSushi/ripgrep I used to use ag (the silver searcher) [1] before, and `ag` was practically a muscle memory to me, but then I came across ripgrep and it was so much faster. I've now installed a static binary of ripgrep in every machine I have SSH access to. [1] https://github.com/ggreer/the_silver_searcher https://github.com/ggreer/the_silver_searcher
- mariusmg 8y agoThe first time i use it, I was in shock about how fast ripgrep is. Amazing.
- petdance 8y agoNote that rg and ag don't have the same feature sets. Here's a handy chart that shows the differences. https://beyondgrep.com/feature-comparison/ https://beyondgrep.com/feature-comparison/
- burntsushi 8y agoThat chart is now quite out of date. I don't think there are any substantial features present in ag that are absent from rg. See my note in the README: https://github.com/BurntSushi/ripgrep#feature-comparison https://github.com/BurntSushi/ripgrep#feature-comparison
- petdance 8y agoPlease let me know what's new so that I can update the chart. Dumping into an issue will do, and then I can worry about getting it into chart format. https://github.com/beyondgrep/website/issues https://github.com/beyondgrep/website/issues
- ComputerGuru 8y ago* fish - essential prerequisite in order to live in the command line * autojump (aka j) - for changing directories quickly * open - required to interact with the non-cli world, ships by default on macOS and here's one for Windows/WSL: https://github.com/neosmart/open https://github.com/neosmart/open * imgpaste - for pasting screenshots into a PNG or JPEG directly (https://github.com/neosmart/imgpaste https://github.com/neosmart/imgpaste) * pbpaste - for pasting into the shell (or if you're on Linux or Windows: https://github.com/mqudsi/fish-config/blob/master/functions/pbpaste.fish https://github.com/mqudsi/fish-config/blob/master/functions/...) * fzf - a general-purpose "selector" ui for choosing "things" from a list based off, such as your history (bound to ctrl+r) or files in a directory (bound to ctrl+p with input generated by bfs or fd) * neovim - my configuration here: https://github.com/mqudsi/nvim-config https://github.com/mqudsi/nvim-config * ripgrep - for finding strings in files * fd - for finding files quickly * sed (with -r) - insanely powerful for common string operations * tr - lets you deal with line endings, which sed can't * youtube-dl - download youtube videos from the CLI * curl/httpie - (scriptable) network requests * aria2c - high-speed (multi-threaded) downloads and torrent downloads, it just works * jq - for manipulating json in shell scripts * ncdu - find space taken up by directories/files, but it's aging and in need of a dire rewrite like fd/rg did for find/grep * pbedit - edit the contents of the clipboard in your favorite editor https://github.com/mqudsi/fish-config/blob/master/functions/pbpaste.fish https://github.com/mqudsi/fish-config/blob/master/functions/... * weechat - irc in your command line * ffmpeg - except I am much more likely to use it via one of the wrapper fish scripts I've written such as ffencode, fftrim, ffconcat, ffmute, etc. because it is (necessarily) so damn verbose and infinitely tunable. * tmux - if I'm working remotely or on a headless machine where I can't just ctrl+shift+n to open a new terminal window (which I prefer)
- michaelmior 8y ago> tr - lets you deal with line endings, which sed can't I'm not sure what you mean by "deal with line endings", but sed can operate across multiple lines. https://www.gnu.org/software/sed/manual/html_node/Text-search-across-multiple-lines.html https://www.gnu.org/software/sed/manual/html_node/Text-searc...
- 8y ago
- geowwy 8y agofzf is awesome. I use it in vim and bash. https://www.tecmint.com/fzf-fuzzy-file-search-from-linux-terminal/ https://www.tecmint.com/fzf-fuzzy-file-search-from-linux-ter... ---- I use the Silver Searcher all the time. Very fast. https://github.com/ggreer/the_silver_searcher https://github.com/ggreer/the_silver_searcher ---- tig, a text mode interface for git. https://github.com/jonas/tig https://github.com/jonas/tig
- CJKerr 8y agoIt's been mentioned previous, but you should check out ripgrep - it's even faster than Silver Searcher a lot of the time https://github.com/BurntSushi/ripgrep https://github.com/BurntSushi/ripgrep
- bjoli 8y agoDoes anyone not working on million-line codebase ever find themselves limited by grep? I am genuinely curious.
- burntsushi 8y agoPerformance isn't necessarily the only reason that folks use ripgrep. A lot of people like its smart filtering by default. Some don't though. See: https://github.com/BurntSushi/ripgrep/blob/master/FAQ.md#posix4ever https://github.com/BurntSushi/ripgrep/blob/master/FAQ.md#pos...
- informatimago 8y agoDo you mean more or less than 1M LOC? grep is usable on very large code bases, because after the first scan, all the sources are loaded in the file system cache, so the successive grep are done in RAM and are very fast. So much so that I almost never use ctags despite the improved semantic search (you can find more easily the exact identifiers and distinguish them by category). grep is just as fast and precise enough.
- CJKerr 8y agoUnfortunately, I work on a million-line codebase. Grep might be fine 99% of the time, but there's no reason to not drop a ripgrep binary on every machine I use regularly. Ripgrep is faster across the board and has better defaults for working in Git repositories. Since I'm working with a large codebase managed in Git, it's a no-brainer.
- breck 8y ago* tldr - better than man in 80% of cases * htop - better version of top for multi-core machines * tmux - when you want to run long-running commands
- michaelmior 8y agoIf I had to pick a single utility, it would be pv[0]. It's very simple, but I find myself using it all the time. Basically you stick it in a pipeline of commands to get a progress bar. The simplest usage is just to replace cat or input redirection with a call to pv. Saves a lot of time when I can quickly find out if the command I wrote is going to take 30 seconds or 30 minutes. https://www.ivarch.com/programs/pv.shtml https://www.ivarch.com/programs/pv.shtml
- jolmg 8y agoI guess these are so obvious no one mentioned them, but: ssh, git, zsh, bash, curl, wget, gpg, gzip, xz, btrfs, qemu, pv, tar, diff, comm, column, sort, uniq, sed, bc, tr, od, xxd, tcpdump, tshark, ping, nmap, ip, iw, xdotool, xrdb, grep, pgrep, pkill, lsof, inotifywait, journalctl, systemctl, convert, ed, and probably countless more I'm taking too much for granted to remember.
- nodesocket 8y agoFor sysadmin needs: - htop (better top) - nload (network traffic visualization) - nano (I know, but works great for simple editing) - curl (http everything tool) - telnet/nc (check listening ports)
- densone 8y agopine
- ryannevius 8y agoSort of on topic...Does anyone know of a good interactive resource for learning some of the tools that are included by default on UNIX systems? RTFM is useful, of course.
- yesenadam 8y agoNot sure what you mean interactive - trying things out on bash itself is a good way to learn. I put together a (quite long) single-webpage not-so-quick guide to bash shell,[0] which covers a lot of the basic stuff (well, with separate pages for grep/sed and AWK), at the bottom of the page are links to the best bash websites and names of the best books that I've found. Hope that's of some use. But yeah, the man pages become perfectly adequate guides/refreshers once you've learnt the basics of a command/tool - especially using them with "/" for searching for what you want. [0] http://www.adamponting.com/mac-terminal/ http://www.adamponting.com/mac-terminal/
- pjungwir 8y agoI don't know about interactive, but the book Unix Power Tools is a great survey, with quite a lot of depth. If you want something interactive as you work through the book (and even CLI itself), it would be hard to beat bash. ;-)
- em-bee 8y agois this what you are looking for? https://www.codecademy.com/learn/learn-the-command-line https://www.codecademy.com/learn/learn-the-command-line greetings, eMBee.
- sndean 8y agoMy top 4: 40.2% ls 22.8% cd 15.6% python 3.6% nano Since no one's mentioned it yet: I don't necessarily think nano is great, but it's always there and it opens immediately. Almost all small, quick edits I make (where opening VSCode/Emacs/whatever doesn't make sense) are done in nano. Pretty useful.
- Lordarminius 8y agoNano simply and efficiently gets the job done in 70% of cases. Nano Vim Xdg youtube-dl wttr git curl top watch
- Tepix 8y agonano is not on many of the systems i deal with - vi is.
- honkycat 8y agoSteam locomotive sl is ESSENTIAL to any command line work. If you don't use it you are a fool.
- maxxxxx 8y agoI am always impressed by the usefulness of the git command line. If you wanted to write a GUI for it you usually would have a library to link to but the GUIs (e.g SourceTree) I have seen use the command line and still get good performance. Another one is ffmpeg. A ton of tools are built on it. For photographers exiftool is great.
- mdekkers 8y agoMidnight Commander (mc); nano; htop; dstat; git; tmux;
- hrbf 8y agoCheck out: https://github.com/herrbischoff/awesome-command-line-apps https://github.com/herrbischoff/awesome-command-line-apps You’ll be sure to find something useful.
- anjakefala 8y agoOpen-source tool for quickly opening and exploring tabular data: https://jsvine.github.io/intro-to-visidata/index.html https://jsvine.github.io/intro-to-visidata/index.html (Disclaimer: I build homebrew, apt, etc packages for VisiData.)
- roadnottaken 8y agotabview [1] is a somewhat simpler tool for navigating tabular data that I install everywhere https://pypi.org/project/tabview/ https://pypi.org/project/tabview/
- mohitmun 8y agoCheckout command line based spreadsheet editor. sc-im(https://github.com/andmarti1424/sc-im https://github.com/andmarti1424/sc-im) if you are heavy vim user, you would definitely love it
- aprdm 8y agovim and tmux!
- sirwitti 8y agoVue-cli is pretty awesome! https://cli.vuejs.org https://cli.vuejs.org
- rutierut 8y agoI really really don't like what they did with version 3. What the heck is happening in my app? And what coder whants a gui for his dependencies???
- rutierut 8y agoNgrok - https://ngrok.com https://ngrok.com So easy and super convienient if you quickly need your local server accessible from somewhere else.
- Improvotter 8y agoI keep a VPS running with Nginx on it for a specific port. Then I forward that port via SSH using remote forwarding to enable this exact functionality. It's free if you've already got a server running.
- avip 8y agongrok is free even if you don't have a server running... and you can tunnel raw TCP. (not affiliated, I just really admire ngrok so I take it personally when people don't use it :))
- aerovistae 8y agogod, I had this same idea and thought about making it! I'm so glad you shared this, I had no idea someone else already did it! and did a great job with it, too, by the looks of it
- npstr 8y agoThis one is even easier because it doesn't require to install anything, just make a good old ssh tunnel: http://localhost.run http://localhost.run
- jakelazaroff 8y agoThe thing I really love about ngrok, though, is the web dashboard where you can inspect your tunnelled traffic and even replay requests: https://ngrok.com/docs#inspect https://ngrok.com/docs#inspect
- brink 8y agoOh, looks like you can get a consistent sub-domain too, provided it's unique enough. Nice.
- deleted 8y ago[deleted]
- locusofself 8y agoI love 'bpython' , python CLI with syntax highlighting and autocomplete for testing out quick ideas. Slightly off topic, but can I just say that iTerm2's native tmux integration is really awesome.
- spondyl 8y agoAh yes! I knew I had forgotten to install something recently
- zwischenzug 8y agoAlways had a soft spot for 'hollywood' https://www.youtube.com/watch?v=rVMn3xk5mcY https://www.youtube.com/watch?v=rVMn3xk5mcY
- kh_hk 8y agopeerflix - https://www.npmjs.com/package/peerflix https://www.npmjs.com/package/peerflix A streaming torrent client. I guess there are similar ones. Watching a torrent becomes: peerflix <magnet> --mplayer -t subtitle
- Artemix 8y agoI almost constantly listen to music. When I do so, I only use cmus nowadays. Awesome lightweight music player
- popee 8y agonetcat
- nurettin 8y agothe one that comes with nmap?
- popee 8y agoDoesn't matter because every re-implementation of that old unix tool is made for same purpose and mostly accept same arguments. For example you can make tar archive and pipe it to nc. On other server nc would accept data and pipe it to tar for unpack. This shows real power of unix pipes.
- nurettin 8y agoI asked, because the one from nmap actually supports multiplexing.
- arsalanb 8y agoThe Fuck — https://github.com/nvbn/thefuck https://github.com/nvbn/thefuck Magnificent app which corrects your previous console command
- skrebbel 8y agoScoop - https://scoop.sh https://scoop.sh It's basically apt/brew on Windows, but it's particularly awesome because it does not manage dependencies. It just downloads and extracts installers, which works because every self-respecting program that works on Windows distributes binaries as an installer (or just a zip) somewhere. Result: everything just works, every program is self-contained, no admin rights needed, no package maintainers needed either.
- superasn 8y agoSo far I've been using Chocolatey (https://chocolatey.org https://chocolatey.org) for doing this (and ninite though that's not command line). But this looks pretty cool too. Thanks for sharing!
- PhilippGille 8y agoI created a small CLI tool that I package for Homebrew, Snap, Docker, Chocolatey and Scoop, and I prefer the packaging experience for Scoop, which is the most easy and straightforward one. Compare the respective directories in https://github.com/philippgille/serve https://github.com/philippgille/serve.
- skrebbel 8y agoNice tool btw! I wish I'd known about it 5 days ago, when I taught a class that involved a little bit of web development. I used devd, but getting it in the PATH was a non trivial task for some of the trainees who used Windows. Serve has an installer, which presumably solves that even without scoop or chocolatey.
- skrebbel 8y agoYeah I used chocolatey for a while too, but I found it needlessly overengineered, and often the abstraction was leaky. Scoop is dumber, in a good way.
- JustFinishedBSG 8y ago> no admin rights needed, > Make sure Powershell 3 (or later) and .NET Framework 4.5 (or later) are installed. Yeah not exactly. Wouldn't work in most ( all ? ) the places I worked at.
- michaelmcmillan 8y agonc - arbitrary TCP and UDP connections and listens File transfer between machines: $ nc -l 1234 > filename.out Using a second machine, connect to the listening nc process, feeding it the file which is to be transferred: $ nc host.example.com 1234 < filename.in Or a simple web server: $ while true ; do nc -l -p 1500 -c 'echo -e "HTTP/1.1 200 OK\n\n $(date)"'; done
- xvilka 8y agoTry ncat from nmap - it has more features. And for some specific applications - socat.
- pmoriarty 8y agoHere's my list of 369 useful programs: https://paste.pound-python.org/raw/Uqc8XTFk73Y3PpbRe9hC/ https://paste.pound-python.org/raw/Uqc8XTFk73Y3PpbRe9hC/ It's not 100% made up of command-line programs, but most of them are.
- binaryapparatus 8y agohttps://newsboat.org/ https://newsboat.org/ Newsboat, fantastic RSS reader, built on top of newsbeuter. http://www.mutt.org/ http://www.mutt.org/ Mutt for email of course. https://vifm.info/ https://vifm.info/ Vifm file manager, I am using it for everything, not having any other file manager on my system. https://github.com/pimutils/khal https://github.com/pimutils/khal Khal for calendar. https://github.com/scheibler/khard/ https://github.com/scheibler/khard/ Khard for contacts. https://github.com/pimutils/vdirsyncer https://github.com/pimutils/vdirsyncer Vdirsyncer to sync calendar and contacts with any web calendar service.
- stevekemp 8y agoMutt is great, but if you want to use a "real" programming language to configure your client you might enjoy my alternative: https://lumail.org/ https://lumail.org/ https://github.com/lumail/lumail/ https://github.com/lumail/lumail/
- em-bee 8y agoit's nice to see new approaches to email in a terminal. how about integration with notmuch? greetings, eMBee.
- stevekemp 8y agoI think the people that enjoy notmuch would probably prefer to stick with what they know. If I were to use their query-based API, and just be a UI on it, then that'd be an almost complete rewrite.
- em-bee 8y agoon the contrary for the first point. i suspect that most enjoy notmuch with their traditional interface because there are not many alternatives. probably most people looking for interface alternatives switched to gmail. commandline UI development in particular seems very conservative, and attempts to explore new interfaces are rare. that's why i love this topic and am getting excited about any attempt to change that. i obviously can't comment on what it takes to integrate notmuch with lumail, and i grant that one may possibly have to develop a mailclient with notmuch in mind for it to work well. greetings, eMBee.
- em-bee 8y agosupmua. https://github.com/sup-heliotrope/sup https://github.com/sup-heliotrope/sup beats mutt hands down. groups emails by tags instead of folders. and it allows to open multiple views at once, keeping state in each. it also supports saved searches as a view. it's not actively maintained right now, but it is stable. i haven't had any problems yet. sup is the ancestor of the notmuch libraries which can be integrated into mutt. but i don't know how well that works. perhaps https://news.ycombinator.com/item?id=18483833 https://news.ycombinator.com/item?id=18483833 can shed some light on that. greetings, eMBee.
- em-bee 8y agoquoting https://notmuchmail.org/notmuch-mutt/ https://notmuchmail.org/notmuch-mutt/ > notmuch-mutt, which will create a "virtual" maildir folder with search results whenever a search is made. The upside is that you can search all your folders simultaneously; the downside is that your modifications in the results listing do not carry over, also having to switch folders comes with some more annoyances. sup does not have that problem. i have used mutt for more than a decade. switching to sup was a revelation. i would really love to see any alternatives that can compete with it. greetings, eMBee.
- modernerd 8y agoz - track most-used directories and jump to them https://github.com/rupa/z https://github.com/rupa/z https://github.com/jethrokuan/z https://github.com/jethrokuan/z (fish port)
- aldanor 8y agoUsed to use that but stopped after while, figured it's easier to just type a name or alias/symlink it if it's used often -- then it's deterministic in a non-interactive way, i.e. I can type it with my eyes closed and I know the end result. With tools like z I'll have to type less letters in the end but it requires interaction, and interaction/attention is more expensive than keypresses, at least in my world :)
- modernerd 8y agotldr - community-maintained man pages distilled to snippets https://tldr.sh/ https://tldr.sh/
- hjek 8y agoOne that I use a lot and I haven't seen mentioned here is `dict` which is fine for looking up word definitions and acronyms if a bit limited for translations.
- spondyl 8y agoIt's probably not what you'd use often/at all but I recently was glad to discover Google's import-mailbox-to-gmail[0] script. Technically a CLI I suppose, it imports an mbox file into Gmail. I had switched to G Suite and wanted to import some old emails. It took a while but this did the trick! [0]: https://github.com/google/import-mailbox-to-gmail https://github.com/google/import-mailbox-to-gmail
- inp 8y agoNice question! Here my personal setting: - Email : mutt [http://www.mutt.org/ http://www.mutt.org/] - Passwords manager : pass [https://www.passwordstore.org/ https://www.passwordstore.org/] - Navigate directories : autojump [https://github.com/wting/autojump https://github.com/wting/autojump] - Task manager : task [https://taskwarrior.org/ https://taskwarrior.org/] - Music : cmus [https://cmus.github.io/ https://cmus.github.io/] - Text editor : emacs -nw [https://www.gnu.org/software/emacs/ https://www.gnu.org/software/emacs/]
- sebcat 8y agoA few of these (all?) are TUIs and not CLIs. CLIs are command driven. TUIs are driven by user interactions. I'm sure more/better distinctions between the two can be made.
- em-bee 8y agothat's a fair point, but i don't think that's what the OP meant. CLI is commonly used to cover TUI when pittet against GUI. greetings, eMBee.
- AnIdiotOnTheNet 8y agoI don't believe that's true. TUI has more in common with GUI than CLI.
- sullyj3 8y agoI bet you five dollars OP was looking for TUI programs as well.
- em-bee 8y agosure, conceptually it does, but that's not the point. what matters for most is the fact that i can run the application in a text only terminal, on any machine (remote or local), from any device (be it linux, windows, mac or even a mobile phone (ok, that's rarely practical, but it's possible)) a GUI does not offer that advantage. greetings, eMBee.
- inp 8y agoA bunch of references from Suckless community that you can enjoy: http://suckless.org/rocks/ http://suckless.org/rocks/
- bobfromhuddle 8y ago* Email - neomutt + notmuch. * Chat - Weechat + WeeSlack (https://github.com/wee-slack/wee-slack https://github.com/wee-slack/wee-slack) * Pair Programming - tmate.io + neovim * Google Play Music - tuijam(https://github.com/cfangmeier/tuijam https://github.com/cfangmeier/tuijam) I really like bat (https://github.com/sharkdp/bat https://github.com/sharkdp/bat) as a cat replacement, and I've been enjoying using entr (http://entrproject.org/ http://entrproject.org/) for running tests automatically when code changes.
- IgorrrR 8y agoI became addicted to these great tools all written in Rust: fselect - https://github.com/jhspetersson/fselect https://github.com/jhspetersson/fselect ripgrep - https://github.com/BurntSushi/ripgrep https://github.com/BurntSushi/ripgrep exa - https://the.exa.website https://the.exa.website They are the replacements for traditional find, grep, and ls.
- codychan 8y agoTmux: https://github.com/tmux/tmux/ https://github.com/tmux/tmux/ fish-shell: https://github.com/fish-shell/fish-shell/ https://github.com/fish-shell/fish-shell/ ranger: https://github.com/ranger/ranger/ https://github.com/ranger/ranger/ tig: https://github.com/jonas/tig/ https://github.com/jonas/tig/ ag or rg: https://github.com/ggreer/the_silver_searcher https://github.com/ggreer/the_silver_searcher https://github.com/BurntSushi/ripgrep https://github.com/BurntSushi/ripgrep And all my configurations, especially for fish-shell: http://github.com/c02y/dotfiles http://github.com/c02y/dotfiles
- vanderZwan 8y agoI love fish-shell, but after years of using it I switched to Oh My ZSH!. The bash compatibility makes it a whole lot easier to use when you're the type of person who has to look up "how to do X on the command line" on the internet more often than you'd like to admit (that would be me). https://ohmyz.sh/ https://ohmyz.sh/
- mxschumacher 8y agohave you tried https://github.com/oh-my-fish/oh-my-fish https://github.com/oh-my-fish/oh-my-fish ? has been serving me well for years
- vanderZwan 8y agoIt's mainly the bash compatibility - does Oh My Fish fix that problem?
- em-bee 8y agothat would rather defeat the point, since fish breaks compatibility by design, that's part of what i like about it. i can however appreciate that breaking bash compatibility is not for everyone. i mix use of bash and fish. but more often than not i find myself in a situation where i switch to fish because it makes some complex command easier, than the reverse. greetings, eMBee.
- mike_r_parsons 8y agowebsocketd - Turn any command that uses stdin into a web socket server (i.e. connect to it from any browser) https://github.com/joewalnes/websocketd https://github.com/joewalnes/websocketd sqlite shell - https://www.sqlite.org/download.html https://www.sqlite.org/download.html combine the two for a high throughput web app - https://hackernoon.com/stream-a-million-websocket-sql-requests-from-a-single-browser-client-in-a-few-seconds-e7a2b068974c https://hackernoon.com/stream-a-million-websocket-sql-reques...
- vram22 8y agoI had blogged about websocket with an example using Python and JavaScript here: Use WebSockets and Python for web-based system monitoring: https://jugad2.blogspot.com/2014/01/use-websockets-and-python-for-web-based.html https://jugad2.blogspot.com/2014/01/use-websockets-and-pytho... websocketd and Python for system monitoring - the JavaScript WebSocket client: https://jugad2.blogspot.com/2014/01/websocketd-and-python-for-system.html https://jugad2.blogspot.com/2014/01/websocketd-and-python-fo... Will check out your hackernoon post, sounds interesting.
- vram22 8y agoI read that post. It's impressive that the combination of websocketd and sqlite can be so fast.
- PJ_Maybe 8y agodtrx - Do The Right Extraction. It's a tool "for Unix-like systems that takes all the hassle out of extracting archives": https://brettcsmith.org/2007/dtrx/ https://brettcsmith.org/2007/dtrx/ In Debian/Ubuntu you can install via apt. Also, I'd second tldr which has been mentioned here already. It provides simplified man pages which common usage examples that normally fit on a few lines on screen: https://tldr.sh/ https://tldr.sh/
- CJefferson 8y agoDtrx is awesome, but is unfortunately slowly dying, as the author seems to have abandoned it -- it can't be installed with pip anymore. I think I'm going to take it over, just need a name...
- chewzerita 8y agotar xf <archive> works with all types of tar compressed files.
- biql 8y agofasd - fast navigation in command line asdf - universal installation tool for ruby, node, go, etc ripgrep - very fast search zsh - shell (with zsh-autosuggestions and fasd hooks)
- xelxebar 8y agoCli-junkie brofist! I only drop out of the command line for occasional one-off browser stuff. Depending on your current familiarity with things, I can't recommend enough simply combing through the tools in coreutils, util-linux, find-utils etc. If you take just three or so a day, by the end of a few months you'll have a solid survey-understanding of what almost every *nix shell has available. Apart from that, here are some I use and enjoy: [0]:http://abook.sourceforge.net/ http://abook.sourceforge.net/ -- Vintage address book; Plays well with mutt [1]:http://git-annex.branchable.com http://git-annex.branchable.com -- A better Dropbox, and via git! [2]:https://www.lesbonscomptes.com/recoll/ https://www.lesbonscomptes.com/recoll/ -- Index and search the contents and metadata of (pdf, word, etc) documents [3]:https://www.roaringpenguin.com/products/remind https://www.roaringpenguin.com/products/remind -- Vintage and sophisticated tool for doing calendrical stuff. [4]:https://github.com/trizen/youtube-viewer https://github.com/trizen/youtube-viewer -- CLI YouTube with all the bells and whistles! [5]:https://6xq.net/pianobar/ https://6xq.net/pianobar/ -- Pandora radio!
- rmbeard 8y agoTry googler and you can browse from the command line.
- xelxebar 8y agoIf you like that, then you might like surfraw[0]. The main problem is that these don't really obviate the need for a browser, they just make it easier to open said browser tab from the command line. [0]:https://gitlab.com/surfraw/Surfraw https://gitlab.com/surfraw/Surfraw
- zzo38computer 8y agoIn order to load browser bookmarks from the command-line, I use this shell script: #!/bin/bash -- f0() { echo 'select moz_bookmarks.title || '"'"' = '"'"' || url from moz_places, moz_bookmarks on moz_places.id = moz_bookmarks.fk where parent = 2;' | sqlite3 /home/user/.mozilla/firefox/twht79zd.default/places.sqlite } f1() { firefox `echo 'select url from moz_places, moz_bookmarks on moz_places.id = moz_bookmarks.fk where moz_bookmarks.title = '"'$1'"';' | sqlite3 /home/user/.mozilla/firefox/twht79zd.default/places.sqlite` } f$# $1 You will need to modify it for your use, such as by changing the filenames. I also made another shell script to load Wikipedia. However, is also my opinion making many thing which do not need a web browser and can just be the command-line programs.
- underyx 8y agoOh, I wrote an article on this a while ago! It's mostly about smaller utilities, not full-fledged apps. Also, I ws focusing on the ones that are lesser known. Still could be useful for some: https://code.kiwi.com/lesser-known-tools-we-love-at-kiwi-com-part-1-of-3-cli-79eb6d67a065 https://code.kiwi.com/lesser-known-tools-we-love-at-kiwi-com...
- stevewillows 8y agoI use the following (in no particular order) -- definitely nothing fancy. * weechat * ffmpeg * youtube-dl * zsh * watchman (https://facebook.github.io/watchman https://facebook.github.io/watchman) * megadl (rarely, but its a handy tool when you need it) * brew (on my mac) * mountsshfs (on my mac) --- I moved away from orgmode and have been using it in VS since I have it open anyway. It covers me. I also want to start using Mutt or something similar. For those wondering, you can output an unnecessarily pretty list using: history | tr -s ' ' | cut -d ' ' -f3 | sort | uniq -c | sort -n | tail | perl -lane 'print $F[1], "\t", $F[0], " ", "" x ($F[0] / 12)'
- amelius 8y agoThere's a Firefox extension that let's you open a youtube webpage with e.g. youtube-dl: https://addons.mozilla.org/en-US/firefox/addon/open-with/ https://addons.mozilla.org/en-US/firefox/addon/open-with/ Sometimes, using a GUI is easier than a CLI :)
- tummybug 8y agoThis doesn't look to take commands after a pipe into account so IMHO doesn't accurately reflect command usage. For example running above I was surprised awk wasn't in the list but when I went to investigate I found I almost always am piping something to awk.
- yesenadam 8y agoHmm yeah. And often I type multiple commands separated by semicolons, which it bunches together as one. Also that and long paths meant mine was very unpretty. Speaking of AWK, this uses the same flawed method, looks nicer (for my history), and is shorter: history | awk '{a[$2]++} END{for (i in a) print a[i]"\t"i}' | sort -n | tail
- xte 8y agoJust for curiosity: you have moved away from Emacs org-mode? If yes may I ask why? I'm using Emacs since few times and it's now even my WM and org-mode is it's companion for nearly all docs/docs related stuff I use, never found anything even near comfortable and powerful as that combo...
- nanna 8y ago- pdfgrep : grep search pdfs - htop : A nicer version of the process viewer top - rename : bulk rename things via a regex/sed-like interface - youtube-dl -x : download the audio of a video - locate : Find something anywhere.
- paol 8y agoSecond the usefulness of rename, but beware there is some confusion about the name of the tool. It's called 'rename' on debian and derivatives and 'prename' on RH and derivatives.
- amelius 8y ago> locate : Find something anywhere. I strongly dislike updatedb, which is always stealing CPU cycles at inconvenient moments, and locate often seems out of date. We should have had instant, database-like indexing in our filesystems ages ago.
- deleted 8y ago[deleted]
- _arvin 8y agoYou can run updatedb more frequently. By default it is run on a daily cron job and has the smarts to not run when on battery. (see /etc/cron.daily/mlocate) You can also exclude directories in /etc/updatedb.conf that you don't want locate to index. I think in your case a more frequent cron job make sense. If run often enough, it finishes very quickly when running updatedb, which will you give you the instant search you're looking for.
- msmart 8y agoHaven't seen Hledger [http://hledger.org/ http://hledger.org/] in the recommendations. It is a great accounting tool!
- AsyncAwait 8y ago- https://github.com/haskellcamargo/sclack https://github.com/haskellcamargo/sclack to avoid using Slack's garbage desktop client
- rajadigopula 8y agoGit Standup - https://github.com/kamranahmedse/git-standup https://github.com/kamranahmedse/git-standup Coinmon (Requires node) - https://github.com/bichenkk/coinmon https://github.com/bichenkk/coinmon
- enriquto 8y agothe elinks browser blew my world a few years ago
- dspillett 8y agoThree tools I make sure are installed on everything I use via CLI: rsync, pv, & progress. rsync (usually over SSH): the kitchen sync of file transfer commands. In Linux-land it is quite common to find it already installed, and if not it is in the standard repos. Available for Windows too. pv (pipeviewer, http://www.ivarch.com/programs/pv.shtml http://www.ivarch.com/programs/pv.shtml): very useful for monitoring some classes of long-running process. progress (https://github.com/Xfennec/progress https://github.com/Xfennec/progress): for similar reasons to pv, wanting to see how a long-running task (that isn't giving its own progress information) is getting on.
- AJRF 8y agotig (That's git backwards) It's a luxury and you don't need it if you use something like fugitive in vim, but its a lovely little tool. https://github.com/jonas/tig https://github.com/jonas/tig Think SourceTree but on the command line.
- h1d 8y agotig doesn't feel like SourceTree. It's not easy to just see list of changed files from a commit to the next. In that sense, lazygit is more navigation friendly.
- expertentipp 8y agoI would gladly see a list of useful aliases for omnipresent CLI utilities like `grep`, `ls`, `cat`, `less`, `cut`, etc. They're surprisingly powerful but going through their man pages is like reading a whole library.
- philbarr 8y agotldr is really handy for that: https://github.com/tldr-pages/tldr https://github.com/tldr-pages/tldr
- kuroguro 8y agoI wonder if there's any 2FA code storing/generating cli application? I know they aren't supposed to be used like that but storing them all on just a phone doesn't seem wise in the long run. Might be useful while building some automated scripts as well. _edit_ oathtool seems promising (needs to be paired with something to manage and crypt the keys tho) http://www.nongnu.org/oath-toolkit/oathtool.1.html http://www.nongnu.org/oath-toolkit/oathtool.1.html
- kylebarron 8y agohttps://github.com/rsc/2fa https://github.com/rsc/2fa
- erinnh 8y agoI use totp-cli: https://github.com/WhyNotHugo/totp-cli https://github.com/WhyNotHugo/totp-cli
- heuiop 8y agoIf you use pass as a password manager, you can use pass-otp to keep the 2fa keys.
- yoz-y 8y agosubliminal: https://github.com/Diaoul/subliminal https://github.com/Diaoul/subliminal great tool for downloading subtitles, sadly it seems unmaintained and sometimes fails to work rtorrent: https://github.com/rakshasa/rtorrent https://github.com/rakshasa/rtorrent my preferred way to download ISOs of Linux distributions And a +1 for some that were already mentioned: tig, ripgrep, htop, midnight commander
- SuddsMcDuff 8y agosox - the Swiss Army knife of sound processing programs http://sox.sourceforge.net/ http://sox.sourceforge.net/
- veddox 8y agoMy setup on servers and programming environments: * fish shell * tmux (multiplexer) * emacs-nox (non-GUI version) * mocp (music player) * w3m (web browser) * htop (process viewer)
- blibble 8y agomoc for a music player calcurse for calendar mutt for email client
- Annatar 8y agoAWK: lighweight, fast, versatile, incredibly powerful programming language.
- EamonnMR 8y agoimagemagick - Clint too for changing images. When you need to turn an entire folder of pictures into a single PDF, encode them so that the file size isn't huge and scale them to avoid morie patterns, it's the tool of choice.
- ohiovr 8y agoGoaccess is a great little realtime log file analyzer in a similar vein as webalizer. Not only does it work through the console it can also output html. https://goaccess.io https://goaccess.io (this is just something I found recently, not affiliated with it or anything)
- non-nil 8y agoBorgBackup: https://github.com/borgbackup/borg https://github.com/borgbackup/borg Deduplication, compression, encryption, to local or remote targets.
- h1d 8y agorestic and duplicacy are modern alternatives.
- explainplease 8y agoThey are, but Borg is also modern.
- znpy 8y agoI am getting fonder and fonder of xargs. It basically reads some input and appends it to a pre-supplied string. Then executes the newly created string as a command. Trivial example: ls -1 | xargs -L1 echo processing I am finding it quite useful to load and delete a bunch of netapp volume snapshots in a single line: ssh netappuser@netapphost volume snapshot show $volname | awk '/selector_pattern/{print $1}' | xargs -L1 ssh netappuser@netapphost volume snapshot delete $volname
- aptmiguk 8y agoWith xargs (and find), I wish I would've found this sooner: find test -print0 | xargs -0 file "This allows file names that contain newlines or other types of white space to be correctly interpreted by programs that process the find output. This option corresponds to the -0 option of xargs."
- tyingq 8y agoPerl also supports -0 and is handy for some use cases because it won't spawn a process per line like xargs. # remove files without spawning lots of rm processes find . -name "*.xyz" -print0 -type f| perl -0 -ne 'chomp;print "$_\n";unlink;'
- flavor8 8y agotodo.txt - todo list manager with extensions (e.g. git sync, google tasks integration, etc).
- benp44 8y agoI wrote a Python cli tool for getting the git status/history over multiple local repositories. I am often working across several repos on a single project, but generally I find it useful to see what updates are available, and also what my team are up to. https://github.com/benp44/git-bulk-toolkit https://github.com/benp44/git-bulk-toolkit shameless plug alert
- fiveFeet 8y agoI use mr [1] for this [1] - https://myrepos.branchable.com/ https://myrepos.branchable.com/
- rawoke083600 8y agoGuake - dropdown terminal with tabs for linux :) I can't see my day without it !
- em-bee 8y agothat's not a CLI tool but a tool for running CLI commands :-)
- deleted 8y ago[deleted]
- rawoke083600 8y agoHahah true ! But damn its useful!
- heuiop 8y agoiftop - top for network interfaces. vnstat - the simplest traffic stat collector I could find.
- drpossum 8y agounits Doing any kind of engineering or science, this is my go to calculator for stuff that I find a lot of people using google for
- joshbaptiste 8y agoTmux: https://github.com/tmux/tmux/ https://github.com/tmux/tmux/ ts: http://vicerveza.homeunix.net/~viric/soft/ts/ http://vicerveza.homeunix.net/~viric/soft/ts/ (TaskSpooler) queue commands in different terminals socat: http://www.dest-unreach.org/socat/ http://www.dest-unreach.org/socat/ -- Multi-purpose relay most: http://www.jedsoft.org/most/ http://www.jedsoft.org/most/ pager more features than less/more sshfs: https://github.com/libfuse/sshfs https://github.com/libfuse/sshfs remote filesystem using SFTP via FUSE passgo: https://github.com/ejcx/passgo https://github.com/ejcx/passgo Simple golang password manager rclone: https://github.com/ncw/rclone https://github.com/ncw/rclone rsync for cloud storage autosub: https://github.com/agermanidis/autosub https://github.com/agermanidis/autosub Command-line utility for auto-generating subtitles for any video file
- janlaureys 8y agoIntrigued by autosub, is it better than Youtube's auto-captions ?
- joshbaptiste 8y agoIt relies on Google’s translation API in GCP which isn’t free but does have a trial period. I assume YouTube would also rely on this service internally for auto captions.
- h1d 8y agoIf you want more complete cloud backup, try restic or duplicacy which have encryption, dedup and retention policy. https://github.com/restic/restic https://github.com/restic/restic https://github.com/gilbertchen/duplicacy https://github.com/gilbertchen/duplicacy
- rraghur 8y agoAlso, I found borg better than restic since borg also does compression https://github.com/borgbackup/borg https://github.com/borgbackup/borg
- pmlnr 8y agodaily-ish drivers of mine: - autossh - https://linux.die.net/man/1/autossh https://linux.die.net/man/1/autossh - sshfs - https://github.com/libfuse/sshfs https://github.com/libfuse/sshfs - pandoc - https://pandoc.org/installing.html https://pandoc.org/installing.html - exiftool - https://www.sno.phy.queensu.ca/~phil/exiftool/ https://www.sno.phy.queensu.ca/~phil/exiftool/ - htop - https://hisham.hm/htop/ https://hisham.hm/htop/ - tmux - https://github.com/tmux/tmux/wiki https://github.com/tmux/tmux/wiki - rsync - https://rsync.samba.org/ https://rsync.samba.org/ - midnight commander - https://midnight-commander.org/ https://midnight-commander.org/ (faster, than loop ing ls, cd .., ls) Still trying to think about the others.
- tyingq 8y agoSome I like... jq - process json on the command line: https://stedolan.github.io/jq/ https://stedolan.github.io/jq/ perl one liner to debug a regex: perl -e 'use re "debug"; "xyz" =~ /x*y+z/;' "hd -c" - I like this hexdump format lsof - debug open files/sockets/etc
- chrisweekly 8y agolnav - mini-ETL w/ embedded sqlite; parse and query logfiles or any other structured text-based input... it's powerful, intuitive, extensible. https://lnav.org https://lnav.org
- INTPenis 8y agoI'm a cli junkie but I've gone from using very minimal tiling WMs to vanilla Gnome. So I've stopped using bitlbee for example, but bitlbee is something I'd use a lot in the days of 100% terminal. It's an IRC proxy for other protocols like Skype or Slack. I have no idea how it stands up today but I always liked the concept of having one service that handled conversion of all the modern protocols to text based. Other than that I think people have already given amazing recommendations so I have nothing to add.
- lunchables 8y agoCurious what made you leave tiling WMs? I think about switching back occasionally, but still use dwm. I also used to use bitlbee, but once AIM died I dropped it. Slack dropped their irc gateway a while ago. I recommend wee-slack[1] which is a weechat[2] python plugin that uses the Slack API instead of the old IRC gateway, which also means it is a lot more feature rich than the IRC gateway was. 1 - https://github.com/wee-slack/wee-slack https://github.com/wee-slack/wee-slack 2 - https://weechat.org/ https://weechat.org/
- INTPenis 8y agoMy focus has always been on being able to work without issue. Without OS locking up or without tools malfunctioning. Used to have laptops with 256MB RAM for example, or 1024x768 pixel resolution. So I'd do anything to cram as much as possible into a tiny screen using as little resources as possible. Now my laptop has 8G of RAM and an i7 CPU at 2.5GHz and 4 virtual cores. On top of that Linux and Gnome have made a lot of advances so it runs like a dream and I can work without having ~100 lines of configuration in my WM. More seamlessly go from my own to someone elses computer without forgetting that caps lock is my Meta key. It all pretty much resembles Windows and Mac OS more. I just don't see any purpose with torturing myself using a minimal resource desktop environment when I don't have to. The main program is still gnome-terminal and tmux, I still do a majority of my work there. Habitually use cli for as much as possible, even simple operations that I could do in the Gnome file browser. But I do it all with a vanilla Gnome configuration and I still don't miss a thing.
- krylon 8y agoI really like the find(1) command on Unixoid systems. On Windows, I have installed git some machines simply to have grep and find available.
- cntlzw 8y agoz - jump around https://github.com/rupa/z https://github.com/rupa/z
- hi41 8y agoI love ImageMagick. We were able to write a script to join thousands of images from command line. The manual GUI way of joining images would have been incredibly slow.
- em-bee 8y agohere is a nice selection by bryan lunduke: https://www.networkworld.com/article/3091139/linux/who-needs-a-gui-how-to-live-in-a-linux-terminal.html https://www.networkworld.com/article/3091139/linux/who-needs... he lists: email: alpine webbrowser: w3m editor: nano wordprocessing: wordgrinder http://cowlark.com/wordgrinder/index.html http://cowlark.com/wordgrinder/index.html audioplayer: cmus https://en.wikipedia.org/wiki/Cmus https://en.wikipedia.org/wiki/Cmus instant messaging: finch and hangups https://developer.pidgin.im/wiki/Using%20Finch https://developer.pidgin.im/wiki/Using%20Finch https://github.com/tdryer/hangups https://github.com/tdryer/hangups twitter: rainbowstream https://github.com/orakaro/rainbowstream https://github.com/orakaro/rainbowstream reddit: rtv https://github.com/michael-lazar/rtv https://github.com/michael-lazar/rtv ps: htop filemanager: midnight commander terminal manager: tmux presentations: tpp http://www.ngolde.de/tpp.html http://www.ngolde.de/tpp.html greetings, eMBee.
- devonkim 8y agoAWS CLI replacement: awless https://github.com/wallix/awless https://github.com/wallix/awless
- b3b0p 8y agoI've been digging ncdu recently, which is basically a du replacement: https://dev.yorhel.nl/ncdu https://dev.yorhel.nl/ncdu
- jyounker 8y agoNcdu is really useful for identifying space hogs.
- mav3rick 8y ago+1. Really really handy.
- tyingq 8y agoNot as nice as ncdu, but if you have to work with what's already installed: du -k --max-depth=2 * | sort -rn | head Ymmv, but playing around with max-depth is usually enough to find the culprit for me.
- milkmiruku 8y agorecently created an alias; ncdu='ncdu --color dark -q' -q for quiet, slows updating the ncurses interface down for a quicker scan. also; -1 for scan info pre ncurses display and -0 for no scan info.
- lozf 8y agoSome great contributions here ... some that are missing (or at least scarce) which deserve more attention: units - for a broad range of conversions without having to resort to Wolfram Alpha or a search engine bc -l - the -l option really empowers this awesome little calculator. mpv - awesome media player - point it at a media URL (it uses youtube-dl in the background, so perfect for viewing or listening with no ads,) but can also play from open directories / SMB shares, online radio, Play a series of images as video, Access any FFmpeg/Libav libavformat protocol or filter (including generating tones and images, and more. And once it's playing, has great interactive keyboard controls for many useful functions.
- vram22 8y ago>Some great contributions here ... Agreed. >bc -l - the -l option really empowers this awesome little calculator. Right. Since bc is a Unix filter, you can also pipe expressions into it, to be evaluated, so it can be used in general Unix pipelines. E.g.: echo *arithmetic_expression* | bc -l and the output comes on stdout, so it can be further piped. Edit: You have to quote any shell special characters in arithmetic_expression with single quotes, or better, just enclose the entire arithmetic_expression in single quotes. If asterisk (for multiplication) is not quoted, for example, it will be treated as a filename wildcard instead, and likely lead to an error. A wrong and a right example: $ echo 2 + 3 * 4 | bc -l (standard_in) 1: syntax error $ echo '2 + 3 * 4' | bc -l 14
- akavel 8y agoup - https://github.com/akavel/up https://github.com/akavel/up Ultimate Plumber is a tool for writing Linux pipes with instant live preview It's a new CLI tool I've recently written, and it reached a Top 1 position on HN just after the public release. It works with other classic CLI tools by boosting the speed with which they can be composed together. It's especially useful for quick exploration of logs, CSV files, and other text files or pipelines.
- nurettin 8y agois it like less?
- akavel 8y agoUm; I feel it's kinda as if you asked if a dog is like rhinoceros... How do I even answer that? Simplest answer is: "no, it's not"; though if you squint your eyes super hard, you could see some kind of vague resemblance, maybe? Have you seen the readme? There's an animated gif showing how it works, and a more detailed description.
- nurettin 8y agoYeah, have you seen the readme? > interactively and incrementally explore textual data Just like less. > This is achieved by boosting any typical Linux text-processing utils such as grep, sort, cut, paste, awk, wc, perl, etc., etc., by providing a quick, interactive, scrollable preview of their results. Yep, that's less. > use PgUp/PgDn and Ctrl-[←]/Ctrl-[→] for basic browsing through the command output; Sure that's not like less? You can even start searching results of a high output command immediately after the pipe. Apparently dogs aren't that different?
- akavel 8y agoAhahah, lol, ok, get it :D So, apparently I totally reinvented less, I concede :) To say even more, it's actually very much a crippled less (not all of its functions available!). With just one feature added, namely: > in the input box at the top of the screen, start writing any bash pipeline; then press Enter to execute the command you typed, and the Ultimate Plumber will immediately show you the output of the pipeline in the scrollable window. At least for me personally, it was painfully worth reimplementing the crippled less functionalities for this single little addition. Though I do admit I felt the lack of the slash-to-search feature of less already yesterday when using up... And, to explain myself a bit, I really tried my best at explaining the tool in the readme... it's just that I can't currently think of any better wording :( If by any chance you had some idea/suggestion how you think I could improve it, I'd be super eager to hear it! I'm kinda too deep in the trenches to be able to look at it from a distance, so even seemingly obvious (to you) comments (as the one with the comparison to less, after you explained it) are sincerely valuable to me!
- nazri1 8y ago(shameless plug) git number: https://github.com/holygeek/git-number https://github.com/holygeek/git-number Use numbers for dealing with files in git.
- gameswithgo 8y agoripgrep like grep but faster https://github.com/BurntSushi/ripgrep https://github.com/BurntSushi/ripgrep
- ScarZy 8y agoI use vim exclusively, and use a terminal for most things. FZF - fuzzy file finding lightning quick, I use this as a ctrl+p replacement in vim too. Kubectx - Supported by FZF. Quickly change k8s context and define namespaces easily too (Kubens)
- em-bee 8y agoa very useful set of utilities, that i only recently discovered here on hackernews are imv and qmv from http://www.nongnu.org/renameutils/ http://www.nongnu.org/renameutils/ it makes renaming of long filenames much easier. especially if there are many files with similar names. greetings, eMBee.
- Dowwie 8y agoJust about every Rust cli app written by sharkdp: https://github.com/sharkdp/fd https://github.com/sharkdp/bat https://github.com/sharkdp/diskus https://github.com/sharkdp/hyperfine For viewing csv's as tabular, paged data from the terminal, check out VisiData (python) https://github.com/saulpw/visidata https://github.com/saulpw/visidata
- deleted 8y ago[deleted]
- qorrect 8y ago| For viewing csv's as tabular I use peco for this https://github.com/peco/peco https://github.com/peco/peco , thanks for sharkdp checking those out.
- Dowwie 8y agoHow are you using peco to view csv's?
- apjana 8y agoCLI utilities from jarun for daily use: File manager: https://github.com/jarun/nnn Google search: https://github.com/jarun/googler DuckDuckGo search: https://github.com/jarun/ddgr Bookmark manager: https://github.com/jarun/Buku Multicore resize & rotate: https://github.com/jarun/imgp Calculator: https://github.com/jarun/bcal Date diff and timers: https://github.com/jarun/pdd Kernel keylogger: https://github.com/jarun/keysniffer The developer (https://github.com/jarun https://github.com/jarun) writes cmdline utilities only. His tools are highly optimized for performance and integrates seamlessly with the DE. Most of them are available on popular distros and Homebrew.
- ptd 8y agoI might be revealing my lack of experience here, but why would you need an app to view your csv? What is the benefit of this over running the data frame or df.head?
- 8y ago
- hypertexthero 8y agoHugo static website generator - https://gohugo.io/ https://gohugo.io/
- ronancremin 8y agoI can't believe nobody has mentioned VisiData. It's like Vim, but for structured data. https://VisiData.org https://VisiData.org
- yboris 8y agodiff2html: https://diff2html.xyz/ https://diff2html.xyz/ -- view your diff color-coded in HTML just run `npm install -g diff2html-cli` and `diff2html` I recommend this alias `alias diff='diff2html -s side'`
- twic 8y agosed
- em-bee 8y agoa tool that looks very promising is xiki: http://xiki.org/ http://xiki.org/ i haven't been able to try it myself yet, but i am curious to hear if anyone else has played with it. sadly the creator hasn't been able to work on it since the last funding campaign failed, but he is preparing a new campaign just now: https://groups.google.com/forum/#!topic/xiki/Dvzo14Lhoyg https://groups.google.com/forum/#!topic/xiki/Dvzo14Lhoyg greetings, eMBee.
- gooseyard 8y agoEverything else I like has been mentioned, save for GNU datamash (https://www.gnu.org/software/datamash/ https://www.gnu.org/software/datamash/)
- whyleyc 8y agoOne line bash command to convert (almost) any type of file to any another format using the Zamzar API. Convert PDF to Word, Powerpoint to JPG, WMV to MP4, DWG to PDF etc: https://github.com/zamzar/zamzar-bash https://github.com/zamzar/zamzar-bash (Full disclosure: I'm one of the co-founders at Zamzar).
- rplnt 8y ago> I really enjoy using a command-line interface instead of a graphical user interface I'm not sure what kind of interface you mean here, but judging by the responses graphical interface in terminal is OK. In that case, *lazygit https://github.com/jesseduffield/lazygit https://github.com/jesseduffield/lazygit first GUI on top of git that I didn't hate. Primarily because it doesn't break the flow in command line. Instead of diff/add/commit I open this, but for the rest I still use git directly (or through aliases).
- modzu 8y agopipe
- homarp 8y agoarchiver: https://github.com/mholt/archiver https://github.com/mholt/archiver create and extract .zip, .tar, .tar.gz, .tar.bz2, .tar.xz, .tar.lz4, .tar.sz, extract.rar see https://news.ycombinator.com/item?id=18486253 https://news.ycombinator.com/item?id=18486253
- SamWhited 8y agoI use mcabber and irssi for chat. Mcabber doesn't really support much in the way of features (so even on a modern XMPP server you're missing simple things like fetching history), but its vi style shortcuts and nice layout mean I can't give it up. Combined with jmp.chat I can even send text messages from it.
- phxql 8y agoTaskwarrior: https://taskwarrior.org/ https://taskwarrior.org/
- luislezcair 8y agoI use `ack` (https://beyondgrep.com/ https://beyondgrep.com/) as a replacement for `grep`. It is simpler, faster, it has colors by default and it's really fast and very useful for programming.
- michilehr 8y agoVery useful - I use ack-grep for MacOS
- scrollaway 8y agohttpie is the nonstandard command I use the most I think (https://httpie.org/ https://httpie.org/). Syntax highlighting for everything that comes down the pipe is pretty awesome. I'm also a sucker for bat (https://github.com/sharkdp/bat https://github.com/sharkdp/bat) which I just found out about through this thread. My zshrc includes a bunch of commands you might like, btw: https://github.com/jleclanche/dotfiles https://github.com/jleclanche/dotfiles Among them, the ones I use the most are `json` and `yaml` for pretty printing both formats, as well as `urlencode` / `urldecode` / `urlarray` which I recently added.
- bovermyer 8y agoBesides what others have added, I also love: proselint: http://proselint.com/ http://proselint.com/ alex: https://github.com/get-alex/alex https://github.com/get-alex/alex Both are CLI linters for prose.
- Already__Taken 8y agoAs a windows admin, docker has actually been super handy for running CLI tools with platforms (linux) that I can't easily get or have no will to compile natively myself on windows.
- h1d 8y agopwgen - Handy to create a password. It generates dozens at once which you can pick from. cal - Obvious but I still launch GUI calendar app when I can just type 3 letters to check on dates.
- fergie 8y agoI’m surprised that nobody is mentioning plain old Bash. The builtins are pretty powerful, and in many ways Bash is the “standard” cli.
- dtjohnnymonkey 8y agoInsect for converting between units https://insect.sh https://insect.sh
- zornado 8y agoAria2: https://github.com/aria2/aria2 https://github.com/aria2/aria2 an excellent download manager. Supports many functionalities such as downloading torrents, multi-connection downloads, and resuming uncompleted downloads. It also support RPC calls which enables it to be an excellent download manager back-end.
- SegFaultCDumped 8y agoI saw Aria2 has two packages in F-driod. I installed them and looked at the docs but I couldn't figure out how to download stuffs with Aria2. A small example of it's use will be highly appreciated. Thank you.
- efreak 8y agoyou need both. One of them pnly supplies a UI, while the other only supplies the binary. I personally recommend running aria2c via termux and using ziahamza.github.io/webui-aria2
- plibither8 8y agoHere's a simple game - 2048 in your terminal :) : https://github.com/plibither8/2048.cpp https://github.com/plibither8/2048.cpp
- app4soft 8y ago1) Moon Buggy -- ASCII art version of moon-buggy game.[0] 2) SHPaint -- ANSI Art editor programmed in bash.[1,2] [0] http://www.seehuhn.de/pages/moon-buggy.html http://www.seehuhn.de/pages/moon-buggy.html [1] http://bruxy.regnet.cz/web/linux/EN/ansi-art-sh-paint http://bruxy.regnet.cz/web/linux/EN/ansi-art-sh-paint [2] https://www.youtube.com/watch?v=aoAMxMukgPY https://www.youtube.com/watch?v=aoAMxMukgPY
- pxc 8y agoThis is an abbreviated list of my command-line applications, taken from the Nixpkgs overlay I use for configuring macOS, NixOS, and non-NixOS Linux: pxc.common.tui.pkgs = with self.pkgs; [ # cli basics htop # top, but nicer httpie # curl, but much nicer except for lacking a man-page (--help is very complete) ranger # file manager ripgrep # my favorite grep alternative/replacement tree # prints directory trees # stuff my fish config uses and some goodies I want fish # very nice shell, replaces bash grc # GNU regular colorizer: uses regular expressions to colorize the terminal tmux # terminal multiplexer (tiling window manager for the terminal) byobu # some tmux config that makes things a little nicer. Great for new tmux users, hardly used anymore fzf # fuzzy filtering: used for changing directories, selecting files to open, browsing shell history fasd # frecency tools: jump to directories, open files, etc., based on fuzzy matches sorted by frecency keychain # simplified SSH and GPG key loading/management direnv # barebones projects, pretty nifty gitAndTools.hub # GitHub CLI extensions for Git gitAndTools.tig # curses TUI for browsing git logs # makes tmux pretty with `powerline-config tmux setup` pythonPackages.powerline findutils # macOS comes with weak find command gawk # macOS comes with ancient gawk, tmux-fingers wants a newer one pass # GPG+git-based CLI password manager pwgen # for use with pass p7zip # archiving tool that can do pretty much everything # chat weechat # nice terminal-based IRC app ### extras-ish ### mediainfo # tell me things about multimedia files asciinema # record TTY/terminal sessions (with audio) as moving text for the browser cowsay graphicsmagick # image manipulation. lots of fun for quickly uploading custom emoji to Slack ];
- andersonvom 8y agogitsh - https://github.com/thoughtbot/gitsh https://github.com/thoughtbot/gitsh Since git is by far the command a lot of people type the most, this shell comes in really handy. It supports all regular git aliases, has autocompletion, super useful for setting temporary names when pair programming, and you can set default commands to be run when you just press return.
- hddherman 8y agobyobu (http://byobu.co/ http://byobu.co/) is an amazing thing to have on your remote server, sessions and switchable windows + splits make this a must-have tool. Think of it as tabs but for your SSH session, plus many more features.
- sfdgsdfg 8y agoPeople might be more familiar if you would describe it as a t-mux alternative.
- nrclark 8y agoJust a quick note on this - byobu isn't a tmux alternative exactly. It actually uses tmux (or screen) on the back-end. So it's more like a nicely configured tmux.conf/.screenrc with standardized bindings.
- agentultra 8y agoI love `jq`: https://stedolan.github.io/jq/ https://stedolan.github.io/jq/
- hatsubai 8y agoIf you do any bash/sh programming, I highly recommend shellcheck: https://github.com/koalaman/shellcheck https://github.com/koalaman/shellcheck
- mdip 8y agoI so wish this worked with zsh -- great tool, none-the-less.
- spudlyo 8y agoAgreed, highly recommended. I dreaded writing shell scripts for the longest time because of the weird syntax and many gotchas. Having emacs flycheck my shell buffers with shellcheck gives me confidence that I'm not doing anything stupid.
- C0d3r 8y agoUseful tool replacements that some people have already mentioned: - ls -> exa - cat -> bat - find -> fd - top -> htop -> glances - grep -> ack -> ag -> rg - hr (to draw a horizontal line in your terminal) A lightning talk about them: https://youtu.be/hp-1plTKOqc?t=551 https://youtu.be/hp-1plTKOqc?t=551
- kippfe 8y agoA url link to each toll would be nice
- kinard 8y agoXTree Gold
- sgt 8y agopsql
- mdip 8y agoThere are so many to list that I'll skip the more obvious ones (they're well represented in the comments) and pick a few that I've been enjoying a lot lately: Netflix-Skunkworks/go-jira[0] - Jira interface written in Go that is incredibly flexible. bat[1] - cat with code highlighting climate[2] - Shell swiss-army knife of tools That last one deserves a post on its own. It's certainly not the most portable thing -- requiring that certain binaries be available for some of its functions, but it works as-is for the Linux distributions that I run and provide simple commands for getting information about things that isn't always trivial to remember (such as getting an external IP address of a host from the command-line). Silly things like remembering the CLI options for 'du' (along with the necessary '| sort ... | head -5') are replaced by 'climate biggest-files'. It replaces a mess of tools, but does so, often, by simply calling those tools with the "correct" parameters that I've forgotten. Yes, a well authored set of aliases for the most common commands would do the same thing, but I end up using 'climate' in cases where the information I need is something I rarely need for a given task and getting that information is going to be a non-obvious exercise involving a few pipes. It's a "kitchen sink" utility with a set of commands that, for the most part, you'd find a hard time grouping them into a single theme -- a command for getting the current weather (after all, it is named climate) next to one to download all files on a web page, next to one to get disk usage stats in a variety of ways. Normally, I don't like tools like this, but this one lands as a big exception to that rule for me. [0] https://github.com/Netflix-Skunkworks/go-jira https://github.com/Netflix-Skunkworks/go-jira [1] https://github.com/sharkdp/bat https://github.com/sharkdp/bat [2] https://github.com/adtac/climate https://github.com/adtac/climate
- 0xf8 8y agoone of my favorites is Sym. " Symmetric Encryption that's easy on Humans" https://github.com/kigster/sym https://github.com/kigster/sym
- cpburns2009 8y agoI frequently use: - git - grep - head - man - rsync - screen - sshfs - tail - watch - vim I recently discovered: - colordiff - paste
- vram22 8y agoI wouldn't call it among the best, but it has a real-life use, and was, and maybe still is, used in production by a large motorcycle manufacturer, for whom I originally wrote it: https://jugad2.blogspot.com/2014/09/my-ibm-developerworks-article.html https://jugad2.blogspot.com/2014/09/my-ibm-developerworks-ar... I had given some more details about it on HN some time ago: https://news.ycombinator.com/item?id=17327807 https://news.ycombinator.com/item?id=17327807
- cyberpip 8y agohttps://github.com/mfaerevaag/wd https://github.com/mfaerevaag/wd - Jump to custom directories in zsh
- jpeeler 8y agoI really appreciate the people who include descriptions and links for their list. My list has been pruned to avoid duplication (though perhaps knowing what's popular is a good metric too). asdf: https://github.com/asdf-vm/asdf https://github.com/asdf-vm/asdf - installs many different programming languages and supports installing different versions concurrently. I use it for go installs since distribution updates aren't usually fast enough. solaar: https://github.com/pwr/Solaar https://github.com/pwr/Solaar - handles configuring a logitech unifying receiver in Linux. Not really something you'd use multiple times, but am thankful it exists (also has a GUI too I believe).
- bklaasen 8y agoabcde - A Better CD Encoder (http://lly.org/~rcw/abcde/page/ http://lly.org/~rcw/abcde/page/) I bought three cheap USB CD drives and concurrently ripped all of my CDs to FLAC over the course of a couple of weekends. abcde gets the best possible copy. ddrescue - GNU ddrescue (https://www.gnu.org/software/ddrescue/ https://www.gnu.org/software/ddrescue/) not to be confused with dd_rescue (http://www.garloff.de/kurt/linux/ddrescue/ http://www.garloff.de/kurt/linux/ddrescue/) This piece of software is outstandingly good for rescuing bits from failing spinning rust. It doesn't care about the filesystem, it just tries really hard to get data from a raw device. Once you've got all the bits onto a safer medium, you can use testdisk to explore the disk image.
- spurgu 8y agoLots of great stuff here! Key takeaway though (for me at least) is that a lot of this stuff turns into cumbersome management if you're not doing the bulk of your work on localhost, but instead dealing with a various few dozen or hundreds (in my case) of different servers. Yeah you can use ansible to automate installation/setup, but then again if you suddenly end up on a fresh server without root access you're gonna be/feel crippled, being used to aliasing everything and replacing standard shells with something extra fancy. Some level of balance is needed, which is what I've been trying to do. That said I always setup oh-my-zsh and `git config --global alias.kurwa status` wherever I go.
- em-bee 8y agolocalhost or remote does not make a difference, any manual setup required is annoying either way. most of the tools don't need manual configuration though and so it's a single command to install all of them that you can have tucked away somewhere to use when needed. but yeah, i use salt for automating this.
- moshohayeb 8y agoI can't believe no one mentioned parallel[1] yet, it is basically a much more powerful replacement to xargs and available at most package managers. [1] https://www.gnu.org/software/parallel/ https://www.gnu.org/software/parallel/
- zwilson 8y agofzf - command-line fuzzy finder https://github.com/junegunn/fzf https://github.com/junegunn/fzf Easy to overlook... I almost don't even notice it, but I use it more than any other application (every time I type).
- feross 8y agoWebTorrent https://github.com/webtorrent/webtorrent-cli https://github.com/webtorrent/webtorrent-cli
- petdance 8y agoVarious grepalike tools like ack, ag and rg have been mentioned. Most comments seem to be based on which tool runs simple searches faster, but note that their feature sets vary widely. Here's a handy chart that compares the features of each of these tools, along with git grep and plain ol' GNU grep. https://beyondgrep.com/feature-comparison/ https://beyondgrep.com/feature-comparison/
- RomanZolotarev 8y agotmux: https://man.openbsd.org/tmux https://man.openbsd.org/tmux vi: https://man.openbsd.org/vi https://man.openbsd.org/vi entr: http://entrproject.org/ http://entrproject.org/ shellcheck: http://shellcheck.net http://shellcheck.net
- purplezooey 8y agoHow about Ly, the terminal display manager: https://github.com/cylgom/ly https://github.com/cylgom/ly F yeah, dude.
- tonysdg 8y ago`sl` -- makes you feel better about mis-typing `ls`!
- efreak 8y agofor a software keyboard, since I've seen several lists of aliases: ```alias ,v='mv' alias r,='mv'``` Otherwise: ttyclock tmux/byobu pv ncdu htop megadl webcomix and/or dosage - download webcomics into cbz files for local viewing. Installable via pip. elinks, links2 - Browsers. especially useful if compiled with javascript support. nnn aria2c grc most mlocate (prrovides thelocate and updatedb connands. I can't recall why i like it more than slocate or find-utils) Generally built-in: watch tee sed (or just use `perl -pi -e` 7z 'Fun' cli programs: nyancat sl cowsay toilet ttysolitaire
- BasicObject 8y agoremind: https://dianne.skoll.ca/projects/remind/ https://dianne.skoll.ca/projects/remind/ alpine: https://repo.or.cz/alpine.git https://repo.or.cz/alpine.git mg: https://github.com/hboetes/mg/ https://github.com/hboetes/mg/
- 0xphk 8y agomultitail, a powerful tail replacement with highlighting, split panes and comfortable buffer search. mostly used in long running tmux sessions. for example, u could pipe in tcpdump output to analyze dump in realtime
- leeman2016 8y agoneofetch [https://github.com/dylanaraps/neofetch https://github.com/dylanaraps/neofetch] for showing a friendly system information gst123 [http://space.twc.de/~stefan/gst123.php http://space.twc.de/~stefan/gst123.php] a music player prettyping [https://github.com/denilsonsa/prettyping https://github.com/denilsonsa/prettyping] a prettier ping kakoune [https://github.com/mawww/kakoune https://github.com/mawww/kakoune] a nice (relatively friendly) modal text editor
- em-bee 8y agohere is a list of all tools mentioned in the thread. unfortunately, including descriptions and links made the comment to large, so for now just the names. the number in front is the number of mentions. links to other lists: https://beyondgrep.com/feature-comparison/ https://beyondgrep.com/feature-comparison/ https://code.kiwi.com/lesser-known-tools-we-love-at-kiwi-com-part-1-of-3-cli-79eb6d67a065 https://code.kiwi.com/lesser-known-tools-we-love-at-kiwi-com... https://github.com/agarrharr/awesome-cli-apps#terminal-utilities https://github.com/agarrharr/awesome-cli-apps#terminal-utili... https://github.com/alebcay/awesome-shell#applications https://github.com/alebcay/awesome-shell#applications https://paste.pound-python.org/raw/Uqc8XTFk73Y3PpbRe9hC/ https://paste.pound-python.org/raw/Uqc8XTFk73Y3PpbRe9hC/ http://suckless.org/rocks/ http://suckless.org/rocks/ https://www.networkworld.com/article/3091139/linux/who-needs-a-gui-how-to-live-in-a-linux-terminal.html https://www.networkworld.com/article/3091139/linux/who-needs... 2048 2fa abcde abook [3] ack (ack-grep) [5] ag (silver searcher) alex [2] alpine [2] amigamml aplay archiver [4] aria2c asciinema [2] asdf atom [2] autojump (aka j) autossh autosub [3] awk awless [2] bash bash-it bass [5] bat (cat) bcal [3] bc -l [2] beets bitlbee [3] BorgBackup [2] bpython [2] brew btrfs buku [2] byobu calcurse cal cat [2] cd Chocolatey [2] climate (shell utility tools) [3] cmus Coinmon colordiff column comm convert [2] cowsay cp [4] curl GNU datamash ddgr ddrescue dict diff diff2html direnv diskus docker [2] Doom Emacs dosage dstat [2] dtrx [2] duplicacy ed [2] elinks [7] emacs [2] entr [2] exa [2] exiftool fab Farbfeld Utilities [3] fasd [5] fd [5] ffmpeg finch [2] find findutils [8] fish-shell frp fselect [6] fzf gawk [13] git git-annex git-annex assistant git-bulk-toolkit git number [3] gitsh Git Standup glances (top) Goaccess go-jira tuijam [2] googler gpg graphicsmagick [2] grc [5] grep Gron gst123 gzip hangups (instant messaging) hd -c head heirloom-mailx hledger hollywood (tmux UI) howdoi hr [11] htop [4] httpie hub Hugo hyperfine iftop [2] ImageMagick imgpaste imgp import-mailbox-to-gmail inotifywait Insect (unit converter) ip irssi + jmp.chat iw journalctl [7] jq kakoune keysniffer keychain khal khard Kubectx [2] lazygit ledger-cli links2 lnav localhost.run locate [3] ls [2] lsof lumail Ly man mcabber mediainfo [2] megadl mg [4] midnight commander Miller (CSV tool) mkdir mlocate [2] mocp Moon Buggy (game) moreutils [3] mosh [2] most mountsshfs mpv multitail [5] mutt mv [3] mycli [6] nano [3] nc ncat [7] ncdu ncmpcpp neofetch neomutt + notmuch [2] neovim netcat nethogs newsboat [4] Ngrok nload nmap [3] nnn notmuch nyancat od ohmyfish [4] ohmyzsh oh-my-zsh git plugin [2] open p7zip [2] Pandoc GNU parallel [5] pass passgo pass-otp paste pbedit pbpaste pdd pdfgrep peco peerflix [3] perl [3] pgcli pgrep pianobar pine ping pip pipe pkill playmod prettyping prezto progress proselint psql [2] ptpython/ptipython [4] pv [2] pwgen pytest [2] python pythonPackages.powerline qemu [4] ranger rclone recoll [2] remind [2] rename renameutils [2] restic [13] rg (ripgrep) rm [4] rsync rtorrent rtv sage Saw (AWS Cloudwatch) sc-im sclack SCM Breeze [2] Scoop [4] screen [4] sed serve serveo [3] shellcheck SHPaint shuf [3] sl [4] socat solaar sort sox [2] sqlite shell [2] ssh [3] sshfs subliminal supmua surfraw sym systemctl tabview tail [2] tar [3] Taskwarrior tcpdump tee TeX [2] The Fuck [6] tig [4] tldr tmate [21] tmux todo.txt toilet top totp-cli touch [2] tr [2] tree tshark ts ttp ttyclock ttysolitaire rainbowstream unimatrix uniq [2] units up vdirsyncer [2] vi vifm [7] vim [4] Visidata vnstat Vue-cli [2] w3m [6] watch watch (python) watchman wd webcomix [2] websocketd WebTorrent [3] weechat [2] wee-slack [2] wget wordgrinder wttr [2] xargs Xdg xdotool xiki xmlstarlet xrdb [2] xsv XTree Gold xxd xz [6] Youtube-dl youtube-viewer [2] z zamzar-bash zgen zplug [4] zsh