Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
Apache/2.4.52 (Ubuntu)
Server IP : 192.168.1.1 & Your IP : 18.224.184.41
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
snap /
core24 /
739 /
usr /
bin /
Delete
Unzip
Name
Size
Permission
Date
Action
[
54.44
KB
-rwxr-xr-x
2024-04-05 14:36
aa-enabled
18.3
KB
-rwxr-xr-x
2024-07-18 18:28
aa-exec
18.3
KB
-rwxr-xr-x
2024-07-18 18:28
aa-features-abi
18.3
KB
-rwxr-xr-x
2024-07-18 18:28
addpart
14.38
KB
-rwxr-xr-x
2024-08-09 02:33
arch
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
awk
166.77
KB
-rwxr-xr-x
2024-04-08 16:12
b2sum
54.51
KB
-rwxr-xr-x
2024-04-05 14:36
base32
38.51
KB
-rwxr-xr-x
2024-04-05 14:36
base64
38.51
KB
-rwxr-xr-x
2024-04-05 14:36
basename
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
basenc
46.51
KB
-rwxr-xr-x
2024-04-05 14:36
bash
1.38
MB
-rwxr-xr-x
2024-03-31 08:41
bashbug
6.82
KB
-rwxr-xr-x
2024-03-31 08:41
bunzip2
38.38
KB
-rwxr-xr-x
2024-08-09 02:33
busctl
94.59
KB
-rwxr-xr-x
2024-08-08 14:51
bzcat
38.38
KB
-rwxr-xr-x
2024-08-09 02:33
bzcmp
2.17
KB
-rwxr-xr-x
2024-08-09 02:33
bzdiff
2.17
KB
-rwxr-xr-x
2024-08-09 02:33
bzegrep
3.69
KB
-rwxr-xr-x
2024-08-09 02:33
bzexe
4.78
KB
-rwxr-xr-x
2021-11-27 12:25
bzfgrep
3.69
KB
-rwxr-xr-x
2024-08-09 02:33
bzgrep
3.69
KB
-rwxr-xr-x
2024-08-09 02:33
bzip2
38.38
KB
-rwxr-xr-x
2024-08-09 02:33
bzip2recover
18.3
KB
-rwxr-xr-x
2024-08-09 02:33
bzless
1.27
KB
-rwxr-xr-x
2024-08-09 02:33
bzmore
1.27
KB
-rwxr-xr-x
2024-08-09 02:33
captoinfo
90.41
KB
-rwxr-xr-x
2024-04-08 16:14
cat
38.46
KB
-rwxr-xr-x
2024-04-05 14:36
chage
70.49
KB
-rwxr-sr-x
2024-05-30 14:52
chardet
221
B
-rwxr-xr-x
2023-08-20 12:12
chardetect
221
B
-rwxr-xr-x
2023-08-20 12:12
chattr
14.31
KB
-rwxr-xr-x
2024-04-28 23:44
chcon
58.51
KB
-rwxr-xr-x
2024-04-05 14:36
chfn
71.09
KB
-rwsr-xr-x
2024-05-30 14:52
chgrp
58.51
KB
-rwxr-xr-x
2024-04-05 14:36
chmod
54.51
KB
-rwxr-xr-x
2024-04-05 14:36
choom
22.38
KB
-rwxr-xr-x
2024-08-09 02:33
chown
58.51
KB
-rwxr-xr-x
2024-04-05 14:36
chrt
30.38
KB
-rwxr-xr-x
2024-08-09 02:33
chsh
43.71
KB
-rwsr-xr-x
2024-05-30 14:52
cksum
102.52
KB
-rwxr-xr-x
2024-04-05 14:36
clear
14.31
KB
-rwxr-xr-x
2024-04-08 16:14
clear_console
14.23
KB
-rwxr-xr-x
2024-03-31 08:41
cloud-id
966
B
-rwxr-xr-x
2024-12-02 19:09
cloud-init
970
B
-rwxr-xr-x
2024-12-02 19:09
cloud-init-per
2.06
KB
-rwxr-xr-x
2024-11-25 16:09
cmp
42.39
KB
-rwxr-xr-x
2024-04-08 15:55
comm
38.52
KB
-rwxr-xr-x
2024-04-05 14:36
core-sshd-host-keygen
1.49
KB
-rwxr-xr-x
2024-12-17 16:03
coredumpctl
82.66
KB
-rwxr-xr-x
2024-08-08 14:51
cp
138.52
KB
-rwxr-xr-x
2024-04-05 14:36
csplit
50.51
KB
-rwxr-xr-x
2024-04-05 14:36
ctstat
22.66
KB
-rwxr-xr-x
2024-03-31 09:00
cut
38.51
KB
-rwxr-xr-x
2024-04-05 14:36
cvtsudoers
321.13
KB
-rwxr-xr-x
2024-04-08 14:50
dash
126.74
KB
-rwxr-xr-x
2024-03-31 08:47
date
106.51
KB
-rwxr-xr-x
2024-04-05 14:36
dbus-cleanup-sockets
14.29
KB
-rwxr-xr-x
2024-08-09 02:33
dbus-daemon
230.64
KB
-rwxr-xr-x
2024-08-09 02:33
dbus-monitor
26.3
KB
-rwxr-xr-x
2024-08-09 02:33
dbus-run-session
14.3
KB
-rwxr-xr-x
2024-08-09 02:33
dbus-send
30.29
KB
-rwxr-xr-x
2024-08-09 02:33
dbus-update-activation-environment
14.29
KB
-rwxr-xr-x
2024-08-09 02:33
dbus-uuidgen
14.29
KB
-rwxr-xr-x
2024-08-09 02:33
dd
70.54
KB
-rwxr-xr-x
2024-04-05 14:36
delpart
14.38
KB
-rwxr-xr-x
2024-08-09 02:33
df
87.08
KB
-rwxr-xr-x
2024-04-05 14:36
diff
134.55
KB
-rwxr-xr-x
2024-04-08 15:55
diff3
58.52
KB
-rwxr-xr-x
2024-04-08 15:55
dir
138.98
KB
-rwxr-xr-x
2024-04-05 14:36
dircolors
46.52
KB
-rwxr-xr-x
2024-04-05 14:36
dirname
34.38
KB
-rwxr-xr-x
2024-04-05 14:36
dmesg
68.64
KB
-rwxr-xr-x
2024-08-09 02:33
dnsdomainname
22.23
KB
-rwxr-xr-x
2024-04-08 15:59
domainname
22.23
KB
-rwxr-xr-x
2024-04-08 15:59
dpkg-deb
142.58
KB
-rwxr-xr-x
2024-07-17 09:09
dpkg-realpath
4.09
KB
-rwxr-xr-x
2024-07-17 09:09
du
98.51
KB
-rwxr-xr-x
2024-04-05 14:36
ec2metadata
8.38
KB
-rwxr-xr-x
2022-06-03 10:51
echo
34.38
KB
-rwxr-xr-x
2024-04-05 14:36
editor
1.66
MB
-rwxr-xr-x
2024-11-06 19:04
egrep
41
B
-rwxr-xr-x
2024-04-08 15:58
env
46.95
KB
-rwxr-xr-x
2024-04-05 14:36
ex
1.66
MB
-rwxr-xr-x
2024-11-06 19:04
expand
34.53
KB
-rwxr-xr-x
2024-04-05 14:36
expiry
26.52
KB
-rwxr-sr-x
2024-05-30 14:52
expr
42.41
KB
-rwxr-xr-x
2024-04-05 14:36
factor
62.51
KB
-rwxr-xr-x
2024-04-05 14:36
faillog
22.63
KB
-rwxr-xr-x
2024-05-30 14:52
fallocate
26.38
KB
-rwxr-xr-x
2024-08-09 02:33
false
26.3
KB
-rwxr-xr-x
2024-04-05 14:36
fgrep
41
B
-rwxr-xr-x
2024-04-08 15:58
finalrd
2.06
KB
-rwxr-xr-x
2022-02-16 16:56
find
199.48
KB
-rwxr-xr-x
2024-04-08 15:57
findmnt
67.66
KB
-rwxr-xr-x
2024-08-09 02:33
flock
22.48
KB
-rwxr-xr-x
2024-08-09 02:33
fmt
38.51
KB
-rwxr-xr-x
2024-04-05 14:36
fold
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
free
26.38
KB
-rwxr-xr-x
2024-09-26 08:44
gdbserver
615.98
KB
-rwxr-xr-x
2024-04-03 10:51
getconf
26.36
KB
-rwxr-xr-x
2024-08-08 14:47
getent
38.72
KB
-rwxr-xr-x
2024-08-08 14:47
getopt
22.38
KB
-rwxr-xr-x
2024-08-09 02:33
gpasswd
74.46
KB
-rwsr-xr-x
2024-05-30 14:52
gpgv
303.14
KB
-rwxr-xr-x
2024-04-06 16:25
grep
182.45
KB
-rwxr-xr-x
2024-04-08 15:58
groups
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
growpart
29.19
KB
-rwxr-xr-x
2022-06-03 10:51
gunzip
2.29
KB
-rwxr-xr-x
2024-04-08 15:58
gzexe
6.3
KB
-rwxr-xr-x
2024-04-08 15:58
gzip
91.23
KB
-rwxr-xr-x
2024-04-08 15:58
hardlink
46.48
KB
-rwxr-xr-x
2024-08-09 02:33
head
42.51
KB
-rwxr-xr-x
2024-04-05 14:36
hostid
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
hostname
22.23
KB
-rwxr-xr-x
2024-04-08 15:59
hostnamectl
30.45
KB
-rwxr-xr-x
2024-08-08 14:51
i386
26.65
KB
-rwxr-xr-x
2024-08-09 02:33
iconv
66.48
KB
-rwxr-xr-x
2024-08-08 14:47
id
38.51
KB
-rwxr-xr-x
2024-04-05 14:36
infocmp
66.38
KB
-rwxr-xr-x
2024-04-08 16:14
infotocap
90.41
KB
-rwxr-xr-x
2024-04-08 16:14
install
142.52
KB
-rwxr-xr-x
2024-04-05 14:36
ionice
18.38
KB
-rwxr-xr-x
2024-08-09 02:33
ip
754.74
KB
-rwxr-xr-x
2024-03-31 09:00
ipcmk
22.45
KB
-rwxr-xr-x
2024-08-09 02:33
ipcrm
18.38
KB
-rwxr-xr-x
2024-08-09 02:33
ipcs
38.38
KB
-rwxr-xr-x
2024-08-09 02:33
iptables-xml
92.95
KB
-rwxr-xr-x
2024-04-08 15:59
ischroot
14.48
KB
-rwxr-xr-x
2024-03-31 08:47
join
50.55
KB
-rwxr-xr-x
2024-04-05 14:36
journalctl
78.91
KB
-rwxr-xr-x
2024-08-08 14:51
json-patch-jsondiff
1004
B
-rwxr-xr-x
2023-08-21 13:10
jsondiff
1004
B
-rwxr-xr-x
2023-08-21 13:10
jsonpatch
3.77
KB
-rwxr-xr-x
2023-08-21 13:10
jsonpointer
1.79
KB
-rwxr-xr-x
2020-01-24 03:25
jsonschema
213
B
-rwxr-xr-x
2023-08-14 21:45
kernel-install
54.67
KB
-rwxr-xr-x
2024-08-08 14:51
kill
22.38
KB
-rwxr-xr-x
2024-09-26 08:44
kmod
170.24
KB
-rwxr-xr-x
2024-04-18 10:06
kmodsign
18.45
KB
-rwxr-xr-x
2024-04-08 14:49
last
34.38
KB
-rwxr-xr-x
2024-08-09 02:33
lastb
34.38
KB
-rwxr-xr-x
2024-08-09 02:33
lastlog
27.79
KB
-rwxr-xr-x
2024-05-30 14:52
lcf
7.6
KB
-rwxr-xr-x
2023-01-27 13:29
ld.so
231.07
KB
-rwxr-xr-x
2024-08-08 14:47
ldd
5.26
KB
-rwxr-xr-x
2024-08-08 14:47
less
190.38
KB
-rwxr-xr-x
2024-04-28 11:44
lessecho
14.31
KB
-rwxr-xr-x
2024-04-28 11:44
lessfile
8.83
KB
-rwxr-xr-x
2023-02-12 10:17
lesskey
23.7
KB
-rwxr-xr-x
2024-04-28 11:44
lesspipe
8.83
KB
-rwxr-xr-x
2023-02-12 10:17
link
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
linux32
26.65
KB
-rwxr-xr-x
2024-08-09 02:33
linux64
26.65
KB
-rwxr-xr-x
2024-08-09 02:33
ln
54.51
KB
-rwxr-xr-x
2024-04-05 14:36
lnstat
22.66
KB
-rwxr-xr-x
2024-03-31 09:00
locale
49.63
KB
-rwxr-xr-x
2024-08-08 14:47
locale-check
14.15
KB
-rwxr-xr-x
2024-08-23 14:20
localectl
26.45
KB
-rwxr-xr-x
2024-08-08 14:51
localedef
319.09
KB
-rwxr-xr-x
2024-08-08 14:47
logger
38.97
KB
-rwxr-xr-x
2024-08-09 02:33
login
51.81
KB
-rwxr-xr-x
2024-05-30 14:52
loginctl
66.58
KB
-rwxr-xr-x
2024-08-08 14:51
logname
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
ls
138.98
KB
-rwxr-xr-x
2024-04-05 14:36
lsattr
14.31
KB
-rwxr-xr-x
2024-04-28 23:44
lsblk
146.38
KB
-rwxr-xr-x
2024-08-09 02:33
lscpu
110.38
KB
-rwxr-xr-x
2024-08-09 02:33
lsipc
50.38
KB
-rwxr-xr-x
2024-08-09 02:33
lslocks
30.77
KB
-rwxr-xr-x
2024-08-09 02:33
lslogins
50.38
KB
-rwxr-xr-x
2024-08-09 02:33
lsmem
38.38
KB
-rwxr-xr-x
2024-08-09 02:33
lsmod
170.24
KB
-rwxr-xr-x
2024-04-18 10:06
lsns
42.38
KB
-rwxr-xr-x
2024-08-09 02:33
man
128
B
-rwxr-xr-x
2024-12-17 16:03
mawk
166.77
KB
-rwxr-xr-x
2024-04-08 16:12
mcookie
26.45
KB
-rwxr-xr-x
2024-08-09 02:33
md5sum
38.41
KB
-rwxr-xr-x
2024-04-05 14:36
md5sum.textutils
38.41
KB
-rwxr-xr-x
2024-04-05 14:36
mesg
14.38
KB
-rwxr-xr-x
2024-08-09 02:33
mkdir
74.51
KB
-rwxr-xr-x
2024-04-05 14:36
mkfifo
42.51
KB
-rwxr-xr-x
2024-04-05 14:36
mknod
42.51
KB
-rwxr-xr-x
2024-04-05 14:36
mksquashfs
286.95
KB
-rwxr-xr-x
2024-04-08 16:20
mkswapfile
865
B
-rwxr-xr-x
2024-12-17 16:03
mktemp
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
more
46.38
KB
-rwxr-xr-x
2024-08-09 02:33
mount
50.38
KB
-rwsr-xr-x
2024-08-09 02:33
mountpoint
18.38
KB
-rwxr-xr-x
2024-08-09 02:33
mv
134.52
KB
-rwxr-xr-x
2024-04-05 14:36
namei
22.38
KB
-rwxr-xr-x
2024-08-09 02:33
nawk
166.77
KB
-rwxr-xr-x
2024-04-08 16:12
nc
38.63
KB
-rwxr-xr-x
2024-04-08 16:14
nc.openbsd
38.63
KB
-rwxr-xr-x
2024-04-08 16:14
netcat
38.63
KB
-rwxr-xr-x
2024-04-08 16:14
networkctl
122.58
KB
-rwxr-xr-x
2024-08-08 14:51
newgrp
39.71
KB
-rwsr-xr-x
2024-05-30 14:52
nice
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
nisdomainname
22.23
KB
-rwxr-xr-x
2024-04-08 15:59
nl
38.6
KB
-rwxr-xr-x
2024-04-05 14:36
nohup
34.41
KB
-rwxr-xr-x
2024-04-05 14:36
nproc
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
nsenter
30.6
KB
-rwxr-xr-x
2024-08-09 02:33
nstat
30.38
KB
-rwxr-xr-x
2024-03-31 09:00
numfmt
58.54
KB
-rwxr-xr-x
2024-04-05 14:36
od
70.51
KB
-rwxr-xr-x
2024-04-05 14:36
openssl
981.8
KB
-rwxr-xr-x
2024-08-20 17:05
p11-kit
206.7
KB
-rwxr-xr-x
2024-08-09 02:33
p11tool
218.38
KB
-rwxr-xr-x
2024-08-09 02:33
pager
190.38
KB
-rwxr-xr-x
2024-04-28 11:44
partx
62.38
KB
-rwxr-xr-x
2024-08-09 02:33
passwd
62.65
KB
-rwsr-xr-x
2024-05-30 14:52
paste
38.41
KB
-rwxr-xr-x
2024-04-05 14:36
pathchk
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
pdb3
67.83
KB
-rwxr-xr-x
2024-11-06 18:32
pdb3.12
67.83
KB
-rwxr-xr-x
2024-11-06 18:32
pgrep
34.47
KB
-rwxr-xr-x
2024-09-26 08:44
pidof
26.23
KB
-rwxr-xr-x
2024-04-08 16:20
pidwait
34.47
KB
-rwxr-xr-x
2024-09-26 08:44
ping
87.66
KB
-rwxr-xr-x
2024-04-08 16:00
ping4
87.66
KB
-rwxr-xr-x
2024-04-08 16:00
ping6
87.66
KB
-rwxr-xr-x
2024-04-08 16:00
pinky
38.41
KB
-rwxr-xr-x
2024-04-05 14:36
pkaction
18.3
KB
-rwxr-xr-x
2024-04-03 18:26
pkcheck
22.3
KB
-rwxr-xr-x
2024-04-03 18:26
pkcs11-tool
184.61
KB
-rwxr-xr-x
2024-04-01 07:06
pkill
34.47
KB
-rwxr-xr-x
2024-09-26 08:44
pkttyagent
22.3
KB
-rwxr-xr-x
2024-04-03 18:26
pldd
22.44
KB
-rwxr-xr-x
2024-08-08 14:47
plymouth
46.3
KB
-rwxr-xr-x
2024-03-31 08:14
pmap
34.4
KB
-rwxr-xr-x
2024-09-26 08:44
pr
70.58
KB
-rwxr-xr-x
2024-04-05 14:36
printenv
34.38
KB
-rwxr-xr-x
2024-04-05 14:36
printf
54.44
KB
-rwxr-xr-x
2024-04-05 14:36
prlimit
26.89
KB
-rwxr-xr-x
2024-08-09 02:33
ps
142.99
KB
-rwxr-xr-x
2024-09-26 08:44
ptx
54.54
KB
-rwxr-xr-x
2024-04-05 14:36
pwd
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
pwdx
14.38
KB
-rwxr-xr-x
2024-09-26 08:44
py3clean
7.63
KB
-rwxr-xr-x
2024-08-07 17:44
py3compile
13
KB
-rwxr-xr-x
2024-08-07 17:44
py3versions
12.52
KB
-rwxr-xr-x
2024-08-07 17:44
pydoc3
80
B
-rwxr-xr-x
2024-11-06 18:32
pydoc3.12
80
B
-rwxr-xr-x
2024-11-06 18:32
pygettext3
23.66
KB
-rwxr-xr-x
2024-11-06 18:32
pygettext3.12
23.66
KB
-rwxr-xr-x
2024-11-06 18:32
pyserial-miniterm
975
B
-rwxr-xr-x
2023-11-24 10:38
pyserial-ports
969
B
-rwxr-xr-x
2023-11-24 10:38
python3
7.65
MB
-rwxr-xr-x
2024-11-06 18:32
python3.12
7.65
MB
-rwxr-xr-x
2024-11-06 18:32
rbash
1.38
MB
-rwxr-xr-x
2024-03-31 08:41
rdma
102.52
KB
-rwxr-xr-x
2024-03-31 09:00
readlink
42.41
KB
-rwxr-xr-x
2024-04-05 14:36
realpath
42.41
KB
-rwxr-xr-x
2024-04-05 14:36
rename.ul
22.38
KB
-rwxr-xr-x
2024-08-09 02:33
renice
14.38
KB
-rwxr-xr-x
2024-08-09 02:33
reset
26.31
KB
-rwxr-xr-x
2024-04-08 16:14
resizepart
22.38
KB
-rwxr-xr-x
2024-08-09 02:33
resolvectl
158.67
KB
-rwxr-xr-x
2024-08-08 14:51
rev
14.38
KB
-rwxr-xr-x
2024-08-09 02:33
rgrep
30
B
-rwxr-xr-x
2023-07-21 14:47
rm
58.51
KB
-rwxr-xr-x
2024-04-05 14:36
rmdir
46.41
KB
-rwxr-xr-x
2024-04-05 14:36
routel
1.62
KB
-rwxr-xr-x
2024-03-31 09:00
rtstat
22.66
KB
-rwxr-xr-x
2024-03-31 09:00
run-parts
26.82
KB
-rwxr-xr-x
2024-03-31 08:47
runcon
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
rview
1.66
MB
-rwxr-xr-x
2024-11-06 19:04
savelog
10.24
KB
-rwxr-xr-x
2024-03-31 08:47
sbattach
22.54
KB
-rwxr-xr-x
2024-04-08 14:49
sbkeysync
34.74
KB
-rwxr-xr-x
2024-04-08 14:49
sbsiglist
14.6
KB
-rwxr-xr-x
2024-04-08 14:49
sbsign
34.7
KB
-rwxr-xr-x
2024-04-08 14:49
sbvarsign
22.73
KB
-rwxr-xr-x
2024-04-08 14:49
sbverify
30.61
KB
-rwxr-xr-x
2024-04-08 14:49
scp
134.59
KB
-rwxr-xr-x
2024-08-09 02:33
script
54.38
KB
-rwxr-xr-x
2024-08-09 02:33
scriptlive
42.38
KB
-rwxr-xr-x
2024-08-09 02:33
scriptreplay
34.38
KB
-rwxr-xr-x
2024-08-09 02:33
sdiff
50.39
KB
-rwxr-xr-x
2024-04-08 15:55
sed
110.57
KB
-rwxr-xr-x
2024-04-08 16:19
select-editor
2.39
KB
-rwxr-xr-x
2024-02-04 18:05
sensible-browser
1.55
KB
-rwxr-xr-x
2024-02-04 18:05
sensible-editor
1.52
KB
-rwxr-xr-x
2024-02-04 18:05
sensible-pager
921
B
-rwxr-xr-x
2024-02-04 18:05
sensible-terminal
1.15
KB
-rwxr-xr-x
2024-02-04 18:05
seq
50.51
KB
-rwxr-xr-x
2024-04-05 14:36
setarch
26.65
KB
-rwxr-xr-x
2024-08-09 02:33
setpriv
38.38
KB
-rwxr-xr-x
2024-08-09 02:33
setsid
14.38
KB
-rwxr-xr-x
2024-08-09 02:33
setterm
34.38
KB
-rwxr-xr-x
2024-08-09 02:33
sftp
150.66
KB
-rwxr-xr-x
2024-08-09 02:33
sg
39.71
KB
-rwsr-xr-x
2024-05-30 14:52
sh
126.74
KB
-rwxr-xr-x
2024-03-31 08:47
sha1sum
38.41
KB
-rwxr-xr-x
2024-04-05 14:36
sha224sum
38.41
KB
-rwxr-xr-x
2024-04-05 14:36
sha256sum
38.41
KB
-rwxr-xr-x
2024-04-05 14:36
sha384sum
38.41
KB
-rwxr-xr-x
2024-04-05 14:36
sha512sum
38.41
KB
-rwxr-xr-x
2024-04-05 14:36
shred
54.51
KB
-rwxr-xr-x
2024-04-05 14:36
shuf
46.51
KB
-rwxr-xr-x
2024-04-05 14:36
skill
26.41
KB
-rwxr-xr-x
2024-09-26 08:44
slabtop
22.44
KB
-rwxr-xr-x
2024-09-26 08:44
sleep
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
slogin
827.04
KB
-rwxr-xr-x
2024-08-09 02:33
snap
20.68
MB
-rwxr-xr-x
2025-04-05 19:10
snice
26.41
KB
-rwxr-xr-x
2024-09-26 08:44
sort
102.8
KB
-rwxr-xr-x
2024-04-05 14:36
splash-client
404
B
-rwxr-xr-x
2024-12-17 16:03
split
54.94
KB
-rwxr-xr-x
2024-04-05 14:36
sqfscat
147.9
KB
-rwxr-xr-x
2024-04-08 16:20
sqfstar
286.95
KB
-rwxr-xr-x
2024-04-08 16:20
ss
129.07
KB
-rwxr-xr-x
2024-03-31 09:00
ssh
827.04
KB
-rwxr-xr-x
2024-08-09 02:33
ssh-add
294.42
KB
-rwxr-xr-x
2024-08-09 02:33
ssh-agent
302.43
KB
-rwxr-sr-x
2024-08-09 02:33
ssh-argv0
1.42
KB
-rwxr-xr-x
2024-04-03 22:09
ssh-copy-id
12.77
KB
-rwxr-xr-x
2023-12-18 14:59
ssh-keygen
442.44
KB
-rwxr-xr-x
2024-08-09 02:33
ssh-keyscan
330.44
KB
-rwxr-xr-x
2024-08-09 02:33
stat
86.52
KB
-rwxr-xr-x
2024-04-05 14:36
stdbuf
50.51
KB
-rwxr-xr-x
2024-04-05 14:36
stty
78.52
KB
-rwxr-xr-x
2024-04-05 14:36
su
54.38
KB
-rwsr-xr-x
2024-08-09 02:33
sudo
271.42
KB
-rwsr-xr-x
2024-04-08 14:50
sudoedit
271.42
KB
-rwsr-xr-x
2024-04-08 14:50
sudoreplay
95.95
KB
-rwxr-xr-x
2024-04-08 14:50
sum
34.41
KB
-rwxr-xr-x
2024-04-05 14:36
sync
34.41
KB
-rwxr-xr-x
2024-04-05 14:36
systemctl
1.43
MB
-rwxr-xr-x
2024-08-08 14:51
systemd
98.45
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-ac-power
14.45
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-analyze
198.85
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-ask-password
18.58
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-cat
18.45
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-cgls
22.57
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-cgtop
38.47
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-confext
54.64
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-creds
42.72
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-cryptenroll
70.92
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-cryptsetup
78.95
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-delta
26.45
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-detect-virt
18.45
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-escape
22.45
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-firstboot
58.82
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-hwdb
154.74
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-id128
22.45
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-inhibit
22.47
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-machine-id-setup
18.63
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-mount
50.78
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-notify
26.66
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-path
18.45
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-repart
195.23
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-run
66.79
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-socket-activate
30.45
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-stdio-bridge
22.45
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-sysext
54.64
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-sysusers
66.63
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-tmpfiles
114.7
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-tty-ask-password-agent
34.45
KB
-rwxr-xr-x
2024-08-08 14:51
systemd-umount
50.78
KB
-rwxr-xr-x
2024-08-08 14:51
tabs
18.3
KB
-rwxr-xr-x
2024-04-08 16:14
tac
38.41
KB
-rwxr-xr-x
2024-04-05 14:36
tail
62.53
KB
-rwxr-xr-x
2024-04-05 14:36
tar
421.92
KB
-rwxr-xr-x
2024-04-08 16:20
taskset
30.38
KB
-rwxr-xr-x
2024-08-09 02:33
tee
38.51
KB
-rwxr-xr-x
2024-04-05 14:36
tempfile
14.3
KB
-rwxr-xr-x
2024-03-31 08:47
test
46.44
KB
-rwxr-xr-x
2024-04-05 14:36
tic
90.41
KB
-rwxr-xr-x
2024-04-08 16:14
timedatectl
815
B
-rwxr-xr-x
2024-12-17 16:05
timedatectl.real
46.45
KB
-rwxr-xr-x
2024-08-08 14:51
timeout
38.95
KB
-rwxr-xr-x
2024-04-05 14:36
tload
22.39
KB
-rwxr-xr-x
2024-09-26 08:44
toe
22.3
KB
-rwxr-xr-x
2024-04-08 16:14
top
131.7
KB
-rwxr-xr-x
2024-09-26 08:44
touch
94.51
KB
-rwxr-xr-x
2024-04-05 14:36
tput
26.34
KB
-rwxr-xr-x
2024-04-08 16:14
tr
46.51
KB
-rwxr-xr-x
2024-04-05 14:36
true
26.3
KB
-rwxr-xr-x
2024-04-05 14:36
truncate
38.51
KB
-rwxr-xr-x
2024-04-05 14:36
tset
26.31
KB
-rwxr-xr-x
2024-04-08 16:14
tsort
46.51
KB
-rwxr-xr-x
2024-04-05 14:36
tty
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
tzselect
15.02
KB
-rwxr-xr-x
2024-08-08 14:47
ucf
40.68
KB
-rwxr-xr-x
2023-01-27 13:29
ucfr
10.85
KB
-rwxr-xr-x
2023-01-27 13:29
uclampset
30.38
KB
-rwxr-xr-x
2024-08-09 02:33
udevadm
1.37
MB
-rwxr-xr-x
2024-08-08 14:51
umount
38.38
KB
-rwsr-xr-x
2024-08-09 02:33
uname
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
uncompress
2.29
KB
-rwxr-xr-x
2024-04-08 15:58
unexpand
38.53
KB
-rwxr-xr-x
2024-04-05 14:36
uniq
38.51
KB
-rwxr-xr-x
2024-04-05 14:36
unlink
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
unshare
42.6
KB
-rwxr-xr-x
2024-08-09 02:33
unsquashfs
147.9
KB
-rwxr-xr-x
2024-04-08 16:20
update-alternatives
58.38
KB
-rwxr-xr-x
2024-07-17 09:09
uptime
14.38
KB
-rwxr-xr-x
2024-09-26 08:44
users
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
utmpdump
22.38
KB
-rwxr-xr-x
2024-08-09 02:33
varlinkctl
30.45
KB
-rwxr-xr-x
2024-08-08 14:51
vcs-run
6.75
KB
-rwxr-xr-x
2022-06-03 10:51
vdir
138.98
KB
-rwxr-xr-x
2024-04-05 14:36
vi
1.66
MB
-rwxr-xr-x
2024-11-06 19:04
view
1.66
MB
-rwxr-xr-x
2024-11-06 19:04
vim.tiny
1.66
MB
-rwxr-xr-x
2024-11-06 19:04
vmstat
38.78
KB
-rwxr-xr-x
2024-09-26 08:44
w
26.38
KB
-rwxr-xr-x
2024-09-26 08:44
wall
22.38
KB
-rwxr-xr-x
2024-08-09 02:33
watch
30.84
KB
-rwxr-xr-x
2024-09-26 08:44
wc
54.52
KB
-rwxr-xr-x
2024-04-05 14:36
wdctl
34.4
KB
-rwxr-xr-x
2024-08-09 02:33
whereis
30.84
KB
-rwxr-xr-x
2024-08-09 02:33
which
1.05
KB
-rwxr-xr-x
2024-03-31 08:47
which.debianutils
1.05
KB
-rwxr-xr-x
2024-03-31 08:47
who
58.52
KB
-rwxr-xr-x
2024-04-05 14:36
whoami
34.51
KB
-rwxr-xr-x
2024-04-05 14:36
wpa_passphrase
14.38
KB
-rwxr-xr-x
2024-08-02 12:06
x86_64
26.65
KB
-rwxr-xr-x
2024-08-09 02:33
xargs
62.41
KB
-rwxr-xr-x
2024-04-08 15:57
xdg-email
38
B
-rwxr-xr-x
2024-12-17 16:05
xdg-open
38
B
-rwxr-xr-x
2024-12-17 16:05
xdg-settings
1.68
KB
-rwxr-xr-x
2024-12-17 16:05
yes
34.38
KB
-rwxr-xr-x
2024-04-05 14:36
ypdomainname
22.23
KB
-rwxr-xr-x
2024-04-08 15:59
zcat
1.94
KB
-rwxr-xr-x
2024-04-08 15:58
zcmp
1.64
KB
-rwxr-xr-x
2024-04-08 15:58
zdiff
6.31
KB
-rwxr-xr-x
2024-04-08 15:58
zdump
30.28
KB
-rwxr-xr-x
2024-08-08 14:47
zegrep
29
B
-rwxr-xr-x
2024-04-08 15:58
zfgrep
29
B
-rwxr-xr-x
2024-04-08 15:58
zforce
2.03
KB
-rwxr-xr-x
2024-04-08 15:58
zgrep
7.91
KB
-rwxr-xr-x
2024-04-08 15:58
zless
2.15
KB
-rwxr-xr-x
2024-04-08 15:58
zmore
1.8
KB
-rwxr-xr-x
2024-04-08 15:58
znew
4.47
KB
-rwxr-xr-x
2024-04-08 15:58
Save
Rename
#!/bin/bash # Ask the user about the time zone, and output the resulting TZ value to stdout. # Interact with the user via stderr and stdin. PKGVERSION="(Ubuntu GLIBC 2.39-0ubuntu8.3) " TZVERSION="2.39" REPORT_BUGS_TO="<https://bugs.launchpad.net/ubuntu/+source/glibc/+bugs>" # Contributed by Paul Eggert. This file is in the public domain. # Porting notes: # # This script requires a Posix-like shell and prefers the extension of a # 'select' statement. The 'select' statement was introduced in the # Korn shell and is available in Bash and other shell implementations. # If your host lacks both Bash and the Korn shell, you can get their # source from one of these locations: # # Bash <https://www.gnu.org/software/bash/> # Korn Shell <http://www.kornshell.com/> # MirBSD Korn Shell <https://www.mirbsd.org/mksh.htm> # # For portability to Solaris 9 /bin/sh this script avoids some POSIX # features and common extensions, such as $(...) (which works sometimes # but not others), $((...)), and $10. # # This script also uses several features of modern awk programs. # If your host lacks awk, or has an old awk that does not conform to Posix, # you can use either of the following free programs instead: # # Gawk (GNU awk) <https://www.gnu.org/software/gawk/> # mawk <https://invisible-island.net/mawk/> # Specify default values for environment variables if they are unset. : ${AWK=awk} : ${TZDIR=/usr/share/zoneinfo} # Output one argument as-is to standard output. # Safer than 'echo', which can mishandle '\' or leading '-'. say() { printf '%s\n' "$1" } # Check for awk Posix compliance. ($AWK -v x=y 'BEGIN { exit 123 }') </dev/null >/dev/null 2>&1 [ $? = 123 ] || { say >&2 "$0: Sorry, your '$AWK' program is not Posix compatible." exit 1 } coord= location_limit=10 zonetabtype=zone1970 usage="Usage: tzselect [--version] [--help] [-c COORD] [-n LIMIT] Select a timezone interactively. Options: -c COORD Instead of asking for continent and then country and then city, ask for selection from time zones whose largest cities are closest to the location with geographical coordinates COORD. COORD should use ISO 6709 notation, for example, '-c +4852+00220' for Paris (in degrees and minutes, North and East), or '-c -35-058' for Buenos Aires (in degrees, South and West). -n LIMIT Display at most LIMIT locations when -c is used (default $location_limit). --version Output version information. --help Output this help. Report bugs to $REPORT_BUGS_TO." # Ask the user to select from the function's arguments, # and assign the selected argument to the variable 'select_result'. # Exit on EOF or I/O error. Use the shell's 'select' builtin if available, # falling back on a less-nice but portable substitute otherwise. if case $BASH_VERSION in ?*) : ;; '') # '; exit' should be redundant, but Dash doesn't properly fail without it. (eval 'set --; select x; do break; done; exit') </dev/null 2>/dev/null esac then # Do this inside 'eval', as otherwise the shell might exit when parsing it # even though it is never executed. eval ' doselect() { select select_result do case $select_result in "") echo >&2 "Please enter a number in range." ;; ?*) break esac done || exit } # Work around a bug in bash 1.14.7 and earlier, where $PS3 is sent to stdout. case $BASH_VERSION in [01].*) case `echo 1 | (select x in x; do break; done) 2>/dev/null` in ?*) PS3= esac esac ' else doselect() { # Field width of the prompt numbers. select_width=`expr $# : '.*'` select_i= while : do case $select_i in '') select_i=0 for select_word do select_i=`expr $select_i + 1` printf >&2 "%${select_width}d) %s\\n" $select_i "$select_word" done ;; *[!0-9]*) echo >&2 'Please enter a number in range.' ;; *) if test 1 -le $select_i && test $select_i -le $#; then shift `expr $select_i - 1` select_result=$1 break fi echo >&2 'Please enter a number in range.' esac # Prompt and read input. printf >&2 %s "${PS3-#? }" read select_i || exit done } fi while getopts c:n:t:-: opt do case $opt$OPTARG in c*) coord=$OPTARG ;; n*) location_limit=$OPTARG ;; t*) # Undocumented option, used for developer testing. zonetabtype=$OPTARG ;; -help) exec echo "$usage" ;; -version) exec echo "tzselect $PKGVERSION$TZVERSION" ;; -*) say >&2 "$0: -$opt$OPTARG: unknown option; try '$0 --help'"; exit 1 ;; *) say >&2 "$0: try '$0 --help'"; exit 1 ;; esac done shift `expr $OPTIND - 1` case $# in 0) ;; *) say >&2 "$0: $1: unknown argument"; exit 1 ;; esac # Make sure the tables are readable. TZ_COUNTRY_TABLE=$TZDIR/iso3166.tab TZ_ZONE_TABLE=$TZDIR/$zonetabtype.tab for f in $TZ_COUNTRY_TABLE $TZ_ZONE_TABLE do <"$f" || { say >&2 "$0: time zone files are not set up correctly" exit 1 } done # If the current locale does not support UTF-8, convert data to current # locale's format if possible, as the shell aligns columns better that way. # Check the UTF-8 of U+12345 CUNEIFORM SIGN URU TIMES KI. ! $AWK 'BEGIN { u12345 = "\360\222\215\205"; exit length(u12345) != 1 }' && { tmp=`(mktemp -d) 2>/dev/null` || { tmp=${TMPDIR-/tmp}/tzselect.$$ && (umask 77 && mkdir -- "$tmp") };} && trap 'status=$?; rm -fr -- "$tmp"; exit $status' 0 HUP INT PIPE TERM && (iconv -f UTF-8 -t //TRANSLIT <"$TZ_COUNTRY_TABLE" >$tmp/iso3166.tab) \ 2>/dev/null && TZ_COUNTRY_TABLE=$tmp/iso3166.tab && iconv -f UTF-8 -t //TRANSLIT <"$TZ_ZONE_TABLE" >$tmp/$zonetabtype.tab && TZ_ZONE_TABLE=$tmp/$zonetabtype.tab newline=' ' IFS=$newline # Awk script to read a time zone table and output the same table, # with each column preceded by its distance from 'here'. output_distances=' BEGIN { FS = "\t" while (getline <TZ_COUNTRY_TABLE) if ($0 ~ /^[^#]/) country[$1] = $2 country["US"] = "US" # Otherwise the strings get too long. } function abs(x) { return x < 0 ? -x : x; } function min(x, y) { return x < y ? x : y; } function convert_coord(coord, deg, minute, ilen, sign, sec) { if (coord ~ /^[-+]?[0-9]?[0-9][0-9][0-9][0-9][0-9][0-9]([^0-9]|$)/) { degminsec = coord intdeg = degminsec < 0 ? -int(-degminsec / 10000) : int(degminsec / 10000) minsec = degminsec - intdeg * 10000 intmin = minsec < 0 ? -int(-minsec / 100) : int(minsec / 100) sec = minsec - intmin * 100 deg = (intdeg * 3600 + intmin * 60 + sec) / 3600 } else if (coord ~ /^[-+]?[0-9]?[0-9][0-9][0-9][0-9]([^0-9]|$)/) { degmin = coord intdeg = degmin < 0 ? -int(-degmin / 100) : int(degmin / 100) minute = degmin - intdeg * 100 deg = (intdeg * 60 + minute) / 60 } else deg = coord return deg * 0.017453292519943296 } function convert_latitude(coord) { match(coord, /..*[-+]/) return convert_coord(substr(coord, 1, RLENGTH - 1)) } function convert_longitude(coord) { match(coord, /..*[-+]/) return convert_coord(substr(coord, RLENGTH)) } # Great-circle distance between points with given latitude and longitude. # Inputs and output are in radians. This uses the great-circle special # case of the Vicenty formula for distances on ellipsoids. function gcdist(lat1, long1, lat2, long2, dlong, x, y, num, denom) { dlong = long2 - long1 x = cos(lat2) * sin(dlong) y = cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(dlong) num = sqrt(x * x + y * y) denom = sin(lat1) * sin(lat2) + cos(lat1) * cos(lat2) * cos(dlong) return atan2(num, denom) } # Parallel distance between points with given latitude and longitude. # This is the product of the longitude difference and the cosine # of the latitude of the point that is further from the equator. # I.e., it considers longitudes to be further apart if they are # nearer the equator. function pardist(lat1, long1, lat2, long2) { return abs(long1 - long2) * min(cos(lat1), cos(lat2)) } # The distance function is the sum of the great-circle distance and # the parallel distance. It could be weighted. function dist(lat1, long1, lat2, long2) { return gcdist(lat1, long1, lat2, long2) + pardist(lat1, long1, lat2, long2) } BEGIN { coord_lat = convert_latitude(coord) coord_long = convert_longitude(coord) } /^[^#]/ { here_lat = convert_latitude($2) here_long = convert_longitude($2) line = $1 "\t" $2 "\t" $3 sep = "\t" ncc = split($1, cc, /,/) for (i = 1; i <= ncc; i++) { line = line sep country[cc[i]] sep = ", " } if (NF == 4) line = line " - " $4 printf "%g\t%s\n", dist(coord_lat, coord_long, here_lat, here_long), line } ' # Begin the main loop. We come back here if the user wants to retry. while echo >&2 'Please identify a location' \ 'so that time zone rules can be set correctly.' continent= country= region= case $coord in ?*) continent=coord;; '') # Ask the user for continent or ocean. echo >&2 'Please select a continent, ocean, "coord", or "TZ".' quoted_continents=` $AWK ' BEGIN { FS = "\t" } /^[^#]/ { entry = substr($3, 1, index($3, "/") - 1) if (entry == "America") entry = entry "s" if (entry ~ /^(Arctic|Atlantic|Indian|Pacific)$/) entry = entry " Ocean" printf "'\''%s'\''\n", entry } ' <"$TZ_ZONE_TABLE" | sort -u | tr '\n' ' ' echo '' ` eval ' doselect '"$quoted_continents"' \ "coord - I want to use geographical coordinates." \ "TZ - I want to specify the timezone using the Posix TZ format." continent=$select_result case $continent in Americas) continent=America;; *" "*) continent=`expr "$continent" : '\''\([^ ]*\)'\''` esac ' esac case $continent in TZ) # Ask the user for a Posix TZ string. Check that it conforms. while echo >&2 'Please enter the desired value' \ 'of the TZ environment variable.' echo >&2 'For example, AEST-10 is abbreviated' \ 'AEST and is 10 hours' echo >&2 'ahead (east) of Greenwich,' \ 'with no daylight saving time.' read TZ $AWK -v TZ="$TZ" 'BEGIN { tzname = "(<[[:alnum:]+-]{3,}>|[[:alpha:]]{3,})" time = "(2[0-4]|[0-1]?[0-9])" \ "(:[0-5][0-9](:[0-5][0-9])?)?" offset = "[-+]?" time mdate = "M([1-9]|1[0-2])\\.[1-5]\\.[0-6]" jdate = "((J[1-9]|[0-9]|J?[1-9][0-9]" \ "|J?[1-2][0-9][0-9])|J?3[0-5][0-9]|J?36[0-5])" datetime = ",(" mdate "|" jdate ")(/" time ")?" tzpattern = "^(:.*|" tzname offset "(" tzname \ "(" offset ")?(" datetime datetime ")?)?)$" if (TZ ~ tzpattern) exit 1 exit 0 }' do say >&2 "'$TZ' is not a conforming Posix timezone string." done TZ_for_date=$TZ;; *) case $continent in coord) case $coord in '') echo >&2 'Please enter coordinates' \ 'in ISO 6709 notation.' echo >&2 'For example, +4042-07403 stands for' echo >&2 '40 degrees 42 minutes north,' \ '74 degrees 3 minutes west.' read coord;; esac distance_table=`$AWK \ -v coord="$coord" \ -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ "$output_distances" <"$TZ_ZONE_TABLE" | sort -n | sed "${location_limit}q" ` regions=`say "$distance_table" | $AWK ' BEGIN { FS = "\t" } { print $NF } '` echo >&2 'Please select one of the following timezones,' \ echo >&2 'listed roughly in increasing order' \ "of distance from $coord". doselect $regions region=$select_result TZ=`say "$distance_table" | $AWK -v region="$region" ' BEGIN { FS="\t" } $NF == region { print $4 } '` ;; *) # Get list of names of countries in the continent or ocean. countries=`$AWK \ -v continent="$continent" \ -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ ' BEGIN { FS = "\t" } /^#/ { next } $3 ~ ("^" continent "/") { ncc = split($1, cc, /,/) for (i = 1; i <= ncc; i++) if (!cc_seen[cc[i]]++) cc_list[++ccs] = cc[i] } END { while (getline <TZ_COUNTRY_TABLE) { if ($0 !~ /^#/) cc_name[$1] = $2 } for (i = 1; i <= ccs; i++) { country = cc_list[i] if (cc_name[country]) { country = cc_name[country] } print country } } ' <"$TZ_ZONE_TABLE" | sort -f` # If there's more than one country, ask the user which one. case $countries in *"$newline"*) echo >&2 'Please select a country' \ 'whose clocks agree with yours.' doselect $countries country=$select_result;; *) country=$countries esac # Get list of timezones in the country. regions=`$AWK \ -v country="$country" \ -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ ' BEGIN { FS = "\t" cc = country while (getline <TZ_COUNTRY_TABLE) { if ($0 !~ /^#/ && country == $2) { cc = $1 break } } } /^#/ { next } $1 ~ cc { print $4 } ' <"$TZ_ZONE_TABLE"` # If there's more than one region, ask the user which one. case $regions in *"$newline"*) echo >&2 'Please select one of the following timezones.' doselect $regions region=$select_result;; *) region=$regions esac # Determine TZ from country and region. TZ=`$AWK \ -v country="$country" \ -v region="$region" \ -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \ ' BEGIN { FS = "\t" cc = country while (getline <TZ_COUNTRY_TABLE) { if ($0 !~ /^#/ && country == $2) { cc = $1 break } } } /^#/ { next } $1 ~ cc && $4 == region { print $3 } ' <"$TZ_ZONE_TABLE"` esac # Make sure the corresponding zoneinfo file exists. TZ_for_date=$TZDIR/$TZ <"$TZ_for_date" || { say >&2 "$0: time zone files are not set up correctly" exit 1 } esac # Use the proposed TZ to output the current date relative to UTC. # Loop until they agree in seconds. # Give up after 8 unsuccessful tries. extra_info= for i in 1 2 3 4 5 6 7 8 do TZdate=`LANG=C TZ="$TZ_for_date" date` UTdate=`LANG=C TZ=UTC0 date` TZsec=`expr "$TZdate" : '.*:\([0-5][0-9]\)'` UTsec=`expr "$UTdate" : '.*:\([0-5][0-9]\)'` case $TZsec in $UTsec) extra_info=" Selected time is now: $TZdate. Universal Time is now: $UTdate." break esac done # Output TZ info and ask the user to confirm. echo >&2 "" echo >&2 "The following information has been given:" echo >&2 "" case $country%$region%$coord in ?*%?*%) say >&2 " $country$newline $region";; ?*%%) say >&2 " $country";; %?*%?*) say >&2 " coord $coord$newline $region";; %%?*) say >&2 " coord $coord";; *) say >&2 " TZ='$TZ'" esac say >&2 "" say >&2 "Therefore TZ='$TZ' will be used.$extra_info" say >&2 "Is the above information OK?" doselect Yes No ok=$select_result case $ok in Yes) break esac do coord= done case $SHELL in *csh) file=.login line="setenv TZ '$TZ'";; *) file=.profile line="TZ='$TZ'; export TZ" esac test -t 1 && say >&2 " You can make this change permanent for yourself by appending the line $line to the file '$file' in your home directory; then log out and log in again. Here is that TZ value again, this time on standard output so that you can use the $0 command in shell scripts:" say "$TZ"