Sunday, October 15, 2006

Linux Command To Confirm Bad Sector

Hard disk being one of the vital components in computer system. Unfortunately, hard disk is also being one of the most high risk and sensitive components that is prone to failures, owed to the fact of mechanical subsystem attached!

The Linux command badblocks could be used to run bad sector burn-in test on a new or suspected faulty hard disk. Just get a low end PC or server installed with Linux OS, attach the target hard disk to the IDE or SCSI bus, and run the badblocks command on the target hard disk. For example,

badblocks -svw -t random -p 3 /dev/sdb

get badblocks to perform three rounds of destructive write of random data to the second SCSI hard disk.

Be careful! The option switch -w performs destructive write. Never use this option switch on a partition with filesystem. Instead, use -n to perform non-destructive read-write on a partition with filesystem!

Related information:

  • Search more related info with Google Search engine built-in

Checklist To Tune DB2 Performance

DBA suggests few of the recommended database performance tuning tips for IBM DB2 database engine that is running on Linux server.

  • Linux kernel parameters tuning that applicable to DB2 version 8.1 and 8.2.

    Executing command sysctl -A to print out current kernel parameters setting. Some of the notable are

    • kernel.sem (Semaphore setting)
      Recommended Value : 250 256000 32 1024

    • kernel.msgmni (Maximum system-wide queues)
      Recommended Value : 1024

    • kernel.msgmax (Maximum size of messages in byte)
      Recommended Value : 65536

    • kernel.msgmnb (Default size of queue in byte)
      Recommended Value : 65536

    In order to retain these changes of kernel parameters on every system reboot, add the updated kernel parameters setting to /etc/sysctl.conf system file to do the great job.

  • DB2 database configurable parameters tuning.

    After connecting to database called my_test_db by executing db2 connect to my_test_db, running another DB2 command db2 autoconfigure apply none to get DB2 database engine calculate the best recommended value of DB2 database configurable parameters. Some of the notable are

    • LOGPRIMARY / LOGFILSIZ
      Larger log buffer required for OLTP workloads with high transaction rate.

    • CHNGPGS_THRESH
      For databases with heavy update transaction workloads, make sure there are enough clean pages in the buffer pool by setting the parameter value equal to or less than the best recommended value calculated by DB2 database engine.

    • LOCKLIST
      The amount of storage that is allocated to the lock list. Increase this value if lock escalations causing performance concerns, that logged as warnings in the db2diag.log file.

    • DBHEAP
      Database heap per database. Needs to be increased for larger buffer pools.

    • NUM_IOCLEANERS
      Large buffer pools require a higher number of asynchronous page cleaners.

  • Alternate page cleaning algorithm tuning.

    DB2 UDB ESE v8.2 introduces a new buffer pool page cleaning algorithm which is not turned on by default. It is necessary to test this new page cleaning algorithm with the database workload. To turn on this alternate page cleaning algorithm, executing DB2 command

    db2set DB2_USE_ALTERNATE_PAGE_CLEANING=YES
Related information:
  • Search more related info with Google Search engine built-in

Disable Linux Reboot On CTRL+ALT+DEL

Don't ever press CTRL+ALT+DEL key combination in a Linux server!

Windows guys used to press CTRL+ALT+DEL key combination follow by ENTER key to immediately lock the server running on Windows 2000 or Windows XP and above when they leave the server.

What is the default behaviour when pressing CTRL+ALT+DEL key combination in a Linux machine? Well, the default action of Linux in responding to CTRL+ALT+DEL key combination is to reboot the Linux machine immediately! Just press it once, not twice as in Windows Me, and Linux will not be kind to ask confirmation before it really rebooting itself!

Anyway, this Linux default behaviour in responding to CTRL+ALT+DEL key combination pressed could be tweaked, indeed. Edit the /etc/inittab system file, look for the line containing ctrlaltdel keyword, and then either

  1. Remark the line ca::ctrlaltdel:/sbin/shutdown -t3 -r now to disable Linux from responding to the CTRL+ALT+DEL key combination

               or

  2. Replace the /sbin/shutdown -t3 -r now with something else, such as

    dialog --clear --title "Information" --msgbox "Don't press CTRL+ALT+DEL key combination in Linux machine.\n\nTo reboot server, use init 6 or init 0 to shutdown Linux." 10 40;clear

    which use the dialog box command to alert users with a text-based GUI information dialog box.
