Midnight Commander Comes To IBM i
March 20, 2019 Alex Woodie
IBM i professionals who work extensively with files in the IFS will be happy to hear a new software utility has been ported to the IBM i PASE environment that could save them a bunch of time. The open source software, called Midnight Commander, gives developers and administrators a handy command line experience that can help speed up tasks, especially when giving commands to large number of files stored on remote machines.
Midnight Commander was originally developed in 1994 as a file utility for UNIX, which was beginning to emerge from software labs to challenge minicomputer platforms of the day, such as the AS/400, as well as early Windows operating systems. Miguel de Icaza, who’s known for founding the Mono project (among others), is credited with creating Midnight Commander, but over the years development of the product has become a group effort.
The utility, which is distributed via a GNU license from www.midnightcommander.org, was largely modeled off Norton Commander, an MS-DOS utility developed in the 1980s by Norton. But Midnight Commander has evolved into its own thing over the years, and the resemblance to that old Norton product today largely is only in the name.
Midnight Commander presents users with a two-panel, text-based interface that lets them view the directories and files for the machines they’re connected to. Users can also pull up menus of available commands and a history of activity. What really sets Midnight Commander apart, however, is its command extension and subshell execution environments, which are highly customizable.
Users are able to initiate a slew of basic directory functions with Midnight Commander, including creating, viewing, renaming, moving, and deleting directories. Users can’t create data in Midnight Commander (that’s the job for applications), but they can copy, move, and delete individual files — or even better, groups of files. Integrated FTP and SFTP functionality enables users to work with files across a variety of systems.
Midnight Commander gives users a handful of special commands for dealing with files or directories in bulk. They can use commands like “%s” or “%t” to indicate which files to execute a given command upon (in this case “the files under the cursor and all highlighted files in the active panel” and ” all highlighted files in the active panel,” respectively).
The software lets users set default programs to use for opening certain file types, which is done using the “enter” button. Text files are opened in a default editor, and users can configure the software to automatically open up other types of files, such as HTML files, in a Web browser.
Midnight Commander makes extensive use of function keys, and these come in handy when using the command extensions. Command extensions allow the user to specific certain types of commands be applied to individual files or groups of files.
For example, a user could configure Midnight Commander to automatically archive files with one command, or to initiate file transfer with another. Pressing the F2 button pulls up a handy reference of available commands, while F1 calls the help screens.
The richness of the command extension environment, along with the speed of the command line, are expected to give Midnight Commander an audience among developers and administrators who feel drag-and-drop GUIs are too cumbersome for some file operations. And while Midnight Commander will appeal to those who like to keep their hands on the keyboard, the software is also mouse-aware, giving customers the option of navigating and issuing commands with the mouse.
Midnight Commander will likely appeal to developers and administrators who find themselves elbows deep in IFS folders, when a GUI approach is too cumbersome.
Midnight Commander supports Unix, Linux, MacOS, and other operating systems. Jack Woehr, the lead IBM i support tech for Absolute Performance, and the IBM open source team, headed by open source architect Jesse Gorzinski, are credited with completing the port of Midnight Commander to IBM i’s PASE AIX runtime environment in the middle of 2018.
“I am a longtime (20+ years) user of MC on Linux, OpenBSD, Mac and Windows and am thrilled to finally have succeeded in building it on IBM i PASE environment!” writes the user “jax” on the Midnight Commander website.
Woehr also was involved in porting Ublu to IBM i, as well as porting Lynx, a text-only Web browser, to IBM i. “Jack also helped with quality assurance and worked with project owners to upstream all code changes,” Gorzinski wrote in his November 2018 column in IBM Systems Magazine. “In fact, the main code stream for Midnight Commander can now be built for IBM i with no modifications.”
Midnight Commander supports IBM i 7.3. The software is RPM aware and is available for download on the IBM i server using the new Yum distribution method that debuted recently.