Learning D-Bus

https://www.freedesktop.org/wiki/Software/dbus/
https://www.freedesktop.org/wiki/IntroductionToDBus/
https://www.packtpub.com/mapt/book/application_development/9781849519427/10/ch10lvl1sec126/time-for-action–listening-to-d-bus
https://dbus.freedesktop.org/doc/dbus-specification.html
https://stackoverflow.com/questions/2830858/controlling-gnome-volume-using-dbus
https://dbus.freedesktop.org/doc/dbus-tutorial.html#concepts
https://dbus.freedesktop.org/doc/diagram.svg
https://developer.gnome.org/NetworkManager/stable/spec.html
https://developer.gnome.org/NetworkManager/stable/gdbus-org.freedesktop.NetworkManager.html
http://www.beautifulwork.org/wp-content/uploads/2018/11/dbus.pdf
http://www.beautifulwork.org/wp-content/uploads/2018/11/dbus.docx

a look into the bash builtin command named “disown”

[bash light=”true”]
$jobs -l
$ping gnu.org
PING gnu.org (208.118.235.148) 56(84) bytes of data.
64 bytes from wildebeest.gnu.org (208.118.235.148): icmp_seq=1 ttl=53 time=267 ms
64 bytes from wildebeest.gnu.org (208.118.235.148): icmp_seq=2 ttl=53 time=266 ms
64 bytes from wildebeest.gnu.org (208.118.235.148): icmp_seq=3 ttl=53 time=267 ms
64 bytes from wildebeest.gnu.org (208.118.235.148): icmp_seq=4 ttl=53 time=321 ms
64 bytes from wildebeest.gnu.org (208.118.235.148): icmp_seq=5 ttl=53 time=268 ms
^Z
[1]+ Stopped ping gnu.org
$jobs -l
[1]+ 3882 Stopped ping gnu.org
$disown
bash: warning: deleting stopped job 1 with process group 3882
$jobs -l
$ping gnu.org
PING gnu.org (208.118.235.148) 56(84) bytes of data.
64 bytes from wildebeest.gnu.org (208.118.235.148): icmp_seq=1 ttl=53 time=267 ms
64 bytes from wildebeest.gnu.org (208.118.235.148): icmp_seq=2 ttl=53 time=267 ms
^C
— gnu.org ping statistics —
3 packets transmitted, 2 received, 33.3333% packet loss, time 3ms
rtt min/avg/max/mdev = 266.815/266.868/266.921/0.053 ms
$xeyes &
[1] 3885
$jobs -l
[1]+ 3885 Running xeyes &
$jobs -l
[1]+ 3885 Running xeyes &
$disown
$jobs -l
$jobs -l
$fg 1
bash: fg: 1: no such job
$

[/bash]
link: https://www.cyberciti.biz/faq/unix-linux-disown-command-examples-usage-syntax/

Hacking with Makefile for machine architecture detection

# SPDX-License-Identifier: GPL-2.0
INCLUDEDIR := -I.
CFLAGS := $(CFLAGS) $(INCLUDEDIR) -Wall -O2 -g

TEST_GEN_FILES := adi-test
UNAME := $(shell uname -m)

all: $(TEST_GEN_FILES)	

$(TEST_GEN_FILES): adi-test.c 
ifeq ($(UNAME), sparc64)
	$(info Machine architecture does match)
else
	$(info exit)
	$(error Machine architecture does not match)
endif  

TEST_PROGS := drivers_test.sh

include ../../lib.mk

$(OUTPUT)/adi-test: adi-test.c

Command for PHP information and configuration

[php]
$php –info
phpinfo()
PHP Version => 7.3.0RC3

