1
ll -t 按mtime显示(由新到旧)
ll -t
drwxr-xr-x 2 root root 4096 05-13 19:41 aa
-rw-r–r– 1 root root 28 05-13 19:07 a
-rw-r–r– 1 root root 39 05-13 17:41 md5
drwxr-xr-x 2 root root 4096 05-13 15:35 script
-rw-r–r– 1 root root 18 05-12 19:54 test1
-rw-r–r– 1 root root 21 05-12 19:54 test
-rw-r–r– 1 root root 1693 05-11 05:37 a.tar.gz
-a:全部显示(包括.xxx)
. .. a .a aa a.tar.gz md5 script test test1
-A:全部显示(但不显示. ..)
a .a aa a.tar.gz md5 script test test1
-c:根据ctime正序排列
ls: a aa a.tar.gz md5 script test test1
ls -c: aa a md5 script test1 test a.tar.gz
-d:只显示目录信息,而不显示目录内文件信息(适合ll -d)
ls -d script/ ===》script/
ls script/ ===》1.sh
-r:反向排序
-u:根据上一次读取排序
ls ===》a aa md5 script test test1
cat md5 –》ls -u ===》md5 a aa script test test1
-X:按拓展名排序 -1(yi):列显示 -i:显示inode号
2
md5sum -c md5 校验md5中记录的文件的校验和 -c:校验
3
ls | wc -l 统计有多少文件、目录 -l:统计行数
ls | wc -l ===》7
-c:统计文件内容的字节数
cat test ===》111111
111112
111113
wc -c test ===》21 test
-w:统计文件内容的单词数;也可以统计目录内的文件数
wc -w test ===》3 test
ls | wc -w ===》7
4
tar vtf a.tar.gz 查看包的内部构成
v:详情(权限,所属,时间,大小)
t:显示包结构 f:跟文件
c:建立 z:gzip包需要 -x:解压至原路径
-j:bzip2包需要 -p:保持原属性 -C:指定解压目录
tar vtf a.tar.gz ===》-rw-r–r– root/root 170 2010-05-08 00:41:30 200
-rw-r–r– root/root 82 2010-05-05 03:19:48 md5
-rwxr-xr-x root/root 136 2010-05-04 16:46:07 shell1.sh
drwxr-xr-x root/root 0 2010-04-30 09:14:38 tmp/
drwxr-xr-x root/root 0 2010-04-30 09:13:32 tmp/test/
tar tf a.tar.gz ===》200
md5
shell1.sh
tmp/
tmp/test/
5
unrar x 解压rar包,并且可以指定目录 (unrar x aa.rar /tmp)
e:解压到当前目录 l:列出包内容信息 p:打印到标准输出设备(不明白)
t:测试解压,但不解压 v:列出包内容的详细信息(?没看出和l有什么区别?)

