New on LowEndTalk? Please Register and read our Community Rules.
All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.
All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.
Comments
1 - 6 months or more for more complex algorithm, real depend on your willingness and any scripting experience you may already have. But for bash you should start with basic unix command line.
If you already know another programming language, there is really nothign to learn for bash script. Just google the syntax as needed (that is what I do).
If you don't know another language, it seems mroe profitable to learn a language other than bash. For example, if you learn php, perl, or python, then you will learn bash almost by default (because you can just look up the syntax as needed). However, learning bash by itself will have little value aside from the fact that you now know bash.
It took me a few months. Nothing special (like Python, C, or C++)
Fairly easy, but why become proficient in bash scripting? Why not tackle Python/Perl, it's much nicer.
Easiest way to learn bash is to make yourself a sysadmin
Python/Pearl will come soon enough after you get bash down
I don't think it's worthwhile to become proficient at shell scripting if you can use a programming language instead (I'll second the recommendation of python). I have fairly rudimentary shell skills and can write simple bash scripts, but if I want to do something complicated I generally use python.
I think that's a better approach, since programming languages are designed for the purpose of doing complicated tasks, while the shell was designed for simple interaction and then got stretched to its limits.
Bash fans unite.
https://github.com/avleen/bashttpd
Totally capable
See you and raise you: https://github.com/nicferrier/elnode
;-)
It will be pretty soon if you are involved and struggling to achieve a goal.
@jarland Back in the "good ol'days" i made a http server with bash and nc, then a google suggested query server. I don't know what i've been thinking, but if the weather is right i would do it again, some day.
I'm not even sure I can sleep now, that was frightening lol
Thanks for the input guys.
So the general consensus seems to be to pickup something like Python instead of bash. Is it because it's more capable of performing complex tasks? I'd also assume it's because it can be ported to another OS easily?
For example lets say I favour Python instead of Bash, what would you do if a candidate in a sys admin role knew Python, but there Bash was almost non existent - would you care?
Python, for example, is going to be better for larger and more in depth projects. Don't let people tell you that bash isn't important though. It's very powerful, relevant, and exists on every important OS (since it's now on windows).
As a sysadmin you need bash, but as a developer you're going to find your community outside of it.
If I was looking for a sysadmin and they said "I don't know bash but I know python" I would be inclined to pass. You don't need to be able to write full apps in it, but you should be very comfortable with it as a Linux admin. Bash is just far more relevant to basic admin tasks. At the same time, I wouldn't pass on them for not knowing python.
Remember, Linux doesn't put you in a python shell by default. It puts you in a bash shell
Lastly, the best way to learn is to do. It's hard for me to say how you practice, it should be relative to what interests you. A few months could easily take you from novice to expert. If nothing else, maybe start here:
https://linuxacademy.com/linux/training/course/name/mastering-the-linux-command-line
If you're a competent programmer and know another language, bash takes a day at most to learn and become proficient in.
The idea around learning python is that it will teach you how to do solid programming, as opposed to learning how to hack together a one off bash script (which is what 99% of bash scripting is). If you learn bash script alone, you probably wont pick up too many transferable programming skills. If I were you, I would learn groovy... it has a cool name and very useful.
I wouldn't put it quite that way. (Disclaimer: this is all personal opinion of course: YMMV). I'm a programmer, I know tons of languages, I use bash and script in it all the time, but I wouldn't say I'm proficient, and I don't think I could become proficient in 1 day. I know the basics and can muck with someone else's script if I had to, and if I were interviewing a sysadmin I'd expect them to have at least that much capability, but knowing all the intricate details and usages of bash is complicated and IMHO not worth the effort. If a candidate brought that much bash knowledge I wouldn't consider it a major advantage (minor, maybe).
I see large intricate bash scripts all the time and think "why did the person do something this complicated in bash?". E.g. Jarland posted about someone writing a web server in bash, and I just groaned. There was similarly a bash assembler a while back, etc.
Basically a shell like bash gives you machinery to launch programs, connect them together, and a few control structures like if statements; but not really the organizational tools to keep large programs from becoming tangled messes. With good discipline you can do that without built-in tools, but it's much easier if you have them.
If you get good at Python and are clueful about networks and sysadmin stuff, you can be a developer or (don't know if they use this term any more) dev-ops, which is a hybrid developer/sysadmin/ops role that's much more valuable than plain sysadmin or mid-level developer (a real top developer is something else again). So I'd focus on programming skills in general, rather than figuring out the intricacies of something like bash.