概述
关于命令类型划分
本表中列出了我穷尽了我所有的记忆整理出来的Linux命令,其中关于外部命令、关键字或内建命令的划分,不一定正确。有很多命令,既是内建命令也可能是外部命令,为啥?Bash为了更高效率的执行命令和脚本,把很多外部命令以内建命令的方式实现了。我们使用type这个命令就可以知道一个命令的类型了,如下所示:
[root@jfht ~]# type -a type
type is a shell builtin <== builtin就是指内建命令
[root@jfht ~]# type -a pwd
pwd is a shell builtin
pwd is /bin/pwd <== 此乃外部命令
[root@jfht ~]# type -a ls
ls is aliased to `ls --color=tty' <== 此乃别名
ls is /bin/ls
[root@jfht ~]# type -a for
for is a shell keyword <== 此乃Shell关键字
[root@jfht ~]#
关于本系列文章
首先,这只是我个人十多年来使用Unix/Linux的经验的总结。我经常感觉自己在Linux的使用和维护方面好像知道得不少了,但是发现沉下心来总结的时候,发现还是很弱的。其实很多东西只是知道个名字,知道点皮毛,更谈不上深入的理解。在写这些文章的时候,我参考了相同类型的文章,通常是Google搜索的前几页结果,我都会看一下,发现总能得到一些新的知识、新的启发,感觉到学无止境,厉害的角色很多。
其次,这些文章并非某个命令的手册页,只是我平时使用它们的时候的一些惯用法,或者写Bash脚本的时候是怎么用的。我认为,对于这些Linux命令,不可能、也没有必要把所有的参数记住,只需要把常用的记住,然后使用man去查看手册页。与其知道每个具体的东西,不如知道在哪里去找它。这一点,我深深的体会到Unix/Linux在文档方面的完善,真正是一个适合开发者使用的平台。
再次,我所写的东西并非完全正确、有可能似是而非,但我尽可能多去实际的去执行一下它们。我非常欢迎各位热爱Linux的朋友们一起参与讨论,特别是我每篇文章都会有一个“问题思考”部分,其实有些问题也是我本人不那么确定或者正在寻找答案的问题。在此,我要感谢各位,浪费了你们宝贵的时间来看这些质量不怎么高的文章。
命令字母顺序表
这个一个浩大而艰巨的任务,我非常担心能不能完成它。我想说,世界上最难得两个字:坚持!

首字母
外部命令(某些也可能是内建命令)
关键字或内建命令
内置环境变量
A
ac 在线时间统计
adduser 添加用户账号
ant 强大的Java开发构建工具
apropos 根据关键字搜索命令
ar
arp 操作arp缓存
at 在指定时间执行一次任务
autofork
awk
alias

B
bash
base64 用base64编解码
basename 去掉文件名的目录和后缀
bc 浮点数计算器、进制转换
bg
break

C
cal 显示日历
cat 连接文件或标准输入并打印
cc
chgrp
chkconfig 查询/修改系统服务的运行级别
chmod
chown
chroot
clear 清除终端屏幕,不是cls
comm
complete 强劲的bash参数补全功能
compress
cp 复制文件
cpio
cronolog (2009.09.22)
crontab
curl 强大的网络传输工具
cut
cvs
case 多分支判断语句
cd 更改当前工作目录
continue

CDPATH

D
date
dd (2009.09.19)
df 查看磁盘空间占用情况
diff
dir
dirname 截取给定路径的目录部分
dmesg 查看开机信息/打印或控制内核环形缓冲区
dmidecode 查看硬件信息
dos2unix 把DOS格式的文本文件转换成Unix格式
dot 绘制DOT语言脚本描述的图形
doxygen
du 查看文件的磁盘空间占用情况
declare
dirs (2010.03.15)
do
done

E
echo 显示文本、打印信息
egrep
env 显示当前用户的环境变量
eval
exec
expr
elif
else
esac
exit 退出当前shell
export

F
false
fgrep
file 检测并显示文件类型
find
free 显示内存的使用情况
ftp
fg
fi
for Bash中的for循环

G
gawk
gdb
gcc
grep
groupadd (2009.09.19)
groupdel (2009.09.19)
groupmod (2009.09.19)
groups (2009.09.19)
gunzip
gzip
g++

H
halt 停止系统运行,但不关闭电源
head
help 显示Bash内建命令的帮助信息
hexdump “十六”进制查看器
hostname 显示或设置主机名
hwclock 查询和设置硬件时钟
help
history
HISTTIMEFORMAT
HISTSIZE
HISTFILESIZE
HISTFILE
HISTCONTROL
HISTIGNORE
I
iconv 字符编码转换工具
ij
ifconfig
iptables
iptables-save (2009.09.19)
iptables-restore (2009.09.19)
info
insmod
if Bash中的条件判断
in

J
java
javac
jar
jps (2009.09.19)
jstat (2009.09.19)
jmap (2009.09.19)
jinfo (2009.09.19)
javadoc
jobs 显示当前终端关联的后台任务情况
join 根据关键字合并数据文件

K
kill 终止进程/发送信号
killall 杀死指定名字的进程

L
ls 显示文件目录列表
less
lsof
locate
ln
lsmod
last
ld
ll
lsb_release 查看当前系统的发行版信息

M
more
mv 文件或目录改名、移动位置
man 显示在线手册页
mail
mysql MySQL客户端命令行工具
mkdir
make 强大的编译工具
mysqldump
mount
mysqladmin (2009.09.27)

N
nano 比vi简单易用的文本编辑器
nohup 执行其他命令,并且忽略SIGHUP信号
netstat
nslookup
nice (2010.03.15)
nginx (2010.09.29)

O
openssl (2009.09.19)

OLDPWD

P
ps 显示当前正在运行的进程列表
pstree 以树状图显示进程间的关系
ping
pwd 显示当前工作目录
perl
php
pidof 找出正在运行程序的进程PID
printf (2009.09.22)
popd (2010.03.15)
pushd (2010.03.15)
PATH
PS1
PS2
PS3
PS4
PROMPT_COMMAND
PWD
Q
quota

R
rm 删除文件或目录
rmdir
read
reset 终端屏幕混乱的终结者
rmmod
rar
route
rpm
rpmbuild
rlwrap (2009.09.19)
rsync (2010.03.08)
renice (2010.03.15)
rz 批量上传文件,简单易用
return
RANDOM
S
ssh Secure Shell 客户端
sftp 安全文件传输命令行工具
su
setsid
sort
screen 虚拟终端屏幕管理器
sed
setup
service 系统服务管理
sleep
set
sqlplus
sox
sh
sysctl
sync 强制将内存中的文件缓冲内容写到磁盘
strings
stty 显示和修改终端行设置
stat 显示文件或文件系统状态
ssh-keygen (2010.03.15)
ssh-copy-id (2010.03.15)
sar (2010.03.15)
sadc (2010.03.15)
sa1 (2010.03.15)
sa2 (2010.03.15)
swig 把C/C++代码嵌入Java等语言的开发工具
sz 下载文件,无需ftp/sftp
shift
shopt (2010.03.15)
select (2010.03.15)
set (2010.03.15)
source 在当前shell环境中执行指定文件中的命令

T
time 测定一个命令的资源使用情况
telnet 基于TELNET协议的远程登录工具
tac 与cat相反的命令
tar 解压缩工具
top 实时监视Linux任务
tty 打印标准输入的文件名称
tree 以树状图列出目录的内容
tracert
test
tail 输出文件尾部/动态监视文件尾部
tailf 跟踪日志文件/更好的tail -f版本
touch 创建文件或修改文件时间
true 啥也不做,设置退出码为0
tee 重定向输出到多个文件
tr
tsort 拓扑排序
tzselect 选择时区
type 显示命令的类型
then
trap 在脚本中处理信号

U
uptime 显示系统运行时间
uname 打印系统信息
uniq
unzip 解压zip文件
uncompress 解压.Z文件
unrar 解压rar文件
updatedb
usleep
useradd 添加用户账号
userdel
usermod
umount
unix2dos (2009.09.19)
ulimit 在shell进程中限制系统资源
umask
until
unset

V
vi
vim (2010.09.28)
view
vmstat
valgrind (2010.09.29)

W
w 显示谁登录了系统及在做什么
who 查看当前登录用户
whereis 查找命令的位置
wc
wget
wait
whatis ( 2009-10-18 )
while Bash中的while循环

X
xargs

y
yes 重复输出字符串

Z
zip

^
^Z (2010.03.15)
^R (2010.03.15)