practical-scientific-computing / practical-scientific-computing.github.io

public website for the practical scientific computing workshop
0 stars 3 forks source link

create bash tutorials #8

Open patrickmalsom opened 9 years ago

patrickmalsom commented 9 years ago

Shell list of topics

Please add/edit this list if there are other topics worth covering. I would like this to be a useful resource for researchers even after this workshop is over, so if there are other commands you use on a semi-weekly basis please add them!

Tutorial topics

mpbelhorn commented 9 years ago

I've added some topics (UNIX directory tree, sudo, interrupt) and am working on a shell basics tutorial that so far covers: various shells, prompt, command syntax, whoami, pwd, hostname, ls, cd, mv, cp, rm, touch, mkdir, rmdir, directory tree

patrickmalsom commented 9 years ago

Possible breakdown of topics for tutorials. Please state which tutorial you are writing here so we aren't stepping on each other's toes when writing. Feel free to edit/add/remove items from the list. This is only a stab at organizing things, and I really have no idea what I am doing...

Thanks to @LincolnBryant for helping get this list together.

@mpbelhorn can you include man pages as well in your intro page?

Tutorial topics

Basic shell commands

Editing and manipulating text files

Pipelining, redirection, and job control

time savers

Remote access

Shell scripts

Adv topics

Examples

Reference commands

mpbelhorn commented 9 years ago

I'm enhancing the first tutorial page now with your suggestions and it occurs to me we need to discuss environment variables somewhere, especially if folks are working on remote systems where the environment can be crazy. Folks will likely need to know about at least $PATH, $HOME, $EDITOR, $TERM, $PAGER, $DISPLAY, and $PYTHONPATH

adamdddave commented 9 years ago

I'll go ahead and take remote access and shell scripts

mpbelhorn commented 9 years ago

Is this really closed? Do we have someone working on everything in the list?

LincolnBryant commented 9 years ago

I am writing some docs on pipelining, redirection, and job control.

mpbelhorn commented 9 years ago

I can take editing and manipulating text files. Although I have no intention of going into detail on editors - I'll just give them enough information to be dangerous and point 'em in the direction to learn those on their own.

I'll also throw some 'find', 'sed', and 'regexp' recipes in with that tutorial.

LincolnBryant commented 9 years ago

Pat and I talked about this at one point, but it would be really nice to have some supplementary material that solely covers regular expressions. They're incredibly useful for any question that starts with "How do I find all foo for condition bar?".

Just knowing to tack on "regexp" to a search query goes a long way.

adamdddave commented 9 years ago

I'm doing remote stuff (ssh, scp, rsync, etc) and shell scripts. I anticipate starting this stuff at the end of the first lecture or the beginning of the second.

I agree, regexp is extremely useful and could take up a whole lecture.

On Wed, Feb 4, 2015 at 1:39 PM, Lincoln Bryant notifications@github.com wrote:

Pat and I talked about this at one point, but it would be really nice to have some supplementary material that solely covers regular expressions. They're incredibly useful for any question that starts with "How do I find all foo for condition bar?".

Just knowing to tack on "regexp" to a search query goes a long way.

— Reply to this email directly or view it on GitHub https://github.com/practical-scientific-computing/practical-scientific-computing.github.io/issues/8#issuecomment-72945131 .

mpbelhorn commented 9 years ago

I agree completely. Full coverage of regexp would would be super useful, but I don't think I can have that written by Friday. I'd be glad to work on it though. I have a condensed cheat sheet that I've been working on for years that would make a good basis for a regexp tutorial.

On Wed, Feb 4, 2015 at 4:39 PM, Lincoln Bryant notifications@github.com wrote:

Pat and I talked about this at one point, but it would be really nice to have some supplementary material that solely covers regular expressions. They're incredibly useful for any question that starts with "How do I find all foo for condition bar?".

Just knowing to tack on "regexp" to a search query goes a long way.

— Reply to this email directly or view it on GitHub https://github.com/practical-scientific-computing/practical-scientific-computing.github.io/issues/8#issuecomment-72945131 .

patrickmalsom commented 9 years ago

Ok so we are going to present this stuff on Friday so making some sort of plan is probably in order.