System => Linux debian 4.17.0-3-amd64 #1 SMP Debian 4.17.17-1 (2018-08-18) x86_64
Build Date => Oct 15 2018 09:53:04
Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => /etc/php/7.3/cli
Loaded Configuration File => /etc/php/7.3/cli/php.ini
Scan this dir for additional .ini files => /etc/php/7.3/cli/conf.d
Additional .ini files parsed => /etc/php/7.3/cli/conf.d/10-opcache.ini,
/etc/php/7.3/cli/conf.d/10-pdo.ini,
/etc/php/7.3/cli/conf.d/20-calendar.ini,
/etc/php/7.3/cli/conf.d/20-ctype.ini,
/etc/php/7.3/cli/conf.d/20-exif.ini,
/etc/php/7.3/cli/conf.d/20-fileinfo.ini,
/etc/php/7.3/cli/conf.d/20-ftp.ini,
/etc/php/7.3/cli/conf.d/20-gettext.ini,
/etc/php/7.3/cli/conf.d/20-iconv.ini,
/etc/php/7.3/cli/conf.d/20-json.ini,
/etc/php/7.3/cli/conf.d/20-phar.ini,
/etc/php/7.3/cli/conf.d/20-posix.ini,
/etc/php/7.3/cli/conf.d/20-readline.ini,
/etc/php/7.3/cli/conf.d/20-shmop.ini,
/etc/php/7.3/cli/conf.d/20-sockets.ini,
/etc/php/7.3/cli/conf.d/20-sysvmsg.ini,
/etc/php/7.3/cli/conf.d/20-sysvsem.ini,
/etc/php/7.3/cli/conf.d/20-sysvshm.ini,
/etc/php/7.3/cli/conf.d/20-tokenizer.ini

PHP API => 20180731
PHP Extension => 20180731
Zend Extension => 320180731
Zend Extension Build => API320180731,NTS
PHP Extension Build => API20180731,NTS
Debug Build => no
Thread Safety => disabled
Zend Signal Handling => enabled
Zend Memory Manager => enabled
Zend Multibyte Support => disabled
IPv6 Support => enabled
DTrace Support => available, disabled

Registered PHP Streams => https, ftps, compress.zlib, php, file, glob, data, http, ftp, phar
Registered Stream Socket Transports => tcp, udp, unix, udg, ssl, tls, tlsv1.0, tlsv1.1, tlsv1.2
Registered Stream Filters => zlib.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, convert.iconv.*

This program makes use of the Zend Scripting Language Engine:
Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.0RC3, Copyright (c) 1999-2018, by Zend Technologies

_______________________________________________________________________

Configuration

calendar

Calendar support => enabled

Core

PHP Version => 7.3.0RC3

