403Webshell
Server IP : 104.21.84.107  /  Your IP : 104.23.197.209
Web Server : Apache/2.4.63 (Ubuntu)
System : Linux adminpruebas-Virtual-Machine 6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 x86_64
User : www-data ( 33)
PHP Version : 8.4.5
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /bin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /bin/x-terminal-emulator
#! /usr/bin/perl -w

sub exists_in_path {
    my $command = shift;
    my @path = split ':', $ENV{PATH};

    foreach my $dir (@path) {
	if (-x "$dir/$command") {
	    return 1;
	}
    }

    return 0;
}

# GNOME Terminal now uses a dbus-activated service, so calling it would exit
# immediately, while we're supposed to mimic xterm behavior and so to wait
# until the terminal is explicitly closed, so always use the wait argument
push(@args, '--wait');

while ($opt = shift(@ARGV))
{
    if ($opt eq '-display')
    {
	$ENV{'DISPLAY'} = shift(@ARGV);
    }
    elsif ($opt eq '-name')
    {
	$arg = shift(@ARGV);
	push(@args, "--window-with-profile=$arg");
    }
    elsif ($opt eq '-n')
    {
	# Accept but ignore
	shift(@ARGV);
	print STDERR "$0: to set an icon, please use -name <profile> and set a profile icon\n"
    }
    elsif ($opt eq '-T' || $opt eq '-title')
    {
	push(@args, '-t', shift(@ARGV));
    }
    elsif ($opt eq '-ls')
    {
	die "$0: Requested to be used as a login shell, but it's not supported\n"
    }
    elsif ($opt eq '+ls')
    {
	print STDERR "$0: gnome-terminal is always a non-login shell\n"
    }
    elsif ($opt eq '-geometry')
    {
	$arg = shift(@ARGV);
	push(@args, "--geometry=$arg");
    }
    elsif ($opt eq '-e')
    {
	# Debian Policy says we would be free to translate this into:
	# push(@args, '--', @ARGV);
	# but let's be nice to people with local scripts that rely on
	# xterm -e having a special case for a singular argument.
	$arg = shift(@ARGV);
	if (@ARGV)
	{
	    push(@args, '--', $arg, @ARGV);
	    last;
	}
	else
	{
	    # Emulate xterm's special case for a single argument: if it
	    # isn't something we can execute directly, pass it to a shell
	    my $executable;

	    if ($arg =~ m{/})
	    {
		$executable = -x $arg;
	    }
	    else
	    {
		$executable = exists_in_path($arg);
	    }

	    if ($executable)
	    {
		push(@args, '--', $arg);
	    }
	    else
	    {
		# Historically, we used the now-deprecated gnome-terminal -e
		# for this case, which would split the command line up as if
		# by a shell, but didn't support shell constructs like "if"
		# and pipes. But this is easier, and matches what xterm does.
		push(@args, '--', 'sh', '-c', $arg);
	    }
	}
	last;
    }
    elsif ($opt eq '-h' || $opt eq '--help')
    {
	push(@args, '--help');
    }
}

exec('gnome-terminal',@args);

=encoding UTF-8

=head1 NAME

gnome-terminal.wrapper - x-terminal-emulator interface for gnome-terminal

=head1 SYNOPSIS

B<x-terminal-emulator> [B<-T> I<TITLE>] [B<-e> I<COMMAND> [I<ARGUMENTS>...]]

=head1 DESCRIPTION

B<gnome-terminal.wrapper> wraps L<gnome-terminal(1)> to provide an
interface that is compatible with the B<x-terminal-emulator> specification
in Debian Policy, which is a subset of the L<xterm(1)> command-line
interface.

Its behaviour is similar to B<gnome-terminal --wait>,
with some command-line options converted from B<x-terminal-emulator>
syntax to L<gnome-terminal(1)> syntax.

=head1 OPTIONS

=head2 Standard x-terminal-emulator options

These options work as specified in Debian Policy §11.8.3.

=over 4

=item B<-T> I<TITLE>

Set the title of the terminal to I<TITLE>, as specified in Debian Policy.
Equivalent to B<xterm -T> I<TITLE> or B<gnome-terminal -t> I<TITLE>.

=item B<-e> I<COMMAND> [I<ARGUMENTS>...]

Run I<COMMAND> with arguments I<ARGUMENTS> in the terminal, and stop
parsing options after B<-e>.
Equivalent to B<xterm -e> I<COMMAND> I<ARGUMENTS>.

If there are no I<ARGUMENTS>, B<gnome-terminal.wrapper> will attempt
to find the I<COMMAND> in the B<PATH>.
If found, it is used as the command to execute, as specified in Debian Policy.
If not found, as an extension, B<gnome-terminal.wrapper> will treat the
I<COMMAND> as a shell command instead,
running it as if via B<sh -c> I<COMMAND>.
This is similar to the behaviour of B<xterm -e>, but is not guaranteed
to be implemented by all B<x-terminal-emulator> implementations.

Otherwise equivalent to B<gnome-terminal --> I<COMMAND> I<ARGUMENTS>.

=back

=head2 Non-standard options

These options are provided for convenience,
increasing command-line compatibility with L<xterm(1)> and/or
L<gnome-terminal(1)>,
but are not guaranteed to be available in other B<x-terminal-emulator>
implementations.
Using these options is discouraged: to obtain functionality beyond the
standardized B<x-terminal-emulator> interface,
invoke a specific terminal such as L<gnome-terminal(1)> or L<xterm(1)>
directly.

=over 4

=item B<-display> I<X11DISPLAY>

If using X11, select I<X11DISPLAY> as the X11 display to use.
If using native Wayland, this option is ignored.

It is preferable to set the B<DISPLAY> and/or B<WAYLAND_DISPLAY> environment
variables instead.

=item B<-geometry> I<COLS>B<x>I<ROWS>B<+>I<X>B<+>I<Y>

Set the window size to I<COLS> × I<ROWS> at position (I<X>,I<Y>).
Equivalent to B<gnome-terminal --geometry=>I<COLS>B<x>I<ROWS>B<+>I<X>B<+>I<Y>.

=item B<-ls>

Using this option is treated as a command-line parsing error.
In L<xterm(1)> it would run a login shell, but L<gnome-terminal(1)>
does not have that feature.

=item B<+ls>

Accepted, with a warning, but otherwise ignored.
L<gnome-terminal(1)> never runs a login shell.

=item B<-n> I<ICON>

Accepted for command-line compatibility with L<xterm(1)>, but ignored.

=item B<-name> I<NAME>

Select I<NAME> as a L<gnome-terminal(1)> profile, if it exists.
Equivalent to B<gnome-terminal --window-with-profile=>I<NAME>.

=item B<-h>, B<--help>

Show gnome-terminal's help.

=item Any other option

Passed as-is to gnome-terminal.

=back

=head1 EXIT STATUS

The exit status is the same as for L<gnome-terminal(1)>.

=head1 STANDARDS

Debian Policy §11.8.3 "Packages providing a terminal emulator".

For more details please see
L<https://www.debian.org/doc/debian-policy/ch-customized-programs.html>.

This is a Debian-specific interface and should not be expected to be
available on non-Debian-derived systems.

=head1 EXAMPLE

To run the command C<mutt -f=> in a window with title C<mutt e-mail client>:

    $ x-terminal-emulator -T "mutt e-mail client" -e mutt -f=

=head1 SEE ALSO

L<gnome-terminal(1)>, L<xterm(1)>,
L<Debian Policy|https://www.debian.org/doc/debian-policy/>.

=cut

Youez - 2016 - github.com/yon3zu
LinuXploit