|
|
|
@ -19,13 +19,13 @@ first, the basics
|
|
|
|
|
### what is a "shell"?!
|
|
|
|
|
|
|
|
|
|
a shell is (for the purposes of this tutorial) a program that provides a
|
|
|
|
|
command line interface (cli) to a user. that is to say, it's the program that
|
|
|
|
|
reads commands you type, does things, and spits output back at you. when a user
|
|
|
|
|
logs into a unix-like system, the shell is the first process executed under
|
|
|
|
|
that user's account ("process" meaning "a currently-running instance of a
|
|
|
|
|
program"). this instance of the shell is called, predictably, a "login shell".
|
|
|
|
|
the user might also run a second instance of a shell later on (by e.g. opening
|
|
|
|
|
up a terminal emulator). that instance is a "non-login shell".
|
|
|
|
|
command line interface (cli) to a user. it's the program that reads commands
|
|
|
|
|
you type, does things, and spits output back at you. when a user logs into a
|
|
|
|
|
unix-like system, the shell is the first process executed under that user's
|
|
|
|
|
account ("process" meaning "a currently-running instance of a program"). this
|
|
|
|
|
instance of the shell is called, predictably, a "login shell". the user might
|
|
|
|
|
also run a second instance of a shell later on (by e.g. opening up a terminal
|
|
|
|
|
emulator). that instance is a "non-login shell".
|
|
|
|
|
|
|
|
|
|
you might think "but when i login, i don't get a shell. i get a desktop!!", or
|
|
|
|
|
something to that effect. modern unix-likes that run graphical desktops
|
|
|
|
@ -627,10 +627,10 @@ some practical examples
|
|
|
|
|
-----------------------
|
|
|
|
|
|
|
|
|
|
ok, now that we're through all that, time to give some examples of things you
|
|
|
|
|
can start applying right away! (or at least get an idea of how this stuff
|
|
|
|
|
day-to-day works)
|
|
|
|
|
can start applying right away! (or at least use to get an idea of how this
|
|
|
|
|
stuff works in real life)
|
|
|
|
|
|
|
|
|
|
### mass-rename files in a directory
|
|
|
|
|
### file processing en masse
|
|
|
|
|
|
|
|
|
|
### make your aliases portable
|
|
|
|
|
|
|
|
|
@ -748,9 +748,8 @@ generally referred to as "the unix philosophy", the concept that a program or
|
|
|
|
|
utility should tackle one well-defined problem and solve it "elegantly", rather
|
|
|
|
|
than half a dozen problems poorly, has long been a central thought for any
|
|
|
|
|
programmer working within a unix environment. recently, however, there has been
|
|
|
|
|
some internal conflict over this concept, as the rise of massive, integrated
|
|
|
|
|
systems like GNOME and SystemD has begun to conquer the modern unix
|
|
|
|
|
workstation.
|
|
|
|
|
some internal conflict over this concept, as massive, integrated systems like
|
|
|
|
|
GNOME and SystemD have begun to conquer the modern unix workstation.
|
|
|
|
|
|
|
|
|
|
currently confined mostly to linux distributions, this development still is
|
|
|
|
|
very worrying both for reasons of stability and diversity. such a "monolithic"
|
|
|
|
@ -833,8 +832,8 @@ remember, `man` is your friend!
|
|
|
|
|
<dd>also list information about a file. more human-readable</dd>
|
|
|
|
|
<dt>du</dt>
|
|
|
|
|
<dd>display the sizes of files</dd>
|
|
|
|
|
<dt>du</dt>
|
|
|
|
|
<dd>display disc usage</dd>
|
|
|
|
|
<dt>df</dt>
|
|
|
|
|
<dd>display total disc usage</dd>
|
|
|
|
|
<dt>pwd</dt>
|
|
|
|
|
<dd>"print working directory". more useful from scripts than interactive shell-ing, really</dd>
|
|
|
|
|
</dl>
|
|
|
|
@ -858,7 +857,7 @@ remember, `man` is your friend!
|
|
|
|
|
<dt>chmod</dt>
|
|
|
|
|
<dd>modify a file's <a href="https://en.wikipedia.org/wiki/File_system_permissions">permissions</a></dd>
|
|
|
|
|
<dt>chown</dt>
|
|
|
|
|
<dd>give ownership of a file to a different user. useful for tweaking permissions of things</dd>
|
|
|
|
|
<dd>give ownership of a file to a different user</dd>
|
|
|
|
|
<dt>mount</dt>
|
|
|
|
|
<dd>join an external filesystem to the system file tree (i.e. make it available through a directory somewhere)</dd>
|
|
|
|
|
<dt>umount</dt>
|
|
|
|
|