The command
tailf is dead thing. (RIP ... years ago I had nice time to improve it with inotify:) You have to use "tail -f" from coreutils project.
blkzone -- this new command is excellent example of the open source collaboration. The command has been developed by people from WD, Seagate and SanDisk (thanks to Shaun Tancheff, Damien Le Moal and others). The goal is to have command line interface to run zone commands on block devices that support Zoned Block Commands (ZBC) or Zoned-device ATA Commands (ZAC). For now the supported zone commands are "reset" and "report". See
http://www.storagereview.com/methods_of_smr_data_management for more details about zones.
fincore (file in core)-- this is nice useful command to get information about
number of memory pages used by file content. For example my fulltext email DB:
# fincore ~/Mail/Maildir/.notmuch/xapian/*.DB
RES PAGES SIZE FILE
60.1M 15392 4.6G /home/kzak/Mail/Maildir/.notmuch/xapian/position.DB
687.4M 175982 3.5G /home/kzak/Mail/Maildir/.notmuch/xapian/postlist.DB
328K 82 18.6M /home/kzak/Mail/Maildir/.notmuch/xapian/record.DB
190.5M 48758 2.1G /home/kzak/Mail/Maildir/.notmuch/xapian/termlist.DB
Fortunately RAM is cheap :) Thanks to Masatake Yamato from Red Hat.
lsmem (list memory) and
chmem (change memory) -- another new commands. The commands have been originally
implemented in Perl for s390-tools, now re-implemented in C in more generic way
and to be usable on another architectures too. (thanks to Clemens von Mann and Heiko
Carstens from IBM.)
The command
fallocate supports an "insert range" operation now.
We continue on
hwclock cleanup, some things in the code have been simplified,
dead and useless things removed. (thanks to J William Piggott)
The code behind "
column -t|--table" uses libsmartcols now. This change
dramatically increased number of available features for table formatting. Now
it's possible to define header for columns, truncate text in cells, align text
to the right, change order of columns, JSON output or create tree-like output.
Now almost all libsmartcols features are available on command line, example:
pstree-like output:
$ ps -h -o pid,ppid,comm | column --table --tree 3 --tree-id 1 --tree-parent 2 --table-hide 2 --table-right 1
1799 bash
2254 bash
28427 └─mutt
4263 └─vim
7409 bash
10641 └─man
10657 └─less
16775 bash
11486 ├─ps
11487 └─column
diskstat:
$ column /proc/diskstats --table --table-columns MAJ,MIN,NAME,READ-COMP,\
READ-MERG,READ-SECS,READ-TIME,WRITE-COMP,WRITE-MERG,WRITE-SECS,\
WRITE-TIME,IO-CURR,IO-TIME,WTIME \
--table-hide MAJ,MIN \
--table-right 4,5,6,7,8,9,10,11,12,13,14 \
NAME READ-COMP READ-MERG READ-SECS READ-TIME WRITE-COMP WRITE-MERG WRITE-SECS WRITE-TIME IO-CURR IO-TIME WTIME
sda 13486466 149085 1288469300 9715620 45556082 7788088 1600182109 150180178 0 12935701 159902109
sda1 463 170 19002 131 91 0 161 331 0 334 462
sda2 778 16 63140 276 434 261 507574 12616 0 2382 12889
sda3 10710224 109592 1052352266 8018950 43983768 7022717 1153182094 126210185 0 11002854 134299501
sda4 1630396 32476 67166050 1039837 1197142 665798 343331344 23264993 0 2148041 24306932
sda5 1140435 241 168747746 655625 225373 73891 102920032 637906 0 627834 1293105
sda6 3703 6590 99512 691 4691 25421 240904 8418 0 6402 9108
sdb 448 0 22506 3088 1887 4 128 275 0 1449 3363
sdb1 404 0 19370 3035 12 4 128 60 0 1187 3095
loop0 22086 0 347311 2025 10738 0 844888 2226 0 1129 4265
loop1 947 0 26940 325 1100 0 133316 734 0 411 1058
md8 0 0 0 0 0 0 0 0 0 0 0
passwd in JSON:
$ grep -v nologin /etc/passwd | \
column --separator : --table --table-name passwd --json \
--table-columns USERNAME,PWD,UID,GID,GECOS,HOME,SHELL \
--table-hide PWD
{
"passwd": [
{"username": "root", "uid": "0", "gid": "0", "gecos": "root", "home": "/root", "shell": "/bin/bash"},
{"username": "sync", "uid": "5", "gid": "0", "gecos": "sync", "home": "/sbin", "shell": "/bin/sync"},
{"username": "shutdown", "uid": "6", "gid": "0", "gecos": "shutdown", "home": "/sbin", "shell": "/sbin/shutdown"},
{"username": "halt", "uid": "7", "gid": "0", "gecos": "halt", "home": "/sbin", "shell": "/sbin/halt"},
{"username": "kzak", "uid": "1000", "gid": "1000", "gecos": "Karel Zak,Home,,,", "home": "/home/kzak", "shell": "/bin/bash"},
{"username": "gamer", "uid": "1001", "gid": "1001", "gecos": null, "home": "/home/gamer", "shell": "/bin/bash"},
{"username": "test", "uid": "1002", "gid": "1002", "gecos": null, "home": "/home/test", "shell": "/bin/bash"}
]
}
findmnt-like output:
$ column /proc/self/mountinfo \
--table-columns ID,PARENT,MAJMIN,ROOT,TARGET,VFS-OPTS,PROP,SEP,TYPE,SOURCE,FS-OPTS \
--table-hide=SEP,ID,PARENT,ROOT,PROP,FS-OPTS,MAJMIN \
--table-order TARGET,SOURCE,TYPE,VFS-OPTS \
--tree TARGET \
--tree-id ID \
--tree-parent PARENT
TARGET SOURCE TYPE VFS-OPTS
/ /dev/sda4 ext4 rw,relatime
├─/sys sysfs sysfs rw,nosuid,nodev,noexec,relatime
│ ├─/sys/kernel/security securityfs securityfs rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/cgroup tmpfs tmpfs ro,nosuid,nodev,noexec
│ │ ├─/sys/fs/cgroup/systemd cgroup cgroup rw,nosuid,nodev,noexec,relatime
│ │ ├─/sys/fs/cgroup/blkio cgroup cgroup rw,nosuid,nodev,noexec,relatime
│ │ ├─/sys/fs/cgroup/cpu,cpuacct cgroup cgroup rw,nosuid,nodev,noexec,relatime
│ │ ├─/sys/fs/cgroup/devices cgroup cgroup rw,nosuid,nodev,noexec,relatime
│ │ ├─/sys/fs/cgroup/hugetlb cgroup cgroup rw,nosuid,nodev,noexec,relatime
│ │ ├─/sys/fs/cgroup/pids cgroup cgroup rw,nosuid,nodev,noexec,relatime
│ │ ├─/sys/fs/cgroup/memory cgroup cgroup rw,nosuid,nodev,noexec,relatime
│ │ ├─/sys/fs/cgroup/cpuset cgroup cgroup rw,nosuid,nodev,noexec,relatime
... and so on ...
Thanks to all contributors. The next version v2.31 is planned for September 2017.