Directive => Local Value => Master Value
allow_url_fopen => On => On
allow_url_include => Off => Off
arg_separator.input => & => &
arg_separator.output => & => &
auto_append_file => no value => no value
auto_globals_jit => On => On
auto_prepend_file => no value => no value
browscap => no value => no value
default_charset => UTF-8 => UTF-8
default_mimetype => text/html => text/html
disable_classes => no value => no value
disable_functions => no value => no value
display_errors => Off => Off
display_startup_errors => Off => Off
doc_root => no value => no value
docref_ext => no value => no value
docref_root => no value => no value
enable_dl => Off => Off
enable_post_data_reading => On => On
error_append_string => no value => no value
error_log => no value => no value
error_prepend_string => no value => no value
error_reporting => 22527 => 22527
expose_php => On => On
extension_dir => /usr/lib/php/20180731 => /usr/lib/php/20180731
file_uploads => On => On
hard_timeout => 2 => 2
highlight.comment => <font style="color: #FF8000">#FF8000</font> => <font style="color: #FF8000">#FF8000</font>
highlight.default => <font style="color: #0000BB">#0000BB</font> => <font style="color: #0000BB">#0000BB</font>
highlight.html => <font style="color: #000000">#000000</font> => <font style="color: #000000">#000000</font>
highlight.keyword => <font style="color: #007700">#007700</font> => <font style="color: #007700">#007700</font>
highlight.string => <font style="color: #DD0000">#DD0000</font> => <font style="color: #DD0000">#DD0000</font>
html_errors => Off => Off
ignore_repeated_errors => Off => Off
ignore_repeated_source => Off => Off
ignore_user_abort => Off => Off
implicit_flush => On => On
include_path => .:/usr/share/php => .:/usr/share/php
input_encoding => no value => no value
internal_encoding => no value => no value
log_errors => On => On
log_errors_max_len => 1024 => 1024
mail.add_x_header => Off => Off
mail.force_extra_parameters => no value => no value
mail.log => no value => no value
max_execution_time => 0 => 0
max_file_uploads => 20 => 20
max_input_nesting_level => 64 => 64
max_input_time => -1 => -1
max_input_vars => 1000 => 1000
memory_limit => -1 => -1
open_basedir => no value => no value
output_buffering => 0 => 0
output_encoding => no value => no value
output_handler => no value => no value
post_max_size => 8M => 8M
precision => 14 => 14
realpath_cache_size => 4096K => 4096K
realpath_cache_ttl => 120 => 120
register_argc_argv => On => On
report_memleaks => On => On
report_zend_debug => Off => Off
request_order => GP => GP
sendmail_from => no value => no value
sendmail_path => /usr/sbin/sendmail -t -i => /usr/sbin/sendmail -t -i
serialize_precision => -1 => -1
short_open_tag => Off => Off
SMTP => localhost => localhost
smtp_port => 25 => 25
sys_temp_dir => no value => no value
syslog.facility => LOG_USER => LOG_USER
syslog.filter => no-ctrl => no-ctrl
syslog.ident => php => php
track_errors => Off => Off
unserialize_callback_func => no value => no value
upload_max_filesize => 2M => 2M
upload_tmp_dir => no value => no value
user_dir => no value => no value
user_ini.cache_ttl => 300 => 300
user_ini.filename => .user.ini => .user.ini
variables_order => GPCS => GPCS
xmlrpc_error_number => 0 => 0
xmlrpc_errors => Off => Off
zend.assertions => -1 => -1
zend.detect_unicode => On => On
zend.enable_gc => On => On
zend.multibyte => Off => Off
zend.script_encoding => no value => no value
zend.signal_check => Off => Off

ctype

ctype functions => enabled

date

date/time support => enabled
timelib version => 2017.06
"Olson" Timezone Database Version => 0.system
Timezone Database => internal
Default timezone => Asia/Calcutta

Directive => Local Value => Master Value
date.default_latitude => 31.7667 => 31.7667
date.default_longitude => 35.2333 => 35.2333
date.sunrise_zenith => 90.583333 => 90.583333
date.sunset_zenith => 90.583333 => 90.583333
date.timezone => no value => no value

exif

EXIF Support => enabled
Supported EXIF Version => 0220
Supported filetypes => JPEG, TIFF
Multibyte decoding support using mbstring => disabled
Extended EXIF tag formats => Canon, Casio, Fujifilm, Nikon, Olympus, Samsung, Panasonic, DJI, Sony, Pentax, Minolta, Sigma, Foveon, Kyocera, Ricoh, AGFA, Epson

Directive => Local Value => Master Value
exif.decode_jis_intel => JIS => JIS
exif.decode_jis_motorola => JIS => JIS
exif.decode_unicode_intel => UCS-2LE => UCS-2LE
exif.decode_unicode_motorola => UCS-2BE => UCS-2BE
exif.encode_jis => no value => no value
exif.encode_unicode => ISO-8859-15 => ISO-8859-15

fileinfo

fileinfo support => enabled
libmagic => 533

filter

Input Validation and Filtering => enabled

Directive => Local Value => Master Value
filter.default => unsafe_raw => unsafe_raw
filter.default_flags => no value => no value

ftp

FTP support => enabled
FTPS support => enabled

gettext

GetText Support => enabled

hash

