This projects aims at doing the same as https://github.com/uutils/coreutils for util-linux.
We are rewriting these tools in Rust as drop-in replacements.
First, reimplement the most important tools from util-linux:
-
dmesg: Displays kernel messages. (started) -
lscpu: Shows CPU architecture information. (started) -
lsipc: Lists IPC facilities. (started) -
lslocks: Lists system locks. (started) -
lsmem: Lists memory ranges and status. (started) -
lsns: Lists namespaces. (started)
-
chcpu: Manages CPU state. -
rtcwake: Manages system sleep states. -
zramctl: Manages zram devices. -
wdctl: Shows watchdog status. -
chmem: Manages kernel memory usage.
-
findmnt: Lists mounted filesystems. -
mountpoint: Checks if a directory is a mountpoint. (started) -
fsck: Checks and repairs filesystems. -
fsfreeze: Freezes/unfreezes filesystems. -
fstrim: Discards unused blocks on filesystems. -
wipefs: Wipes filesystem signatures.
-
blkdiscard: Discards sectors on a device. -
blkid: Identifies block device attributes. -
blkzone: Manages zoned block device parameters. -
blockdev: Performs block device operations. (started) -
mkswap: Sets up swap space. -
swaplabel: Manages swap space labels. -
addpart: Adds a partition. -
delpart: Deletes a partition. -
partx: Manages partition entries. -
resizepart: Resizes a partition.
-
runuser: Runs a shell with different user/group IDs. -
sulogin: Provides single-user mode login. -
chrt: Manages real-time process attributes. -
ionice: Sets process I/O scheduling class/priority. -
renice: Alters process priority. (started) -
prlimit: Sets/gets process resource limits. -
taskset: Sets/gets process CPU affinity. -
uclampset: Manages process utilization clamping.
-
su: Changes user ID or becomes superuser. -
agetty: Manages TTYs for login prompts. -
ctrlaltdel: Configures Ctrl-Alt-Del action. -
pivot_root: Changes the root filesystem. -
switch_root: Switches to a different root filesystem. -
last: Lists last logged-in users. (started) -
lslogins: Displays user information. -
mesg: Controls write access to terminal. -
setsid: Runs a program in a new session. (started) -
setterm: Sets terminal attributes. -
getty: Manages virtual console login prompts.
-
ipcmk: Creates IPC resources. -
ipcrm: Removes IPC resources. -
ipcs: Shows IPC facilities status. -
nsenter: Enters different namespaces.
-
lsblk: Lists block devices. -
fallocate: Preallocates file space. -
flock: Manages file locks. -
getopt: Parses command options. -
hardlink: Creates hard links. -
mcookie: Generates random numbers. -
namei: Follows a pathname to its endpoint. -
rename: Renames files. -
rev: Reverses lines in a file. -
setarch: Sets architecture emulation. -
setpriv: Runs a program with different privileges. -
unshare: Runs a program with unshared namespaces. -
utmpdump: Dumps UTMP/WTMP files. -
whereis: Locates binaries, sources, and manuals. -
ldattach: Attaches line discipline to a serial line. -
readprofile: Reads kernel profiling info. -
i386, linux32, linux64, x86_64: Set personality flags for execution environment. -
uuidgen: Generate different types of UUID. (started)
Note:
killandmoreis not implemented at here to avoid confliction with https://github.com/uutils/coreutils Most Linux distributions do not use them from GNU coreutils. But we have then as coreutils currently.
Project: http://www.kernel.org/pub/linux/utils/util-linux/
Ensure you have Rust installed on your system. You can install Rust through rustup.
Clone the repository and build the project using Cargo:
git clone https://github.com/uutils/util-linux.git
cd util-linux
cargo build --release
cargo run --releaseutil-linux is licensed under the MIT License - see the LICENSE file for details