404

[ Avaa Bypassed ]




Upload:

Command:

botdev@13.59.31.111: ~ $
#!/bin/sh

#     setupcon -- setup the font and keyboard on the Linux console
#     Copyright (C) 2011 Anton Zinoviev <anton@lml.bas.bg>

#     Permission is hereby granted, free of charge, to any person
#     obtaining a copy of this file (the "Program"), to deal in the
#     Program without restriction, including without limitation the
#     rights to use, copy, modify, merge, publish, distribute,
#     sublicense, and/or sell copies of the Program, and to permit
#     persons to whom the Program is furnished to do so, subject to
#     the following conditions: The above copyright notice and this
#     permission notice shall be included in all copies or substantial
#     portions of the Program.

#     THE PROGRAM IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
#     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
#     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
#     NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
#     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
#     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
#     FROM, OUT OF OR IN CONNECTION WITH THE PROGRAM OR THE USE OR
#     OTHER DEALINGS IN THE PROGRAM.

###########################################################################

do_font=''       # configure font
do_kbd=''        # configure the keyboard
do_term=''       # configure the terminal
do_check=yes     # test whether we are on the console
do_verbose=''    # explain what is being doing
do_save=''       # save the required files in /etc/console-setup
do_saveonly=''   # save the required files, do not configure anything
do_currenttty='' # configure only current tty
savekbdfile=''   # save the keyboard map in $savekbdfile
do_printonly=''  # only print the configuration commands
setupdir=''      # directory for --setup-dir
SETUP=''

# The same as /usr/bin/which - in order to make "which" available before
# /usr is mounted
which () {
    local IFS
    IFS=:
    for i in $PATH; do
	if [ -f "$i/$1" -a -x "$i/$1" ]; then
	    echo "$i/$1"
	    return 0
	fi
    done
    return 1
}

# Create a temporary file name and set TMPFILE to its name.  Early in
# the boot process /tmp is mounted read-only, so lets have some other
# options...  I am not sure all non-GNU versions of mktemp understand
# the -q option so redirections of stderr are used instead.
tempfiles=''
trap 'rm -f $tempfiles >/dev/null 2>&1' 0
trap "exit 2" 1 2 3 13 15
tempfile () {
    if \
        TMPFILE=`mktemp /run/tmpkbd.XXXXXX 2>/dev/null` \
            || TMPFILE=`mktemp /tmp/tmpkbd.XXXXXX 2>/dev/null`
    then
        tempfiles="$tempfiles $TMPFILE"
        return 0
    else
        TMPFILE=''
        return 1
    fi
}

# Print the arguments to stderr if $do_verbose is yes
report () {
    local nl
    case "$1" in
        -n)
            shift
            nl=''
            ;;
        *)
            nl='
'
            ;;
    esac
    if [ "$do_verbose" ]; then
        echo -n "$@" "$nl" >&2
    fi
}

# Execute a command on every console terminal screen specified in
# $ACTIVE_CONSOLES.
#
# 1st argument: plain=execute only once with no tty change,
# out=execute with standard output redirected to the tty, in=the same
# but the standard input is being redirected, 'other argument'=do not
# redirect the standard input or output but use this as a tty option.
#
# 2nd argument: option(s) for verbose output.  NONE=no output,
# FORK=run the command in background, 'other argument'=give this
# option to the executed command.
#
# 3rd argument: command to run; other arguments: other options
#
# Example 1: run '-C ' -v setfont font.psf
# If ACTIVE_CONSOLES='/dev/tty1 /dev/tty2 /dev/tty3', then this results in
#
# setfont -C /dev/tty1 font.psf -v
# setfont -C /dev/tty2 font.psf -v
# setfont -C /dev/tty3 font.psf -v
#
# or
#
# setfont -C /dev/tty1 font.psf >/dev/null 2>&1
# setfont -C /dev/tty2 font.psf >/dev/null 2>&1
# setfont -C /dev/tty3 font.psf >/dev/null 2>&1
#
# depending on the value of $do_verbose
#
# Example 2: `run plain FORK echo hello` results in `echo hello`
# regardless of the value of $do_verbose.
#
# Example 3: `run plain NONE echo hello` results in `echo hello` or
# `echo hello >/dev/null 2>&1` depending on the value of $do_verbose.

run () {
    local ttyarg cmd verbose tty x
    ttyarg="$1"
    verbose="$2"
    cmd="$3"
    shift; shift; shift
    if [ -z "$ACTIVE_CONSOLES" -o -n "$do_currenttty" ]; then
        ttyarg=plain
    fi
    case "$ttyarg" in
        plain)
            if [ "$setupdir$do_printonly" ]; then
                if [ "$verbose" = NONE ]; then
                    # keep the space after >
                    SETUP="$SETUP$cmd $@ > /dev/null
"
                else
                    SETUP="$SETUP$cmd $@
"
                fi
            elif [ "$do_verbose" ]; then
		case "$verbose" in
		    NONE)
			report executing $cmd "$@".
			$cmd "$@"
			;;
		    FORK)
                        # no arguments to suppress '\033%%@' and '\033%%G'
			report executing $cmd.
			$cmd "$@" &
			;;
		    *)
			report executing $cmd "$@".
			$cmd "$@" $verbose
			;;
		esac
            else
		case "$verbose" in
		    NONE)
			report executing $cmd "$@".
                        $cmd "$@" >/dev/null 2>&1
                        ;;
                    FORK)
                        # no arguments to suppress '\033%%@' and '\033%%G'
			report executing $cmd.
                        $cmd "$@" &
                        ;;
                    *)
			report executing $cmd "$@".
                        $cmd "$@"
                        ;;
                esac
            fi
            ;;
        in)
            for tty in $ACTIVE_CONSOLES; do
                if [ "$setupdir$do_printonly" ]; then
                    # keep the space around > and <
                    if [ "$verbose" = NONE ]; then
                        SETUP="$SETUP$cmd $@ < $tty > /dev/null
"
                    else
                        SETUP="$SETUP$cmd $@ < $tty
"
                    fi
                elif [ -r $tty ]; then
                    report -n on $tty ''
                    run plain "$verbose" "$cmd" "$@" <$tty
                else
                    report No read access from $tty. Can not execute $cmd.
                fi
            done
            ;;
        out)
            for tty in $ACTIVE_CONSOLES; do
                if [ "$setupdir$do_printonly" ]; then
                    # keep the space between > and $tty
                    SETUP="$SETUP$cmd $@ > $tty