hash support => enabled
Hashing Engines => md2 md4 md5 sha1 sha224 sha256 sha384 sha512/224 sha512/256 sha512 sha3-224 sha3-256 sha3-384 sha3-512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru snefru256 gost gost-crypto adler32 crc32 crc32b fnv132 fnv1a32 fnv164 fnv1a64 joaat haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5

MHASH support => Enabled
MHASH API Version => Emulated Support

iconv

iconv support => enabled
iconv implementation => glibc
iconv library version => 2.27

Directive => Local Value => Master Value
iconv.input_encoding => no value => no value
iconv.internal_encoding => no value => no value
iconv.output_encoding => no value => no value

json

json support => enabled
json version => 1.7.0

libxml

libXML support => active
libXML Compiled Version => 2.9.4
libXML Loaded Version => 20904
libXML streams => enabled

openssl

OpenSSL support => enabled
OpenSSL Library Version => OpenSSL 1.1.1-pre9 (beta) 21 Aug 2018
OpenSSL Header Version => OpenSSL 1.1.1 11 Sep 2018
Openssl default config => /usr/lib/ssl/openssl.cnf

Directive => Local Value => Master Value
openssl.cafile => no value => no value
openssl.capath => no value => no value

pcntl

pcntl support => enabled

pcre

PCRE (Perl Compatible Regular Expressions) Support => enabled
PCRE Library Version => 10.31 2018-02-12
PCRE Unicode Version => 10.0.0
PCRE JIT Support => enabled
PCRE JIT Target => x86 64bit (little endian + unaligned)

Directive => Local Value => Master Value
pcre.backtrack_limit => 1000000 => 1000000
pcre.jit => 1 => 1
pcre.recursion_limit => 100000 => 100000

PDO

PDO support => enabled
PDO drivers =>

Phar

Phar: PHP Archive support => enabled
Phar API version => 1.1.1
Phar-based phar archives => enabled
Tar-based phar archives => enabled
ZIP-based phar archives => enabled
gzip compression => enabled
bzip2 compression => disabled (install ext/bz2)
Native OpenSSL support => enabled

Phar based on pear/PHP_Archive, original concept by Davey Shafik.
Phar fully realized by Gregory Beaver and Marcus Boerger.
Portions of tar implementation Copyright (c) 2003-2009 Tim Kientzle.
Directive => Local Value => Master Value
phar.cache_list => no value => no value
phar.readonly => On => On
phar.require_hash => On => On

posix

POSIX support => enabled

readline

Readline Support => enabled
Readline library => EditLine wrapper

Directive => Local Value => Master Value
cli.pager => no value => no value
cli.prompt => \b \> => \b \>

Reflection

Reflection => enabled

session

Session Support => enabled
Registered save handlers => files user
Registered serializer handlers => php_serialize php php_binary

Directive => Local Value => Master Value
session.auto_start => Off => Off
session.cache_expire => 180 => 180
session.cache_limiter => nocache => nocache
session.cookie_domain => no value => no value
session.cookie_httponly => no value => no value
session.cookie_lifetime => 0 => 0
session.cookie_path => / => /
session.cookie_samesite => no value => no value
session.cookie_secure => 0 => 0
session.gc_divisor => 1000 => 1000
session.gc_maxlifetime => 1440 => 1440
session.gc_probability => 0 => 0
session.lazy_write => On => On
session.name => PHPSESSID => PHPSESSID
session.referer_check => no value => no value
session.save_handler => files => files
session.save_path => /var/lib/php/sessions => /var/lib/php/sessions
session.serialize_handler => php => php
session.sid_bits_per_character => 5 => 5
session.sid_length => 26 => 26
session.upload_progress.cleanup => On => On
session.upload_progress.enabled => On => On
session.upload_progress.freq => 1% => 1%
session.upload_progress.min_freq => 1 => 1
session.upload_progress.name => PHP_SESSION_UPLOAD_PROGRESS => PHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefix => upload_progress_ => upload_progress_
session.use_cookies => 1 => 1
session.use_only_cookies => 1 => 1
session.use_strict_mode => 0 => 0
session.use_trans_sid => 0 => 0

