My personal and original primary motivation to use Linux was internet security factor and, despite the fact that Linux and Windows are different operation systems, I see them as unified operational environment since virtually any activity, task, feature has its counterpart in another system. These Linux topics (Fedora - Red Hat 9 features) have purpose to see Linux and Windows features side-by-side and intended for those who are flexible with Windows, but who are new to Linux, or any Unix-like operation system. The article(s) is a collection of pieces that might be useful as reference since, unlike Windows, Linux is more demanding to configuration details. If you find this guide useful please tell 3 more people about it!
|Use CD-ROM (DVD-ROM) or floppy.||Under Windows no extra work is required after these devices were physically attached to a machine, and were configured (if required) with plug-and-play.||If you are new to Linux, you tend to expect that by calling Linux file manager, e.g. Konqueror (konqueror), and pointing to CD-ROM in its Location drop-down
control (/mnt/cdrom), you would see CD or DVD content much like with Windows, where you can use Windows Explorer (explorer), point to CD-ROM in its Address bar to accomplish the same simple thing! Not with Linux typically.
From the user perspective,
by default, Linux works with devices like CD-ROM (DVD-ROM), floppy drive in a slightly different way. By default you need to mount a device manually before using it, and unmount a device before you can get the media like DVD disk
back from the device.
When getting CD back from the CD-ROM, you may wander: "Why do I press CD-ROM's eject button and it does not really open CD-ROM?" As said, the reason is that you need to unmount a device before getting the media back. You can use KDiskFree UI and pickup Unmount Device, and then eject CD as you would do under Windows.
Notice that you can work with devices from console program like konsole (instead of UI-enabled kdf). For example (the commands are valid for floppy and other removable media also):
On the first sight, Linux steps for working with CD-ROM might seem cumbersome and even bizarre. However, the system is more protected (I'm not sure this was an original design idea). It bars unqualified users from playing with the system and loading into the system arbitrary and virus-carrying media. Nevertheless, you can always automate mounting/unmounting devices so that Linux would be working with them as Windows does.
|Install program||In the most cases double click on setup program is all you need
to install a program under Windows.
Comparing to Windows, the installation of programs under Linux requires frequently more steps, specific knowledge about a program, and potentially more troublesome. The requirements that are used by Linux developers to make release for a program are still less rigid then under Windows. Actually Linux users are still forced to know specifics of installing of broad set of Linux programs. This is for sure one of the major explanations why Linux is still not so popular and widespread as Windows.
There are two types of Linux installation packages: binary (*.rpm) and source (mostly *.tar.bz2 and *.tar.gz). The information about RPM packages (RPM stands for Red Hat Package Manager) is stored in RPM database making it possible to check availability of packages, and obtain detailed information about them. The package manager makes it easy not only to install packages, but also update, and delete them. Importantly, the same operations with source packages are limited.
The use of binary packages is frequently preferrable option (most of us don't need the source for every package). It is typical to use konsole to install binary packages. While installing a package you can see debugging information about possible errors in its window:
# rpm -i <packagename>.rpm
Notice that it is handy to type # rpm -i plus space and then drag-and-drop RPM package into console area: the konsole will show quoted package name plus its path saving your typing efforts.
Alternatively, when installing stantard Linux program, you can use Add/Remove Applications package manager redhat-config-packages Fedora 7, 1 (similar to Add/Remove Programs in Windows). This UI-enabled program enables you to browse information about available packages (names, groups, short descriptions), and helpful if you are new to Linux.
For some programs and specific Linux distributions (and versions), RPM packages are hard to find. This is frequently the case for third-party programs that are not included into the standard Linux distribution. In this case you should download source package (typically *.tar.bz2 or .tar.gz) and compile from the source. Although there are variations of install procedure, you'd typically:
The ./configure, make, make install sequence is the Linux idiom (worth memorizing) for installing packages from source. The right sequence can differ, for example when installing Xine (DVD player), you need to run ./configure, and make install (without intermediate make). Anyway, you should consult always package installation instrustions (frequently INSTALL file) to know what commands to use.
As said before, you have less flexibility when you need to check information about installed source packages, update, or delete them than with binary (RPM) packages. There are several tips:
In most cases, it is sufficient to run:
# rpm -e <packagename>
If the package has dependencies, you can use --nodeps option to forcefully remove the package regardless it has dependencies or not:
# rpm -e --nodeps <packagename>
You'd like to remove Mozilla internet browser (you're upgrading to FireFox) and run # rpm -e mozilla. In the result, you'd see the message that mozilla package is requied by mozilla-psm. To force (bypass dependencies check) removal of mozilla package, run:
# rpm -e mozilla
Note: you can use Add/Remove Applications program (redhat-config-packages Fedora 7, 1) for packages included into Linux disribution (third-party packages are not get listed by this program). The downside of using redhat-config-packages is that it is simply not ergonomic (it takes about 1/2 minute on my machine for this program to read RPM database and be ready for use, still you need to navigate to proper software section, and find out the program to remove from this section).
|Zip/Unzip a file||Use third-party WinZip program.
For a longtime Windows user new to Linux the work with archive files can be a source of confusion. Indeed, unlike WinZip's ZIP archives in Windows, Linux archives have typically 2 extentions. Why? Before going into little details, the answer is that WinZip hides 2 operations during zipping/unzipping files, making it look as one operation.
In Linux, the standard way to package files into archive consists of 2 steps:
The UI-enabled Ark archiving tool (ark) or File Roller (file-roller) enables you to work with ZIP archives including those created with WinZip in Windows. The disadvantage of ark is that it does not allow you to set a password for ZIP file. You can use file-roller for this purpose.
Note: The Ark and File Roller are frontends to command-line utilities: zip/unzip, tar, gzip, bzip2, compress etc. What utilities are used factually depends on archive type you choose when creating an archive, for example: *.zip (archive and compress with zip), *.tar.gz (archive with tar, compresse with gzip), *.tar.bz2 (archive with tar, compress with bzip2), *tar.Z (archive with tar, compress with compress).
Albeit you can use ark and file-roller programs to uncompress/unarchive files like *.tar.gz, *tar.bzip2 and unzip *.zip files (unzip uses uncomressing and unarchieving internally), it it typical (and more convenient) in Linux to make these operations in console program.
In practice, when unzipping a file using console, you can drag/drop a file into its area. It is handy because you don't need to provide exact path for yourself if console is not opened in the directory where the archive is located. Notice that Linux automatically adds single quotes to path.
|Create a desktop shorcut for an application, file, or a folder.||Right-click on a file/folder, choose Send To/Desktop (create shortcut). In Windows, unlike Linux, these operations are identical for creating desktop shortcuts for application, file, or folder. Moreover, right-click "Send To" option is available for items of Windows Explorer, Start Menu, Save As, and Open dialogs etc. It makes this operation very convenient under Windows.||Under Linux, the term Link is used as a counterpart of Windows shortcut. If you are using KDE, right-click anywhere in the desktiop area and select
Create New/Link to Application ... (if you are creating a shortcut to application file) or Link to Location (URL) ... (if you creating a shortcut to a non-executable file).|
For an application link make the following steps: in the General tab, type the name of application that would appear on the desktop, in the Execute tab type the full path to the application (including file name).
The actions for creating a link for a file are the same, except there will be URL tab (instead of Execute tab), where you need to provide full path to the file (including file name).
Making shorcuts under Linux takes a little bit more steps than under Windows. However there are additional downsides of Linux implementation of this frequently used operation: first, you cannot right-click on a menu item in Linux analogue of Windows start menu to make a shortcut (such right-click cause Linux's Start menu to disappear), and, secondly, popular file manager such as Konqueror does not provide right-click menu option to make a link to a file/application. Instead full copy could ba placed on the desktop with "Copy To".
|Change own password||Press Ctrl+Alt+Del, and then Change Password ...||In KMenu, go to Preferences and select Password. You can also use userpasswd from Run Command ... dialog.|
Note: you can quickly invoke Run Command ... dialog by using Alt+F1 shortcut.
|Place command prompt window on task bar or panel||Right-click on the task bar (or custom toolbar) and choose Toolbars/Address. In Windows, you can run from address window executables, web links, file/folder addresses. In fact, address bar can be used in many cases instead of Start/Run dialog or console (cmd) command prompt. This feature of all-the-time available command prompt on task bar is frequently unnoticed even by seasoned Windows practitioners.|
|Add user using console||net user <username> <password> /add||There are 2 identical commands: useradd and adduser. The use of these commands provides that you are never mistaken which word ("add" or "user") to type first.|
|Compare two files||fc, comp, windiff (part of Visual Studio)||kompare, diff|
|See the list of running processes||ps -aux | more |
|Kill kill responding application||Press Ctrl+Esc to invoke KDE System Guard (or # ksysguard) and use its Kill feature.|
|Show the basic list of available command-line commands||help||You might expect that Linux's counterpart of Windows help - man command shows also the list of available commands,
but it does not. You can obtain it the other way. Since basic commands are included in the RPM package coreutils (coreutils-4.5.3-19 on my machine), you can run standard RPM command to figure out the content of the package:|
# rpm -ql coreutils (# rpm -ql coreutils-4.5.3-19)
You can also browse /bin directory where executables for these commands are installed (and some other too):
# cd /bin
# dir (or #ls -l)
|Know file permissions||# ls -l <filename> |
or for hidden file:
# ls -la <filename>
Alternatively, right-click to invoke file Properties and see Permissions tab. Typically, newly created files have 644 permissions that is RW for owner, R for group, and R for others according to Linux 4-2-1 convention where R is 4, W is 2, X is 1.
|Know free disk space||# df -h|
|Know memory (RAM) usage||# free -m|
|Know downloaded traffic during internet session or upon session termination||Right-click Windows system tray's network icon and see connection status.|
Linux provides UI-enabled kpppload program that shows downloaded traffic during internet session (bytes received/trasmitted, and corresponding speeds). The downside of this program is that you need to have it constantly on your desktop, which clutters environment. There is no version of this program similar to Windows' system tray program appearing as network icon.
One walkaround is to use command that reads System Log's traffic data and shows the results in the konsole:
# ifconfig ppp0 | grep "RX bytes"
In practice, you bookmark the command into konsole bookmarks, and invoke the bookmark when necessary from konsole's menu. Notice that you should use ppp0 or the name of your network interface, which you can find out with ifconfig.
Essentially the same method, less practical though, is to see manually the System Log file (with redhat-logviewer or directly /var/log/messages) when session is terminated. You'd see the lines like:
May 11 21:16:43 armadillo pppd: Connect time 8.9 minutes.
|Listen music CD||Windows Media Player (wmplayer [XP only]), CD Player (cdplayer [2K only])||XMMS (xmms), KsCD (kscd), Grip (grip)|
|Record from microphone||Sound Recorder (sndrec32)||KRec (krec), Gnome Sound Recorder (gnome-sound-recorder)|
|Copy (and encode) CD Tracks||Windows Media Player (wmplayer), Roxio Media Explorer (rxmediax)||KAudioCreator (kaudiocreator)|
|Copy CD tracks with command-line utility||cdda2wav, cdparanoia|
|Encode audio to another sound format with command-line utility||lame, sox|
|Watch DVD movie||Windows Media Player (wmplayer [XP only], mplayer2)||Xine (xine), MPlayer (mplayer, gmplayer)||Window XP's Windows Media Player and Linux's Xine and MPlayer can play both video and sound files.
Xine and MPlayer can play DVD video or VOB, AVI, ASF, WMV video files (and can also be used, although this is not typical, for playing CD audio or MP3, WAV audio files).
Xine typical use:
MPlayer typical use (you can use UI-enabled gmplayer instead of mplayer):
In Linux, DVD video players are not included into Linux distribution (Red Hat 9), but available for free download. Xine player, benificially, provides navigation for DVD menu whereas MPlayer does not (due to "due to serious architectural limitations"). On the contrary, the benefit of using MPlayer is that it takes less resources, is shipped with DVD tracks copy utility (mencoder), and, in my experience, is more stable, and easier to install Fedora 7, 1.
Xine's components are xine-lib-1.1.7, xine-ui-0.99.5 (default frontend). The xine-ui's installation probably require newer (than shipped with Red Hat 9) libpng-1.2.19 library. You can use # xine-check and # xine --list-plugins (shows the list of installed plugins) commands for troubleshooting purposes.
MPlayer's ingredients are its core files, Win32 codecs, which are used for Xine also, and one or more skins (if you compile MPlayer without UI support, the skins are not required). All requied files can be found at one page. When compiling core files (for example in /usr/local/MPlayer-1.0rc1 directory) use ./configure --enable-gui to enable UI for MPlayer (unless you prefer to call MPlayer with # mplayer command, and control it with keyboard only). With --enable-gui switch used during installation, you run MPlayer with # gmplayer and operate it visually with MPlayer control (the # mplayer command is still available). Notice that sample on the picture shows the "Blue" skin. You can install the skin of your choice from MPlayer site by copying the skin's contents into /root/.mplayer/skins (or ~/.mplayer/skins generally) folder and renaming the folder name into "default". In my experience, I updated video driver name (vo_driver = "x11") in MPlayer's configuration file (~/.mplayer/gui.conf) from the list of available video drivers: # mplayer -vo help (if one does not work, try another from the list).
Finally, before watching DVD with Xine or MPlayer, you likely need to tell the player about DVD device location by running the command: # ln -s /dev/cdrom /dev/dvd. You can know more about Xine/MPlayer options at ther help (man) pages: man:xine, man:mplayer.
|Extract sound tracks from DVD movie||MPlayer (mplayer)||It might be useful, when you're learning a new language for example, to make sound tracks of your
favorite movie available in separate audio files. Since DVD are composed of VOB files,
here is the command to extract audio track from its VOB to AC3 (Dolby Digital) sound file:
# mplayer -dumpfile <filedestination>.ac3 -dumpaudio <filename>.vob
Then, you can play sound track:
# mplayer <file>.ac3
Or, if you want to convert to MP3 using only standard tools extract first to WAV:
# mplayer -vo null -ao pcm:file=<filedestination>.wav dvd://1
Then convert to MP3:
# lame <filedestination>.wav <filedestination>.mp3
|Listen online internet radio||MPlayer (mplayer)||Provided that you have a valid URL pointing to audio stream from radio station,
you can listen internet radio just like that: |
# mplayer <StreamURL>
"Where do I find the list of internet radio stations?" One pick is Mike's list, which enlists (>5000) radio stations from Australia, Canada, Europe, New Zealand, and United States. On the contrary, the radio-locator.com enables you to find internet radio station using city, ZIP code, country, state, type as search parameters. The latter choice, however, does not provide a direct URL to stream.
MPlayer can use Windows Media, RealMedia, QuickTime, MP3 ("ShoutCast") audio stream types, and streams suffixed with ASX, PLS, M3U, which are called "playlists". You should provide -playlist switch to listen from the latter streams. In fact, these files are plain text files (for example ASX) and you can see the actual audio stream URL by taking a look at the file itself. If you know the actual URL, the -playlist switch can be dropped.
|Watch online internet TV|
|Record music, video on CD||gtoaster||Windows XP integrates Roxio drag-and-drop CD recording software. With Windows 2K Roxio Easy CD Creator can be installed additionally.|
|Record music, video on DVD||Windows XP does not include DVD recording software. You can you third-party Roxio Easy 6.0 (or later) CD/DVD creator[?].|
|Control Sound Levels||Volume Control (sndvol32)||Sound Mixer (kmix), Volume Control (gnome-volume-control)|
|Where do you find in Linux the directories (and files) that correspond to ABC's of system directories (and files) in Windows? For example, what corresponds in Linux to Windows' system directory (C:\WINDOWS\system32)? What about a match in Linux for Windows' program directory (C:\Program Files)? Frequently, the answers to such questions make sense, and the following table provides such mappings when possible. Notably, the Linux directory structure is more standardized and fixed, and Linux requires about a dozen directories (speaking about a root level) to operate properly: /boot, /bin, /sbin, /lib, /media, /mnt, /root, /home, /usr, /var, /etc, /proc, /opt, /tmp, /srv, /dev. More experienced Linux users might be interested in File System Hierarchy standard general for all Linux/UNIX systems (I discuss some FSH details and its rationale here).|
|System (or Boot) Drive||%systemdrive% (usually C:)||/boot||/boot/grub contains grub.conf file (if GRUB used as boot loader), counterpart of Windows boot.ini located in %systemdrive%.|
|Administrator's root folder||C:\Documents and Settings\Administrator||/root|
|User's root folder||C:\Documents and Settings\<username>||/home/<username>||In Windows, the location of the current user home folder is indicated by system variable value: %userprofile%.|
|Program files folder||%programfiles%|
Usually C:\Program Files
|No Windows direct counterpart||/mnt||Used as entry point for accessing CD/DVD and floppy drives, Linux/Windows
shared drives. For example:|
|Main system folder for executables||%windir%\system32
Usually C:\WINNT\system32 (Windows 2K) or C:\WINDOWS\system32 (Windows XP)
|In Windows, %windir%\system32 directory is a place for many different system files (about 2000 on Windows 2K). It contains system executables (UI programs and
services, mostly EXE, but there are COM, SCR and others), system and resource libraries (DLL, SYS, DRV, MSC, CPL, OCX; NLS, FOT etc), and many other system files. Linux, on the other hand keeps
system programs, system services in a separate directories.
Notice that the directories for commonly used commands should be enumerated in PATH variable.
|System and other libraries||%systemroot%\system32||/lib, /usr/lib, /usr/local/lib|
|Web server root||%systemdrive%\Inetpub\wwwroot||/var/www||Linux has separate locations for executables and web documents such as HTM files. They are both subdirectories of /var/www.|
|Temporary files folder||C:\TEMP||/tmp (or /temp)||The directory for temporary files.|
|Folder for system services (daemons)||C:\WINNT\System32||/sbin, /usr/sbin||Unlike Linux, which places ordinary executables and services to different locations, Windows services are located in the same place as other executables.|
|System configuration data||/etc||/etc is a special Linux folder for multiple configuration files. Windows does not have a direct counterpart. Several network configuration files typical for /ect folder in Linux, Windows keeps in %systemroot%\system32\drivers\etc. These files are hosts, services, networks, and protocol.|
|System logs||%winroot%\system32\config||/var||The /var folder in Linux is reserved for storing not only system log files, but also
for email, spooling and other data that are variable, which is indicated in folder's
name itself. The variable files can be thought as frequently modified,
albeit by definition these files "are not static".
|No windows direct counterpart||/proc||The /proc directory is specific for Linux (not UNIX) systems. It is a repository for files representing the current state of the system (kernel). With Linux it is called "virtual file system". To see the state of a device use cat. For example, # cat /proc/cpuinfo shows the information about processor. Notice that virtual files are not executables, and you should not run cpuinfo in Konsole directly.|
|Application data||C:\Documents and Settings\<username>\Application Data||/opt||In Linux, /opt is a directory where optional files and programs are stored. This directory is used mainly by third-party developers for easy installation and uninstallation of their software packages.|
|No windows direct counterpart||/dev||The files in /dev directory represent devices connected to the system such as DVD/CD-ROM, printer etc. They are called "special files" (or "device special files") and serve as communication channels with these devices. The special files are maintained by the system and do not require user intervention.|
|Show Start menu||Windows Key||Alt+F1|
With Linux you can assign Windows-style shortcuts for the same actions with kmenuedit so that you can use Windows Key + E, F (and R if you wish) to invoke Linux's file manager - konqueror and search utility - kfind. You cannot, however, assign Windows Key to invoke Linux's start menu since kmenuedit does not handle one-key shortcuts.
In contrast to Linux, Windows does not provide us with shortcuts management utility.
|Invoke Run ... dialog box||Windows Key+R||Alt+F2|
|Launch file manager||Windows Key+E||None|
|Launch file manager in the search mode||Windows Key+F||None|
|Switch between running aplications||Alt+Tab||Alt+Tab|
|Switch desktop||Multiple desktops not implemented||Ctrl+Tab||Albeit Windows has only one desktop, you can use Virtual Desktop Manager (Microsoft PowerToys collection) to have several desktops like with Linux. By default, you switch desktops by pressing Windows Key+1..4. To have Linux-style shortcuts, assign them with VDM's configuration UI. Different desktops provide fast switching, and this is useful, in particular, during presentation.|
|Switch to specific desktop||Ctrl+F1..F3..|
|Show window list||None||Alt+F5||With Linux, by default, you can use mouse's middle button to invoke window list menu. In fact, this menu is window and desktop list since in the low part you'd find the list of available desktops.|
|Switch language||Shift+Alt (typically)||Ctrl+Alt+K|
|Show the list of running processes||Ctrl+Shift+Esc||Ctrl+Esc||With Windows, Ctrl+Alt+Del is used also since the list of running process is a part of Task Manager. With Linux, in contrast, Ctrl+Alt+Del invokes session logout dialog only. Unlike Linux, Ctrl+Esc in Windows shows up Start menu.|
|Delete file/folder permanently (without placing into the Recycle Bin)||Shift+Del|
|Get screenshort of a window||Alt+PrtScn||Alt+PrtScn|
|Get desktop screenshort||PrtScn||Ctrl+PrtScn|
|Shut Down Computer||Ctrl+Alt+Del||Ctrl+Shift+Alt+Delete, Ctrl+Alt+Delete|
The most keyboards have 2 delete keys: one is located close to Home key (under Insert key or under Home key on the Microsoft's keyboard), and the other in the Numeric Pad area. In contrast to desktops, notebooks have only one Delete key (to save space!).
With Linux use should use Delete key that is close to Home key, not Del key from the Numeric Pad. The former command (with Shift) does not pop up logout confimation dialog, and the latter use it.
|The commands enlisted in this section are basic commands for managing the system (Windows or Linux) when network tasks are out of scope. In Windows these commands are inherited from DOS. To see more commands, type help in Windows console program cmd. The Linux's analogs are basically located at /bin directory (konsole's own commands obtained with own help are frequently different in meaning except echo, declare, a few others, and scripting commands, which are not listed in this section). Most Windows users rarely (if ever) use these commands, except emergencies (like Safe Mode use). With Linux, however, the use of commands from the list is typical, for example, when installing programs. Notice that original DOS has more commands, for example mem, which is not shown in the help's list albeit this command is available in Windows.|
|Shows ("lists") information about files and directories. The second spelling is used to get detailed information. Linux's ls and dir are equivalent commands,
except the ls makes colored output (by default: blue for directories, pink for images, cyan for link, see /etc/DIR_COLORS for more), and dir - colorless.
Note: When getting used to Linux commands it might be helpful to notice that you can use the "Windows' dir" to see the directory contents in Linux. In fact, ls is an alias (ls --color=tty) to itself, and dir is merely another name to original ls.
|2||attrib||chmod, chown, chgrp||
The attrib enables you to see or set 4 attributes for files or folders: read-only, archive, hidden, and system. With Linux chmod you get/set read or write permissions for owner, group, and the others.
In practice, it is more convenient (both Windows and Linux) to get/set these permissions using properties dialog, which you invoke from right-click menu of a file or folder.
With chown, chgrp you can change file (or folder) owner and group.
Note: Windows and Linux file security model are substantially different, where the former is more intuitive yet hides many details in the backgroud, and the latter - more clearcut on abstract level, but a bit harder to get used to practically. In fact, Windows' file permissions are 32-bit fields, and attrib enable you to see or set only 4 of them, which are most users work with.
|3||cd or chdir||cd|
|4||echo||echo||Outputs text into console window.|
|5||help||man, info||Windows's help shows the list of available console commands, which in their meaning are most close to commands located in Linux /bin directory (# ls -l /bin). You can know more about each Linux command with # man <commandname> or # info <commandname> run in konsole. However, it is more handy to see the help pages in konqueror by typing in location bar: man:<commandname> or info:<commandname>.|
|6||No direct counterpart||mount||Mounts external device (DVD/CD-ROM, flash, file system, file share etc) to Linux (Linux treats them all as external filesystems).|
|7||No direct counterpart||umount||Unmounts external device from Linux.|
|7||pwd||Shows current directory (stands for Path[name] of Working Directory).|
|7||su, sudo||The su command enables you to run command as if you were a different user. Typically, when current session is not Linux administrator ("root user", "superuser") session, but root user credentials are known, you can run commands and access files as root user by using su.|
|8||set||set (or declare), env||The use of set (declare) is frequently more convenient than the use of env since set (declare) shows (unlike env) environment variables in alphabetic order making it easier to find a variable.
Note: When getting used to Linux commands it might be helpful to notice that you can use the "Windows' set" to see Linux environments variables. The set and declare are different commands, but the list of environment variables and output format they show are the same.
|9||No direct counterpart||file||Gives an information about file type, even though its extention is not known.
Notes: In Linux file extentions are frequently missed since they are optional. What a given file is: file, directory, executable, text, data, link etc? The file command gives you an answer. Interestingly, file is able to distinguish Windows executable types.
|10||at||at||Schedules commands to run at specified time.|
|11||fc or comp||diff||Compares two files.|
|12||find or findstr||grep||Searches for a text string. Windows' findstr and Linux's grep are more advanced than Windows's find since they are able to work with regular expressions.|
|13||path||In Windows, path is both a command and an environment variable. In Linux, PATH is the environment
variable only. Another words, you can obtain the path value in Windows in two ways:
|15||type||cat||Shows content of a text file in console window. Both Windows and Linux's command interpreters allow you to drag-and-drop text file (after you typed type or cat) to see its content.|
|21||md or mkdir||mkdir|
|22||rd or rmdir||rm|
|In terms of platform acceptance, the ease of configuring internet connections is one of the most crucial factors. In the past, Linux as desktop platform was several steps behind Windows in this area. With Fedora 7 release, there is at least one noticable area where Fedora 7 is one step ahead Windows: WiFi connections (no configuration is required). With other types of connections Fedora seems to be behind (sometimes far behind). Apparently there is no other area that can dramatically increase or decrease Linux acceptance. Yet, in particular, installing VPN support was the most troublesome in my experience with Fedora 7. There is a progress with KNetworkManager utility (and GNOME's version), which is by design should provide a single ently point to configuring Wireless/VPN/Dialup connections, yet its release was premature: software should work, not just "attempt" to work.|
Typical use with notebook:
With Fedora 7 no configuration is required (I use notebook SONY VAIO VGN-FS780/W): just position WLAN switch on the front panel to "on", and browse internet.
The commands # iwconfig and # iwlist can be used for further configuration and getting information about wireless connection. For example, # iwlist scanning - shows available wireless networks if any.
|VPN (Virtual Private Network)||New Connection Wizard (rundll32.exe netshell.dll,StartNCW) 1. Setting up VPN connection with Windows is straightforward: once IP is assigned to local machine, run this wizard providing arbitrary VPN connection name and IP address of remote VPN server provided by your ISP.||With Linux establishing VPN connection can be tricky. There are 2 options: manual
configuration, and configuration with pptpconfig utility Fedora 7, 2 provided by
which is the most detailed site for VPN connections with Linux.
The advantage of manual configuration with Fedora 7 is that you don't need pptpconfig package, which requires additional packages (some might be cumbersome to install), and you have direct control over the files of the resulting VPN configuration, which you can save (as a set of files) for backup or further re-use on other systems. Also the manual configuration is general, that is, it consists of the steps that can be applied on any Linux flavor (still, I can hardly recommend the manual configuration for the novice users, and if you prefer UI-based routines the method for Fedora 7 is the same as for Red Hat 9 Red Hat 9, 3: you need to use corresponding packages from SourceForge's site). In a nutshell, these steps are the following:
# pppd call VNP <- use your tunnel name
At this point ping to your local ISP server should work (as well as to other computers on the local subnet), but you need to modify local routing table to make successful ping to DNS server(s), thus accomplishing setting up VPN. To modify routing table run (use your PPTP server IP and interface name):
# route add -host 192.168.254.254 dev eth0
Last two commands tell direct all traffic to tunnel as required by Microsoft PPTP servers (see detailed script that produces, effectively, the same result). It is convenient to copy/paste these commands from the last section of mentioned sample making up ip-up.local script and putting it to /etc/ppp (set execute permission). In the result, when you initiate channel with # pppd call VNP, the ip-up.local script is run automatically, and routing modified automatically. You can bookmark the last command within konsole (go to Bookmarks/Edit bookmarks).
How to initiate VPN connection typically? Simply run Konsole's bookmark opening VPN connection.
|Office (or Home) LAN||...||...|
|Mobile phone||Usage with Nokia phones: Run Nokia PC Suite: right-click on its icon in system tray area and
choose "Connect to the Internet". Accept request for connection from your mobile phone.
Browse the internet...
Setup (Nokia phones): When mobile phone is used for connecting to the internet, you can employ Bluetooth channel (basically radio waves with specific frequencies) of communication between your computer and mobile phone.
There are following prerequisites:
Notice that there are alternative (yet similar) options to internet-connect mobile phone with PC using USB cable or infrared.
|Nokia does not provide Linux version of Nokia PC Suite software, and one cannot make connection to internet with Nokia phones as with Windows. This is a notable downside in the category that Linux does not have versions of some popular software: Adobe Photoshop etc.|
|Show open connections and ports||netstat -a||netstat||It might be overlooked that netstat (with -a option in Windows) serves the same purpose as typical UI-enabled programs showing open connections e.g. CurrPorts v1.20 by Nirsoft.|
|Show internet card network configuration||ipconfig /all||ifconfig, iwconfig||In Linux, ifconfig both reads and updates IP configuration information.
In contrast, Windows ipconfig is made for reading only.
With Linux, iwconfig can be used for wireless connection configuration.
|Connect to remote computer||telnet||telnet|
|Transfer files from/to remote computer||ftp||ftp, ncftp, wget|
Unlike ftp, which is typically available on any Windows or Linux system, the Linux's ncftp, which comes as ncftp-3.1.5-4 package from the second installation CD Fedora 7, 1, enables you to make your work with CLI program in some instances more convenient than with UI-enabled program like gFTP (Linux) or CuteFTP (Windows).
The ncftp program is able to store password (in own encrypted file) to FTP site, and locations of local and remoted directories (ftp cannot do it) so that you can connect to your site with a single-line command (use your user name after -u and your password after -p):
ncftp -u netston -p xxx ftp://ftp.tripod.com (ftp:// prefix is requiered)
Typically, you scroll previous commands with Up key to avoid retyping the command. Further, you can make a bookmark for a command and connect to your site with (use your bookmark name):
To save current FTP connection as bookmark use:
To see and access ncftp's bookmark editor use:
When no other FTP program is available you can use ftp.
The Linux's wget program is useful for making a copy of entire Web or FTP site (it implements recursive downloads when a directory with all its subdirectories is downloaded), and when you want to be sure that a big file (say several GBs) is downloaded completely (in case of connection failure you can resume download starting from the broken point).
Press Ctrl+Z to terminate an FTP session.
|Troubleshoot DNS server||nslookup||nslookup, dig, host|
|Verify connectivity to a specific host||ping||ping|
|Troubleshoot NetBIOS||nbtstat||nmblookup||Can be used for troubleshooting network and printer sharing in mixed Linux/Windows environments e.g. when Linux runs Samba server for file sharing and Windows client gets connected.|
|Know registration information about web domain owner||Not provided||whois||Albeit Linux ships own whois,
which extracts web domain registration information for the most cases, this
program fails for some domain types, for example .biz domains.
With Windows you can use utility like Whois v1.01 (whois) from Sysinternals acquired by Microsoft in 2006, which works for .biz domains also.
|Show routing table||netstat -r||netstat -r|
|Know information about OS user||finger|
|Show mappings between IP and MAC addresses||arp||arp|
|When you need to access remote system (Windows or Linux) from Windows or Linux client - what tools to use? In Linux there are several tools that Linux includes in its distribution as part of Berkley's UNIX inheritance: Remote Shell (rsh), Remote Login (rlogin) Fedora 7, 1. The Telnet (telnet) remote access tool, which appeared later, is shipped to replace Remote Shell, and Remote Login. The newer Secured Shell (ssh) is supposed, in its turn, to replace Telnet since it provides (besides secure channel) an option to run UI-enabled applications on remote machine as if they were run locally. The popular third-party VNC client, furthermore, is able to show remote desktop (Windows or Linux), and run remote applications using this desktop. Why do I mention several tools when, indeed, in many cases the use of VNC or SSH would be a good match? In the case of arbitraty remote system the answer what to use for remote access on client depends on what services are running on server (availability of server's daemons responsible for functioning VNC, SSH, Telnet, RSH, Rlogin servers etc). They are all turned off by default and one might need to use older rsh instead of ssh or vncclient if RSH service is running and SSH, VNC and other services are not.|
|Interact with remote UI-enabled applications locally, run commands on remote machine||PuTTY (putty), X-Win32||ssh||
SSH is the default communication protocol for Linux remote interaction.
Unlike its older predecessors (telnet, rsh, rlogin),
Secure Shell (ssh) is not only enables you to execute commands remotely, or
interact remotely with command-line style (except rsh), but also provides
a channel to work with UI-enabled remote applications as if they were run locally
("X forwarding"). Additionally, the benefit of using SSH is that it is likely running on Linux machine (unless
administrator turned it off), and hence does not require manual startup (as with
Telnet, and R-services).
Here is snapshot of Fedora 7's desktop that shows Konqueror (konqueror) file manager running on remote Red Hat 9 machine (or, inversely, Red Hat 9's desktop showing Konqueror on remote Fedora 7 machine). Notice that -X parameter must be used to enable visual mode:
# ssh -X 192.168.0.1 <- use your IP/name of remote machine
By default, OpenSSH service (sshd daemon), which supports ssh on server, is installed and turned on (Fedora 7 - Red Hat 9). Thus, if you have a password, no configuration is required to run commands remotely.
Windows does not include a SSH client. As Windows SSH client, nevertheless, you can use third-party PuTTY program that makes possible to access Linux machine from Windows client using Linux-style SSH protocol (in fact, PuTTY provides a common UI to access remote server with SSH, or Telnet, or Rlogin). The downside of using PuTTY with Windows is that you cannot run UI-enabled commands (PuTTY alone does not provide "X forwarding" for Windows). The X-Win32, another third-party SSH program, installs "X server" on Windows making possible to run UI-enabled commands like konqueror. Then, besides X-Win32's own client, you can use PuTTY's "Enable X11 forwarding option" to run UI-enabled commands. The picture shows Windows to Fedora 7 connection made this way.
|Interact with remote desktop across the internet or local network||VNC (vncviewer)||VNC (vncviewer)|
VNC (VNC stands for Virtual Network Computing) provides an opportunity to communicate with remote desktop regardless of the type of remote machine's operation system. Generally, you need to be sure that VNC server is running on the remote machine, firewall settings on both ends allow the connection (VNC employs ports 5800+ <displaynumber>, 5900+<displaynumber>), and run VNC client locally.
Linux to Windows: To setup VNC server on Windows XP, download VNC (free v4.1.2 for Windows or newer) and run setup. The setup program installs VNC server (see services.msc), which is auto-started when Windows boots. To enable viewing Windows desktop from client you need to setup password, and make sure that Window firewall allows connection.
Finally, for interaction with Windows remote desktop on Linux, run # vncviewer, which comes with Fedora 7 by default, enter IP of remote machine (like 192.168.0.1), and password. The Linux's VNC client shows remote Windows desktop even if the monitor on remote machine is turned off or not attached physically. When attached one can see Window(s) and cursor movements while you work with VNC client.
Windows to Linux: When accessing Linux desktop, you need to run # vncserver on server first (this shows available display like 192.168.0.1:1), enter this IP (with colon) to dialog window invoked by Windows VNC Viewer on client, and enter password. In the same dialog, click Options... button, to set greater color level when color depth is insufficient.
Making VNC server setup, and auto-startup with Fedora 7 Linux might requre more steps than on Windows:
In case of connection problem, make sure that Linux firewall allows connection (when possible, you can turn it off with lokkit completely--alternative Fedora 7's system-config-securitylevel tool might fail to store settings-- to see if this a firewall matter). For further troubleshooting check VNC log files at ~/.vnc.
Linux to Linux: Run vncviewer specifying IP and display number (separated by colon). The picture shows remote Fedora 7 desktop from Red Hat 9 machine. On this picture VNC shows Fedora 7's GNOME desktop even though the current Fedora 7's desktop is KDE!
Notice that if VNC server is auto-started you can know VNC server display/user pairs by viewing remote /etc/sysconfig/vncservers file (you can use SSH session to open the file: # cat /etc/sysconfig/vncservers). Anyway, you can type # vncserver on remote machine to create new remote desktop (IP:<desktopnumber> pair). The Remote Desktop Connection (krdc) program is handier for making VNC connection on client since it enables you to specify color depth (High/Medium/Low), which is useful for slow networks. The krdc is a part of kdenetwork package, which is shipped with Fedora7, Red Hat 9, but you need to install it manually.
|Access remote desktop with client for terminal services||Remote Desktop Connection (mstsc)||Terminal Services Client (tsclient)||In Linux there is also Remote Desktop Connection program (krdc), but it is used for connecting to VCN server, not to terminal server as Windows' mstsc.|
|Access files remotely (interactive commands, CLI only)||telnet||telnet, ssh, rlogin||The Telnet is universal tool to access remote computers with Windows or Linux. It allows you to run
CLI commands (including interactive commands like vi), though you cannot run UI-enabled
applications remotely. In many cases SSH client is preferable to Telnet. In its turn, Telnet was designed to replace R-commands (rsh, rlogin, rexec). By default Telnet service is disabled on Linux/Windows, and should be enabled manually when needed. You can access remove machine with Telnet session
like (Windows sample):|
Microsoft Telnet>open 192.168.0.1
Alternative and shorter way is:
C:\>telnet 192.168.0.1 (or C:\>telnet armadillo)
At this request, the Telnet prompts you to enter login and password, which must be valid on remote machine.
You should use IP address of your remove machine or its name, which must be known on your computer. This syntax is valid both on Windows and Linux clients (command prompt on Linux is different, of course).
When remote machine is Linux you need to enable Telnet service with system-config-services Fedora 7, 2 (disabled by default), and make sure that Linux firewall allows Telnet connections with firewall configuration utility system-config-securitylevel Fedora 7, 3 (or with its command-line analog lokkit). When remote machine is Windows make sure that Telnet service is started with services.msc (stopped by default), and Windows fiwewall (firewall.cpl) allows telnet connections.
|Execute commands on remote computer (no interactive commands, no UI)||rsh, rexec||rsh, rexec, rcp||R-commands in Linux are replaced with ssh, telnet. When SSH, or Telnet are unavailable as remote services, you can try R-commands (including rlogin, which is interactive command). Notice that corresponding daemons (rshd, rlogind, rexecd) are turned off by default.|
Typically, when Windows and Linux are used together, it is the file and printer sharing that you want to setup first. The following table briefs the major steps to setup this kind of communication between 2 computers: one of them Linux or Windows, or both Linux or Windows.
As a prerequisite, if you connect computers directly, you need a special crossover cable, which is the same cable which you'd use normally but the pinning scheme on one end is different from another. Also, if server computer is used both for internet access and as file server for small office network (known as SOHO) it should have 2 network cards (it is enough to have one NIC on server computer if you want a setup only a file sharing between 2 computers).
Linux: Runs Samba server. To run Samba make sure the following packages are installed. For example, type # rpm -qa | grep samba (package versions can be different on your machine):
Of these packages, only samba-common and samba are required for Samba server, samba-swat, redhat-config-samba are optional and convenient for Samba shares configuration. The samba-client is necessary if Samba server machine is also a client for another Samba server, however install of this package makes sense because it makes possible to test Samba locally. As usual, you can examine information about each package with # rpm -qi <packagename>.
Samba provides Samba Web Administration Tool (SWAT) accessible from local browser (http://localhost:901) to make easier Samba configuration (/etc/samba/smb.conf). You can edit /etc/samba/smb.conf manually or with SWAT. SWAT is disabled by default. To enable SWAT, edit /etc/xinetd.d/swat (SWAT configuration file) by setting disable parameter to "no", which default is "yes" (both without quotes).
To configure Samba server:
Test Samba server locally: # smbclient -L localhost. You will be prompted for a password, and should see the list of shares available. Now if server works OK, you can configure Windows client.
Windows: Client of Samba server. Basically, only NIC should be configured, no additional software is required. To configure Samba client:
When both computers are configured and physically connected ping client-to-server and server-to-client. If ping fails, make sure that server firewall like iptables and client firewall like Norton Internet Security are both allow connections. In particular, if ping from client (192.168.0.2) to server (192.168.0.1) fails, you can specifically add rule to iptables firewall by making client trusted with redhat-config-securitylevel: check appropriate interface as trusted.
Generally, in case of configuration problems it is frequently useful to examine samba log files located at /var/log/samba.
When you want to connect Linux client to Linux server to enable file sharing it is more natural (and easier than file sharing with Samba) to implement NFS (Network File Sharing), which is native to Linux.
It is likely that NFS support is already available on your Linux server and client machines since it usually comes with default installation. NFS support includes nfs and nfslock services (nfsd and lockd daemons correspondingly). If absent this services can be installed with nfs-utils package. Notice that it is useful to install on server machine redhat-config-nfs utility also, which comes with redhat-config-nfs package and enables you to create NFS shares with UI. To check packages availability, type # rpm -qa | grep nfs (package versions can be different on your machine):
Once availability of NFS packages is verified, turn on nfsd daemon with # redhat-config-services (turned off by default), and use the following steps to create, and export NFS share(s) on server:
Now you are ready to use NFS shares from client computer. The steps are the same when
you mount CD/DVD-ROM or flash drive: first, create a directory (armadillo indicates server
machine, but the name is arbitrary), and mount NFS share:
|3||Windows||Windows||When you need to connect 2 Windows machines (say 2 Windows XP computers), the configuration of the 1st
machine ("server") goes in the the way as the 2nd machine ("client"). The terms "server", and "client"
are interchangable when you want to realize file sharing between 2 computers only. Once network
cards are connected with crossover cable, use the following steps on "server" computer:
The configuration of client goes in exactly the same manner except you need to assigh own client's IP address (like 192.168.0.1), and computer name. Notice that you can skip editing hosts and lmhosts files (located in %windir%\system32\drivers\etc) since computers on the same subnet can easily find each other by simple broadcasts.
When both computers are configured and physically connected ping client-to-server and server-to-client. If ping fails, make sure that server's and client's firewalls permit this connection.
|4||Linux||You can enable Windows machine (workstation or server) to
act as NFS server, albeit NFS (Networking File System) is typical for UNIX machines primarily. Microsoft ships freely
Windows Services for UNIX (v3.5, 217.6 MB), referred simply as SFU, to provide cross-platform compatibility.
SFU adds UNIX-like access layer to Windows NTFS shares (additional NFS Sharing tab becomes available in folder properties) in a way that Linux client can access Windows shares with UNIX-like style.
For example, when SFU enabled, to access Windows share named "SFU_Share" you mount it on Linux client with # mount windows-machine:/SFU_Share /mnt/windows-share
(arbitrary mounting point like /mnt/windows-share should be created first) and then you can use Windows share as part of Linux
file system (everything is considered as file in Linux): # cd /mnt/windows-share, # ls etc. Here are the steps to install and configure SFU:
At this point SFU components are installed. Now you should configure SFU:
At this point you can test SFU share availability on client.
In the case of permission problems check first firewall settings on both server and client (temporary disable if possible), view Windows Event Viewer's (eventvwr.msc) System Log. Own SFU's log (%sfudir/log/nfssvr.log) might be helpful also.
|The table below represents a roadmap to locations of typical Linux configuration files. Windows users migrating to Linux can think about Linux configuration files in terms of Windows registry. The collection of configuration files serves essentially the same purpose as the registry: manage system configuration and configurations of many different programs, for example, make tuning or persist settings for later use. The major difference is that Linux keeps all configuration settings in plain text files located, generally, in /etc directory while Windows mostly does not provide direct access to configuration data, but offers instead to use Registry Editor (regedit or regedt32), which provide convenient UI to access the data. With Linux the UI-enabled means to manage configuration data are either very limited such as GConf-Editor (gconf-editor) or have multi-purpose UI such as third-party Linuxconf (linuxconf) complicating matters for beginners. It is natural with Linux, therefore, to keep in touch with original configuration files.|
|OS Boot Menu||%systemdrive%\boot.ini||/boot/grub/grub.conf|
|Command Line History||<account>/.bash_history |
|Command Interpreter||<account>/.bash_profile |
|With Linux, "~" sign is useful when referring to current user home directory, for example: ~/.bash_profile instead of /root/.bash_profile.|
|Hard Disk and other Devices||/etc/fstab|
|Web Server, Apache||/etc/httpd/conf/httpd.conf|
|Database Server, MySQL||/etc/my.cnf|
|Hosts File (Primitive DNS)||%windir%\system32\ drivers\etc\hosts||/etc/hosts|
|NetBIOS Lmhosts File (Primitive WINS)||%windir%\system32\drivers\ etc\lmhosts.sam||/etc/samba/lmhosts|
|OpenPGP Encryption and Digital Signatures||<account>/.gnupg |
|Firewall||/etc/sysconfig/iptables||Limited configuration UI is available with redhat-config-securitylevel.|
|Network File Sharing, Samba||/etc/samba/smb.conf||Optional /etc/xinetd.d/swat is used for SWAT (Samba Web Administration Tool) configuration.|
|Network File Sharing, NFS||/etc/exports|
|Services List||%windir%\system32\ drivers\etc\services||/etc/services|
|1||Assign Windows-like shortcuts to typical actions|
Windows has built-in shortcuts to call standard programs and dialogs:
With Linux it is convenient to use the same shortcuts to run the same kind of programs:
Also, since terminal window plays central role in Linux and because Linux ships with built-in stand-alone internet bookmarks editor, it is convenient to invoke these programs with shortcuts like:
In Linux, you can assign these shorcuts either with built-in menu editor (kmenuedit) or, when assigning shortcut for Run dialog, with Control Center (kcontrol) by going to Regional & Accessibility, Keyboard Shortcuts. If you use Microsoft Natural Multimedia Keyboard, one more reason to use Win + R (or likewise) over default Alt+F2 is that you don't need to press additionally F-key when switching between function key row modes.
|2||Use Linux child panels to place links for frequently used applications and group links on different panels according to category||
Generally, the panels should not be cluttered with links that are rarely used since it slows down navigation.
To add new child panel, right-click on the Main Panel i.e. bottom panel that hosts start menu, and choose Add/Extension/Child Panel. If you want two panels on any desktop side be located in one row, choose for one of the panels Configure Panel (right-click), select current panel in Arrangement tab, and then in Hiding tab select "Allow other windows to cover the panel".
|3||If you are new to Linux, add to start menu KDE, Gnome, X Windows submenus and provide command-line program names as descriptions||
Linux default installation includes programs for several desktop environments: KDE, Gnome, and X Windows (oldest desktop). Generally these programs can be used in any of these environments. Frequently KDE, Gnome, and X Windows have own program for a single specific task. For example, you can you use for calculations KDE's kcalc, Gnome's gnome-calculator, or X Windows' xcalc. In contrast, any version of Windows ships with a single calculator program: calc. Obviously this messes up things a bit if you are new to Linux (or had made a break working with it), since you might tend to forget what program from which environment you used last time, and what its command-line name.
To make it faster to familiarize with a variety of Linux programs across different desktop environments, and easier to memorize command-line program names (until you pickup your favorite programs for the specific Linux tasks), place program along with its command-line name to custom KDE, Gnome, X Windows submenus in start menu (unlike Windows, Linux's start menu does not provide tooltips for menu items). This also helps avoid redundancy with Linux programs use in a longer term.
To accomplish this, use Menu Editor (kmenuedit) to add new KDE, Gnome, X Windows submenus, insert new menu items to corresponding submenus, and provide command-line names for menu items as its descriptions. The followind pictures gives you an idea of this tip for KDE, Gnome, and X Window programs.
|4||Ever have a question of how to organize your favorite console commands in one place? Use Konsole's bookmarks.||Here is one possible scenario. You typicaly use the following konsole command to
check the internet traffic:
# ifconfig ppp0 | grep "RX bytes"
How to avoid typing this command again when you want to see the traffic next time? The answer is, instead of re-typyig it manually or looking into the konsole history (for example with Up key), you can add bookmark with command's text:
Notice that konsole bookmarks are different from internet bookmarks (stored in separate location) albeit they both can use keditbookmarks UI.
|5||Make a single text file, which enlists contents (available RPM packages) of Linux installation disks||When you install or update a program (package), you might have the question: "Which installation CD has
this specific RPM that I want to install, and do these CDs have this RPM at all?" To answer this typical question,
it is convenient to have a single file, which enlists all RPM packages available on the installation CDs (there are 3
installation CDs for Red Hat 9), and make it easily available by bookmarking it with keditbookmarks.
In the result, when you need to install a package, you can consult, first, the list of packages to know what CD holds the package (press custom Win + B shortcut to locate the bookmark pointing to the list), then insert this particular CD, and finally install the package. You can for sure (if your hard disk allows it) to copy installation CDs on your machine permanently. Still the list of available packages is helpful for the fast search.
To make the list, issue the command like # ls /mnt/cdrom/RedHat/RPMS > /root/contents.txt on each CD disk, and then manually merge contents into the single file, or use already compiled one, which is valid for Red Hat 9 only Fedora 7, 2.
Notice that there is a list of packages installed on the system (/root/install.log) during Linux installation (it enlists 671 packages on my system).
Typically, when you often operate with text files that require revisions before their release or when you are concerned with traceability of changes in your own files it is a fair indication that you might need to think about source control system for your text files even if these files are not supposed to be used in shared mode with other users.
TortoiseSVN is the source control system integrated with Windows Explorer, and is based on SVN source control system earlier introduced with Linux. SVN itself was inspired by CVS source control system used with Unix since 1990 (and later with Linux). The advantage of TortoiseSVN is that Windows repository created with TortoiseSVN can be used as repository when accessing with Linux-based client SVN tools. This Windows/Linux interoperability along with integration with Windows Explorer sounded appealing for me when I opted to use TortoiseSVN for my own projects. One other benefit of TortoiseSVN is that it is able to compare Word files (though not side-by-side, v1.4.5), and works with UNICODE.
As with any source control system you should plan a central repository. It is a good idea to place repository on file server or use internet server, and use shared drive if the repository should be accessed from Windows and Linux. In simple cases, you can choose flash drive. To setup SVN repository after running setup program make new folder (SVN for example), right-click and choose Create repository here... . If you'd try to create repository starting from not-empty folder, the TortoiseSVN will be complaining, which means that repository can be created from empty folder only.
Once repository is created, you can add files (and folders) to the SVN repository. You do this with Repo-browser, which can be invoked by right-click on repository, choosing TortoiseSVN, and then Repo-browser.
Now, when you need to work with repository files locally, you first make a checkout (right-click on repository and choose SVN Checkout... or checkout from repo-browser). For the destination of the local copy choose any location such as MyDocuments/LocalSVNCopy. TortoiseSVN enables right-click menu for the folder where you made a checkout. The new context-menu items are also available for local files. Notice that TortoiseSVN adds red exclamation mark to the left bottom of an icon of locally edited file, and green mark if a local file was not edited since last checkout. The same meaning have green and red marks for folder icons. In fact, it is convenient to identify folder as local SVN copy by these folder marks.
Among menu items that SVN adds for locally edited file, the most useful is Diff option, which makes possible to see differences between local and server (repository) versions. Don't forget to update repo files if you make changes to the local copy (right-click on file and choose SVN Commit...). The accidental destruction of the local copy can cause no harm if you did not forget to make commits after updates of the local files. To restore local copy you simple make a checkout from the relative repo.
When new file is added to the repositoy, you can load it to the local directory by right-click on local project folder and choosing SVN Update.
If you have programming experience with Microsoft development tools, you can jumpstart using TortoiseSVN having in mind that mode of operations with TortoiseSVN is based on paradigm used with other source control systems. Take a look on Visual Source Safe window, which is the Windows source control system provided by Microsoft basically for version control of source files while programming. The TortoiseSVN's analog of Visual Source Safe Explorer is already mentioned Repository Browser.
With Linux there are 2 major options1. The first one is to use CVS, and the second is to rely on Subversion (or SVN), which inherits major CVS features and claims removing some shortcomings observed in CVS.
If circumstances do not require from you to use CVS, the use of SVN might be a better option, especially if you need to track versions of UNICODE files. On the other hand the use of CVS is simpler, more intuitive, and CVS is integrated with KDE by default through Konqueror file manager, even though you can use a separate UI frond-end for CVS called Cervisia (cervisia).
Cervisia enables you to setup a CVS repository and run basic tasks such as commit, checkout, update, adding files, viewing version differences without running these tasks in command-line interpreter. Sure you can use console (konsole), but unless you use CVS everyday keeping in mind its commands might not be a reasonable and easy exercise (see the list of relative commands with: # cvs --help-options or enter man:cvs in Konqueror's address bar).
The next steps show you how to setup an empty CVS repository from scratch so that files and folders can be added later. It is a good idea to setup repository on file or internet server, however, for simplicity, you can use flash-drive for tests:
With Linux, SVN has become de-facto standard for users and developers who want to obtain latest versions of source code for a package to build it on local machine albeit obtaining source with FTP is no less practical. Frequently, a user needs a few SVN commands such as checkout, which can be effectively run (and bookmarked within console) from console (konsole), without invoking UI-enabled front ends. For this reason, I provide here in a nutshell basic steps necessary to setup SVN repository without UI-enabled tools (the order of steps reflects the steps with CVS repository setup). As before you can use for tests flash-drive:
With KDE and GNOME come KDESvn (kdesvn) and RapidSVN (rapidsvn) programs relatively that enable you to accomplish source control tasks within graphical interface avoiding the use of console commands (you still need to create repository in console when using RapidSVN). These programs represent UI front-ends to Subversion (SVN commands).
The sequence of steps to create a new repository and add to it a file are the same as described when using console:
The pictures used above were obtained with Cervisia v2.4.9 and KDESvn v0.11.2 3.
This section outlines some essential points when making a backup of systems composed of a small number of computers (Linux and Windows) such as SOHO computers. The purpose of backup, obviously, is to provide an opportunity to restore critical files and system data in the case of their accidental or voluntary destruction or corruption. The question of how often to make a backup depends on such issues as how often the data are changed, how critical the data are? I leave this topic off for the answer depends on particular case and fairly subjective. What is more important is to have a plan for backup of your critical files and system settings, which enables you to verify the sequence and check out the vital points. Since backup a fairly rarely procedure relative to common tasks the essential backup procedures might help you to get back on the track if you forget something (in fact, I myself tend to forget backup details and consider backup planning as indispensable). The scope of this section is mainly about the full backup to Data DVDs (Brue-rays, CDs and other backup media are out of scope), and does not cover planning for inremental or differential backups.
Select source backup data (what to backup):
On this stage you also evaluate the size of source files and the number of backup media such as Data DVD you might need.
When making personal files backup don't forget to consider:
When making application configuration files backup consider:
Making system configuration files backup with Windows consider:
Making personal files backup with Linux don't forget to consider:
Making application configuration files backup with Linux consider:
Making system configuration files backup consider the choices:
Choose intermediate backup location. You can skip this step if the size of your source backup data is small or well organized. In other cases, an intermediate destination (you simply copy source data to this location) serves the following purposes:
|Linux provides extra benefits of intermediate backup location with the use of symlinks (symbolic links). You can design backup directory structure with symlinks without coping original data to intermediate location. Then you drag-and-drop symlinks along with actual files and folders to the burning application such as k3b and make a backup. In the process k3b follows symlinks as if they were actual folders or files. You cannot work this way with Windows since most close analog of sysmlinks in Windows are shortcuts that, however, are not followed by Windows burning applications. Notice the syntax for creating a symlink: # ln -s <targetdirectory> <softlinkname> (the name of softlink is after the target name).|
Choose backup software and backup media. In case of DVD media, make provisions that final disk is read-only (choose DVD+R/DVR-R or be prepared to finalize DVD+RW/DVD-RW on the next step).
|Roxio Creator or Nero.||K3b (k3b), GnomeBaker (gnomebaker), Graveman! (graveman), Brasero (brasero).|
Backup data to backup media and verify files. One of the most essential points of the whole backup process is to provide data integrity 3. At minimum you can consult file properties to make sure that original byte size of all files coincides with that of on destination media. In more rigorous approach you might want to provide with files their checksums (alternatively called control sums, hashes or digests).
If you decided to provide checksums for files consider:
When decided to provide checksums for files consider the programs installed with Linux by default:
Make labels for disks and store backup in safe place. If you used Data DVD media for the backup you might want to put labels on DVD disks reflecting answers on when and what questions. There are 3 additional pieces you need to finish with that:
|MediaFACE 5 for DVD labeling (I use MediaFACE II, purchased about 10 years ago, which suites me fine up to now).||The following software can be used for making DVD labels with Linux:
Email me: lambert1791 at gmail dot com.