"
                elif [ -w $tty ]; then
                    report -n on $tty ''
                    run plain "$verbose" "$cmd" "$@" >$tty
                else
                    report No write access to $tty. Can not execute $cmd.
                fi
            done
            ;;
        *)
            for tty in $ACTIVE_CONSOLES; do
                x="${ttyarg}$tty"
                run plain "$verbose" "$cmd" $x "$@"
            done
            ;;
    esac
}

# Search a file and return the full file name if found.
# The filename may include wildcards and may not include space.
# Example: findfile share/consolefonts Uni3-*.psf.gz
# Result: /usr/share/consolefonts/Uni3-Fixed13.psf.gz
findfile () {
    local x
    case "$2" in
        /*)
            if [ -f "$2" ]; then
                echo "$2"
                return 0
            fi
            ;;
    esac
    x=`(ls "$installdir"/$1/$2 \
           /usr/local/$1/$2 \
	   /usr/$1/$2 \
           /etc/console-setup/cached_$2 \
           /etc/console-setup/$2 \
           "$installdir"/etc/console-setup/cached_$2 \
           "$installdir"/etc/console-setup/$2) 2>/dev/null`
    x=`echo $x`
    [ "${x%% *}" ] || report Unable to find "$2".
    echo "${x%% *}"
}

# Return code 0: we are on the console; 1: we are not on the console
test_console () {
    local ok
    ok=0
    if which tty >/dev/null; then
        case "`tty`" in
	    /dev/tty[1-9]*|/dev/vc/[0-9]*|/dev/console|/dev/ttyv[0-9]*)
                return 0
                ;;
        esac
        ok=1
    fi

    if which kbd_mode >/dev/null; then
        mode="`(LC_ALL=C; export LC_ALL; kbd_mode) 2>&1`"
        mode=${mode#The keyboard is in }
        case "$mode" in
            Unicode*|default*|xlate*) return 0 ;;
        esac
        ok=1
    fi

    if which vidcontrol >/dev/null; then
        if vidcontrol -i adapter >&- 2>&-; then
            return 0
        fi
        ok=1
    fi

    return $ok
}

###########################################################################
### PROCESS THE COMMAND LINE ARGUMENTS
###########################################################################

while [ "$1" ]; do
    case "$1" in
	-k|--keyboard-only)
	    do_kbd=yes
	    ;;
	-f|--font-only)
	    do_font=yes
	    ;;
	-t|--terminal-only)
	    do_term=yes
	    ;;
        --current-tty)
            do_currenttty=yes
            ;;
	-v|--verbose)
	    do_verbose=yes
	    ;;
	--force)
	    do_check=''
	    ;;
	--save)
	    do_save=yes
	    ;;
	--save-only)
	    do_save=yes
	    do_saveonly=yes
            do_check=''
	    ;;
        --save-keyboard)
            shift
            savekbdfile="$1"
	    do_saveonly=yes
            do_check=''
            ;;
        --print-commands-only)
            do_printonly=yes
            do_check=''
            ;;
        --setup-dir)
            shift
            do_kbd=yes
            do_currenttty=yes
            setupdir="$1"
            do_check=''
            ;;
	-h|--help)
	    cat >&2 <<EOF
Usage: setupcon [OPTION] [VARIANT]
Sets up the font and the keyboard on Linux console.

  -k, --keyboard-only  setup the keyboard only, do not setup the font
  -f, --font-only      setup the font only, do not setup the keyboard
  -t, --terminal-only  setup the terminal only
      --current-tty    setup only the current virtual terminal
      --force          do not check whether we are on the console
  -v, --verbose        explain what is being doing, try it if s.t. goes wrong
      --save           copy the font and the console map in /etc/console-setup,
                         update /etc/console-setup/cached.*
      --save-only      only save; don't setup keyboard/font immediately
                         (implies --force)
      --print-commands-only
                       print the configuration commands, do not configure
      --save-keyboard FILE, --setup-dir DIR    options for initrd builders
  -h, --help           display this help and exit

If VARIANT is not specified setupcon looks for the configuration files
(in this order) ~/.console-setup and if this doesn't exist then the
combination /etc/default/keyboard + /etc/default/console-setup.  When
a VARIANT is specified then setupcon looks for the configuration files
~/.console-setup.VARIANT and /etc/default/console-setup.VARIANT.
EOF
	    exit 0
	    ;;
	-*)
	    echo "setupcon: Unrecognised option $1" >&2
	    exit 1
	    ;;
	*)
	    if [ -z "$VARIANT" ]; then
		VARIANT="$1"
	    else
		echo "setupcon: Two variants specified: $VARIANT and $1" >&2
		exit 1
	    fi
	    ;;
    esac
    shift
done

if [ -z "$do_saveonly$do_kbd$do_font$do_term" ]; then
    do_kbd=yes
    do_font=yes
    do_term=yes
fi

# installdir
installdir=${0%/*}
case "$installdir" in
    */bin) installdir=${installdir%/bin} ;;
    *) installdir=$installdir/.. ;;
