4 ms·
I learned SunOS (and later Linux and HP-UX) by full immersion with a non-root account on a multiuser server. It was non-graphical, though I was able to tunnel X
by baryphonic 7y ago
I learned SunOS (and later Linux and HP-UX) by full immersion with a non-root account on a multiuser server. It was non-graphical, though I was able to tunnel X over SSH across the Internet and actually have an almost usable desktop.
I was learning C programming at the time, so beyond dealing with bizarre things like my program crashing due to "segmentation fault"s, I was trying to understand what was going on. The first time I opened vi, I couldn't figure out how to get out. Once I did, I used `:sav %` followed by `:q` for longer than I care to admit.
If I had to recommend anything to someone just learning, I'd recommend learning these commands:
cd
ls
touch
rm # but be careful!
ps
head
tail
nano
who
whoami
man
apropos # this is technically man
less
These will help you do a lot of what you need to do on Linux about as well as you can do similar things on Windows. Once you've mastered those commands, learn about piping `|`, grouping `{ foo; bar; }` and sub-shells `$(foo)`. Learning about variables `$foo`
Then read up on:
grep
sed
cut
find
awk # really just `awk '{ print $2 }'`
xargs
env
export
test # [ foo ]
source # . foo
crontab
top # or even better `htop`
shell control flow
When you're done with that, learn
vim # `vimtutor` can help
emacs
After that, there's tons of other tools you'll pick up as needed:
dd
df
du
fsck
and a bunch of other system-related tools
You'll learn a ton as you move along.
Just remember that for the most part, each tool solves approximately one problem, and the complex behavior comes from chaining tools together. Chaining mostly involves `|`. Once you see that at work, you probably won't want to go back to the crutch of point-click-drag.
Best of luck!