shell-extras
shell-extras copied to clipboard
Potential lessons
- [x] transferring files, using scp and the like (already written by @bshambaugh )
- [x] using ssh
- [ ] navigating man pages (and possibly
less
shortcuts), see shell-novice PR https://github.com/swcarpentry/shell-novice/pull/75 - [x] environment variables
- [ ] using aliases
- [ ] permissions
- [x] job control (^Z, fg, jobs)
See also https://github.com/swcarpentry/bc/tree/gh-pages/intermediate/shell for starting material.
On Sun, Mar 15, 2015 at 08:02:39PM -0700, Christina Koch wrote:
- [ ] using ssh (does this already exist somewhere)?
https://github.com/swcarpentry/bc/blob/gh-pages/novice/extras/07-ssh.md
Did the pull requests on shell variables and aliases from the previous repo get pulled into this? I'm happy to contribute more to this section!
@froggleston, they haven't yet, but I want to make sure we've nailed down scope (per #3) before having people submit PRs. Once we've figured out where everything is going, I will definitely ping you for content! :)
@ChristinaLK Sounds good to me! :)
Based on #3 I think job control should go into shell-intermediate or maybe shell-hpc (or both? that's a discussion for those repos)
Other potential lessons
- [ ] diff
- [ ] rsync (add to file transfer lesson?)
- [ ] tar/gzip/bzip2
- [ ] ps/top (maybe this belongs with jobs)
- [ ] tree
- [ ] dc/bc
Where SSH is concerned, over in swcarpentry/boot-camps#22 I had some notes about SSH as well. Though it looks like the SSH lesson already linked to here already covers most of the same stuff. I'll look it over and see if there's anything else worth adding
I think the basics of job control (^Z, bg, %1) can go into a short job control lesson in this repo, and we can defer everything else until this repo's contents have been filled in.
We shouldn't try to be a full-blown Unix shell tutorial - anything that
isn't directly relevant to everyday scientific practice should be left
out. For example dc/bc are definitely out, as are things like tree
and rsync
- anyone who's far enough along to want those can be pointed
at http://www.amazon.com/Unix-Linux-Visual-QuickStart-Guide/dp/0321997549/
It's well worthwhile to cover job control (and other topics discussed here) to the extent that the audience becomes generally aware of these. Personally, I tend to include some discussion of ^D, ^C and ^Z when introducing shell basics, and to explain that while these all can appear to have the same result of making the foreground process "go away", they are fundamentally different. One of my reasons to go over this is that I keep finding users who develop a habit of pressing ^Z as a default means to get their shell prompt back -- I've seen fg
show 50+ suspended processes in such cases. Making participants aware that processes can be suspended will hopefully slow down the spread of such habits, and thereby help people to develop good and efficient practices in their scientific computing.
+1 to adding a couple of sentences on each of ^C, ^D, and ^Z to
discussion.md
in shell-novice
.
Do the check marks in my first post mean we have material for these things or that we want to include them?
Along those lines - is there agreement that the list on the top of the page is a good scope for lessons (as discussed in #3)? If so, I'll add a numbering scheme so people can start submitting PRs. :smiley:
What about awk
? I've seen people using it in scientific contexts, but maybe it's too complicated for novices.
I'm -1 on introducing another programming language - at this point, anything I would have used 'awk' for in 1995 I'll do with Python. I feel the same way about anything with 'sed' other than straightforward text substitutions.
On Sat, Apr 04, 2015 at 12:25:20PM -0700, Ivan Gonzalez wrote:
What about
awk
? I've seen people using it in scientific contexts, but maybe it's too complicated for novices.
For folks interested in awk outside of a SWC workshop, see [1,2].
Leaving open for visibility, lesson development now in separate issues.