Asciidoc: Import sys-utils man pages, part 2

This commit is contained in:
Mario Blättermann 2021-03-13 12:22:34 +01:00
parent 6d5b69483a
commit 1417968285
8 changed files with 2155 additions and 0 deletions

1388
sys-utils/mount.8.adoc Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,78 @@
= mountpoint(1)
:doctype: manpage
:man manual: User commands
:man source: util-linux {release-version}
:page-layout: base
:command: mountpoint
== NAME
mountpoint - see if a directory or file is a mountpoint
== SYNOPSIS
*mountpoint* [*-d*|*-q*] _directory_|_file_
*mountpoint* *-x* _device_
== DESCRIPTION
*mountpoint* checks whether the given _directory_ or _file_ is mentioned in the _/proc/self/mountinfo_ file.
== OPTIONS
*-d*, *--fs-devno*::
Show the major/minor numbers of the device that is mounted on the given directory.
*-q*, *--quiet*::
Be quiet - don't print anything.
*--nofollow*::
Do not follow symbolic link if it the last element of the _directory_ path.
*-x*, *--devno*::
Show the major/minor numbers of the given blockdevice on standard output.
*-V*, *--version*::
Display version information and exit.
*-h*, *--help*::
Display help text and exit.
== EXIT STATUS
*mountpoint* has the following exit status values:
*0*::
success; the directory is a mountpoint, or device is block device on *--devno*
*1*::
failure; incorrect invocation, permissions or system error
*32*::
failure; the directory is not a mountpoint, or device is not a block device on *--devno*
== ENVIRONMENT
LIBMOUNT_DEBUG=all::
enables libmount debug output.
== NOTES
The util-linux *mountpoint* implementation was written from scratch for libmount. The original version for sysvinit suite was written by Miquel van Smoorenburg.
== AUTHORS
mailto:kzak@redhat.com[Karel Zak]
== SEE ALSO
*mount*(8)
include::../man-common/bugreports.adoc[]
include::../man-common/footer.adoc[]
ifdef::translation[]
include::../man-common/translation.adoc[]
endif::[]

147
sys-utils/nsenter.1.adoc Normal file
View File

