个人工具

“UbuntuHelp:PowerUsers”的版本间的差异

来自Ubuntu中文

跳转至: 导航, 搜索
 
(未显示同一用户的9个中间版本)
第1行: 第1行:
 
{{From|https://help.ubuntu.com/community/PowerUsers}}
 
{{From|https://help.ubuntu.com/community/PowerUsers}}
 
{{Languages|UbuntuHelp:PowerUsers}}
 
{{Languages|UbuntuHelp:PowerUsers}}
This document is intended to help power users from other operating systems to understand Ubuntu, which offers some very attractive features for power users.
+
<<Include(Tag/StyleCleanup)>>
 +
This document is intended to help power users from other operating systems understand Ubuntu, which offers some very attractive features for power users.
 
== Are you a power user? ==
 
== Are you a power user? ==
 
A power user is a person who is able to use a computer system in an advanced capacity. Power users generally have a good knowledge of the system that they use.
 
A power user is a person who is able to use a computer system in an advanced capacity. Power users generally have a good knowledge of the system that they use.
 
== Features for power users ==
 
== Features for power users ==
Ubuntu is usually targeted to home users with some to no computer knowledge. Most administrative tasks are nicely hidden by a GUI, which helps new users to learn the Ubuntu operating system fast. For most users this is fine but some will want to use tools that allow much more control. Thankfully, under the nice polished graphical interface lies the power of Unix and Linux. In this section I will try to describe some of the power tools available to users under Ubuntu. This document is targeted to users who probably are very experienced with other operating systems but are relatively new to Ubuntu, Linux and Unix in general. Hopefully this document can clear up some of the jargon us Linux/Unix geeks use all the time. (Please add suggestions at the end of this document. I want to know what you would like to learn)
+
Ubuntu is usually targeted to home users with little to no computer knowledge. Most administrative tasks are nicely hidden by a GUI, which helps new users learn the Ubuntu operating system fast. For most users this is fine but some will want to use tools that allow much more control. Thankfully, under the nicely polished graphical interface lies the power of Unix and Linux. In this section I will try to describe some of the power tools available to users under Ubuntu. This document is targeted to users who are probably very experienced with other operating systems but are relatively new to Ubuntu, Linux and Unix in general. Hopefully this document can clear up some of the jargon us Linux/Unix geeks use all the time. (Please add suggestions at the end of this document. I want to know what you would like to learn)
 
=== The Bash Shell ===
 
=== The Bash Shell ===
 
==== The Shell, what is it? ====
 
==== The Shell, what is it? ====
Wikipedia defines the shell as follows: "A Unix shell, also called 'the command line', provides the traditional user interface for the Unix operating system. Users direct the operation of the computer by entering command input as text for a shell to execute. Within the Microsoft Windows suite of operating systems the analogous program is command.com, or cmd.exe for Windows NT-based systems.  In Gnome, the shell is accessible by clicking on Application->Accessories->Terminal. I suggest dragging and droping the terminal into the top bar for easy access. After a couple of times using it you will become addicted to it.  
+
Wikipedia defines the shell as follows: "A Unix shell, also called 'the command line', provides the traditional user interface for the Unix operating system. Users direct the operation of the computer by entering command input as text for a shell to execute. Within the Microsoft Windows suite of operating systems the analogous program is command.com, or cmd.exe for Windows NT-based systems.  In Gnome, the shell is accessible by clicking on Application->Accessories->Terminal. I suggest dragging and dropping the terminal into the top bar for easy access. After a couple of times using it you will become addicted to it.  
(ED: For those you are currently scared or disgusted by the fact that they might have to touch a comand prompt at some point: The Linux shell is not MS-DOS. It is much better, powerful, and tons of fun. Most tasks on Linux can now be done in the GUI but the shell will give you much more control. It is often faster to type a command than to use a graphical user interface.)
+
(ED: For those you are currently scared or disgusted by the fact that they might have to touch a command prompt at some point: The Linux shell is not MS-DOS. It is better, more powerful, and tons of fun. Most tasks on Linux can now be done in the GUI but the shell will give you much more control. It is often faster to type a command than to use a graphical user interface.)
For more info check out Self:[[UbuntuHelp:BasicCommands|BasicCommands]]
+
For more info check out [[UbuntuHelp:BasicCommands|BasicCommands]]
 
==== Bash Scripting ====
 
==== Bash Scripting ====
One interesting feature of the shell is that it is highly scriptable. Shell scripting is similar to batch scripting on DOS. The shell's language which is a mix of commands and built-in functions is extremely useful in system administration task such as automatisation of repetitive task. But the Bash shell language can be used to program very complex programs ( I had a friend who solved the 8 queen problem in bash. Awesome!). You can learn more about bash scripting from various sources :
+
One interesting feature of the shell is that it is highly scriptable. Shell scripting is similar to batch scripting on DOS. The shell's language which is a mix of commands and built-in functions is extremely useful in system administration tasks such as automatisation of repetitive tasks. But the Bash shell language can be used to program very complex programs (I had a friend who solved the 8 queen problem in bash. Awesome!). You can learn more about bash scripting from various sources:
# Self:BashScripting
+
<ol><li>BashScripting
# http://www.tldp.org/LDP/abs/html/index.html
+
</li><li>http://www.tldp.org/LDP/abs/html/index.html</li></ol>
Of course, language like perl, python and ruby might be more convinient for large projects but Bash scripting is available and quite speedy for small scripts. All services or daemons on Ubuntu have a startup script written in bash that can be found in /etc/init.d/ .
+
 
 +
Of course, programming languages like perl, python and ruby might be more convenient for large projects but Bash scripting is available and quite speedy for small scripts. All services or daemons on Ubuntu have a startup script written in bash that can be found in /etc/init.d/ .
 
=== Moving on ===
 
=== Moving on ===
So the shell is great but what else than list files can it do?  
+
So the shell is great but what else, besides listing files, can it do?  
 
Much much more. Click on the following sections for more commands and techniques to use :
 
Much much more. Click on the following sections for more commands and techniques to use :
# Self:[[UbuntuHelp:PowerUsersTextEditors|PowerUsersTextEditors]]
+
<ol><li>[[UbuntuHelp:PowerUsersTextEditors|PowerUsersTextEditors]]
# Self:PowerUsersAdvancedEditing
+
</li><li>PowerUsersAdvancedEditing
# Self:[[UbuntuHelp:PowerUsersInternetCommands|PowerUsersInternetCommands]]
+
</li><li>[[UbuntuHelp:PowerUsersInternetCommands|PowerUsersInternetCommands]]
# Self:[[UbuntuHelp:PowerUsersProgramming|PowerUsersProgramming]]
+
</li><li>[[UbuntuHelp:PowerUsersProgramming|PowerUsersProgramming]]</li></ol>
 +
 
 
...
 
...
 
=== For Windows Power Users ===
 
=== For Windows Power Users ===
 
==== How to share files ====
 
==== How to share files ====
Ubuntu can easily share files between both Windows and other Unix systems such as OS X and Solaris. To share folders between Windows and Linux clients take a look at Samba.  A guide specific to Ubuntu can be found here: Self:[[UbuntuHelp:SettingUpSamba|SettingUpSamba]]
+
Ubuntu can easily share files between both Windows and other Unix systems such as OS X and Solaris. To share folders between Windows and Linux clients, take a look at Samba.  A guide specific to Ubuntu can be found here: [[UbuntuHelp:SettingUpSamba|SettingUpSamba]]
While sharing folders between Unix machines can be done easily with samba, it is more common to this using NFS.  Check out this guide to set it up: Self:[[UbuntuHelp:SettingUpNFSHowTo|SettingUpNFSHowTo]].  
+
While sharing folders between Unix machines can be done easily with samba, it is more common to use NFS.  Check out this guide to set it up: [[UbuntuHelp:SettingUpNFSHowTo|SettingUpNFSHowTo]].  
 
==== DOS vs Linux Command Prompt(shell in Unix speak) ====
 
==== DOS vs Linux Command Prompt(shell in Unix speak) ====
Some of you might have some experiance with DOS and still remember all those dir, chdir... commands. Without going into the details, the command prompt in Linux is more robust than DOS.  Here is a small conversion sheet to help you folks out:
+
Some of you might have some experience with DOS and still may remember all those dir, chdir... commands. Without going into the details, the command prompt in Linux is more robust than DOS.  Here is a small conversion sheet to help you out:
 
http://www.faqs.org/docs/linux_intro/app2.html
 
http://www.faqs.org/docs/linux_intro/app2.html
 
===== SSH =====
 
===== SSH =====
What about computers that are not on your local network?  SSH has some nifty tools that you can use to securely (meaning encrypted) transfer files. Check out the SSH how to here: Self:[[UbuntuHelp:SSHHowto|SSHHowto]]. Since SSH is so important here is a quick start up guide.
+
What about computers that are not on your local network?  SSH has some nifty tools that you can use to securely (meaning encrypted) transfer files. Check out the SSH how to here: [[UbuntuHelp:SSHHowto|SSHHowto]]. Since SSH is so important here is a quick start up guide.
# Install the openssh-server package.
+
<ol><li>Install the openssh-server package.
# From Windows you can use PuTTY(http://www.chiark.greenend.org.uk/~sgtatham/putty/) to issue commands remotely and transfer files
+
</li><li>From Windows you can use PuTTY(http://www.chiark.greenend.org.uk/~sgtatham/putty/) to issue commands remotely and transfer files.
# On another Linux computer, Use the 'Connect to Server' tool under the Places menu to connect to a SSH server. Select SSH from the drop down menu. Fill out the server box with the IP or DNS name of the server. Also in the folders section put /home/YourUsername to go to your home folder on the particular machine.
+
</li><li>On another Linux computer, Use the 'Connect to Server' tool under the Places menu to connect to an SSH server. Select SSH from the drop down menu. Fill out the server box with the IP or DNS name of the server. Also in the folders section put /home/YourUsername to go to your home folder on the particular machine.
# Alternatively, use the scp command (look up the manual page by using man scp in a terminal) to transfer files.
+
</li><li>Alternatively, use the scp command (look up the manual page by using man scp in a terminal) to transfer files.</li></ol>
 +
 
 
=== Understanding the operating System ===
 
=== Understanding the operating System ===
You might hear a lot of folks saying things like "Linux is an operating system", which is incorrect.  Linux is only the kernel part of the operating system, which is the equivalent of the NT kernel on WindowsXP or Darwin on OS X.  So what does the kernel do? Read the following guide: Self:LinuxKernel (under construction) for a better understanding. So what then can you consider the operating system ? Well quite frankly It not clearly defined in Computer Science what an OS is but for our disscussion consider Ubuntu to be the Operating System. So you already got familiar with the Shell now lets look at other topics.
+
You may hear a lot of folks saying things like "Linux is an operating system", which is incorrect.  Linux is only the kernel part of the operating system, which is the equivalent of the NT kernel on WindowsXP or Darwin on OS X.  So what does the kernel do? Read the following guide: LinuxKernel (under construction) for a better understanding. So what then can you consider the operating system? Well quite frankly, it is not clearly defined in Computer Science, but for our discussion consider Ubuntu to be the Operating System. So you already got familiar with the Shell now lets look at other topics.
 
==== The Filesystem ====
 
==== The Filesystem ====
There are two different things related things that are considered filesystems. One is the way your files are stored on disk at the lowest level. think of NTFS and FAT32 on windows. There are multiple Filesystems that linux uses. The most common is EXT3. Which is a quite safe choice if you ever decided to pick one of them. Another popular choice is ReiserFS. While ReiserFS is fast with super small files (Like 4kb or something) it's not much better than EXT3 in my personal no not much opinion. Take a look at Self:LinuxFileSystemExplained for more info.  
+
There are two different (but related) things that are considered filesystems. One is the way your files are stored on disk at the lowest level. think of NTFS and FAT32 on Windows. There are multiple Filesystems that linux uses. The most common is EXT3. Which is a safe choice if you ever decided to pick one of them. Another popular choice is ReiserFS. While ReiserFS is fast with super small files (Like 4kb or something) it's not much better than EXT3 in my personal opinion. Take a look at LinuxFileSystemExplained for more info.  
Next lets talk about the Linux Filesystem structure. First everythin starts at / (called root (think of a inverted tree)). Under root (/ from now on) you will find everything. Here is a list of the most important stuff you will need:
+
Next lets talk about the Linux Filesystem structure. First, everything starts at / (called root (think of a inverted tree)). Under root (/ from now on) you will find everything. Here is a list of the most important stuff you will need:
# /home : Under there each "real" system users has there personal folder containing all there files and personal configurations.
+
<ol><li>/home : Under there each "real" system users have their personal folder containing all of their files and personal configurations.
# /etc : This folder is for system configuration files. Most core system application have a configuration file here. You can use you favorite text editor to modify them (much better than dwellving into the registry on windows in my opinion)
+
</li><li>/etc : This folder is for system configuration files. Most core system applications have configuration files here. You can use your favorite text editor to modify them (much better than delving into the registry on Windows in my opinion)
# /usr : Contains most of the application files. Think or Program Files on windows
+
</li><li>/usr : Contains most of the application files. Think of Program Files on Windows</li></ol>
For an extensive list check this wiki page : Self:LinuxFileSystemTreeOverview
+
 
 +
For an extensive list check this wiki page : LinuxFileSystemTreeOverview
 
==== Processes ====
 
==== Processes ====
All application and system utilities are called processes when they are started(Think services on Windows and  Applictions in the task manager). There are many processes and they are organised in a tree like fashion. Think of it this way:
+
All application and system utilities are called processes when they are started (Think services on Windows and  Applications in the task manager). There are many processes and they are organised in a tree-like fashion. Think of it this way:
You start a terminal and type the ls command. What happens is that the shell(refresher:what runs inside the terminal is a shell)  will start a new processes which execute ls. This processes is the child of the shell.  
+
You start a terminal and type the ls command. What happens is that the shell will start a new process which in turn executes ls. This processes is the child of the shell.  
All processes are childs or "init" the all master process. Type pstree in a terminal to see this tree structure. All processes have process id number which you can find when running the ps command (ps aux  will list all process on the system use a pipe Self:grep to find a specific proccess by it's name or owner.) To stop a proccess that is not responding you can use the kill command (kill "proccess id goes here")
+
All processes are childs or "init" (the all-master process). Type pstree in a terminal to see this tree structure. All processes have a process id number which you can find by typing the ps command (ps aux  will list all process on the system using a pipe [[UbuntuHelp:grep|grep]] to find a specific process by its name or owner.) To stop a process that is not responding you can use the kill command (kill "process id goes here")
 
=== Security ===
 
=== Security ===
Linux is a pretty robust operating system but it is not totaly secure. No network capable Operating System is secure. But with this in mind, Linux has great security features that you should know about. For example Linux's iptables tool and kernel modules allows for pretty complex and robust Firewalls to be built.  
+
Linux is a pretty robust operating system but it is not completely secure. No network-capable Operating System is secure. But with this in mind, Linux has great security features that you should know about. For example, Linux's iptables tool and kernel modules allow for pretty complex and robust firewalls to be built.  
Here is a overview of what you can use to keep you systems secure:  
+
Here is an overview of what you can use to keep your system secure:  
 
==== Users and Groups ====
 
==== Users and Groups ====
The default Linux authentication system is quite simple. All users have a line in the /etc/passwd file and all groups have a line in the /etc/group file. You can use the tool under system->administration-users to add and remove groups or users. Also linux has 2 very usefull commands to create these:
+
The default Linux authentication system is quite simple. All users have a line in the /etc/passwd file and all groups have a line in the /etc/group file. You can use the tool under system->administration-users to add and remove groups or users. Also Linux has 2 very useful commands to create these:
 
* useradd ex: sudo useradd nic
 
* useradd ex: sudo useradd nic
 
* groupadd ex: sudo groupadd nic
 
* groupadd ex: sudo groupadd nic
(ps. you should look at the man pages for all the options you can setup. Usefull ones include -g and -G to setup the users initial group and all the other groups he is part off.)
+
(refresher:what runs inside the terminal is a shell) 
To remove users and groups use the following commands
+
(ps. you should look at the man pages for all the options you can setup. Useful ones include -g and -G to setup the users initial group and all of the other groups he is part of.)
 +
To remove users and groups use the following commands:
 
* userdel
 
* userdel
 
* groupdel
 
* groupdel
Linux also supports network authentication. The classical way was to use NIS which is sort of deprecated because it is not very secure (the information is sent over unenrypted). But since it is quite easy to setup, it is usually a nice way to go for home setups. Look up the how-to here Self:[[UbuntuHelp:SettingUpNISHowTo|SettingUpNISHowTo]].
+
Linux also supports network authentication. The classical way is to use NIS which is sort of deprecated because it is not very secure (the information is sent unencrypted). But since it is quite easy to setup, it is usually a nice way to go for home setups. Look up the how-to here: [[UbuntuHelp:SettingUpNISHowTo|SettingUpNISHowTo]].
If you need a more scalable and secure solution, take a look at LDAP. Ubuntu can run multiple Ubuntu servers such as Fedora Directory and OpenLDAP. A guide to setting up ubuntu to authenticate agains OpenLDAP take a look here: Self:[[UbuntuHelp:LDAPClientAuthentication|LDAPClientAuthentication]].
+
If you need a more scalable and secure solution, take a look at LDAP. Ubuntu can run multiple Ubuntu servers such as Fedora Directory and OpenLDAP. A guide to setting up Ubuntu to authenticate against OpenLDAP can be found here: [[UbuntuHelp:LDAPClientAuthentication|LDAPClientAuthentication]].
 
==== Firewalls ====
 
==== Firewalls ====
You can use the program called Self:Firestarter in the Universe repository to set up and use a simple but powerful personal firewall. (Check the "Manage Repositories" section of the Self:SynapticHowTo to enable the Universe repository) I personnally use Firestarter on all my work stations and I use also to create nice scripts for my servers.
+
You can use the program called [[UbuntuHelp:Firestarter|Firestarter]] in the Universe repository to set up and use a simple but powerful personal firewall. (Check the "Manage Repositories" section of the SynapticHowTo to enable the Universe repository) I personally use Firestarter on all of my work stations and I also use it to create nice scripts for my servers.
You might want to look at the Self:IptablesHowto to learn about the depth of Iptables firewalling.  
+
You might want to look at the IptablesHowto to learn about the depth of Iptables firewalling.  
 
(Under Construction)
 
(Under Construction)
 
== Ubuntu as a Server ==
 
== Ubuntu as a Server ==
Ubuntu is a nice desktop operating system but it is also an awesome server operating system. Ubuntu has a large number of server packages that can allow you to setup a wide variety of server types. Common things that a power user might like to setup are : Home file server, mail server, web server ...
+
Ubuntu is a nice desktop operating system but it is also an awesome server operating system. Ubuntu has a large number of server packages that will allow you to setup a wide variety of server types. Common things that a power user might like to setup are: Home file server, mail server, web server...
Of course there are many more cool things that you can do. Ubunt can easily become a VoIP PBX using Asterisk. For a comprehensive list of server packages follow this link: Self:Servers . Most of those packages have a wiki page that explains their setup and usage.  
+
Of course there are many more cool things that you can do. Ubuntu can easily become a [[UbuntuHelp:VoIP|VoIP]] PBX using Asterisk. For a comprehensive list of server packages follow this link: [[UbuntuHelp:Servers|Servers]]. Most of those packages have a wiki page that explains their setup and usage.  
 
== Power user applications ==
 
== Power user applications ==
 
Below is a list of applications and packages which power users may find useful:
 
Below is a list of applications and packages which power users may find useful:
第76行: 第82行:
 
* '''Pessulus''' - Security lockdown editor
 
* '''Pessulus''' - Security lockdown editor
 
* '''hal-device-manager''' - Overview of devices attached to the system
 
* '''hal-device-manager''' - Overview of devices attached to the system
* '''GParted''' - Graphical disk partition editor
+
* '''[[UbuntuHelp:GParted|GParted]]''' - Graphical disk partition editor
* '''gconf-editor''' - Editor for GNOME (GConf) settings, similar to Windows' regedit
+
* '''gconf-editor''' - Editor for GNOME (GConf) settings, similar to Windows' regedit (see [[UbuntuHelp:GConfEditor|GConfEditor]])
 
* '''bum''' - Boot-Up Manager, similar to Windows' msconfig
 
* '''bum''' - Boot-Up Manager, similar to Windows' msconfig
 
* '''deskbar-applet''' - Powerful multiple search-engine interface
 
* '''deskbar-applet''' - Powerful multiple search-engine interface
 
----
 
----
[[category:CategoryDocumentation]] [[category:CategoryCleanup]]
 
  
 
[[category:UbuntuHelp]]
 
[[category:UbuntuHelp]]

2010年5月19日 (三) 23:57的最新版本

<<Include(Tag/StyleCleanup)>> This document is intended to help power users from other operating systems understand Ubuntu, which offers some very attractive features for power users.

Are you a power user?

A power user is a person who is able to use a computer system in an advanced capacity. Power users generally have a good knowledge of the system that they use.

Features for power users

Ubuntu is usually targeted to home users with little to no computer knowledge. Most administrative tasks are nicely hidden by a GUI, which helps new users learn the Ubuntu operating system fast. For most users this is fine but some will want to use tools that allow much more control. Thankfully, under the nicely polished graphical interface lies the power of Unix and Linux. In this section I will try to describe some of the power tools available to users under Ubuntu. This document is targeted to users who are probably very experienced with other operating systems but are relatively new to Ubuntu, Linux and Unix in general. Hopefully this document can clear up some of the jargon us Linux/Unix geeks use all the time. (Please add suggestions at the end of this document. I want to know what you would like to learn)

The Bash Shell

The Shell, what is it?

Wikipedia defines the shell as follows: "A Unix shell, also called 'the command line', provides the traditional user interface for the Unix operating system. Users direct the operation of the computer by entering command input as text for a shell to execute. Within the Microsoft Windows suite of operating systems the analogous program is command.com, or cmd.exe for Windows NT-based systems. In Gnome, the shell is accessible by clicking on Application->Accessories->Terminal. I suggest dragging and dropping the terminal into the top bar for easy access. After a couple of times using it you will become addicted to it. (ED: For those you are currently scared or disgusted by the fact that they might have to touch a command prompt at some point: The Linux shell is not MS-DOS. It is better, more powerful, and tons of fun. Most tasks on Linux can now be done in the GUI but the shell will give you much more control. It is often faster to type a command than to use a graphical user interface.) For more info check out BasicCommands

Bash Scripting

One interesting feature of the shell is that it is highly scriptable. Shell scripting is similar to batch scripting on DOS. The shell's language which is a mix of commands and built-in functions is extremely useful in system administration tasks such as automatisation of repetitive tasks. But the Bash shell language can be used to program very complex programs (I had a friend who solved the 8 queen problem in bash. Awesome!). You can learn more about bash scripting from various sources:

  1. BashScripting
  2. http://www.tldp.org/LDP/abs/html/index.html

Of course, programming languages like perl, python and ruby might be more convenient for large projects but Bash scripting is available and quite speedy for small scripts. All services or daemons on Ubuntu have a startup script written in bash that can be found in /etc/init.d/ .

Moving on

So the shell is great but what else, besides listing files, can it do? Much much more. Click on the following sections for more commands and techniques to use :

  1. PowerUsersTextEditors
  2. PowerUsersAdvancedEditing
  3. PowerUsersInternetCommands
  4. PowerUsersProgramming

...

For Windows Power Users

How to share files

Ubuntu can easily share files between both Windows and other Unix systems such as OS X and Solaris. To share folders between Windows and Linux clients, take a look at Samba. A guide specific to Ubuntu can be found here: SettingUpSamba While sharing folders between Unix machines can be done easily with samba, it is more common to use NFS. Check out this guide to set it up: SettingUpNFSHowTo.

DOS vs Linux Command Prompt(shell in Unix speak)

Some of you might have some experience with DOS and still may remember all those dir, chdir... commands. Without going into the details, the command prompt in Linux is more robust than DOS. Here is a small conversion sheet to help you out: http://www.faqs.org/docs/linux_intro/app2.html

SSH

What about computers that are not on your local network? SSH has some nifty tools that you can use to securely (meaning encrypted) transfer files. Check out the SSH how to here: SSHHowto. Since SSH is so important here is a quick start up guide.

  1. Install the openssh-server package.
  2. From Windows you can use PuTTY(http://www.chiark.greenend.org.uk/~sgtatham/putty/) to issue commands remotely and transfer files.
  3. On another Linux computer, Use the 'Connect to Server' tool under the Places menu to connect to an SSH server. Select SSH from the drop down menu. Fill out the server box with the IP or DNS name of the server. Also in the folders section put /home/YourUsername to go to your home folder on the particular machine.
  4. Alternatively, use the scp command (look up the manual page by using man scp in a terminal) to transfer files.

Understanding the operating System

You may hear a lot of folks saying things like "Linux is an operating system", which is incorrect. Linux is only the kernel part of the operating system, which is the equivalent of the NT kernel on WindowsXP or Darwin on OS X. So what does the kernel do? Read the following guide: LinuxKernel (under construction) for a better understanding. So what then can you consider the operating system? Well quite frankly, it is not clearly defined in Computer Science, but for our discussion consider Ubuntu to be the Operating System. So you already got familiar with the Shell now lets look at other topics.

The Filesystem

There are two different (but related) things that are considered filesystems. One is the way your files are stored on disk at the lowest level. think of NTFS and FAT32 on Windows. There are multiple Filesystems that linux uses. The most common is EXT3. Which is a safe choice if you ever decided to pick one of them. Another popular choice is ReiserFS. While ReiserFS is fast with super small files (Like 4kb or something) it's not much better than EXT3 in my personal opinion. Take a look at LinuxFileSystemExplained for more info. Next lets talk about the Linux Filesystem structure. First, everything starts at / (called root (think of a inverted tree)). Under root (/ from now on) you will find everything. Here is a list of the most important stuff you will need:

  1. /home : Under there each "real" system users have their personal folder containing all of their files and personal configurations.
  2. /etc : This folder is for system configuration files. Most core system applications have configuration files here. You can use your favorite text editor to modify them (much better than delving into the registry on Windows in my opinion)
  3. /usr : Contains most of the application files. Think of Program Files on Windows

For an extensive list check this wiki page : LinuxFileSystemTreeOverview

Processes

All application and system utilities are called processes when they are started (Think services on Windows and Applications in the task manager). There are many processes and they are organised in a tree-like fashion. Think of it this way: You start a terminal and type the ls command. What happens is that the shell will start a new process which in turn executes ls. This processes is the child of the shell. All processes are childs or "init" (the all-master process). Type pstree in a terminal to see this tree structure. All processes have a process id number which you can find by typing the ps command (ps aux will list all process on the system using a pipe grep to find a specific process by its name or owner.) To stop a process that is not responding you can use the kill command (kill "process id goes here")

Security

Linux is a pretty robust operating system but it is not completely secure. No network-capable Operating System is secure. But with this in mind, Linux has great security features that you should know about. For example, Linux's iptables tool and kernel modules allow for pretty complex and robust firewalls to be built. Here is an overview of what you can use to keep your system secure:

Users and Groups

The default Linux authentication system is quite simple. All users have a line in the /etc/passwd file and all groups have a line in the /etc/group file. You can use the tool under system->administration-users to add and remove groups or users. Also Linux has 2 very useful commands to create these:

  • useradd ex: sudo useradd nic
  • groupadd ex: sudo groupadd nic

(refresher:what runs inside the terminal is a shell) (ps. you should look at the man pages for all the options you can setup. Useful ones include -g and -G to setup the users initial group and all of the other groups he is part of.) To remove users and groups use the following commands:

  • userdel
  • groupdel

Linux also supports network authentication. The classical way is to use NIS which is sort of deprecated because it is not very secure (the information is sent unencrypted). But since it is quite easy to setup, it is usually a nice way to go for home setups. Look up the how-to here: SettingUpNISHowTo. If you need a more scalable and secure solution, take a look at LDAP. Ubuntu can run multiple Ubuntu servers such as Fedora Directory and OpenLDAP. A guide to setting up Ubuntu to authenticate against OpenLDAP can be found here: LDAPClientAuthentication.

Firewalls

You can use the program called Firestarter in the Universe repository to set up and use a simple but powerful personal firewall. (Check the "Manage Repositories" section of the SynapticHowTo to enable the Universe repository) I personally use Firestarter on all of my work stations and I also use it to create nice scripts for my servers. You might want to look at the IptablesHowto to learn about the depth of Iptables firewalling. (Under Construction)

Ubuntu as a Server

Ubuntu is a nice desktop operating system but it is also an awesome server operating system. Ubuntu has a large number of server packages that will allow you to setup a wide variety of server types. Common things that a power user might like to setup are: Home file server, mail server, web server... Of course there are many more cool things that you can do. Ubuntu can easily become a VoIP PBX using Asterisk. For a comprehensive list of server packages follow this link: Servers. Most of those packages have a wiki page that explains their setup and usage.

Power user applications

Below is a list of applications and packages which power users may find useful:

  • Brightside - Adds reactive corners to your desktop
  • Sabayon - Graphical user account template editor
  • Pessulus - Security lockdown editor
  • hal-device-manager - Overview of devices attached to the system
  • GParted - Graphical disk partition editor
  • gconf-editor - Editor for GNOME (GConf) settings, similar to Windows' regedit (see GConfEditor)
  • bum - Boot-Up Manager, similar to Windows' msconfig
  • deskbar-applet - Powerful multiple search-engine interface