6
cp -a 等同于-dpR
-b:覆盖时备份(cp -b a b==》b有a和a~)
cp -b a aa ===》ls aa ===》 a a~
-v:显示执行过程
cp -v a aa ===》“a” -> “aa/a”
-i:覆盖前询问 -u:只会覆盖mtime旧的文件或是原来没有的
/bin/cp:直接覆盖(/bin/cp -i)
7
ps aux
a:当前用户下的进程以及进程运行的终端 -a:当前终端当前用户的进程
e:列出程序时,显示每个程序所使用的环境变量
u:以用户为主格式显示当前用户进程(?第一列是用户名?)
x:显示所有进程,不以终端区分
ps ef
8
find find 【路径】 【条件】 【后接命令】
find . -mtime +60 查找最近60天内没有被修改的文件
find . -mtime -2 查找最近2天内修改的文件
find . -name '*.txt' -print0|xargs -0 rm -f 找出匹配并删除
【条件】: -cmin 2:两分钟前文件状态有改变的 -ctime 2:两天
-amin 2:两分钟前访问的文件 -atime 2:两天
-mmin 2:两分钟前内容改变的 -mtime 2:两天
-size +|- n 【b、c、w、k、M、G】 按大小(find . -size -1k查小于1k的)
-perm -ugo:按权限查 -uid\gid n:按uid、gid查
-user wp:按用户查 -group jf:按组查
-maxdepth|mindepth n:按目录深度查找
-type 【bcdpfls】:按类型查【特殊块、特殊字符、目录、管道、常规文件、链接、套接字】
【后接命令】-exec:-exec commind {}\;
find . -name 1* -exec rm -vf {} \; ===》已删除“./1.txt”
9
rz、sz【上传、下载】
-y:不提示,直接覆盖
10
rm
-r:删除目录 -f:不提示,直接删除,而且如果对象不存在也不会报错
-v:提示命令成功的结果(如果没成功,不会有显示)
rm -rf a/ 删除目录
rm -fv a ===》已删除“a”
11
mv
-f:不提示,直接覆盖 -i:提示覆盖与否(/bin/mv -i)
-u:仅当目的文件比较'旧'或者丢失的时候移动
12
lftp
lftp 链接ftp
get:下载文件(不支持正则) wget:下载文件(支持正则)
mirror:下载目录 mirror -R:上传目录
put:上传文件 mput:批量上传(支持正则)
13
rsync
rsync [OPTION]… SRC [SRC]… [USER@]HOST:DEST
【option】:-v:详细输出模式 -q:简单输出模式
-a:归档模式传输,保留文件属性(等于-rlptgoD)
-r:递归模式处理子目录 -l:保留软连接
-p:保留文件权限 -o:保留文件所属用户
-g:保留所属组 -D:保留设备文件信息
-t:保留时间信息 -x:不可跨文件系统传输

[root@localhost wp]# ll
-rw-r–r– 1 root root 1693 05-11 05:37 a.tar.gz
[root@localhost wp]# rsync -gov a.tar.gz
[wp@localhost ~]$ ll
-rw-r–r– 1 root root 1693 05-14 00:12 a.tar.gz
14
stat 查看文件、目录属性
File: “a”
Size: 4096 Blocks: 16 IO Block: 4096 目录
Device: 303h/771d Inode: 1633628 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2010-05-14 00:26:32.000000000 +0800
Modify: 2010-05-14 00:25:58.000000000 +0800
Change: 2010-05-14 00:25:58.000000000 +0800
Links: 硬链接数
-f:显示文件的头部信息和文件系统的信息
stat -f test

15
zip zip 【参数】 【打包后的文件名】 【打包的目录路径】
【参数】: -F 尝试修复损坏的压缩文件 -m 将文件压缩之后,删除源文件
-o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间
-q 安静模式,不显示过程 -r 递归处理目录
-t 日期,把压缩文件的最后修改日期设为指定的日期,日期格式为mmddyyyy
-P:对压缩包加密
zip -t 11052010 test.zip test
16
unzip unzip 【参数】 【压缩包】 【解压后的文件名】
-l:显示压缩包内文件信息 unzip -l test.zip
Archive: test.zip
Length Date Time Name
——– —- —- —-
0 05-13-10 20:08 test
——– ——-
0 1 file
-f:覆盖(更新)现有文件 -v:执行是时显示详细的信息
-t:检测压缩包是否可用 -n:压缩时不要覆盖原有的文件
-q:安静,不显示任何信息 -X:解压后保留所属
-p:密码(用zip中定义的)
17
输入输出重定向
<、>:输入输出,直接覆盖原有内容 >>:追加,追加到文件尾部
echo bb < cc > test 先将cc内容覆盖test再把bb输入到test
18
df 显示分区使用
-a:显示所有设备使用情况 -h:人性化显示
-i:查看inode使用情况 -T:显示有使用的挂载目录的使用
du 显示目录使用
du -b /home 以字节为单位显示 /home 文件夹下各个子文件夹的大小
du -ks home 以千字节 KB 为单位显示/home 文件夹的总大小
19
终端的控制
Ctrl + l 清除屏幕内容
Ctrl + u 清除光标之前的内容
Ctrl + k 清除光标之后的内容
Ctrl + h 类似于退格键
Ctrl + r 在历史命令中查找 (这个非常好用,输入关键字就调出以前的命令了)
Ctrl + c 终止命令
Ctrl + d 退出shell
Ctrl + z 将当前在前台执行的任务转入后台运行..
20
netstat
功能说明:显示网络状态。
常用参数
-a 显示所有端口
-n 直接显示ip而不是域名
-p 显示正在使用端口的程序名
-s 显示网络统计信息
-t或–tcp 显示TCP传输协议的连线状况。
-u或–udp 显示UDP传输协议的连线状况。
21
sort sort [OPTION]… [FILE]…
-u 排序后认为重复的行,去除掉,等同于uniq
-o 输出文件 将排序输出写到输出文件中而不是标准输出,如果输出文件是输入文件之一,
sort先将该文件的内容写入一个临时文件,然后再排序和写输出结果。
-d 按字典顺序排序,比较时仅字母、数字、空格和制表符有意义。
-f 将小写字母与大写字母同等对待。-
I 忽略非打印字符。-
M 作为月份比较:“JAN”<“FEB”- r 按逆序输出排序结果。
22
Traceroute 查看数据包所经过的路由的ip
常用参数:
-f:开始时的TTL值默认为1
-i:设备名
-m:ttl最大值
-p:指定目标端口
-s:源ip
-t:设定tos值
-I:发送ICMP协议
-T:发送TCP协议
-U:发送UDP协议(默认)
23
kill   kill命令用来中止一个进程。   
格式  kill [ -s signal | -p ] [ -a ] pid …   kill -l [ signal ]   
-s:指定发送的信号。  -p:模拟发送信号。  -l:指定信号的名称列表。
  pid:要中止进程的ID号。  Signal:表示信号。 -hub 重启进程