esac
[ -n "$installdir" -a -d "$installdir"/bin ] || installdir=/usr
case "$installdir" in
    /*) ;;
    *) installdir="`pwd`\$installdir" ;;
esac


###########################################################################
### READ THE CONFIGURATION FILES
###########################################################################

if [ "$VARIANT" ]; then
    VARIANT=".$VARIANT"
fi

USER_CONFIG=${HOME}/.console-setup"$VARIANT"
USER_CONFIG2=${HOME}/.keyboard"$VARIANT"
MAIN_CONFIG=/etc/default/keyboard"$VARIANT"
[ -f "$MAIN_CONFIG" ] \
    || [ ! -f "$installdir"/etc/default/keyboard"$VARIANT" ] \
    || MAIN_CONFIG="$installdir"/etc/default/keyboard"$VARIANT"
MAIN_CONFIG2=/etc/default/console-setup"$VARIANT"
[ -f "$MAIN_CONFIG2" ] \
    || [ ! -f "$installdir"/etc/default/console-setup"$VARIANT" ] \
    || MAIN_CONFIG2="$installdir"/etc/default/console-setup"$VARIANT"

if [ -f "$USER_CONFIG" -o -f "$USER_CONFIG2" ]; then
    CONFIG="$USER_CONFIG"
    CONFIG2="$USER_CONFIG2"
elif [ -f "$MAIN_CONFIG" -o -f "$MAIN_CONFIG2" ]; then
    CONFIG="$MAIN_CONFIG"
    CONFIG2="$MAIN_CONFIG2"
else
    echo "setupcon: None of $MAIN_CONFIG, $MAIN_CONFIG2, $USER_CONFIG, $USER_CONFIG2 exists." >&2
    exit 1
fi

if [ -f "$CONFIG2" ]; then
    . "$CONFIG2"
else
    # in order to permit "if [ cached.kmap.gz -ot $CONFIG2 ]; then ... fi"
    CONFIG2="$CONFIG"
fi
if [ -f "$CONFIG" ]; then
    . "$CONFIG"
fi

###########################################################################
### INITIALIZATION AND DEFAULT VALUES
###########################################################################

# do_verbose
# The variable VERBOSE_OUTPUT is obsoleted in favour of the option --verbose
if [ "$VERBOSE_OUTPUT" = yes ]; then
    do_verbose=yes
fi

# kernel
kernel=unknown
if which uname >/dev/null; then
    case "`uname`" in
        *Linux*) kernel=linux ;;
        *FreeBSD*) kernel=freebsd ;;
        *)
            echo 'setupcon: Unknown kernel (only Linux and FreeBSD are supported).' >&2
            exit 1
            ;;
    esac
fi

# do_save
if [ -n "$do_save" ]; then
    if [ ! -d /usr/share ]; then
        echo setupcon: It seems /usr is not mounted.  Will not save files in /etc. >&2
        do_save=''
    fi
fi

# ACTIVE_CONSOLES
# When ACTIVE_CONSOLES=guess the following will result in ACTIVE_CONSOLES=''
ACTIVE_CONSOLES=$(
    for tty in $ACTIVE_CONSOLES; do
        if [ -e $tty ]; then
            echo $tty
        fi
    done
)
if [ -z "$ACTIVE_CONSOLES" ]; then
    # Some crude guess
    #  Conf. files:
    #    BSD:        /etc/ttys
    #    Sys V init: /etc/inittab
    #    Upstart:    /etc/init/*
    #  Devices:
    #    Linux:   /dev/tty[1-9][0-9]*
    #    FreeBSD: /dev/ttyv[0-9a-f]
    for tty in \
        $(cat /etc/inittab /etc/init/* /etc/ttys 2>/dev/null \
	| grep getty \
        | egrep '([[:blank:]]|^)tty([1-9][0-9]*|v[0-9a-f])([[:blank:]]|$)' \
        | sed -e '/^ *#/d' \
              -e 's/.*[[:blank:]]\(tty[1-9][0-9]*\).*/\1/' \
              -e 's/.*[[:blank:]]\(ttyv[0-9a-f]\).*/\1/')
    do
        if [ -e /dev/$tty ]; then
            ACTIVE_CONSOLES="$ACTIVE_CONSOLES /dev/$tty"
        fi
    done
fi
if [ -z "$ACTIVE_CONSOLES" ]; then
    case "$kernel" in
        linux) ACTIVE_CONSOLES=$(ls /dev/tty[1-6] 2>/dev/null) ;;
        freebsd) ACTIVE_CONSOLES=$(ls /dev/ttyv[0-3] 2>/dev/null) ;;
    esac
    report Can not find the active virtual consoles, \
        assuming ACTIVE_CONSOLES=\"$ACTIVE_CONSOLES\" >&2
else
    report Configuring $ACTIVE_CONSOLES
fi

# CHARMAP
if [ "$CHARMAP" = guess -o -z "$CHARMAP" ]; then
    CHARMAP=''
    if which locale >/dev/null; then
        CHARMAP=`locale charmap`
    fi
fi
CHARMAP=${CHARMAP:-UTF-8}
# FreeBSD uses ISO8859-1, GNU uses ISO-8859-1, we use the GNU names
case "$CHARMAP" in
    ISO8859-*) CHARMAP="ISO-8859-${CHARMAP#ISO8859-}" ;;
    US-ASCII|ANSI*) CHARMAP=ISO-8859-1 ;;
esac
report The charmap is $CHARMAP

# unicode
if \
    [ "$CHARMAP" = UTF-8 ]
then
    unicode=yes
else
    unicode=''
fi

# do_font
if [ "$do_font" ]; then
    case "$kernel" in
        linux)
            if which consolechars >/dev/null ; then
                do_font=linuxct
            elif which setfont >/dev/null ; then
                do_font=linuxkbd
            else
                echo "setupcon: Neither setfont nor consolechars is accessible. No font will be configured." >&2
                do_font=''
            fi
            ;;
        freebsd)
            if which vidcontrol >/dev/null ; then
                do_font=freebsd
            else
                echo "setupcon: vidcontrol is not accessible. No font will be configured." >&2
                do_font=''
            fi
            ;;
    esac
fi
# Due to bug in splashy and usplash: do not load fonts (#540314)
if which pidof >/dev/null; then
    if pidof splashy > /dev/null || pidof usplash > /dev/null; then
        do_font=''
    fi
fi

# CODESET
[ "$CODESET" != guess ] || CODESET=''
if [ -z "$CODESET" ]; then
    case "$CHARMAP" in
        UTF-8)            CODESET=Uni2;;
        ARMSCII-8)        CODESET=Armenian ;;
        CP1251)           CODESET=CyrSlav ;;
        CP1255)           CODESET=Hebrew ;;
        CP1256)           CODESET=Arabic ;;
        GEORGIAN-ACADEMY) CODESET=Georgian ;;
        GEORGIAN-PS)      CODESET=Georgian ;;
        IBM1133)          CODESET=Lao ;;
        ISIRI-3342)       CODESET=Arabic ;;
        ISO-8859-1)       CODESET=Lat15 ;;
        ISO-8859-2)       CODESET=Lat2 ;;
        ISO-8859-3)       CODESET=Lat38 ;;
        ISO-8859-4)       CODESET=Lat7 ;; # sometimes Lat15
        ISO-8859-5)       CODESET=CyrSlav ;;
        ISO-8859-6)       CODESET=Arabic ;;
        ISO-8859-7)       CODESET=Greek ;;
        ISO-8859-8)       CODESET=Hebrew ;;
        ISO-8859-9)       CODESET=Lat15 ;;
        ISO-8859-10)      CODESET=Lat15 ;;
        ISO-8859-11)      CODESET=Thai ;;
        ISO-8859-13)      CODESET=Lat7 ;;
        ISO-8859-14)      CODESET=Lat38 ;;
        ISO-8859-15)      CODESET=Lat15 ;;
        ISO-8859-16)      CODESET=Lat2 ;;
        KOI8-R)           CODESET=CyrKoi ;;
        KOI8-U)           CODESET=CyrKoi ;;
        TIS-620)          CODESET=Thai ;;
        VISCII)           CODESET=Vietnamese ;;
        *)
            if [ "$do_font" ]; then
                echo Unsupported charmap $CHARMAP >&2
                exit 1
            fi
            ;;
    esac
    if [ "$kernel" = freebsd ]; then
        # 512 character fonts are not supported on FreeBSD
        case "$CODESET" in
            Uni*|Vietnamese|Arabic|Ethiopian) CODESET=Lat15 ;;
        esac
    fi