Impress Linux users with text-based GUI dialog box control.

Related information:
  • The dialog box command is not a standard program installed by most Linux distribution. Find the dialog package from respective Linux distribution and install it.
  • Search more related info with Google Search engine built-in

Which Command Is Linux Refer

Opss! Executing ls command at keith login account displaying directories in blue color, executable file in green color, and plain text file in white color, etc.

But, when executing the same simple ls command at root login account does not differentiate file type by color scheme. How come?

Users who are familiar with shell built-in command alias will know that it is the alias that wrap the ls command with --color=none option switch. At the command prompt, type

alias | grep ls

will able to tell the fact of this.

The which command is used to find out which command the Linux shell interpreter is referring to in the current login session. The simple form of which command, such as which ls will show the path of the ls command without telling the alias name of it. Well, tweak which command with its command option switch and wrap it with alias command, such as this

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

Execute the which ls again, will now able to show both the ls command path and the alias of it, as shown in the diagram.

using the linux which command and alias command

Related information:

alias Shorten Long Linux Command

Tired of typing Linux command because of long list of command option switches? Try to use the command alias to relieve tired of typing long Linux command then.

As the command name suggests, the Linux shell built-in command alias allows a user-defined command to represent

  1. A system command with long arguments, such as

    find . -type d -print

    This find command used with a long option switches to list all directories that exists from the current directory downwards. The find command could be rather long if more find command option switches applied.

    This long command line could be made simple with an alias, such as

    alias dirfind='find . -type d -print'

    that allows user to execute the short user-defined command dirfind instead of typing out that long command line.

  2. A series of system commands, such as

    tar -zcvpf bin.tgz bin; [ $? -eq 0 ] && echo DONE || echo FAIL

    These system commands execute sequentially, aim to check the tarball archive creation status upon its completion. If success then echo DONE else echo FAIL.

    Again, by using the alias command could make it shorter and simple enough, such as

    alias chkbkp='tar -zcvpf bin.tgz bin; [ $? -eq 0 ] && echo DONE || echo FAIL'

    where the user could execute chkbkp at command prompt and the Linux shell will expanding it to that commands series.
Related information:
  • It is not advisable to declare and use alias in shell scripts. It is better to use a variable or a function for the purpose. Anyway, if insist, it is technically possible to use alias in shell scripts by turning on shell scripts option shopt -s expand_aliases before declaring and using an alias inside the shell scripts, such as the sample in diagram below.

  • Use alias in bash shell scripts with shopt -s expand_aliases enabled

  • By default, the parent shell where a shell scripts executed will always spawn the scripts execution into a subshell, unless explicitly run the shell scripts in the current shell environment. Shell scripts that is running in subshell will not able to use aliases defined in parent shell environment!

    To run a shell scripts in current shell environment instead of spawning into subshell, use one of these two syntax

    source testscripts.sh
                or
    . testscripts.sh

  • How to run shell scripts in subshell. How to run shell scripts in the current shell?

  • In Linux system, there is a file named .bashrc in each home directory. Use this file to define aliases, which will make the defined aliases effective on each login.
  • The login profile .bash_profile could also be used to define aliases. In fact, it is the .bash_profile which execute the .bashrc while a user login.
  • To remove an alias, simply use the shell built-in command unalias, such as unalias chkbkp
  • To list all the aliases defined in the current login session, just type the command alias at the command prompt will do.
  • Which command is the Linux shell refers to
  • Search more related info with Google Search engine built-in

Saturday, October 14, 2006

Booting Thin Client Diskless Workstation

Bootp, shorts for Bootstrap Protocol, is an UDP network protocol which is originally defined in RFC 951 to assign IP address for network clients. Bootp is well suitable to apply in diskless workstation, workstation without operating system installed, or simply called thin client.

Bootp is not DHCP! Although both of these two protocols sound similar at first thought, but they are technically different and could be co-exists in the same server or network segment.

Hospitality management system giant, Micros System Inc, makes good use of bootp in its high rank Point-Of-Sale system called Micros 8700 HMS.

