############################################################################
#
# Useful Linux Commands
# ----------------------------------------------------------------------
# Jerry Fleming, 2004-09-13
#
############################################################################
# show system load in ascii art
tload
# simple watcher
swatch
# send process to bg like C-Z does
suspend
# execute a command by someone else
sudo
# change to another user(default: super user)
su
# change to another group
newgrp
# process information
procinfo
#show uid and gid
id
# gnu interactive tools process status
gitps
# tar ball size restricted
tar cvzpf - mytarfile.tar.gz | split -d -b 500m
cat x* > mytarfile.tar.gz
# save man page and info to file
man tcsh | col -b > tcsh.txt
info tcsh -o tcsh.txt -s
# join two files
cat file1 file2 | sort | uniq # (unique) lines in both files
cat file1 file2 | sort | uniq -d # (duplicated) lines in both files
cat file1 file2 | sort | uniq -u # lines only in one file
# show system info
cat /proc/cpuinfo # CPU (i.e. vendor, Mhz, flags like mmx)
cat /proc/interrupts # interruptions
cat /proc/ioports # ioports
cat /proc/meminfo # mem used, free, swap size
cat /proc/partitions # all partitions on all devices
cat /proc/pci # PCI devices
cat /proc/swaps # all swaps
cat /proc/version # equal to: uname -r
uname -a
# shwo (and kill) processes using filename
fuser filename
fuser -k filename
# show netbios name of a host
nbtscan -r 192.168.1.0/24
# show ip of host with netbios name
nmblookup 192.168.0.1
# send a message to win host (Messenger service on NT and WinPopup on '98)
smbclient -M NETBIOS
# useful on linux and windows
netstat -nap
# who am i
echo $LOGNAME
echo $USER
id
whoami
who am i
logname
# change properties of a file
chattr
setfacl
# show the size of a dir
du -sh dirname
# reh hat version info
cat /proc/version
cat /etc/redhat-release
cat /etc/issue
# what is running on port 22
lsof -i :22
# rename a host
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/hosts
/etc/sysconfig/network
# show the size of pwd
du --max-depth=0 -h
# calculate the sum of first column in myfile
gawk 'BEGIN{sum=0;} sum = sum+ $1; END{print sum;}' myfile
# mysqldump synopsis
mysqldump -Q -p --opt -B aiqing avo geofuture leidi17 lizi17 phpmyadmin qiti swy 新COM > dbdump
mysqldump -Q -p --opt -B fiveone > fiveonedump
mysqldump -Q -p --opt -B newcom > newcomdump
mysqldump -Q -p --opt -B mysql > mysqldump
# update a database from update log files
ls -1 -t -r file_name.[0-9]* | xargs cat | mysql
# update a MySQL server from the binary log
mysqlbinlog log-file | mysql -h server_name
# mysql charset and collation
mysql> SET PASSWORD FOR 'root'@'localhost' = OLD_PASSWORD('jerry');
query("SET character_set_results = big5") ;
query("SET collation_connection = big5_chinese_ci ");
query("SET character_set_client = big5 ");
query("SET character_set_connection = big5 ");
mysql> SET character-set-client = x;
mysql> SET character-set-results = x;
mysql> SET character-set-connection = x;
# to encode one script do:
php -q encoder.php -f input.php -o output.php
# to encode directory do:
php -q encoder.php -rcf input_dir -o output_dir
# eigth modes of operation for tar
create extract list append update concatenate delete compare
# copy contents of a dir from one disk to another
cd sourcedir; tar -cf - . | (cd targetdir; tar -xf -)
# write raw data of kernel image to a floppy
dd if=babylinux.img of=/dev/fd0
cat babylinux.img >/dev/fd0
# set default editor ~/.muttrc
set editor="vi -c ':0;/^$'"
# set bash command line to vi mode
set -o vi
# set vim macros
:map <BS> X
:set ww=h,l,b,s
inoremap <ESC> <ESC>:w %<CR>
noremap <ESC> :w %<CR>
map <Space> ^F
set ww=h,l,b,s
colorscheme murphy
noremap <F1> :!python %<CR>
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap { {}<ESC>i
inoremap ' ''<ESC>i
inoremap " ""<ESC>i
inoremap $_S $_SERVER['']<ESC>hi
inoremap $_G $_GET['']<ESC>hi
inoremap $_P $_POST['']<ESC>hi
inoremap $_R $_REQUEST['']<ESC>hi
inoremap $_C $_COOKIE['']<ESC>hi
# change multiline text with the (visually) selected in vim
vlhy:%s?<td\_p\{-}td>?\=getreg('"')?g
# change absolute path to be relatvie w/ vim
%s/(href\=|src\=)\"([^#/(mail|http)])/\1="\2/gc
# start chinese input method IME
export LC_ALL=zh_CN.GB2312
export XMODIFIERS=@im=Chinput
chinput &
# change default IME
im-switch -m xim
# start X server
X&
# start X term on display 0
xauth add :0 . `mcookie`
xterm -display :0 &
<Ctr><Alt><F7>
# mount an iso file as virtual cdrom
mount -o iocharset=gb2312
mount -t msdos
mount -t iso9660 -o loop ./my.iso /mnt/iso
# mount and display Unicode file names
mount -t iso9660 -o loop codepage=cp950 iocharset=cp950 ./my.iso /mnt/iso
# mount shared dir over samba
mount.smb //host/sharename /mnt/directory/ -o username=guest,password=xxxxx,fmask=0,dmask=0,rw
mount -t smbfs -o username=guest //hostname/sharefile /path/to
# fetch all mails and do not delete the old ones from a remote mail server
fetchmail -u shaojiachao@5117.com -ak mail.5117.com
# convert image
convert -draw "image Over 10,20 0,0 logo.gif" 256.gif 256.jpg
# make a mirror of 8617.cn
wget -F --tries=30 -nd -P8617 -E -k -m -p -D www.8617.cn http://www.8617.cn
# change the color of command line (add to .bashrc)
PS1="\[\e[33;41m\][\u@devserver \w]\[\e[32;40m\]\[\e[01m\]#\[\e[0m\]"
# also works, but first command line maybe shortened to 70% of the screen width
PS1="\e[33;41m[\u@ \w]\e[32;40m\e[01m#\e[0m"
# pack a whole dir
tar cvfz xx.tar.gz ./* --exclude=dir1 --exclude=dir2
tar cvf - ./* | gzip -qc > back.tgz
# restore mysql db from a dump file
mysql -p < db.dump
# decoding error for chinese in Linux 8.0
export LC_ALL=en_US
export LANG=C
# control vsftpd
/etc/rc.d/init.d/xinetd restart
# a simple editor like WPS driven by hot keys ( ^KH for help)
joe
# Midnight Commander, like Norton Commander in DOS
# hot keys at screen bottom of the (diplayed as 1, 2 etc) stards for F1, F2 etc
mc
# a powerful ftp client, supporting wild cat and download of a whole dir
# anonymous login:
ncftp xxx.xxx.xxx.xxx
# a ftp tool with bash like job control, command completion and more
lftp
# an powerful email client
pine
# get version info of kernel
uname -a
guname # in X
# screenshot for text terminal
cat /dev/vcsX >screenshot # X stands for the no. of terminal (?)
script screen.log # exit to stop
# run a command immune to hangups, with output to a non-tty
nohup command &
# make the shell a login shell with su
su - root
# print the name of the terminal
fgconsole
tty
# display brief info on a bash built-in command
help command
w
who
rwho -a
whoami
ftpwho
last
lastb
# show the amount of time since the last reboot
uptime
# check what distribution you are using
# (displayed on login, therefore it functions like /etc/motd )
cat /etc/issue
# (mnemonic: disk free) print disk info about all the filesystems
df -h # in human-readable form
# (mnemonic: disk usage) print detailed disk usage
du / -bh | more # for each subdirectory under PWD in human legible form
# show cpu info stored in /proc/cpu
cat /proc/cpuinfo
# list the interrupts in use (maybe useful before setting up new hardware)
cat /proc/interrupts
# Linux version and other info
cat /proc/version
# show the types of filesystems currently in use
cat /proc/filesystems
# show the setup of printers
cat /etc/printcap |more
# show the current user environment (in full)
set|more
# print kernel messages
# (so-called kernel ring buffer in /var/log/dmesg after bootup)
dmesg | less
# display all the configurable Linux kernel parameters.
sysctl -a |more
# lock a local (text mode) terminal.
vlock
# html editor in X ternimal
bluefish
# spell check an ASCII text file
# AbiWord, WordPerfect, StarOffice come with as-you-type spellchecking
aspell
ispell filename
# look up the dictionary on your system (/usr/share/dict/words) for thermo*
look thermo
which
whereis
whatis
# start another X-window session on the display 1 (default opened on display 0)
startx -- :1 &
# receive files using the Zmodem, Ymodem, or Xmodem protocol
rx
unarj e filename.arj
lha e filename.lha
uudecode -o outputfile filename
ar -x my_archive.a file1 file2
# run any command when the system load is low, CTRL-D to end
# (if logout, the process will keep running and the result will be emailed)
batch
# kill programs by name
killall program_name
# check and control the printers (? to see the list of available commands)
lpc
# show the content of the printer queue
lpq
# remove a printing job
lprm job_number
# execute my_command repeatedly at 60-second intervals (default to 2 seconds)
watch -n 60 my_command
linuxconf
netconf # a subset of linuxconf
mouseconf
# automatically determines and configures hardware
# (disable it if having mysterious problems with your mouse)
kudzu
# set the timezone for your system.
# UTC, Coordinated Universal Time, once called GMT, Greenwich Mean Time
# timestamps of files are always in UTC and displayed locally with time zone
timeconfig
# set linux system date and time to 2000-12-31 23:57
date 123123572000
# set your computer hardware clock from the current linux system time
setclock
# list files opened on your system
lsof
# tune up your parallel ports
tunelp
ntsysv
tksysv # X-based
# a tool to check/enable/disable system services
/sbin/chkconfig --level 123456 kudzu off
# to list all the services started/stopped under all runlevels, I use:
chkconfig --list | more
service --status-all
service wu-ftpd start
service smb restart
# check and fix the symbolic links
symlinks -r -cds /
# re-create the bindings and the cache for the loader of dynamic libraries ld
# usually after an installation (automatically done in bootup)
ldconfig
# (mnemonic: make node) manually create a device file
mknod /dev/fd0 b 2 0
# restore the "audio" device that somehow screwed up
/dev/MAKEDEV audio
# hard drive partitioning utility, menu-based, easier than fdisk
cfdisk /dev/hda
# list the partition tables (including extended partitions) for all drives
sfdisk -l -x |more
# a partition manipulation Linux (ext2), and DOS (FAT and FAT32)
# (creation, destroying, moving, copying, shrinking, and extending)
parted /dev/hda
# perform a low-level formatting of a floppy, high density
# then make a Linux filesystem (-t ext2), checking/marking bad blocks (-c )
# making the filesystem is an equivalent to the high-level formatting
fdformat /dev/fd0H1440 # default 1440 kB, see ls /dev/fd0
mkfs -c -t ext2 /dev/fd0
# check a high-density floppy for bad blocks, does not modify the floppy
badblocks /dev/fd01440 1440
# umount it so that the data is not erased!
umount /dev/hda8
badblocks -n /dev/hda8
# mount back
mount /dev/hda8
# marks badblock
e2fsck -c /dev/hda8
init 1 # switch linux to single user mode, same as below
linux sigle # for grub prompt
# check and repair a filesystem (in runlevel 1)
fsck -t ext2 /dev/hda2
# adjust the tuneable parameter of an ext2 filesystem to ext3
tune2fs -j /dev/hda2
# (mnemonic: data duplicator, like DISKCOPY for DOS)
# create an image of a floppy to floppy_image in pwd
dd if=/dev/fd0H1440 of=floppy_image
# copy floppy_image to another floppy disk
dd if=floppy_image of=/dev/fd0H1440
mkbootdisk --device /dev/fd0 2.4.2-3
userdel user_name
groupadd group_name
chgrp friends my_file
chmod g=rw,o= my_file
usermod
groupmod
userconf
# change the your information as displayed by finger
# (mnemonic: change full name)
chfn
# set the password expiry for login_name (mnemonic: change age)
chage -M 100 login_name
quota username
setquota username
quotaon /dev/hda
quotaoff /dev/hda
# run command with su
sudo /sbin/shutdown -h now
# verify the integrity of the password and group files.
pwck
grpck
rpm -ivh package_name-version.platform.rpm
route -n
host host_to_find
nslookup host_to_find
dig ip_to_find
traceroute host_to_trace
mtr host_to_trace
# status of a networked MS Windows host (with an NetBIOS name
nmblookup -A ip_address # like nbtstat for DOS
echo 1 > /proc/sys/net/ipv4/ip_forward
ipfwadm-wrapper -F -p deny
ipfwadm-wrapper -F -a m -S xxx.xxx.xxx.0/24 -D 0.0.0.0/0
ipchains -L
iptables -L
ifconfig
netstat | more
nmap ip_number
# eject or close other removable media, defaults to cdrom
eject -vn -t /dev/sda4
# read the content of a file for you
festival --tts my_file.txt
# give me a description of an image file my_picture,
# format, type, class, size in pixels, number of colours, size in bytes, etc
identify -verbose my_picture
# restore a screwed-up terminal to default (remove funny chars after cat)
reset
# reboot
<Ctrl><Alt><Del>
# scroll terminal output up/down
<Shift><PgUp>
<Shift><PgDown>
# change to the previous/next X-server resolution
<Ctrl><Alt><->
<Ctrl><Alt><+>
# kill the window I am going to click
<Ctrl><Alt><Esc>
# kill the current X-windows server
<Ctrl><Alt><BkSpc>
# send [End-of-File] to the current process or log out
<Ctrl>d
# stop the transfer to the terminal.
<Ctrl>s
# resume the transfer to the terminal (when the terminal stops responding)
<Ctrl>q
# send the current process to the background.
<Ctrl>z
# walk through windows
<Alt><Tab>
<Alt><Shift><Tab>
# walk through desktops
<Ctrl><Tab>
<Ctrl><Shift><Tab>
# show the table of processes, kill any or send other signals to them
<Ctrl><Esc>
# access the K-menu, equivalent to MS Windows Start menu
<Alt><F1>
# emulate the mouse using the arrow keys on the keyboard
<Alt><F12>
# drag (any part of) a window to move it
<Alt><LeftMouseButton>
# take a snapshot of the current window into the clipboard
<Alt><PrintScreen>
# take a snapshot of the entire desktop into the clipboard
<Ctrl><Alt><PrintScreen>
# lock the desktop
<Ctrl><Alt><l>
# toggle hide/show the desktop
# (great to hide the Solitaire game when your boss walks in)
<Ctrl><Alt><d>
# kernel level key combinations
# meant for debugging purposes and in an emergency (mostly developers)
<Alt><SysRq><command_key>
# enabled/disabled by setting the relevant kernel variable to 1/0
echo "1" > /proc/sys/kernel/sysrq
# kill all processes, including X, known as Secure Access Key SAK
<Alt><SysRq><k>
# send the TERM signal to all running processes except init, exit after confirm
<Alt><SysRq><e>
# send KILL signal to all processes except init (powerful than <Alt><SysRq><e>
# but some process may exit abnormally)
<Alt><SysRq><i>
# send the KILL signal to all processes, including init
<Alt><SysRq><l>
# run an emergency sync (cache write) on all mounted filesystems
# (to prevent data loss)
<Alt><SysRq><s>
# remount all mounted filesystems as read-only (like <Alt><SysRq><s>,
# but, if successful, fsck won't check all filesystems after reboot)
<Alt><SysRq><u>
# turn off keyboard raw mode
# (useful when X session hangs: afterward, <CTRL><ALT><DEL>)
<Alt><SysRq><r>
# reboot immediately without syncing or unmounting your disks
<Alt><SysRq><b>
# shut the system off
<Alt><SysRq><o>
# dump the current registers and flags to your console
<Alt><SysRq><p>
# dump a list of current tasks and their information to your console
<Alt><SysRq><t>
# dump memory info to your console
<Alt><SysRq><m>
# set the console log level
<Alt>SysRq><digit>
# display help
<Alt><SysRq><h> # also, any other unsupported <Alt><SysRq><key>