fi
if [ "$CHARMAP" != UTF-8 -a "$kernel" = freebsd ]; then
    if \
        [ -z "`findfile share/syscons/scrnmaps ${CHARMAP}_${CODESET}.scm`" ]
    then
        report "Ignoring the CODESET specification ($CODESET)."
        CODESET=`findfile share/syscons/scrnmaps ${CHARMAP}_*.scm`
        if [ -n "$do_font" -a -z "$CODESET" ]; then
            echo setupcon: Unsupported charmap $CHARMAP >&2
            exit 1
        fi
        CODESET=${CODESET%%*/}
        CODESET=${CODESET#.scm*}
        CODESET=${CODESET%*_}
        report Using $CODESET instead.
    fi
fi

# FONTSIZE
if [ -z "$FONTSIZE" -o "$FONTSIZE" = guess ]; then
    FONTSIZE=16
fi
case "$FONTSIZE" in
    8x*)
        FONTSIZE=${FONTSIZE#*x}
        ;;
    *x8)
        FONTSIZE=${FONTSIZE%x*}
        ;;
    *x*)
        a=${FONTSIZE%x*}
        b=${FONTSIZE#*x}
        if [ "$a" -lt "$b" ]; then
            FONTSIZE=${b}x${a}
        fi
        ;;
esac

# mapdir, fontdir, stdfont, stdfontfallback
case "$kernel" in
    linux)
        mapdir=share/consoletrans
        stdmap=$CHARMAP.acm.gz
        fontdir=share/consolefonts
        stdfont=$CODESET-$FONTFACE$FONTSIZE.psf.gz
        # [A-WXYZa-wyz] is a funny way to say [A-Za-wyz].  In some locales 
        # [A-Z] includes x and we don't want this.
        stdfontfallback=$CODESET-*[A-WXYZa-wyz]$FONTSIZE.psf.gz
        ;;
    freebsd)
        mapdir=share/syscons/scrnmaps
        stdmap=${CHARMAP}_${CODESET}.scm
        fontdir=share/syscons/fonts
        stdfont16=$CODESET-${FONTFACE}16.fnt
        stdfont14=$CODESET-${FONTFACE}14.fnt
        stdfont8=$CODESET-${FONTFACE}8.fnt
        stdfontfallback16=$CODESET-*[A-WXYZa-wyz]16.fnt
        stdfontfallback14=$CODESET-*[A-WXYZa-wyz]14.fnt
        stdfontfallback8=$CODESET-*[A-WXYZa-wyz]8.fnt
        ;;
esac

# CONSOLE_MAP
CONSOLE_MAP=${CONSOLE_MAP:-$ACM}
[ -z "$CONSOLE_MAP" ] || CONSOLE_MAP=`findfile $mapdir "$CONSOLE_MAP"`
[ -n "$CONSOLE_MAP" -o "$CHARMAP" = UTF-8 ] || CONSOLE_MAP=`findfile $mapdir $stdmap`
[ -n "$CONSOLE_MAP" -o "$CHARMAP" = UTF-8 ] || CONSOLE_MAP=`findfile $mapdir ${stdmap%.gz}`

# FONTFILES
FONTFILES=''
if [ "$FONT" ]; then
    for f in $FONT; do
        FONTFILES="$FONTFILES `findfile $fontdir $f`"
        RES=`findfile $fontdir $f`
        if [ -z "$RES" ]; then
            fdec="${f%.gz}"
            RES=`findfile $fontdir $fdec`
        fi
        FONTFILES="$FONTFILES $RES"
    done
fi
FONTFILES=`echo $FONTFILES` # remove extra spaces
if [ -n "$FONTFACE" -a -z "$FONTFILES" ]; then
    case "$kernel" in
        linux)
            # the following will fail if FONTFACE=guess ($stdfont will
            # match nothing)
            FONTFILES=`findfile $fontdir $stdfont`
            [ "$FONTFILES" ] || FONTFILES=`findfile $fontdir $stdfontfallback`
            case "$FONTFILES" in
                *[0-9]x[1-9]*.psf.gz)
                    if which consolechars >/dev/null; then
		        echo "\
The consolechars utility from the \"console-tools\" package can load only fonts
with 8 pixel width matrix.  Please install the setfont utility from the package
\"kbd\" or reconfigure the font size." >&2
                    fi
                    ;;
            esac
            ;;
        freebsd)
            FONTFILES=`findfile $fontdir $stdfont16`
            [ "$FONTFILES" ] || FONTFILES=`findfile $fontdir $stdfontfallback16`
            font=`findfile $fontdir $stdfont14`
            [ "$font" ] || font=`findfile $fontdir $stdfontfallback14`
            [ -z "$font" ] || FONTFILES="$FONTFILES $font"
            font=`findfile $fontdir $stdfont8`
            [ "$font" ] || font=`findfile $fontdir $stdfontfallback8`
            [ -z "$font" ] || FONTFILES="$FONTFILES $font"
            ;;
    esac
    if [ -n "$do_font" -a -z "$FONTFILES" ]; then
        echo setupcon: Unable to find the required font.  No font will be configured. >&2
        do_font=''
    fi
fi

# FONTMAPFILE
FONTMAPFILE=''
if [ "$kernel" = linux -a -n "$FONT_MAP" ]; then
    FONTMAPFILE=`findfile share/consoletrans "$FONT_MAP"`
fi