shmop

shmop support => enabled

sockets

Sockets Support => enabled

sodium

sodium support => enabled
libsodium headers version => 1.0.16
libsodium library version => 1.0.16

SPL

SPL support => enabled
Interfaces => OuterIterator, RecursiveIterator, SeekableIterator, SplObserver, SplSubject
Classes => AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, CallbackFilterIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, GlobIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveCallbackFilterIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException

standard

Dynamic Library Support => enabled
Path to sendmail => /usr/sbin/sendmail -t -i

Directive => Local Value => Master Value
assert.active => 1 => 1
assert.bail => 0 => 0
assert.callback => no value => no value
assert.exception => 0 => 0
assert.quiet_eval => 0 => 0
assert.warning => 1 => 1
auto_detect_line_endings => 0 => 0
default_socket_timeout => 60 => 60
from => no value => no value
session.trans_sid_hosts => no value => no value
session.trans_sid_tags => a=href,area=href,frame=src,form= => a=href,area=href,frame=src,form=
url_rewriter.hosts => no value => no value
url_rewriter.tags => form= => form=
user_agent => no value => no value

sysvmsg

sysvmsg support => enabled

sysvsem

sysvsem support => enabled

sysvshm

sysvshm support => enabled

tokenizer

Tokenizer Support => enabled

Zend OPcache

Opcode Caching => Disabled
Optimization => Disabled
SHM Cache => Enabled
File Cache => Disabled
Startup Failed => Opcode Caching is disabled for CLI

Directive => Local Value => Master Value
opcache.blacklist_filename => no value => no value
opcache.consistency_checks => 0 => 0
opcache.dups_fix => Off => Off
opcache.enable => On => On
opcache.enable_cli => Off => Off
opcache.enable_file_override => Off => Off
opcache.error_log => no value => no value
opcache.file_cache => no value => no value
opcache.file_cache_consistency_checks => 1 => 1
opcache.file_cache_only => 0 => 0
opcache.file_update_protection => 2 => 2
opcache.force_restart_timeout => 180 => 180
opcache.huge_code_pages => Off => Off
opcache.interned_strings_buffer => 8 => 8
opcache.lockfile_path => /tmp => /tmp
opcache.log_verbosity_level => 1 => 1
opcache.max_accelerated_files => 10000 => 10000
opcache.max_file_size => 0 => 0
opcache.max_wasted_percentage => 5 => 5
opcache.memory_consumption => 128 => 128
opcache.opt_debug_level => 0 => 0
opcache.optimization_level => 0x7FFEBFFF => 0x7FFEBFFF
opcache.preferred_memory_model => no value => no value
opcache.protect_memory => 0 => 0
opcache.restrict_api => no value => no value
opcache.revalidate_freq => 2 => 2
opcache.revalidate_path => Off => Off
opcache.save_comments => 1 => 1
opcache.use_cwd => On => On
opcache.validate_permission => Off => Off
opcache.validate_root => Off => Off
opcache.validate_timestamps => On => On

zlib

ZLib Support => enabled
Stream Wrapper => compress.zlib://
Stream Filter => zlib.inflate, zlib.deflate
Compiled Version => 1.2.11
Linked Version => 1.2.11

Directive => Local Value => Master Value
zlib.output_compression => Off => Off
zlib.output_compression_level => -1 => -1
zlib.output_handler => no value => no value

Additional Modules

Module Name

Environment