When the diskless Micros PC Workstation power on, the bootp enabled network interface card will broadcast its MAC address to the network. When the bootp daemon running on the Micros host receives the broadcast packets, it will assign a valid IP address follow by transferring a DOS operating system image to the PC Workstation according to the MAC-IP-Image mapping maintained in the bootpd configuration file.

Once the image transferring (via tftp protocol) completed, the diskless PC Workstation starts to boot up with the OS image parking in memory segment that act as RAM-DISK. When the boot up completed, the Micros diskless PC workstation functions as if it is a normal desktop PC pre-installed with DOS OS.
Bootpd server and clients could be reside on different network segment by deploying bootp relay agent. To make thing simple or get it up and running right during initial roll out, put both bootpd server and client on the same network segment.

Checklist when thin client unable getting IP address:

  1. Replace a known good unit of thin client to rule out possibilities of

    • Faulty boot ROM embedded in NIC that is bootp enabled
    • Faulty Ethernet patch cable
    • faulty network access point or LAN point

  2. Bootp daemon is not running. In Linux/Unix, execute

    ps -ef | grep bootpd
                or
    lsof -i | grep 67

    to confirm bootp daemon is running and listening to legacy port number (as shown in /etc/services file)

  3. Incorrect MAC address to IP address mapping maintained in /etc/bootptab bootpd configuration file

  4. ARP cache conflict at bootpd server. Executing the command

    arp -a

    to list the bootpd server arp cache. Confirm that there is no ARP cache conflict. To delete the conflict, for example conflict on IP address 192.168.1.3, execute command

    arp -d 192.168.1.3

  5. Use cross-over patch cable or straight Ethernet cable and a hub to directly link up the bootpd server and client to form an simple isolate network. If it works in this simple network infrastructure, then get network experts sit in for assistant. There might be firewalls or routers that have blocked the UDP packets from reaching to bootpd server.
Related information:
  • Tftp protocol in brief

    • Host A sends an read request (RRQ) or write request (WRQ) packet to host B. The packet containing the filename and transfer mode.
    • Host B replies with an acknowledgement packet (ACK) to WRQ or directly with a DATA packet in case of RRQ. The reply also serves to inform host A of which port on host B the remaining packets should be sent to.
    • The source host sends numbered DATA packets to the destination host, all but the last containing a full-sized block of data. The destination host replies with numbered ACK packets for all DATA packets.
    • The final DATA packet must contain less than a full-sized block of data to signal that it is the last. If the size of the transferred file is an exact multiple of the block-size, the source sends a final DATA packet containing 0 bytes of data.

  • Search more related info with Google Search engine built-in

Thursday, October 12, 2006

Repair Corrupted Outlook PST OST File

PST, known as Microsoft Outlook personal folder file or email archive file, used to archive emails out from the mail box at server side to a local storage or network drive.

OST, known as Microsoft Outlook offline folder file, allows user to work with Microsoft Exchange mail box in an offline mode. For example, emails composed, Contacts or Calendar changes, etc, will be storing in the offline folder. These changes made in offline folder will be automatically synchronize with Microsoft Exchange Server once hook up to the network - emails composed will be sending out immediately and Contacts or Calendar changes are updated to server side objects.

Both the Microsoft Outlook PST and OST files are believed using MSDE database engine.

MSDE is a light-weight freeware version of Microsoft SQL Server database engine that Microsoft offers to attract database users (especially MS Access users, developers, students, educators, etc) to develop database projects using Microsoft SQL Server. The latest release of MSDE is called SQL Server Express edition.

MSDE built with limitation of accessing up to 2GB worth of data only. The same limitation occurs in MS Outlook PST and OST file as well!
Watch the size of PST and OST file! If they getting fatty, trim them down quickly to save archives of email from hitting the 2GB limitation or a file corruption will happened soon! The best practice is to create multiple PST or OST files to categorize email archives. For those email with attachment, it is easily reaching the 2GB limitation. So, more PST or OST files are needed to archive such emails with attachment!

Office 2000 and higher with latest patches installed is nice enough to alert users with an error message and disallow users from adding or receiving new email item, so to safeguard PST or OST file to become oversize and corrupted. Earlier versions of MS Outlook does not display any error or warning messages and allow users to oversize the PST or OST file until corruption!

