I currently have the following down ok: cp, rm, mkdir, pwd, ls, scp, ssh, cat, mv, tar, and gzip. What else are commonly used? I'm not looking to memorize all the commands, but just be comfortable with the most-used commands, and look up the ones I don't know when it comes to that.

Also, from Python what is the (pipe) command to copy, move, rm or mkdir?

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
If this question can be reworded to fit the rules in the help center, please edit the question.

1

"Be comfortable with the furniture you have at home right now, not with what you will require in your lifetime."
–
N 1.1Apr 14 '11 at 6:07

4

None of those commands are important for web development. They're important for using the OS but totally non-specific to web development, C development or even development in general.
–
paxdiabloApr 14 '11 at 6:11

I'd argue that knowing how to run an ssh session is actually quite relevant to web development. If the best you can do is FTP files, you're severely crippled.
–
Paul McMillanApr 14 '11 at 6:20

@Paul: Many web developers will never need to touch ssh--for instance developers on MS platforms. Also, it's important to distinguish development from system administration. If your job is purely web development, then you aren't "crippled" just because you don't know how to use the unix command line.
–
Lèse majestéJan 25 '12 at 17:03

9 Answers
9

What you need to know is very dependent on what you're developing and the environment you're developing it in. Pick your project then learn the tools needed to complete that project. In using those tools you'll easily memorize the core commands and can use a cheatsheet for the rest.

Look especially to basic system administration. You must know how to write an init script and how to manage users in Distro. Spend also some time to learn how to change permission (chmod) and the owner (chown) of a file.

This is by far an incomplete list, cause ultimately the full list will include what's in core-utils and many other packages. But the list you have, can easily be sumplemented with whats in available in /bin

So ls /bin and ls /usr/bin (/usr/bin will be a long listing, so pipe it into less). and start looking, reading and marking down. /sbin and /usr/sbin have commands that might be useful, but these are more for root than a regular user. There is never going to be a definitive list of commands to know "for development", because ultimately, each and every command has its place and usage, "for development" being way to ambiguous.

Also get a good unix book and read through that, that will take you through the more common commands also.

The os library and the shutil library are the best place to find these tools... in python. shutil having copy, copy2 and rmtree (The most used ones by me).

Well, you've left out the really obviously useful grep. If you don't know grep, you're really crippled. You'll also need to understand how pipes work, and how redirects work. Also, you should have a good understanding of ps, kill, and (if you're working on a vps) free. Also the difference between stderr and stdout.