Variable => Value
LS_COLORS => rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
XDG_MENU_PREFIX => gnome-
LANG => en_IN
GDM_LANG => en_IN
DISPLAY => :0
COLORTERM => truecolor
USERNAME => jeffrin
XDG_VTNR => 2
SSH_AUTH_SOCK => /run/user/1000/keyring/ssh
XDG_SESSION_ID => 2
USER => jeffrin
DESKTOP_SESSION => gnome
WAYLAND_DISPLAY => wayland-0
GNOME_TERMINAL_SCREEN => /org/gnome/Terminal/screen/17968f45_b3c5_48d2_86ee_18043bcc6fbb
PWD => /home/jeffrin
HOME => /home/jeffrin
XDG_SESSION_TYPE => wayland
XDG_SESSION_DESKTOP => gnome
GJS_DEBUG_OUTPUT => stderr
no_proxy => localhost,127.0.0.0/8,::1
NO_PROXY => localhost,127.0.0.0/8,::1
TERM => xterm-256color
SHELL => /bin/bash
VTE_VERSION => 5202
XDG_CURRENT_DESKTOP => GNOME
GNOME_TERMINAL_SERVICE => :1.233
XDG_SEAT => seat0
SHLVL => 2
LANGUAGE => en_IN:en
GDMSESSION => gnome
GNOME_DESKTOP_SESSION_ID => this-is-deprecated
LOGNAME => jeffrin
DBUS_SESSION_BUS_ADDRESS => unix:path=/run/user/1000/bus
XDG_RUNTIME_DIR => /run/user/1000
PATH => /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
PS1 => $
XDG_SESSION_COOKIE => 5df7dd9383e6e99784c6def8568d3d04-1539693190.285574-2029708881
GJS_DEBUG_TOPICS => JS ERROR;JS LOG
SESSION_MANAGER => local/debian:@/tmp/.ICE-unix/1464,unix/debian:/tmp/.ICE-unix/1464
_ => /usr/bin/php

PHP Variables

Variable => Value
$_SERVER[‘LS_COLORS’] => rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
$_SERVER[‘XDG_MENU_PREFIX’] => gnome-
$_SERVER[‘LANG’] => en_IN
$_SERVER[‘GDM_LANG’] => en_IN
$_SERVER[‘DISPLAY’] => :0
$_SERVER[‘COLORTERM’] => truecolor
$_SERVER[‘USERNAME’] => jeffrin
$_SERVER[‘XDG_VTNR’] => 2
$_SERVER[‘SSH_AUTH_SOCK’] => /run/user/1000/keyring/ssh
$_SERVER[‘XDG_SESSION_ID’] => 2
$_SERVER[‘USER’] => jeffrin
$_SERVER[‘DESKTOP_SESSION’] => gnome
$_SERVER[‘WAYLAND_DISPLAY’] => wayland-0
$_SERVER[‘GNOME_TERMINAL_SCREEN’] => /org/gnome/Terminal/screen/17968f45_b3c5_48d2_86ee_18043bcc6fbb
$_SERVER[‘PWD’] => /home/jeffrin
$_SERVER[‘HOME’] => /home/jeffrin
$_SERVER[‘XDG_SESSION_TYPE’] => wayland
$_SERVER[‘XDG_SESSION_DESKTOP’] => gnome
$_SERVER[‘GJS_DEBUG_OUTPUT’] => stderr
$_SERVER[‘no_proxy’] => localhost,127.0.0.0/8,::1
$_SERVER[‘NO_PROXY’] => localhost,127.0.0.0/8,::1
$_SERVER[‘TERM’] => xterm-256color
$_SERVER[‘SHELL’] => /bin/bash
$_SERVER[‘VTE_VERSION’] => 5202
$_SERVER[‘XDG_CURRENT_DESKTOP’] => GNOME
$_SERVER[‘GNOME_TERMINAL_SERVICE’] => :1.233
$_SERVER[‘XDG_SEAT’] => seat0
$_SERVER[‘SHLVL’] => 2
$_SERVER[‘LANGUAGE’] => en_IN:en
$_SERVER[‘GDMSESSION’] => gnome
$_SERVER[‘GNOME_DESKTOP_SESSION_ID’] => this-is-deprecated
$_SERVER[‘LOGNAME’] => jeffrin
$_SERVER[‘DBUS_SESSION_BUS_ADDRESS’] => unix:path=/run/user/1000/bus
$_SERVER[‘XDG_RUNTIME_DIR’] => /run/user/1000
$_SERVER[‘PATH’] => /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
$_SERVER[‘PS1’] => $
$_SERVER[‘XDG_SESSION_COOKIE’] => 5df7dd9383e6e99784c6def8568d3d04-1539693190.285574-2029708881
$_SERVER[‘GJS_DEBUG_TOPICS’] => JS ERROR;JS LOG
$_SERVER[‘SESSION_MANAGER’] => local/debian:@/tmp/.ICE-unix/1464,unix/debian:/tmp/.ICE-unix/1464
$_SERVER[‘_’] => /usr/bin/php
$_SERVER[‘PHP_SELF’] =>
$_SERVER[‘SCRIPT_NAME’] =>
$_SERVER[‘SCRIPT_FILENAME’] =>
$_SERVER[‘PATH_TRANSLATED’] =>
$_SERVER[‘DOCUMENT_ROOT’] =>
$_SERVER[‘REQUEST_TIME_FLOAT’] => 1539721458.8647
$_SERVER[‘REQUEST_TIME’] => 1539721458
$_SERVER[‘argv’] => Array
(
)