@ -0,0 +1,147 @@
= nsenter(1)
:doctype: manpage
:man manual: User commands
:man source: util-linux {release-version}
:page-layout: base
:command: nsenter
== NAME
nsenter - run program in different namespaces
== SYNOPSIS
*nsenter* [_options_] [_program_ [_arguments_]]
== DESCRIPTION
The *nsenter* command executes _program_ in the namespace(s) that are specified in the command-line options (described below). If _program_ is not given, then "$\{SHELL}" is run (default: _/bin/sh_).
Enterable namespaces are:
*mount namespace*::
Mounting and unmounting filesystems will not affect the rest of the system, except for filesystems which are explicitly marked as shared (with *mount --make-shared*; see _/proc/self/mountinfo_ for the *shared* flag). For further details, see mount_namespaces7 and the discussion of the *CLONE_NEWNS* flag in *clone*(2).
*UTS namespace*::
Setting hostname or domainname will not affect the rest of the system. For further details, see *uts_namespaces*(7).
*IPC namespace*::
The process will have an independent namespace for POSIX message queues as well as System V message queues, semaphore sets and shared memory segments. For further details, see *ipc_namespaces*(7).
*network namespace*::
The process will have independent IPv4 and IPv6 stacks, IP routing tables, firewall rules, the _/proc/net_ and _/sys/class/net_ directory trees, sockets, etc. For further details, see *network_namespaces*(7).
*PID namespace*::
Children will have a set of PID to process mappings separate from the *nsenter* process. *nsenter* will fork by default if changing the PID namespace, so that the new program and its children share the same PID namespace and are visible to each other. If *--no-fork* is used, the new program will be exec'ed without forking. For further details, see *pid_namespaces*(7).
*user namespace*::
The process will have a distinct set of UIDs, GIDs and capabilities. For further details, see *user_namespaces*(7).
*cgroup namespace*::
The process will have a virtualized view of _/proc/self/cgroup_, and new cgroup mounts will be rooted at the namespace cgroup root. For further details, see *cgroup_namespaces*(7).
*time namespace*::
The process can have a distinct view of *CLOCK_MONOTONIC* and/or *CLOCK_BOOTTIME* which can be changed using _/proc/self/timens_offsets_. For further details, see *time_namespaces*(7).
== OPTIONS
Various of the options below that relate to namespaces take an optional _file_ argument. This should be one of the _/proc/[pid]/ns/+++*+++_ files described in *namespaces*(7), or the pathname of a bind mount that was created on one of those files.
*-a*, *--all*::
Enter all namespaces of the target process by the default _/proc/[pid]/ns/+++*+++_ namespace paths. The default paths to the target process namespaces may be overwritten by namespace specific options (e.g., *--all --mount*=[_path_]). +
The user namespace will be ignored if the same as the caller's current user namespace. It prevents a caller that has dropped capabilities from regaining those capabilities via a call to setns(). See *setns*(2) for more details.
*-t*, *--target* _PID_::
Specify a target process to get contexts from. The paths to the contexts specified by _pid_ are: +
____
/proc/_pid_/ns/mnt;;
the mount namespace
/proc/_pid_/ns/uts;;
the UTS namespace
/proc/_pid_/ns/ipc;;
the IPC namespace
/proc/_pid_/ns/net;;
the network namespace
/proc/_pid_/ns/pid;;
the PID namespace
/proc/_pid_/ns/user;;
the user namespace
/proc/_pid_/ns/cgroup;;
the cgroup namespace
/proc/_pid_/ns/time;;
the time namespace
/proc/_pid_/root;;
the root directory
/proc/_pid_/cwd;;
the working directory respectively
____
*-m*, *--mount*[=_file_]::
Enter the mount namespace. If no file is specified, enter the mount namespace of the target process. If _file_ is specified, enter the mount namespace specified by _file_.
*-u*, *--uts*[=_file_]::
Enter the UTS namespace. If no file is specified, enter the UTS namespace of the target process. If _file_ is specified, enter the UTS namespace specified by _file_.
*-i*, *--ipc*[=_file_]::
Enter the IPC namespace. If no file is specified, enter the IPC namespace of the target process. If _file_ is specified, enter the IPC namespace specified by _file_.
*-n*, *--net*[=_file_]::
Enter the network namespace. If no file is specified, enter the network namespace of the target process. If _file_ is specified, enter the network namespace specified by _file_.
*-p*, *--pid*[=_file_]::
Enter the PID namespace. If no file is specified, enter the PID namespace of the target process. If _file_ is specified, enter the PID namespace specified by _file_.
*-U*, *--user*[=_file_]::
Enter the user namespace. If no file is specified, enter the user namespace of the target process. If _file_ is specified, enter the user namespace specified by _file_. See also the *--setuid* and *--setgid* options.
*-C*, *--cgroup*[=_file_]::
Enter the cgroup namespace. If no file is specified, enter the cgroup namespace of the target process. If _file_ is specified, enter the cgroup namespace specified by _file_.
*-T*, *--time*[=_file_]::
Enter the time namespace. If no file is specified, enter the time namespace of the target process. If _file_ is specified, enter the time namespace specified by _file_.
*-G*, *--setgid* _gid_::
Set the group ID which will be used in the entered namespace and drop supplementary groups. *nsenter* always sets GID for user namespaces, the default is 0.
*-S*, *--setuid* _uid_::
Set the user ID which will be used in the entered namespace. nsenter1 always sets UID for user namespaces, the default is 0.
*--preserve-credentials*::
Don't modify UID and GID when enter user namespace. The default is to drops supplementary groups and sets GID and UID to 0.
*-r*, *--root*[=_directory_]::
Set the root directory. If no directory is specified, set the root directory to the root directory of the target process. If directory is specified, set the root directory to the specified directory.
*-w*, *--wd*[=_directory_]::
Set the working directory. If no directory is specified, set the working directory to the working directory of the target process. If directory is specified, set the working directory to the specified directory.
*-F*, *--no-fork*::
Do not fork before exec'ing the specified program. By default, when entering a PID namespace, *nsenter* calls *fork* before calling *exec* so that any children will also be in the newly entered PID namespace.
*-Z*, *--follow-context*::
Set the SELinux security context used for executing a new process according to already running process specified by *--target* PID. (The util-linux has to be compiled with SELinux support otherwise the option is unavailable.)
*-V*, *--version*::
Display version information and exit.
*-h*, *--help*::
Display help text and exit.
== AUTHORS
mailto:biederm@xmission.com[Eric Biederman] +
mailto:kzak@redhat.com[Karel Zak]
== SEE ALSO
*clone*(2),
*setns*(2),
*namespaces*(7)
include::../man-common/bugreports.adoc[]
include::../man-common/footer.adoc[]
ifdef::translation[]
include::../man-common/translation.adoc[]
endif::[]

