Just say “shell scripting”.
b-b-but if i say i’m fluent in bash, zsh, fish, and elvish, then i’m quadralingual, and i haven’t even started listing the webdev languages!
“shell scripting (various languages)”
🤷♂️😅
You’re hired, we’re a
cshshop.“Shell scripting (various languages, both POSIX-conformant and nonconformant)”
You need to pad that CV with meaningless acronyms!
I’m more fluent with fish.
Okay, Aquaman.
Almost tempting to change my name, or at least my nick (and avatar) for a git account hosting my fish based projects like fin. Almost.
i should get better with fish, it is a LOT more readable than bash/zsh. fish doesn’t have any of the
{ "$([[ ] )}" }Yup. Built for humans, not for computers from decades ago where characters mattered because bytes mattered more than human readability.
“Finally! A shell for the 90s!” ;D
Friendly, interactive, shell.
Interactive… its the human that’s interacting with it… so… it makes sense.
Happy to leave bash as my system shell, and have it, in its ~/.bashrc, detect if it’s an interactive session, and if so, launch fish, like so
[[ $- != *i* ]] && return || fish. So then if ever (~ and it’s oh so scant rarely) I want to use bash, it’s only a ctrl-d keybind away to fall back to bash.ZSH is still comparably nice, once it undergoes significant reconfiguration. Fish is nice out of the box. The completion stuff, is just the first wow factor, and what a wow factor, and then there are more wow features to discover yet. :) It grows on you, even more than the initial wows of completion expedience. :)
It’s true that there is a very large transfer between violin and viola, but just the experience of playing multiple instruments, even if this similar, increases one’s value by a lot. Depending on the situation wherever you happen to be, demand for violists can be much greater than for violinists, so playing both rather than the violin alone is a big boost.
Oh absolutely. I’m a full time musician and the only way I’ve been able to do that is play 23 different instruments. Being good enough to play in a group is all you need- you get good really quick when money is on the line.
People with deep knowledge of string instruments and/or shell languages are rapidly approaching your location.
The violin part kinda checks out tbh. It’s like saying a saxophone is basically a shiny clarinet. It’s musician ragebait but it’s not entirely false.
At the end of the day, every instrument is just a mechanical-to-acoustic transducer with a resonating body to selectively amplify the desired notes and harmonics. The real question is whether a jackdaw qualifies as a sandwich.
This definition wouldn’t apply to harmonicas nor digital keyboards, nor bagpipes arguably.

Both harmonicas and bagpipes produce sound by passing air over one or multiple reeds (tuned to resonate at specific fundamental frequencies), inducing oscillations in the reeds, which modulate the air flow. Bagpipes use pipes to amplify the sound, and harmonicas use the cavity between the reed plate and the body, and often the player’s hand.
A digital keyboard that doesn’t produce sound is just a fancy human interface device.