Microsoft offers a tool called PST2GB to recover a MS Outlook PST file that is corrupted after storing over 2GB worth of data. Microsoft alleged that PST2GB is not a tool that is 100% work at all time! If PST2GB does work, it does not recover all of the data (the truncated data is missing).
PST2GB merely create a truncated copy of the PST file to under 2GB. The copy that is left after the PST2GB completes does not have all the original data because the PST2GB forcibly cuts a user defined amount of data (below 2GB) from the PST file.

In brief,
  1. Data or the emails archive after the truncation boundary will gone missing.
  2. There must be enough disk space, 2GB free disk space if as maximum as possible of recovery desired.
Steps to recover corrupted PST file as per Microsoft KB296088 (applied to MS Outlook 97 to MS Outlook 2002)

  1. Download the PST2GB from Microsoft Download Center

  2. Extract the downloaded file 2gb152.exe to an empty folder for these five files - Msstdfmt.dll, Msvbvm60.dll, Pst2gb.exe, Readme.rtf, Readme.txt

  3. Start the Pst2gb.exe program.

  4. Click Browse to select the oversize PST file and then click Open.

  5. Click Create, select the name and location of the truncated data file to be created, and then click Save.

  6. Enter the amount of the data that intended to truncate in the PST file. There is no absolute ideal figure for this but for the best results is using 20 to 25MB, more or less. If that works, repeat the process and truncate the original oversize PST file by only 15MB. If that works, then try the process with 5MB. If 25MB does not work, repeat the process and truncate the original PST by 35MB. If the process does not work, increase the amount until the process is successful.

  7. Run the Inbox Repair Tool scanpst.exe on the smaller PST file.

  8. Open the repaired PST file in Microsoft Outlook.

  9. (Recommended but optional) If the file opens, right-click the root folder of the PST, click Properties, and then click Compact Now to start the compression. For a file of this size, the compression may take approximately 4-8 hours.

  10. If the file does not open, discard the truncated PST file, and repeat the process with the original PST file. Truncate more data than in the first attempt, and try the process again.

If the following error message arise when trying to run the PST2GB Utility

Run-time Error '713': Class not Registered. You need the following file to be installed on your machine. MSSTDFMT.DLL

To resolve this error, follow these steps:
  1. Microsoft Windows 98, Microsoft Windows 98 SE, Microsoft Windows ME

    1. Copy the MSstdfmt.dll file to the C:\Windows\System folder.

    2. Open a command prompt, and then type the following command

      REGSVR32 C:\Windows\System\MSSTDFMT.DLL

  2. Microsoft Windows NT, Microsoft Windows 2000, and Microsoft Windows XP

    1. Copy the MSstdfmt.dll to the C:\<windir>\System32 folder.

    2. Open a command prompt and type the following command

      REGSVR32 C:\<windir>\System32\MSSTDFMT.DLL

      where <windir> is either the WINNT or the Windows directory.
Related information:

Wednesday, October 11, 2006

lsof Identify Resource Locked Process

Samba server comes with a handy utility called smbstatus to report users who are holding the shared resources.

Utilities used to find out processes that are locking system resources are among the most wanted system utilities for experienced users and system administrators. The lsof being one of such excellent utility that used to identify process or user that is locking system resource such as file or network socket.

For example, a system administrator could use the lsof -i to easily understand how the IBM MQ server communicate over the TCP/IP network with IBM Informix server. The lsof output, as in the diagram below, shows that the Informix oninit is listening to a user defined mnemonic port name stp which the IBM MQ server communicate with. The /etc/services system files is usually used to map a numeric port number to a descriptive port name defined by user.

The Linux lsof utility used to find out process or user that locks a system resource such as file or network socket

  1. Execute lsof -i TCP to report all processes that are accessing the TCP sockets found on the system

  2. Execute lsof -i tcp:8080 to find out what process is holding TCP port 8080.

  3. Execute lsof without any command options to list system wide resources that are using by processes running in the system.

  4. Execute lsof -p 456 to show all resources that are being held by process id 456

  5. Some programs might running on the Linux system by more than one instance. In this case, type lsof -c ProgramName instead of lsof -p PID to get a broader scope of view. For example, lsof -c squid to find out what are the resources held by all squid processes running on the system.

  6. Execute lsof -u keith to confirm resources that are being held by user id keith

  7. Execute lsof /home/keith/secretfile to find out what are the processes that are locking the specify file /home/keith/secretfile
