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.lscpu
: Shows CPU architecture information. Startedlsipc
: Lists IPC facilities.lslocks
: Lists system locks.lsmem
: Lists memory ranges and status.lsns
: Lists namespaces.
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. Startedfsck
: 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.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.kill
: Sends signals to processes.renice
: Alters process priority.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.lslogins
: Displays user information.mesg
: Controls write access to terminal.setsid
: Runs a program in a new session.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.ul
: 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.
Note:
- /bin/more is already implemented in https://github.com/uutils/coreutils
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 --release
util-linux is licensed under the MIT License - see the LICENSE
file for details