lmao. know anyone who’s hiring a terminal junkie? i need to get paid to use my computer all day fr
terminal junkie
Put that on your CV
Technically a viola is actually a mini cello. I hope his knowledge of bash & zsh is better than his knowledge of musical instruments lol
one man’s small cello is another man’s big violin
I just use fish, I never really had the need for ultra-customization. But I do admire stuff from places like !unixporn@lemmy.world.
I use nushell, returning to a normal shell is starting to feel weird ngl
i need to get familiar with fish. i’ve studied the syntax but i still have hardly used it, and if you really want to learn how to code something, you gotta keep typing it until it’s in your muscle memory.
While I do like fish syntax, you don’t really need to learn it. You can just use it for your interactive use in the terminal while writing your scripts in bash.
Converting my scripts from bash to fish has definitely been worth the time.
This is the way. I’ve never even attempted to script anything in
fish, but it’s just a great interactive shell OOTB. I think at most I have a colorscheme and an alias or 2.Scripting in fish is so much better than bash, holy. Reduced my scripts’ LOC by probably 50% and made them actually legible when coming back to them 6 months later. I converted all my personal scripts from bash to fish.
Same experience here.
this is basically what I did until I dropped fish for zsh because of annoyances with how it functioned.
Scripting in fish is obnoxious though if you learned bash first, heavily recommend staying far away 😂
Hard recommend staying in bash or at least zsh, at least you maintain compatibility with others if you ever decided to share your scripts.
Scripting in fish is so much better than bash, holy. Reduced my scripts’ LOC by probably 50% and made them actually legible when coming back to them 6 months later. I converted all my personal scripts from bash to fish.
What makes it “obnoxious”??
I dislike heavily how flow control works on it, and the lack of indication where it starts to where it ends, the function layout, not to mention attempting to pipe anything via it. This combined with the fact that it’s a lesser used shell and as such has less of a presence online to research made it not worth the time and effort to actually use it. I swapped to ZSH which at least maintains a large POSIX compliance which makes it easier to share the scripts as well and also supports adding many of fish’s features.
It may be nicer to read but, actually getting established, learning it, using it and then maintaining compatibility with other programs and scripts when using it, just made it not worth it. I have better things to do with my free time then to try and fight a shell every step of the way to make it look cleaner.
I dislike heavily how flow control works on it
You mean its if and switch statements? For and while loops? Just like bash and zsh has?
the lack of indication where it starts to where it ends
You mean the
endkeyword? The start of things should be clear enough. Keywords are used for them depending on what you’re starting. I like the fact that everything ends with the same keyword. Much simpler.the function layout, not to mention attempting to pipe anything via it
Piping something “via the function layout”? I’m not even sure what that means. I’d love to know more if you would.
maintaining compatibility with other programs and scripts when using it, just made it not worth it
This should be fully transparent. It’s a shell. I switched all my scripts to fish, and my integration with my desktop environment was completely unchanged. It’s just text in and text out.
I have better things to do with my free time th[a]n to try and fight a shell every step of the way to make it look cleaner.
I mean… It took me like an hour to read through the documentation, and all the syntax is so small you can memorize the entire language.
It comes with a nice web based documentation built in. And all the built-in commands have their own man page for easy reading, compared to the jumbled mess of zsh’s docs. I could never find a goddamn thing in zsh’s two handfuls of different man pages. Nothing was where I thought it would be.
It kind of sounds like you were fighting fish rather than it fighting you, every step of the way. That sounds absolutely crazy compared to my experience.
My experience with fish is that I finally understood what my shell was doing and how it works, compared to zsh. I even understood what bash was doing. zsh, no. And all these files it was leaving around my home directory.
What I will concede is that you should not convert your shell scripts if you need portability. If your scripts will be on multiple computers, fish is a bad idea if you don’t control them all.
Otherwise it feels like some other issue is bigger here, because fish is so much simpler. Coming from me who’s been scripting in bash and zsh for about 20 years, and zsh is the only one that has stumped me, and whose documentation I’ve been struggling with. Even bash’s is better. 💀
You mean its if and switch statements? For and while loops? Just like bash and zsh has?
No i mean the flow in general. It’s ugly and not transparent when compared to bash or any other language
the lack of indication where it starts to where it ends
Yes and no, I mean how it chooses to start and end, there is no punctuation, it seems to emulate a tab oriented language without being a tab oriented language.
Piping something “via the function layout”? I’m not even sure what that means. I’d love to know more if you would.
Two separate complaints, I dislike how they manage functions (but yes bash does similar on this case). Piping and redirecting are badly implemented and what would be an accepted pipe in ZSH or Bash will fail in fish. I made a script that had to pipe a file via wget and it wouldn’t function unless I used a pager which wasn’t needed in Bash or Zsh and wasn’t documented as a requirement anywhere on their piping or redirection documentation. Took me almost an hour of troubleshooting why the command was failing and how to fix it due to it.
I mean… It took me like an hour to read through the documentation, and all the syntax is so small you can memorize the entire language.
Maybe this has changed since I last tried about a year or two ago, but last time I tried to read the documentation it sucked hardcore and lacked examples of more advanced parts of the shell.
It kind of sounds like you were fighting fish rather than it fighting you, every step of the way. That sounds absolutely crazy compared to my experience.
I would rather take the path of least resistance for a program, with fish it had way too much resistance trying to use it, so I went to the path that had a lesser resistance, which was ZSH, and then just proceeded to add fish’s core capabilities to zsh. This let me use a scripting language that has a lot of documentation and examples to assist in learning, while having the benefits of the shell. Plus it lets me actually share the scripts with friends because it’s already hard to find someone on linux, and its even moreso difficult to find someone who uses fish shell.
I tried using zsh again after having used fish for a while, but I just couldn’t do it. Trying to configure the ergonomics that fish ships OOTB into zsh was a pain, and I couldn’t get it to a satisfactory level.
Regarding scripts, you don’t have to use the fish scripting language. Just keep writing your scripts in Bash, and as long as you use a shebang, it’ll work fine in fish.
Yeah, that was what I was saying it wasn’t super clear. I was saying, just keep your scripts in Bash because it has better compatibility 👀
Yeah that’s what I do to, I don’t need to write complex scripts anyway. Fish’s syntax seems interesting though.
Then you’ll know Python. Something companies hire for.
Python is my #1 language. It’s the one I always code in. But I also know javascript and bash/zsh (also Ruby but I haven’t written any ruby for years, so I’d need a refresher)
At my previous job, I had only barebones beginner skills in Java and absolutely no idea of Java EE when I started. I reckon you’d get back in the flow with Ruby quickly enough.
But also, python is nice.
I once had the misfortune of having to read zsh source code…
In unrelated news I no longer use zsh.
Now I’m curious, tell us more. What did you see?!
/* Lasciate ogni speranza. * * This function is a nightmare. It works, but I'm sure that nobody really * * understands why. The problem is: to make it cleaner we would need * * changes in the lexer code (and then in the parser, and then...). */there are more if you keep reading… (also, spoiler alert, this function doesn’t work, that was why i was looking at it.)
It doesn’t surprise me in the least bit, considering how complex everything seems to be in zsh.
Years ago, I was trying to understand how the completion system works. I never understood.
Even the user-facing shit you need to put in your .zshrc in order to enable completion in the first place does not look like it’s made for a human to read. Not to mention that you need to enable it in the first place.
Configuring zsh was such a mess for me, for years. I don’t know why I used it for so long. Glad I gave fish a shot.
I mean, with a file named
zle_tricky.c…
I will look at the source code later, but your comment is very ominous
it’s all just regex, isn’t it
zsh autocomplete and color defaults were presumably set up by an lsd fan
i’m all about oh-my-zsh. I mostly like it because it loads a random theme every time you run
source ~/.zshrc, so you get exposed to a lot of different themes, so you can pick one that looks really nice. The one I’ve gone with was the most minimalist theme I could find.export ZSH_THEME="miloshadzic"Meh, I find OMZ a bit too opinionated.
antidote with the right plugins + starship with the right prompt builder beats anything.
Fish + starship 🤌
In my opinion - and yes I know it’s punny - fish also belongs in the “too opinionated” category.
It’s not a bad shell but overall I found it to be quite reluctant to work the way you want it, if that isn’t the way the developer meant it to be used. Which is fine, but again, it means that fish is opinionated.
I tried to learn it, but failed. Looks like I’d love to use both, but I have no idea where to start. Any suggestions?
It might be easiest to work backwards with starship, see how it integrates with fish then see how to run fish.
Then install fish, add starship to it.
99% of my usage is around how it helps me navigate the terminal, I use bash for all my scripts lmao
That sounds quite good, actually. I mean, I have a gazillion bash scripts, but I can keep them. I think I don’t care about posix, or whatever it’s called, for my day-to-day navigating the shell.
deleted by creator
OMZ is overrated. It’s too much code for too little effect when most of the plugins boil down to aliases and prompt themes, and all you have to do is
sourcethem in your .zshrc anyway.I am by no means saying that the plugins and themes are useless. I’m saying that OMZ is unnecessary.
the only thing i like about oh-my-zsh is the random themes, i seriously have no idea what else it does
But… they literally used that post to tell people they play both the violin and the viola…
Dude, people still think vi is important skills. I know ‘ed’, so the rest is just a waste.
For that matter, just use cat, and be free of vietnam-era cult shit.
My favorite use of
catis hiding malware in images and gifs. Don’t worry, I’ve never actually deployed any malware over social media, I just know how to usecat(and a few other things) to do it.Any writeup about how this works?
The technique is called steganography, and the product is called stegomalware. The payload is concealed as part of some legitimate file, like the pixel data of an image file. It requires the reader software on the targeted system to already be infected, or to have a vulnerability that the payload can exploit.
Low Level video: https://www.youtube.com/watch?v=89ysXVYH2Sk (one more reason to hate Webp)
Quick example by John Hammond: https://www.youtube.com/watch?v=JBIbL8zwZOs
Some image formats will ignore junk data after the image. So you can probably run
cat image.png message.txtto embed text in image files, although I haven’t tried this myself.
I mean, I don’t think I’d ever voluntarily admit that I can read that stupid C clef…
I like yash
As an interactive shell or for scripting?
Interactive shell. I haven’t had an opportunity to script in it yet.