Related information:
  • Another utility called fuser has similar features as of lsof utility. Executing fuser -m /media/cdrom will report all process id that are holding the specify resource.

    Each of the process id suffix with an ASCII character code which represent the resource access type. These resource access type codes are not standardize among various Linux distributions. To be safe and accurate, always consult the fuser man page to confirm the code definitions.

    To check out what process ID is using TCP port 8080, execute the fuser as fuser -n tcp 8080 or fuser 8080/tcp

  • The native network related Linux command netstat is a good tool to find out what program or command is binding to a TCP and UDP port. For example, there are Bind, Djbdns, etc, used to bind with port 53 for DNS protocol. By executing netstat command as

    netstat -tulap

    will shows both the program and process id that bind to the network port. The diagram below shows the commands output of lsof vs netstat.

    netstat vs lsof

    Both of the commands displaying pseudo port name instead of numeric port number, where the mapping of pseudo port name and numeric port number is defined in /etc/services file.

    The netstat command, however, able to display numeric port and IP address with -n option switch. For example, rewrite the command as netstat -tulapn

    Note! Both netstat -tulap and lsof -i MUST be executed with root user account privileges, else nothing as those in the diagram above will be seen.

  • Search more related info with Google Search engine built-in

Tuesday, October 10, 2006

Repair Corrupted Windows Boot.ini

Boot up to Windows Recovery Console and execute command bootcfg to repair corrupted or recreate missing Windows boot.ini file.

The bootcfg command able to scan hard disks for installation of Windows NT 4.0 and above and then add them to existing boot.ini file. The command also able to rebuild a new boot.ini file if one does not exist.

A brief of bootcfg command usage and syntax

  • bootcfg /add scans the computer for Windows systems installed (for example Windows 2000 and Windows XP in a dual boot setup), displays the results to choose and add it to the Boot menu.
  • bootcfg /rebuild iterates through all Windows installations found in the PC, allows user to specify which installations to rebuild the boot.ini file.
  • bootcfg /list reads the boot.ini file and displays the operating system identifier, the operating system load options, and the operating system location (path).
Related information:
  • The bootcfg command syntax and usages
  • Search more related info with Google Search engine built-in

Sending Windows Console Message

Windows Me or 9x comes with one handy network chatting program called Winpopup. Simple GUI allows user at one computer to chat over the network with counterparts sitting at another networked Windows.

However, there is not similar Winpopup replacement for Windows 2000 and above. There are two ways to send a message, better known as console message or Windows Alerts, to networked system running Windows 2000 and above.

  1. Via the Computer Management window

    1. Right-click on the My Computer icon on Desktop
    2. Click on the Manage option from the pop up context menu
    3. Click on the Action menu of Computer Management window
    4. Goto All Tasks option
    5. Click on the Send Console Message... option to call up Send Console Message window.

      Sending console message or Windows Alerts via the Send Console Message GUI.

  2. Via Command Prompt

    1. Click on the Start button
    2. Click on the Program menu
    3. Click on the Accessories menu
    4. Click on the Command Prompt application
    5. At the Command Prompt window, type

      net send 192.168.1.2 "testing messages"

      to send a messages "testing messages" to PC with 192.168.1.2 IP address.

      It is possible to replace IP address with DNS name or domain name to send console message to all workstations of the said domain.
    6. Type net help send for more syntax and usage information.

Related information:
  • Search more related info with Google Search engine built-in

Restart VNC Remotely

Opsss! Can't VNC over to remote hosts!