Killall 与 pkill 强制杀死
kill -9 pid 强行终止
killall httpd 终止同一进程组内的所有进程。
kill -HUP pid 重启进程
24
rpm
rpm -i tomcat4.rpm 安装 Tomcat 软件并进行相关系统配置
rpm -qi packagename 要想查出某个已经安装的软件包的功能
rpm -U rpm 包名 rpm –U tomcat4.rpm 升级 Tomcat 软件并进行相关系统配置
rpm -qa | grep 'tomcat' 列出包名中包含 tomcat 的软件包
rpm -qf filename 找出某个特定的文件到底是属于哪个软件包的
rpm -V 验证
25
本机时间同步
/sbin/hwclock –hctosys 将硬件时钟系统时间同步到 Linux 操作系统时间
/sbin/hwclock –systohc 将 Linux 操作系统时间同步到硬件时钟系统时间
/sbin/hwclock –show 查看当前硬件时钟系统时间
26
shell条件
-b file 若文件存在且是一个块特殊文件,则为真
-c file 若文件存在且是一个字符特殊文件,则为真
-d file 若文件存在且是一个目录,则为真
-e file 若文件存在,则为真 (=-a)
-f file 若文件存在且是一个规则文件,则为真
-g file 若文件存在且设置了SGID位的值,则为真
-h file 若文件存在且为一个符合链接,则为真
-k file 若文件存在且设置了"sticky"位的值
-p file 若文件存在且为一已命名管道,则为真
-r file 若文件存在且可读,则为真
-s file 若文件存在且其大小大于零,则为真
-u file 若文件存在且设置了SUID位,则为真
-w file 若文件存在且可写,则为真
-x file 若文件存在且可执行,则为真
-O file 若文件存在且被有效用户ID所拥有,则为真
-G file 文件存在且被有效组id拥有,则为真
-z string 若string长度为0,则为真
-n string 若string长度不为0,则为真
string1 = string2 若两个字符串相等,则为真
string1 != string2 若两个字符串不相等,则为真

int1 -eq int2 若int1等于int2,则为真
int1 -ne int2 若int1不等于int2,则为真
int1 -lt int2 若int1小于int2,则为真
int1 -le int2 若int1小于等于int2,则为真
int1 -gt int2 若int1大于int2,则为真
int1 -ge int2 若int1大于等于int2,则为真
27
bash命令
bash -x ./aa.sh 执行并且跟踪执行过程
bash -n aa.sh 查看aa中有没有语法错误,不执行aa.sh
man bash的参数“不全” bash还支持help set 中的参数

28

shell掐头去尾

a='/asfd/123/keepalived.conf'

echo ${a%%keepalived.conf*}—>/asfd/123/

echo ${a##*/}—>keepalived.conf