# MAN1 MAN1 (1) Section 1 of the Manual describes user commands. The sections of the manual are: -->Section 1: User commands Section 2: System calls Section 3: C library Section 4: File formats Section 5: Miscellaneous Section 6: Games Section 7: Special files (devices) Section 8: Maintenance procedures # ar ar (1) COMMAND ar - archiver SYNTAX ar [dmpqrtx][abciluv] [posname] archive file ... FLAGS (none) EXAMPLES ar r libc.a sort.s Replace sort.s in libc.a ar rb a.s libc.a b.s Insert b.s before a.s in libc.a Ar allows groups of files to be put together into a single archive. It is normally used for libraries of compiled procedures. The following keys are allowed: d: Delete. Ar will delete the named members. m: Move named files. Ar expects a, b, or i to be specified. p: Print the named files (list them on stdout) q: Quickly append to the end of the archive file. r: Replace (append when not in archive). t: Print the archive's table of contents. x: Extract The keys may optionally concatencated with one or more of the following: a: After posname b: Before posname c: Create (suppresses creation message) i: Before posname l: Local temporary file for work instead of /tmp/ar.$$$$$ u: Replace only if dated later than member in archive v: Verbose (ast) # ascii ascii (1) COMMAND ascii - strip all the pure ASCII lines from a file SYNTAX ascii [-n] [file] FLAGS -n Extract the lines containing non-ASCII characters EXAMPLES ascii file >outf Write all the ASCII lines on outf ascii -n outf Write all the non-ASCII lines on outf Sometimes a file contains some non-ASCII characters that are in the way. This program allows the lines containing only ASCII characters to be grepped from the file. With the -n flag, the non-ASCII lines are grepped. No matter whether the flag is used or not, the program returns an exit status of true if the file is pure ASCII, and false otherwise. (ast) # asld asld (1) COMMAND asld - assembler-loader [IBM] SYNTAX asld [-Lis] [-T dir] [-o name] file ... FLAGS -L A listing is produced on stdout -T Used to specify a directory for the temporary file -i Use separate I & D space (64K + 64K) -o Output goes to file named by next argument -s A symbol table is produced on stdout EXAMPLES asld -s file.s Assemble file.s and list symbols asld -o output file.s Assemble file.s, put binary on output asld -T. file1.s file2.s Use current directory for temporary file Asld is the MINIX assembler and loader combined. It accepts a language similar to that accepted by the PC-IX assembler (see Chap. 9). Symbols are made up of letters, digits and underscores. The machine instructions and addressing modes are the same as those used by PC-IX, except that modes using multiple registers are written like this example: mov ax,(bx_si). Constant operands are denoted by a sharp sign. Local labels are permitted in the usual UNIX style: the instruction jmp 1f jumps forward to the closest label 1: The pseudoinstructions accepted by the assembler are listed below: .align n Align to a multiple of n bytes .ascii str Assemble a string .asciz str Assemble a zero-terminated string .bss What follows goes in the bss segment .byte n Assemble one or more bytes .data What follows goes in the data segment .define sym Export sym from the file .errnz n Force error if n is nonzero .even Align to an even address .extern sym Declare sym external .globl sym Same as extern .long n Assemble n as a long .org adr Set address within current segment .short n Assemble n as a short .space n Skip n bytes .text What follows goes in the text segment .word n Assemble n as a word .zerow n Assemble n words of zeros In the above pseudoinstructions, adr is an expression yielding a machine address, n is a numeric expression, str is a quoted string, and sym is a symbol. The library /usr/lib/libc.a is a packed archive of assembly code. To see some examples of it, extract some files from the archive with ar and then use the filter libupack to convert them to readable ASCII. IBM PC MINIX does not use .o files. Compiler output is packed assembly language, as are the modules in an archive. This scheme requires reassembling archive modules all the time, but it saves space. The 68000 versions use .o files. See also Chap. 9. (ast) # ast ast (1) COMMAND ast - add symbol table to executable file [IBM] SYNTAX ast [-Xx] [file] [symbol_file] FLAGS -X Preserve local symbols (except compiler generated ones) -x Do not preserve local symbols EXAMPLES ast -X a.out Add symbols from symbol.out to a.out Ast adds the symbol table produced by the -s option of asld to the executable file. If no symbol table file is listed, the default name symbol.out is used. The symbol table can also be directly added to an executed file by the commands cc -s prog.c. (ast) # at at (1) COMMAND at - execute commands at a later time SYNTAX at time [month day] [file] FLAGS (none) EXAMPLES at 2315 Jan 31 myfile Myfile executed Jan 31 at 11:15 pm at 0900 Job input read from stdin at 0711 4 29 Read from stdin, exec on April 29 At prepares a file to be executed later at the specified time by creating a special entry in /usr/spool/at. The program atrun should be started periodically, for example, every minute by cron. Atrun checks to see if any files in /usr/spool/at should now be run, and if so, it runs them and then puts them in /usr/spool/at/past. The name of the file created in /usr/spool/at by at is YY.DDD.HHMM.UU (where YY, DDD, HH, and MM give the time to execute and UU is a unique number). Note that when the command runs, it will not be able to use stdin or stdout unless specifically redirected. In the first example above, it might be necessary to put >/dev/tty0 on some lines in the shell script myfile. The same holds for the commands typed directly to at. (ast) # backup backup (1) COMMAND backup - backup files SYNTAX backup [-djmnorstvz] dir1 dir2 FLAGS -d At top level, only directories are backed up -j Do not copy junk: *.Z, *.bak, a.out, core, etc -m If device full, prompt for new diskette -n Do not backup top-level directories -o Do not copy *.o files -r Restore files -s Do not copy *.s files -t Preserve creation times -v Verbose; list files being backed up -z Compress the files on the backup medium EXAMPLES backup -mz . /f0 Backup current directory compressed backup /bin /usr/bin Backup bin from RAM disk to hard disk Backup (recursively) backs up the contents of a given directory and its subdirectories to another part of the file system. It has two typical uses. First, some portion of the file system can be backed up onto 1 or more diskettes. When a diskette fills up, the user is prompted for a new one. The backups are in the form of mountable file systems. Second, a directory on RAM disk can be backed up onto hard disk. If the target directory is empty, the entire source directory is copied there, optionally compressed to save space. If the target directory is an old backup, only those files in the target directory that are older than similar names in the source directory are replaced. Backup uses times for this purpose, like make. Calling Backup as Restore is equivalent to using the -r option; this replaces newer files in the target directory with older files from the source directory, uncompressing them if necessary. The target directory contents are thus returned to some previous state. (ast) # badblocks badblocks (1) COMMAND badblocks - put a list of bad blocks in a file SYNTAX badblocks block_special [block] ... FLAGS (none) EXAMPLES badblocks /dev/hd1 Handle bad blocks on /dev/hd1 badblocks /dev/hd3 310 570 1680 Three bad blocks on /dev/hd3 If a device contains bad sectors, it is important to not have them allocated to important files. This program makes it possible to collect up to 7 bad blocks into a dummy file, so they will not be allocated for a real file. When the program starts up, it asks for a list of bad blocks, unless they are provided as arguments. Then it creates a file whose name is of the form .Bad_xxxxx, where xxxxx is a pid. (ast) # basename basename (1) COMMAND basename - strip off file prefixes and suffixes SYNTAX basename file [suffix] FLAGS (none) EXAMPLES basename /user/ast/file.c Strips path to yield file.c basename /user/file.c .c Strips path and .c to yield file The initial directory names (if any) are removed yielding the name of the file itself. If a second argument is present, it is interpreted as a suffix and is also stripped, if present. This program is primarily used in shell scripts. (ast) # bawk bawk (1) COMMAND bawk - pattern matching language SYNTAX bawk rules [file] ... FLAGS (none) EXAMPLES bawk rules input Process input according to rules bawk rules - >out Input from terminal, output to out Awk is a pattern matching language. Bawk is Basic Awk, a subset of the original. The file name - can be used to designate stdin. The manual is given in Chap. 9. (ast) # btoa btoa (1) COMMAND btoa - binary to ascii conversion SYNTAX btoa [-adhor] [infile] [outfile] FLAGS -a Decode, rather than encode, the file -d Extracts repair file from diagnosis file -h Help menu is displayed giving the options -o The obsolete algorithm is used for backward compatibility -r Repair a damaged file EXAMPLES btoa a.btoa Convert a.out to ASCII btoa -a a.out Reverse the above Btoa is a filter that converts a binary file to ascii for transmission over a telephone line. If two file names are provided, the first in used for input and the second for output. If only one is provided, it is used as the input file. The program is a functionally similar alternative to uue/uud, but the encoding is completely different. Since both of these are widely used, both have been provided with MINIX . The file is expanded about 25 percent in the process. (ast) # cal cal (1) COMMAND cal - print a calendar SYNTAX cal [month] year FLAGS (none) EXAMPLES cal 3 1992 Print March 1992 Cal prints a calendar for a month or year. The year can be between 1 and 9999. Note that the year 91 is not a synonym for 1991, but is itself a valid year about 19 centuries ago. The calendar produced is the one used by England and her colonies. Try Sept. 1752, Feb 1900, and Feb 2000. If you do not understand what is going on, look up Calendar, Gregorian in a good encyclopedia. (ast) # calendar calendar (1) COMMAND calendar - reminder service SYNTAX calendar [-] [-r] FLAGS - Work for every user and send mail to him -r Restrict multiple execution on the same day EXAMPLES calendar Check calendar file in current directory calendar Normary used under the control of cron(8) calendar -r Normary used in /etc/rc file Basically the calendar program consults the file calendar in the current directory and display lines which contain today's or tomorrow's date. Month-day formats such as '12/25', 'Dec. 25', 'december 25', '*/25', '12/*', '*/*' are recognized. The asterisk means 'all' days or 'all' months. On weekends 'tomorrow' extends through next Monday without any consideration about holidays. To prevent ambiguity, the formats '25 Dec.' and '25/12' are not recognized. When an argument - is present, calendar works for all users with a file calendar in their login directories and sends them mail. Normally this is done daily under the control of cron. The -r option does its the same job as - option, but touches the calendar to prevents further access on the same day. Normally this is done in the /etc/rc file on a machine which may be booted several times in one day. (ast) # cat cat (1) COMMAND cat - concatenate files and write them to stdout SYNTAX cat [-u] [file] ... FLAGS -u Unbuffered output EXAMPLES cat file Display file on the terminal cat file1 file2 | lpr Concatenate 2 files and print result Cat concatenates its input files and copies the result to stdout. If no input file is named, or - is encountered as a file name, standard input is used. Output is buffered in 512 byte blocks unless the flag is given. If you just want to copy a file, cp should be used since it is faster. (ast) # cc cc (1) COMMAND cc - C compiler SYNTAX cc [-FLRSTUciosvw] [-Dname] ... [-Idir] ... [-LIB] file ... FLAGS -D The flag -Dx=y defines a macro x with (optional) value y -F Use a file instead of a pipe for preprocessor output [IBM] -I -Idir searches dir for include files -L List the assembly code on stdout [IBM] -LIB~Produce a library module [IBM] -R Complain about all non Kernighan & Ritchie code -S Produce an assembly code file, then stop -T The flag -Tdir tells cem to use dir for temporary files -U Undefine a macro -c Compile only. Do not link. -i Use separate I & D space (64K + 64K) [IBM] -o Put output on file named by next arg -s For IBM, add symbol table; for 68000 strip symbol table -v Verbose; print pass names -w Suppress warning messages EXAMPLES cc -c file.c Compile file.c cc -D_MINIX file.c Treat the symbol _MINIX as defined cc -c -LIB file.c Make a module for the library This is the C compiler. It has multiple passes. The names of the programs executed for each pass, their inputs and their outputs are given in the table below. Program Input Output Operation performed /lib/cpp prog.c prog.i C preprocessor [IBM] /lib/cem prog.i prog.k Parsing and semantic analysis /usr/lib/opt prog.k prog.m Optimization of the intermediate code /usr/lib/cg prog.m prog.s Code generation /usr/bin/asld prog.s a.out Assembly and linking [IBM] /usr/bin/as prog.s prog.o Assembly [68000] /usr/lib/ld prog.o .out Linking [68000] /usr/lib/cv .out a.out Conversion to MINIX\s0 format [68000] The main program, cc , forks appropriately to call the passes, transmitting flags and arguments. The -v flag causes the passes to be listed as they are called. The IBM C compiler uses a combined assembler-linker that takes in assembly code files in packed format and produces an a.out file. The 68000 C compiler uses normal .o files. Assembly language files on the IBM can be packed and unpacked using the filters libpack and libupack. The IBM libraries are archives of packed assembly code files, except that defined symbols must be declared by .define statements at the beginning. To make modules for inclusion in the library, use the -c and -LIB options. If you compile library modules by accident without using the -LIB flag, they will not be recognized, leading to undefined reference error messages from the linker. If memory is tight, use the -F flag to force the compiler to run the passes one at a time, without pipes. When available memory is very limited, it may be necessary to run chmem to reduce the sizes of some compiler passes. On the other hand, if the compiler (or, in fact, almost any program) begins acting strange, it is almost always due to its running out of stack or disk space. The relevant pass can be given more stack space using chmem . For large programs, it make take a little experimenting to get the sizes right. The cem is usually the guilty party. Be careful about /tmp filling up too. More space for scratch files can be obtained by removing other files of using -T. The compiler is derived from the ACK system (Tanenbaum et al., Communications of the ACM, Sept. 1983), not from the AT&T portable C compiler. The sources are available from the companies listed after the Table of Contents. (ast) # cdiff cdiff (1) COMMAND cdiff - context diff SYNTAX cdiff [-cn] oldfile newfile FLAGS -c Provide n lines of context EXAMPLES cdiff old new >f Write context diff on f cdiff -c1 old new >f Use only 1 line of context Cdiff produces a context diff by first running diff and then adding context. Some update programs, like patch, can use context diffs to update files, even in the presence of other, independent changes. (ast) # cgrep cgrep (1) COMMAND cgrep - grep and display context SYNTAX cgrep [-a n] [-b n] [-f] [-l n] [-n] [-w n] pattern [file] ... FLAGS -a How many lines to display after the matching line -b How many lines to display before the matching line -f Suppress file name in the output -l Lines are truncated to this length before comparison -n Suppress line numbers in the output -w Sets window size (same as -a n -b n) EXAMPLES cgrep -w 3 hello file1 Print 3 lines of context each way Cgrep is a program like grep, except that it also can print a few lines above and/or below the matching lines. It also prints the line numbers of the output. (ast) # chgrp ############ NEXT ENTRY HAS NOT BEEN CHECKED ############# chgrp (1) COMMAND chgrp - change group SYNTAX chgrp [-R] [user.]group file ... FLAGS -R Change directory hierarchies EXAMPLES chgrp system file1 file2 Make system the group of the files chrgp -R other dir1 Make other\R the group of all files below dir1 The group field (and optionally user field) of the named files is changed to group and user . Alternatively, a decimal gid (uid) may be specified instead of a group name. If the -R flag is used, the changes will be applied recursively to all files in named directories. Only the superuser may execute this command. (ast) # chmem chmem (1) COMMAND chmem - change memory allocation SYNTAX chmem [+] [-] [=] amount file FLAGS (none) EXAMPLES chmem =50000 a.out Give a.out 50K of stack space chmem -4000 a.out Reduce the stack space by 4000 bytes chmem +1000 file1 Increase each stack by 1000 bytes When a program is loaded into memory, it is allocated enough memory for the text and data+bss segments, plus an area for the stack. Data segment growth using malloc, brk, or sbrk eats up stack space from the low end. The amount of stack space to allocate is derived from a field in the executable program's file header. If the combined stack and data segment growth exceeds the stack space allocated, the program will be terminated. It is therefore important to set the amount of stack space carefully. If too little is provided, the program may crash. If too much is provided, memory will be wasted, and fewer programs will be able to fit in memory and run simultaneously. MINIX does not swap, so that when memory is full, subsequent attempts to fork will fail. The compiler sets the stack space to the largest possible value (for the Intel CPUs, 64K - text - data). For many programs, this value is far too large. Nonrecursive programs that do not call brk, sbrk, or malloc, and do not have any local arrays usually do not need more than 8K of stack space. The chmem command changes the value of the header field that determines the stack allocation, and thus indirectly the total memory required to run the program. The = option sets the stack size to a specific value; the + and - options increment and decrement the current value by the indicated amount. The old and new stack sizes are printed. (ast) # chmod ############ NEXT ENTRY HAS NOT BEEN CHECKED ############# chmod (1) COMMAND chmod - change access mode for files SYNTAX chmod [-R] mode file ... FLAGS -R Change hierarchies recursively EXAMPLES chmod 755 file Owner: rwx Group: r-x Others: r-x chmod +x file1 file2 Make file1 and file2 executable chmod a-w file Make file read only chmod u+s file Turn on SETUID for file chmod -R o+w dir Allow writing for all files in dir The given mode is applied to each file in the file list. If the -R flag is present, the files in a directory will be changed as well. The mode can be either absolute or symbolic. Absolute modes are given as an octal number that represents the new file mode. The mode bits are defined as follows: 4000 Set effective user id on execution to file's owner id 2000 Set effective group id on execution to file's group id 0400 file is readable by the owner of the file 0200 writeable by owner 0100 executable by owner 0070 same as above, for other users in the same group 0007 same as above, for all other users Symbolic modes modify the current file mode in a specified way. The form is: [who] op permissions { op permissions ...} {, [who] op ... } The possibilities for who are u, g, o, and a, standing for user, group, other and all, respectively. If who is omitted, a is assumed, but the current umask is used. The op can be +, -, or =; + turns on the given permissions, - turns them off; = sets the permissions exclusively for the given who. For example g=x sets the group permissions to --x. The possible permissions are r, w, x; which stand for read, write, and execute; s turns on the set effective user/group id bits. s only makes sense with u and g; o+s is harmless. (ast) # chown ############ NEXT ENTRY HAS NOT BEEN CHECKED ############# chown (1) COMMAND chown - change owner SYNTAX chown [-R] user[.group] file ... FLAGS -R Change directory hierarchies EXAMPLES chown ast file1 file2 Make ast the owner of the files chown -R ast.other dir Change the owner and group of all files in dir The owner field (and optionally group field) of the named files is changed to user (i.e., login name specified) and group. Alternatively, a decimal uid(gid) may be specified instead of a user name. Only the superuser may execute this command. (ast) # cksum ############ NEXT ENTRY HAS NOT BEEN CHECKED ############# cksum (1) COMMAND cksum - display file checksum and size SYNTAX cksum [file ...] FLAGS (none) EXAMPLES cksum Display CRC and size of stdin cksum *.c Display CRC and size of .c files Cksum calculates and writes to standard output the 32-bits CRC of the input files , or of stdin if no files were specified. The size in bytes of each file will be displayed after a space. The name of each file will be displayed after another space. (ast) # clr clr (1) COMMAND clr - clear the screen SYNTAX clr FLAGS (none) EXAMPLES clr Clear the screen All text is removed from the screen, resulting in an empty screen with the cursor positioned in the upper left-hand corner. (ast) # cmp cmp (1) COMMAND cmp - compare two files SYNTAX cmp [-ls] file1 file2 FLAGS -l Loud mode. Print bytes that differ (in octal) -s Silent mode. Print nothing, just return exit status EXAMPLES cmp file1 file2 Tell whether the files are the same cmp -l file1 file2 Print all corresponding bytes that differ Two files are compared. If they are identical, exit status 0 is returned. If they differ, exit status 1 is returned. If the files cannot be opened, exit status 2 is returned. If file1 is - , stdin is compared to file2 . (ast) # comm comm (1) COMMAND comm - print lines common to two sorted files SYNTAX comm [-123] file1 file2 FLAGS -1 Suppress column 1 (lines present only in file1) -2 Suppress column 2 (lines present only in file2) -3 Suppress column 3 (lines present in both files) EXAMPLES comm file1 file2 Print all three columns comm -12 file1 file2 Print only lines common to both files Two sorted files are read and compared. A three column listing is produced. Files only in file1 are in column 1; files only in file2 are in column 2; files common to both files are in column 3. The file name - means stdin. (ast) # compress compress (1) COMMAND compress - compress a file using modified Lempel-Ziv coding SYNTAX compress [-cdfv] [file] ... FLAGS -c Put output on stdout instead of on file.Z -d Decompress instead of compress -f Force output even if there is no saving -v Verbose mode EXAMPLES compress outfile Compress 1 file compress x y z Compress 3 files to x.Z, y.Z, and z.Z compress -d file.Z Decompress file.Z to file The listed files (or stdin, if none are given) are compressed using the Ziv-Lempel algorithm. If the output is smaller than the input, the output is put on file.Z or stdout if no files are listed. If compress is linked to uncompress, the latter is the same as giving the -d flag. Similarly, a link to zcat decompresses to stdout. The MINIX version of compress uses 13-bit compression. This means that when compressing files on other systems for transmission to MINIX , be sure that only 13-bit compression is used. On many systems, the default is 16-bit (too big). (ast) # cp ############ NEXT ENTRY HAS NOT BEEN CHECKED ############# cp (1) COMMAND cp - file copy SYNTAX cp [-Rfiprv] file1 file2 cp [-fRiprv] file ... directory FLAGS -f Forced remove existing file -i Ask before removing existing file -p Preserver full mode, uid, gid and times -r Copy directories and treat special files as ordinary -v Display what cp is doing -R Copy directories EXAMPLES cp oldfile newfile Copy oldfile to newfile cp -R special newspecial Copy the special file Cp copies one file to another, or copies one or more files to a directory. Unless the -r flag is specified, special files will be copied as special files. Copying a directory requires either the -r or the -R flags. (ast) # cpdir cpdir (1) COMMAND cpdir - copy a directory and its subdirectories SYNTAX cpdir [-msv] srcdir dstdir FLAGS -m merge into existing directory -s save attributes (owner, mode, time) -v verbose EXAMPLES cpdir dir1 dir2 create dir2 and copy dir1's files in it Cpdir copies directories recursively. By default (without -m flag) it creates a new directory within the specified dstdir. It will copy device files and recreate links, unlike backup, which does neither. (ast, rev. by asw 14.02.95) # crc crc (1) COMMAND crc - print the checksum of the file data SYNTAX crc file ... FLAGS (none) EXAMPLES crc *.c Print checksums of all the C programs The checksum of each argument is computed and printed, along with the file length and its name, one file per line. This program is useful for seeing if a file transmitted to another machine has arrived correctly. It is conceptually similar to sum, except that it uses a stronger checksum algorithm and also prints the length. (ast) # cron cron (1) COMMAND cron - clock daemon SYNTAX cron FLAGS (none) EXAMPLES /usr/bin/cron Use absolute path in /etc/rc Cron is clock daemon. It is typically started up by including the command /usr/bin/cron in the /etc/rc file. Once started, cron puts itself in the background, so no & is needed. It runs forever, sleeping most of the time. Once a minute it wakes up and examines /usr/lib/crontab to se e if there is any work to do. If there is, the work is done. The entries of /usr/lib/crontab contain 6 elements each. Some examples follow: Min Hr Dat Mo Day Command \0* \0* \0* \0* \0* /usr/bin/date >/dev/tty0 #print date every minute \00 \0* \0* \0* \0* /usr/bin/date >/dev/tty0 #print date on the hour 30 \04 \0* \0* 1-5 /bin/backup /dev/fd1 #do backup Mon-Fri at 0430 30 19 \0* \0* 1,3,5 /etc/backup /dev/fd1 #Mon, Wed, Fri at 1930 \00 \09 25 12 \0* /usr/bin/sing >/dev/tty0 #Xmas morning at 0900 only (ast) # ctags ctags (1) COMMAND ctags - build a tags file SYNTAX ctags [-r] file ... FLAGS -r Generate refs as well as tags EXAMPLES ctags -r *.h *.c Generate the tags file Ctags generates a tags file from a collection of C source files. It can also generate a refs file. The tags file is used by elvis' :tag command, and its -t option. Each C source file is scanned for #define statements and global function definitions. The name of the macro or function becomes the name of a tag. For each tag, a line is added to the tags file which contains: the name of the tag, a tab character, the name of the file containing the tag, a tab character, and a way to find the particular line within the file. The refs file is used by the ref program, which can be invoked via elvis K command. When ctags finds a global function definition, it copies the function header into the refs file. The first line is flush against the right margin, but the argument definitions are indented.the C source files. (ast) # cut cut (1) COMMAND cut - select out columns of a file SYNTAX cut [ -b | -c] list [file...] cut -f list [-d delim] [ -s] [file...] FLAGS -b Cut specified bytes -c Select out specific characters -d Change the column delimiter to delim -f Select out specific fields that are separated by the delimiter character ( see delim) -i Runs of delimiters count as one -s Suppres lines with no delimiter characters, when used with the -f option. Lines with no delimiters are passwd through untouched EXAMPLES cut -f 2 file Extract field 2 cut -c 1-2,5 file Extract character columns 1, 2, and 5 cut -c 1-5,7- file Extract all columns except 6 Cut extracts one or more fields or columns from a file and writes them o n standard output. If the -f flag is used, the fields are separated by a delimiter character, normally a tab, but can be changed using the -d flag. If the -c flag is used, specific columns can be specified. The list can be comma or BLANK separated. The -f and -c flags are mutually exclusive. Note: The POSIX1003.2 standard requires the option -b to cut out specific bytes in a file. It is intended for systems with multi byte characters (e.g. kanji), since MINIX uses only one byte characters, this option is equivalent to -c. For the same reason, the option -n has no effect and is not listed in this manual page. (ast) # date ############ NEXT ENTRY HAS NOT BEEN CHECKED ############# date (1) COMMAND date - print or set the date and time SYNTAX date [-q] [[MMDDYY]hhmm[ss]] date [-u] [+format] -q Read the date from stdin -u Print the date as GMT EXAMPLES date Print the date and time date 0221921610 Set date to Feb 21, 1992 at 4:10 p.m. With the -q flag or a numeric argument, date sets the GMT time and date. MMDDYY refers to the month, day, and year; hhmmss refers to the hour, minute and second. Each of the six fields must be exactly two digits, no more and no less. Date always display the date and time, with the default format for the system. The -u flag request GMT time instead of local time. A format may be specified with a + followed by a printf-like string with the following options: %% % character %A Name of the day %B Name of the month %D mm/dd/yy %H Decimal hour on 2 digits %I Decimal hour modulo 12 on 2 digits %M Decimal minute on 2 digits %S Decimal seconds on 2 digits %T HH:MM:SS %U Decimal week number, Sunday being first day of week %W Decimal week number, Monday being first day of week %X Same as %T %Y Decimal year on 4 digits %Z Time Zone (if any) %a Abbreviated name of the day %b Abbreviated name of the month %c Appropriate date & time (default format) %d Decimal day of the month on 2 digits %e Same as %d, but a space replaces leading 0 %h Same as %b %j Decimal dey of the year on 3 digits %m Decimal month on 2 digits %n Newline character %p AM or PM %r 12-hour clock time with AM/PM %t Tab character %w Decimal day of the week (0=Sunday) %x Same as %D %y Decimal year on 2 digits (ast) # dd dd (1) COMMAND dd - disk dumper SYNTAX dd [option = value] ... FLAGS (none) EXAMPLES dd if=/dev/fd0 of=/dev/fd1 Copy disk 0 to disk 1 dd if=x of=y bs=1w skip=4 Copy x to y, skipping 4 words dd if=x of=y count=3 Copy three 512-byte blocks This command is intended for copying partial files. The block size, skip count, and number of blocks to copy can be specified. The options are: if = file - Input file (default is stdin) of = file - Output file (default is standard output) ibs = n - Input block size (default 512 bytes) obs = n - Output block size (default is 512 bytes) bs = n - Block size; sets ibs and obs (default is 512 bytes) skip = n - Skip n input blocks before reading seek = n - Skip n output blocks before writing count = n - Copy only n input blocks conv = lcase - Convert upper case letters to lower case conv = ucase - Convert lower case letters to upper case conv = swab - Swap every pair of bytes conv = noerror - Ignore errors and just keep going Where sizes are expected, they are in bytes. However, the letters w, b, or k may be appended to the number to indicate words (2 bytes), blocks (512 bytes), or K (1024 bytes), respectively. When dd is finished, it reports the number of full and partial blocks read and written (ast) # de de (1) COMMAND de - disk editor SYNTAX de [-w] block_device de -r file FLAGS -r Recover a file that has been removed -w Enable writing, so device can be modified EXAMPLES de -r /usr/ast/prog.c Undo the effects of: rm /usr/ast/prog.c de -w /dev/fd0 Edit /dev/fd0 for writing De is a program for system administrators that allows disks to be inspected block by block. A variety of display options and commands are available, as described in Chap. 9. For a summary, start the program and type h for help. The program can also restore files that have just been removed by rm, provided that the i-node and blocks are still intact. Another feature is searching disks for ASCII strings, to help locate things after a crash. Finally, individual disk words can be changed, for example, the sizes of block special files. (ast) # df df (1) COMMAND df - report on free disk space and i-nodes SYNTAX df special ... FLAGS (none) EXAMPLES df /dev/ram Report on free RAM disk space df /dev/fd0 /dev/fd1 Report on diskette space df~~~ Report on all mounted devices The amount of disk space and number of i-nodes, both free and used is reported. If no argument is given, df reports on the root device and all mounted file systems. (ast) # dhrystone dhrystone (1) COMMAND dhrystone - integer benchmark SYNTAX dhrystone FLAGS (none) EXAMPLES dhrystone Run the dhrystone benchmark Many years ago, a floating-point benchmark called whetstone was popular for benchmarking FORTRAN programs. Nowadays, an integer benchmark called dhrystone is widely used for benchmarking UNIX systems. This is it. Be warned, however, that dhrystone is entirely CPU bound, and goes blindingly fast on machines with high-speed caches. Although this is a good measure for programs that spend most of their time in some inner loop, it is a poor benchmark for I/O bound applications. (ast) # diff diff (1) COMMAND diff - print differences between two files SYNTAX diff [-c | -e | -C ] [-br] file1 file2 FLAGS -C Produce output that contains n lines of context -b Ignore white space when comparing -c Produce output that contains three lines of context -e Produce an ed-script to convert file1 into file2 -r Apply diff recursively to files and directories of the same name, when file1 and file2 are both directories EXAMPLES diff file1 file2 Print differences between 2 files diff -C 0 file1 file2 Same as above diff -C 3 file1 file2 Output three lines of context with every difference encountered diff -c file1 file2 Same as above diff /etc /dev Compares recursively the directories /etc and /dev diff passwd /etc Compares ./passwd to /etc/passwd Diff compares two files and generates a list of lines telling how the two files differ. Lines may not be longer than 128 characters. If the two arguments on the command line are both directories, diff recursively steps through all subdirectories comparing files of the same name. If a file name is found only in one directory, a diagnostic message is written to stdout. A file that is of either block special, character special or FIFO special type, cannot be compared to any other file. On the other hand, if there is one directory and one file given on the command line, diff tries to compare the file with the same name as file in the directory directory. (ast) # dis88 dis88 (1) COMMAND dis88 - disassembler [IBM] SYNTAX dis88 [-o] infile [outfile] FLAGS -o List the object code along with the assembly code EXAMPLES dis88 a.out >listing Disassemble a.out dis88 -o a.out listing Ditto, but with object code Dis88 is an 8088 disassembler. It takes an executable file and prints the symbolic assembly code that corresponds to it. If the executable file contain s a symbol table (added by the program ast), the symbol table information is used to give a more readable asembly listing. More information is provided in Chap. 9. (ast) # diskcheck diskcheck (1) COMMAND diskcheck - check a disk for bad sectors SYNTAX diskcheck device start count FLAGS (none) EXAMPLES diskcheck /dev/at0 0 1200 Check 1.2 MB diskette diskcheck /dev/at0 100 50 Check blocks 100 to 149 Diskcheck checks a disk for bad sectors by reading in each sector, writing a known bit pattern onto it, reading it back in and comparing with what was written. This check is then done a second time. Bad sectors are reported. After each sector is tested, the original sector is restored. Only use this program on unmounted partitions. Killing it part way through may result in lost data. (ast) # dosdir dosread doswrite dosdir (1) dosread (1) doswrite (1) COMMAND dosdir - list an MS-DOS directory [IBM] SYNTAX dosdir [-lr] drive FLAGS -l Long listing -r Recursively descend and print subdirectories EXAMPLES dosdir -l A List root directory on drive A dosdir -r C x/y Recursively list directory x/y COMMAND dosread - read a file from an MS-DOS diskette [IBM] SYNTAX dosread [-a] drive file FLAGS -a ASCII file EXAMPLES dosread C g/adv >adv Read file g/adv from hard disk dosread -a A prog.c >x Read ASCII file prog.c from drive A COMMAND doswrite - write a file onto an MS-DOS diskette [IBM] SYNTAX doswrite [-a] drive file FLAGS -a ASCII file EXAMPLES doswrite A x/y =, >}, {+, -}, *, /, %, and :. Parentheses are permitted. (ast) # factor factor (1) COMMAND factor - factor an integer less than 2**31 SYNTAX factor number FLAGS (none) EXAMPLES factor 450180 Print the prime factors of 450180 Factor prints the prime factors of its argument in increasing order. Each factor is printed as many times as it appears in the number. (ast) # fdisk fdisk (1) COMMAND fdisk - partition a hard disk [IBM] SYNTAX fdisk [-hm] [-sn] [file] FLAGS -h Number of disk heads is m -s Number of sectors per track is n EXAMPLES fdisk /dev/hd0 Examine disk partitions fdisk -h9 /dev/hd0 Examine disk with 9 heads When fdisk starts up, it reads in the partition table and displays it. It then presents a menu to allow the user to modify partitions, store the partition table on a file, or load it from a file. Partitions can be marked as MINIX , DOS or other, as well as active or not. Using fdisk is self-explanatory. However, be aware that repartitioning a disk will cause information on it to be lost. Rebooting the system immediately is mandatory after changing partition sizes and parameters. MINIX, XENIX, PC-IX, and MS-DOS all have different partition numbering schemes. Thus when using multiple systems on the same disk, be careful. Furthermore, MINIX expects all partitions to begin on an even sector. The m command, which marks a partition as MINIX , automatically rounds odd partitions upward. The reason that odd partition sizes do not cause a problem with MS-DOS is that MS-DOS allocates disk space in units of 512-byte sectors, whereas MINIX uses 1K blocks. Thus an odd number of sectors is no problem for MS-DOS but it is a problem for MINIX. That is why a command has been provided to round MINIX partitions to an even starting address and an even size. If your disk has partitions for both MS-DOS\s0 and MINIX, only the MINIX ones should be rounded off. Fdisk has a variety of other features that can be seen by typing h. (ast) # fgrep fgrep (1) COMMAND fgrep - fast grep SYNTAX fgrep [-cfhlnsv] [string_file] [string] [file] ... FLAGS -c Count matching lines and only print count, not the lines -f Take strings from file named in following argument -h Omit file headers from printout -l List file names once only -n Each line is preceded by its line number -s Status only, no output -v Print only lines not matching EXAMPLES fgrep % prog.c Print lines containing % sign fgrep -f pattern prog.c Take strings from pattern Fgrep is essentially the same as grep, except that it only searches for lines containing literal strings (no wildcard characters), and it is much faster. (ast) # file file (1) COMMAND file - make a guess as to a file's type based on contents SYNTAX file name ... FLAGS (none) EXAMPLES file a.out ar.h Guess at types File reads the first block of a file and tries to make an intelligent guess about what kind of file it is. It understands about archives, C source programs, executable binaries, shell scripts, and English text. (ast) # find find (1) COMMAND find - find files meeting a given condition SYNTAX find directory expression FLAGS (none) EXAMPLES find / -name a.out -print Print all a.out paths find /usr/ast ! -newer f -ok rm {}; Ask before removing find /usr -size +20 -exec mv {} /big; move files > 20 blks find / \( -name a.out -o -name \(fm*.o\(fm \) -exec rm {}; 2 conds Find descends the file tree starting at the given directory checking each file in that directory and its subdirectories against a predicate. If the predicate is true, an action is taken. The predicates may be connected by -a (Boolean and), -o (Boolean or) and ! (Boolean negation). Each predicate is true under the conditions specified below. The integer n may also be +n to mean any value greater than n, -n to mean any value less than n, or just n for exactly n. -name s true if current filename is s (include shell wild cards) -size n true if file size is n blocks -inum n true if the current file's i-node number is n -mtime n true if modification time relative to today (in days) is n -links n true if the number of links to the file is n -newer f true if the file is newer than f -perm n true if the file's permission bits = n (n is in octal) -user u true if the uid = u (a numerical value, not a log in name) -group g true if the gid = g (a numerical value, not a group name) -type x where x is bcdfug (block, char, dir, regular file, setuid, setgid) -xdev do not cross devices to search mounted file systems Following the expression can be one of the following, telling what to do when a file is found: -print print the file name on standard output -exec execute a MINIX\s0 command, {} stands for the file name -ok prompts before executing the command (ast) # fix fix (1) COMMAND fix - generate new file from old one and diff listing SYNTAX fix oldfile difflist >newfile FLAGS (none) EXAMPLES fix old difflist >new Generate new from old and diffs Fix accepts a diff listing produced by diff and reconstructs the new file. It is common for people to take a file, modify it, and then send the diff listing between the old and new files to other people. Using fix, the old file, and the diff listing, it is possible to create the new file. For example: diff oldfile newfile >difflist fix oldfile difflist >new2 will generate a file new2 that is identical to newfile. A more sophisticated alternative to fix is patch, as fix only handles old-style diffs. (ast) # fold fold (1) COMMAND fold - fold long lines SYNTAX fold [-n] [file] ... FLAGS -n How long should the output lines be EXAMPLES fold -60 Fold stdin to 60 characters fold file Fold file to 80 characters Fold takes copies its input from the named file (or stdin, if none is specified) to standard output. However, lines longer than the given maximum (default 80) are broken into multiple lines of the maximum length by inserting new line characters. (ast) # format format (1) COMMAND format - format a diskette [IBM] SYNTAX format [-a][-q][Special [kbsize]] [-v [dosvollabel]] FLAGS -a Sort interactive list alphabetically not by size -q Quiet mode: skips asking if you are sure -v Volume label added along with DOS structures EXAMPLES format Have format display a menu format /dev/at0 format disk in /dev/at0 format /dev/at0 360 Format disk with 360 blocks format /dev/dosA Format for DOS format /dev/fd1 -v DOS_DISK Format and label DOS disk Format allows the superuser to format diskettes. It can format all seven non-automatic disk/media combinations that PC-Minix supports. It will also try to format automatics, minor devices 0 through 3, if a device size is nozero. Format will optionally add the structures MS-DOS needs if either the device name is an MS-DOS device, like /dev/dosA, or if the -v flag is used. If no special file is specified in the command line format will display a menu of choices. It then allows automatic devices to be formatted even if they were made with a size of zero. Warning: Some disk drives are media sensitive, in which case the diskette must match the drive (e.g., no 360K diskettes in 1.2M drives). (ast ??) # fortune fortune (1) COMMAND fortune - print a fortune SYNTAX fortune FLAGS (none) EXAMPLES fortune Print a fortune Fortune prints a fortune at random from the fortunes file, /usr/lib/fortune.dat. This file consists of pieces of text separated by a line containing only %%. (ast) # from from (1) COMMAND from - input half of a connection [IBM] SYNTAX from port FLAGS (none) EXAMPLES from port | sort >x Fetch and sort an incoming file from abc | sh Primitive sherver To and from are used together to provide connection-oriented service over an Ethernet. On the sending machine, the last member of a pipeline is to port. On the receiving machine, the first member of a pipeline is from port. The net result is that the output of the sending pipeline goes into the input of the receiving pipeline, making pipelines work across the network. See also to. (ast) # fsck fsck (1) COMMAND fsck - perform file system consistency check SYNTAX fsck [-aclmrs] [device] ... FLAGS -a Automatically repair inconsistencies -c Check and list only the specified i-nodes -l List the files and directories in the filesytem -r Prompt user for repairs if inconsistencies are found -s List the superblock of the file system EXAMPLES fsck /dev/hd4 Check file system on /dev/hd4 fsck -a /dev/at0 Automatically fix errors on /dev/at0 fsck -l /dev/fd0 List the contents of /dev/fd0 fsck -c 2 3 /dev/hd3 Check and list /dev/hd3 i-nodes 2 & 3 Fsck performs consistency checks on the file systems which reside on the specified devices. When either the -a or -r flags are given, the file system will be repaired if errors are found. Before running fsck on a mounted file system, it must first be unmounted Trying to repair a mounted file system is dangerous and should not be attempted. To repair the root file system (which cannot be unmounted), first hit the F1 key to find the pid of the /etc/update process. Then become superuser and send update signal 9 using kill. After doing this, hit F1 again to verify that /etc/update has vanished. Next run fsck and then immediately reboot the computer, WITHOUT doing a sync. This is the only situation in which you can (in fact, must) reboot without doing a sync. Rebooting is needed because fsck repairs the disk but does not affect the (possibly incorrect) information held in memory. Doing a sync would force the (possibly incorrect) information from memory back onto the disk, thus ruining the work done by fsck. By rebooting immediately, memory is reloaded with correct information from the disk. It is necessary to kill /etc/update before repairing the root file system to prevent it from issuing sync calls while fsck is running. Because /etc/update only affects mounted file systems (and the root), when repairing a nonroot file system, unmounting it is sufficient; it is not necessary to kill /etc/update. (ast) # gather gather (1) COMMAND gather - gather up the files in a directory for transmission SYNTAX gather [-s] source_dir [-d] dest_dir [-b] bytes [-f] file FLAGS -b Desired number of bytes per output file -d Destination directory -f Base name of output files -s Source directory EXAMPLES gather Collect files in current dir into 60K archives gather -d dir Put the archives in dir gather -b 90000 Try to produce 90K archives gather -s .. -d targ -b 5000 Try to produce 5K archives It is often useful to collect all the files in a directory into one or more archives for transmission by mail. This program collects all the files in the source directory (default: current directory) and puts them into a shar archive. The shar archive is then compressed and uuencoded. An attempt is made to have the final .uue file be about the given size (default: 60K), but since gather cannot really predict how much shar will add to the file, how much compress will reduce the file, and how much uue will add again, the sizes can fluctuate. If the -f file flag is given, the archives will be given the names file_00.uue, file_01.uue etc. If -f is not given, the name of the source directory is used as the base name. Since 7 characters of suffix are appended, the base name should not exceed 7 characters. (ast) # getlf getlf (1) COMMAND getlf - wait until a line has been typed SYNTAX getlf [argument] FLAGS (none) EXAMPLES getlf Wait for a line In shell scripts it is sometimes necessary to pause to give the user a chance to perform some action, such as inserting a diskette. This command prints its argument, if any, and then waits until a carriage return has been typed, at which time it terminates. It is used in /etc/rc. (ast) # getty uugetty getty (1) uugetty(1) COMMAND getty - get terminal line parameters for login SYNTAX getty line [-c file] [-h] [-k] [-t] [speed] FLAGS -c Use fname as gettydefs file -h Do not hang up the phone after reset -k Do not use speed selection -t Do not time out at Login: prompt EXAMPLES /etc/getty /dev/tty1 1200 Connect to tty1 at 1200 baud The getty program allows a terminal port to be used for both dialin and dialout. It also detects the speed used, and, if enabled, it sets the various line discipline parameters. When getty starts up, it searches through the /etc/gettydefs file until it finds an entry that matches the label as specified in the speed parameter. If no parameter is present, the first entry is used. Getty then sets up the terminal line according to the initial parameters field found in gettydefs. If called as uugetty this program also performs some tasks that are needed before uucp can use the line. SEE ALSO gettydefs(4), modem (1) (ast rev by asw 950226) # grep grep (1) COMMAND grep - search a file for lines containing a given pattern SYNTAX grep [-elnsv] pattern [file] ... FLAGS -e -e pattern is the same as pattern -l Do not print line numbers -n Print line numbers -s Status only, no printed output -v Select lines that do not match EXAMPLES grep mouse file Find lines in file containing mouse grep [0-9] file Print lines containing a digit Grep searches one or more files (by default, stdin) and selects out all the lines that match the pattern. All the regular expressions accepted by ed and mined are allowed. In addition, + can be used instead of \(** to mean 1 or more occurrences, ? can be used to mean 0 or 1 occurrences, and | can be used between two regular expressions to mean either one of them. Parentheses can be used for grouping. If a match is found, exit status 0 is returned. If no match is found, exit status 1 is returned. If an error is detected, exit status 2 is returned. (ast) # gres gres (1) COMMAND gres - grep and substitute SYNTAX gres [-g] pattern string [file] ... FLAGS -g Only change the first occurrence per line EXAMPLES gres bug insect Replace bug with insect gres \*(SQ^[A-Z]+$\*(SQ CAPS Replace capital-only lines with CAPS Gres is a poor man's sed . It looks for the same patterns as grep , and replaces each one by the given string. (ast) # head head (1) COMMAND head - print the first few lines of a file SYNTAX head [-n] [file] ... FLAGS -n How many lines to print EXAMPLES head -6 Print first 6 lines of stdin head -1 file1 file2 Print first line of two files The first few lines of one or more files are printed. The default count is 10 lines. The default file is stdin. (ast) # ic ic (1) COMMAND ic - integer calculator SYNTAX ic [expression] FLAGS (none) EXAMPLES ic~~~~ Start the calculator ic 250 300+ Start calculator with 550 on the stack Ic is a reverse Polish notation calculator that works on 32-bit integers. It starts out by computing the expression given as an argument, if any, and then expects keyboard input. As an example, to compute 23+5 one first converts this to reverse Polish, 23 5+. After the calculator starts, type 23 followed by a carriage return. Then type 5 and another carriage return. Finally type + to see the result, 28 displayed on the stack. Other operations work the same way. The calculator can use other radices for input and output, and has registers that can be stored and loaded. The h\f R command gives the help menu. See also Chap. 9. (ast) # id id (1) COMMAND id - print the uid and gid SYNTAX id FLAGS (none) EXAMPLES id Print the uid and gid Id prints the current uid and gid, both numerically and symbolically. If the effective uid and gid are different from the real ones, all of them are printed. (ast) # ifdef ifdef (1) COMMAND ifdef - remove #ifdefs from a file SYNTAX ifdef [-t] [-dsymbol] [-Dsymbol] [-Usymbol] [-Isymbol] [file] FLAGS -D Define symbol permanently -I Ignore symbol -U Undefine symbol permanently -d Define symbol. It may be #undef'ed later -t Produce a table of the symbols on stdout EXAMPLES ifdef -DUNIX file.c >newfile.c Define UNIX ifdef -D_MINIX -UDOS y.c Define _MINIX, undefine DOS Ifdef allows conditional code [ #ifdef ... #endif ] to be selectively removed from C files, but at the same time leaving all other C preprocessor commands intact such as #define, #include etc. Input to ifdef is either the file named as the last argument, or stdin if no file is named. Output goes to stdout. Symbols may be defined with the -d or -D flags just like cpp, except that the latter option ignores subsequent #undefs. It is not permitted to give values to symbols. Similarly, -U undefines a symbol and ignores subsequent #definess[A. Symbols defined with -I are ignored; any #ifdef using an ignored symbol will be left intact. (ast) # indent indent (1) COMMAND indent - reformat the layout of a program SYNTAX indent in_file [out_file] [options] FLAGS (many) EXAMPLES indent -br -c25 prog.c Indent prog.c indent -npcs prog.c newprog.c Put output on newprog.c Indent reformats a C program according to a set of options provided. Most of the common choices are available. The output file replaces the input file, unless an explicit output file is specified (but a backup is made of the original with suffix .BAK). The options are given in Chap. 9. (ast) # inodes inodes (1) COMMAND inodes - print i-node information SYNTAX inodes FLAGS (none) EXAMPLES inodes Print information about file names typed in cd /dev; ls | inodes Print information about the special files Inodes expects a list of file names on stdin, one file name per line. For each file named, the file type, mode, uid, gid, checksum, length, and name is printed. The checksum is the same as used by crc. This program provides a way to see the sizes of the block special files in /dev, as shown in the second example above. (ast) # kermit kermit (1) COMMAND kermit - transfer a file using the kermit protocol SYNTAX kermit FLAGS (many) EXAMPLES kermit Start kermit Kermit is a file transfer program, remote connection program, and much more. Even summarizing it here would be out of the question. For a description of it, see the 379 page book Kermit: A File Transfer Protocol by Frank da Cruz, Digital Press, 1987, ISBN 0-932376-88-6, and also Chap. 9. (ast) # kill kill (1) COMMAND kill - send a signal to a process SYNTAX kill [-n] process FLAGS -n Signal number to send EXAMPLES kill 35 Send signal 15 to process 35 kill -9 40 Send signal 9 to process 40 kill -2 0 Send signal 2 to whole process group A signal is sent to a given process. By default signal 15 (SIGTERM) is sent. Process 0 means all the processes in the sender's process group. (ast) # last last (1) COMMAND last - display recent on-line session records SYNTAX last [-f file] [-r] [-n] [name\ fR] [tty] ... FLAGS -f Use file instead of /usr/adm/wtmp -r Search backwards only to last reboot -n Print a maximum of n lines EXAMPLES last reboot When was the system last rebooted? last ast When was the last login for ast? last -10 tty0 tty1 Display last 10 logins on tty0 or tty1 Last Searches backward through the login administration file (default is /usr/adm/wtmp), printing information about previous logins and reboots. During a long search, the SIGQUIT signal (CTRL-\\) causes last to display how far back it has gone; it then continues. (ast) # leave leave (1) COMMAND leave - warn when it is time to go home SYNTAX leave [ [+] hh[:]mm] FLAGS (none) EXAMPLES leave 1500 Issue a warning at 2:55 p.m. leave 10:00 Issue a warning at 9:55 a.m. leave + 30 Issue a warning in 25 minutes Leave sets an alarm clock to a specified time and issues a warning 5 minutes before, 1 minute before, and at the time to leave. It then keeps issuing warnings every minute for 10 minutes, then quits. If no time is provided, the program prompts for one. (ast) # libpack libpack (1) COMMAND libpack - pack an ASCII assembly code file [IBM] SYNTAX libpack FLAGS (none) EXAMPLES libpack y.s Pack x.s This program is a filter that reads an ASCII assembly code file from standard input and writes the corresponding packed file on standard output. The compiler libraries are archives of packed assembly code files. (ast) # libupack libupack (1) COMMAND libupack - convert a packed assembly code file to ASCII [IBM] SYNTAX libupack FLAGS (none) EXAMPLES libupack x.s Unpack y.s This program is a filter that reads a packed assembly code file from stdin and writes the corresponding ASCII file on standard output. (ast) # ln ############ NEXT ENTRY HAS NOT BEEN CHECKED ############# ln (1) COMMAND ln - create a link to a file SYNTAX ln [-f] file [name] SYNTAX ln [-f] file ... dir FLAGS -f Remove existing links EXAMPLES ln file newname Make newname a synonym for file ln /usr/games/chess Create a link called chess A directory entry is created for name. The entry points to file. Henceforth, name and file can be used interchangeably. If name is not supplied, the last component of file is used as the link name. If more than one file is supplied or the name refers to an existing directory, links will be created in that directory. An existing name will not be removed unless the -f flag is specified. (ast) # login login (1) COMMAND login - log into the computer SYNTAX login [user] FLAGS (none) EXAMPLES login ast Login as ast Login allows a logged in user to login as someone else without first logging out. If a password is needed, login will prompt for it. (ast) # look look (1) COMMAND look - look up words in dictionary SYNTAX look [-f] prefix[/suffix] [dictionary ] FLAGS -f Fold upper case letters to lower case EXAMPLES look ard Print words starting with ard look /bing Print words ending with bing look -f f/ar Print words starting with f, ending with ar Look takes a prefix and/or suffix and searches /usr/lib/dictionary or the specified dictionary for all words with that match. The words are printed. The -f flag causes all upper case letters to be treated as lower case. (ast) # lorder lorder (1) COMMAND lorder - compute the order for library modules [IBM] SYNTAX lorder file ... FLAGS (none) EXAMPLES lorder proc1.s proc2.s Give lorder information Lorder accepts a series of packed or unpacked .s files and libraries, and produces a partial ordering suitable for processing by tsort. (ast) # lpr lpr (1) COMMAND lpr - copy a file to the line printer SYNTAX lpr [file] ... FLAGS (none) EXAMPLES lpr file & Print file on the line printer pr file | lpr & Print stdin (pr's output) Each argument is interpreted as a file to be printed. Lpr copies each file to /dev/lp, without spooling. It inserts carriage returns and expands tabs. Only one lpr at a time may be running. (ast) # ls ls (1) COMMAND ls - list the contents of a directory SYNTAX ls [-abcdfgilmnopqrstux01ACFLRS] [name] ... FLAGS -A All entries are listed, except . and .. -C Multicolumn listing with entries sorted down the page -F Put /, | and * after directories, fifos and executables -L Print information about symbolic links -R Recursively list subdirectories -S Squeeze column widths in multicolumn listings -a List all entries including those starting with . -b Print non-graphic characters in octal \\ddd notation -c Use the status change time instead of modification time -d Do not list contents of directories -f List argument as unsorted directory -g As for -l, but print the group only -i I-node number printed in first column -l Long listing: mode, links, owner, group, size and time -m Stream output format -n As for -l, but print numeric uid and gid -o As for -l, but print the owner only -p Put / after directory names -q Print ? in place of non-graphic characters -r Reverse the sort order -s Print the size in 512 byte units -t Sort by time, latest first -u Use last usage time instead of modification time -x Multicolumn listing with entries sorted across the page -0 Reset all options -1 Print one entry per line (default) EXAMPLES ls -l~~ List files in working directory ls -lis List with i-nodes and sizes For each file argument, list it. For each directory argument, list its contents, unless -d is present. When no argument is present, the working directory is listed. (ast) # m4 m4 (1) COMMAND m4 - macro processor SYNTAX m4 [-D name = value] [-U name] FLAGS -D Define a symbol -U Undefine a symbol EXAMPLES m4 Go to the next message - Print the previous message !command Fork off a shell and execute command CTRL-D Update the mailbox and quit (same as q) d Delete the current message and go to the next one q Update the mailbox and quit (same as CTRL-D) p Print the current message again s [file] Save message in the named file x Exit without updating the mailbox To send mail, the program is called with the name of the recipient as an argument. The mail is sent, along with a postmark line containing the date. For local delivery, a file named after the recipient in the directory /usr/spool/mail must be writable. (ast) # make make (1) COMMAND make - a program for maintaining large programs SYNTAX make [-f file] [-iknpqrst] [option] ... [target] FLAGS -f Use file as the makefile -i Ignore status returned by commands -k On error, skip to next command -n Report, but do not execute -p Print macros and targets -q Question up-to-dateness of target -r Rule inhibit; do not use default rules -s Silent mode -t Touch files instead of making them EXAMPLES make kernel Make kernel up to date make -n -f mfile Tell what needs to be done Make is a program that is normally used for developing large programs consisting of multiple files. It keeps track of which object files depend on which source and header files. When called, it does the minimum amount of recompilation to bring the target file up to date. The file dependencies are expected in makefile or Makefile, unless another file is specified with -f. Make has some default rules built in, for example, it knows how to make .s files from .c files. Here is a sample makefile . d=/user/ast # d is a macro program: head.s tail.s # program depends on these cc -o program head.s tail.s # tells how to make program echo Program done. # announce completion head.s: $d/def.h head.c # head.s depends on these tail.s: $d/var.h tail.c # tail.s depends on these A complete description of make would require too much space here. Many books on UNIX discuss make. Study the numerous Makefiles in the MINIX source tree for examples. (ast) # man man (1) COMMAND man - display manual page SYNTAX man [man_directory] [digit] [name] ... FLAGS (none) EXAMPLES man Display main index man cdiff Display man page for cdiff program man 2 fork Display man page for fork system call man 3 Display the part 3 man pages Man is a program that displays manual pages. When called with a program name, it displays the manual page for that program. When the digit k is given as an argument, the file /usr/man/mank is used instead of the default, /usr/man/man1. When no name is given (or just a digit), the list of valid entries is displayed. The arrows can be used to select an entry, and can be used to display the selected entry. Q or q leaves the program. A directory name can be given to override the use of /usr/man. See also: man_pages(5) (ast revised by asw 14.02.95) # master master (1) COMMAND master - control the creation of shervers [IBM] SYNTAX master count uid gid command FLAGS (none) EXAMPLES master 2 1 1 /bin/sherver port Start 2 shervers If a machine is intended to be used as a server, its /etc/rc file should have a command similar to the example above. When the system is booted, master runs and forks off the required number of shervers (shell servers), up to a maximum of four. They run with the indicated uid and gid, and listen to the indicated port. When an rsh is done on a client machine, the command is given to one of the shervers for execution When the sherver is done, it exits, master, which is always running, sees this, and creates a new sherver. Thus master is analogous to init, only it makes new shervers (usually) instead of new login programs. Master must run as root to be able to do setuid and setgid. (ast) # mined mined (1) COMMAND mined - MINIX editor SYNTAX mined [file] FLAGS (none) EXAMPLES mined /user/ast/book.3 Edit an existing file mined Call editor to create a new file ls -l | mined Use mined as a pager to inspect listing Mined (pronounced min-ed) is a simple full-screen editor. When editing a file, it holds the file in memory, thus speeding up editing, but limiting the editor to files of up to about 35K. Larger files must first be cut into pieces by split. Lines may be arbitrarily long. Output from a command may be piped into mined so it can be viewed without scrolling off the screen. See also Chap. 9. See also: mined_commands(5), regular_expressions(5) (ast revised by asw 14.02.95) # mkdir ############ NEXT ENTRY HAS NOT BEEN CHECKED ############# mkdir (1) COMMAND mkdir - make a directory SYNTAX mkdir [-p] [-m mode] directory ... FLAGS -m Create directory with mod -p Create missing intermediate directories EXAMPLES mkdir dir Create dir in the current directory mkdir -p /user/ast/dir Create the /user/ast and /user/ast/dir The specified directory or directories are created and initialized. If any intermediate directory is missing and (enp is specified, the missing component will be created and no error displayed if directory already exists. If the -m flag is used, this will be equivalent to a chmod on the directory after its creation. (ast) # mkfifo ############ NEXT ENTRY HAS NOT BEEN CHECKED ############# mkfifo (1) COMMAND mkfifo - make a named pipe SYNTAX mkfifo [-m mode] fifo ... FLAGS -m Create fifo with specified mode EXAMPLES mkfifo pipe Create pipe in the current directory mkfifo -m a+w systatus Create the systatus writable by all The specified fifo special files are created. If the -m flag is used, this will be equivalent to a chmod on the fifo special file after its creation. (ast) # mkfs mkfs (1) COMMAND mkfs - make a file system SYNTAX mkfs [-Ldot] special prototype FLAGS -L Make a listing on standard output -b Number of blocks in the file system -d Use mod time of mkfs binary for all files -i Number of i-nodes in the file system -o Use a drive other than 0 or 1 (safety precaution) -t Do not test if file system fits on the medium -1 Make a version 1 file system (for backward compatibility) EXAMPLES mkfs /dev/fd1 proto Make a file system on /dev/fd1 mkfs /dev/fd1 360 Make empty 360 block file system mkfs /dev/hd2 -b 20000 -i 4000 Make file system on partition 2 Mkfs builds a file system and copies specified files to it. The prototype file tells which directories and files to copy to it. If the prototype file cannot be opened, and its name is just a string of digits, an empty file system will be made with the specified number of blocks. The number of blocks can also be specified with the -b flag. A sample prototype file follows. The text following the # sign in the example below is comment. In real prototype files, comments are not allowed. boot # boot block file (ignored) 360 63 # blocks and i-nodes d--755 1 1 # root directory bin d--755 \|2 1 # bin dir: mode (755), uid (2), gid (1) sh \|---755 2 1 /user/bin/shell # shell has mode rwxr-xr-x mv -u-755 2 1 /user/bin/mv # u = SETUID bit login -ug755 2 1 /user/bin/login # SETUID and SETGID $ # end of /bin dev d--755 2 1 # special files: tty(char), fd0(block) tty c--777 2 1 4 0 # uid=2, gid=1, major=4, minor=0 fd0 b--644 2 1 2 0 360 # uid, gid, major, minor, blocks $ # end of /dev user d--755 12 1 # user dir: mode(755), uid(12), gid(1) ast d--755 12 1 # /user/ast $ # /user/ast is empty $ # end of /user $ # end of root directory The first entry on each line (except the first 3 and the $ lines, which terminate directories) is the name the file or directory will get on the new file system. Next comes its mode, with the first character being -dbc for regular files, directories, block special files and character special files, respectively. The next two characters are used to specify the SETUID and SETGID bits, as shown above. The last three characters of the mode are the rwx protection bits. Following the mode are the uid and gid. For special files, the major and minor devices are needed. The size in blocks must also be specified for block special files (the MINIX block size is 1K; this can only be changed by changing BLOCK_SIZE and then recompiling the operating system). (ast) # mknod mknod (1) COMMAND mknod - create a special file SYNTAX mknod file [b] [c] major minor [size] FLAGS (none) EXAMPLES mknod /dev/plotter c 7 0 Create special file for a plotter mknod /dev/fd3 b 2 3 360 Create a 360K device for disk drive 3 Mknod creates a special file named file, with the indicated major and minor device numbers. The second argument specifies a block or character file. Block devices have a size, which must be specified in blocks. Character devices do not have a size so the fifth argument is omitted. (ast) # mkproto mkproto (1) COMMAND mkproto - create a MINIX prototype file SYNTAX mkproto [-b n] [-d str] [-g n] [-i n] [-p nnn] [-s] [-t root] [-u n] FLAGS -b Number of blocks in the prototype is n -d Indent the prototype file using str instead of tab -g Use n as the gid for all files and directories -i Number of i-nodes in the prototype is n -p Use nnn (3 octal digits) as the protection mode -s Use the same uid, gid and mode as the source files have -t Use the string root as the path prefix for every file -u Use n as the uid for all files and directories EXAMPLES mkproto -b360 Make a 360K prototype of this directory mkproto -u2 -g1 -p644 Give all files uid 2, gid 1 and mode 644 Mkproto creates an mkfs prototype file for the specified source-directory. The prototype file is either written to stdout or, if specified, the proto-file. (ast) # modem ungetty modem (1), ungetty(1) COMMAND modem - switch the modem and getty state SYNTAX modem [-d] [-g] <-o | -i num> ttyn FLAGS -o Turn getty off and set modem to dialout -i Set line to dialin -d debug mode -g plain getty mode (not dialin) EXAMPLES modem -o tty1 Set tty1 to dialout modem -i2 tty1 Set tty1 to dialin (2 rings) The getty program allows a terminal port to be used for both dialin and dialout. This little program switches the getty state, and also sends some commands to the modem attached to the specified line. If the -o flag is presnt, modem will put the getty process (if any) connected to the specified line into SUSPEND state, which means that it will not pay attention to that line until it is reset to RESTART state. Also, modem will send some (Hayes) commands to the attached modem to disable the auto-answer mode. The -i flag specifies the number of times the telephone has to ring before the modem may answer the call (to give the operator a chance). (ast rev asw 950226) # more more (1) COMMAND more - pager SYNTAX more [-dflpsu] [-n] [+n] [+/] [file] ... FLAGS -d Display prompt message at each pause -f Do not fold lines -l Do not treat CTRL-L as form feed -p Page mode. Do not scroll -s Suppress multiple blank lines -u Use escape sequences for underlining EXAMPLES more file Display file on the screen more -p file1 file2 Display two files in page mode more -10 file Use a 10 line window more +/begin file Hunt for the string begin More is a pager that allows one to examine files. When more starts up, it displays a screenful of information from the first file in its list, and then pauses for one of the following commands. In this description, # represents an integer telling how many of something. - Display next page - Display next line CTRL-B - Go backward half a screenful CTRL-D - Go forward half a screenful CTRL-L - Redisplay the screen # - Go forward # lines = - Print current line number . - Repeat previous command ' - (single quote) Go back to start of last search ! - Escape to a shell #/ - Go to #-th occurrence of :f - Display current file name and line number #:n - Skip forward # files #:p - Skip backward # files b - Go backward half a screenful d - Go forward half a screenful #f - Skip # screenfuls h - Display /usr/lib/more.help #n - Go to #-th occurence of last q - Quit more Q - Quit more #s - Skip # lines v - Try to execute /usr/bin/vi #z - Go forward # lines and set screen size to # For the benefit of users who always want to use certain flags when calling more, the shell variable MORE can be set, for example, to MORE="p". (ast) # mount mount (1) COMMAND mount - mount a file system SYNTAX /etc/mount special file [-r] FLAGS -r File system is mounted read-only EXAMPLES /etc/mount /dev/fd1 /user Mount diskette 1 on /user The file system contained on the special file is mounted on file. In the example above, the root directory of the file system in drive 1 can be accessed as /user after the mount. When the file system is no longer needed, it must be unmounted before being removed from the drive. (ast) # mref mref (1) COMMAND mref - make listing and cross reference map of MINIX SYNTAX mref [-dlmstx] [-p n] [-n] file .. FLAGS -d Do not produce definition file (global symbol table) -l Do not produce listing -m Multiple references on one line are cited only once -p Set initial page number to n -s Suppress line numbering between procedures -t Generate output for troff -x Do not produce the cross reference map -n Number of lines to print per page, default = 50 EXAMPLES mref *.[hc] List and cross reference files .h and .c mref -60 -t *.c Produce troff input at 60 lines/page mref -dx -p 100 *.c Listing only, first page is numbered 100 In default mode, mref produces three output files: a numbered listing of the input files (on standard output), a global symbol table (on symbol.out), and a cross reference map to the global symbols (on xref.out). A global symbol in this context is one present in a #define, PUBLIC, PRIVATE, or SYMBOL statement (the latter being introduced to allow users to explicitly declare certain symbols as global). Any of the three outputs can be suppressed, or alternatively, be made suitable for input to troff for typesetting. (ast) # mv ############ NEXT ENTRY HAS NOT BEEN CHECKED ############# mv (1) COMMAND mv - move or rename a file SYNTAX mv [-fi] file1 file2 mv [-fi] file ... directory FLAGS -f Do not prompt before removing existing files -i Prompt before removing existing files EXAMPLES mv oldname newname Move oldname to newname mv file1 file2 /user/ast Move two files to /user/ast Mv moves one or more files from one place in the file system to another. If the old path and new path are on the same device, it is done by renaming otherwise by copying. If you're not superuser, the copy will destroy the file's owner, group and setuid/setgid bits. mv will prompt before removing non-writable files if stdin is a terminal or the -i flag was specified. (ast) # ncheck ncheck (1) COMMAND ncheck - i-node to name converter SYNTAX ncheck [-i numbers] [-a] [-s] file_sy stem FLAGS -a List all files, even . and .. -i Followed by a list of i-nodes -s List only special and setuid files EXAMPLES ncheck - /dev/fd0 List everything on /dev/fd0 ncheck -i 10,15 /dev/fd0 List i-nodes 10 and 15 on /dev/fd0 Sometimes one knows about an i-node number and wants to find the file name that goes with it. This program makes that mapping. The default is to list everything on the device, but the -i flag restricts the list to specified i-nodes and the -s flag restricts it to special files and setuid files (to look for possible security violations). (ast) # nm nm (1) COMMAND nm - print name list SYNTAX nm [-dgnopru] [file] ... FLAGS -d Print the offsets in decimal instead of in hex -g Print only external symbols -n Sort numerically rather than alphabetically -o Prepend file name to each line rather than only once -p Do not sort, print in symbol-table order -r Sort in reverse order -u Print only undefined symbols EXAMPLES nm -n a.out Print all symbols in numerical order nm -dg a.out Print globals alphabetically in decimal Nm prints the symbol table of executable files when it is available. If no file is given, the symbols in a.out are used. The format of the table is somewhat compatible with the one produced by asld when used with the -s option. The symbol table can be added with ast. Assembly language files do not have symbol tables. (ast) # nroff nroff (1) COMMAND nroff - text formatter SYNTAX nroff [-bv] [-m] [-p] [-] [+] [file] ... FLAGS -b Output device can backspace -m Use /usr/lib/tmac/tmac. macros -v Print nro version number - Last page to print + First page to print EXAMPLES nroff infile >outfile Format infile nroff +3 -5 infile >outfile Only output pages 3-5 Nroff is a text formatter like roff, but more flexible. Unlike roff, it accepts parametrized macros, for example. The commands are given in Chap. 9. (ast) # od od (1) COMMAND od - octal dump SYNTAX od [-bcdhox] [file] [ [+] offset [.\f R][b] ] FLAGS -b Dump bytes in octal -c Dump bytes as ASCII characters -d Dump words in decimal -h Print addresses in hex (default is octal) -o Dump words in octal (default) -v Verbose (list duplicate lines) -x Dump words in hex EXAMPLES od -ox file Dump file in octal and hex od -d file +1000 Dump file starting at byte 01000 od -c file +10.b Dump file starting at block 10 Od dumps a file in one or more formats. If file is missing, stdin is dumped. The offset argument tells od to skip a certain number of bytes or blocks before starting. The offset is in octal bytes, unless it is followed by a "." for decimal or "b" for blocks, or both. See also: xd (1) (ast) # passwd passwd (1) COMMAND passwd - change a login password SYNTAX passwd [name] FLAGS (none) EXAMPLES passwd Change current user's password passwd ast Change ast's password (super-user only) Passwd is used to change your password. It prompts for the old and new passwords. It asks for the new password twice, to reduce the effect of a typing error. Do not forget to copy the modified password file back to the root file system, or the changes will be lost when the system is rebooted. (ast) # paste paste (1) COMMAND paste - paste multiple files together SYNTAX paste [-s] [-d list] file... FLAGS -d Set delimiter used to separate columns to list. -s Print files sequentially, file k on line k. EXAMPLES paste file1 file2 Print file1 in col 1, file2 in col 2 paste -s f1 f2 Print f1 on line 1 and f2 on line 2 paste -d : file1 file2 Print the lines separated by a colon Paste concatenates corresponding lines of the given input files and writes them to standard output. The lines of the different files are separated by the delimiters given with the option -s. If no list is given, a tab is substituted for every linefeed, except the last one. If end-of-file is hit on an input file, subsequent lines are empty. Suppose a set of k files each has one word per line. Then the paste output will have k columns, with the contents of file j in column j. If the -s flag is given, then the first file is on line 1, the second file on line 2, etc. In effect, -s turns the output sideways. If a list of delimiters is given, they are used in turn. The C escape sequences \\n, \\t, \\\\, and \\0 are used for linefeed, tab, backslash, and the null string, respectively. (ast) # patch patch (1) COMMAND patch - patches up a file from the original and a diff SYNTAX patch [-NRbcdeflnop] [-Fn] [-D label] [file [difflist]] FLAGS -D Mark changes with #ifdef...#endif next arg gives label -F Sets the maximum fuzz factor to n -N Ignore patches that are reversed or already applied -R Reverse the patches -b Next argument is backup extension, instead of using a tilde -c Interpret the patch file as a context diff -d Cd to the next arg (assumed a dir) before doing anything -e Interpret the patch file as an ed script -f Forces patch to do its work without asking any questions -l Do matching loosely (e.g., all white space is equivalent) -n Interpret the patch file as a normal diff -o Next argument is the output file name -p Sets the pathname strip count EXAMPLES patch file difflist Fix up file patch outfile Prepare infile Prep strips off most of the troff commands from a text file and then outputs all the words, one word per line, in the order they occur in the file. This file can then be sorted and compared to a dictionary (as a spelling checker), or used for statistical analyses. (ast) # pretty pretty (1) COMMAND pretty - MINIX pretty printer SYNTAX pretty file ... FLAGS (none) EXAMPLES pretty file1 file2 Convert two files to MINIX\s0 layout Pretty converts one or more C source files to MINIX format by changing their layout. Running this program does not affect the resulting binary programs. Actually, pretty is a postprocessor for indent, which must be installed in /bin or /usr/bin. Although the output is not bad, it is not entirely consistent with the book or even with itself. (ast) # printenv printenv (1) COMMAND printenv - print out the current environment SYNTAX printenv FLAGS (none) EXAMPLES printenv Print the environment Printenv prints out the current environment strings, one per line. (ast) # printroot printroot (1) COMMAND printroot - print the name of the root device on standard output SYNTAX printroot FLAGS (none) EXAMPLES printroot Print the name of the root device Printroot is useful for initializing the /etc/mtab entry when the system is booted. It figures out what the root device is by searching /dev until it finds a block special file with the right major/minor device numbers. (ast) # ps ps (1) COMMAND ps - process status SYNTAX ps [-alxU] [kernel mm fs] FLAGS -a Print all processes with controlling terminals -l Give long listing -x Include processes without a terminal -U Update (optional) name database EXAMPLES ps -axl Print all processes and tasks in long format ps -U /kernel /mm /fs Update database with given namelists Ps prints the status of active processes. Normally only the caller's own processes are listed in short format (the PID, TTY, TIME and CMD fields as explained below). The long listing contains: F Kernel flags: 001: free slot 002: no memory map 004: sending; 010: receiving 020: inform on pending signals 040: pending signals 100: being traced. S State: R: runnable W: waiting (on a message) S: sleeping (i.e.,suspended on MM or FS) Z: zombie T: stopped UID, PID, PPID, PGRP The user, process, parent process and process group ID's. ADDR, SZ Decimal address and size of the process in kilobytes. RECV Process/task on which a receiving process is waiting or sleeping. TTY Controlling tty for the process. TIME Process' cumulative (user + system) execution time. CMD Command line arguments of the process. If extra arguments (the kernel, mm and fs nonstripped executables) are given, these are used to obtain the system addresses from (instead of the default system executables). This applies to the -U option also. This option creates /etc/psdatabase that contains system addresses and terminal names, after which ps is faster and doesn't need the system executables anymore. The default system executables are /usr/src/{kernel/kernel,mm/mm,fs/fs}. If the database is updated, an old psdatabase exists, and no paths are given to ps, it uses the paths that were previously stored in the database. A ps -U in /etc/rc thus generally ensures an up-to-date database. The files /dev/{mem,kmem} are used to read the system tables and command line arguments from. Terminal names in /dev are used to generate the mnemonic names in the TTY column, so ps is independent of terminal naming conventions. Warning: ps depends heavily on up-to-date system addresses and parameters. It prints messages when they appear to be outdated. (ast) # pwd pwd (1) COMMAND pwd - print working directory SYNTAX pwd FLAGS (none) EXAMPLES pwd Print the name of the working directory The full path name of the current working directory is printed. (ast) # query query(1) NAME: query SYNTAX: query [arg1] [arg2] ... FLAGS: none EXAMPLES: query # prompt "Yes or no? (Y/n) " and wait for response query Do you want to mount /usr? # prompt "Do you want to mount /usr?" and wait DISCUSSION Query repeats its arguments (if any) as a prompt and then waits for input. If no arguments are supplied a built in prompt is issued. If the response is 'n' or 'N' query returns an exit status of false, for any other input true is returned. (asw 11.4.93) # rcp rcp (1) COMMAND rcp - remote copy [IBM] SYNTAX rcp [machine1!]file1 [machine2!]file2 FLAGS (none) EXAMPLES rcp file mach1!/usr/ast/x Local file to remote machine rcp mach2!/usr/ast/x file Fetch remote file x Rcp is not a program. It is a shell script that does remote copying. It makes use of the programs to and from. (ast) # readall readall (1) COMMAND readall - read a device quickly to check for bad blocks SYNTAX readall [-bt] file FLAGS -b Produce shell script on stdout that calls badblocks -t Just print device size EXAMPLES readall /dev/hd0 Read all of /dev/hd0 readall -b /dev/hd1 >s Generate shell script on s Readall reads all of the named device in large chunks. It reports about blocks that it cannot read. Unlike diskcheck, it does not attempt to write on the disk, making it safer to use when one is worried about a sick system. When the -b flag is given, the output is a shell script that calls the badblocks program to marked all the bad blocks. Whenever installing MINIX, it is wise to run readall with the -b flag first on all the hard disks. (ast) # readclock readclock (1) COMMAND readclock - read the real time clock [IBM PC/AT and AMIGA] SYNTAX readclock FLAGS (none) EXAMPLES date \`/usr/bin/readclock\` f Fetch remote file rsh foobar Log onto remote machine The remote shell command is the way to have a distant server carry out a command over the Ethernet. The port given as the first argument can be any string of up to 6 characters, but it must match the port used by some sherver. The command will be executed and the results returned on stdout\f R. Unless the -e flag is given, the remote stderr and stdout are merged onto the local stdout. Giving rsh with just a port and no argument is the standard way to log onto a remote machine. (ast) # rz rz (1) COMMAND rz - receive a file using the zmodem protocol SYNTAX rz [-abepqvy] [-t timeout] FLAGS -a CP/M to UNIX conventions -b Binary file -e Escape for all control characters -p Protect file if it already exists -q Quiet; opposite of verbose -t Set timeout in tenths of a second -v Verbose; opposite of quiet -y Yes, clobber existing files EXAMPLES rz /dev/tty1 Receive a file Rz is a program that accepts a file sent from another computer using the zmodem protocol. It is a highly complex program. See Chap 9 for more details. (ast) # scrndump scrndump(1) COMMAND: scrndump - read video memory and write to standard output SYNTAX: scrndump [[-]n1 [[-]n2]] FLAGS: [-]n1 Start at line n1 (0 <= n1 <= 24) [-]n2 Finish at line n2 (0 <= n2 <= 24, n1 <= n2) EXAMPLES: scrndump > screen.txt # Copy the screen to file screen.txt scrndump -1 -10 > file # write lines 1..10 to file scrndump 5 20 > file.txt.txt # write lines 5..20 to file.txt DISCUSSION: Scrndump captures the screen and writes it to standard output. It uses the BIOS parameter block video mode byte to determine whether the video buffer is at 0xb0000 (monochrome standard) or 0xb8000 (color standard). Software scrolling mode must be selected (with F3) before using scrndump. BUGS: Handling of incorrect parameters is not correct. Ridiculous arguments should trigger a usage message. Scrndump has only been tested on a few video display adapters, using standard 24 column x 80 row text displays. Your mileage may vary. AUTHOR: Albert S. Woodhull awoodhull@hamp.hampshire.edu 16.02.95 # sed sed (1) COMMAND sed - stream editor SYNTAX sed [-egn] [-f script_file] [edit_script] [file] FLAGS -e Accept multiple commands commands on the commands line -f The following argument contains the edit script -g Set the global flag on all substitute commands -n Only output selected lines EXAMPLES sed -f script file2 # Redirect stdin and stdout cc file.c 2>error # Redirect stderr a.out >f 2>&1 # Combine standard output and standard error sort >file2 # Append output to file2 sort file2 & # Background job (ls -l; a.out) & # Run two background commands sequentially sort s Collect C programs in shell archive sh ] [-o ] [+] [-] file ... FLAGS -b Skip leading blanks when making comparisons -c Check to see if a file is sorted -d Dictionary order: ignore punctuation -f Fold upper case onto lower case -i Ignore nonASCII characters -m Merge presorted files -n Numeric sort order -o Next argument is output file -r Reverse the sort order -t Following character is field separator -u Unique mode (delete duplicate lines) EXAMPLES sort -nr file Sort keys numerically, reversed sort +2 -4 file Sort using fields 2 and 3 as key sort +2 -t: -o out Field separator is : sort +.3 -.6 Characters 3 through 5 form the key Sort sorts one or more files. If no files are specified, stdin is sorted. Output is written on standard output, unless -o is specified. The options +pos1 -pos2 use only fields pos1 up to but not including pos2 as the sort key, where a field is a string of characters delimited by spaces and tabs, unless a different field delimiter is specified with -t. Both pos1 and pos2 have the form m.n where m tells the number of fields and n tells the number of characters. Either m or n may be omitted. (ast) # spell spell (1) COMMAND spell - print all words in a file not present in the dictionary SYNTAX spell file FLAGS (none) EXAMPLES spell document Print the spelling errors on stdout Spell is the MINIX spelling checker. It is actually a short shell script. First, the program prep strips off the roff, nroff, and troff control lines, and the punctuation, and lists each word on a separate line. These words are then sorted. The resulting output is then compared to the dictionary. Words present in the file but not present in the dictionary are listed. The dictionary must be located in /usr/lib/dictionary. (ast) # split split (1) COMMAND split - split a large file into several smaller files SYNTAX split [-n] [file [prefix]] FLAGS -n Number of lines per piece (default: 1000) EXAMPLES split -200 file Split file into pieces of 200 lines each split file z Split file into zaa, zab, etc. Split reads file and writes it out in n-line pieces. By default, the pieces are called xaa, xab, etc. The optional second argument can be used to provide an alternative prefix for the output file names. (ast) # strings strings (1) COMMAND strings - print all the strings in a binary file SYNTAX strings [-] [-o] [-n] file ... FLAGS - search whole file, not just data seg -o Print octal offset of each string -n n is minimum length string (default = 4) EXAMPLES strings -5 a.out Print the strings > 4 chars in a.out strings - /bin/sh Search entire shell file (text and data) Strings looks for sequences of ASCII characters followed by a zero byte. These are usually strings. This program is typically used to help identify unknown binary programs (ast) # strip strip (1) COMMAND strip - remove symbol table from executable file SYNTAX strip [file] ... FLAGS (none) EXAMPLES strip a.out Remove symbols from a.out For each file argument, strip removes the symbol table. Strip makes a copy of the file being stripped, so links are lost. (ast) # stty stty (1) COMMAND stty - set terminal parameters SYNTAX stty [option ...] FLAGS (none) EXAMPLES stty -echo Suppress echoing of input stty erase # Set the erase character to # When given no arguments, stty prints the current terminal parameters. It can also be used to set the parameters, as follows: cbreak - Enter cbreak mode; erase and kill disabled echo - Echo input on the terminal nl - Accept only line feed to end lines raw - Enter raw mode; no input processing at all tabs - Output tabs (do not expand to spaces) erase c - Set erase character (initially backspace) int c - Set interrupt (SIGINT) character (initially DEL) kill c - Set kill line character (initially @) quit c - Set quit (SIGQUIT) character (initially CTRL-\\) even - Use even parity odd - Use odd parity [5-8] - Number of bits per character [110-9600] - Baud rate default - Set options back to original values The first five options may be prefixed by - as in -tabs to turn the option off. The next four options each have a single character parameter separated by a space from the option. The default option sets the mode and the four settable characters back to the values they had when the system was booted. It is useful when a rogue program has messed them up. (ast) # su su (1) COMMAND su - temporarily log in as superuser or another user SYNTAX su [name] FLAGS (none) EXAMPLES su~~~~ Become superuser su ast Become ast Su can be used to temporarily login as another user. It prompts for the superuser password. If the correct password is entered, su creates a shell with the desired uid. If no name is specified, root is assumed. To exit the temporary shell, type CTRL-D. When memory is tight, it is better to become superuser by logging out and then logging in again as root, rather than using su since the latter creates an extra shell in memory. (ast) # sum sum (1) COMMAND sum - compute the checksum and block count of a file SYNTAX sum file FLAGS (none) EXAMPLES sum /user/ast/xyz Checksum /user/ast/xyz Sum computes the checksum of one or more files. It is most often used to see if a file copied from another machine has been correctly received. This program works best when both machines use the same checksum algorithm. See also crc. (ast) # svc svc (1) COMMAND svc - shell version control system SYNTAX ci [-lu] file SYNTAX co [-l] [-r rev] file svc file FLAGS -l For ci, checkin, checkout again, and lock file -l For co, checkout file and then lock the archive -u After checking in, do not delete the file -r Check out revision rev instead most recent revision EXAMPLES ci -u file Check in file co -l file Check out file and lock archive co -r 2 file Check out version 2 Svc is the Shell Version Control system, patterned on RCS. It maintains a sequence of versions in archive files, so that new versions can be checked in (added to the archive), and old versions can be checked out (made available). To create an archive for file, check it in with the -u flag. This action will prompt for a log message and then create an archive called file,S in the current directory, or in the subdirectory SVC if it exists. The file will not be deleted, but will be made unwritable. To update the file, check it out with the -l flag. Then modify it, and check it back in, giving a new message when prompted. After this process has been repeated many times, the archive will contain the entire history. Any version can be checked out using the -r flag. To get a printout of the history, use svclog. (ast) # sync sync (1) COMMAND sync - flush the cache to disk SYNTAX sync FLAGS (none) EXAMPLES sync Write out all modified cache blocks MINIX maintains a cache of recently used disk blocks. The sync command writes any modified cache blocks back to the disk. This is essential before stopping the system, and should be done before running any a.out program that might crash. (ast) # sz sz (1) COMMAND sz - send a file using the zmodem protocol SYNTAX sz [-LNbdefnopqruvy+] [-ci command] [-Ll n] [-t timeout] FLAGS -L Use n-byte packets -N Overwrite if source is newer/longer -b Binary file -c Send command for execution -d Convert dot to slash in names -e Escape for all control characters -f Send full path name -i Send command and return immediately -l Flow control every n packets -n Overwrite destination if source is newer -o Use old (16-bit) checksum -p Protect file if it already exists -q Quiet; opposite of verbose -r Resume interrupt file transfer -t Set timeout in tenths of a second -u Unlink file after successful transmission -v Verbose; opposite of quiet -y Yes, clobber existing files -+ Append to an existing file EXAMPLES sz file /dev/tty1 Send file XMODEM, YMODEM, and ZMODEM are a family of protocols that are widely used is the MS-DOS world for transferring information reliably from one computer to another. In all of these protocols, a series of bytes are sent from one computer to the other, and then an acknowledgement is sent back to confirm correct reception. Checksums are used to detect errors so that transmission is reliable even in the face of noisy telephone lines. Sz is a program that sends a file sent from another computer using the zmodem protocol. The file can be received using rz. Both are a highly complex programs. See Chap. 9 for more information. For an alternative, see kermit. (ast) # tail tail (1) COMMAND tail - print the last few lines of a file SYNTAX tail [-c n] [-f] [-n n] [file] ... FLAGS -c The count refers to characters -f On FIFO or special file, keep reading after EOF -n The count refers to lines EXAMPLES tail -n 6 Print last 6 lines of stdin tail -c 20 file Print the last 20 characters of file tail -n 1 file1 file2 Print last line of two files tail -n +8 file Print the tail starting with line 8 The last few lines of one or more files are printed. The default count is 10 lines. The default file is stdin. If the value of n for the -c or -n flags starts with a + sign, counting starts at the beginning, rather than the end of the file. (ast) # tar tar (1) COMMAND tar - tape archiver SYNTAX tar [Fcotvx] [f] tarfile file ... FLAGS F Force tar to continue after an error c Create a new archive; add named files o Set uid/gid to original values on extraction f Next argument is name of tarfile t Print a table listing the archive's contents v Verbose mode-tell what is going on as it happens x The named files are extracted from the archive EXAMPLES tar c /dev/fd1 Back up current directory to /dev/fd1 tar xv /dev/fd1 file1 file2 Extract two files from the archive tar cf - | (cd dest; tar xf -) Copy current directory to dest Tar is a POSIX-compatible archiver, except that it does not use tape. It's primary advantage over ar is that the tar format is somewhat more standardized than the ar format, making it theoretically possible to transport MINIX files to another computer, but do not bet on it. If the target machine runs MSDOS try doswrite. (ast) # term term (1) COMMAND term - turn PC into a dumb terminal [IBM] SYNTAX term [baudrate] [parity] [bits_per_character] FLAGS (none) EXAMPLES term 2400 Talk to modem at 2400 baud term 1200 7 even 1200 baud, 7 bits/char, even parity term 8 9600 9600 baud, 8 bits/char, no parity Term allows MINIX to talk to a terminal or modem over RS232 port 1. The program first sets the baudrate, parity and character length, and then forks. The parent sits in a loop copying from stdin (usually the console's keyboard), to the terminal or modem (/dev/tty1). The child sits in a loop copying from the terminal or modem (/dev/tty1) to standard output. Thus when RS232 port 1 is connected to a modem, every keystroke typed on the keyboard is sent to the modem, and every character arriving from the modem is displayed Standard input and output may be redirected, to provide a primitive file transfer program, with no checking. To exit term, hit the middle button on the numeric pad. Important note: to use term, it is essential that /etc/ttys is configured so that there is no shell hanging on /dev/tty1. If there is, both the shell and term will try to read from /dev/tty1, and nothing will work. (ast) # termcap termcap (1) COMMAND termcap - print the current termcap entry SYNTAX termcap [type] FLAGS (none) EXAMPLES termcap Print the termcap entry Termcap reads the /etc/termcap entry corresponding to the terminal type supplied as the argument. If none is given, the current $TERM is used. It then prints out all the parameters that apply. (ast) # test [ test (1), [ (1) COMMAND test - test for a condition SYNTAX test expr FLAGS (none) EXAMPLES test -r file See if file is readable Test checks to see if files exist, are readable, etc. and returns an exit status of zero if true and nonzero if false. The legal operators are -r file true if the file is readable -w file true if the file is writable -x file true if the file is executable -f file true if the file is not a directory -d file true if the file is a directory -s file true if the file exists and has a size > 0 -t fd true if file descriptor fd (default 1) is a terminal -z s true if the string s has zero length -n s true if the string s has nonzero length s1 = s2 true if the strings s1 and s2 are identical s1 != s2 true if the strings s1 and s2 are different m -eq m true if the integers m and n are numerically equal The operators -gt, -ge, -ne, -le, and -lt may be used as well. These operands may be combined with -a (Boolean and), -o (Boolean or), ! (negation). The priority of -a is higher than that of -o. Parentheses are permitted, but must be escaped to keep the shell from trying to interpret them. The square bracket "[" is usually defined as a link to test, allowing one to write concise conditional statements such as if [ x%1 != x ]; then echo "OK"; fi (ast, rev. by asw 14.02.95)) # time time (1) COMMAND time - report how long a command takes SYNTAX time command FLAGS (none) EXAMPLES time a.out Report how long a.out takes time ls -l *.c Report how long ls takes The command is executed and the real time, user time, and system time (in hours, minutes, and seconds) are printed. Shell scripts cannot be timed. (ast) # to to (1) COMMAND to - output half of a connection [IBM] SYNTAX to port FLAGS (none) EXAMPLES cat f1 f2 | to mach4 Send the catted files to port To and from are used together to provide connection-oriented service. On the sending machine, the last member of a pipeline is to port. On the receiving machine, the first member of a pipe line is from port. The ne t result is that the output of the sending pipeline goes into the input of the receiving pipeline, making pipelines work across the network. As a simple example, consider: on machine1: cat f1 f2 | to Johnny on machine2: from Johnny | sort >x The effect of these two commands is that the files f1 and f2 are concatenated, transferred to machine 2, and sorted there, with the output going to a file x on machine 2. The string Johnny is used by the transaction system to identify which sender goes with which receiver; any unique string can be used. Multiple transfers may take place simultaneously between different pairs of machines on the same Ethernet. (ast) # touch touch (1) COMMAND touch - update a file's time of last modification SYNTAX touch [-c] file ... FLAGS -c Do not create the file EXAMPLES touch *.h Make the .h files look recent The time of last modification is set to the current time. This command is mostly used to trick make into thinking that a file is more recent than it really is. If the file being touched does not exist, it is created, unless the -c\f R flag is present. (ast) # tr tr (1) COMMAND tr - translate character codes SYNTAX tr [-cds] [string1] [string2] FLAGS -c Complement the set of characters in string1 -d Delete all characters specified in string1 -s Squeeze all runs of characters in string1 to one character EXAMPLES tr '[a-z]' '[A-Z]' y Convert upper case to l ower case tr -d '0123456789'f2 Delete all digits from f1 Tr performs simple character translation. When no flag is specified, each character in string1 is mapped onto the corresponding character in string2 . (ast) # traverse traverse (1) COMMAND traverse - print directory tree under the named directory SYNTAX traverse dir FLAGS (none) EXAMPLES traverse . Print tree starting at working dir Traverse prints the tree structure starting at the named directory. All the subdirectories are listed, with the depth shown by indentation. (ast) # treecmp treecmp (1) COMMAND treecmp - recursively list differences in two directory trees SYNTAX treecmp [-cv] olddir newdir FLAGS -c (changes) list the names of changed or new files -v (verbose) list all directories processed EXAMPLES treecmp -v /usr/ast/V1 /usr/ast/V2 Compare two trees Treecmp recursively descends the directory tree of its second argument and compares all files to those at the corresponding position in the first argument. If the two trees are identical, i.e., all the corresponding directories and files are the same, there is no output. Otherwise, a list of files missing from one of the trees or present in both but whose contents are not identical in both are printed. When the -c flag is given, only files that are changed from the old version or are new (i.e., absent in the old version) are listed. (ast) # true true (1) COMMAND true - exit with the value true SYNTAX true FLAGS (none) EXAMPLES while true List the directory until DEL is hit do ls -l done This command returns the value true . It is used for shell programming. The program is in reality not a program at all. It is the null file. (ast) # tset tset (1) COMMAND tset - set the $TERM variable SYNTAX tset [device] FLAGS (none) EXAMPLES eval \`tset\` Set TERM Tset is used almost exclusively to set the shell variable TERM from inside profiles. If an argument is supplied, that is used as the value of TERM. Otherwise it looks in /etc/ttytype. (ast) # tsort tsort (1) COMMAND tsort - topological sort [IBM] SYNTAX tsort file FLAGS (none) EXAMPLES lorder *.s | tsort Give library ordering ar cr libc.a \`lorder *.s | tsort\` Build library Tsort accepts a file of lines containing ordered pairs and builds a total ordering from the partial orderings. (ast) # tty tty (1) COMMAND tty - print the device name of this tty SYNTAX tty [-s] FLAGS -s Silent mode, only the exit status is affected. EXAMPLES tty~~~ Print the tty name Print the name of the controlling tty. If the flag -s is given, tty is equivalent to the call to isatty(). (ast) # umount umount (1) COMMAND umount - unmount a mounted file system SYNTAX /etc/umount special FLAGS (none) EXAMPLES /etc/umount /dev/fd1 Unmount diskette 1 A mounted file system is unmounted after the cache has been flushed to disk. A diskette should never be removed while it is mounted. If this happens, and is discovered before another diskette is inserted, the original one can be replaced without harm. Attempts to unmount a file system holding working directories or open files will be rejected with a device busy message. (ast) # unexpand unexpand (1) COMMAND unexpand - convert spaces to tabs SYNTAX unexpand [-a] FLAGS -a All spaces are unexpanded EXAMPLES unexpand oldfile >newfile Convert leading spaces to tabs Unexpand replaces spaces in the named files with tabs. If no files are listed, stdin is given. The -a flag is used to force all sequences of spaces to be expanded, instead of just leading spaces (the default). (ast) # uniq uniq (1) COMMAND uniq - delete consecutive identical lines in a file SYNTAX uniq [-cdu] [-n] [+n] [input [o utput]] FLAGS -c Give count of identical lines in the input -d Only duplicate lines are written to output -u Only unique lines are written to output -n Skip the first n columns when matching +n Skip the first n fields when matching EXAMPLES uniq +2 file Ignore first 2 fields when comparing uniq -d inf outf Write duplicate lines to outf Uniq examines a file for consecutive lines that are identical. All but duplicate entries are deleted, and the file is written to output. The +n option skips the first n fields, where a field is defined as a run of characters separated by white space. The -n option skips the first n spaces. Fields are skipped first. (ast) # unshar unshar (1) COMMAND unshar - Remove files from a shell archive SYNTAX unshar [-btvx] sharfile member ... FLAGS -b Unshar brutally, overwriting files if need be -t Tell what is in the archive but do not extract -v Verbose mode -x Extract only the members listed EXAMPLES unshar arch.sh Extract all members of the archive unshar -t arch.sh List the contents of the archive unshar -xf1 -xf2 arch.sh Extract f1 and f2 from arch.sh uniq -d inf outf Write duplicate lines to outf Unshar extracts members of a shell archive, the same as sh, except much faster. It expects shell archives created with shar. It also has options to list the contents of a shell archive, and to selectively extract some members but not all. (ast) # update update (1) COMMAND update - periodically write the buffer cache to disk SYNTAX /etc/update FLAGS (none) EXAMPLES /etc/update & Start a process that flushes the cache When the system is booted, update is started up in the background from /etc/rc to issue a sync system call every 30 sec. (ast) # users users (1) COMMAND users - list the logged-in users SYNTAX users FLAGS (none) EXAMPLES users list the users Users prints one line containing the names of all the currently logged-in users. (ast) # uud uud (1) COMMAND uud - decode a binary file encoded with uue SYNTAX uud [-n] [-s srcdir] [-t dstdir/] file FLAGS -n Do not verify checksums -s Name of directory where .uue file is -t Name of directory where output goes EXAMPLES uud file.uue Re-create the original file uud - x Encode file and write on stdout uue -800 file Output on file.uaa, file.uab etc. Uuencode is a famous program that converts an arbitrary (usually binary) file to an encoding using only 64 ASCII characters. Uudecode converts it back to the original file. The uue and uud programs are the MINIX versions of these programs, and are compatible with the UNIX ones. The files produced can even be sent successfully over BITNET, which is notorious for mangling files. It is possible to have uue automatically split the encoded file up into small chunks. The output files then get the suffixes .uaa, .uab, etc., instead of .uue. When uud is given file.uaa to decode, it automatically includes the subsequent pieces. The encoding takes 3 bytes (24 bits) from the input file and renders it as 4 bytes in the output file. (ast) # virecover virecover (1) COMMAND virecover - recover from a crash SYNTAX virecover [file] FLAGS (none) EXAMPLES virecover prog.c Recover prog.c Virecover is used to recover an edit session after a crash. Both elvis and ex keep a scratch files in /usr/tmp. After an editor crash, this information is used to reconstruct the file. If virecover is called with no file name, it expects one of these temporary files on stdin. (ast) # vol vol (1) COMMAND vol - split stdin into diskette-sized volumes SYNTAX vol [-u] size block_special FLAGS -u Unsave from diskettes EXAMPLES tar c - . | vol 360 /dev/fd0 Prompt for disk every 360K vol -u 360 /dev/fd0 | tar x - Restore a saved file system It occasionally happens that a program generates an output stream intended for diskette but the stream is to large to fit on one diskette. Vol is a program that accepts such a stream, and pauses every n blocks to request a new diskette to be inserted. This makes it possible to save arbitrarily long streams on a series of diskettes, as shown in the examples above. (ast) # wc wc (1) COMMAND wc - count characters, words, and lines in a file SYNTAX wc [-clw] file ... FLAGS -c Print character count -l Print line count -w Print word count EXAMPLES wc file1 file2 Print all three counts for both files wc -l file Print line count only Wc reads each argument and computes the number of characters, words and lines it contains. A word is delimited by white space (space, tab, or line feed). If no flags are present, all three counts are printed. (ast) # whatis whatis (1) COMMAND whatis - tell what the program does SYNTAX whatis name ... FLAGS (none) EXAMPLES whatis head Gives a summary of what the head program does Whatis searches the /usr/etc/whatis database for the arguments. For each name, it prints the corresponding entry. (ast) # whatsnew whatsnew (1) COMMAND whatsnew - print a newly modified file, marking changes SYNTAX whatsnew [-n] file.c file.c.cdif FLAGS -n Output line length EXAMPLES whatsnew file.c file.c.cdif Print file.c with changes marked whatsnew -70 file.c file.c.cdif Same as above, but with 70 col line It commonly occurs that cdifs are posted to USENET. After installing a cdif file, it is sometimes desirable to print out the new file, with the changes marked on it. Whatsnew does precisely this, with the changes + and ! printed in the right-hand margin. (ast) # whereis whereis (1) COMMAND whereis - examine system directories for a given file SYNTAX whereis file FLAGS (none) EXAMPLES whereis stat.h Prints: /usr/include/sys/stat.h Whereis searches a fixed set of system directories, /bin, /lib, /usr/bin, and others, and prints all occurrences of the argument name in any of them. (ast) # which which (1) COMMAND which - examine $PATH to see which file will be executed SYNTAX which name FLAGS (none) EXAMPLES which a.out Tells which a.out will be executed The $PATH shell variable controls the MINIX search rules. If a command a.out is given, the shell first tries to find an executable file in the working directory. If that fails, it looks in various system directories, such as /bin and /usr/bin. The which command makes the same search and gives the absolute path of the program that will be chosen, followed by other occurrences of the file name along the path. (ast) # who who (1) COMMAND who - print list of currently logged in users SYNTAX who [file] FLAGS (none) EXAMPLES who Print user names, terminals and times Who prints a list of currently logged in users. For each one, the user name, terminal, and login time is printed. This program gets its information from the file /etc/utmp, which is updated by init and login. If the file does not exist, neither of these will create it, and who will not work. Note that if you decide to create an empty /usr/adm/wtmp to enable the login accounting, it will grow forever and eventually fill up your disk unless you manually truncate it from time to time If an optional file name is provided, the logins in that file will be printed. (ast) # whoami whoami (1) COMMAND whoami - print current user name SYNTAX whoami FLAGS (none) EXAMPLES whoami Print user name In case you forget who you are logged in as, whoami will tell you. If you use su to become somebody else, whoami will give the current effective user. (ast) # width width (1) COMMAND width - force all the lines of a file to a given width SYNTAX width [-n [ infile [outfile] FLAGS -n Outline line size EXAMPLES width -60 x y Copy x to y, force lines to 60 cols width x Copy default (80) column lines to stdout The input file is copied to the output file. All lines are forced to a given size (default: 80 columns) by padding with spaces or truncating. Tabs are expanded to spaces. (ast) # write write (1) COMMAND write - send a message to a logged-in user SYNTAX write [-cv] user [tty] FLAGS -c Use cbreak mode -v Verbose mode EXAMPLES write ast Send a message to ast write ast tty1 Send a message to ast on tty1 Write lets a user send messages to another logged-in user. Lines typed by the user appear on the other user's screen a line at a time (a character at a time in the case of cbreak mode). The file /usr/adm/wtmp is searched to determine which tty to send to. If the user is logged onto more than one terminal, the tty argument selects the terminal. Type CTRL- D to terminate the command. Use ! as a shell escape. (ast) # finger FINGER (1) USER COMMANDS FINGER (1) NAME finger - display information about local and remote users. SYNOPSYS finger [ -dv ] [ user [ @ hostname ] ] AVAILABILITY This command is available with the TemariNET software package. DESCRIPTION The finger command displays information about users logged on a system. When a user argument is given, more detailed information is provided for the user specified, whether they are logged in or not. If the user is not a local user, the hostname parameter must be provided as well. If only the hostname parameter is provided, then finger displays information about each logged in user on the remote host. OPTIONS -d Debug mode. This is really only useful for debugging purposes. -v Verbose mode. This is the same as the -d option. EXAMPLES finger root finger @nyx.cs.du.edu finger root@nyx.cs.du.edu FILES /etc/utmp /usr/adm/wtmp /etc/passwd $HOME/.project $HOME/.plan SEE ALSO passwd(1), who(1) NOTES Since Minix does not (yet) handle "TTY Idle" times, idle times are not displayed. The Minix login program does not support the "-h" option, so no "Where" field can be displayed. AUTHOR Fred N. van Kempen - waltje@uwalt.nl.mugnet.org # fingerd FINGERD (1M) MAINTENANCE COMMANDS FINGERD (1M) NAME fingerd - remote user information server SYNOPSIS /etc/tnet/bin/fingerd AVAILABILITY This command is available with the TemariNET software package. DESCRIPTION fingerd is the server side of the Name/Finger protocol (RFC 742). The Name/Finger protocol provides a remote interface for programs which display information on systems and individual users. Little structure is imposed upon the format of the exchange between the client and server. The client provides a single command to the server, which returns a printable reply. fingerd listens on TCP port 79. Once a connection is made, it reads a single command line terminated by a , generates a report, and returns it to the calling client. fingerd closes its connections as soon as the output is finished. If the line is null (only a CR/LF is sent) then fingerd will return a report that lists all users logged into the system at that moment. If a user name is specified (e.g., eric ), then the response lists more extended information for that particular user, whether they are logged in or not. FILES /etc/utmp For who's currently logged in. /usr/adm/wtmp For last login times. /etc/passwd For user names. $HOME/.project To display user's project file. $HOME/.plan To display user's plan file. SEE ALSO finger(1) Harrenstien, Ken, NAME/FINGER, RFC 742, Network Information Center, SRI International, Menlo Park, Calif., December 1977. AUTHOR Kevin J. Duling - kduling@carl.org # ftp FTP (1C) USER COMMANDS FTP (1C) NAME ftp - file transfer program SYNOPSYS ftp [ hostname ] [ port ] AVAILABILITY This command is available with the TemariNET software package. DESCRIPTION ftp is the user interface for the ARPANET standard File Transfer Protocol (FTP). ftp transfers files to and from a remote network site. The client host with which ftp is to communicate may be specified on the command line. If this is done, ftp immediately attempts to establish a connection to an FTP server on that host; otherwise, ftp enters its command interpreter and awaits instructions from the user. When ftp is awaiting commands from the user, it displays the prompt `ftp>'. USAGE ascii Set file transfer mode to ascii. binary Set file transfer mode to binary. bye Close connection and exit. cd Change directory on remote host. close Close connection. dir Display long form remote host directory listing. exit Close connection and exit. del Remove file on remote host. get Retrieve a file from remote host. help Display this text. open Open connection to remote host. pwd Display current directory on remote host. mkdir Create directory on remote host. rmdir Remove directory on remote host. lcd Change directory on local host. lmkdir Create directory on local host. lpwd Display current directory on local host. lrmdir Remove directory on local host. ls Display remote host directory listing. mget Retrieve multiple files from remote host. mput Send multiple files to remote host. noop Send the ftp NOOP command. put Send a file to remote host. quit Close connection and exit. quote Send raw ftp command to remote host. remotehelp Display ftp command implemented on remote host. rm Remove file on remote host. user Enter remote user information. EXAMPLE ftp nyx.cs.du.edu AUTHOR Michael Temari - temari@temari.ae.ge.com # hostname HOSTNAME (1) USER COMMANDS HOSTNAME (1) NAME hostname - print name of host system SYNOPSIS hostname [ -s ] [ name-of-host ] AVAILABILITY This command is available with the TemariNET software package. DESCRIPTION The hostname command prints the name of the current host machine. The super-user can set the hostname by giving an argument. OPTIONS -s Reports only the hostname. The domain name is suppressed. SEE ALSO gethostname(2), getdomainname(2), sethostname(2), setdomainname(2) AUTHOR Michael Temari - temari@temari.ae.ge.com # nsquery NSQUERY (1M) MAINTENANCE COMMANDS NSQUERY (1M) NAME nsquery - Remote File Sharing name server query SYNOPSIS nsquery [ -h name ] AVAILABILITY This command is available with the TemariNET software package. DESCRIPTION nsquery provides information about resources available to the host from both the local domain and from other domains. All resources are reported, regardless of whether the host is authorized to access them. When used with no options, nsquery identifies all resources in the domain that have been advertised as sharable. A report on selected resources can be obtained by specifying name, where name is: nodename The report will include only those resources available from nodename. domain The report will include only those resources available from domain. domain.nodename The report will include only those resources available from domain.nodename. When the name does not include the delimiter ".", it will be interpreted as a nodename within the local domain. If the name ends with a delimiter ".", it will be interpreted as a domain name. The information contained in the report on each resource includes its advertised name ( domain.resource ), the read/write permissions, the server ( nodename.domain ) that advertised the resource, and a brief textual description. When -h is used, the header is not printed. A remote domain must be listed in your rfmaster file in order to query that domain. EXIT CODES If no entries are found when nsquery is executed, the report header is printed. OPTIONS -h Suppress header line in output. NOTES If your host cannot contact the domain name server, an error message will be sent to standard error. AUTHOR Michael Temari - temari@temari.ae.ge.com # telnet TELNET (1C) COMMUNICATION PROGRAMS TELNET (1C) NAME telnet - user interface to a remote system using the TELNET protocol SYNOPSIS telnet [ -bdtv ] hostname [ port ] DESCRIPTION telnet communicates with a remote host using the TELNET protocol. Once a connection is made, telnet is in an input mode. In this mode, the text the user types is sent to the remote host. While connected to a remote host, telnet command mode may be entered by typing the telnet escape-character (initially `^]', (contol-right-bracket)). While in command mode, the telnet commands are available. USAGE Telnet Commands The following commands are available in command mode: q Quit. This closes the connection to the remote host and terminates telnet. ! Shell escape. This allows temporary access to the Minix shell. Typing exit or ^D will terminate the shell and return to the telnet process. OPTIONS -b Binary mode. This places both local telnet and the remote host in binary mode. -d Debug mode. All packets sent and received are displayed on stdout. -t I've got no clue what this is for... -v Verbose mode. This has the same effect as -d. EXAMPLE telnet nyx.cs.du.edu SEE ALSO sh(1), hosts(5) BUGS Only /bin/sh or /usr/bin/sh are available when a shell is requested. The user's default login shell is not checked. AUTHOR Michael Temari - temari@temari.ae.ge.com # whois WHOIS (1) USER COMMANDS WHOIS (1) NAME whois - Internet user name directory service SYNOPSIS whois [ -h host ] identifier AVAILABILITY This command is available with the TemariNET software package. DESCRIPTION whois searches for an Internet directory entry for an identifier which is either a name (such as ``Smith'') or a handle (such as ``SRI-NIC''). To force a name-only search, precede the name with a period; to force a handle-only search, precede the handle with an exclamation point. To search for a group or organization entry, precede the argument with * (an asterisk). The entire membership list of the group will be displayed with the record. You may of course use an exclamation point and asterisk, or a period and asterisk together. EXAMPLES example% whois Smith example% whois !SRI-NIC example% whois .Smith, John AUTHOR DDN Network Information Center # xd xd (1) COMMAND: xd - hexadecimal dump SYNTAX: xd [-b|c|d|o|x] [-io|id|in|ix] [-8] [-m] [-s] [file] FLAGS: -b binary dump -c dump characters only -d decimal dump -o octal dump -x hexadecimal dump (default) -i index base: io octal, id decimal, ix hexadecimal (default) -in no index display -8 display 8 bit characters (default is 7 bits) -s skip (hexadecimal) bytes -m max (hexadecimal) bytes displayed EXAMPLES: xd # dump standard input until eof xd file.txt # dump file.txt in hexadecimal xd -b x.bin # examine x.bin as binary bytes xd -c dat.dbf # display characters only xd -s400 /dev/mem | more # dump memory starting at 0x000400 xd -s0b8000 -m100 /dev/mem # examine 1st 256 bytes of video buffer DESCRIPTION: Xd displays the contents of a file or standard input in binary, octal, decimal, or hexadecimal. It writes to its standard output. The default output consists of an index count (in hexadecimal) and a display of 16 bytes in hexadecimal, followed by a string of the corresponding ASCII characters. The -b, -o, or -d options select binary, octal, or decimal base for the data display. In binary 6 bytes are displayed, and in octal or decimal 12 bytes are displayed on each line. The -c option selects characters only in the data display; in this mode 64 characters are displayed on each line. Non-printable characters are shown as periods. The -8 option displays characters with the high bit set; by default these are treated as non-printable. The -io or -id options select octal or decimal base for the index count. -in selects no index count. The -s and -m options allow skipping any desired number of bytes at the beginning of a file and reading a limited number of bytes from the file. This is particularly useful for examining memory (as /dev/mem). The s parameter is rounded down and the m parameter is rounded up modulo 16 bytes, so at least one full line of output is produced. If eof is reached on the input before a line is complete the missing bytes are marked by periods. Xd is meant to be a replacement for od, with a display similar to the dump display of CP/M DDT or MS-DOS DEBUG, more convenient than od's word-oriented display for a little-endian byte-oriented machine. SEE ALSO: od(1) AUTHOR: Albert S. Woodhull awoodhull@hamp.hampshire.edu 16.02.95 # minicom Manual for "Minicom". Minicom is a complete communication program for the Minix operating system. It has been ported to a variety of Unix systems without much trouble. Features are: - window based, user-friendly. - Terminal emulation: vt100, Minix, Ansi(IBM) - Supports COLOR! - Status Line. - Dialing directory with auto-dial and automatic re-dial. - Up and download programs run in a window. - Kermit can be run from within the program. - Supports UUCP lock files. - Script files for auto login. - Capture file. - Auto baudrate selection. - Multiple users, protected with an access list. Every user has his own dialing directory, and most default-options (as set by root) can be changed and saved into a personal startup file. - Multiple users. Only root can change the configuration files, but every user has his own dialing-directory (and his own upload/download/ script directories) - Multiple configuration files with access control. ===== Invocation ==== The syntax is: minicom [-som] [-c on|off] [-a on|off] [configuration]. Before processing the options, minicom searches for the environment variable 'MINICOM'. In this variable, options can be given just as on the command line. This way, it becomes possible to decide which options to use in advance, typically in your .profile depending on which terminal you are using. This variable is simply set by MINICOM='-m -c on' export MINICOM. The options on the command line override those of the MINICOM variable. The options mean: -s : setup. This is allowed for root only. When this option is used, minicom does _not_ initialize, but puts you directly into the configuration menu. This is very handy if minicom refuses to start up because your system has changed, or for the first time you run minicom: many defaults are based on 'virgin' 1.5.10 systems. -o: do not initialize. Minicom will skip the initialization code. This option is handy if you quitted from minicom without resetting, and then want to restart a session. It is potentially dangerous though: no check for lock files etc. is made, so a normal user could interfere with things like uucp... Maybe this will be taken out later. For now it is assumed, that users who are given access to a modem are responsible enough for their actions. -m: override command-key with the Meta or ALT key. This can also be configured in on of minicom's menu's, but if you use different terminals all the time, of which some don't have a Meta or ALT key, it's handy to set the default command key to ^A and use this option when you have a keyboard supporting Meta or ALT keys. -a: attribute usage. Some terminals, notably televideo's, have a rotten attribute handling (serial instead of parallel). By default, minicom uses '-a on', but if you are using such a terminal you can (must!) supply the option '-a off'. The trailing 'on' or 'off' is needed. -c: color usage. Some terminals (such as the Minix console) support color with the standard ANSI escape sequences. Because there is apparently no termcap support for color, these escape sequences are hard-coded into minicom. Therefore this option is off by default. You can turn it on with '-c on'. This, and the '-m' option, are good candidates to put into the MINICOM environment variable. The configuration argument is more interesting. Normally, minicom gets its defaults from a file called "minirc.dfl". If you however give an argument to minicom, it will try to get its defaults from a file called "minirc.argument". So it is possible to create multiple configuration files, for different ports, different users etc. Most sensible is to use device names, such as tty1, tty64, sio2 etc. If a user creates his own configuration file, it will show up in his home directory as '.minirc.dfl'. ===== Using Minicom ===== Minicom is windows-based. To popup a window with the function you want, press Control-A, and then the function key (a-z or A-Z). By pressing Control-A first and then 'z', a help screen comes up with a short summary of all commands. This escape key can be altered, as written above, but we'll stick to Control-A for now. For every menu the next keys can be used: - Move up: arrow-up or 'k' - Move down: arrow-down or 'j' - Move left: arrow-left or 'h' - Move right: arrow-right or 'l' - Choose: Enter - Cancel: ESCape (or ESC-ESC, see the comment at the end of this file) The screen is divided into two portions: the upper 24 lines are the terminal-emulator screen. In this window, ANSI or VT100 escape sequences are interpreted. If MINIX emulation is chosen, this window will be 25 lines long (if possible). If there is a line left at the bottom, a status line is placed there. If this is not possible the status line will be showed every time you press Control-A. Possible commands are listed next, in alfabetical order. Control-A. Pressing Control-A a second time will just send a Control-A to the remote system. A. Toggle 'Add Linefeed' on/off. If it is on, a linefeed is added before every carriage return displayed on the screen. B. A break signal is sent to the modem. C. Clears the screen. D. Dial a number, or go to the dialing directory. G. Run script (Go). Runs a login script. H. Hangup. J. Jump to a shell. On return, the whole screen will be redrawn. K. Run Kermit in a window. L. Turn Capture file on off. If turned on, all output sent to the screen will be captured in the file too. M. Sends the modem initialization string. O. Configure minicom. Puts you in the configuration menu. P. Communication Parameters. Allows you to change the baudrate, parity and number of bits. Q. Exit minicom without resetting the modem. R. Recieve files. Choose from various protocols (external). S. Send files. Ditto. T. Choose Terminal emulation: Minix-Ansi(color)-vt100. W. Toggle linewrap on/off. X. Exit minicom, reset modem. Z. Pop up the help screen. === The dialing directory === By pressing Control-A D the program asks: "Number to dial: (enter for dialing directory) " _ You can now directly enter a number to dial, or press enter. Then the dialing directory will be drawn. You can add, delete or edit entries. By choosing "dial" the phone number of the highlighted entry will be dialed. While the modem is dialing, you can press any key to cancel dialing. Your dialing directory will be saved into a the file ".dialdir" in your home directory. You can scroll up and down with the arrow keys, but you can also scroll complete pages by pressing the PageUp or PageDown key. If you don't have those, use Control-B (Backward) and Control-F (Forward). The "edit" menu speaks for itself, but I will discuss it briefly here. A - Name : The name for this entry B - Number : and its telephone number. C - Script : the script that must be executed after a succesfull connection is made (see the manual for runscript) D - Username : The username that is passed to the runscript program. It is passed in the environment string "$LOGIN". E - Password : The password is passed as "$PASS". F - Terminal Emulation: Use MINIX, ANSI or VT100 emulation. G - Line settings : baudrate, bits and parity to use for this connection. === The setup Menu === By pressing Control-A O you will be thrown into the setup menu. Most settings there can be changed by everyone, but some are restricted to root only. Those priviliged settings are marked with a star (*). "Filenames and paths" This menu defines your default directories. A - upload: where the uploaded files go to. B - download: Yup, you guessed it. C - script: Where you keep your login scripts. D - Script program: Which program to use as the script interpreter. Defaults to the program "runscript", but if you want to use something else (eg, /bin/sh or "expect") it is possible. Stdin and stdout are connected to the modem, stderr to the screen. If the path is relative (ie, does not start with a slash) then it's relative to your home directory, except for the script interpreter. "File Transfer Protocols" Protocols defined here will show up when Control-A s/r is pressed. "Name" is the name that will show up in the menu. "Program" is the path to the protocol. "NeedName" defines if the program needs an argument, eg. a file to be transmitted. Finally, Up/Down defines if this entry should show up in the upload or the download menu. All file transfer protocols are run with the UID of the user, and not with UID=root. "Kermit protocol" *A - Kermit program: where to find kermit, and options to it. *B - Everybody may use it: If option 'c' is on, I would turn this off! *C - Kermit runs as root: Be careful! "Serial port setup" *A - Serial device: /dev/tty1 for most people, or maybe /dev/tty64 if you use the VC package. *B - Device lock file: This should be /usr/spool/uucp/LCK..tty1 or something. *C - Callin program: If you have a uugetty or something on your serial port, it could be that you want a program to be run to switch the modem cq. port into dialin/dialout mode. This is the program to get into dialin mode. *D - Callout program: And this to get into dialout mode. E - Baud/Par/Bits: Default parameters at startup. If one of the entries is left blank, it will not be used. So if you don't care about locking, and don't have a getty running on your modemline, entries B - D should be left blank. Be warned! The callin and callout programs are run with the effective user id of "root", eg 0! "Modem and Dialing" Here, the parameters for your modem are defined. I will not explain this further because the defaults are for generic Hayes modems, and should work always. This file is not a Hayes tutorial :-) The only thing worth noticing is that control characters can be sent by prefixing them with a '^', in which '^^' means '^' itself. Some options however, don't have much to do with the modem but more with the behaviour of minicom itself: I - Dial time The number of seconds before minicom times out if no connection is established. J - Delay before redial Minicom will redial if no connection was made, but it first waits some time. K - Number of tries Maximum number of times that minicom attempts to dial. L - Autobaud detect If this is on, minicom tries to match the dialed party's speed. M - Drop DTR to hangup Normally minicom hangs up by sending a Hayes-type hangup sequence but if your Minix supports it, it can also hangup by dropping the DTR line. Note that a special exception is made for this menu: every user can change all parameters here, but they will not be saved. "Screen and keyboard" A - Command key is: the 'Hot Key' that brings you into command mode. If this is set to 'ALT' or 'meta key', you can directly call commands by alt-key instead of HotKey-key. B - Backspace key sends: There still are some systems that want a VT100 to send DEL instead of BS. With this option you can enable that stupidity. (Eh, it's even on by default..) C - Status line is: enabled or disabled. Some slow terminals (for example, X-terminals) cause the status line to jump "up and down" when scrolling, so you can turn it off if desired. It will still be shown in command-mode. "Save setup as dfl" Save the parameters as the default for the next time the program is started. Instead of dfl, any other parameter name may appear, depending on which one was used when the program was started. "Save setup as.." Save the parameters under a special name. Whenever Minicom is started with this name as an argument, it will use these parameters. This option is ofcourse priviliged to root. "Exit" Escape from this menu (can also be done with ESC) without saving. "Exit from minicom" Only root will see this menu entry, if he/she started minicom with the '-s' option. This way, it is possible to change the configuration without actually running minicom. ===== Access Control ===== Since Minicom runs setuid root, you probably want to restrict access to it. This is possible by using a configuration file in the same directory as the default files, called "minicom.users". The syntax of this file is as following: [configuration..] To allow user 'miquels' to use the default configuration, enter the following line into "minicom.users": miquels dfl If you want users to use more than the default, just add the names of those configurations behind the user name. Oh yeah, if "minicom.users" does not exist, everybody may use all configurations. This is ofcourse a security problem! ===== Last remarks ===== If minicom is hung, kill it with SIGTERM . (This means kill -15, or since sigterm is default, just plain "kill ". This will cause a graceful exit of minicom, doing resets and everything. Since some OS's have no decent timing in the terminal driver, some keys have to be pressed TWICE. This holds especially for the escape key. Since a lot of escape sequences begin with ESC (Arrow up is ESC [ A) Minicom does not know if the escape character it gets is you pressing the escape key, or part of a sequence. The last version of Minicom, V1.2, solved this in a rather crude way: to get the escape key, you had to press it *twice*.. Support for timing (with select) was already built in to minicom (see file wkeys.c) and works great under BSD, but alas, not under Minix. The same problem, but worse, was with Televideo type terminals. Since they use a lot of escape sequences that start with 'Control-A', you had to press 'Control-A' twice when you want to pop up a window or something.. As of release 1.3 this has bettered a little: now a 1-second timeout is builtin, like in vi. And... surprise: a special Minix-dependant *hack* :-) was added. Now, minicom can separate the escape key and escape-sequences. To see how dirty this was done, look into wkeys.c. But, it works like a charm! Well, I guess this about covers it. I hope everything is clear enough and wish you a lot of fun. Miquel. # runscript Manual for "runscript" In this package, a simple script-interpreter is included. It can be used to login to other systems and things like that. Try running the demo: runscript scriptdemo for fun. Runscript reckognizes the following keywords: expect send ! goto gosub return exit print set inc dec if timeout verbose sleep break call The program expects that it's standard input and standard output are connected to the "remote end", that is the modem port, and that it can write to the local screen through standard error. This is naturally the case when you run it from within minicom. The next statements can be used: send is sent to the modem. It is followed by a "\r". can be: - regular text, eg 'send hello' - text enclosed in quotes, eg 'send "hello world"' - and within the following escape sequences are reckognized: \n - newline \r - carriage return \a - bell \b - backspace \c - don't send the default '\r'. \f - formfeed and \ooo can be used to send an arbitrary character, where ooo is an octal number. Also $(environment_variable) can be used, for example $(TERM). Minicom passes two special environment variables: $(LOGIN), which is the username, and $(PASS), which is the password, as defined in the proper entry of the dialing directory. print Prints to the local screen. Default followed by '\r\n'. See the description of 'send' above. label: Declares a label (with the name 'label') to use with goto or gosub. goto