个人工具

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

来自Ubuntu中文

跳转至: 导航, 搜索
第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.
 
This document is intended to help power users from other operating systems to 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 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)
 
 
=== 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 droping 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 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.)
 
 
 
For more info check out Self:BasicCommands
 
For more info check out Self: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 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 :
* Self:BashScripting
+
# Self:BashScripting
* http://www.tldp.org/LDP/abs/html/index.html
+
# http://www.tldp.org/LDP/abs/html/index.html
 
+
 
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, 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/ .
 
 
 
=== 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 than list 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:PowerUsersTextEditors
** Self:PowerUsersTextEditors
+
# Self:PowerUsersAdvancedEditing
** Self:PowerUsersAdvancedEditing
+
# Self:PowerUsersInternetCommands
** Self:PowerUsersInternetCommands
+
# Self:PowerUsersProgramming
** Self:PowerUsersProgramming
+
 
...
 
...
 
 
=== 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: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: Self: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:SettingUpNFSHowTo.  
 
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: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 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:
 
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: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: Self:SSHHowto. Since SSH is so important here is a quick start up guide.
 
+
# 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
** Install the openssh-server package.
+
# 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.
** From Windows you can use PuTTY(http://www.chiark.greenend.org.uk/~sgtatham/putty/) to issue commands remotely and transfer files
+
# Alternatively, use the scp command (look up the manual page by using man scp in a terminal) to 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.
+
** Alternatively, use the scp command (look up the manual page by using man scp in a terminal) to transfer files.
+
 
+
 
=== 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 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.
 
 
==== 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 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.  
 
 
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 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:
 
+
# /home : Under there each "real" system users has there personal folder containing all there files and personal configurations.
** /home : Under there each "real" system users has there personal folder containing all there 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)
** /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)
+
# /usr : Contains most of the application files. Think or Program Files on windows
** /usr : Contains most of the application files. Think or Program Files on windows
+
 
+
 
For an extensive list check this wiki page : Self:LinuxFileSystemTreeOverview
 
For an extensive list check this wiki page : Self: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  Applictions 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(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.  
 
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 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")
 
 
=== 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 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.  
 
 
Here is a overview of what you can use to keep you systems secure:  
 
Here is a overview of what you can use to keep you systems 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 usefull 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.)
 
(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.)
 
 
To remove users and groups use the following commands
 
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:SettingUpNISHowTo.
 
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: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: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 agains OpenLDAP take a look here: Self: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 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 might want to look at the Self:IptablesHowto to learn about the depth of Iptables firewalling.  
 
You might want to look at the Self: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 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 ...
 
 
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. 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.  
 
 
== 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:
 
 
* '''Brightside''' - Adds reactive corners to your desktop
 
* '''Brightside''' - Adds reactive corners to your desktop
 
* '''Sabayon''' - Graphical user account template editor
 
* '''Sabayon''' - Graphical user account template editor
第132行: 第80行:
 
* '''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:CategoryDocumentation]] [[category:CategoryCleanup]]
  
 
[[category:UbuntuHelp]]
 
[[category:UbuntuHelp]]

2007年11月30日 (五) 21:07的版本

This document is intended to help power users from other operating systems to 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 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)

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 droping 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.) For more info check out Self: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 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 :

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

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/ .

Moving on

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

  1. Self:PowerUsersTextEditors
  2. Self:PowerUsersAdvancedEditing
  3. Self:PowerUsersInternetCommands
  4. Self: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: Self: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:SettingUpNFSHowTo.

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: 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: Self: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 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.
  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 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.

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. 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:

  1. /home : Under there each "real" system users has there personal folder containing all there files and personal configurations.
  2. /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)
  3. /usr : Contains most of the application files. Think or Program Files on windows

For an extensive list check this wiki page : Self:LinuxFileSystemTreeOverview

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: 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. 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")

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. Here is a overview of what you can use to keep you systems 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 usefull commands to create these:

  • useradd ex: sudo useradd 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.) To remove users and groups use the following commands

  • userdel
  • 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: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:LDAPClientAuthentication.

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 might want to look at the Self: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 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 ... 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.

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
  • bum - Boot-Up Manager, similar to Windows' msconfig
  • deskbar-applet - Powerful multiple search-engine interface