sash man page on OpenMandriva

Man page or keyword search:  
man Server   8135 pages
apropos Keyword Search (all sections)
Output format
OpenMandriva logo
[printable version]

SASH(1)								       SASH(1)

NAME
       sash - stand-alone shell with built-in commands

SYNOPSYS
       sash [-c command] [-f fileName ] [-p prompt] [-q] [-a] [script]

DESCRIPTION
       The  sash program is a stand-alone shell which is useful for recovering
       from certain types of system failures.  In particular, it  was  created
       in order to cope with the problem of missing shared libraries or impor‐
       tant executables.

       Sash can execute external programs, as in  any  shell.	There  are  no
       restrictions  on	 these commands, as the standard shell is used to exe‐
       cute them if there are any non-wildcard meta-characters in the command.

       More importantly, however, is that many of the standard system commands
       are built-in to sash.  These built-in commands are:

	    -ar, -chattr, -chgrp, -chmod, -chown, -cmp, -cp,
	    -dd, -echo, -ed, -grep, -file, -find, -gunzip,
	    -gzip, -kill, -losetup, -ln, -ls, -lsattr, -mkdir,
	    -mknod, -more, -mount, -mv, -printenv, -pwd, -rm,
	    -rmdir, -sum, -sync, -tar, -touch, -umount, -where

       These commands are generally similar to the standard programs with sim‐
       ilar names.  However, they are simpler and  cruder  than	 the  external
       programs, and so many of the options are not implemented.  The restric‐
       tions for each built-in command are described later.

       The built-in commands which correspond to external programs begin  with
       a  dash	character  in order to distinguish them from the external pro‐
       grams.  So typing "ls", for example, will attempt to run	 the  real  ls
       program.	  If "-ls" is typed, then the built-in command which mimics ls
       is called.

       For the built-in commands, file names are expanded so  that  asterisks,
       question marks, and characters inside of square brackets are recognised
       and are expanded.  Arguments can be quoted using single quotes,	double
       quotes,	or  backslashes.  However, no other command line processing is
       performed.  This includes specifying of file redirection, and the spec‐
       ifying of a pipeline.

       If  an external program is non-existant or fails to run correctly, then
       the "alias" built-in command may be used to redefine the standard  com‐
       mand  so	 that it automatically runs the built-in command instead.  For
       example, the command "alias ls -ls" redefines "ls" to run the  built-in
       command.	  This	saves  you  the pain of having to remember to type the
       leading dash all of the time.  If many external programs will not  run,
       then the "aliasall" command may be useful to create multiple aliases.

       The "help" command will list all of the built-in commands in sash .  If
       an argument is given, it will list only those built-in  commands	 which
       contain	the  given argument as a sub-string.  Each built-in command is
       described below in more detail.

       alias [name [command]]
	      If name and command are provided, this defines an	 alias	for  a
	      command  with  the  specified  name which executes the specified
	      command with possible arguments.	Arguments containing wildcards
	      can  be quoted in order to defer their expansion until the alias
	      is invoked.  If just name is provided, then  the	definition  of
	      the  specified  command  alias is displayed.  If nothing is pro‐
	      vided, then the definitions of all aliases are displayed.

       aliasall
	      This defines aliases for all of the built-in commands that start
	      with dashes to the corresponding names without the dashes.  This
	      may be useful when the system is so corrupted that  no  external
	      programs may be executed at all.

       -ar [txp][v] arfile [filename]...
	      List  or	extract files from an ar archive.  The arfile argument
	      specifies a file name which contains the archive.	 If  no	 addi‐
	      tional  filenames	 are  specified, then all files in the archive
	      are operated on.	Otherwise, only those  archive	members	 which
	      have  the same name as one of the additional filenames are oper‐
	      ated on.	Filenames which do  not	 appear	 in  the  archive  are
	      ignored.	 Archives cannot be created or modified.  The archiver
	      correctly handles 4.0BSD archives, and understands both the SysV
	      and 4.4BSD extensions for long file names.  The extended pseudo-
	      BSD formats are not supported;  nor  are	the  two  antediluvian
	      binary  formats  derived from V7 and earlier.  (The GNU archiver
	      normally creates archives in the 4.0BSD format with SysV	exten‐
	      sions.)

       cd [dirName]
	      If dirName is provided, then the current directory is changed to
	      the dirName.  If dirName is absent, then the  current  directory
	      is  changed  to  the  user's  home directory (value of the $HOME
	      environment variable).

       -chattr [+i] [-i] [+a] [-a] fileName ...
	      Change the attributes of the specified files on an ext2 or  ext3
	      file system.  Using a plus sign adds the specified attribute for
	      the files.  Using a minus sign removes the specified  attributes
	      for the files.  The 'i' attribute makes a file immutable so that
	      it cannot be changed.  The 'a' attribute makes  a	 file  append-
	      only.  This command is only available on Linux.

       -chgrp gid fileName ...
	      Change  the  group  id for the specified list of files.  The gid
	      can either be a group name, or a decimal value.

       -chmod mode fileName ...
	      Change the mode of the specified list of files.  The mode	 argu‐
	      ment can only be an octal value.

       -chown uid fileName ...
	      Change  the  owner  id for the specified list of files.  The uid
	      can either be a user name, or a decimal value.

       -cmp fileName1 fileName2
	      Determines whether or not the specified file names have  identi‐
	      cal data.	 This says that the files are links to each other, are
	      different sizes, differ at a  particular	byte  number,  or  are
	      identical.

       -cp srcName ... destName
	      Copies  one  or more files from the srcName to the destName.  If
	      more than one srcName is given, or if destName is	 a  directory,
	      then  all	 the  srcNames	are copied into the destName directory
	      with the same names as the srcNames.

       -dd if=name of=name [bs=n] [count=n] [skip=n] [seek=n]
	      Copy data from one file to another with  the  specified  parame‐
	      ters.   The  if  and of arguments must be provided, so stdin and
	      stdout cannot be specified.  The bs argument is the block	 size,
	      and  is a numeric value (which defaults to 512 bytes).  Count is
	      the number of blocks to be copied (which defaults to end of file
	      for  the	input  file).	Skip is the number of blocks to ignore
	      before copying (seek is used if possible, and the default is 0).
	      Seek  is	the number of blocks to seek in the output file before
	      writing (and defaults to 0).  Any of the numeric decimal	values
	      can  have one or more trailing letters from the set 'kbw', which
	      multiplies the value by 1024, 512, and 2 respectively.  The com‐
	      mand  reports  the  number  of full blocks read and written, and
	      whether or not any partial block was read or written.

       -echo [args] ...
	      Echo  the	 arguments  to	the  -echo  command.   Wildcards   are
	      expanded,	 so  this  is  a convenient way to get a quick list of
	      file names in a directory.  The output is always terminated with
	      a newline.

       -ed [fileName]
	      Edit the specified file using line-mode commands.	 The following
	      ed commands are provided: = c r w i a d p l s f k z and q.  Line
	      numbers  can  be	constants, ".", "$", "'x", /string/ and simple
	      arithmetic combinations of these.	 The  substitute  command  and
	      the  search  expression can only use literal strings.  There are
	      some small differences in the way that some commands behave.

       exec fileName [args]
	      Execute the specified  program  with  the	 specified  arguments.
	      This replaces sash completely by the executed program.

       exit   Quit from sash.

       -file fileName ...
	      Examine the specified files and print out their file type.  This
	      indicates whether the files are regular files  or	 not,  whether
	      they  contain  printable text or shell scripts, are executables,
	      or contain binary data.

       -find dirName [-xdev] [-type chars] [-name pattern] [-size minSize]
	      Find all files contained within  the  specified  directory  tree
	      which  meet  all	of the specified conditions.  The -xdev option
	      prevents crossing of mount points.  The -name option specifies a
	      wildcard	pattern to match the last component of the file names.
	      The -type option specifies that  the  files  must	 have  a  type
	      matching	the specified list from the set: f d c b p s l.	 These
	      represent regular files, directories, character  devices,	 block
	      devices,	named  pipes,  sockets, and symbolic links.  The -size
	      option specifies that the files must be regular files or	direc‐
	      tories which contain at least the specified number of bytes.

       -grep [-in] word fileName ...
	      Display  lines  of  the  specified files which contain the given
	      word.  If only one file name is given, then  only	 the  matching
	      lines  are  printed.  If multiple file names are given, then the
	      file names are printed along with the matching lines.  Word must
	      be  a  single  word,  (ie,  not a regular expression).  If -i is
	      given, then case is ignored when doing the  search.   If	-n  is
	      given,  then  the	 line  numbers	of the matching lines are also
	      printed.

       -gunzip inputFileName ... [-o outputPath]
	      Uncompress one or more files that had been compressed using  the
	      gzip  or	compress  algorithms.	If the -o option is not given,
	      then each of the input file names must have one  of  the	exten‐
	      sions  ".gz",  ".tgz", or ".Z", and those files will be replaced
	      by the uncompressed versions of those files.  The original files
	      will  be	deleted	 after the output files have been successfully
	      created.	The uncompressed versions of the files have  the  same
	      names  as the original file names, except for a simple modifica‐
	      tion of their extensions.	 If an extension is ".tgz",  then  the
	      extension	 is  replaced by ".tar".  Otherwise, the ".gz" or ".Z"
	      extension is removed.

	      If the -o option is given, then the  input  files	 will  not  be
	      deleted, and the uncompressed versions of the files will be cre‐
	      ated as specified by outputPath.	If the output path is a direc‐
	      tory,  then the uncompressed versions of the input files will be
	      placed in that directory	with  their  file  names  modified  as
	      described	 above,	 or  with the same name if the input file name
	      does not have one of the special extensions.  If the output path
	      is  a regular file, then only one input file is allowed, and the
	      uncompressed version of that input file is created as the output
	      path  exactly  as	 specified.   If the output path is a block or
	      character device, then the uncompressed versions	of  the	 input
	      files are concatenated to the device.

	      This  command  is only available if sash was compiled to use the
	      gzip library.

       -gzip inputFileName ... [-o outputPath]
	      Compresses one or more files using the gzip algorithm.   If  the
	      -o  option  is not given, then each of the input file names will
	      be replaced by the compressed versions of those files, The orig‐
	      inal files will be deleted after the output files have been suc‐
	      cessfully created.  The compressed versions of  the  files  have
	      the  same	 names as the original file names, except for a simple
	      modification of the extensions.  If an extension is ".tar", then
	      the  extension  is  replaced  by	".tgz".	  Otherwise, the ".gz"
	      extension is added.

	      If the -o option is given, then the  input  files	 will  not  be
	      deleted,	and  the compressed versions of the files will be cre‐
	      ated as specified by outputPath.	If the output path is a direc‐
	      tory,  then  the	compressed versions of the input files will be
	      placed in that directory	with  their  file  names  modified  as
	      described	 above.	  If  the output path is not a directory, then
	      only one input file is allowed, and the  compressed  version  of
	      that  input file is created as the output path exactly as speci‐
	      fied.

	      This command is only available if sash was compiled to  use  the
	      gzip library.

       help [word]
	      Displays	a  list	 of  built-in  commands along with their usage
	      strings.	If a word is given, then  just	those  commands	 whose
	      name  or	usage  contains	 the  word is displayed.  If a word is
	      specified which exactly matches a built-in command name, then  a
	      short description of the command and its usage is given.

       -kill [-signal] pid ...
	      Sends  the  specified signal to the specified list of processes.
	      Signal is a numeric value, or one of  the	 special  values  HUP,
	      INT,  QUIT,  KILL, TERM, STOP, CONT, USR1 or USR2.  If no signal
	      is specified then SIGTERM is used.

       -losetup [-d] loopDev [file]
	      Associates loopback devices with files on the system. If	-d  is
	      not  given, the loopback device loopDev is associated with file.
	      If -d is given, loopDev is unassociated with the file it's  cur‐
	      rently configured for.

       -ln [-s] srcName ... destName
	      Links  one or more files from the srcName to the specified dest‐
	      Name.  If there are multiple srcNames, or destName is  a	direc‐
	      tory,  then  the	link is put in the destName directory with the
	      same name as the source name.  The default links are hard links.
	      Using  -s	 makes	symbolic  links.  For symbolic links, only one
	      srcName can be specified.

       -ls [-lidFC] fileName ...
	      Display information about the specified list of file names.  The
	      normal  listing  is  simply  a list of file names, one per line.
	      The options available are -l, -i, -d, and	 -F.   The  -l	option
	      produces a long listing giving the normal 'ls' information.  The
	      -i option displays the inode  numbers  of	 the  files.   The  -d
	      option  displays	information  about a directory, instead of the
	      files within it.	The -F option appends a slash or  asterisk  to
	      the  file name if the file is a directory or is executable.  The
	      -C option displays the file names in a multi-column format.  The
	      width  of	 the  output  is calculated using the COLS environment
	      variable.

       -lsattr fileName ...
	      Display attributes for the specified files on an	ext2  or  ext3
	      file  system.   The  letter  'i'	indicates  that	 the  file  is
	      immutable and cannot change.  The letter 'a' indicates that  the
	      file  is append-only.  Dashes are shown where the attributes are
	      not set.	This command is only available on Linux.

       -mkdir dirName ...
	      Creates the specified directories.  They are  created  with  the
	      default permissions.

       -mknod fileName type major minor
	      Creates  a  special  device  node,  either a character file or a
	      block file.  Filename is the name of the node.  Type  is	either
	      'c'  or  'd'.   Major  is the major device number.  Minor is the
	      minor device number.  Both of these numbers are decimal.

       -more fileName ...
	      Type out the contents of the specified file names, one page at a
	      time.  For each page displayed, you can type 'n' and a return to
	      go to the next file, 'q' and a return to quit the	 command  com‐
	      pletely,	or just a return to go to the next page.  The environ‐
	      ment variables LINES and COLS can be used to set the page size.

       -mount [-t type] [-r] [-s] [-e] [-m] devName dirName
	      Mount a filesystem on a directory name.  The -t option specifies
	      the type of filesystem being mounted, and defaults to "ext3" for
	      Linux and "ffs" for BSD.	The -r option indicates to  mount  the
	      filesystem  read-only.   The  -s	option	indicates to mount the
	      filesystem no-suid.   The	 -e  option  indicates	to  mount  the
	      filesystem  no-exec.   The  -m  option  indicates	 to remount an
	      already mounted filesystem.  The -m option is only available  on
	      Linux.

       -mv srcName ... destName
	      Moves  one  or  more files from the srcName to the destName.  If
	      multiple srcNames are given, or if destName is a directory, then
	      the  srcNames are copied into the destination directory with the
	      same names as the srcNames.  Renames are attempted first, but if
	      this  fails because of the files being on different filesystems,
	      then copies and deletes are done instead.

       -printenv [name]
	      If name is not given, this prints out the values of all the cur‐
	      rent  environment	 variables.   If name is given, then only that
	      environment variable value is printed.

       prompt [word] ...
	      Sets the prompt string that is displayed	before	reading	 of  a
	      command.	A space is always added to the specified prompt.

       -pwd   Prints the current working directory.

       quit   Exits from sash.

       -rm fileName ...
	      Removes one or more files.

       -rmdir dirName ...
	      Removes  one or more directories.	 The directories must be empty
	      for this to be successful.

       setenv name value
	      Set the value of an environment variable.

       source fileName
	      Execute commands which are contained in the specified file name.

       -sum fileName ...
	      Calculates checksums for one or more files.  This is the 16  bit
	      checksum compatible with the BSD sum program.

       -sync  Do a "sync" system call to force dirty blocks out to the disk.

       -tar [ctxv]f tarFileName [fileName] ...
	      Create,  list or extract files from a tar archive.  The f option
	      must be specified, and accepts a device or  file	name  argument
	      which  contains  the  tar	 archive.  When creating, at least one
	      file name must be specified to be stored.	 If a file name	 is  a
	      directory,  then all the files and directories within the direc‐
	      tory are stored.	Linked files and other special file types  are
	      not  handled  properly.	When listing or extracting files, only
	      those files starting with the  specified	file  names  are  pro‐
	      cessed.	If  no file names are specified, then all files in the
	      archive are processed.  Leading slashes in the tar archive  file
	      names  are always removed so that you might need to cd to "/" to
	      restore files which had absolute paths.

       -touch fileName ...
	      Updates the modify times of the specifed files.  If a file  does
	      not exist, then it will be created with the default protection.

       umask [mask]
	      If  mask	is given, sets the "umask" value used for initializing
	      the permissions of newly created files.  If mask is  not	given,
	      then  the	 current umask value is printed.  The mask is an octal
	      value.

       -umount [-f] fileName
	      Unmounts a file system.  The file name can either be the	device
	      name which is mounted, or else the directory name which the file
	      system is mounted onto.  The -f option unmounts  the  filesystem
	      even  if	it  is being used.  The -f option is only available on
	      BSD.

       unalias name
	      Remove the definition for the specified alias.

       -where program
	      Prints out all of paths defined by the PATH environment variable
	      where  the  specified program exists.  If the program exists but
	      cannot be executed, then the reason is also printed.