# XKBMODEL
if \
    [ -n "$do_kbd$do_save$savekbdfile$setupdir$do_printonly" \
         -a -z "$XKBMODEL" ]
then
    echo setupcon: The keyboard model is unknown, assuming \'pc105\'.  Keyboard may be configured incorrectly. >&2
    XKBMODEL='pc105'
fi
[ -n "$XKBMODEL" -o -z "$savekbdfile" ] || exit 1

# Backwards-compatibility with Ubuntu-specific preseeding
if [ "$XKBMODEL" = SKIP ]; then
    XKBMODEL=
fi

# do_kbd
[ "$XKBMODEL$KMAP" ] || do_kbd=''
if [ "$do_kbd" ]; then
    case "$kernel" in
        linux)
            if which loadkeys >/dev/null; then
                do_kbd=linux
            else
                echo setupcon: loadkeys is not accessible. Keyboard will not be configured.>&2
                do_kbd=''
            fi
            ;;
        freebsd)
            if which kbdcontrol >/dev/null; then
                do_kbd=freebsd
            else
                echo setupcon: kbdcontrol is not accessible. Keyboard will not be configured.>&2
                do_kbd=''
            fi
            ;;
    esac
fi

# acm_option
if [ "$CHARMAP" != UTF-8 ]; then
    acm_option="-charmap $CHARMAP"
elif [ "$kernel" = freebsd ]; then
    acm_option='-charmap ISO-8859-1'
else
    acm_option=''
fi

# rules_option
if [ "$XKBRULES" ]; then
    rules_option="-rules $XKBRULES"
else
    rules_option=''
fi

# backspace
case "$kernel" in
    linux) backspace='del' ;;
    freebsd) backspace='bs' ;;
esac
case \
    "`(stty -a \
          | egrep '(^| )erase *=' \
          | sed -e 's/.* erase *= *//' -e 's/^erase *= *//' -e 's/[; ].*//') \
      2>/dev/null`"
in
    ^\?) backspace='del' ;;
    ^h|^H) backspace='bs' ;;
esac
case "$BACKSPACE" in
    del) backspace='del' ;;
    bs) backspace='bs' ;;
esac
case "$backspace" in
    del) report BackSpace is ^? ;;
    bs) report BackSpace is ^h ;;
    *) echo setupcon: Wrong BackSpace option >&2 ;;
esac

# do_term
if [ "$do_term" ]; then
    case "$kernel" in
        linux)
            do_term=linux
            ;;
        freebsd)
            do_term=freebsd
            ;;
    esac
fi

# cached
case "$kernel" in
    linux)
        cached=/etc/console-setup/cached_${CHARMAP}_$backspace$VARIANT.kmap.gz
        ;;
    freebsd)
        cached=/etc/console-setup/cached_${CHARMAP}_$backspace$VARIANT.kbd
        ;;
esac

# savekbdfile
if \
    [ -z "$savekbdfile" -a -n "$do_save" ] \
    && [ ! -f "$cached" \
         -o ! "$CONFIG" -ot "$cached" \
         -o ! "$CONFIG2" -ot "$cached" ]
then
    savekbdfile="$cached"
fi
[ "$XKBMODEL" ] || savekbdfile=''
if [ "$kernel" = linux ] && ! which gzip >/dev/null; then
    savekbdfile=''
    echo setupcon: gzip is not accessible.  Will not save cached keyboard map. >&2
fi

# KMAP
if [ -n "$KMAP" -a ! -f "$KMAP" ]; then
    echo setupcon: $KMAP does not exist. >&2
    KMAP=''
fi


###########################################################################
### SAVE THE FILES IN /etc
###########################################################################

for i in /etc/console-setup $CONSOLE_MAP $FONTFILES $FONTMAPFILE $savekbdfile; do
    if [ "$i" = "${i#/etc/console-setup}" -a -n "$do_save" ]; then
        if \
            ! touch /etc/console-setup/cached_rwtest 2>/dev/null \
                || ! rm /etc/console-setup/cached_rwtest 2>/dev/null
        then
            echo setupcon: /etc/console-setup is not writable.  No files will be saved there. >&2
            do_save=''
        fi
        break
    fi
done

if [ -n "$do_save" ]; then
    case "$CONSOLE_MAP" in
        /etc/console-setup/*) ;;
        ?*)
            console_map_dec="${CONSOLE_MAP%.gz}"
            if [ "$console_map_dec" = "$CONSOLE_MAP" ]; then
                cp "$CONSOLE_MAP" /etc/console-setup/
            else
                gunzip -c "$CONSOLE_MAP" >"/etc/console-setup/${console_map_dec##*/}"
            fi
            rm -f "/etc/console-setup/${console_map_dec##*/}.gz"
            ;;
    esac
    for font in $FONTFILES; do
        case "$font" in
            /etc/console-setup/*) ;;
            ?*) cp "$font" /etc/console-setup/ ;;
        esac
    done
    case "$FONTMAPFILE" in
        /etc/console-setup/*) ;;
        ?*) cp "$FONTMAPFILE" /etc/console-setup/ ;;
    esac
fi

if [ "$savekbdfile" ]; then
    case "$kernel" in
        linux)
            tempfile || { echo setupcon: Can not create temporary file >&2; exit 1; }
            {
	        $installdir/bin/ckbcomp -backspace "$backspace" $acm_option \
                    $rules_option -model "$XKBMODEL" \
	            "$XKBLAYOUT" "$XKBVARIANT" "$XKBOPTIONS" >$TMPFILE \
                    && gzip -9n <$TMPFILE >"$savekbdfile"
            } || exit 1
            ;;
        freebsd)
	    $installdir/bin/ckbcomp -freebsd -backspace "$backspace" \
                $acm_option $rules_option -model "$XKBMODEL" \
	        "$XKBLAYOUT" "$XKBVARIANT" "$XKBOPTIONS" >"$savekbdfile" \
                || exit 1
            ;;
    esac
fi

if [ -n "$do_save" ]; then
    case "$CONSOLE_MAP" in
        /etc/console-setup/*) ;;
        ?*) cp "$CONSOLE_MAP" /etc/console-setup/cached_"${CONSOLE_MAP##*/}" ;;
    esac
    for font in $FONTFILES; do
        case "$font" in
            /etc/console-setup/*) ;;
            ?*) cp "$font" /etc/console-setup/cached_"${font##*/}" ;;
        esac
    done
    case "$FONTMAPFILE" in
        /etc/console-setup/*) ;;
        ?*) cp "$FONTMAPFILE" /etc/console-setup/cached_"${FONTMAPFILE##*/}" ;;
    esac
    if [ "$kernel" = linux ]; then
        commands_k=$($0 -k               --print-commands-only)
        commands_f=$($0 -f --current-tty --print-commands-only)
        commands_t=$($0 -t --current-tty --print-commands-only)
        cat >/etc/console-setup/cached_setup_keyboard.sh <<EOF
