Linux iad1-shared-b7-18 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
Apache
: 67.205.6.31 | : 216.73.216.20
Cant Read [ /etc/named.conf ]
8.2.29
fernandoquevedo
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
share /
zsh /
functions /
Completion /
Unix /
[ HOME SHELL ]
Name
Size
Permission
Action
_a2ps
2.73
KB
-rw-r--r--
_aap
2.58
KB
-rw-r--r--
_abcde
2.39
KB
-rw-r--r--
_absolute_command_paths
1022
B
-rw-r--r--
_ack
8.09
KB
-rw-r--r--
_adb
15.1
KB
-rw-r--r--
_ansible
13.42
KB
-rw-r--r--
_ant
6.03
KB
-rw-r--r--
_antiword
1.08
KB
-rw-r--r--
_apachectl
116
B
-rw-r--r--
_apm
1.64
KB
-rw-r--r--
_arch_archives
413
B
-rw-r--r--
_arch_namespace
3.23
KB
-rw-r--r--
_arp
3.07
KB
-rw-r--r--
_arping
2.17
KB
-rw-r--r--
_asciidoctor
2.33
KB
-rw-r--r--
_asciinema
1.93
KB
-rw-r--r--
_at
1.01
KB
-rw-r--r--
_attr
3.15
KB
-rw-r--r--
_augeas
2.51
KB
-rw-r--r--
_avahi
2.27
KB
-rw-r--r--
_awk
4.57
KB
-rw-r--r--
_base64
2.04
KB
-rw-r--r--
_basename
767
B
-rw-r--r--
_bash
3.52
KB
-rw-r--r--
_baudrates
2.37
KB
-rw-r--r--
_baz
15.64
KB
-rw-r--r--
_beep
1.59
KB
-rw-r--r--
_bibtex
160
B
-rw-r--r--
_bind_addresses
1.4
KB
-rw-r--r--
_bison
923
B
-rw-r--r--
_bittorrent
4.76
KB
-rw-r--r--
_bogofilter
5.13
KB
-rw-r--r--
_bpf_filters
7.67
KB
-rw-r--r--
_bpython
1.25
KB
-rw-r--r--
_bzip2
2.17
KB
-rw-r--r--
_bzr
11.17
KB
-rw-r--r--
_cabal
292
B
-rw-r--r--
_cal
547
B
-rw-r--r--
_calendar
1.37
KB
-rw-r--r--
_canonical_paths
3.61
KB
-rw-r--r--
_cat
2.04
KB
-rw-r--r--
_ccal
778
B
-rw-r--r--
_cdcd
2.09
KB
-rw-r--r--
_cdrdao
7.95
KB
-rw-r--r--
_cdrecord
4.75
KB
-rw-r--r--
_chkconfig
777
B
-rw-r--r--
_chmod
2.87
KB
-rw-r--r--
_chown
3.5
KB
-rw-r--r--
_chroot
1.41
KB
-rw-r--r--
_chsh
1.97
KB
-rw-r--r--
_cksum
3.88
KB
-rw-r--r--
_clay
1.73
KB
-rw-r--r--
_cmdambivalent
391
B
-rw-r--r--
_cmdstring
102
B
-rw-r--r--
_cmp
1.1
KB
-rw-r--r--
_column
3.79
KB
-rw-r--r--
_comm
995
B
-rw-r--r--
_composer
31.47
KB
-rw-r--r--
_compress
1.38
KB
-rw-r--r--
_configure
444
B
-rw-r--r--
_cowsay
904
B
-rw-r--r--
_cp
4.09
KB
-rw-r--r--
_cpio
4.48
KB
-rw-r--r--
_cplay
343
B
-rw-r--r--
_crontab
2.03
KB
-rw-r--r--
_cscope
1.56
KB
-rw-r--r--
_cssh
795
B
-rw-r--r--
_ctags_tags
170
B
-rw-r--r--
_curl
224
B
-rw-r--r--
_cut
2.31
KB
-rw-r--r--
_cvs
28.32
KB
-rw-r--r--
_darcs
1.18
KB
-rw-r--r--
_date
3.07
KB
-rw-r--r--
_date_formats
2.95
KB
-rw-r--r--
_dates
3.97
KB
-rw-r--r--
_dbus
4.69
KB
-rw-r--r--
_dconf
1.75
KB
-rw-r--r--
_dd
2.74
KB
-rw-r--r--
_devtodo
4.56
KB
-rw-r--r--
_df
3.51
KB
-rw-r--r--
_dhclient
3.44
KB
-rw-r--r--
_dict
2.09
KB
-rw-r--r--
_dict_words
1.26
KB
-rw-r--r--
_diff
90
B
-rw-r--r--
_diff3
1.99
KB
-rw-r--r--
_diff_options
9.04
KB
-rw-r--r--
_diffstat
1.71
KB
-rw-r--r--
_dig
4.59
KB
-rw-r--r--
_dir_list
680
B
-rw-r--r--
_directories
108
B
-rw-r--r--
_django
5.91
KB
-rw-r--r--
_dmesg
638
B
-rw-r--r--
_dmidecode
1.53
KB
-rw-r--r--
_dns_types
331
B
-rw-r--r--
_doas
656
B
-rw-r--r--
_domains
585
B
-rw-r--r--
_dos2unix
4.76
KB
-rw-r--r--
_drill
1.91
KB
-rw-r--r--
_dsh
1.68
KB
-rw-r--r--
_dtruss
684
B
-rw-r--r--
_du
4.48
KB
-rw-r--r--
_dvi
3.95
KB
-rw-r--r--
_ecasound
8.33
KB
-rw-r--r--
_ed
952
B
-rw-r--r--
_elfdump
1.29
KB
-rw-r--r--
_elinks
2.89
KB
-rw-r--r--
_email_addresses
5.5
KB
-rw-r--r--
_enscript
7.45
KB
-rw-r--r--
_entr
729
B
-rw-r--r--
_env
1.77
KB
-rw-r--r--
_espeak
2.12
KB
-rw-r--r--
_etags
2.08
KB
-rw-r--r--
_fakeroot
486
B
-rw-r--r--
_feh
6.85
KB
-rw-r--r--
_fetchmail
554
B
-rw-r--r--
_ffmpeg
7.83
KB
-rw-r--r--
_figlet
1.47
KB
-rw-r--r--
_file_modes
862
B
-rw-r--r--
_file_systems
1.18
KB
-rw-r--r--
_files
3.97
KB
-rw-r--r--
_find
5.48
KB
-rw-r--r--
_find_net_interfaces
1.3
KB
-rw-r--r--
_finger
2.11
KB
-rw-r--r--
_flac
5.78
KB
-rw-r--r--
_flex
3.08
KB
-rw-r--r--
_fmt
1.93
KB
-rw-r--r--
_fold
713
B
-rw-r--r--
_fortune
601
B
-rw-r--r--
_fsh
546
B
-rw-r--r--
_fuser
2.44
KB
-rw-r--r--
_gcc
77.94
KB
-rw-r--r--
_gcore
1.68
KB
-rw-r--r--
_gdb
1.51
KB
-rw-r--r--
_gem
13.6
KB
-rw-r--r--
_genisoimage
1.96
KB
-rw-r--r--
_getconf
3.71
KB
-rw-r--r--
_getent
2.05
KB
-rw-r--r--
_getfacl
1.55
KB
-rw-r--r--
_getmail
1.05
KB
-rw-r--r--
_getopt
1.15
KB
-rw-r--r--
_ghostscript
4.17
KB
-rw-r--r--
_git
361.69
KB
-rw-r--r--
_global
3.11
KB
-rw-r--r--
_global_tags
186
B
-rw-r--r--
_gnu_generic
178
B
-rw-r--r--
_gnupod
5.57
KB
-rw-r--r--
_gnutls
12.32
KB
-rw-r--r--
_go
256
B
-rw-r--r--
_gpg
13.47
KB
-rw-r--r--
_gphoto2
5.02
KB
-rw-r--r--
_gprof
1.31
KB
-rw-r--r--
_gradle
6.82
KB
-rw-r--r--
_graphicsmagick
28.23
KB
-rw-r--r--
_grep
6.13
KB
-rw-r--r--
_groff
2.2
KB
-rw-r--r--
_groups
1007
B
-rw-r--r--
_growisofs
19.16
KB
-rw-r--r--
_gsettings
1.32
KB
-rw-r--r--
_guilt
1.52
KB
-rw-r--r--
_gzip
4.17
KB
-rw-r--r--
_have_glob_qual
910
B
-rw-r--r--
_head
1.65
KB
-rw-r--r--
_hexdump
1.3
KB
-rw-r--r--
_host
1.05
KB
-rw-r--r--
_hostname
2.47
KB
-rw-r--r--
_hosts
2.92
KB
-rw-r--r--
_iconv
2.8
KB
-rw-r--r--
_id
1.84
KB
-rw-r--r--
_ifconfig
3.08
KB
-rw-r--r--
_iftop
918
B
-rw-r--r--
_imagemagick
27.49
KB
-rw-r--r--
_init_d
3.48
KB
-rw-r--r--
_initctl
6.18
KB
-rw-r--r--
_install
4.49
KB
-rw-r--r--
_iostat
6.41
KB
-rw-r--r--
_ip
20.47
KB
-rw-r--r--
_ipsec
6.54
KB
-rw-r--r--
_irssi
1.32
KB
-rw-r--r--
_ispell
4.11
KB
-rw-r--r--
_java
24.6
KB
-rw-r--r--
_java_class
693
B
-rw-r--r--
_joe
2.19
KB
-rw-r--r--
_join
1.16
KB
-rw-r--r--
_jq
2.22
KB
-rw-r--r--
_killall
3.28
KB
-rw-r--r--
_knock
304
B
-rw-r--r--
_kvno
669
B
-rw-r--r--
_last
2.69
KB
-rw-r--r--
_ld_debug
1.18
KB
-rw-r--r--
_ldconfig
2.47
KB
-rw-r--r--
_ldd
1.62
KB
-rw-r--r--
_less
6.23
KB
-rw-r--r--
_lha
1.71
KB
-rw-r--r--
_libvirt
9.53
KB
-rw-r--r--
_links
8.66
KB
-rw-r--r--
_list_files
1.4
KB
-rw-r--r--
_lldb
2.62
KB
-rw-r--r--
_ln
3.52
KB
-rw-r--r--
_loadkeys
595
B
-rw-r--r--
_locale
2.81
KB
-rw-r--r--
_localedef
3.03
KB
-rw-r--r--
_locales
349
B
-rw-r--r--
_locate
4.15
KB
-rw-r--r--
_look
998
B
-rw-r--r--
_lp
8.47
KB
-rw-r--r--
_ls
8.99
KB
-rw-r--r--
_lsof
5.01
KB
-rw-r--r--
_lua
1.78
KB
-rw-r--r--
_luarocks
22.74
KB
-rw-r--r--
_lynx
11.73
KB
-rw-r--r--
_lz4
4.47
KB
-rw-r--r--
_lzop
3.84
KB
-rw-r--r--
_mail
467
B
-rw-r--r--
_mailboxes
5.88
KB
-rw-r--r--
_make
8.95
KB
-rw-r--r--
_man
17.23
KB
-rw-r--r--
_md5sum
1.75
KB
-rw-r--r--
_mencal
1.06
KB
-rw-r--r--
_mh
3.68
KB
-rw-r--r--
_mime_types
1.15
KB
-rw-r--r--
_mkdir
1.15
KB
-rw-r--r--
_mkfifo
618
B
-rw-r--r--
_mknod
1.34
KB
-rw-r--r--
_mktemp
1.55
KB
-rw-r--r--
_module
5.35
KB
-rw-r--r--
_monotone
2.32
KB
-rw-r--r--
_moosic
11.75
KB
-rw-r--r--
_mosh
1.72
KB
-rw-r--r--
_mount
38.36
KB
-rw-r--r--
_mpc
9.92
KB
-rw-r--r--
_mt
3.14
KB
-rw-r--r--
_mtools
3.99
KB
-rw-r--r--
_mtr
3.24
KB
-rw-r--r--
_mutt
1.35
KB
-rw-r--r--
_mv
2.1
KB
-rw-r--r--
_my_accounts
45
B
-rw-r--r--
_myrepos
4.22
KB
-rw-r--r--
_mysql_utils
9.75
KB
-rw-r--r--
_mysqldiff
1.03
KB
-rw-r--r--
_ncftp
429
B
-rw-r--r--
_net_interfaces
204
B
-rw-r--r--
_netcat
1.29
KB
-rw-r--r--
_netstat
12.27
KB
-rw-r--r--
_newsgroups
210
B
-rw-r--r--
_nginx
810
B
-rw-r--r--
_ngrep
1.7
KB
-rw-r--r--
_nice
246
B
-rw-r--r--
_nkf
2.1
KB
-rw-r--r--
_nl
1.83
KB
-rw-r--r--
_nm
5.81
KB
-rw-r--r--
_nmap
3.39
KB
-rw-r--r--
_npm
380
B
-rw-r--r--
_nslookup
5.54
KB
-rw-r--r--
_numfmt
1.54
KB
-rw-r--r--
_objdump
11.24
KB
-rw-r--r--
_object_files
235
B
-rw-r--r--
_od
2.9
KB
-rw-r--r--
_openstack
8.98
KB
-rw-r--r--
_other_accounts
64
B
-rw-r--r--
_pack
361
B
-rw-r--r--
_pandoc
20.65
KB
-rw-r--r--
_paste
575
B
-rw-r--r--
_patch
8.47
KB
-rw-r--r--
_patchutils
4.74
KB
-rw-r--r--
_path_commands
2.98
KB
-rw-r--r--
_path_files
27.43
KB
-rw-r--r--
_pax
2.72
KB
-rw-r--r--
_pbm
25.26
KB
-rw-r--r--
_pdf
416
B
-rw-r--r--
_perforce
100.47
KB
-rw-r--r--
_perl
5.26
KB
-rw-r--r--
_perl_basepods
716
B
-rw-r--r--
_perl_modules
4.57
KB
-rw-r--r--
_perldoc
2.28
KB
-rw-r--r--
_pgrep
6.48
KB
-rw-r--r--
_php
6.72
KB
-rw-r--r--
_picocom
2.11
KB
-rw-r--r--
_pids
1.79
KB
-rw-r--r--
_pine
2.88
KB
-rw-r--r--
_ping
7.65
KB
-rw-r--r--
_pkg-config
3.03
KB
-rw-r--r--
_pkg_instance
353
B
-rw-r--r--
_pkgadd
1012
B
-rw-r--r--
_pkginfo
613
B
-rw-r--r--
_pkgrm
551
B
-rw-r--r--
_pon
443
B
-rw-r--r--
_ports
285
B
-rw-r--r--
_postfix
6.66
KB
-rw-r--r--
_postgresql
46.74
KB
-rw-r--r--
_postscript
333
B
-rw-r--r--
_printenv
114
B
-rw-r--r--
_printers
3.13
KB
-rw-r--r--
_process_names
1.22
KB
-rw-r--r--
_prove
2.44
KB
-rw-r--r--
_ps
8.39
KB
-rw-r--r--
_pspdf
326
B
-rw-r--r--
_psutils
3.69
KB
-rw-r--r--
_pump
1.41
KB
-rw-r--r--
_pv
4.29
KB
-rw-r--r--
_pwgen
1.53
KB
-rw-r--r--
_pydoc
858
B
-rw-r--r--
_python
2.11
KB
-rw-r--r--
_python_modules
1.09
KB
-rw-r--r--
_qemu
2.55
KB
-rw-r--r--
_quilt
8.67
KB
-rw-r--r--
_rake
2.78
KB
-rw-r--r--
_ranlib
403
B
-rw-r--r--
_rar
4.46
KB
-rw-r--r--
_rclone
24.33
KB
-rw-r--r--
_rcs
766
B
-rw-r--r--
_readelf
3.7
KB
-rw-r--r--
_readlink
1.71
KB
-rw-r--r--
_remote_files
2.69
KB
-rw-r--r--
_renice
424
B
-rw-r--r--
_ri
3.71
KB
-rw-r--r--
_rlogin
1.84
KB
-rw-r--r--
_rm
2.18
KB
-rw-r--r--
_rmdir
606
B
-rw-r--r--
_route
7.32
KB
-rw-r--r--
_rrdtool
591
B
-rw-r--r--
_rsync
13.44
KB
-rw-r--r--
_rubber
2.66
KB
-rw-r--r--
_ruby
6.12
KB
-rw-r--r--
_runit
2.15
KB
-rw-r--r--
_samba
6.19
KB
-rw-r--r--
_sccs
6.04
KB
-rw-r--r--
_scons
4.08
KB
-rw-r--r--
_screen
6.91
KB
-rw-r--r--
_script
2.53
KB
-rw-r--r--
_seafile
1.12
KB
-rw-r--r--
_sed
10.03
KB
-rw-r--r--
_seq
930
B
-rw-r--r--
_service
1.31
KB
-rw-r--r--
_services
951
B
-rw-r--r--
_setfacl
2
KB
-rw-r--r--
_sh
327
B
-rw-r--r--
_shasum
1.03
KB
-rw-r--r--
_showmount
428
B
-rw-r--r--
_shred
987
B
-rw-r--r--
_shuf
978
B
-rw-r--r--
_shutdown
2.1
KB
-rw-r--r--
_signals
1.09
KB
-rw-r--r--
_sisu
3.85
KB
-rw-r--r--
_slrn
1.1
KB
-rw-r--r--
_smartmontools
4.4
KB
-rw-r--r--
_socket
1.06
KB
-rw-r--r--
_sort
3.72
KB
-rw-r--r--
_spamassassin
475
B
-rw-r--r--
_split
2.83
KB
-rw-r--r--
_sqlite
3.48
KB
-rw-r--r--
_sqsh
2.11
KB
-rw-r--r--
_ssh
28.6
KB
-rw-r--r--
_ssh_hosts
1.08
KB
-rw-r--r--
_stat
3.16
KB
-rw-r--r--
_stdbuf
674
B
-rw-r--r--
_stgit
1.26
KB
-rw-r--r--
_stow
3.27
KB
-rw-r--r--
_strings
2.43
KB
-rw-r--r--
_strip
4.09
KB
-rw-r--r--
_stty
776
B
-rw-r--r--
_su
3.34
KB
-rw-r--r--
_subversion
18.08
KB
-rw-r--r--
_sudo
3.24
KB
-rw-r--r--
_surfraw
17.72
KB
-rw-r--r--
_swaks
3.38
KB
-rw-r--r--
_swanctl
9.98
KB
-rw-r--r--
_swift
5.82
KB
-rw-r--r--
_sys_calls
558
B
-rw-r--r--
_sysctl
3.72
KB
-rw-r--r--
_tac
542
B
-rw-r--r--
_tail
2.88
KB
-rw-r--r--
_tar
6.37
KB
-rw-r--r--
_tar_archive
1
KB
-rw-r--r--
_tardy
678
B
-rw-r--r--
_tcpdump
8.49
KB
-rw-r--r--
_tcptraceroute
583
B
-rw-r--r--
_tee
956
B
-rw-r--r--
_telnet
2.84
KB
-rw-r--r--
_terminals
230
B
-rw-r--r--
_tex
1.92
KB
-rw-r--r--
_texi
129
B
-rw-r--r--
_texinfo
16.12
KB
-rw-r--r--
_tidy
3.63
KB
-rw-r--r--
_tiff
10.47
KB
-rw-r--r--
_tilde_files
785
B
-rw-r--r--
_time_zone
222
B
-rw-r--r--
_timeout
815
B
-rw-r--r--
_tin
2.14
KB
-rw-r--r--
_tla
17.58
KB
-rw-r--r--
_tmux
63.42
KB
-rw-r--r--
_todo.sh
4.48
KB
-rw-r--r--
_toilet
868
B
-rw-r--r--
_top
7.46
KB
-rw-r--r--
_topgit
177
B
-rw-r--r--
_totd
287
B
-rw-r--r--
_touch
1.53
KB
-rw-r--r--
_tput
488
B
-rw-r--r--
_tr
1.47
KB
-rw-r--r--
_transmission
20.55
KB
-rw-r--r--
_tree
2.78
KB
-rw-r--r--
_truss
3.05
KB
-rw-r--r--
_tty
436
B
-rw-r--r--
_ttys
704
B
-rw-r--r--
_twidge
1.67
KB
-rw-r--r--
_twisted
1.34
KB
-rw-r--r--
_umountable
1.42
KB
-rw-r--r--
_unace
472
B
-rw-r--r--
_uname
2.96
KB
-rw-r--r--
_unexpand
1.1
KB
-rw-r--r--
_uniq
1.5
KB
-rw-r--r--
_unison
5.39
KB
-rw-r--r--
_units
2.75
KB
-rw-r--r--
_uptime
696
B
-rw-r--r--
_urls
5.91
KB
-rw-r--r--
_user_admin
6.24
KB
-rw-r--r--
_user_at_host
729
B
-rw-r--r--
_users
240
B
-rw-r--r--
_users_on
253
B
-rw-r--r--
_vcsh
2.33
KB
-rw-r--r--
_vim
6.89
KB
-rw-r--r--
_visudo
545
B
-rw-r--r--
_vmstat
4.47
KB
-rw-r--r--
_vorbis
8.57
KB
-rw-r--r--
_vpnc
3.14
KB
-rw-r--r--
_w
1.37
KB
-rw-r--r--
_w3m
4.43
KB
-rw-r--r--
_watch
1.47
KB
-rw-r--r--
_wc
793
B
-rw-r--r--
_webbrowser
205
B
-rw-r--r--
_wget
11.13
KB
-rw-r--r--
_whereis
36
B
-rw-r--r--
_who
2.36
KB
-rw-r--r--
_whois
4.73
KB
-rw-r--r--
_wiggle
1.09
KB
-rw-r--r--
_xargs
2.79
KB
-rw-r--r--
_xmlsoft
6.67
KB
-rw-r--r--
_xmlstarlet
7.29
KB
-rw-r--r--
_xmms2
5.26
KB
-rw-r--r--
_xxd
2.16
KB
-rw-r--r--
_xz
4.31
KB
-rw-r--r--
_yafc
1.78
KB
-rw-r--r--
_yodl
658
B
-rw-r--r--
_yp
3.18
KB
-rw-r--r--
_zcat
115
B
-rw-r--r--
_zdump
112
B
-rw-r--r--
_zfs
18.02
KB
-rw-r--r--
_zfs_dataset
2.69
KB
-rw-r--r--
_zfs_keysource_props
408
B
-rw-r--r--
_zfs_pool
51
B
-rw-r--r--
_zip
9.51
KB
-rw-r--r--
_zpool
9.53
KB
-rw-r--r--
_zsh
696
B
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : _man
#compdef man apropos whatis # Notes: # - Solaris is seemingly the only OS that doesn't allow the `man n page` syntax; # you must use `man -s n page` # - We assume that Linux distributions are using either man-db or mandoc # - @todo Would be nice to support completing the initial operand as a section # name (on non-Solaris systems) # - @todo We don't support the man-db syntax <name>.<section> (e.g., `ls.1`) # - @todo We don't support the man-db feature of 'sub-pages' — that is, treating # pairs of operands like `git diff` as `git-diff` # - @todo Option exclusivity isn't super accurate # - @todo Solaris man accepts a single hyphen as the first option to disable # paging (like AIX's -c); we don't support that # - @todo Linux apropos/whatis take options; we don't complete them yet _man() { local dirs expl mrd awk variant noinsert local -a context line state state_descr args modes local -aU sects local -A opt_args val_args sect_descs if [[ $service == man ]]; then # We'll treat all mandoc-based systems (Alpine, various Illumos distros, # etc.) as OpenBSD _pick_variant -r variant openbsd='-S subsection' $OSTYPE --- modes=( -f -K -k -l -R -w -W --apropos --global-apropos --local-file --location --location-cat --recode --whatis --where --where-cat ) [[ $variant == darwin* ]] && modes+=( -t ) args=( "(${(j< >)modes})"{-f,--whatis}'[display short description (like whatis)]' "(${(j< >)modes})"{-k,--apropos}'[search for keyword (like apropos)]' '(-M --manpath)'{-M+,--manpath=}'[specify manual search path]:manual search path:_sequence -s\: _directories' ) if [[ $variant == (darwin|dragonfly|freebsd|linux)* ]]; then args+=( '(-a -S -s --all --sections)'{-a,--all}'[display all matching pages]' '(-P --pager)'{-P+,--pager=}'[specify output pager]:pager:_path_commands' # @todo Could enumerate these '(-p --preprocessor)'{-p+,--preprocessor=}'[specify roff preprocessor sequence]:preprocessor sequence' ) else args+=( '(-s)-a[display all matching pages]' ) fi [[ $variant == (aix|solaris)* ]] || args+=( '(-C --config-file)'{-C+,--config-file=}'[specify configuration file]:configuration file:_files' "(${(j< >)modes})"{-w,--path,--where}'[display file locations]' ) [[ $variant == (aix|netbsd|openbsd)* ]] || args+=( # @todo FreeBSD allows this to be given multiple times '(-d --debug)'{-d,--debug}'[display debugging information]' ) [[ $variant == (darwin|dragonfly|freebsd|linux|solaris|aix)* ]] && args+=( '(-7 -H -t --ascii --html --troff)'{-t,--troff}'[format man page using troff]' ) [[ $variant == (darwin|linux)* ]] && args+=( "(${(j< >)modes})"{-K,--global-apropos}'[search for keyword in all pages]' '(-m --systems)'{-m+,--systems=}'[search manual of specified system]:operating system' ) [[ $variant == (darwin|dragonfly|freebsd)* ]] && args+=( '(: -)-h[display help information]' '(-a)-S+[specify manual sections to search]: :->sects' ) [[ $variant == (dragonfly|freebsd)* ]] && args+=( # @todo Could enumerate these '-m[search manual of specified architecture]:architecture' '-o[use non-localized man pages]' ) [[ $variant == (netbsd|openbsd)* ]] && args+=( '-c[disable paging]' '-m[augment manual search path]:manual search path:_sequence -s\: _directories' '(-a)-s+[specify manual section to search]: :->sects' ) [[ $variant == linux* ]] && args+=( '(: -)'{-\?,--help}'[display help information]' '(-7 -t -H -T -Z --ascii --html --troff --troff-device --ditroff)'{-7,--ascii}'[translate man pages for 7-bit terminal]' '(-D --default)'{-D,--default}'[reset man to default options]' # @todo Could enumerate these '(-E --encoding)'{-E+,--encoding=}'[specify output encoding]:encoding' '(-e --extension)'{-e+,--extension=}'[specify sub-extension]:sub-extension' '(-H --html)'{-H-,--html=-}'[produce HTML output for specified browser]::Web browser:_path_commands' '(-i -I --ignore-case --match-case)'{-i,--ignore-case}'[search case-insensitively]' '(-i -I --ignore-case --match-case)'{-I,--match-case}'[search case-sensitively]' '(-L --locale)'{-L+,--locale=}'[specify locale]:locale:_locales' "(${(j< >)modes})"{-l+,--local-file=}'[format and display specified file]:*:::manual file:_files' "!(${(j< >)modes})"{--location,--location-cat} '--names-only[match only page names (with --regex or --wildcard)]' '(--nh --no-hyphenation)'{--nh,--no-hyphenation}'[disable hyphenation]' '(--nj --no-justification)'{--nj,--no-justification}'[disable justification]' '--no-subpages[do not combine pairs of page names into single page name]' # @todo Could enumerate these "(${(j< >)modes})"{-R+,--recode=}'[output man page in specified encoding]:encoding' '(-r --prompt)'{-r+,--prompt=}'[specify prompt for less]:less prompt' '(-a --all --wildcard)--regex[treat page name as regular expression]' '(-a -S -s --all --sections)'{-S+,-s+,--sections=}'[specify manual sections to search]: :->sects' # @todo Could enumerate these '(-T -t --troff --troff-device)'{-T-,--troff-device=-}'[specify roff output device]::roff output device' '(-u --update)'{-u,--update}'[update database caches]' '(: -)--usage[display brief usage information]' '(: -)'{-V,--version}'[display version information]' "(${(j< >)modes})"{-W,--where-cat}'[display cat file locations]' '--warnings=[enable specified groff warnings]:groff warnings' '(-a --all --regex)--wildcard[treat page name as shell glob]' # @todo Could enumerate these '(-X --gxditview)'{-X-,--gxditview=-}'[display output in gxditview using specified DPI]::resolution (DPI) [75]' # @todo Post-process how? '(-t --troff -Z --ditroff)'{-Z,--ditroff}'[post-process output for chosen device]' ) [[ $variant == darwin* ]] && args+=( # We use _files here because browsers are usually in /Applications, which # typically isn't in PATH '-B+[specify browser to use for HTML files]:Web browser:_files' '-c[reformat source man page]' # @todo -d should be exclusive with this above '(-d)-D[display man page along with debugging information]' '(-D -F --preformat)'{-F,--preformat}'[format man page only (do not display)]' '-H+[specify command to render HTML as text]:HTML pager:_path_commands' # --help and --version are undocumented but functional '(: -)--help[display help information]' # -s is also undocumented; it's provided for compatibility with Solaris '!(-S)-s+: :->sects' '(: -)'{-v,--version}'[display version information]' "(${(j< >)modes})-W[display file locations, one per line, with no other information]" ) [[ $variant == netbsd* ]] && args+=( '-h[display only synopsis lines]' '(: -)-p[display manual search path]' '-S+[display only man pages with file names matching specified string]:search string' ) [[ $variant == openbsd* ]] && args+=( "(${(j< >)modes})-l+[format and display specified file]:*:::manual file:_files" # @todo Could enumerate these '-S[search manual of specified architecture]:architecture' ) [[ $variant == solaris* ]] && args+=( "(${(j< >)modes})-l[display file locations]" '-r[format man page only (do not display)]' '(-a)-s+[specify manual sections to search]: :->sects' # @todo Does this in fact want a file path? '-T+[format man page using specified macro package]:macro package:_files' ) [[ $variant == aix* ]] && args+=( '-c[display man page using cat]' '-F[display only first matching entry]' '-m[only search paths specified by -M/MANPATH]' '-r[search remotely]' ) # Strip (most) long options from non-Linux platforms if [[ $variant == darwin* ]]; then args=( ${(M)args:#((#s)|*\))(\*|)(-[^-]|--(help|path|pref|vers))*} ) elif [[ $variant != linux* ]]; then args=( ${(M)args:#((#s)|*\))(\*|)-[^-]*} ) fi fi _arguments -s -S : $args '*::: :->man' && return 0 [[ -n $state ]] || return 1 if (( ! $#_manpath )); then local mp mp=( ${(s.:.)$(manpath 2>/dev/null)} ) [[ "$mp" == *:* ]] && mp=( ${(s.:.)mp} ) if (( $#mp )); then _manpath=( $mp ) elif (( $#manpath )); then _manpath=( $manpath ) fi fi (( $#_manpath )) || _manpath=( /usr/man(-/) /(opt|usr)/(pkg|dt|share|X11R6|local)/(cat|)man(-/) ) # Override man path [[ -n ${opt_args[-M]} ]] && _manpath=( ${(s<:>)opt_args[-M]} ) # Augment man path [[ $variant == (netbsd|openbsd)* ]] && [[ -n ${opt_args[-m]} ]] && _manpath+=( ${(s<:>)opt_args[-m]} ) # `sman' is the SGML manual directory for Solaris 7. # 1M is system administrator commands on SVR4 mrd=(${^_manpath/\%L/${LANG:-En_US.ASCII}}/mandb(N)) # $sect is from the command line, the "3p" in "man 3p memcpy". # It may also be a |-joined (and later in the code "()"-enclosed) list of # section names. # TODO: disentangle this to always be an array. # $sect_dirname is from the filesystem, the "3" in "/usr/share/man/man3" # These are used by _man_pages local sect sect_dirname # Take care: We can't use the sections from these options until we've finished # completing them; otherwise (e.g.) -s1:<TAB> will give no results if [[ $service != man ]] || [[ $state == sects ]] || (( $+opt_args[-a] )) then sect='*' elif [[ $variant == (darwin|linux)* ]] && [[ -n ${opt_args[(i)-S|-s|--sections]} ]] then noinsert=1 sect=${opt_args[${opt_args[(i)-S|-s|--sections]}]//[:,]/|} elif [[ $variant == (netbsd|openbsd|solaris)* ]] && (( $+opt_args[-s] )) then noinsert=1 sect=${opt_args[-s]//,/|} elif [[ $variant == (dragonfly|freebsd)* ]] && (( $+opt_args[-S] )); then noinsert=1 sect=${opt_args[-S]//:/|} # It's only a small help, but, per man-db, we can avoid treating an initial # operand like `8139too` as a section name by ensuring that only the first # character is a digit. This doesn't do much for stuff like `2to3`, but we can # at least special-case a few common patterns for now elif (( CURRENT > 1 )) && [[ $variant != solaris* ]] && [[ ${${(Q)words[1]}##(2to3|7z)*} == ([0-9](|[^0-9[:punct:]]*)|[lnopx]) ]] then noinsert=1 sect=$words[1] elif [[ -n ${sect:=$MANSECT} ]]; then sect=${sect//:/|} fi # Colons may have been escaped sect=${(Q)sect} if [[ $sect = (<->*|[lnopx]) || $sect = *\|* ]]; then sects=( ${(s.|.)sect} ) # Most man implementations support partial matching of a page's # (sub-)section name — e.g., `3per` for `3perl`. The (sub-)section name may # or may not correspond to the directory name (most systems combine # sub-sections), but we'll assume that if it starts with a number and we're # not on Solaris (which doesn't support this feature at all) that we can do # a match against the leading number. This is irritating if you DO want the # exact sub-section specified, but unfortunately there's no way to determine # this programmatically — i guess we could add a style to control it () { for 1; do if [[ $OSTYPE == solaris* || $1 != <->* ]]; then dirs+=( $^_manpath/(sman|man|cat)$1(|.*)/ ) else dirs+=( $^_manpath/(sman|man|cat)${1%%[^0-9]#}*/ ) fi done } $sects sect=${(j<|>)sects} [[ $sect == *'|'* ]] && sect="($sect)" awk="\$2 == \"$sect\" {print \$1}" else sect= dirs=( $^_manpath/(sman|man|cat)*/ ) awk='{print $1}' fi # Ignore directories with no pages inside dirs=( ${^dirs}(#qFN) ) # Solaris 11 and on have a man-index directory that doesn't contain manpages dirs=( ${dirs:#*/man-index/} ) sects=( ${(o)${${dirs##*(man|cat)}%.*}%/} ) # If we've got this far, we can build our look-up table for descriptions of # the more common sections. Unless otherwise labelled, the more specific ones # come from Solaris or one of its variants (( $#sects )) && () { sect_descs=( 0 'library headers' 1 'general commands' 1cups 'CUPS commands' 1m 'maintenance commands' 1openssl 'OpenSSL commands' 2 'system calls' 3 'library functions' 3c 'C library functions' 3curses 'curses library functions' 3elf 'ELF library functions' 3f 'Fortran library functions' 3lua 'Lua features' # NetBSD 3mail 'mailbox library functions' 3openssl 'OpenSSL library functions' 3pam 'PAM library functions' 3pool 'pool configuration library functions' 3proc 'process control library functions' 3x11 'Xlib functions' 3xcurses 'curses library functions [X/Open]' 4 'devices and drivers' 5 'file formats and conventions' 3openssl 'OpenSSL configuration files' 6 'games' 7 'miscellanea' 8 'maintenance commands and procedures' 9 'kernel features' 9lua 'Lua kernel bindings' # NetBSD l 'local documentation' # AIX, etc. — TCL on some systems? n 'new documentation' # AIX, etc. o 'old documentation' # AIX, etc. p 'public documentation' # AIX, etc. x 'X11 features' ) # Add POSIX variants for 1 in ${(k)sect_descs}; do [[ $1 == <-> ]] || continue sect_descs+=( "${1}p" "${sect_descs[$1]} [POSIX]" ) done # Add OS-specific stuff that's too risky for or overrides the general list [[ $OSTYPE == darwin* ]] && sect_descs+=( n 'Tcl/Tk features' ) [[ $OSTYPE == openbsd* ]] && sect_descs+=( 3p 'Perl features' ) # @todo Oracle Solaris 11.4 adopts the BSD/Linux structure, making many of # these inaccurate — this should be handled accordingly in the future. If # OSTYPE isn't helpful (since other Solaris descendants may not follow # suit), we could perhaps use the presence of SysV-style sections under # _manpath as the determinant [[ $OSTYPE == solaris* ]] && sect_descs+=( 1t 'Tcl/Tk features' 3m 'mathematical library functions' 4 'file formats and conventions' 5 'miscellanea' 7 'special files' 7d 'devices' 7fs 'file systems' 7i 'ioctl requests' 7m 'STREAMS modules' 7p 'protocols' 9e 'driver entry points' 9f 'driver functions' 9p 'driver properties' 9s 'driver data structures' ) } [[ $state == sects ]] && { local s local -a specs (( $#sects )) || { _message -e sections 'manual section' return 1 } # Build specs from descriptions for s in $sects; do specs+=( "${s}:${(b)sect_descs[$s]}" ) done specs=( ${specs%:} ) if [[ $variant == (darwin|dragonfly|freebsd|linux)* ]]; then _sequence -s : _describe -t sections 'manual section' specs elif [[ $variant == solaris* ]]; then _sequence -s , _describe -t sections 'manual section' specs else _describe -t sections 'manual section' specs fi return } if zstyle -t ":completion:${curcontext}:manuals" separate-sections; then local d ret=1 (( $#sects )) || return 1 if [[ $PREFIX$SUFFIX == */* ]]; then _tags manuals.${^sects} files else _tags manuals.${^sects} fi while _tags; do for sect_dirname in $sects; do d=$sect_dirname (( $+sect_descs[$d] )) && d+=" (${sect_descs[$d]})" _requested manuals.$sect_dirname expl "manual page, section $d" _man_pages && ret=0 done [[ $PREFIX$SUFFIX == */* ]] && _requested files expl directory _files -/ && ret=0 (( ret )) || return 0 done ## To fall back to other sections' manpages when completing filenames, like ## the 'else' codepath does: # # if (( ret )) && [[ $PREFIX$SUFFIX == */* ]]; then # sect_dirname= # _wanted manuals expl 'manual page' _man_pages && return # fi return 1 else sect_dirname= _wanted manuals expl 'manual page' _man_pages fi } _man_pages() { local pages sopt # What files corresponding to manual pages can end in. local suf='.((?|<->*|ntcl)(|.gz|.bz2|.z|.Z|.lzma))' if [[ $PREFIX$SUFFIX = */* ]]; then # Easy way to test for versions of man that allow file names. # This can't be a normal man page reference. # Try to complete by glob first. if [[ -n $sect_dirname ]]; then _path_files -g "*.*$sect_dirname*(|.gz|.bz2|.z|.Z|.lzma)" "$expl[@]" else _path_files -g "*$suf" "$expl[@]" && return _path_files "$expl[@]" fi return $? fi pages=( ${(M)dirs:#*$sect_dirname/} ) pages=( ${^pages}/"*${sect:+.$sect"*"}" ) pages=( ${^~pages}(N:t) ) (($#mrd)) && pages[$#pages+1]=($(awk $awk $mrd)) # Remove any compression suffix, then remove the minimum possible string # beginning with .<->: that handles problem cases like files called # `POSIX.1.5'. [[ $variant = solaris* ]] && sopt='-s ' if ((CURRENT > 1 || noinsert)) || ! zstyle -t ":completion:${curcontext}:manuals.$sect_dirname" insert-sections then compadd "$@" - ${pages%$~suf} else compadd "$@" -P "$sopt$sect_dirname " - ${pages%$~suf} fi } _man "$@"
Close