====== Useful commands ======
= Performance =
top ; shows running processes;
'c' = see process details; '1' = show processor cores; 'k' = kill a process
'A' = show many windows; 'a,w' = navigate windows; 'z' = color; 'x' = highlight sort col
shift-w = save it too your .toprc
= Finding Stuff =
find / -name "file_name" -print ; find file name from root directory path (/)
find . -user root ; find files owned by root user, in current directory (.)
locate -i fstab ; find file name in database that keeps track of filenames
find . -type f -user zenoss -name "*.py" -exec grep -il "blah" {} \;
; find text "blah" in .py files belonging to zenoss user
locate Data.fs | xargs ls -l ; xargs to pipe results of one command to another
find ./ -name '*py' | xargs grep signal ; Find string "signal" inside text of .py files; xargs looks inside the files instead of at the file name
grep -ir "timeout" . ; find the string "timeout" in any file below the current dir
= Various =
screen ; lets you share screens with other people
nano ; text editor that lets you use modern keyboard keys
psql ; connect to postgres database in postgres command prompt
/sbin/service postgresql restart ; restart the postgres server
/sbin/service httpd restart ; restart the http/web server (ussually apache)
ps axo pid,tty,stat,bsdstart,bsdtime,command ; list processes with time started and cpu time taken
ps -aux ; easier process list, alsp try without the '-'
ps -ef ; short columned process list (less fields returned)
smbd & ; postfix with '&' to have it run in the background
wget ; download a file from the web
sar ; system activity reporter
du -k ~ | more ; show disk usage (useful for over quota) for home directory
du -h --max-depth=1 . | sort -rn ; show totalled directory sizes for current dir
uname -m ; how to tell if linux is 32 or 64 bit - i386 or i686 then it is 32 bit, x86_64 is 64bit
chkconfig ; services on / off
crontab -l ; list the existing cron instances
crontab -e ; add crontab entries for current user
dmesg | more ; print out bootup messages / kernel ring buffer
whoami ; tells you who you are currently logged in as
su ; set user, often used to escalate to root to run something special
cp -Rf /home/cvs/* /usbdrive/cvs/ ; backup, simple; recursive, force
cp -Rfuv --reply=yes /home/cvs/* /usbdrive/cvs/ ; backup, update; copy new files only, verbose, dont ask overwrite
dmesg | grep -i failed ; search bootup messages for failures
ifconfig -a ; find IP address and other network details
hostname ; show current machines hostname, also can set new one and do other stuff, see man page
useradd, usermod ; add or modify user access rights, group rights (primary, secondary)
alias ll='ls -la' ; make an alias for the long list command, now just type 'll'!
unzip -ql file.zip ; see the zip files contents
tar xvfz something.tgz ; untar a .tar.gz file
tar -cjf wiki.121308.tar.bz2 ../wiki ; quick backup command to tar file
nohup & ; "NO HangUP", runs a command continually in background, even if user who ran it logs out
diff -qr /transit2/ /documents/transit2/ ; compare directories, do not show specific file differences, recursive
chkconfig --list ; startup service information listing; shows which services are set to run at boot
service smtpd status/stop/start ; Email service stop/start; /var/log/maillog for some debug info
for i in *.txt; do mv "$i" `basename $i .txt`.doc; done ; Rename all txt files to doc
/usr/bin/ssh -i ~/.ssh/id_dsa server_name "ls" ; run command on another server and get results; id_dsa is ref to PKI login info... no passwd needed
ps -A -o pid,state,command | grep D ; find process that's blocking due to IO wait
; 'D' is for Delayed processes, IO wait is most common cause
= File System Manipulation =
fuser -m /dev/md0 ; shows processes being used by device
lsof /media/documents/ ; show list of files open
lsof / | grep media ; in case above doesnt work, lsof seems to work better on root and then grep it out for what you need
lsof +D /var/log/ ; list of files open under the given directory (recursive) (use +d for non-recurse)
= Network Information =
nslookup 10.175.211.10 ; reverse DNS lookup; gives the hostname associated with the IP
host -a www.google.com ; DNS lookup; gives IP associated with the hostname (verbose)
dig ns zenoss.loc ; gives nameserver of domain
netstat -anp | grep 8082 ; will tell you what process is listening at 8082, if any
netstat -an | grep LIST ; show listening ports (LIST = LISTEN)
tcpdump ip proto ICMP ; shows you what ping requests are being send and received, realtime
tcpdump port 80 or port 443 ; shows traffic in and out on http and https
echo “newhostname” > /proc/sys/kernel/hostname ; set new hostname on CentOS / RedHat
netstat -rn ; routing table
= Package Management =
rpm -qa ; Packages installed on system
rpm -qa | grep httpd* ; See if httpd is installed
yum list installed httpd ; See if httpd is installed
yum provides /etc/fstab ; name of the package which contains a particular file
yum list ; lists information about available packages
yum install gnote ; install gnote and all its dependancies
patch < /patch/to/apply.diff
patch -R --dry-run --verbose < patch.diff ; undo / backout a patch
yast ; opensolaris / SLES package manager
Also, checkout 'nachos' useful command KnowledgeBase: http://www.igso.net/nkb/Unix_Tips
If link is lost, content is duplicated here: [[NachoKB]]
====== Command usage example ======
Below is a modified version of real shell commands from [[systems:paradocs:Technical Documentation#umbc_posting_daemon_restart|here]]
ps ax | grep nps ; returns all currently running processes with the string 'nps' in it. See if one with a reference to 'umbc' in its name is running
nano /etc/inittab ; opens a text editor for the inittab file. The [[inittab|http://www.netadmintools.com/html/inittab.man.html]] file describes which processes are started at bootup and during normal operation . Make sure that the line references the posting daemons are not commented out with a #
cd /var/para/blah/ ; changes your current directory
ls ; lists the files and directories in the current directory
php blah_umbc_import.php ; executes the file nps_umbc_import.php . it goes into a endless loop; end it by hitting ctrl+C
pwd ; print working directory. Shows you which dir you are currently in
/sbin/telinit Q ; reestablish all inittab settings and processes
ps ax ; look for the umbc referencing process in the resultant list
\rm -r myDirectory ; remove the directory 'myDirectory' recursively and with no prompts
while [[ 1 ]]; do echo $RANDOM; sleep .01; done
; Peg (use up) a single CPU core; modify the sleep to increase or decrease amount of CPU used