Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


Becoming proficient in bash scripting
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.

Becoming proficient in bash scripting

How long does it take to pick up a skill like this (I know everyone is different) - but what's a good time line to set for myself?

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.

    Thanked by 3willie yomero vimalware
  • Easiest way to learn bash is to make yourself a sysadmin :D

    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.

  • jarjar Patron Provider, Top Host, Veteran

    Bash fans unite.

    https://github.com/avleen/bashttpd

    Totally capable :)

    Thanked by 1Janevski
  • 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. :)

  • jarjar Patron Provider, Top Host, Veteran

    I'm not even sure I can sleep now, that was frightening lol

    Thanked by 2willie varunchopra
  • 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?

  • jarjar Patron Provider, Top Host, Veteran
    edited December 2016

    @jeromeza said:
    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

  • jeromeza said: 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?

    If you're a competent programmer and know another language, bash takes a day at most to learn and become proficient in.

  • jeromeza said: So the general consensus seems to be to pickup something like Python instead of bash. Is it because it's more

    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.

  • williewillie Member
    edited December 2016

    telephone said: If you're a competent programmer and know another language, bash takes a day at most to learn and become proficient in.

    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.

    Thanked by 1vimalware
Sign In or Register to comment.