#!/bin/sh

if [ -f /run/console-setup/keymap_loaded ]; then
    rm /run/console-setup/keymap_loaded
    exit 0
fi
$commands_k
EOF
        cat >/etc/console-setup/cached_setup_font.sh <<EOF
#!/bin/sh

$commands_f

if ls /dev/fb* >/dev/null 2>/dev/null; then
    for i in /dev/vcs[0-9]*; do
        { :
            $commands_f
        } < /dev/tty\${i#/dev/vcs} > /dev/tty\${i#/dev/vcs}
    done
fi

mkdir -p /run/console-setup
> /run/console-setup/font-loaded
for i in /dev/vcs[0-9]*; do
    { :
$commands_t
    } < /dev/tty\${i#/dev/vcs} > /dev/tty\${i#/dev/vcs}
done
EOF
        cat >/etc/console-setup/cached_setup_terminal.sh <<EOF
#!/bin/sh

{ :
$commands_t
} < /dev/tty\${1#vcs} > /dev/tty\${1#vcs}
EOF
        chmod +x /etc/console-setup/cached_setup_keyboard.sh \
              /etc/console-setup/cached_setup_font.sh \
              /etc/console-setup/cached_setup_terminal.sh
    fi
fi


###########################################################################
### ARE WE ON THE CONSOLE?
###########################################################################

if [ "$do_check" ]; then
    if ! test_console; then
	echo setupcon: We are not on the console, the console is left unconfigured. >&2
	exit 0
    fi
fi


###########################################################################
### OUTPUT
###########################################################################

# Video mode
if [ "$VIDEOMODE" ]; then
    case "$do_font" in
        freebsd)
            run in '' vidcontrol "$VIDEOMODE"
            ;;
        linux*)
            # this is a bit pointless as vesafb doesn't support changing mode
            if which fbset >/dev/null; then
                run plain '' fbset -a "$VIDEOMODE"
            else
                report fbset is not installed
            fi
            ;;
    esac
fi

# Load the font(s)
if [ "$FONTFILES" ]; then
    case "$do_font" in
        freebsd)
            if [ -z "$unicode" ]; then
                for font in $FONTFILES; do
                    run plain '' vidcontrol -f $font
                done
                if [ "$CONSOLE_MAP" ]; then
                    run plain '' vidcontrol -l "$CONSOLE_MAP"
                fi
            fi
            ;;
        linuxkbd)
            if [ "$FONTMAPFILE" ]; then
                if [ "$CONSOLE_MAP" ]; then
	            run '-C ' -v setfont $FONTFILES -u "$FONTMAPFILE" -m "$CONSOLE_MAP"
                else
	            run '-C ' -v setfont $FONTFILES -u "$FONTMAPFILE"
                fi
            else
                if [ "$CONSOLE_MAP" ]; then
	            run '-C ' -v setfont $FONTFILES -m "$CONSOLE_MAP"
                else
	            run '-C ' -v setfont $FONTFILES
                fi
            fi
            ;;
        linuxct)
            if [ "$FONTMAPFILE" ]; then
                if [ "$CONSOLE_MAP" ]; then
	            run --tty= -v consolechars -f ${FONTFILES%% *} \
                        -u "$FONTMAPFILE" --acm "$CONSOLE_MAP"
                else
	            run --tty= -v consolechars -f ${FONTFILES%% *} -u "$FONTMAPFILE"
                fi
            else
                if [ "$CONSOLE_MAP" ]; then
	            run --tty= -v consolechars -f ${FONTFILES%% *} --acm "$CONSOLE_MAP"
                else
	            run --tty= -v consolechars -f ${FONTFILES%% *}
                fi
            fi
            ;;
    esac
fi

# Setup unicode/non-unicode mode
case "$do_term" in
    # So far the FreeBSD kernel doesn't support changes of the mode from
    # utf to 8-bit and vice versa (its a compile time option).
    linux*)
        # FORK because of #678897
        if [ "$unicode" ]; then
            run out FORK printf '\033%%G'
        else
            run out FORK printf '\033%%@'
        fi
        ;;
esac

# Setup the terminal width and height
if [ "$do_term" ]; then
    STTY=''
    [ -z "$SCREEN_WIDTH"  ] || STTY="$STTY cols $SCREEN_WIDTH"
    [ -z "$SCREEN_HEIGHT" ] || STTY="$STTY rows $SCREEN_HEIGHT"

    if [ "$STTY" ]; then
        run in '' stty $STTY
    fi
fi

# Setup the system beep
case "$do_term" in
    linux*)
        SETTERM=''
        if [ -n "$BEEP" ]; then
            # we use hardcoded ESC sequences instead of setterm
            # because we TERM is unset in scripts run by udev
            case "$BEEP" in
                default) ;;
                standard)
                    # --bfreq 750 --blength 100
                    SETTERM='\033[11;100]\033[10;750]' ;;
                short)
                    # --bfreq 750 --blength 40
                    SETTERM='\033[11;40]\033[10;750]' ;;
                shortest)
                    # --bfreq 750 --blength 9
                    SETTERM='\033[11;9]\033[10;750]' ;;
                polite)
                    # --bfreq 130 --blength 9
                    SETTERM='\033[11;9]\033[10;130]' ;;
                attention)
                    # --bfreq 130 --blength 600
                    SETTERM='\033[11;600]\033[10;130]' ;;
                annoying)
                    # --bfreq 550 --blength 1000
                    SETTERM='\033[11;1000]\033[10;550]' ;;
                off)
                    # --blength 0
                    SETTERM='\033[11;0]' ;;
                *)
                    echo setupcon: Unrecognised setting BEEP="$BEEP" >&2 ;;
            esac

            if [ "$SETTERM" ]; then
                run out FORK printf "$SETTERM"
            fi
        fi
        ;;
esac

###########################################################################
### INPUT
###########################################################################