Might need to restart the VNC server, but how?

  • Restart Windows-based (Windows 2000 and above) VNC server

    1. Right-click the My Computer icon on Desktop

    2. Click the Manage option from the pop up context menu

    3. Click the Action menu of the Computer Management windows

    4. Click the Connect to another computer... option

    5. Type the IP address or DNS name of the target PC running the VNC server

    6. Enter the login authentication info when prompt

    7. After connect successfully, click the Services and Applications on the left panel.

    8. Click the Services option

    9. Search for VNC Server service on the right panel, right-click on it, and click Restart option to restart the VNC server.

  • Restart Linux-base VNC daemon

    1. Telnet or ssh over to target host that running the VNC daemon

    2. Type the command vncserver -kill:1 to kill the VNC daemon running on DISPLAY:1, for example.

    3. Type vncserver :1 to bring up the VNC daemon running on DISPLAY:1 again.

    4. To ensure VNC daemon startup listening for connection, type

      netstat -ant | grep 5901

      where 5901 is the legacy VNC daemon listening port of DISPLAY:1 in the previous step. If the port is open and listening means that VNC daemon is up and running successfully.
Related information:

MD5 Shell Scripts Find Duplicate Files

The shell scripts wrap the default md5sum program found on most Linux system to prepare a report of unique and duplicate files in a given directory.

The lengthy source code could be shorten if removing the DupUniRpt function which merely used to prepare an easy to read report that showing both the filename and number of duplicate and unique files.

By removing the DupUniRpt function call and function coding, do remember to add the line

cat $FM5L

right after the DupUniRpt function call in the if-else statement. The $FM5L is a semi-raw report file that groups duplicate and unique files together.

The wDupUniRpt.sh contain the same source code of DupUniRpt function source code, which could be used to prepare that easy to read report based on the semi-raw report file. This shell scripts created merely for easy debugging purpose.

Both these shell scripts have been tested successfully with as much as possible scenarios. The source code might be able to further enhanced for efficiency or bugs fixing if any. Any suggestive comments are greatly appreciated.

Related information:

  • wmd5.sh to report both filename and number of duplicate and unique files in a given directory
  • wDupUniRpt.sh used to report redundant and unique records in an ASCII file of sorted records.
  • MD5 checksum used to find redundant files
  • Search more related info with Google Search engine built-in

Monday, October 09, 2006

Install Recover Console To Boot Menu

Recover Console is not install to local hard disk by default during Windows installation.

In order to access to Recovery Console, normally practice is to boot up the system from the appropriate Windows setup CD. If the system is running on Windows XP, use the Windows XP setup CD. Note that Recover Console only available in Windows 2000 and above.

Other than access the Windows Recovery Console from bootable Windows setup CD, it is possible to install the Windows Recovery Console to local hard disk and configure it to appear as one of the Windows boot up option.

Install Recovery Console to local hard disk and enable Recovery Console as part of the Windows boot up menu option:

  1. Click on the Start button

  2. Click on the Run menu

  3. Type D:\i386\winnt32.exe /cmdcons by assuming D: drive is CD-ROM drive letter in which the Windows XP Setup CD is loaded.

  4. Click OK button and then follow the instructions on the screen to complete the straight forward setup and restart the computer at the end of setup process.

  5. After the Windows reboot, edit the file C:\boot.ini with notepad editor. Note that this file is hidden system file which is not "appear" in Windows Explorer by default, unless turning on the view hidden file options.

  6. If view hidden file option is not turn on, turn it on by

    1. Open My Computer
    2. Click on the Tools menu
    3. Click on the Folder Options
    4. Click on the View tab
    5. Click on the Hidden files and folders
    6. Click to select Show hidden files and folders option button.
    7. Click to clear Hide protected operating system files check box
    8. click OK to complete the turning on view hidden file procedures.

  7. At the bottom of the file, append this line

    C:\cmdcons\bootsect.dat="Recovery Console" /cmdcons

    Note that changing the description "Recovery Console" to whatever meaningful name is possible.

  8. Save and exit the edited file. On the next system boot up, notice that there is one new boot option called Recovery Console in the Windows boot up menu.
Related information:

Using ls Command By Examples

The ls command is a Linux command that is used to list directory contents. In fact, it is a standard shell command that exists in all Unix/Linux variants.

Using ls command by examples

  • To list all files in ascending order of file name detailed with file modification time

    ls -la

  • To list all files in descending order of file creation time in full or customized date-time format

    ls -lact --full-time
    ls -lact --time-style="+%d %m %Y"

  • To list all files in descending order of file creation time

    ls -lact

  • To list all files in descending order of file size in kilobytes

    ls -laSh

  • To list only directories

    ls -ap | grep /
              or
    ls -al | grep ^d

    Alternatively, use the find command as

    find . -type d -print

  • To list only directories initial with rpt filename

    ls -al rpt* | grep :$
              or
    find . -type d -name "rpt*" -print