I am going to start the session by making sure everyone has access to the remote GNU+Linux machine that is set up for this class. This will require ssh, but I think I will do this without a tutorial and save the remote stuff for later in the meeting.

@mpbelhorn, I am expecting that you will want to be teaching for most of this meeting as you have written the entire first page. Please comment if this is not your plan.

First Meeting

  1. Basic shell commands
  2. Editing files
  3. Remote access

Second meeting

  1. Pipelining
  2. Job control
  3. Time savers
  4. ...

I also think a regexp page is a good idea but will most likely be in the advanced tutorials, (hopefully linked to from tutorial pages). Basic regexp syntax will obviously be needed for any sed discussion.

@mpbelhorn: I think a cheat sheet for shell commands will be very useful if you have one drafted up. Do you want to work on that and I will take the editor section? I am fine with you writing both if you are up for it. Let me know what you want to do.

adamdddave commented 9 years ago

I think this is a sensible plan.

On Wed, Feb 4, 2015 at 2:04 PM, patrickmalsom notifications@github.com wrote:

Ok so we are going to present this stuff on Friday so making some sort of plan is probably in order.

I am going to start the session by making sure everyone has access to the remote GNU+Linux machine that is set up for this class. This will require ssh, but I think I will do this without a tutorial and save the remote stuff for later in the meeting.

@mpbelhorn https://github.com/mpbelhorn, I am expecting that you will want to be teaching for most of this meeting as you have written the entire first page. Please comment if this is not your plan. First Meeting

  1. Basic shell commands
  2. Editing files
  3. Remote access

Second meeting

  1. Pipelining
  2. Job control
  3. Time savers
  4. ...

I also think a regexp page is a good idea but will most likely be in the advanced tutorials, (hopefully linked to from tutorial pages). Basic regexp syntax will obviously be needed for any sed discussion.

@mpbelhorn https://github.com/mpbelhorn: I think a cheat sheet for shell commands will be very useful if you have one drafted up. Do you want to work on that and I will take the editor section? I am fine with you writing both if you are up for it. Let me know what you want to do.

— Reply to this email directly or view it on GitHub https://github.com/practical-scientific-computing/practical-scientific-computing.github.io/issues/8#issuecomment-72949642 .

mpbelhorn commented 9 years ago

Pat, I was planning on presenting on Friday. I can write up a cheat sheet of commands if you want to write about editors. I'm on my phone walking to something now, but I'll get in touch later tonight about what do. On Feb 4, 2015 5:11 PM, "adamdddave" notifications@github.com wrote:

I think this is a sensible plan.

On Wed, Feb 4, 2015 at 2:04 PM, patrickmalsom notifications@github.com wrote:

Ok so we are going to present this stuff on Friday so making some sort of plan is probably in order.

I am going to start the session by making sure everyone has access to the remote GNU+Linux machine that is set up for this class. This will require ssh, but I think I will do this without a tutorial and save the remote stuff for later in the meeting.

@mpbelhorn https://github.com/mpbelhorn, I am expecting that you will want to be teaching for most of this meeting as you have written the entire first page. Please comment if this is not your plan. First Meeting

  1. Basic shell commands
  2. Editing files
  3. Remote access

Second meeting

  1. Pipelining
  2. Job control
  3. Time savers
  4. ...

I also think a regexp page is a good idea but will most likely be in the advanced tutorials, (hopefully linked to from tutorial pages). Basic regexp syntax will obviously be needed for any sed discussion.

@mpbelhorn https://github.com/mpbelhorn: I think a cheat sheet for shell commands will be very useful if you have one drafted up. Do you want to work on that and I will take the editor section? I am fine with you writing both if you are up for it. Let me know what you want to do.

— Reply to this email directly or view it on GitHub < https://github.com/practical-scientific-computing/practical-scientific-computing.github.io/issues/8#issuecomment-72949642

.

— Reply to this email directly or view it on GitHub https://github.com/practical-scientific-computing/practical-scientific-computing.github.io/issues/8#issuecomment-72950914 .

adamdddave commented 9 years ago

I'm covering tmux and screen in the remote tutorial, fyi

patrickmalsom commented 9 years ago

I would personally only introduce screen and avoid tmux. Tmux is not installed on many of the scientific clusters but screen will be.

Just my 2 cents...

adamdddave commented 9 years ago

Done