[HTC Wildfire S] no.human.being:
This is a nice introduction to the shell. It works much like the DOS box under Windows, but on unixoid systems you're often gonna use the shell. It's very mighty. If you're used to Windows PowerShell, you're gonna adapt more quickly to a "Linux shell", as PowerShell is a fair bit more "unixoid" than the old-fashioned "DOS box".

To bring up a shell on Fedora, just hit the "meta key" (also called "Windows key" but obviously it's not called "Windows key" under Linux :D ), then type "term" and hit enter. A terminal window will open up. Just love how smooth keyboard shortcuts are in the GNOME Shell. :D

The Android SDK for Linux can be downloaded here. Just untar it (rightclick, "Extract here"), then "cd" your shell into the path where you extracted the Android SDK, then "cd tools" and run "./android". This will run the Android repository program that will download the actual SDK from Google's servers.

If you want to build software for ARM, I recommend you the CodeSourcery toolchain. Select "ARM processors --> Download the GNU/Linux release". You're gonna have to register with Mentor to obtain the toolchain, but it's free of charge.

When you want to be able to call certain programs from anywhere just by their name instead of their full path, you must "add them to the $PATH". E. g. I'm having my ARM compiler toolchain under "~/Downloads/arm/arm-2011.09/bin" but of course I just want to type the fully qualified path of "~/Downloads/arm/arm-2011.09/bin/arm-none-linux-gnueabi-gcc" when I want to invoke the compiler. That's why on the beginning of my shell session I type "PATH=$PATH:~/Downloads/arm/arm-2011.02/bin". Then I can just type "arm-none-linux-gnueabi-gcc", which is the name of the executable. When working with long paths, auto-completion using the <TAB> key is nice. So instead of typing "~/Downloads/arm/arm-2011.09/bin" I type e. g. "~/Dow<TAB>arm<TAB>arm-<TAB>b<TAB>". How much you have to type depends on how much you need to make the name "unique". Say you have the files "arm-none-linux-gnueabi-as" and "arm-none-linux-gnueabi-gcc" in your directory. Typing "./a<TAB>" will complete until "./arm-none-linux-gnueabi-" (since that's what all files starting with "a" have in common), then you type "g<TAB>" and it's already "unique" that you mean "...gcc", since the other thing is "...as" which doesn't start with "g". So the shell is really smart, you're gonna love it. :D

As you see, there's no extension to the executable (no ".exe" or something). Under Linux, extensions usually don't mean a thing. The file type is stored as file system metadata, independently from the name. The thing that designates an executable file is that it's "+x" flag is set. If you do "ls -l", you get a directory listing which shows lots of file attributes (not exactly all, but at least the most common ones). You're going to see that the "arm-none-linux-gnueabi-gcc" file has some (usually three) "x" flags in front. The first one means "executable for the file owner", the second one means "executable for the file group" and the third means "executable for everyone else". This distinction is done since Linux is a multi-user system. You can modify most properties of a file using the "chmod" (

ch

ange

mod

e) command.

Should you come into the situation where you know which command you have to use, but now

how

to use it (believe me, you're gonna use this

a lot

, even as an "experienced" user, or probably even more in this case :D ), type "man <command_name>" (e. g. "man chmod"). The "man" stands for

man

ual. It's what people are referring to when they tell you to look something up "in the manpages".

Should you wish to run adb under Fedora, you'll need to start the server "as root" (with administrative privileges). To execute a command "as root" you prefix it with the term "sudo", so "sudo ./adb start-server" should start the server as root. The actual work (e. g. "./adb shell") can be done without administrative privileges. You should only resort to administrative privileges when neccessary. To make the entire shell have administrative privileges, type "sudo -s". When you want to return to your old (unprivileged) shell type "exit". Typing "exit" on the "outermost" shell will close the terminal session. Take care not to "nest" too many shells into each other, as this can lead to confusion. :D

There is a configuration file you can edit that allows adb to access the device without obtaining administrative privileges. Obviously, this is more secure, but I don't know any more how I've done it. Need to look it up.