5 ms·
There is also 'lsd' but I still prefer eza. For everyone interested there is a lot of modern command line tools I nowadays prefer over the old stuff: bat -
by sandreas 2y ago
There is also 'lsd' but I still
prefer eza.
For everyone interested there is a lot of modern command line tools I nowadays prefer over the old stuff:
bat - cat with highlight
difftastic - better diff
gdu - ncdu for ssds (disk space analyser)
zoxide - modern cd
fd - find alternative
rg - ripgrep (grep)
fzf - fuzzy finder
jless - json viewer with mouse folding
dra - download and install release assets
lazygit - git TUI
lazydocker - docker TUI
yazi - file manager with image preview
zellij - better tmux / screen
starship - cross shell prompt config
Have fun
- gkfasdfasdf 2y agoGreat list! I would also add: viddy, a replacement for watch that includes history
- magarnicle 2y agoI didn't find zellij to be better than screen. The tabs/screens are not numbered correctly so switching directly to them requires manually counting. A non-starter for me.
- lilyball 2y agoIf you don't like the default tab bar, you can use the zjstatus plugin (https://github.com/dj95/zjstatus https://github.com/dj95/zjstatus) to replace it with a customizable one that can show the tab index.
- magarnicle 2y agoFrom memory the index is different to the position, so if you rearrange our delete tabs the numbers become meaningless. I submitted a PR but the developers wanted it to be a separate plugin for just this. I decided it wasn't for me.
- heavyset_go 2y agoAs someone who defaults to lsd, is there any reason why you prefer eza to it?
- satvikpendem 2y agoGotta love Rust (in which most if not all of these tools are written).
- godelski 2y ago> fd - find alternative > rg - ripgrep (grep) NOTE OF WARNING: BY DEFAULT these ignores anything included in your `.gitignore` folder. So if you think it is a straight find replacement, you'll likely be surprised. fd discussion here[0] Just make sure that when recommending people these tools that this is clear because if they don't read the docs (lol who does) they'll miss this part. This is a pet peeve of mine. I wish the people that make these replacement coreutils (and others) would leave the defaults as very similar to the original tool. I do really like the new functionalities but if you market it as "an alternative" ("It is a simple, fast and user-friendly alternative to find") then they should respect the defaults of the original because it reduces new user surprise. I mean aliases exist... So it is better to have in your ~/.${SHELL##*/}rc file to have `alias fd='fd --ignore'` than `alias fd='fd --no-ignore'`. Side note/pro tip: use `\command` if you want to use an unaliased version. An example of this is that I have `alias grep='grep --color=always --no-messages --binary-files=without-match` but this can sometimes be problematic because the color option can change the character representation so if you pipe this into `curl` you will get errors. This is not the case in all piping, but it is a shocking and confusing experience when you first encounter it. You can validate this by `echo "Hello world" | \grep --color=always "Hello" | hexdump` and then `!!:s^always^never` [0] https://github.com/sharkdp/fd/issues/612 https://github.com/sharkdp/fd/issues/612
- burntsushi 2y ago> I wish the people that make these replacement coreutils (and others) would leave the defaults as very similar to the original tool. I do really like the new functionalities but if you market it as "an alternative" ("It is a simple, fast and user-friendly alternative to find") then they should respect the defaults of the original because it reduces new user surprise. I mean aliases exist... So it is better to have in your ~/.${SHELL##*/}rc file to have `alias fd='fd --ignore'` than `alias fd='fd --no-ignore'`. I never marketed ripgrep explicitly as an "alternative." But it would be entirely appropriate to do so. An "alternative" does not mean "has exactly the same behavior." You're confusing that with, "drop-in replacement that is bug-for-bug compatible." If people such as myself working on these new tools had your mindset, then there would literally never be any room for improving the default behavior. Which just seems like a wild position to stake out to me. Defaults really matter, and other than performance, ripgrep's default ignore behavior is far and away the thing people consistently remark as their favorite feature.
- sandywaffles 2y agoI use du-dust over gdu, but otherwise my list is almost identical to yours.
- sandreas 2y agoThanks. I will definitely try that out.
- thiht 2y ago4 additional tools I use regularly: - task, a Makefile alternative - hyperfine, a benchmark tool - vegeta, a load testing tool - sd, a better, more intuitive sed There’s also the JSON trinity: - jq, the well know JSON processor - jc, convert the output of many CLI tools to JSON - gron, make JSON greppable
- kstrauser 2y agoThose are all very nice! I've come to be a huge fan of just as a Makefile replacement for the common case where I'm not actually computing vast build dependencies.
- deleted 2y ago[deleted]
- theshrike79 2y agoTask is _amazing_ I tried magefiles[0] for a while, but Task just works so much better and isn't Go-specific as heavily. [0] https://github.com/magefile/mage https://github.com/magefile/mage
- thiht 2y agoOne day I decided to design a Makefile alternative, but I wanted to use YAML to benefit from the standard syntax and JSON schemas. I quickly realized I was just reimplementing Taskfile with different key names. I love Task because it completely fits my mental model, I can use all the Makefile features I like without relying on arcane syntax.
- sweeter 2y agoJustfile is my favorite. Anything that requires complexity I just use Zig build. I hate make with a passion. I could see why people stick with it after learning it for decades, but for the rest of us it is a nightmare.
- lelanthran 2y agoI looked, just now, at all the Make alternatives mentioned: Task, Mage and Just. Those first two are nowhere near as easy to read as Makefiles. The last one, Just, looks good, though. At least Cmake files are easy to read, but many of these alternatives are just poor UI, compared to Makefiles. I mean, using YAML of all things and thinking it's some sort of improvement over Make syntax? 1. Mage is just insane. In what world is this: func Build() error { if err := sh.Run("go", "mod", "download"); err != nil { return err } return sh.Run("go", "install", "./...") } More readable than this: build: go mod download go install ./... 2. Task - not just significant whitespace, but significant whitespace everywhere, due to a poor format (YAML). Look at the example given: version: '3' tasks: build: deps: [assets] cmds: - go build -v -i main.go assets: cmds: - esbuild --bundle --minify css/index.css > public/bundle.css Compare with Makefile that does exactly the same thing: build: assets go build -v -i main.go assets: esbuild --bundle --minify css/index.css > public/bundle.css These alternatives to "Make an easier Make" appear to not know about Make in the first place.
- sandywaffles 2y agoThis link also has a large list of additional tools I hadn't heard of but look interesting. https://github.com/ibraheemdev/modern-unix https://github.com/ibraheemdev/modern-unix
- brimwats 2y agothis one is maintained https://github.com/johnalanwoods/maintained-modern-unix https://github.com/johnalanwoods/maintained-modern-unix