Linux ubuntu 6.8.0-90-generic #91-Ubuntu SMP PREEMPT_DYNAMIC Tue Nov 18 14:14:30 UTC 2025 x86_64
nginx/1.24.0
: 67.217.245.49 | : 216.73.216.153
Cant Read [ /etc/named.conf ]
8.3.6
www-data
Bypass.pw
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
Backdoor Scanner
Backdoor Create
Alfa Webshell
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
share /
bash-completion /
completions /
[ HOME SHELL ]
Name
Size
Permission
Action
2to3
923
B
-rw-r--r--
7z
4.2
KB
-rw-r--r--
7za
4.2
KB
-rw-r--r--
_adb
1.74
KB
-rw-r--r--
_cal
926
B
-rw-r--r--
_chfn
238
B
-rw-r--r--
_chsh
698
B
-rw-r--r--
_dmesg
929
B
-rw-r--r--
_eject
813
B
-rw-r--r--
_hexdump
677
B
-rw-r--r--
_hwclock
622
B
-rw-r--r--
_ionice
1.23
KB
-rw-r--r--
_look
445
B
-rw-r--r--
_mock
2.02
KB
-rw-r--r--
_modules
2.48
KB
-rw-r--r--
_mount
2.01
KB
-rw-r--r--
_mount.linux
10.79
KB
-rw-r--r--
_newgrp
432
B
-rw-r--r--
_nmcli
6.03
KB
-rw-r--r--
_renice
770
B
-rw-r--r--
_repomanage
606
B
-rw-r--r--
_reptyr
549
B
-rw-r--r--
_rfkill
927
B
-rw-r--r--
_rtcwake
877
B
-rw-r--r--
_runuser
241
B
-rw-r--r--
_su
986
B
-rw-r--r--
_svn
8.67
KB
-rw-r--r--
_svnadmin
2.25
KB
-rw-r--r--
_svnlook
1.94
KB
-rw-r--r--
_udevadm
2.12
KB
-rw-r--r--
_umount
631
B
-rw-r--r--
_umount.linux
4.51
KB
-rw-r--r--
_write
239
B
-rw-r--r--
_xm
7.55
KB
-rw-r--r--
_yum
4.37
KB
-rw-r--r--
a2disconf
1.44
KB
-rw-r--r--
a2dismod
1.44
KB
-rw-r--r--
a2dissite
1.44
KB
-rw-r--r--
a2enconf
1.44
KB
-rw-r--r--
a2enmod
1.44
KB
-rw-r--r--
a2ensite
1.44
KB
-rw-r--r--
a2x
924
B
-rw-r--r--
abook
1.19
KB
-rw-r--r--
aclocal
853
B
-rw-r--r--
aclocal-1.10
853
B
-rw-r--r--
aclocal-1.11
853
B
-rw-r--r--
aclocal-1.12
853
B
-rw-r--r--
aclocal-1.13
853
B
-rw-r--r--
aclocal-1.14
853
B
-rw-r--r--
aclocal-1.15
853
B
-rw-r--r--
aclocal-1.16
853
B
-rw-r--r--
acpi
460
B
-rw-r--r--
add-apt-repository
2.19
KB
-rw-r--r--
add_members
771
B
-rw-r--r--
addpart
484
B
-rw-r--r--
alias
490
B
-rw-r--r--
alpine
899
B
-rw-r--r--
alternatives
2.4
KB
-rw-r--r--
animate
8.7
KB
-rw-r--r--
ant
2.73
KB
-rw-r--r--
apache2ctl
380
B
-rw-r--r--
appdata-validate
791
B
-rw-r--r--
apport-bug
5.21
KB
-rw-r--r--
apport-cli
5.21
KB
-rw-r--r--
apport-collect
819
B
-rw-r--r--
apport-unpack
433
B
-rw-r--r--
apropos
2.94
KB
-rw-r--r--
apt
7.34
KB
-rw-r--r--
apt-add-repository
2.19
KB
-rw-r--r--
apt-build
1.45
KB
-rw-r--r--
apt-cache
2.13
KB
-rw-r--r--
apt-get
3.82
KB
-rw-r--r--
aptitude
4.13
KB
-rw-r--r--
aptitude-curses
4.13
KB
-rw-r--r--
arch
1.19
KB
-rw-r--r--
arm-koji
6.21
KB
-rw-r--r--
arp
1.56
KB
-rw-r--r--
arping
603
B
-rw-r--r--
arpspoof
564
B
-rw-r--r--
asciidoc
1.17
KB
-rw-r--r--
asciidoc.py
1.17
KB
-rw-r--r--
aspell
3.29
KB
-rw-r--r--
autoconf
966
B
-rw-r--r--
autoheader
1020
B
-rw-r--r--
automake
871
B
-rw-r--r--
automake-1.10
871
B
-rw-r--r--
automake-1.11
871
B
-rw-r--r--
automake-1.12
871
B
-rw-r--r--
automake-1.13
871
B
-rw-r--r--
automake-1.14
871
B
-rw-r--r--
automake-1.15
871
B
-rw-r--r--
automake-1.16
871
B
-rw-r--r--
autoreconf
1020
B
-rw-r--r--
autorpm
350
B
-rw-r--r--
autoscan
750
B
-rw-r--r--
autossh
16.14
KB
-rw-r--r--
autoupdate
750
B
-rw-r--r--
avctrl
465
B
-rw-r--r--
badblocks
595
B
-rw-r--r--
bind
826
B
-rw-r--r--
bk
429
B
-rw-r--r--
blkdiscard
698
B
-rw-r--r--
blkid
2.1
KB
-rw-r--r--
blkzone
1014
B
-rw-r--r--
blockdev
775
B
-rw-r--r--
bmake
6.04
KB
-rw-r--r--
bpftool
43.83
KB
-rw-r--r--
brctl
1.02
KB
-rw-r--r--
bsdtar
18.23
KB
-rw-r--r--
btdownloadcurses.py
1.04
KB
-rw-r--r--
btdownloadgui.py
1.04
KB
-rw-r--r--
btdownloadheadless.py
1.04
KB
-rw-r--r--
btrfs
3.5
KB
-rw-r--r--
busctl
7.25
KB
-rw-r--r--
bzip2
1.04
KB
-rw-r--r--
c++
2.61
KB
-rw-r--r--
cancel
555
B
-rw-r--r--
cardctl
378
B
-rw-r--r--
carton
1.83
KB
-rw-r--r--
cc
2.61
KB
-rw-r--r--
ccache
1
KB
-rw-r--r--
ccze
1.19
KB
-rw-r--r--
cdrecord
3.5
KB
-rw-r--r--
cfagent
421
B
-rw-r--r--
cfdisk
608
B
-rw-r--r--
cfrun
1.24
KB
-rw-r--r--
chage
669
B
-rw-r--r--
change_pw
531
B
-rw-r--r--
chcpu
1.49
KB
-rw-r--r--
check_db
374
B
-rw-r--r--
check_perms
319
B
-rw-r--r--
checksec
746
B
-rw-r--r--
chgrp
940
B
-rw-r--r--
chkconfig
903
B
-rw-r--r--
chmem
501
B
-rw-r--r--
chmod
905
B
-rw-r--r--
chown
1.08
KB
-rw-r--r--
chpasswd
696
B
-rw-r--r--
chrome
1.38
KB
-rw-r--r--
chromium
1.38
KB
-rw-r--r--
chromium-browser
1.38
KB
-rw-r--r--
chronyc
1.53
KB
-rw-r--r--
chrpath
536
B
-rw-r--r--
chrt
920
B
-rw-r--r--
ci
857
B
-rw-r--r--
ciptool
9.38
KB
-rw-r--r--
civclient
1.04
KB
-rw-r--r--
civserver
487
B
-rw-r--r--
cksfv
520
B
-rw-r--r--
cleanarch
352
B
-rw-r--r--
clisp
668
B
-rw-r--r--
clone_member
542
B
-rw-r--r--
cloud-init
3.24
KB
-rw-r--r--
clzip
1.12
KB
-rw-r--r--
co
857
B
-rw-r--r--
col
460
B
-rw-r--r--
colcrt
484
B
-rw-r--r--
colormake
6.04
KB
-rw-r--r--
colrm
509
B
-rw-r--r--
column
1.43
KB
-rw-r--r--
compare
8.7
KB
-rw-r--r--
compgen
1.42
KB
-rw-r--r--
complete
1.42
KB
-rw-r--r--
composite
8.7
KB
-rw-r--r--
config_list
586
B
-rw-r--r--
configure
1.18
KB
-rw-r--r--
conjure
8.7
KB
-rw-r--r--
convert
8.7
KB
-rw-r--r--
cowsay
543
B
-rw-r--r--
cowthink
543
B
-rw-r--r--
cpan2dist
1.19
KB
-rw-r--r--
cpio
2.83
KB
-rw-r--r--
cppcheck
2.57
KB
-rw-r--r--
createdb
4.27
KB
-rw-r--r--
createuser
4.27
KB
-rw-r--r--
crontab
1.16
KB
-rw-r--r--
cryptdisks_start
1.18
KB
-rw-r--r--
cryptdisks_stop
1.18
KB
-rw-r--r--
cryptsetup
3
KB
-rw-r--r--
ctrlaltdel
335
B
-rw-r--r--
curl
3.23
KB
-rw-r--r--
cvs
11.75
KB
-rw-r--r--
cvsps
1.45
KB
-rw-r--r--
dcop
383
B
-rw-r--r--
dd
1.25
KB
-rw-r--r--
debconf
293
B
-rw-r--r--
debconf-show
293
B
-rw-r--r--
declare
1.24
KB
-rw-r--r--
deja-dup
688
B
-rw-r--r--
delpart
563
B
-rw-r--r--
desktop-file-validate
474
B
-rw-r--r--
devlink
26.76
KB
-rw-r--r--
dfutool
9.38
KB
-rw-r--r--
dhclient
696
B
-rw-r--r--
dict
1.76
KB
-rw-r--r--
display
8.7
KB
-rw-r--r--
dmesg
1.21
KB
-rw-r--r--
dmypy
1.05
KB
-rw-r--r--
dnssec-keygen
1.12
KB
-rw-r--r--
dnsspoof
500
B
-rw-r--r--
dot
1.26
KB
-rw-r--r--
dpkg
4.32
KB
-rw-r--r--
dpkg-deb
4.32
KB
-rw-r--r--
dpkg-query
4.32
KB
-rw-r--r--
dpkg-reconfigure
4.32
KB
-rw-r--r--
dpkg-source
3.21
KB
-rw-r--r--
dropdb
4.27
KB
-rw-r--r--
dropuser
4.27
KB
-rw-r--r--
dselect
615
B
-rw-r--r--
dsniff
518
B
-rw-r--r--
dumpdb
371
B
-rw-r--r--
dumpe2fs
518
B
-rw-r--r--
e2freefrag
460
B
-rw-r--r--
e2label
292
B
-rw-r--r--
eatmydata
31
B
-rw-r--r--
ebtables
3.61
KB
-rw-r--r--
ecryptfs-migrate-home
499
B
-rw-r--r--
edquota
3.62
KB
-rw-r--r--
eject
1.22
KB
-rw-r--r--
eog
645
B
-rw-r--r--
ether-wake
539
B
-rw-r--r--
etherwake
539
B
-rw-r--r--
ethtool
24.04
KB
-rw-r--r--
evince
976
B
-rw-r--r--
explodepkg
152
B
-rw-r--r--
export
1.48
KB
-rw-r--r--
f77
2.61
KB
-rw-r--r--
f95
2.61
KB
-rw-r--r--
faillog
640
B
-rw-r--r--
fallocate
721
B
-rw-r--r--
fbgs
1.55
KB
-rw-r--r--
fbi
1.79
KB
-rw-r--r--
fdisk
1.87
KB
-rw-r--r--
feh
4.2
KB
-rw-r--r--
file
755
B
-rw-r--r--
file-roller
1.08
KB
-rw-r--r--
filebucket
9.77
KB
-rw-r--r--
filefrag
350
B
-rw-r--r--
filesnarf
447
B
-rw-r--r--
find
3.84
KB
-rw-r--r--
find_member
541
B
-rw-r--r--
findfs
695
B
-rw-r--r--
findmnt
3.12
KB
-rw-r--r--
fio
2.31
KB
-rw-r--r--
firefox
1.18
KB
-rw-r--r--
flake8
1000
B
-rw-r--r--
flock
874
B
-rw-r--r--
freebsd-update
596
B
-rw-r--r--
freeciv
1.04
KB
-rw-r--r--
freeciv-gtk2
1.04
KB
-rw-r--r--
freeciv-gtk3
1.04
KB
-rw-r--r--
freeciv-sdl
1.04
KB
-rw-r--r--
freeciv-server
487
B
-rw-r--r--
freeciv-xaw
1.04
KB
-rw-r--r--
fsck
770
B
-rw-r--r--
fsck.cramfs
702
B
-rw-r--r--
fsck.minix
418
B
-rw-r--r--
fsfreeze
524
B
-rw-r--r--
fstrim
755
B
-rw-r--r--
function
1.24
KB
-rw-r--r--
fusermount
638
B
-rw-r--r--
fwupdmgr
7.14
KB
-rw-r--r--
fwupdtool
5.45
KB
-rw-r--r--
g++
2.61
KB
-rw-r--r--
g++-5
2.61
KB
-rw-r--r--
g++-6
2.61
KB
-rw-r--r--
g++-7
2.61
KB
-rw-r--r--
g++-8
2.61
KB
-rw-r--r--
g4
1.37
KB
-rw-r--r--
g77
2.61
KB
-rw-r--r--
g95
2.61
KB
-rw-r--r--
gapplication
1.36
KB
-rw-r--r--
gcc
2.61
KB
-rw-r--r--
gcc-5
2.61
KB
-rw-r--r--
gcc-6
2.61
KB
-rw-r--r--
gcc-7
2.61
KB
-rw-r--r--
gcc-8
2.61
KB
-rw-r--r--
gccgo
2.61
KB
-rw-r--r--
gccgo-5
2.61
KB
-rw-r--r--
gccgo-6
2.61
KB
-rw-r--r--
gccgo-7
2.61
KB
-rw-r--r--
gccgo-8
2.61
KB
-rw-r--r--
gcj
2.61
KB
-rw-r--r--
gcl
615
B
-rw-r--r--
gdb
1.59
KB
-rw-r--r--
gdbus
935
B
-rw-r--r--
genaliases
322
B
-rw-r--r--
gendiff
267
B
-rw-r--r--
genisoimage
878
B
-rw-r--r--
geoiplookup
683
B
-rw-r--r--
geoiplookup6
683
B
-rw-r--r--
getconf
795
B
-rw-r--r--
getent
1.92
KB
-rw-r--r--
getopt
815
B
-rw-r--r--
gfortran
2.61
KB
-rw-r--r--
gfortran-5
2.61
KB
-rw-r--r--
gfortran-6
2.61
KB
-rw-r--r--
gfortran-7
2.61
KB
-rw-r--r--
gfortran-8
2.61
KB
-rw-r--r--
gio
3.74
KB
-rw-r--r--
git
80.58
KB
-rw-r--r--
gitk
80.58
KB
-rw-r--r--
gkrellm
945
B
-rw-r--r--
gkrellm2
945
B
-rw-r--r--
gm
852
B
-rw-r--r--
gmake
6.04
KB
-rw-r--r--
gmplayer
11.2
KB
-rw-r--r--
gnatmake
1015
B
-rw-r--r--
gnokii
6.9
KB
-rw-r--r--
gnome-mplayer
951
B
-rw-r--r--
gnome-screenshot
810
B
-rw-r--r--
gnumake
6.04
KB
-rw-r--r--
google-chrome
1.38
KB
-rw-r--r--
google-chrome-stable
1.38
KB
-rw-r--r--
gpasswd
602
B
-rw-r--r--
gpc
2.61
KB
-rw-r--r--
gpg
1.26
KB
-rw-r--r--
gpg2
1.32
KB
-rw-r--r--
gpgv
1.09
KB
-rw-r--r--
gpgv2
1.09
KB
-rw-r--r--
gphoto2
1.38
KB
-rw-r--r--
gprof
1.31
KB
-rw-r--r--
gresource
1.32
KB
-rw-r--r--
groupadd
619
B
-rw-r--r--
groupdel
538
B
-rw-r--r--
groupmems
611
B
-rw-r--r--
groupmod
690
B
-rw-r--r--
growisofs
895
B
-rw-r--r--
grpck
498
B
-rw-r--r--
grub
10.68
KB
-rw-r--r--
grub-bios-setup
10.68
KB
-rw-r--r--
grub-editenv
10.68
KB
-rw-r--r--
grub-install
10.68
KB
-rw-r--r--
grub-mkconfig
10.68
KB
-rw-r--r--
grub-mkfont
10.68
KB
-rw-r--r--
grub-mkimage
10.68
KB
-rw-r--r--
grub-mkpasswd-pbkdf2
10.68
KB
-rw-r--r--
grub-mkrescue
10.68
KB
-rw-r--r--
grub-probe
10.68
KB
-rw-r--r--
grub-reboot
10.68
KB
-rw-r--r--
grub-script-check
10.68
KB
-rw-r--r--
grub-set-default
10.68
KB
-rw-r--r--
gsettings
2.76
KB
-rw-r--r--
gssdp-discover
922
B
-rw-r--r--
gtar
18.23
KB
-rw-r--r--
gzip
1.13
KB
-rw-r--r--
hardlink
1.37
KB
-rw-r--r--
hciattach
9.38
KB
-rw-r--r--
hciconfig
9.38
KB
-rw-r--r--
hcitool
9.38
KB
-rw-r--r--
hd
677
B
-rw-r--r--
hddtemp
890
B
-rw-r--r--
hexdump
1007
B
-rw-r--r--
hid2hci
348
B
-rw-r--r--
host
1.97
KB
-rw-r--r--
hostname
491
B
-rw-r--r--
hostnamectl
2.69
KB
-rw-r--r--
hping
792
B
-rw-r--r--
hping2
792
B
-rw-r--r--
hping3
792
B
-rw-r--r--
htop
807
B
-rw-r--r--
htpasswd
922
B
-rw-r--r--
hunspell
1
KB
-rw-r--r--
iceweasel
1.18
KB
-rw-r--r--
iconv
927
B
-rw-r--r--
id
433
B
-rw-r--r--
identify
8.7
KB
-rw-r--r--
idn
666
B
-rw-r--r--
ifdown
906
B
-rw-r--r--
ifquery
906
B
-rw-r--r--
ifstat
2
KB
-rw-r--r--
ifstatus
906
B
-rw-r--r--
iftop
512
B
-rw-r--r--
ifup
906
B
-rw-r--r--
import
8.7
KB
-rw-r--r--
influx
885
B
-rw-r--r--
info
1.88
KB
-rw-r--r--
inject
510
B
-rw-r--r--
inotifywait
1.24
KB
-rw-r--r--
inotifywatch
1.24
KB
-rw-r--r--
insmod
518
B
-rw-r--r--
insmod.static
518
B
-rw-r--r--
installpkg
731
B
-rw-r--r--
interdiff
774
B
-rw-r--r--
invoke-rc.d
1.19
KB
-rw-r--r--
ionice
1.13
KB
-rw-r--r--
ip
12.63
KB
-rw-r--r--
ipcalc
542
B
-rw-r--r--
ipcmk
576
B
-rw-r--r--
ipcrm
1.39
KB
-rw-r--r--
ipcs
514
B
-rw-r--r--
iperf
2.06
KB
-rw-r--r--
iperf3
2.06
KB
-rw-r--r--
ipmitool
5.53
KB
-rw-r--r--
ipsec
3.05
KB
-rw-r--r--
iptables
1.92
KB
-rw-r--r--
ipv6calc
1.01
KB
-rw-r--r--
iscsiadm
1.87
KB
-rw-r--r--
isort
1.32
KB
-rw-r--r--
isosize
529
B
-rw-r--r--
isql
352
B
-rw-r--r--
iwconfig
2.7
KB
-rw-r--r--
iwlist
607
B
-rw-r--r--
iwpriv
725
B
-rw-r--r--
iwspy
478
B
-rw-r--r--
jar
497
B
-rw-r--r--
jarsigner
1.66
KB
-rw-r--r--
java
8.81
KB
-rw-r--r--
javac
8.81
KB
-rw-r--r--
javadoc
8.81
KB
-rw-r--r--
javaws
795
B
-rw-r--r--
journalctl
6.1
KB
-rw-r--r--
jpegoptim
891
B
-rw-r--r--
jps
602
B
-rw-r--r--
jq
1.22
KB
-rw-r--r--
jshint
903
B
-rw-r--r--
json_xs
863
B
-rw-r--r--
jsonschema
642
B
-rw-r--r--
k3b
1.16
KB
-rw-r--r--
kcov
1.72
KB
-rw-r--r--
kernel-install
1.65
KB
-rw-r--r--
kill
577
B
-rw-r--r--
killall
784
B
-rw-r--r--
kldload
473
B
-rw-r--r--
kldunload
372
B
-rw-r--r--
kmod
3.16
KB
-rw-r--r--
koji
6.21
KB
-rw-r--r--
kplayer
11.2
KB
-rw-r--r--
ktutil
2.93
KB
-rw-r--r--
l2ping
9.38
KB
-rw-r--r--
larch
1.93
KB
-rw-r--r--
last
949
B
-rw-r--r--
lastb
949
B
-rw-r--r--
lastlog
584
B
-rw-r--r--
lbzip2
1.04
KB
-rw-r--r--
ldapadd
4.36
KB
-rw-r--r--
ldapcompare
4.36
KB
-rw-r--r--
ldapdelete
4.36
KB
-rw-r--r--
ldapmodify
4.36
KB
-rw-r--r--
ldapmodrdn
4.36
KB
-rw-r--r--
ldappasswd
4.36
KB
-rw-r--r--
ldapsearch
4.36
KB
-rw-r--r--
ldapvi
1.34
KB
-rw-r--r--
ldapwhoami
4.36
KB
-rw-r--r--
ldattach
1.44
KB
-rw-r--r--
lftp
617
B
-rw-r--r--
lftpget
306
B
-rw-r--r--
lilo
1.58
KB
-rw-r--r--
links
3.21
KB
-rw-r--r--
links2
3.21
KB
-rw-r--r--
lintian
5.25
KB
-rw-r--r--
lintian-info
5.25
KB
-rw-r--r--
lisp
641
B
-rw-r--r--
list_admins
385
B
-rw-r--r--
list_lists
463
B
-rw-r--r--
list_members
854
B
-rw-r--r--
list_owners
411
B
-rw-r--r--
locale-gen
715
B
-rw-r--r--
localectl
3.25
KB
-rw-r--r--
logger
1.52
KB
-rw-r--r--
loginctl
4.05
KB
-rw-r--r--
look
683
B
-rw-r--r--
losetup
1.7
KB
-rw-r--r--
lpq
590
B
-rw-r--r--
lpr
901
B
-rw-r--r--
lrzip
1.08
KB
-rw-r--r--
lsblk
2.19
KB
-rw-r--r--
lscpu
1.04
KB
-rw-r--r--
lsipc
1.28
KB
-rw-r--r--
lslocks
1.06
KB
-rw-r--r--
lslogins
1.71
KB
-rw-r--r--
lsmem
1.04
KB
-rw-r--r--
lsns
1.18
KB
-rw-r--r--
lsof
1.38
KB
-rw-r--r--
lsscsi
594
B
-rw-r--r--
lsusb
423
B
-rw-r--r--
lua
438
B
-rw-r--r--
luac
486
B
-rw-r--r--
luseradd
1.03
KB
-rw-r--r--
luserdel
477
B
-rw-r--r--
lusermod
1.03
KB
-rw-r--r--
lvchange
19.01
KB
-rw-r--r--
lvcreate
19.01
KB
-rw-r--r--
lvdisplay
19.01
KB
-rw-r--r--
lvextend
19.01
KB
-rw-r--r--
lvm
19.01
KB
-rw-r--r--
lvmdiskscan
19.01
KB
-rw-r--r--
lvreduce
19.01
KB
-rw-r--r--
lvremove
19.01
KB
-rw-r--r--
lvrename
19.01
KB
-rw-r--r--
lvresize
19.01
KB
-rw-r--r--
lvs
19.01
KB
-rw-r--r--
lvscan
19.01
KB
-rw-r--r--
lz4
1.14
KB
-rw-r--r--
lz4c
1.14
KB
-rw-r--r--
lzip
1.12
KB
-rw-r--r--
lzma
915
B
-rw-r--r--
lzop
1.45
KB
-rw-r--r--
macof
424
B
-rw-r--r--
mailmanctl
463
B
-rw-r--r--
mailsnarf
447
B
-rw-r--r--
make
6.04
KB
-rw-r--r--
makepkg
1.02
KB
-rw-r--r--
man
2.94
KB
-rw-r--r--
mbimcli
2.59
KB
-rw-r--r--
mc
689
B
-rw-r--r--
mcookie
599
B
-rw-r--r--
mcrypt
1.8
KB
-rw-r--r--
mdadm
4.41
KB
-rw-r--r--
mdecrypt
1.8
KB
-rw-r--r--
mdtool
2.07
KB
-rw-r--r--
medusa
672
B
-rw-r--r--
mencoder
11.2
KB
-rw-r--r--
mesg
412
B
-rw-r--r--
micropython
1.73
KB
-rw-r--r--
mii-diag
655
B
-rw-r--r--
mii-tool
852
B
-rw-r--r--
minicom
1.07
KB
-rw-r--r--
mkfs
659
B
-rw-r--r--
mkfs.bfs
677
B
-rw-r--r--
mkfs.cramfs
839
B
-rw-r--r--
mkfs.minix
749
B
-rw-r--r--
mkinitrd
1.2
KB
-rw-r--r--
mkisofs
878
B
-rw-r--r--
mkpasswd
548
B
-rw-r--r--
mkswap
876
B
-rw-r--r--
mktemp
679
B
-rw-r--r--
mmcli
5.51
KB
-rw-r--r--
mmsitepass
328
B
-rw-r--r--
modinfo
1.21
KB
-rw-r--r--
modprobe
3.99
KB
-rw-r--r--
mogrify
8.7
KB
-rw-r--r--
mokutil
1.16
KB
-rw-r--r--
monodevelop
445
B
-rw-r--r--
montage
8.7
KB
-rw-r--r--
more
752
B
-rw-r--r--
mount
2.06
KB
-rw-r--r--
mountpoint
498
B
-rw-r--r--
mozilla-firefox
1.18
KB
-rw-r--r--
mplayer
11.2
KB
-rw-r--r--
mplayer2
11.2
KB
-rw-r--r--
mr
2.57
KB
-rw-r--r--
msgsnarf
447
B
-rw-r--r--
msynctool
1.31
KB
-rw-r--r--
mtr
1.9
KB
-rw-r--r--
mtx
1.15
KB
-rw-r--r--
munin-node-configure
752
B
-rw-r--r--
munin-run
645
B
-rw-r--r--
munin-update
652
B
-rw-r--r--
munindoc
320
B
-rw-r--r--
mussh
1.16
KB
-rw-r--r--
mutt
4.35
KB
-rw-r--r--
muttng
4.35
KB
-rw-r--r--
mypy
1.4
KB
-rw-r--r--
mysql
2.6
KB
-rw-r--r--
mysqladmin
1.72
KB
-rw-r--r--
namei
500
B
-rw-r--r--
nc
1.2
KB
-rw-r--r--
ncal
926
B
-rw-r--r--
ncftp
627
B
-rw-r--r--
nethogs
556
B
-rw-r--r--
netplan
2.76
KB
-rw-r--r--
networkctl
2.47
KB
-rw-r--r--
newlist
586
B
-rw-r--r--
newusers
658
B
-rw-r--r--
ngrep
849
B
-rw-r--r--
nmap
1.58
KB
-rw-r--r--
nproc
499
B
-rw-r--r--
nsenter
1.19
KB
-rw-r--r--
nslookup
1.97
KB
-rw-r--r--
nsupdate
881
B
-rw-r--r--
ntpdate
711
B
-rw-r--r--
oggdec
872
B
-rw-r--r--
op
1.47
KB
-rw-r--r--
openssl
4.88
KB
-rw-r--r--
opera
1.39
KB
-rw-r--r--
optipng
1.15
KB
-rw-r--r--
p4
1.37
KB
-rw-r--r--
pack200
2.21
KB
-rw-r--r--
partx
1.27
KB
-rw-r--r--
passwd
551
B
-rw-r--r--
patch
1.74
KB
-rw-r--r--
pbzip2
1.04
KB
-rw-r--r--
pccardctl
378
B
-rw-r--r--
pcp
6.61
KB
-rw-r--r--
pdftotext
978
B
-rw-r--r--
pdlzip
1.12
KB
-rw-r--r--
perl
4.18
KB
-rw-r--r--
perlcritic
1.32
KB
-rw-r--r--
perldoc
4.18
KB
-rw-r--r--
perltidy
1.88
KB
-rw-r--r--
pgrep
1.61
KB
-rw-r--r--
phing
2.73
KB
-rw-r--r--
pidof
530
B
-rw-r--r--
pigz
1.13
KB
-rw-r--r--
pine
899
B
-rw-r--r--
pinfo
1.88
KB
-rw-r--r--
ping
1.95
KB
-rw-r--r--
ping6
1.95
KB
-rw-r--r--
pivot_root
387
B
-rw-r--r--
pkcon
2.67
KB
-rw-r--r--
pkg-config
1.28
KB
-rw-r--r--
pkg-get
2.2
KB
-rw-r--r--
pkg_deinstall
483
B
-rw-r--r--
pkg_delete
483
B
-rw-r--r--
pkg_info
483
B
-rw-r--r--
pkgadd
1.72
KB
-rw-r--r--
pkgrm
1.03
KB
-rw-r--r--
pkgtool
846
B
-rw-r--r--
pkgutil
3.86
KB
-rw-r--r--
pkill
1.61
KB
-rw-r--r--
plague-client
409
B
-rw-r--r--
plzip
1.12
KB
-rw-r--r--
pm-hibernate
321
B
-rw-r--r--
pm-is-supported
336
B
-rw-r--r--
pm-powersave
282
B
-rw-r--r--
pm-suspend
321
B
-rw-r--r--
pm-suspend-hybrid
321
B
-rw-r--r--
pmake
6.04
KB
-rw-r--r--
pmdumplog
6.61
KB
-rw-r--r--
pmdumptext
6.61
KB
-rw-r--r--
pmevent
6.61
KB
-rw-r--r--
pmfind
6.61
KB
-rw-r--r--
pmie
6.61
KB
-rw-r--r--
pmie2col
6.61
KB
-rw-r--r--
pmiectl
6.61
KB
-rw-r--r--
pminfo
6.61
KB
-rw-r--r--
pmjson
6.61
KB
-rw-r--r--
pmlc
6.61
KB
-rw-r--r--
pmlogcheck
6.61
KB
-rw-r--r--
pmlogctl
6.61
KB
-rw-r--r--
pmlogextract
6.61
KB
-rw-r--r--
pmlogger
6.61
KB
-rw-r--r--
pmloglabel
6.61
KB
-rw-r--r--
pmlogpaste
6.61
KB
-rw-r--r--
pmlogreduce
6.61
KB
-rw-r--r--
pmlogsize
6.61
KB
-rw-r--r--
pmlogsummary
6.61
KB
-rw-r--r--
pmprobe
6.61
KB
-rw-r--r--
pmrep
6.61
KB
-rw-r--r--
pmseries
6.61
KB
-rw-r--r--
pmstat
6.61
KB
-rw-r--r--
pmstore
6.61
KB
-rw-r--r--
pmval
6.61
KB
-rw-r--r--
pngfix
814
B
-rw-r--r--
portinstall
895
B
-rw-r--r--
portsnap
498
B
-rw-r--r--
portupgrade
469
B
-rw-r--r--
postalias
956
B
-rw-r--r--
postcat
869
B
-rw-r--r--
postconf
811
B
-rw-r--r--
postfix
761
B
-rw-r--r--
postmap
956
B
-rw-r--r--
postsuper
1.51
KB
-rw-r--r--
povray
2.01
KB
-rw-r--r--
ppc-koji
6.21
KB
-rw-r--r--
prelink
938
B
-rw-r--r--
printenv
466
B
-rw-r--r--
prlimit
1.3
KB
-rw-r--r--
pro
1.95
KB
-rw-r--r--
protoc
1.47
KB
-rw-r--r--
psql
4.27
KB
-rw-r--r--
puppet
9.77
KB
-rw-r--r--
puppetca
9.77
KB
-rw-r--r--
puppetd
9.77
KB
-rw-r--r--
puppetdoc
9.77
KB
-rw-r--r--
puppetmasterd
9.77
KB
-rw-r--r--
puppetqd
9.77
KB
-rw-r--r--
puppetrun
9.77
KB
-rw-r--r--
pv
755
B
-rw-r--r--
pvchange
19.01
KB
-rw-r--r--
pvcreate
19.01
KB
-rw-r--r--
pvdisplay
19.01
KB
-rw-r--r--
pvmove
19.01
KB
-rw-r--r--
pvremove
19.01
KB
-rw-r--r--
pvs
19.01
KB
-rw-r--r--
pvscan
19.01
KB
-rw-r--r--
pwck
386
B
-rw-r--r--
pwd
448
B
-rw-r--r--
pwdx
489
B
-rw-r--r--
pwgen
603
B
-rw-r--r--
pxz
1.48
KB
-rw-r--r--
py.test
4.16
KB
-rw-r--r--
py.test-2
4.16
KB
-rw-r--r--
py.test-3
4.16
KB
-rw-r--r--
pycodestyle
733
B
-rw-r--r--
pydoc
1.02
KB
-rw-r--r--
pydoc3
1.02
KB
-rw-r--r--
pydocstyle
839
B
-rw-r--r--
pyflakes
447
B
-rw-r--r--
pygmentize
1.03
KB
-rw-r--r--
pylint
3.25
KB
-rw-r--r--
pylint-2
3.25
KB
-rw-r--r--
pylint-3
3.25
KB
-rw-r--r--
pypy
1.73
KB
-rw-r--r--
pypy3
1.73
KB
-rw-r--r--
pytest
4.16
KB
-rw-r--r--
pytest-2
4.16
KB
-rw-r--r--
pytest-3
4.16
KB
-rw-r--r--
python
1.73
KB
-rw-r--r--
python2
1.73
KB
-rw-r--r--
python2.7
1.73
KB
-rw-r--r--
python3
1.73
KB
-rw-r--r--
python3.3
1.73
KB
-rw-r--r--
python3.4
1.73
KB
-rw-r--r--
python3.5
1.73
KB
-rw-r--r--
python3.6
1.73
KB
-rw-r--r--
python3.7
1.73
KB
-rw-r--r--
python3.8
1.73
KB
-rw-r--r--
python3.9
1.73
KB
-rw-r--r--
pyvenv
432
B
-rw-r--r--
pyvenv-3.4
432
B
-rw-r--r--
pyvenv-3.5
432
B
-rw-r--r--
pyvenv-3.6
432
B
-rw-r--r--
pyvenv-3.7
432
B
-rw-r--r--
pyvenv-3.8
432
B
-rw-r--r--
pyvenv-3.9
432
B
-rw-r--r--
qdbus
383
B
-rw-r--r--
qemu
3.25
KB
-rw-r--r--
qemu-kvm
3.25
KB
-rw-r--r--
qemu-system-i386
3.25
KB
-rw-r--r--
qemu-system-x86_64
3.25
KB
-rw-r--r--
qmicli
5.16
KB
-rw-r--r--
qrunner
391
B
-rw-r--r--
querybts
1.23
KB
-rw-r--r--
quota
3.62
KB
-rw-r--r--
quotacheck
3.62
KB
-rw-r--r--
quotaoff
3.62
KB
-rw-r--r--
quotaon
3.62
KB
-rw-r--r--
radvdump
500
B
-rw-r--r--
ralsh
9.77
KB
-rw-r--r--
rcs
857
B
-rw-r--r--
rcsdiff
857
B
-rw-r--r--
rdesktop
1.6
KB
-rw-r--r--
rdict
1.76
KB
-rw-r--r--
readprofile
679
B
-rw-r--r--
remove_members
571
B
-rw-r--r--
removepkg
557
B
-rw-r--r--
renice
784
B
-rw-r--r--
reportbug
3.32
KB
-rw-r--r--
repquota
3.62
KB
-rw-r--r--
resizepart
605
B
-rw-r--r--
resolvconf
428
B
-rw-r--r--
resolvectl
6.45
KB
-rw-r--r--
rev
439
B
-rw-r--r--
rfcomm
9.38
KB
-rw-r--r--
ri
3.65
KB
-rw-r--r--
rlog
857
B
-rw-r--r--
rmlist
363
B
-rw-r--r--
rmmod
527
B
-rw-r--r--
route
781
B
-rw-r--r--
rpcdebug
994
B
-rw-r--r--
rpm
10.12
KB
-rw-r--r--
rpm2targz
368
B
-rw-r--r--
rpm2tgz
368
B
-rw-r--r--
rpm2txz
368
B
-rw-r--r--
rpmbuild
10.12
KB
-rw-r--r--
rpmbuild-md5
10.12
KB
-rw-r--r--
rpmcheck
512
B
-rw-r--r--
rrdtool
436
B
-rw-r--r--
rsync
3.48
KB
-rw-r--r--
rtcwake
1.06
KB
-rw-r--r--
runuser
892
B
-rw-r--r--
s390-koji
6.21
KB
-rw-r--r--
sbcl
675
B
-rw-r--r--
sbcl-mt
675
B
-rw-r--r--
sbopkg
1.73
KB
-rw-r--r--
scp
16.14
KB
-rw-r--r--
screen
3.29
KB
-rw-r--r--
script
1.04
KB
-rw-r--r--
scriptlive
762
B
-rw-r--r--
scriptreplay
917
B
-rw-r--r--
scrub
885
B
-rw-r--r--
sdptool
9.38
KB
-rw-r--r--
secret-tool
1.43
KB
-rw-r--r--
setarch
790
B
-rw-r--r--
setpriv
2.76
KB
-rw-r--r--
setquota
3.62
KB
-rw-r--r--
setsid
440
B
-rw-r--r--
setterm
2.53
KB
-rw-r--r--
sfdisk
2.1
KB
-rw-r--r--
sftp
16.14
KB
-rw-r--r--
sh
879
B
-rw-r--r--
shellcheck
1.63
KB
-rw-r--r--
sidedoor
16.14
KB
-rw-r--r--
sitecopy
1.29
KB
-rw-r--r--
slackpkg
3.41
KB
-rw-r--r--
slapt-get
2.44
KB
-rw-r--r--
slapt-src
1.85
KB
-rw-r--r--
slogin
16.14
KB
-rw-r--r--
smartctl
4.27
KB
-rw-r--r--
smbcacls
7.06
KB
-rw-r--r--
smbclient
7.06
KB
-rw-r--r--
smbcquotas
7.06
KB
-rw-r--r--
smbget
7.06
KB
-rw-r--r--
smbpasswd
7.06
KB
-rw-r--r--
smbtar
7.06
KB
-rw-r--r--
smbtree
7.06
KB
-rw-r--r--
snap
2.48
KB
-rw-r--r--
snownews
363
B
-rw-r--r--
sparc-koji
6.21
KB
-rw-r--r--
spovray
2.01
KB
-rw-r--r--
sqlite3
902
B
-rw-r--r--
ss
1.11
KB
-rw-r--r--
ssh
16.14
KB
-rw-r--r--
ssh-add
677
B
-rw-r--r--
ssh-copy-id
684
B
-rw-r--r--
ssh-keygen
3.77
KB
-rw-r--r--
sshfs
567
B
-rw-r--r--
sshmitm
364
B
-rw-r--r--
sshow
498
B
-rw-r--r--
star
18.23
KB
-rw-r--r--
strace
3.23
KB
-rw-r--r--
stream
8.7
KB
-rw-r--r--
strings
1.13
KB
-rw-r--r--
su
892
B
-rw-r--r--
sudo
1.47
KB
-rw-r--r--
sudoedit
1.47
KB
-rw-r--r--
svcadm
4.99
KB
-rw-r--r--
svk
8.62
KB
-rw-r--r--
swaplabel
635
B
-rw-r--r--
swapoff
743
B
-rw-r--r--
swapon
1.97
KB
-rw-r--r--
sync_members
735
B
-rw-r--r--
synclient
592
B
-rw-r--r--
sysbench
4.01
KB
-rw-r--r--
sysctl
813
B
-rw-r--r--
systemctl
15.72
KB
-rw-r--r--
systemd-analyze
7.01
KB
-rw-r--r--
systemd-cat
1.68
KB
-rw-r--r--
systemd-cgls
2.2
KB
-rw-r--r--
systemd-cgtop
2.19
KB
-rw-r--r--
systemd-cryptenroll
3.5
KB
-rw-r--r--
systemd-delta
1.75
KB
-rw-r--r--
systemd-detect-virt
1.32
KB
-rw-r--r--
systemd-dissect
3.78
KB
-rw-r--r--
systemd-id128
2.09
KB
-rw-r--r--
systemd-path
1.7
KB
-rw-r--r--
systemd-resolve
2.67
KB
-rw-r--r--
systemd-run
5.39
KB
-rw-r--r--
systemd-sysext
2.39
KB
-rw-r--r--
tar
18.23
KB
-rw-r--r--
taskset
1.18
KB
-rw-r--r--
tc
26.83
KB
-rw-r--r--
tcpdump
1.62
KB
-rw-r--r--
tcpkill
440
B
-rw-r--r--
tcpnice
431
B
-rw-r--r--
tightvncviewer
2.91
KB
-rw-r--r--
timedatectl
2.95
KB
-rw-r--r--
timeout
1008
B
-rw-r--r--
tipc
8.09
KB
-rw-r--r--
tox
1.4
KB
-rw-r--r--
trace-cmd.bash
6.9
KB
-rw-r--r--
tracepath
564
B
-rw-r--r--
tracepath6
564
B
-rw-r--r--
tshark
4.12
KB
-rw-r--r--
tsig-keygen
644
B
-rw-r--r--
tune2fs
1.71
KB
-rw-r--r--
typeset
1.24
KB
-rw-r--r--
ua
1.95
KB
-rw-r--r--
ubuntu-bug
5.21
KB
-rw-r--r--
uclampset
665
B
-rw-r--r--
udevadm
10.5
KB
-rw-r--r--
udisksctl
857
B
-rw-r--r--
ufw
2.44
KB
-rw-r--r--
ul
655
B
-rw-r--r--
ulimit
879
B
-rw-r--r--
umount
1.82
KB
-rw-r--r--
unace
472
B
-rw-r--r--
unpack200
1.22
KB
-rw-r--r--
unrar
615
B
-rw-r--r--
unshare
936
B
-rw-r--r--
unshunt
347
B
-rw-r--r--
update-alternatives
2.4
KB
-rw-r--r--
update-initramfs
581
B
-rw-r--r--
update-rc.d
1.86
KB
-rw-r--r--
upgradepkg
803
B
-rw-r--r--
urlsnarf
507
B
-rw-r--r--
useradd
1.25
KB
-rw-r--r--
userdel
545
B
-rw-r--r--
usermod
1.36
KB
-rw-r--r--
utmpdump
475
B
-rw-r--r--
uuidd
862
B
-rw-r--r--
uuidgen
657
B
-rw-r--r--
uuidparse
727
B
-rw-r--r--
valgrind
3.42
KB
-rw-r--r--
vgcfgbackup
19.01
KB
-rw-r--r--
vgcfgrestore
19.01
KB
-rw-r--r--
vgchange
19.01
KB
-rw-r--r--
vgck
19.01
KB
-rw-r--r--
vgconvert
19.01
KB
-rw-r--r--
vgcreate
19.01
KB
-rw-r--r--
vgdisplay
19.01
KB
-rw-r--r--
vgexport
19.01
KB
-rw-r--r--
vgextend
19.01
KB
-rw-r--r--
vgimport
19.01
KB
-rw-r--r--
vgmerge
19.01
KB
-rw-r--r--
vgmknodes
19.01
KB
-rw-r--r--
vgreduce
19.01
KB
-rw-r--r--
vgremove
19.01
KB
-rw-r--r--
vgrename
19.01
KB
-rw-r--r--
vgs
19.01
KB
-rw-r--r--
vgscan
19.01
KB
-rw-r--r--
vgsplit
19.01
KB
-rw-r--r--
vigr
444
B
-rw-r--r--
vipw
444
B
-rw-r--r--
vmstat
701
B
-rw-r--r--
vncviewer
2.91
KB
-rw-r--r--
vpnc
2.27
KB
-rw-r--r--
wall
634
B
-rw-r--r--
watch
1.15
KB
-rw-r--r--
wdctl
1.34
KB
-rw-r--r--
webmitm
364
B
-rw-r--r--
wget
6.48
KB
-rw-r--r--
whatis
2.94
KB
-rw-r--r--
whereis
531
B
-rw-r--r--
whiptail
345
B
-rw-r--r--
whois
1.33
KB
-rw-r--r--
wine
535
B
-rw-r--r--
wine-development
535
B
-rw-r--r--
wine-stable
535
B
-rw-r--r--
wipefs
1.21
KB
-rw-r--r--
withlist
411
B
-rw-r--r--
wodim
3.5
KB
-rw-r--r--
wol
1.16
KB
-rw-r--r--
write
431
B
-rw-r--r--
wsimport
1.1
KB
-rw-r--r--
wtf
937
B
-rw-r--r--
wvdial
1.25
KB
-rw-r--r--
xdg-mime
2.17
KB
-rw-r--r--
xdg-settings
757
B
-rw-r--r--
xfreerdp
2.05
KB
-rw-r--r--
xgamma
2.01
KB
-rw-r--r--
xhost
378
B
-rw-r--r--
xmllint
1.24
KB
-rw-r--r--
xmlwf
694
B
-rw-r--r--
xmms
695
B
-rw-r--r--
xmodmap
437
B
-rw-r--r--
xpovray
2.01
KB
-rw-r--r--
xrandr
2.18
KB
-rw-r--r--
xrdb
512
B
-rw-r--r--
xsltproc
1.2
KB
-rw-r--r--
xvfb-run
886
B
-rw-r--r--
xvnc4viewer
2.91
KB
-rw-r--r--
xxd
491
B
-rw-r--r--
xz
1.48
KB
-rw-r--r--
xzdec
639
B
-rw-r--r--
ypcat
759
B
-rw-r--r--
ypmatch
759
B
-rw-r--r--
yum-arch
357
B
-rw-r--r--
zopfli
677
B
-rw-r--r--
zopflipng
920
B
-rw-r--r--
zramctl
1.26
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : bpftool
# bpftool(8) bash completion -*- shell-script -*- # # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) # Copyright (C) 2017-2018 Netronome Systems, Inc. # # Author: Quentin Monnet <quentin.monnet@netronome.com> # Takes a list of words in argument; each one of them is added to COMPREPLY if # it is not already present on the command line. Returns no value. _bpftool_once_attr() { local w idx found for w in $*; do found=0 for (( idx=3; idx < ${#words[@]}-1; idx++ )); do if [[ $w == ${words[idx]} ]]; then found=1 break fi done [[ $found -eq 0 ]] && \ COMPREPLY+=( $( compgen -W "$w" -- "$cur" ) ) done } # Takes a list of words as argument; if any of those words is present on the # command line, return 0. Otherwise, return 1. _bpftool_search_list() { local w idx for w in $*; do for (( idx=3; idx < ${#words[@]}-1; idx++ )); do [[ $w == ${words[idx]} ]] && return 0 done done return 1 } # Takes a list of words in argument; adds them all to COMPREPLY if none of them # is already present on the command line. Returns no value. _bpftool_one_of_list() { _bpftool_search_list $* && return 1 COMPREPLY+=( $( compgen -W "$*" -- "$cur" ) ) } _bpftool_get_map_ids() { COMPREPLY+=( $( compgen -W "$( bpftool -jp map 2>&1 | \ command sed -n 's/.*"id": \(.*\),$/\1/p' )" -- "$cur" ) ) } # Takes map type and adds matching map ids to the list of suggestions. _bpftool_get_map_ids_for_type() { local type="$1" COMPREPLY+=( $( compgen -W "$( bpftool -jp map 2>&1 | \ command grep -C2 "$type" | \ command sed -n 's/.*"id": \(.*\),$/\1/p' )" -- "$cur" ) ) } _bpftool_get_map_names() { COMPREPLY+=( $( compgen -W "$( bpftool -jp map 2>&1 | \ command sed -n 's/.*"name": \(.*\),$/\1/p' )" -- "$cur" ) ) } # Takes map type and adds matching map names to the list of suggestions. _bpftool_get_map_names_for_type() { local type="$1" COMPREPLY+=( $( compgen -W "$( bpftool -jp map 2>&1 | \ command grep -C2 "$type" | \ command sed -n 's/.*"name": \(.*\),$/\1/p' )" -- "$cur" ) ) } _bpftool_get_prog_ids() { COMPREPLY+=( $( compgen -W "$( bpftool -jp prog 2>&1 | \ command sed -n 's/.*"id": \(.*\),$/\1/p' )" -- "$cur" ) ) } _bpftool_get_prog_tags() { COMPREPLY+=( $( compgen -W "$( bpftool -jp prog 2>&1 | \ command sed -n 's/.*"tag": "\(.*\)",$/\1/p' )" -- "$cur" ) ) } _bpftool_get_prog_names() { COMPREPLY+=( $( compgen -W "$( bpftool -jp prog 2>&1 | \ command sed -n 's/.*"name": "\(.*\)",$/\1/p' )" -- "$cur" ) ) } _bpftool_get_btf_ids() { COMPREPLY+=( $( compgen -W "$( bpftool -jp btf 2>&1 | \ command sed -n 's/.*"id": \(.*\),$/\1/p' )" -- "$cur" ) ) } _bpftool_get_link_ids() { COMPREPLY+=( $( compgen -W "$( bpftool -jp link 2>&1 | \ command sed -n 's/.*"id": \(.*\),$/\1/p' )" -- "$cur" ) ) } _bpftool_get_obj_map_names() { local obj obj=$1 maps=$(objdump -j maps -t $obj 2>/dev/null | \ command awk '/g . maps/ {print $NF}') COMPREPLY+=( $( compgen -W "$maps" -- "$cur" ) ) } _bpftool_get_obj_map_idxs() { local obj obj=$1 nmaps=$(objdump -j maps -t $obj 2>/dev/null | grep -c 'g . maps') COMPREPLY+=( $( compgen -W "$(seq 0 $((nmaps - 1)))" -- "$cur" ) ) } _sysfs_get_netdevs() { COMPREPLY+=( $( compgen -W "$( ls /sys/class/net 2>/dev/null )" -- \ "$cur" ) ) } # Retrieve type of the map that we are operating on. _bpftool_map_guess_map_type() { local keyword ref for (( idx=3; idx < ${#words[@]}-1; idx++ )); do case "${words[$((idx-2))]}" in lookup|update) keyword=${words[$((idx-1))]} ref=${words[$((idx))]} ;; push) printf "stack" return 0 ;; enqueue) printf "queue" return 0 ;; esac done [[ -z $ref ]] && return 0 local type type=$(bpftool -jp map show $keyword $ref | \ command sed -n 's/.*"type": "\(.*\)",$/\1/p') [[ -n $type ]] && printf $type } _bpftool_map_update_get_id() { local command="$1" # Is it the map to update, or a map to insert into the map to update? # Search for "value" keyword. local idx value for (( idx=7; idx < ${#words[@]}-1; idx++ )); do if [[ ${words[idx]} == "value" ]]; then value=1 break fi done if [[ $value -eq 0 ]]; then case "$command" in push) _bpftool_get_map_ids_for_type stack ;; enqueue) _bpftool_get_map_ids_for_type queue ;; *) _bpftool_get_map_ids ;; esac return 0 fi # Id to complete is for a value. It can be either prog id or map id. This # depends on the type of the map to update. local type=$(_bpftool_map_guess_map_type) case $type in array_of_maps|hash_of_maps) _bpftool_get_map_ids return 0 ;; prog_array) _bpftool_get_prog_ids return 0 ;; *) return 0 ;; esac } _bpftool_map_update_get_name() { local command="$1" # Is it the map to update, or a map to insert into the map to update? # Search for "value" keyword. local idx value for (( idx=7; idx < ${#words[@]}-1; idx++ )); do if [[ ${words[idx]} == "value" ]]; then value=1 break fi done if [[ $value -eq 0 ]]; then case "$command" in push) _bpftool_get_map_names_for_type stack ;; enqueue) _bpftool_get_map_names_for_type queue ;; *) _bpftool_get_map_names ;; esac return 0 fi # Name to complete is for a value. It can be either prog name or map name. This # depends on the type of the map to update. local type=$(_bpftool_map_guess_map_type) case $type in array_of_maps|hash_of_maps) _bpftool_get_map_names return 0 ;; prog_array) _bpftool_get_prog_names return 0 ;; *) return 0 ;; esac } _bpftool() { local cur prev words objword json=0 _init_completion || return # Deal with options if [[ ${words[cword]} == -* ]]; then local c='--version --json --pretty --bpffs --mapcompat --debug \ --use-loader --base-btf' COMPREPLY=( $( compgen -W "$c" -- "$cur" ) ) return 0 fi if _bpftool_search_list -j --json -p --pretty; then json=1 fi # Deal with simplest keywords case $prev in help|hex) return 0 ;; tag) _bpftool_get_prog_tags return 0 ;; dev|offload_dev|xdpmeta_dev) _sysfs_get_netdevs return 0 ;; file|pinned|-B|--base-btf) _filedir return 0 ;; batch) COMPREPLY=( $( compgen -W 'file' -- "$cur" ) ) return 0 ;; esac # Remove all options so completions don't have to deal with them. local i for (( i=1; i < ${#words[@]}; )); do if [[ ${words[i]::1} == - ]] && [[ ${words[i]} != "-B" ]] && [[ ${words[i]} != "--base-btf" ]]; then words=( "${words[@]:0:i}" "${words[@]:i+1}" ) [[ $i -le $cword ]] && cword=$(( cword - 1 )) else i=$(( ++i )) fi done cur=${words[cword]} prev=${words[cword - 1]} pprev=${words[cword - 2]} local object=${words[1]} command=${words[2]} if [[ -z $object || $cword -eq 1 ]]; then case $cur in *) COMPREPLY=( $( compgen -W "$( bpftool help 2>&1 | \ command sed \ -e '/OBJECT := /!d' \ -e 's/.*{//' \ -e 's/}.*//' \ -e 's/|//g' )" -- "$cur" ) ) COMPREPLY+=( $( compgen -W 'batch help' -- "$cur" ) ) return 0 ;; esac fi [[ $command == help ]] && return 0 # Completion depends on object and command in use case $object in prog) # Complete id and name, only for subcommands that use prog (but no # map) ids/names. case $command in show|list|dump|pin) case $prev in id) _bpftool_get_prog_ids return 0 ;; name) _bpftool_get_prog_names return 0 ;; esac ;; esac local PROG_TYPE='id pinned tag name' local MAP_TYPE='id pinned name' local METRIC_TYPE='cycles instructions l1d_loads llc_misses \ itlb_misses dtlb_misses' case $command in show|list) [[ $prev != "$command" ]] && return 0 COMPREPLY=( $( compgen -W "$PROG_TYPE" -- "$cur" ) ) return 0 ;; dump) case $prev in $command) COMPREPLY+=( $( compgen -W "xlated jited" -- \ "$cur" ) ) return 0 ;; xlated|jited) COMPREPLY=( $( compgen -W "$PROG_TYPE" -- \ "$cur" ) ) return 0 ;; *) # "file" is not compatible with other keywords here if _bpftool_search_list 'file'; then return 0 fi if ! _bpftool_search_list 'linum opcodes visual'; then _bpftool_once_attr 'file' fi _bpftool_once_attr 'linum opcodes' if _bpftool_search_list 'xlated' && [[ "$json" == 0 ]]; then _bpftool_once_attr 'visual' fi return 0 ;; esac ;; pin) if [[ $prev == "$command" ]]; then COMPREPLY=( $( compgen -W "$PROG_TYPE" -- "$cur" ) ) else _filedir fi return 0 ;; attach|detach) case $cword in 3) COMPREPLY=( $( compgen -W "$PROG_TYPE" -- "$cur" ) ) return 0 ;; 4) case $prev in id) _bpftool_get_prog_ids ;; name) _bpftool_get_prog_names ;; pinned) _filedir ;; esac return 0 ;; 5) local BPFTOOL_PROG_ATTACH_TYPES='sk_msg_verdict \ sk_skb_verdict sk_skb_stream_verdict sk_skb_stream_parser \ flow_dissector' COMPREPLY=( $( compgen -W "$BPFTOOL_PROG_ATTACH_TYPES" -- "$cur" ) ) return 0 ;; 6) COMPREPLY=( $( compgen -W "$MAP_TYPE" -- "$cur" ) ) return 0 ;; 7) case $prev in id) _bpftool_get_map_ids ;; name) _bpftool_get_map_names ;; pinned) _filedir ;; esac return 0 ;; esac ;; load|loadall) local obj # Propose "load/loadall" to complete "bpftool prog load", # or bash tries to complete "load" as a filename below. if [[ ${#words[@]} -eq 3 ]]; then COMPREPLY=( $( compgen -W "load loadall" -- "$cur" ) ) return 0 fi if [[ ${#words[@]} -lt 6 ]]; then _filedir return 0 fi obj=${words[3]} if [[ ${words[-4]} == "map" ]]; then COMPREPLY=( $( compgen -W "id pinned" -- "$cur" ) ) return 0 fi if [[ ${words[-3]} == "map" ]]; then if [[ ${words[-2]} == "idx" ]]; then _bpftool_get_obj_map_idxs $obj elif [[ ${words[-2]} == "name" ]]; then _bpftool_get_obj_map_names $obj fi return 0 fi if [[ ${words[-2]} == "map" ]]; then COMPREPLY=( $( compgen -W "idx name" -- "$cur" ) ) return 0 fi case $prev in type) local BPFTOOL_PROG_LOAD_TYPES='socket kprobe \ kretprobe classifier flow_dissector \ action tracepoint raw_tracepoint \ xdp perf_event cgroup/skb cgroup/sock \ cgroup/dev lwt_in lwt_out lwt_xmit \ lwt_seg6local sockops sk_skb sk_msg lirc_mode2 \ cgroup/bind4 cgroup/bind6 \ cgroup/connect4 cgroup/connect6 cgroup/connect_unix \ cgroup/getpeername4 cgroup/getpeername6 cgroup/getpeername_unix \ cgroup/getsockname4 cgroup/getsockname6 cgroup/getsockname_unix \ cgroup/sendmsg4 cgroup/sendmsg6 cgroup/sendmsg_unix \ cgroup/recvmsg4 cgroup/recvmsg6 cgroup/recvmsg_unix \ cgroup/post_bind4 cgroup/post_bind6 \ cgroup/sysctl cgroup/getsockopt \ cgroup/setsockopt cgroup/sock_release struct_ops \ fentry fexit freplace sk_lookup' COMPREPLY=( $( compgen -W "$BPFTOOL_PROG_LOAD_TYPES" -- "$cur" ) ) return 0 ;; id) _bpftool_get_map_ids return 0 ;; name) _bpftool_get_map_names return 0 ;; pinned|pinmaps) _filedir return 0 ;; *) COMPREPLY=( $( compgen -W "map" -- "$cur" ) ) _bpftool_once_attr 'type pinmaps autoattach' _bpftool_one_of_list 'offload_dev xdpmeta_dev' return 0 ;; esac ;; tracelog) return 0 ;; profile) case $cword in 3) COMPREPLY=( $( compgen -W "$PROG_TYPE" -- "$cur" ) ) return 0 ;; 4) case $prev in id) _bpftool_get_prog_ids ;; name) _bpftool_get_prog_names ;; pinned) _filedir ;; esac return 0 ;; 5) COMPREPLY=( $( compgen -W "$METRIC_TYPE duration" -- "$cur" ) ) return 0 ;; 6) case $prev in duration) return 0 ;; *) COMPREPLY=( $( compgen -W "$METRIC_TYPE" -- "$cur" ) ) return 0 ;; esac return 0 ;; *) COMPREPLY=( $( compgen -W "$METRIC_TYPE" -- "$cur" ) ) return 0 ;; esac ;; run) if [[ ${#words[@]} -eq 4 ]]; then COMPREPLY=( $( compgen -W "$PROG_TYPE" -- "$cur" ) ) return 0 fi case $prev in id) _bpftool_get_prog_ids return 0 ;; name) _bpftool_get_prog_names return 0 ;; data_in|data_out|ctx_in|ctx_out) _filedir return 0 ;; repeat|data_size_out|ctx_size_out) return 0 ;; *) _bpftool_once_attr 'data_in data_out data_size_out \ ctx_in ctx_out ctx_size_out repeat' return 0 ;; esac ;; *) [[ $prev == $object ]] && \ COMPREPLY=( $( compgen -W 'dump help pin attach detach \ load loadall show list tracelog run profile' -- "$cur" ) ) ;; esac ;; struct_ops) local STRUCT_OPS_TYPE='id name' case $command in show|list|dump|unregister) case $prev in $command) COMPREPLY=( $( compgen -W "$STRUCT_OPS_TYPE" -- "$cur" ) ) ;; id) _bpftool_get_map_ids_for_type struct_ops ;; name) _bpftool_get_map_names_for_type struct_ops ;; esac return 0 ;; register) _filedir return 0 ;; *) [[ $prev == $object ]] && \ COMPREPLY=( $( compgen -W 'register unregister show list dump help' \ -- "$cur" ) ) ;; esac ;; iter) case $command in pin) case $prev in $command) _filedir ;; id) _bpftool_get_map_ids ;; name) _bpftool_get_map_names ;; pinned) _filedir ;; *) _bpftool_one_of_list $MAP_TYPE ;; esac return 0 ;; *) [[ $prev == $object ]] && \ COMPREPLY=( $( compgen -W 'pin help' \ -- "$cur" ) ) ;; esac ;; map) local MAP_TYPE='id pinned name' case $command in show|list|dump|peek|pop|dequeue|freeze) case $prev in $command) COMPREPLY=( $( compgen -W "$MAP_TYPE" -- "$cur" ) ) return 0 ;; id) case "$command" in peek) _bpftool_get_map_ids_for_type stack _bpftool_get_map_ids_for_type queue ;; pop) _bpftool_get_map_ids_for_type stack ;; dequeue) _bpftool_get_map_ids_for_type queue ;; *) _bpftool_get_map_ids ;; esac return 0 ;; name) case "$command" in peek) _bpftool_get_map_names_for_type stack _bpftool_get_map_names_for_type queue ;; pop) _bpftool_get_map_names_for_type stack ;; dequeue) _bpftool_get_map_names_for_type queue ;; *) _bpftool_get_map_names ;; esac return 0 ;; *) return 0 ;; esac ;; create) case $prev in $command) _filedir return 0 ;; type) local BPFTOOL_MAP_CREATE_TYPES="$(bpftool feature list_builtins map_types 2>/dev/null | \ grep -v '^unspec$')" COMPREPLY=( $( compgen -W "$BPFTOOL_MAP_CREATE_TYPES" -- "$cur" ) ) return 0 ;; key|value|flags|entries) return 0 ;; inner_map) COMPREPLY=( $( compgen -W "$MAP_TYPE" -- "$cur" ) ) return 0 ;; id) _bpftool_get_map_ids ;; name) case $pprev in inner_map) _bpftool_get_map_names ;; *) return 0 ;; esac ;; *) _bpftool_once_attr 'type key value entries name flags offload_dev' if _bpftool_search_list 'array_of_maps' 'hash_of_maps'; then _bpftool_once_attr 'inner_map' fi return 0 ;; esac ;; lookup|getnext|delete) case $prev in $command) COMPREPLY=( $( compgen -W "$MAP_TYPE" -- "$cur" ) ) return 0 ;; id) _bpftool_get_map_ids return 0 ;; name) _bpftool_get_map_names return 0 ;; key) COMPREPLY+=( $( compgen -W 'hex' -- "$cur" ) ) ;; *) case $(_bpftool_map_guess_map_type) in queue|stack) return 0 ;; esac _bpftool_once_attr 'key' return 0 ;; esac ;; update|push|enqueue) case $prev in $command) COMPREPLY=( $( compgen -W "$MAP_TYPE" -- "$cur" ) ) return 0 ;; id) _bpftool_map_update_get_id $command return 0 ;; name) _bpftool_map_update_get_name $command return 0 ;; key) COMPREPLY+=( $( compgen -W 'hex' -- "$cur" ) ) ;; value) # We can have bytes, or references to a prog or a # map, depending on the type of the map to update. case "$(_bpftool_map_guess_map_type)" in array_of_maps|hash_of_maps) local MAP_TYPE='id pinned name' COMPREPLY+=( $( compgen -W "$MAP_TYPE" \ -- "$cur" ) ) return 0 ;; prog_array) local PROG_TYPE='id pinned tag name' COMPREPLY+=( $( compgen -W "$PROG_TYPE" \ -- "$cur" ) ) return 0 ;; *) COMPREPLY+=( $( compgen -W 'hex' \ -- "$cur" ) ) return 0 ;; esac return 0 ;; *) case $(_bpftool_map_guess_map_type) in queue|stack) _bpftool_once_attr 'value' return 0; ;; esac _bpftool_once_attr 'key' local UPDATE_FLAGS='any exist noexist' for (( idx=3; idx < ${#words[@]}-1; idx++ )); do if [[ ${words[idx]} == 'value' ]]; then # 'value' is present, but is not the last # word i.e. we can now have UPDATE_FLAGS. _bpftool_one_of_list "$UPDATE_FLAGS" return 0 fi done for (( idx=3; idx < ${#words[@]}-1; idx++ )); do if [[ ${words[idx]} == 'key' ]]; then # 'key' is present, but is not the last # word i.e. we can now have 'value'. _bpftool_once_attr 'value' return 0 fi done return 0 ;; esac ;; pin) case $prev in $command) COMPREPLY=( $( compgen -W "$MAP_TYPE" -- "$cur" ) ) ;; id) _bpftool_get_map_ids ;; name) _bpftool_get_map_names ;; esac return 0 ;; event_pipe) case $prev in $command) COMPREPLY=( $( compgen -W "$MAP_TYPE" -- "$cur" ) ) return 0 ;; id) _bpftool_get_map_ids_for_type perf_event_array return 0 ;; name) _bpftool_get_map_names_for_type perf_event_array return 0 ;; cpu) return 0 ;; index) return 0 ;; *) _bpftool_once_attr 'cpu index' return 0 ;; esac ;; *) [[ $prev == $object ]] && \ COMPREPLY=( $( compgen -W 'delete dump getnext help \ lookup pin event_pipe show list update create \ peek push enqueue pop dequeue freeze' -- \ "$cur" ) ) ;; esac ;; btf) local PROG_TYPE='id pinned tag name' local MAP_TYPE='id pinned name' case $command in dump) case $prev in $command) COMPREPLY+=( $( compgen -W "id map prog file" -- \ "$cur" ) ) return 0 ;; prog) COMPREPLY=( $( compgen -W "$PROG_TYPE" -- "$cur" ) ) return 0 ;; map) COMPREPLY=( $( compgen -W "$MAP_TYPE" -- "$cur" ) ) return 0 ;; id) case $pprev in prog) _bpftool_get_prog_ids ;; map) _bpftool_get_map_ids ;; $command) _bpftool_get_btf_ids ;; esac return 0 ;; name) case $pprev in prog) _bpftool_get_prog_names ;; map) _bpftool_get_map_names ;; esac return 0 ;; format) COMPREPLY=( $( compgen -W "c raw" -- "$cur" ) ) ;; *) # emit extra options case ${words[3]} in id|file) _bpftool_once_attr 'format' ;; map|prog) if [[ ${words[3]} == "map" ]] && [[ $cword == 6 ]]; then COMPREPLY+=( $( compgen -W "key value kv all" -- "$cur" ) ) fi _bpftool_once_attr 'format' ;; *) ;; esac return 0 ;; esac ;; show|list) case $prev in $command) COMPREPLY+=( $( compgen -W "id" -- "$cur" ) ) ;; id) _bpftool_get_btf_ids ;; esac return 0 ;; *) [[ $prev == $object ]] && \ COMPREPLY=( $( compgen -W 'dump help show list' \ -- "$cur" ) ) ;; esac ;; gen) case $command in object) _filedir return 0 ;; skeleton) case $prev in $command) _filedir return 0 ;; *) _bpftool_once_attr 'name' return 0 ;; esac ;; subskeleton) case $prev in $command) _filedir return 0 ;; *) _bpftool_once_attr 'name' return 0 ;; esac ;; min_core_btf) _filedir return 0 ;; *) [[ $prev == $object ]] && \ COMPREPLY=( $( compgen -W 'object skeleton subskeleton help min_core_btf' -- "$cur" ) ) ;; esac ;; cgroup) case $command in show|list|tree) case $cword in 3) _filedir ;; 4) COMPREPLY=( $( compgen -W 'effective' -- "$cur" ) ) ;; esac return 0 ;; attach|detach) local BPFTOOL_CGROUP_ATTACH_TYPES="$(bpftool feature list_builtins attach_types 2>/dev/null | \ grep '^cgroup_')" local ATTACH_FLAGS='multi override' local PROG_TYPE='id pinned tag name' # Check for $prev = $command first if [ $prev = $command ]; then _filedir return 0 # Then check for attach type. This is done outside of the # "case $prev in" to avoid writing the whole list of attach # types again as pattern to match (where we cannot reuse # our variable). elif [[ $BPFTOOL_CGROUP_ATTACH_TYPES =~ $prev ]]; then COMPREPLY=( $( compgen -W "$PROG_TYPE" -- \ "$cur" ) ) return 0 fi # case/esac for the other cases case $prev in id) _bpftool_get_prog_ids return 0 ;; *) if ! _bpftool_search_list "$BPFTOOL_CGROUP_ATTACH_TYPES"; then COMPREPLY=( $( compgen -W \ "$BPFTOOL_CGROUP_ATTACH_TYPES" -- "$cur" ) ) elif [[ "$command" == "attach" ]]; then # We have an attach type on the command line, # but it is not the previous word, or # "id|pinned|tag|name" (we already checked for # that). This should only leave the case when # we need attach flags for "attach" commamnd. _bpftool_one_of_list "$ATTACH_FLAGS" fi return 0 ;; esac ;; *) [[ $prev == $object ]] && \ COMPREPLY=( $( compgen -W 'help attach detach \ show list tree' -- "$cur" ) ) ;; esac ;; perf) case $command in *) [[ $prev == $object ]] && \ COMPREPLY=( $( compgen -W 'help \ show list' -- "$cur" ) ) ;; esac ;; net) local PROG_TYPE='id pinned tag name' local ATTACH_TYPES='xdp xdpgeneric xdpdrv xdpoffload' case $command in show|list) [[ $prev != "$command" ]] && return 0 COMPREPLY=( $( compgen -W 'dev' -- "$cur" ) ) return 0 ;; attach) case $cword in 3) COMPREPLY=( $( compgen -W "$ATTACH_TYPES" -- "$cur" ) ) return 0 ;; 4) COMPREPLY=( $( compgen -W "$PROG_TYPE" -- "$cur" ) ) return 0 ;; 5) case $prev in id) _bpftool_get_prog_ids ;; name) _bpftool_get_prog_names ;; pinned) _filedir ;; esac return 0 ;; 6) COMPREPLY=( $( compgen -W 'dev' -- "$cur" ) ) return 0 ;; 8) _bpftool_once_attr 'overwrite' return 0 ;; esac ;; detach) case $cword in 3) COMPREPLY=( $( compgen -W "$ATTACH_TYPES" -- "$cur" ) ) return 0 ;; 4) COMPREPLY=( $( compgen -W 'dev' -- "$cur" ) ) return 0 ;; esac ;; *) [[ $prev == $object ]] && \ COMPREPLY=( $( compgen -W 'help \ show list attach detach' -- "$cur" ) ) ;; esac ;; feature) case $command in probe) [[ $prev == "prefix" ]] && return 0 if _bpftool_search_list 'macros'; then _bpftool_once_attr 'prefix' else COMPREPLY+=( $( compgen -W 'macros' -- "$cur" ) ) fi _bpftool_one_of_list 'kernel dev' _bpftool_once_attr 'full unprivileged' return 0 ;; list_builtins) [[ $prev != "$command" ]] && return 0 COMPREPLY=( $( compgen -W 'prog_types map_types \ attach_types link_types helpers' -- "$cur" ) ) ;; *) [[ $prev == $object ]] && \ COMPREPLY=( $( compgen -W 'help list_builtins probe' -- "$cur" ) ) ;; esac ;; link) case $command in show|list|pin|detach) case $prev in id) _bpftool_get_link_ids return 0 ;; esac ;; esac local LINK_TYPE='id pinned' case $command in show|list) [[ $prev != "$command" ]] && return 0 COMPREPLY=( $( compgen -W "$LINK_TYPE" -- "$cur" ) ) return 0 ;; pin|detach) if [[ $prev == "$command" ]]; then COMPREPLY=( $( compgen -W "$LINK_TYPE" -- "$cur" ) ) else _filedir fi return 0 ;; *) [[ $prev == $object ]] && \ COMPREPLY=( $( compgen -W 'help pin show list' -- "$cur" ) ) ;; esac ;; esac } && complete -F _bpftool bpftool # ex: ts=4 sw=4 et filetype=sh
Close