Definition of ls file listing command option switch
  • option switch l used to list files in long listing detailed format.

  • option switch a used to list all files including hidden files which filename prefix with a dot.

  • option switch lct used together to list file in descending order of file creation time.

    option switch lc list file creation time and sorted by filename.

    option switch lt list file in descending order of file modification time.

  • option switch h used to list files size information in kilobytes (KB).

  • option switch S used to list files in descending order of file size in byte.

  • option switch r used to reverse the default of descending listing order to ascending listing order.

  • option switch --full-time or --time-style used to display time-related info in full or customized format.


Notes! If the ls command colour scheme is not easy to read, turn it off by either:
  • On ad-hoc basis by adding option switch. For example

    ls /etc --color=none

    to list /etc directory contents without color scheme turning on. OR

  • On selective login session only. Use the alias command to save typing efforts. For example, execute the command

    alias ls="ls --color=none"

    will cause subsequent ls command executing as if it is supplied with --color=none option switch and automatically turn off the color scheme.

  • On each login session of individual login acount only. Copy the file /etc/DIR_COLORS to the user home directory as $HOME/.dir_colors and edit the variable COLOR to become COLOR=none to do the job.

    From the next user login onwards, type the command set | grep COLOR will notice that the COLORS variable changed as specified in the $HOME/.dir_colors setting file. Typing the ls command as usual which will disable the file listing color scheme automatically.

    To turn on the color scheme again, simply rewrite the line COLOR=none to COLOR=tty or COLOR=auto will do.

    The file /etc/DIR_COLORS is used to control file listing color scheme globally, meaning that all users account will be affected.
Related information:

Friday, October 06, 2006

Microsoft Freeware Visual Studio Express

Yes! Effective 19 April 2006, all Visual Studio 2005 Express Editions are free permanently!

Microsoft given away its flagship development product at zero cost. Not only to learn, test and feel the new features of .Net Framework 2.0, but also able to compile and commerce the development project with Visual Studio Expression edition.

Microsoft Express Edition includes a wide range of Microsoft flagship development tools such as MS SQL Server 2005, Visual Basic 2005, Visual C# 2005, Visual C++ 2005, Visual J# 2005, Visual Web Developer 2005. As long as Express keyword attached, such as Visual Studio 2005 Express Editions, it is a genuine Microsoft freeware edition.

For those who familiar with MSDE, SQL Server Express is the replacement. Microsoft alleged that the name MSDE was confusing to customers and partners because many did not realize that it was associated with SQL Server. By changing the name from MSDE to SQL Server Express there will be less confusion among customers and partners.

Everyone could use the Expression edition at no cost for the purpose of testing, learning, and even compile and sell the development project. Before this, Microsoft freeware such as Visual Basic Learning edition couldn't compile development into executable.

Related information:

Tuesday, October 03, 2006

File Command Guess Linux File Type

By convention, Windows system using 3 alphanumeric characters to serve as file extension. File extension telling Windows OS how to deal with the file, what program to manipulate the file, and to Windows users easily recognize a common file type.

There is no such strong concept of file extension in Linux as well as UNIX world. Linux folks, however, do practice to use file extension for some file formats such as compression or archive file format. Windows users might easily get cheated by file extension trap in Linux.

For example, it is perfectly fine to rename a PKZIP compatible zip file called backup.zip to backup.tgz or whatever filename. Later, if the user simply executing tar -zxvf backup.tgz might either get errors or see nothing and thought the file is corrupted.

Purposely rename a PKZIP compatible zip file as it is a gzip compressed tarball archive file. Use the file command to test the file if it is a valid Linux file format.

Wait! Before deleting the file which thought to be corrupted, use the file command to inspect the file type first.

Type file backup.tgz at the command prompt, it shows that backup.tgz is actually a PKZIP compatible zip file. So, user should executing unzip backup.tgz to extract the zip file or rename backup.tgz to backup.zip before executing the unzip command.

Related information:

  • Search more related info with Google Search engine built-in