some questions floating in my head...

  1. admin user is not necessary. Username are identified by their user id's in GNU/Linux. Type command 'id' in your Terminal to see. root has id as 0, i.e zero. No other user can have user id zero. Just to see where a program is sitting, issue the command 'which', e.g.

    which firefox   
    

    Also please see, 'man hier' for more on what directory in filesystem tree is for what purpose.

  2. All GNU/Linux installs have a root user who is the absolute authority. Think of MC Hammer except root can 'touch' anything.

  3. You are right, 'admin' is not required. When you are installing something you are basically copying different files in different locations. There is no registry here like you have in Windows. In most cases when you want to install a package X, it require that Y be on the system before X can be installed. Y is said to be a dependency of X.

  4. It's a good habit/practice to use 'yum' or other package management tool to install a program. A repository (location/url/web address) is configured and package manager will pull stuff off that location & install it on your system. The Package manager will keep track of what's installed on your system & will take care of dependencies too, if any. You can download a program yourself off of the Internet and after it's downloaded you can use 'rpm' to install it. Here if your program require a dependency that's not present on your system then you'll have to install them first manually. Please see man rpm.

  5. Pipes are one of the strengths of Unix and GNU/Linux systems. Small programs can be used together. One program can send it's standard output (defaults to screen) to standard input (keyboard) of another program, that is if the second program can actually take standard input. For example,

    ls -l | wc -l
    

    Here, 'ls -l' will give list of current directory contents in long format. Now wc is a program that can take standard input. You can try this by just typing 'wc -l' on its own. Now cursor will move to the next line, it's expecting you to type something using keyboard (standard input). You can type whatever you want and you can press Ctrl+D to send EOF(End Of File) signal which will tell 'wc' that user has had enough! It will count number of lines of whatever you typed and give you an answer. So unlike wc or grep not all programs will be able to handle output using pipes gracefully. Now back to our example above. The output of 'ls -l' will be piped to 'wc -l' and it will count the number of lines in the output and spit out a numerical answer.

  6. Extensions don't mean much. Type of files are identified not by extension but by metadata. This info is embedded at the start of the file. So even if you change the extension of a file you can't fool your OS (Unix or GNU/Linux) although you can write an extension just for your convenience. Like when I make a backup copy of some file I put .BAK at the end. Use 'file' command to see the type of a file. file /bin/grep See man file.

  7. Well if you mean .html pages then you should certainly create them under normal user and it will be stored some where in /home/trollbuster. If you want to serve those pages using Apache then those should be stored at an appropriate location from where Apache can read. See Apache or other web server's documentation. All the tasks should be done as a normal user, don't login as root and start doing things that you shouldn't be doing as root like browsing reddit :). Login as normal user and switch to root when absolutely necessary in a Terminal or use 'sudo' command. See man sudo.

Sorry for being too long, I hope it was helpful.

/r/linux4noobs Thread