# On Mac PPC machines, we may need to set kernel vars first.  We need
# to mount /proc to do that, but we need it set up before sulogin may
# be run in checkroot, which will need the keyboard to log in...
# This code was borrowed from the keymap.sh script of console-common
# Copyright © 2001 Yann Dirson
# Copyright © 2001 Alcove http://www.alcove.fr/
if [ "$do_kbd" = linux ]; then
    if [ -x /sbin/sysctl -a -r /etc/sysctl.conf ]; then
	if grep -v '^\#' /etc/sysctl.conf | grep -q keycodes ; then
	    grep keycodes /etc/sysctl.conf | grep -v "^#" \
		| while read -r d ; do
                /sbin/sysctl -w $d 2> /dev/null || true
            done
	fi
    fi
fi

# Setup unicode/non-unicode mode
# The following had to be [ "$do_kbd" = linux -o "$do_term" = linux ].
# Unfortunately, that way the X keyboard will be damaged when
# console-setup modifies the keyboard mode of X.
if [ "$do_kbd" = linux ]; then
    if which kbd_mode >/dev/null; then
        if [ "$unicode" ]; then
            run in '' kbd_mode -u
        else
            run in '' kbd_mode -a
        fi
    else
        report kbd_mode is not accessible.  Unable to setup unicode/non-unicode keyboard mode.
    fi
fi

if \
    [ -z "$KMAP" -a -f "$cached" ] \
    && [ "$CONFIG" -ot "$cached" -a "$CONFIG2" -ot "$cached" ]
then
    KMAP="$cached"
fi

if [ "$KMAP" ]; then
    case "$do_kbd" in
        linux) run plain NONE loadkeys "$KMAP" ;;
        freebsd) run in '' kbdcontrol -l "$KMAP" ;;
    esac
else
    tempfile || { echo setupcon: Can not create temporary file >&2; exit 1; }
    case "$do_kbd" in
        linux)
	    $installdir/bin/ckbcomp -backspace "$backspace" $acm_option \
                $rules_option -model "$XKBMODEL" \
	        "$XKBLAYOUT" "$XKBVARIANT" "$XKBOPTIONS" >$TMPFILE
            run plain NONE loadkeys $TMPFILE
            ;;
        freebsd)
	    $installdir/bin/ckbcomp -freebsd -backspace "$backspace" \
                $acm_option $rules_option -model "$XKBMODEL" \
	        "$XKBLAYOUT" "$XKBVARIANT" "$XKBOPTIONS" >$TMPFILE
            run in '' kbdcontrol -l $TMPFILE
            run in '' kbdcontrol -f 70 "`printf '\033[3~'`"
            ;;
    esac
fi


###########################################################################
### PRINTONLY
###########################################################################


if [ "$do_printonly" ]; then

    fileargs () {
        local arg args f
        if [ "$1" ]; then
            printf "%s" "$1" | {
                read -r arg args
                case "$arg" in
                    \>|\<)
                        echo -n "$arg"
                        ;;
                    *)
                        echo -n "'"
                        # printf instead of echo because different versions of
                        # echo process backslashes differently.
                        printf "%s" "$arg" \
                            | sed "s/'/\'\\\\\'\'/g"
                        echo -n "'"
                        ;;
                esac
                echo -n ' '
                fileargs "$args"
                }
        fi
    }

    printf "%s" "$SETUP" |
    while read -r cmd args; do
        printf "%s " "$cmd"
        fileargs "$args"
        echo
    done
fi

###########################################################################
### SETUPDIR
###########################################################################


if [ "$setupdir" ]; then

    fileargs () {
        local arg args f
        if [ "$1" ]; then
            printf "%s" "$1" | {
                read -r arg args
                case "$arg" in
                    \>|\<)
                        echo -n "$arg"
                        ;;
                    /*)
                        echo -n "'"
                        if [ -e "$arg" ]; then
                            f="${arg##*/}"
                            f="${f%.gz}"
                            case "$arg" in
                                *.gz) zcat "$arg" >"$setupdir/etc/console-setup/$f" ;;
                                *) cp -a "$arg" "$setupdir/etc/console-setup/$f" ;;
                            esac
                            printf "%s" "/etc/console-setup/$f" \
                                | sed "s/'/\'\\\\\'\'/g"
                        else
                            printf "%s" "$arg" \
                                | sed "s/'/\'\\\\\'\'/g"
                        fi
                        echo -n "'"
                        ;;
                    *)
                        echo -n "'"
                        # printf instead of echo because different versions of
                        # echo process backslashes differently.
                        printf "%s" "$arg" \
                            | sed "s/'/\'\\\\\'\'/g"
                        echo -n "'"
                        ;;
                esac
                echo -n ' '
                fileargs "$args"
                }
        fi
    }

    mkdir -p "$setupdir"/bin
    mkdir -p "$setupdir"/etc/console-setup

    echo '#!/bin/sh' >"$setupdir"/bin/setupcon
    echo '# A micro-version of setupcon with static configuration.' >>"$setupdir"/bin/setupcon
    chmod +x "$setupdir"/bin/setupcon
    tempfile || { echo setupcon: Can not create temporary file >&2; exit 1; }
    printf "%s" "$SETUP" |
    while read -r cmd args; do
        which "$cmd" >>$TMPFILE || true
        printf "%s " "$cmd"
        fileargs "$args"
        echo
    done >>"$setupdir"/bin/setupcon
    echo 'mkdir /run/console-setup' >>"$setupdir"/bin/setupcon
    echo '>/run/console-setup/keymap_loaded' >>"$setupdir"/bin/setupcon
    echo exit 0 >>"$setupdir"/bin/setupcon
    sort $TMPFILE | uniq | grep -v 'printf$' >"$setupdir"/morefiles
fi

exit 0

Filemanager