View File

@ -0,0 +1,76 @@
= pivot_root(8)
:doctype: manpage
:man manual: User commands
:man source: util-linux {release-version}
:page-layout: base
:command: pivot_root
== NAME
pivot_root - change the root filesystem
== SYNOPSIS
*pivot_root* _new_root_ _put_old_
== DESCRIPTION
*pivot_root* moves the root file system of the current process to the directory _put_old_ and makes _new_root_ the new root file system. Since *pivot_root*(8) simply calls *pivot_root*(2), we refer to the man page of the latter for further details.
Note that, depending on the implementation of *pivot_root*, root and current working directory of the caller may or may not change. The following is a sequence for invoking *pivot_root* that works in either case, assuming that *pivot_root* and *chroot* are in the current *PATH*:
cd _new_root_ pivot_root . _put_old_ exec chroot . _command_
Note that *chroot* must be available under the old root and under the new root, because *pivot_root* may or may not have implicitly changed the root directory of the shell.
Note that *exec chroot* changes the running executable, which is necessary if the old root directory should be unmounted afterwards. Also note that standard input, output, and error may still point to a device on the old root file system, keeping it busy. They can easily be changed when invoking *chroot* (see below; note the absence of leading slashes to make it work whether *pivot_root* has changed the shell's root or not).
== OPTIONS
*-V*, *--version*::
Display version information and exit.
*-h*, *--help*::
Display help text and exit.
== EXAMPLE
Change the root file system to _/dev/hda1_ from an interactive shell:
....
mount /dev/hda1 /new-root
cd /new-root
pivot_root . old-root
exec chroot . sh <dev/console >dev/console 2>&1
umount /old-root
....
Mount the new root file system over NFS from 10.0.0.1:/my_root and run *init*:
....
ifconfig lo 127.0.0.1 up # for portmap
# configure Ethernet or such
portmap # for lockd (implicitly started by mount)
mount -o ro 10.0.0.1:/my_root /mnt
killall portmap # portmap keeps old root busy
cd /mnt
pivot_root . old_root
exec chroot . sh -c 'umount /old_root; exec /sbin/init' BSOL
<dev/console >dev/console 2>&1
....
== SEE ALSO
*chroot*(1),
*pivot_root*(2),
*mount*(8),
*switch_root*(8),
*umount*(8)
include::../man-common/bugreports.adoc[]
include::../man-common/footer.adoc[]
ifdef::translation[]
include::../man-common/translation.adoc[]
endif::[]

147
sys-utils/prlimit.1.adoc Normal file
View File

@ -0,0 +1,147 @@
////
prlimit.1 --
Copyright 2011 Davidlohr Bueso <dave@gnu.org>
May be distributed under the GNU General Public License
////
= prlimit(1)
:doctype: manpage
:man manual: User commands
:man source: util-linux {release-version}
:page-layout: base
:command: prlimit
== NAME
prlimit - get and set process resource limits
== SYNOPSIS
*prlimit* [_options_] [*--resource*=_limits_]] [*--pid* _PID_]
*prlimit* [_options_] [*--resource*=_limits_]] _command_ [_argument_...]
== DESCRIPTION
Given a process ID and one or more resources, *prlimit* tries to retrieve and/or modify the limits.
When _command_ is given, *prlimit* will run this command with the given arguments.
The _limits_ parameter is composed of a soft and a hard value, separated by a colon (:), in order to modify the existing values. If no _limits_ are given, *prlimit* will display the current values. If one of the values is not given, then the existing one will be used. To specify the unlimited or infinity limit (*RLIM_INFINITY*), the -1 or 'unlimited' string can be passed.
Because of the nature of limits, the soft limit must be lower or equal to the high limit (also called the ceiling). To see all available resource limits, refer to the RESOURCE OPTIONS section.
* _soft_+++:+++_hard_ Specify both limits.
* _soft_+++:+++ Specify only the soft limit.
* +++:+++_hard_ Specify only the hard limit.
* _value_ Specify both limits to the same value.
== GENERAL OPTIONS
*-h, --help*::
Display help text and exit.
*--noheadings*::
Do not print a header line.
*-o, --output* _list_::
Define the output columns to use. If no output arrangement is specified, then a default set is used. Use *--help* to get a list of all supported columns.
*-p, --pid*::
Specify the process id; if none is given, the running process will be used.
*--raw*::
Use the raw output format.
*--verbose*::
Verbose mode.
*-V, --version*::
Display version information and exit.
== RESOURCE OPTIONS
*-c, --core*[=_limits_]::
Maximum size of a core file.
*-d, --data*[=_limits_]::
Maximum data size.
*-e, --nice*[=_limits_]::
Maximum nice priority allowed to raise.
*-f, --fsize*[=_limits_]::
Maximum file size.
*-i, --sigpending*[=_limits_]::
Maximum number of pending signals.
*-l, --memlock*[=_limits_]::
Maximum locked-in-memory address space.
*-m, --rss*[=_limits_]::
Maximum Resident Set Size (RSS).
*-n, --nofile*[=_limits_]::
Maximum number of open files.
*-q, --msgqueue*[=_limits_]::
Maximum number of bytes in POSIX message queues.
*-r, --rtprio*[=_limits_]::
Maximum real-time priority.
*-s, --stack*[=_limits_]::
Maximum size of the stack.
*-t, --cpu*[=_limits_]::
CPU time, in seconds.
*-u, --nproc*[=_limits_]::
Maximum number of processes.
*-v, --as*[=_limits_]::
Address space limit.
*-x, --locks*[=_limits_]::
Maximum number of file locks held.
*-y, --rttime*[=_limits_]::
Timeout for real-time tasks.
== NOTES
The *prlimit* system call is supported since Linux 2.6.36, older kernels will break this program.
== EXAMPLES
*prlimit --pid 13134*::
Display limit values for all current resources.
*prlimit --pid 13134 --rss --nofile=1024:4095*::
Display the limits of the RSS, and set the soft and hard limits for the number of open files to 1024 and 4095, respectively.
*prlimit --pid 13134 --nproc=512:*::
Modify only the soft limit for the number of processes.
*prlimit --pid $$ --nproc=unlimited*::
Set for the current process both the soft and ceiling values for the number of processes to unlimited.
*prlimit --cpu=10 sort -u hugefile*::
Set both the soft and hard CPU time limit to ten seconds and run 'sort'.
== AUTHORS
mailto:dave@gnu.org[Davidlohr Bueso] - In memory of Dennis M. Ritchie.
== SEE ALSO
*ulimit*(1p),
*prlimit*(2)
include::../man-common/bugreports.adoc[]
include::../man-common/footer.adoc[]
ifdef::translation[]
include::../man-common/translation.adoc[]
endif::[]