$_SERVER[‘argc’] => 0

PHP License
This program is free software; you can redistribute it and/or modify
it under the terms of the PHP License as published by the PHP Group
and included in the distribution in the file: LICENSE

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

If you did not receive a copy of the PHP license, or have any
questions about PHP licensing, please contact license@php.net.
$

[/php]

Look into bash builtin command named typeset

$typeset -n gree=55
bash: typeset: 55': invalid variable name for name reference
$typeset -n 55=gree
bash: typeset:55=gree': not a valid identifier
$typeset -n gree=pwd
$echo $gree
$echo $pwd
$typeset -n vary=$?
bash: typeset: `0': invalid variable name for name reference
$typeset vary=$?
$echo $vary
1
$echo $vary
1
$echo $?
0
$echo $vary
1
$echo vary
vary
$echo $vary
1
$echo $vary
1
$echo $?
0
$typeset vary=$?
$echo $vary
0
$
$typeset hello
$echo $hello

$echo $?
0
$typeset hello
$echo $?
0
$typeset -r hello=1
$typeset hello=2
bash: typeset: hello: readonly variable
$

http://tldp.org/LDP/abs/html/declareref.html

How to use dirs, pushd and popd commands ?

$pushd upstream-kernel/
~/upstream-kernel ~
$pwd
/home/jeffrin/upstream-kernel
$cd ..
$pushd temp/
~/temp ~ ~
$dirs
~/temp ~ ~
$dirs -l
/home/jeffrin/temp /home/jeffrin /home/jeffrin
$pwd
/home/jeffrin/temp
$pushd ../upstream-kernel/
~/upstream-kernel ~/temp ~ ~
$dirs -l
/home/jeffrin/upstream-kernel /home/jeffrin/temp /home/jeffrin /home/jeffrin
$pushd ../testing/
~/testing ~/upstream-kernel ~/temp ~ ~
$dirs -l
/home/jeffrin/testing /home/jeffrin/upstream-kernel /home/jeffrin/temp /home/jeffrin /home/jeffrin
$popd 
~/upstream-kernel ~/temp ~ ~
$dirs -l
/home/jeffrin/upstream-kernel /home/jeffrin/temp /home/jeffrin /home/jeffrin
$popd 
~/temp ~ ~
$dirs -l
/home/jeffrin/temp /home/jeffrin /home/jeffrin
$

finding source code or source file of a typical bash function

$type -a signals
bash: type: signals: not found
$type -a _signals
_signals is a function
_signals () 
{ 
    local -a sigs=($( compgen -P "$1" -A signal "SIG${cur#$1}" ));
    COMPREPLY+=("${sigs[@]/#${1}SIG/${1}}")
}
$declare -F _signals 
_signals
$shopt -s extdebug
$declare -F _signals 
_signals 862 /usr/share/bash-completion/bash_completion
$declare -F _command
_command 1732 /usr/share/bash-completion/bash_completion
$declare -F compgen
$declare -F _grub_dirs
$declare -F _grub_dir
$shopt -s extdebug
$declare -F _grub_dir
$declare -F _grub_dirs
$declare -F __grub_dir
__grub_dir 20 /etc/bash_completion.d/grub
$

$type __grub_dir __grub_dir is a function __grub_dir () { local i c=1 boot_dir; for ((c=1; c <= ${#COMP_WORDS[@]}; c++ )) do i="${COMP_WORDS[c]}"; case "$i" in --boot-directory) c=$((++c)); i="${COMP_WORDS[c]}"; boot_dir="${i##*=}"; break ;; esac; done; boot_dir=${boot_dir-/boot}; echo "${boot_dir%/}/grub" } $__grub_dir /boot/grub $__grub_dir --help /boot/grub $ech0 $? bash: ech0: command not found $echo $? 127 $__grub_dir --help /boot/grub $echo $? 0 $


$_command bash: COMP_WORDS: bad array subscript bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function bash: compopt: not currently executing completion function $type _command _command is a function _command () { local offset i; offset=1; for ((i=1; i <= COMP_CWORD; i++ )) do if [[ "${COMP_WORDS[i]}" != -* ]]; then offset=$i; break; fi; done; _command_offset $offset } $type -a _command _command is a function _command () { local offset i; offset=1; for ((i=1; i <= COMP_CWORD; i++ )) do if [[ "${COMP_WORDS[i]}" != -* ]]; then offset=$i; break; fi; done; _command_offset $offset } $

compgen builtin command exposure

ABOUT compgen

compgen is bash built-in command and it will show all available commands, aliases, and functions for you. 

TYPICAL COMMANDLINE EXPOSURE RELATED
[bash]
$compgen -k
if
then
else
elif
fi
case
esac
for
select
while
until
do
done
in
function
time
{
}
!
[[
]]
coproc
$
$compgen -a
ls
$
$compgen -b
.
:
[
alias
bg
bind
break
builtin
caller
cd
command
compgen
complete
compopt
continue
declare
dirs
disown
echo
enable
eval
exec
exit
export
false
fc
fg
getopts
hash
help
history
jobs
kill
let
local
logout
mapfile
popd
printf
pushd
pwd
read
readarray
readonly
return
set
shift
shopt
source
suspend
test
times
trap
true
type
typeset
ulimit
umask
unalias
unset
wait
$
[/bash]
[bash]
$cat comp.sh
#!/bin/bash

commands=`compgen -c`
let count=1

for i in ${commands[@]}
do

what=`whatis $i`

echo -e "n33[38;5;148m$count. $i: 33[39m"
echo -e "$what"

((count++))

done
$

$bash comp.sh | head
if: nothing appropriate.
n33[38;5;148m1. if: 33[39m

then: nothing appropriate.
n33[38;5;148m2. then: 33[39m

else: nothing appropriate.
n33[38;5;148m3. else: 33[39m

elif: nothing appropriate.
n33[38;5;148m4. elif: 33[39m

fi: nothing appropriate.
n33[38;5;148m5. fi: 33[39m

case: nothing appropriate.
$

[/bash]
LINKS
https://www.cyberciti.biz/open-source/command-line-hacks/compgen-linux-command/
https://www.gnu.org/software/bash/manual/html_node/A-Programmable-Completion-Example.html

bash builtin command named command

$pwd
/home/jeffrin/upstream-kernel
$tail ~/.bashrc
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi
export PS1=$
function ls {
   pwd
}
$ls
/home/jeffrin/upstream-kernel
$command ls
0002-Testing-script-for-Intel-P-State-driver-crashes-duri.patch  linux    linux-kselftest  linux-kselftest.bup  linux-kselftest.bup2  linux-next  linux.old
$