commandlinefu.com is the place to record those command-line gems that you return to again and again.
Delete that bloated snippets file you've been using and share your personal repository with the world. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.
If you have a new feature suggestion or find a bug, please get in touch via http://commandlinefu.uservoice.com/
You can sign-in using OpenID credentials, or register a traditional username and password.
First-time OpenID users will be automatically assigned a username which can be changed after signing in.
Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.
» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10
Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):
Subscribe to the feed for:
The pwdx command reports the current working directory of a process or processes.
The taskkill command has the option of the curve, for a complete list just type: taskkill /? As we know, but to give a practical example, suppose you want to act only on the user's processes Cicciopalla use this command
Taskkill: As the name of the utility ?taskkill? suggests that it is simply used to see the running processes and to kill one or more processes either by using its PID i.e. ProcessID or by using its Image name i.e. by which it is present in system and being executed. We can also filter the results on the basis of user name, PID, image name, CPU time, memory usage etc at the time of killing or terminating a process.
Syntax:
taskkill [/s [/u [\] [/p []]]] {[/fi ] [...] [/pid /im ]} [/f] [/t]
Parameters description:
/s :- To provide IP specification or name of the remote computer; if not provided local computer is considered. Do not use backslashes in the value of the parameter.
/u \ :- To provide UserName or Domain\UserName under whose permission command should execute. If not provided then command run under the permission of person who is logged on. Option /u can be used only if /s is specified.
/p :- For the password of that user account which is provided with /u parameter. Password is prompted in case this field is omitted.
/fi :- To apply filter to select a set of tasks. Wildcard character (*) can be used for specifying all tasks or image names. Filter names are provided after parameter description.
/pid >ProcessID> :- For specifying PID of the process to be killed.
/im :- For providing image name of the process to be terminated. Also Wildcard character (*) can be used to specify all image names.
/t :- To terminate the whole tree of the process including all child processes started by it.
/f :- For forceful termination of process. It is not omitted in case of remote process as they are terminated forcefully in default.
Filters description:
Filters are provided to filter the result. This filtering is based on some Filter names which are checked with some relational operators. You will observe that the filter names are the column names which comes in task manager.
Filter Name Valid Operators Valid Values
STATUS eq,ne RUNNINGNOT RESPONDINGUNKNOWN
IMAGENAME eq, ne Name of image
PID eq, ne, gt, lt, ge, le ProcessID number
SESSION eq, ne, gt, lt, ge, le Session number
CPUTIME eq, ne, gt, lt, ge, le CPU time in the format HH:MM:SS, where MM and SS are between 0 and 59 and HH is any unsigned number
MEMUSAGE eq, ne, gt, lt, ge, le Memory usage(in KB)
USERNAME eq, ne Any valid user name (User or Domain\User)
SERVICES eq, ne Service name
WINDOWTITLE eq, ne Window title
MODULES eq, ne DLL name
where eq, ne, gt, lt, ge & le are meant for equal to, not equal to, greater than, less than, greater than equal to and less than equal to respectively.
Points to be noted:
In case of remote process WINDOWTITLE and STATUS filters are not supported.
Wildcard (*) character is accepted for /im option only when filter is applied.
Not necessary that /f is specified in case of remote process termination as in default that is terminated forcefully.
Don?t specify computer name to HOSTNAME filter as it will result in a shutdown and all processes are stopped.
For specifying ProcessID (PID) tasklist command can be used.
Examples:
To terminate a process with PID 3276 use parameter /pid.
?taskkill /pid 3276
To terminate more than one process with pid as 2001, 2224, 4083.
?taskkill /pid 2001 /pid 2224 /pid 4083
To terminate a process with its image name like wmplayer.exe for Windows Media Player use /im parameter.
?taskkill /im wmplayer.exe
To terminate a process and all its child process i.e. to end process tree in task manager use /t parameter. ?taskkill /f /im explorer.exe /t
To terminate all those processes which have PID greater than or equal to 1500 without considering their image names use filter ge with wildcard character.
?taskkill /f /fi ?PID ge 1500? /im *
To terminate the process tree with PID 2521 which is started by account name admin.
?taskkill /pid 2521 /t /fi ?USERNAME eq admin?
To terminate all process beginning with note on a remote system named serverpc under user name ?administrator? having its password as ?qu@dc()r3?.
?taskkill /s serverpc /u administrator /p qu@dc()r3 /fi ?IMAGENAME eq note*? /im *
To terminate a process with its windows title as ?paint?
?taskkill /f /fi ?WINDOWTITLE eq paint?
Source: http://unlock-windows.blogspot.com/2008/12/taskkill-command-line-utility.html
I think this is the cleanest way of getting the current working directory of a script. It also works on osx, Linux, and probably bsd as well..
Invoked from within a shell script, this will print the directory in which the script resides. Doesn't depend on external tools, /proc/self/*, etc.. (`echo` is a shell builtin.) To see the *current working* directory of a script, use `pwd`.
This is an alternative to another command using two xargs. If it's a command you know there's only one of, you can just use:
ls -l /proc/$(pgrep COMMAND)/cwd
This command is suitable to use as application launching command for a desktop shortcut. It checks if the application is already running by pgrepping its process ID, and offer user to kill the old process before starting a new one.
It is useful for a few x11 application that, if re-run, is more likely a mistake. In my example, x2vnc is an x11 app that does not quit when its connection is broken, and would not work well when a second process establish a second connection after the first broken one.
The LC_ALL=C for xmesseng is necessary for OpenSUSE systems to avoid a bug. If you don't find needing it, remove the "env LC_ALL=C" part
you can also pipe it to "tail" command to show 10 most memory using processes.
Shows a less detailed output, made only of the process tree and their pids.
I don't truly enjoy many commands more than this one, which I alias to be ps1.. Cool to be able to see the heirarchy and makes it clearer what need to be killed, and whats really going on.
This will email user@example.com a message with the body: "rsync done" when there are no processes of rsync running. This can be changed for other uses by changing $(pgrep rsync) to something else, and echo "rsync done" | mailx user@example.com to another command.
Continue with:
killall -CONT -m firefox
Suspends all Firefox Threads. Results in Zero CPU load.
Useful when having 100+ Tabs open and you temporarily need the power elsewhere.
Be careful - might produce RACE CONDITIONS or LOCKUPS in other processes or FF itself.
matching is case sensitive.
A simple but effective replacement for ps aux. I used to waste my time running ps over and over; top is the way to go. It also allows complex sorting options. Press q to exit "nicely" (Ctrl + C is always an option, of course). Note that the list updates each second, resorting in the process; if you're trying to grab a specific PID, you might be better off with ps.
htop
Alternatively, htop is available, though it may not come pre-installed. htop is slightly more interactive than top and includes color coding, visuals, and a nice interface for selecting and then killing processes. (Thanks to bwoodacre for this great tool.)
This command is useful when you want to know what process is responsible for a certain GUI application and what command you need to issue to launch it in terminal.