

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- 19.2K Views
What's your favorite tool/cmd in Linux?
The command "find" is one of my favorites -
Search for files in /search/path/ which are older than 5 days.
(if you want to search for directories, then use: -type d )
find /search/path/ -type f -mtime +5 -print
find /search/path/ -type d -mtime +5 -print
If you want to do something with those files after you've found them, use: -exec <somecmd> '{}' \;
Example, delete files older than 50 days in the /search/path directory
find /search/path/ -type f -mtime +50 -exec rm '{}' \;
If only there is a 'find' equivalent in the real world ... now, where did I put my keys?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- 5,069 Views
Another great tool to use that is often overlooked is xargs.
Combined with find, ls, echo, grep etc. you can achieve powerfull combinations.
The more I learn to use vim the more I'm impressed by what it can do.
On the fly recorded macro's have helped me several times to generate or update large number of complex (SQL) statements etc.
It's built in powerful search and replace has prevented countless hours of tedious work.
And a third huge time saver that surprisingly many people are unfamiliar with is ssh-agent. Being able to easily and securly log on to many machines is a great time saver as well.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- 5,050 Views
lsof. So much lsof. So useful for tracing back a port that's in use to a running process, and then for diagnosing beyond that.


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- 5,061 Views
One of the most important cmd especially when you're working remote is tmux!

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- 5,056 Views
I like all the Linux tools .

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- 5,042 Views
I'd follow on to the
@kubeadm wrote:If you want to do something with those files after you've found them, use: -exec <somecmd> '{}' \;
Example, delete files older than 50 days in the /search/path directory
find /search/path/ -type f -mtime +50 -exec rm '{}' \;
example by suggesting two enhancements:
1. Use -delete for the specific case of removing files or directories; it saves having to call out to another program just to delete something. It was added in 2004 , so hopefully (!) it's on the majority of systems you're working on. It also "does the right thing" by turning on -depth mode, so you don't end up trying to remove a directory before it's empty.
2. Use "-exec command {} +" for the more general case of executing a command against multiple files. Introduced in 2005 , this is useful for any command (such as rm) that accepts multiple files as parameters to work on. It's similar to xargs, but avoids the problems with passing filenames through a pipe.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- 5,045 Views
I'd have a hard time choosing a favorite; the most frequent are boring (ls, cd) or opinionated (vi/vim), and there are powerful candidates like ps, grep, awk, etc; but I'll propose "sudo" as my favorite. It enables fine-grained elevated permissions and I enjoy using it as a sysadmin just to keep my normal prompt un-elevated (in case of accidents!) and to log what I (and other) sysadmins type, again, usually to investigate an accident. But mainly to limit the potential damage when a non-sysadmin needs to do a few specific things with elevated privileges.


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- 5,038 Views
awk/gawk ... Everything is possible with awk/gawk + shell script! :)

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- 5,033 Views
I have a couple of favorites that have become standard aliases on any system I use regularly:
alias top10=' ls -la | sort -rn -k 5 | head '
alias topdu=' du -sk .[0-9A-Za-z]* [0-9A-Za-z]* 2>/dev/null | sort -rn | head '
"top10" lists the 10 biggest files in the current directory, and "topdu" shows the 10 subdirectories under the current directory that are taking up the most space. In either case you can add "-#" to change the number of lines output. For example "top10 -20" shows the 20 biggest files.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- 5,027 Views
@Gordon-Keegan, if you work exclusively on RedHat systems -- or, I should say, GNU/Linux systems with GNU coreutils' ls, then you may be interested in:
alias top10='ls -laS | head '
as that will instruct "ls" to do the sorting by size, versus having to rely on field 5 being the size. Consider a system that's integrated with LDAP or Active Directory and a user's primary group name contains spaces.
Reference: ls invocation -- 10.1.3 Sorting the output

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- 5,021 Views
TIL ! Thanks for the tip, it's apparently been too long since I reviewed the cmdline args :) Hmmm... That means I should probably review other commands.