My company is going to provide a 60 hours' trainning to 14 of its employees including me where I am working as a training coordinator of the whole program. It's on Windows 2000 Server (21 hours) and Linux (39 hours). I have preapred a list of what we want to learn in windows and now preparing a list of what we want to learn on Linux. Here I seek advices from you. My Requirements We develop software using Java, Visual Basic, Jakarta/Open Source Projects, XML and related technologies, Oracle, SQL Server, InterBase.We have Windows 2000 server/Professional/XP installed in our network along with Red Hat Linux 7.2. Our focus is to reduce network related problems we face during dvelopment life cycle of a project. I have outlined a rough syllebus for our 39 hour linux training (Red Hat is my company's choice here). Please give your votes according to the points so that this thread can be considered as a useful guidelines to other trying to learn LINUX. (1) Installation (2) Managing User Accounts and Accessing Linux Resources as a client (3) Protocols, TCP/IP Address Properties and Sub netting (4) FTP Server configuration (5) Samba Installation and configuration (6) Telnet & NFS (7) File and Directory Permissions (8) DNS (9) Mail Server Configuration (10) Apache Web Server Configuration (11) Web Mail Configuration (12) Squid Proxy Server Configuration (13) DHCP Server Configuration (14) IP Firewall & IP Masquerading (15) Configuring a virtual ISP
Some points of the above list may be removed due to shortage of hours (only 39 ) and a few may be added also. So I want to which of them you feel more important for programmers developing software in and for linux platforms as well as knowing a little linux administration. Your advice will be proved valuable for me and my colleagues.
I notice that you don't have anything about the tools which Linux provides to help day-to-day admin and working with files and processes:
The 'vi' editor, almost universally available, and always wise to learn its basic basic use. Vital as a tool when you need to do a small edit to a config file in a hurry.
Finding your way around the file system and shell commands using "find", "locate", "slocate", "man" etc.
shell scripting and the basic system commands (ls, cat, wc, cd, rm, etc. etc.), plus use of "sed", "awk" and maybe "perl" for simple content manipulation.
configuring shells and environment variables (questions about these crop up every few days here!)
process scheduling using "at","cron","&","nohup" etc. and monitoring using "ps","top" etc.
installing and managing software packages using "rpm", "tar" and "gzip".
basic file system concepts including mount points, blocks and hard/soft links, and monitoring a filesystem using "ls -l", "df" and "du"
what happens when a Linux system boots up and shuts down, including LILO, kernel loading, runlevels and the rc?.d directories
Even if you are only using your Linux boxes as purely servers, you'll still need to telnet or ssh in and tweak some files, permissions or environment variables from time to time, or maybe restart a hung server process or install some upgraded software. To do that with any confidence you'll need to have a reasonable grasp of the above. Also I'd recomment buying each course attendee a copy of "Linux in a Nutshell" from O'Reilly. It really is useful as a handy reference and reminder.