View File

@ -0,0 +1,119 @@
= readprofile(8)
:doctype: manpage
:man manual: User commands
:man source: util-linux {release-version}
:page-layout: base
:command: readprofile
== NAME
readprofile - read kernel profiling information
== SYNOPSIS
*readprofile* [_options_]
== VERSION
This manpage documents version 2.0 of the program.
== DESCRIPTION
The *readprofile* command uses the _/proc/profile_ information to print ascii data on standard output. The output is organized in three columns: the first is the number of clock ticks, the second is the name of the C function in the kernel where those many ticks occurred, and the third is the normalized `load' of the procedure, calculated as a ratio between the number of ticks and the length of the procedure. The output is filled with blanks to ease readability.
== OPTIONS
*-a*, *--all*::
Print all symbols in the mapfile. By default the procedures with reported ticks are not printed.
*-b*, *--histbin*::
Print individual histogram-bin counts.
*-i*, *--info*::
Info. This makes *readprofile* only print the profiling step used by the kernel. The profiling step is the resolution of the profiling buffer, and is chosen during kernel configuration (through *make config*), or in the kernel's command line. If the *-t* (terse) switch is used together with *-i* only the decimal number is printed.
*-m*, *--mapfile* _mapfile_::
Specify a mapfile, which by default is _/usr/src/linux/System.map_. You should specify the map file on cmdline if your current kernel isn't the last one you compiled, or if you keep System.map elsewhere. If the name of the map file ends with _.gz_ it is decompressed on the fly.
*-M*, *--multiplier* _multiplier_::
On some architectures it is possible to alter the frequency at which the kernel delivers profiling interrupts to each CPU. This option allows you to set the frequency, as a multiplier of the system clock frequency, HZ. Linux 2.6.16 dropped multiplier support for most systems. This option also resets the profiling buffer, and requires superuser privileges.
*-p*, *--profile* _pro-file_::
Specify a different profiling buffer, which by default is _/proc/profile_. Using a different pro-file is useful if you want to `freeze' the kernel profiling at some time and read it later. The _/proc/profile_ file can be copied using *cat*(1) or *cp*(1). There is no more support for compressed profile buffers, like in *readprofile-1.1*, because the program needs to know the size of the buffer in advance.
*-r*, *--reset*::
Reset the profiling buffer. This can only be invoked by root, because _/proc/profile_ is readable by everybody but writable only by the superuser. However, you can make *readprofile* set-user-ID 0, in order to reset the buffer without gaining privileges.
*-s, --counters*::
Print individual counters within functions.
*-v*, *--verbose*::
Verbose. The output is organized in four columns and filled with blanks. The first column is the RAM address of a kernel function, the second is the name of the function, the third is the number of clock ticks and the last is the normalized load.
*-V*, *--version*::
Display version information and exit.
*-h*, *--help*::
Display help text and exit.
== FILES
_/proc/profile_ A binary snapshot of the profiling buffer.
_/usr/src/linux/System.map_ The symbol table for the kernel.
_/usr/src/linux/*_ The program being profiled :-)
== BUGS
*readprofile* only works with a 1.3.x or newer kernel, because _/proc/profile_ changed in the step from 1.2 to 1.3.
This program only works with ELF kernels. The change for a.out kernels is trivial, and left as an exercise to the a.out user.
To enable profiling, the kernel must be rebooted, because no profiling module is available, and it wouldn't be easy to build. To enable profiling, you can specify *profile*=_2_ (or another number) on the kernel commandline. The number you specify is the two-exponent used as profiling step.
Profiling is disabled when interrupts are inhibited. This means that many profiling ticks happen when interrupts are re-enabled. Watch out for misleading information.
== EXAMPLE
Browse the profiling buffer ordering by clock ticks:
....
readprofile | sort -nr | less
....
Print the 20 most loaded procedures:
....
readprofile | sort -nr +2 | head -20
....
Print only filesystem profile:
....
readprofile | grep _ext2
....
Look at all the kernel information, with ram addresses:
....
readprofile -av | less
....
Browse a `frozen' profile buffer for a non current kernel:
....
readprofile -p ~/profile.freeze -m /zImage.map.gz
....
Request profiling at 2kHz per CPU, and reset the profiling buffer:
....
sudo readprofile -M 20
....
include::../man-common/bugreports.adoc[]
include::../man-common/footer.adoc[]
ifdef::translation[]
include::../man-common/translation.adoc[]
endif::[]

110
sys-utils/renice.1.adoc Normal file
View File

@ -0,0 +1,110 @@
////
Copyright (c) 1983, 1991, 1993
The Regents of the University of California. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software
must display the following acknowledgement:
This product includes software developed by the University of
California, Berkeley and its contributors.
4. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
@(#)renice.8 8.1 (Berkeley) 6/9/93
////
= renice(1)
:doctype: manpage
:man manual: User commands
:man source: util-linux {release-version}
:page-layout: base
:command: renice
== NAME
renice - alter priority of running processes
== SYNOPSIS
*renice* [*-n*] _priority_ [*-g*|*-p*|*-u*] _identifier_...
== DESCRIPTION
*renice* alters the scheduling priority of one or more running processes. The first argument is the _priority_ value to be used. The other arguments are interpreted as process IDs (by default), process group IDs, user IDs, or user names. *renice*'ing a process group causes all processes in the process group to have their scheduling priority altered. *renice*'ing a user causes all processes owned by the user to have their scheduling priority altered.
== OPTIONS
*-n*, *--priority* _priority_::
Specify the scheduling _priority_ to be used for the process, process group, or user. Use of the option *-n* or *--priority* is optional, but when used it must be the first argument.
*-g*, *--pgrp*::
Interpret the succeeding arguments as process group IDs.
*-p*, *--pid*::
Interpret the succeeding arguments as process IDs (the default).
*-u*, *--user*::
Interpret the succeeding arguments as usernames or UIDs.
*-V*, *--version*::
Display version information and exit.
*-h*, *--help*::
Display help text and exit.
== FILES
_/etc/passwd_::
to map user names to user IDs
== NOTES
Users other than the superuser may only alter the priority of processes they own. Furthermore, an unprivileged user can only _increase_ the "nice value" (i.e., choose a lower priority) and such changes are irreversible unless (since Linux 2.6.12) the user has a suitable "nice" resource limit (see *ulimit*(1p) and *getrlimit*(2)).
The superuser may alter the priority of any process and set the priority to any value in the range -20 to 19. Useful priorities are: 19 (the affected processes will run only when nothing else in the system wants to), 0 (the "base" scheduling priority), anything negative (to make things go very fast).
== HISTORY
The *renice* command appeared in 4.0BSD.
== EXAMPLES
The following command would change the priority of the processes with PIDs 987 and 32, plus all processes owned by the users daemon and root:
*renice +1 987 -u daemon root -p 32*
== SEE ALSO
*nice*(1),
*chrt*(1),
*getpriority*(2),
*setpriority*(2),
*credentials*(7),
*sched*(7)
include::../man-common/bugreports.adoc[]
include::../man-common/footer.adoc[]
ifdef::translation[]
include::../man-common/translation.adoc[]
endif::[]

90
sys-utils/rfkill.8.adoc Normal file
View File

@ -0,0 +1,90 @@
= rfkill(8)
:doctype: manpage
:man manual: User commands
:man source: util-linux {release-version}
:page-layout: base
:command: rfkill
== NAME
rfkill - tool for enabling and disabling wireless devices
== SYNOPSIS
*rfkill* [_options_] [_command_] [_ID_|_type_ ...]
== DESCRIPTION
*rfkill* lists, enabling and disabling wireless devices.
The command "list" output format is deprecated and maintained for backward compatibility only. The new output format is the default when no command is specified or when the option *--output* is used.
The default output is subject to change. So whenever possible, you should avoid using default outputs in your scripts. Always explicitly define expected columns by using the *--output* option together with a columns list in environments where a stable output is required.
== OPTIONS
*-J*, *--json*::
Use JSON output format.
*-n*, *--noheadings*::
Do not print a header line.
*-o*, *--output*::
Specify which output columns to print. Use *--help* to get a list of available columns.
*--output-all*::
Output all available columns.
*-r*, *--raw*::
Use the raw output format.
*--help*::
Display help text and exit.
*--version*::
Display version information and exit.
== COMMANDS
*help*::
Display help text and exit.
*event*::
Listen for rfkill events and display them on stdout.
*list* [__id__|_type_ ...]::
List the current state of all available devices. The command output format is deprecated, see the section DESCRIPTION. It is a good idea to check with *list* command _id_ or _type_ scope is appropriate before setting *block* or *unblock*. Special _all_ type string will match everything. Use of multiple _ID_ or _type_ arguments is supported.
**block id**|*type* [...]::
Disable the corresponding device.
**unblock id**|*type* [...]::
Enable the corresponding device. If the device is hard-blocked, for example via a hardware switch, it will remain unavailable though it is now soft-unblocked.
== EXAMPLE
....
rfkill --output ID,TYPE
rfkill block all
rfkill unblock wlan
rfkill block bluetooth uwb wimax wwan gps fm nfc
....
== AUTHORS
*rfkill* was originally written by mailto:johannes@sipsolutions.net[Johannes Berg] and mailto:marcel@holtmann.org[Marcel Holtmann] The code has been later modified by mailto:kerolasa@iki.fi[Sami Kerola] and mailto:kzak@redhat.com[Karel Zak] for the util-linux project.
This manual page was written by mailto:linux@youmustbejoking.demon.co.uk[Darren Salt] for the Debian project (and may be used by others).
== SEE ALSO
*powertop*(8),
*systemd-rfkill*(8),
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/driver-api/rfkill.rst[Linux kernel documentation]
include::../man-common/bugreports.adoc[]
include::../man-common/footer.adoc[]
ifdef::translation[]
include::../man-common/translation.adoc[]
endif::[]