Credit: Thinkstock Some Linux commands that might not be sitting in your top favorites list can still come in very handy in a number of ways. In today’s post, we’re going to examine some interesting though somewhat unusual command options. Looking at dates — with a twist The date command is certainly one that is used quite often, but not necessarily with options that reformat the command’s output. In the date commands shown below, we display the normal output and then reformat the date in a format that makes it more convenient to create files or directories that can be easily sorted by date. $ date Mon Mar 27 10:51:11 EDT 2017 $ date +%Y-%m-%d 2017-03-27 $ ls -l | grep 2017-03-2 drwxrwxr-x 5 graycat graycat 4096 Mar 20 17:00 2017-03-20 drwxrwxr-x 5 graycat graycat 4096 Mar 21 17:00 2017-03-21 drwxrwxr-x 5 graycat graycat 4096 Mar 22 17:00 2017-03-22 drwxrwxr-x 5 graycat graycat 4096 Mar 23 17:00 2017-03-23 drwxrwxr-x 5 graycat graycat 4096 Mar 24 17:00 2017-03-24 drwxrwxr-x 5 graycat graycat 4096 Mar 25 17:00 2017-03-25 drwxrwxr-x 5 graycat graycat 4096 Mar 26 17:00 2017-03-26 drwxrwxr-x 5 graycat graycat 4096 Mar 27 17:00 2017-03-27 A cron job that runs every night might create directories used to store various system or application metrics. #/bin/bash dt=`date +%Y-%m-%d` mkdir /apps/stats/$dt mkdir /apps/stats/$dt/data mkdir /apps/stats/$dt/logs mkdir /apps/stats/$dt/notes Numbering your lines of output The line-numbering command, nl command can be helpful in many occassions — such as when you know you have an error on line 142 of a complex script. But that’s not all. You can use the nl command to add line numbers to just about anything — file contents or command output included. Number the lines in a file: $ nl Horton 1 "Believe me," said Horton. "I tell you sincerely, my ears are 2 quite keen and I heard him quite clearly. I know there's a 3 person down there. And, what's more, quite likely there's two. 4 Even three. Even four. Quite likely a family, for all that we 5 know! A family with children just starting to grow." 6 "So, please," Horton said, "as a favor to me, try not to disturb 7 them. Just please let them be." With an added option, you can number the lines in a file — even those that are blank $ nl --body-numbering=a Horton 1 "Believe me," said Horton. "I tell you sincerely, my ears are 2 quite keen and I heard him quite clearly. I know there's a 3 person down there. And, what's more, quite likely there's two. 4 Even three. Even four. Quite likely a family, for all that we 5 know! A family with children just starting to grow." 6 7 "So, please," Horton said, "as a favor to me, try not to disturb 8 them. Just please let them be." Of course, if you’re anything like me, typing such a lengthy option would just not work. I’d have to create an alias. alias nla='nl --body-numbering=a' Shuffling your output And, while this isn’t likely to provide greater insight into Dr. Seuss’s “Horton Hears a Who”, you can choose to rearrange (i.e. shuffle) the lines in a text file using the shuf command. $ shuf Horton quite keen and I heard him quite clearly. I know there's a person down there. And, what's more, quite likely there's two. "So, please," Horton said, "as a favor to me, try not to disturb "Believe me," said Horton. "I tell you sincerely, my ears are them. Just please let them be." know! A family with children just starting to grow." Even three. Even four. Quite likely a family, for all that we And, yes, the shuf command also works on input that is piped to it. $ man shuf | shuf output at most COUNT lines AUTHOR --help display this help and exit NAME GNU coreutils home page: should give you access to the complete manual. -o, --output=FILE Maybe a useful application of shuf would involve putting your team’s names in a file and using the top line in the command output to determine who buys the pizza on Friday. Scanning sockets The ss command (if it’s installed) can provide a quick view of the sockets on your systems. $ ss Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port u_str ESTAB 0 0 * 8859 * 8860 u_str ESTAB 0 0 /var/run/dbus/system_bus_socket 8860 * 8859 u_str ESTAB 0 0 * 8855 * 8854 u_str ESTAB 0 0 * 10337 * 10336 u_str ESTAB 0 0 * 8854 * 8855 u_str ESTAB 0 0 * 10336 * 10337 tcp ESTAB 0 1152 172.30.0.28:ssh 192.161.76.51:64341 Or sockets with memory usage: $ ss -m Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port u_str ESTAB 0 0 * 34909 * 34908 skmem:(r0,rb212992,t0,tb212992,f0,w0,o0,bl0) u_str ESTAB 0 0 * 8859 * 8860 skmem:(r0,rb212992,t0,tb212992,f0,w0,o0,bl0) u_str ESTAB 0 0 /var/run/dbus/system_bus_socket 8860 * 8859 skmem:(r0,rb212992,t0,tb212992,f0,w0,o0,bl0) u_str ESTAB 0 0 * 8855 * 8854 skmem:(r0,rb212992,t0,tb212992,f0,w0,o0,bl0) u_str ESTAB 0 0 * 8854 * 8855 skmem:(r0,rb212992,t0,tb212992,f0,w0,o0,bl0) u_str ESTAB 0 0 * 34908 * 34909 skmem:(r0,rb212992,t0,tb212992,f0,w0,o0,bl0) tcp ESTAB 0 1760 172.30.0.28:ssh 192.161.76.51:64035 skmem:(r0,rb233880,t0,tb46080,f3328,w25344,o0,bl0) Adding dimension to your file listings The tree command provides a more “dimensional” view of your files and, for those of us who forget to go and clean out our file holdings from time to time, the hierarchical view can be quite surprising. Do I really have 114 directories and 355236 files? 114 directories, 355236 files The structure of the data leading up to the final stats make it clear where the bulk of those files are stored in lines that look like these: ├── archive │ ├── bfox │ │ ├── backups │ │ │ ├── production │ │ │ └── test │ │ ├── code │ │ │ ├── production │ │ │ └── test │ │ └── images │ │ ├── production │ │ └── test Of course, if you have tens of thousands of files, you’ll probably pipe the output to a file and take your time examing where all those files are stored. Related content how-to How to find files on Linux There are many options you can use to find files on Linux, including searching by file name (or partial name), age, owner, group, size, type and inode number. By Sandra Henry Stocker Jun 24, 2024 8 mins Linux opinion Linux in your car: Red Hat’s milestone collaboration with exida With contributions from Red Hat and critical collaborators, the safety and security of automotive vehicles has reached a new level of reliability. By Sandra Henry Stocker Jun 17, 2024 5 mins Linux how-to How to print from the Linux command line: double-sided, landscape and more There's a lot more to printing from the Linux command line than the lp command. Check out some of the many available options. By Sandra Henry Stocker Jun 11, 2024 6 mins Linux how-to Converting between uppercase and lowercase on the Linux command line Converting text between uppercase and lowercase can be very tedious, especially when you want to avoid inadvertent misspellings. Fortunately, Linux provides a handful of commands that can make the job very easy. By Sandra Henry Stocker Jun 07, 2024 5 mins Linux PODCASTS VIDEOS RESOURCES EVENTS NEWSLETTERS Newsletter Promo Module Test Description for newsletter promo module. Please enter a valid email address Subscribe