Options

Scripting Knowledge + Linux

AzretAzret Member Posts: 26 ■□□□□□□□□□
As a small introduction, I am a career changer from being a real estate professional for the last 5 years to IT with which I have always had familiarity.

I am currently looking through job postings and lots ask for scripting knowledge (sql, perl, bash, etc.). Are these used on a day to day basis? I assume scripting makes the job much easier because lots can be automated. How about for someone studying to become a security professional, on a scale from 1-10 how important would it be to know these languages?

Lastly, would it be much more beneficial to delve into UNIX/Linux as a primary operating system? I dabbled in Linux, but as my computer is not solely my own I got rid of it. Would you recommend I begin to learn it in a more advanced state?
Have you tried turning it off and on again? :bs:

Comments

  • Options
    phoeneousphoeneous Member Posts: 2,333 ■■■■■■■□□□
    Azret wrote: »
    How about for someone studying to become a security professional, on a scale from 1-10 how important would it be to know these languages?

    It depends on what type of security you will be doing. Personally I'd say between 8-10.
  • Options
    AzretAzret Member Posts: 26 ■□□□□□□□□□
    phoeneous wrote: »
    It depends on what type of security you will be doing. Personally I'd say between 8-10.

    Data center security, network infrastructure.
    Have you tried turning it off and on again? :bs:
  • Options
    phoeneousphoeneous Member Posts: 2,333 ■■■■■■■□□□
    Azret wrote: »
    Data center security, network infrastructure.


    I would say yes, but I also think every security guy should know linux and at least 2 scripting languages. Perl and python ftw. But thats just my opinion.
  • Options
    NightShade03NightShade03 Member Posts: 1,383 ■■■■■■■□□□
    I second about know scripting if you are looking into security. I provide security to my current company and I find scripting very useful when I need to do specific tasks quickly. I use python all the time. Although not usually considered a scripting language I use php cli alot as well.
  • Options
    Forsaken_GAForsaken_GA Member Posts: 4,024
    If you're going to be working with unix systems, you need to know how to do at least some basic scripting, otherwise you will spend hours doing repetitive crap manually.
  • Options
    RobertKaucherRobertKaucher Member Posts: 4,299 ■■■■■■■■■■
    If you're going to be working with unix systems, you need to know how to do at least some basic scripting, otherwise you will spend hours doing repetitive crap manually.

    I second this for Windows systems. I now spend easily 30% of my day at some sort of scripting/programming shell. PowerShell has made my life so much easier...
  • Options
    AzretAzret Member Posts: 26 ■□□□□□□□□□
    Is it better to pick up a book on perl/python or is it better to use online tutorials. I really dont want to go through an entire book just yet, my head will hurt with all the IOS commands i'm now learning.
    Have you tried turning it off and on again? :bs:
  • Options
    tierstentiersten Member Posts: 4,505
    Azret wrote: »
    Is it better to pick up a book on perl/python or is it better to use online tutorials.
    Do you have any experience of scripting or programming in general? If not then I'd say pick up a book. The online tutorials generally aren't very comprehensive if you're starting from scratch. It is better to have it all in one place.

    If you're any kind of computer administrator then I think it is vital that you know a scripting language of some kind. You should pick one that is useful for the platform you'll be using. There are many cases where you've got some repetative task that needs to be performed on all files, users or computers and if you didn't know a scripting language then you'd be there for a long time.

    If you're using Windows then learning PowerShell is a must. If you're using Linux or any *NIX then Perl or Python and some sort of shell scripting language like bash. If you want to do scripting in IOS then it would be Tcl.
  • Options
    RobertKaucherRobertKaucher Member Posts: 4,299 ■■■■■■■■■■
    tiersten wrote: »
    If you're using Windows then learning PowerShell is a must. If you're using Linux or any *NIX then Perl or Python and some sort of shell scripting language like bash. If you want to do scripting in IOS then it would be Tcl.

    There are similarities between Perl and PowerShell, so I think those two are good to learn at the same time. There are enough differences that you will not become to easily confused.

    You can use Virtual PC or VMware to setup a dedicated Linux machine.
  • Options
    Forsaken_GAForsaken_GA Member Posts: 4,024
    Azret wrote: »
    Is it better to pick up a book on perl/python or is it better to use online tutorials. I really dont want to go through an entire book just yet, my head will hurt with all the IOS commands i'm now learning.

    I would recommend a book. The O'Reiley books tend to be very good for all of the popular scripting languages (perl, python, and the bash book are all books I can say good things about)
  • Options
    AzretAzret Member Posts: 26 ■□□□□□□□□□
    thanks for the book recommendation. in your experience, which language is more robust?

    on another note, i often see security job postings request red hat enterprise/bsd experience, is this more extensively used in data centers?
    Have you tried turning it off and on again? :bs:
  • Options
    Forsaken_GAForsaken_GA Member Posts: 4,024
    Asking which language to code or script in is likely to start a holy war. Ask a C programmer what's the best, they'll tell you C. Ask a python hacker, they'll scoff at C and proclaim the virtues of python. And perl programmers are a breed unto themselves.

    My personal choices are rooted in practicality. I do the vast majority of my scripting through bash because most of the stuff I need to script isn't that complicated, just repetitive. When I can't use bash (either because it's not an option for a shell, or because it's not capable of doing what I need), I use perl. Why? Because it's installed by default on virtually any modern unix. That way no matter what box I'm on, if I need to script something, I can just do it instead of having to fiddle about with installing software, assuming I even have the privileges to do that. This is the same reason I use vi as my editor.

    Red Hat has high enterprise exposure since it's usually the most visible of the corporate flavored Linux's, so it's good to know, but I also recommend learning at least Debian or one of it's derivatives as well. They'll give you pretty good exposure to what you're likely to see in the workplace. It's also worthwhile to get familiar with BSD, as FreeBSD especially has a very large installed userbase.

    For the most part, unix is unix, and the tools themselves work the same no matter what flavor you're on. The biggest differences between the Linuxi is usually the package manager and a few configuration files and subsystems here and there (for example, I hate the way RedHat/Centos does it's network configuration, but it's not to hard to figure out if you're familiar with the Debian method). It's pretty easy to move laterally between Linux distributions.

    The major complaint I have with BSD is that it stores it's paths differently. With Linux, you can pretty much count on all configuration files being somewhere in /etc, that's not always the case with BSD, so the biggest challenge when you're trying to configure a box can be finding out where to make the actual change. Some people also feels that the way BSD handles partitioning and it's file systems feels somewhat alien. *My* biggest complaint with BSD is how it names devices, it tends to do it based on the hardware driver, whereas Linux uses more generic names, so devices will be predictable from linux machine to linux machine, but that's not always the case with BSD.

    Both sides have their pros and cons, which is why there's an eternal jihad going on between them. My personal goal is to be able to work effectively in any unix environment, and while I do have my favorites (Debian!), I don't let that stop me from learning how to work with the others.
  • Options
    AzretAzret Member Posts: 26 ■□□□□□□□□□
    Asking which language to code or script in is likely to start a holy war. Ask a C programmer what's the best, they'll tell you C. Ask a python hacker, they'll scoff at C and proclaim the virtues of python. And perl programmers are a breed unto themselves.

    My personal choices are rooted in practicality. I do the vast majority of my scripting through bash because most of the stuff I need to script isn't that complicated, just repetitive. When I can't use bash (either because it's not an option for a shell, or because it's not capable of doing what I need), I use perl. Why? Because it's installed by default on virtually any modern unix. That way no matter what box I'm on, if I need to script something, I can just do it instead of having to fiddle about with installing software, assuming I even have the privileges to do that. This is the same reason I use vi as my editor.

    Red Hat has high enterprise exposure since it's usually the most visible of the corporate flavored Linux's, so it's good to know, but I also recommend learning at least Debian or one of it's derivatives as well. They'll give you pretty good exposure to what you're likely to see in the workplace. It's also worthwhile to get familiar with BSD, as FreeBSD especially has a very large installed userbase.

    For the most part, unix is unix, and the tools themselves work the same no matter what flavor you're on. The biggest differences between the Linuxi is usually the package manager and a few configuration files and subsystems here and there (for example, I hate the way RedHat/Centos does it's network configuration, but it's not to hard to figure out if you're familiar with the Debian method). It's pretty easy to move laterally between Linux distributions.

    The major complaint I have with BSD is that it stores it's paths differently. With Linux, you can pretty much count on all configuration files being somewhere in /etc, that's not always the case with BSD, so the biggest challenge when you're trying to configure a box can be finding out where to make the actual change. Some people also feels that the way BSD handles partitioning and it's file systems feels somewhat alien. *My* biggest complaint with BSD is how it names devices, it tends to do it based on the hardware driver, whereas Linux uses more generic names, so devices will be predictable from linux machine to linux machine, but that's not always the case with BSD.

    Both sides have their pros and cons, which is why there's an eternal jihad going on between them. My personal goal is to be able to work effectively in any unix environment, and while I do have my favorites (Debian!), I don't let that stop me from learning how to work with the others.

    Not so sure I was looking for the holy grail of programming languges but thanks for the general response I was looking for. I agree it would be best to use those that are commonly included in a majority of distros.

    As for the linux distros I use, they are typically debian flavored (linux mint, ubuntu) and I have only dabbled in them as opposed to making a full migration (my family is only 1/100th as computer literate as I am and converting them is solely based on getting certain programs to work natively which do not have proper linux ports).

    I would assume UNIX commands and configurations are typically uniform and getting around multiple flavors should not be difficult. I based my question as what I had seen on job listings; it seemed that none of them listed Debian (and flavors of) as an experience requirement, so that is why I asked. Furthermore, none of the security jobs I saw listed Windows Server which I found odd. I would assume they would use Windows Server as a front end and Unix as their back end.

    Anyway, thanks for the input, I am just trying to align myself correctly with the skill set I am going for and any information is a great help.
    Have you tried turning it off and on again? :bs:
  • Options
    dynamikdynamik Banned Posts: 12,312 ■■■■■■■■■□
    Azret wrote: »
    Furthermore, none of the security jobs I saw listed Windows Server which I found odd. I would assume they would use Windows Server as a front end and Unix as their back end.

    Yea, pretty much any environment with Windows and MS Office will be backed by AD, Exchange, etc. Pretty much every bank/credit union we work with is like that, and then they have their core processing system running on something like AIX.
  • Options
    Forsaken_GAForsaken_GA Member Posts: 4,024
    Azret wrote: »
    Not so sure I was looking for the holy grail of programming languges but thanks for the general response I was looking for. I agree it would be best to use those that are commonly included in a majority of distros.

    Yeah, I just know too many programmers, so I'm careful how I answer questions regarding use of languages. Some guys I know spend more time arguing about how their chosen language is better than they actually do coding in their chosen language.
    I would assume UNIX commands and configurations are typically uniform and getting around multiple flavors should not be difficult. I based my question as what I had seen on job listings; it seemed that none of them listed Debian (and flavors of) as an experience requirement, so that is why I asked. Furthermore, none of the security jobs I saw listed Windows Server which I found odd. I would assume they would use Windows Server as a front end and Unix as their back end.

    For the most part, commands translate (after all, most of the time, it's just a recompile on a different platform). There are some systems that take some liberties. Solaris comes to mind, and some commands don't do what you expect, and others have their parameters changed, so you get a quick visit to the man pages. There's plenty of companies out there that use Debian though, and Suse, and Centos, and Slackware, etc, etc, ad nausea, though folks may not be advertising for it specifically. For example, when my company puts out job notices on the big job sites, there's never any mention of Debian, just Linux.

    What I'd like to see is a company ballsy enough to run Gentoo in production :)
    Anyway, thanks for the input, I am just trying to align myself correctly with the skill set I am going for and any information is a great help.

    It's always a moving target, which is why I say just get some experience with a BSD, and both sides of the common Linux distros, and you should be ok. If you're a whiz with Slackware boxes, and a company is looking for someone to run their Red Hat boxes, I doubt it'd count against you. In the same vein, most of the job postings I see want some scripting experience and rarely call for a specific language (these are for non-developer jobs of course), so just pick one and you should be ok. As I said, my choices were determined by lowest common denominator, but if you want to do your scripting in assembler (and yes, I do know guys like that), more power to you! You'll usually find yourself as armchair programmer of all the common ones, at least to the point where you may not be able to write in it, but you can follow what a script is trying to do. The cool thing about scripting/programming is that the concepts are all the same, it's just the syntax that changes
  • Options
    AzretAzret Member Posts: 26 ■□□□□□□□□□
    For the most part, commands translate (after all, most of the time, it's just a recompile on a different platform). There are some systems that take some liberties. Solaris comes to mind, and some commands don't do what you expect, and others have their parameters changed, so you get a quick visit to the man pages. There's plenty of companies out there that use Debian though, and Suse, and Centos, and Slackware, etc, etc, ad nausea, though folks may not be advertising for it specifically. For example, when my company puts out job notices on the big job sites, there's never any mention of Debian, just Linux.

    I think job postings are much to fine grained. I look at Linux as one big operating system with a different shell, cause in mind. I'm not afraid of any distro luckily.
    As I said, my choices were determined by lowest common denominator, but if you want to do your scripting in assembler (and yes, I do know guys like that), more power to you! You'll usually find yourself as armchair programmer of all the common ones, at least to the point where you may not be able to write in it, but you can follow what a script is trying to do. The cool thing about scripting/programming is that the concepts are all the same, it's just the syntax that changes

    The beauty of computing. Programmers got sticks up their butts I see it all the time on other places. If I wanted to be a programmer I'd program in C# or something. For all intensive purposes I want something to script in and walk away, the point is get the job done. After working in real estate for 5 years where everyone has a personality and character and some sort of defense for everything they do, my point is learn, do, and get out and then live.
    Have you tried turning it off and on again? :bs:
  • Options
    SepiraphSepiraph Member Posts: 179 ■■□□□□□□□□
    Azret wrote: »
    I am currently looking through job postings and lots ask for scripting knowledge (sql, perl, bash, etc.). Are these used on a day to day basis? I assume scripting makes the job much easier because lots can be automated. How about for someone studying to become a security professional, on a scale from 1-10 how important would it be to know these languages?

    Lastly, would it be much more beneficial to delve into UNIX/Linux as a primary operating system? I dabbled in Linux, but as my computer is not solely my own I got rid of it. Would you recommend I begin to learn it in a more advanced state?

    From my understanding and from what I read (and I don't want in the security side of IT so this is at worst hearsay), I'd say programming is very important if you want to do some serious work in IT security.

    Why? Because if you want to study vulnerability, ultimately you'd have to get to the heart of the source and study the design/implementation at the programming language level (be it DB at sql, network at the protocol, application at their source code).
Sign In or Register to comment.