OPTIONS
       There are several command line options to sash.

       The -c option executes the next argument as a command (including embed‐
       ded spaces to separate the arguments of the command), and then exits.

       The  -f	option executes the commands contained in the file name speci‐
       fied by the next argument, and then exits.  This feature can be used to
       create  executable  scripts for sash by starting the script file with a
       line similar to:
	    #! /bin/sash -f

       The -p option takes the next argument as the prompt string to  be  used
       when prompting for commands.

       The  -q	option	makes  sash  quiet, which simply means that it doesn't
       print its introduction line  when  it  starts.	This  option  is  also
       implied if the -c or -f options are used.

       The  -a	option	creates aliases for the built-in commands so that they
       replace the corresponding standard commands.  This is the  same	result
       as if the 'aliasall' command was used.

       A file name may be provided as the last argument to sash, in which case
       sash's standard input is read from that file. This allows #! scripts to
       use  sash as their script interpretor. Be aware that sash does not pro‐
       vide most normal bourne-shell programming features, however.

SYSTEM RECOVERY
       This section contains some useful information  about  using  sash  with
       lilo  to	 perform system recovery in some situations.  Similar concepts
       should exist for other boot loaders and operating systems.

       When important shared libraries are being upgraded, it might be a  good
       idea  to	 have  sash  already  running on a console by itself.  Then if
       there is a problem with the shared libraries sash  will	be  unaffected
       and you may be able to use it to fix the problem.

       If  a  problem with the system shows up at boot time so that you cannot
       enter multi-user mode and log in, then you can first try	 booting  into
       single-user  mode  by adding the single keyword after your kernel image
       name at the lilo prompt.	 If you manage to reach a shell	 prompt,  then
       you  can run sash from that shell (if necessary).  One reason for doing
       this is that you might need to use  the	-mount	command	 with  the  -m
       option to remount the root file system so that it can be modified.

       If  you	cannot	reach  the shell in single-user mode, then you can try
       running sash directly as a replacement for the init process.   This  is
       done  by adding the init=/bin/sash keyword after your kernel image name
       at the lilo prompt.  When this is done, then the use  of	 the  aliasall
       command might be useful to reduce attempts to access the root file sys‐
       tem when running commands.

       If your root file system is so corrupted that you cannot	 get  sash  to
       run at all, then you will have to resort to a system recovery floppy.

WARNINGS
       Sash  should  obviously	be linked statically, otherwise its purpose is
       lost.

       Several other system commands might be necessary for  system  recovery,
       but aren't built-in to sash.

AUTHOR
       David I. Bell
       dbell@canb.auug.org.au
       12 January 2004

								       SASH(1)
[top]

List of man pages available for OpenMandriva

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net