Name Type Size Permission Actions
bash File 1.06 MB 0755
btrfs File 699.67 KB 0755
btrfs-debug-tree File 367.14 KB 0755
btrfs-find-root File 363.14 KB 0755
btrfs-image File 387.14 KB 0755
btrfs-map-logical File 367.14 KB 0755
btrfs-select-super File 363.14 KB 0755
btrfs-zero-log File 363.14 KB 0755
btrfsck File 699.67 KB 0755
btrfstune File 367.14 KB 0755
bunzip2 File 34.07 KB 0755
busybox File 1.97 MB 0755
bzcat File 34.07 KB 0755
bzcmp File 2.09 KB 0755
bzdiff File 2.09 KB 0755
bzegrep File 3.56 KB 0755
bzexe File 4.76 KB 0755
bzfgrep File 3.56 KB 0755
bzgrep File 3.56 KB 0755
bzip2 File 34.07 KB 0755
bzip2recover File 13.99 KB 0755
bzless File 1.27 KB 0755
bzmore File 1.27 KB 0755
cat File 34.24 KB 0755
chacl File 13.99 KB 0755
chgrp File 62.18 KB 0755
chmod File 58.21 KB 0755
chown File 66.18 KB 0755
chvt File 10.07 KB 0755
cp File 138.21 KB 0755
cpio File 153.54 KB 0755
dash File 118.59 KB 0755
date File 98.21 KB 0755
dd File 74.22 KB 0755
df File 82.79 KB 0755
dir File 130.66 KB 0755
dmesg File 70.31 KB 0755
dnsdomainname File 18.07 KB 0755
domainname File 18.07 KB 0755
dumpkeys File 166.52 KB 0755
echo File 34.18 KB 0755
ed File 50.3 KB 0755
efibootdump File 17.99 KB 0755
efibootmgr File 39.12 KB 0755
egrep File 28 B 0755
false File 30.18 KB 0755
fgconsole File 10.07 KB 0755
fgrep File 28 B 0755
findmnt File 63.27 KB 0755
fsck.btrfs File 1.16 KB 0755
fuser File 35.09 KB 0755
fusermount File 30.08 KB 4755
getfacl File 22.62 KB 0755
grep File 214.31 KB 0755
gunzip File 2.25 KB 0755
gzexe File 5.86 KB 0755
gzip File 99.18 KB 0755
hostname File 18.07 KB 0755
ip File 545.12 KB 0755
journalctl File 62.09 KB 0755
kbd_mode File 10.07 KB 0755
kill File 26.08 KB 0755
kmod File 146.18 KB 0755
less File 166.76 KB 0755
lessecho File 10.02 KB 0755
lessfile File 8.36 KB 0755
lesskey File 19.39 KB 0755
lesspipe File 8.36 KB 0755
ln File 66.22 KB 0755
loadkeys File 206.57 KB 0755
login File 51.43 KB 0755
loginctl File 50.08 KB 0755
lowntfs-3g File 106.67 KB 0755
ls File 130.66 KB 0755
lsblk File 82.08 KB 0755
lsmod File 146.18 KB 0755
mkdir File 78.18 KB 0755
mkfs.btrfs File 387.17 KB 0755
mknod File 66.18 KB 0755
mktemp File 42.18 KB 0755
more File 38.04 KB 0755
mount File 42.08 KB 4755
mountpoint File 14.07 KB 0755
mt File 78.63 KB 0755
mt-gnu File 78.63 KB 0755
mv File 134.22 KB 0755
nano File 240.11 KB 0755
nc File 34.48 KB 0755
nc.openbsd File 34.48 KB 0755
netcat File 34.48 KB 0755
netstat File 150.58 KB 0755
networkctl File 42.07 KB 0755
nisdomainname File 18.07 KB 0755
ntfs-3g File 142.7 KB 0755
ntfs-3g.probe File 10.07 KB 0755
ntfscat File 26.1 KB 0755
ntfscluster File 34.1 KB 0755
ntfscmp File 34.1 KB 0755
ntfsfallocate File 34.11 KB 0755
ntfsfix File 42.11 KB 0755
ntfsinfo File 54.12 KB 0755
ntfsls File 31.18 KB 0755
ntfsmove File 30.1 KB 0755
ntfsrecover File 114.1 KB 0755
ntfssecaudit File 86.59 KB 0755
ntfstruncate File 38.03 KB 0755
ntfsusermap File 30.02 KB 0755
ntfswipe File 46.63 KB 0755
open File 18.43 KB 0755
openvt File 18.43 KB 0755
pidof File 22.08 KB 0755
ping File 62.91 KB 4755
ping4 File 62.91 KB 4755
ping6 File 62.91 KB 4755
plymouth File 37.99 KB 0755
ps File 130.3 KB 0755
pwd File 34.18 KB 0755
rbash File 1.06 MB 0755
readlink File 42.18 KB 0755
red File 89 B 0755
rm File 62.21 KB 0755
rmdir File 42.18 KB 0755
rnano File 240.11 KB 0755
run-parts File 18.32 KB 0755
sed File 106.45 KB 0755
setfacl File 34.68 KB 0755
setfont File 42.13 KB 0755
setupcon File 38.19 KB 0755
sh File 118.59 KB 0755
sh.distrib File 118.59 KB 0755
sleep File 34.18 KB 0755
ss File 136.63 KB 0755
static-sh File 1.97 MB 0755
stty File 74.21 KB 0755
su File 43.62 KB 4755
sync File 34.18 KB 0755
systemctl File 178.08 KB 0755
systemd File 1.54 MB 0755
systemd-ask-password File 10.08 KB 0755
systemd-escape File 14.06 KB 0755
systemd-hwdb File 82.35 KB 0755
systemd-inhibit File 14.08 KB 0755
systemd-machine-id-setup File 18.06 KB 0755
systemd-notify File 14.07 KB 0755
systemd-sysusers File 42.07 KB 0755
systemd-tmpfiles File 70.07 KB 0755
systemd-tty-ask-password-agent File 26.07 KB 0755
tar File 413.39 KB 0755
tempfile File 9.87 KB 0755
touch File 86.21 KB 0755
true File 30.18 KB 0755
udevadm File 574.4 KB 0755
ulockmgr_server File 13.99 KB 0755
umount File 26.07 KB 4755
uname File 34.21 KB 0755
uncompress File 2.25 KB 0755
unicode_start File 2.7 KB 0755
vdir File 130.66 KB 0755
wdctl File 30.08 KB 0755
which File 946 B 0755
whiptail File 26.01 KB 0755
ypdomainname File 18.07 KB 0755
zcat File 1.89 KB 0755
zcmp File 1.74 KB 0755
zdiff File 5.65 KB 0755
zegrep File 140 B 0755
zfgrep File 140 B 0755
zforce File 2.08 KB 0755
zgrep File 6.3 KB 0755
zless File 1.99 KB 0755
zmore File 1.87 KB 0755
znew File 4.95 KB 0755