一、文件搜索命令(which、 whereis 、find 、locate、updatedb、grep)
·which 显示系统命令所在目录
which [命令名]
·whereis 同上
·find 查找文件或目录(这个命令挺占资源的尽量放在晚上,网站访问量小的)
find [搜索路径] [搜索关键字]
-name 根据文件名来查找
* 匹配任意字符串
find etc -name *init* 查找etc目录下的包含“init”的文件(init左边有或没有字符,右边有或没有字符)
? 匹配单个字符
find etc -name init??? 查找etc目录下的包含"init"且后跟三个字符的文件
-size 文件大小
+ 大于
- 小于
find -size +20480 查找根目录下大于20M的文件
-user 文件所有者
-type 文件类型 f(二进制文件) l(软连接文件) d(目录)
-inum i节点 通过i节点来查找文件,因为有些文件名命令方式很奇怪,不好输入关键字
时间选项
ctime atime mtime 以天为单位
cmin amin mmin 以分钟为单位
c change 改变,表示文件的属性被修改过,所有者,所属组,权限
a access 访问
m modify 修改,表示文件的内容被修改过
- 小于
+ 大于
find /etc -mmin -120 etc目录下两个小时之内被修改过文件内容的文件
连接符
-a and 逻辑与
-o or 逻辑或
find /etc -size +163840 -a -name init* 查找大于80M的init开头的文件
-exec
find /etc -name inittab -exec ls -l {} ; 查找etc目录下的inittab文件并且显示其详细信息,{}表示查找出的结果集合,是转义符,;是结束
-ok 同exec,但是会询问是否执行后面的命令
·locate (linux特有)寻找文件或者目录,通过从数据库索引中查找文件,速度比find更快。但是如果没有更新DB,则查找不到,比如你创建一个新文件,like查找,找不到
locate [文件关键字]
·updatedb 建立整个系统目录文件的数据库,配合locate命令
·grep 在文件内容中搜索字串匹配的行输出
-v 反转匹配结果,当你不想看含有某种字符的行时,可以使用这个选项
grep [关键字] [源文件]
grep ftp /etc/services 搜索/etc/services文件中的ftp内容
二、帮助命令(man、info 、whatis 、help、alias、unalias)
·man manual 获取配置文件或命令的帮助信息,调用more命令浏览文档信息(默认优先查看命令的帮助)
man [命令名或文件名]
·info information (linux特有)获取帮助命令,同上
·whatis 获得索引的简短说明信息,命令最基本用途
·help 查看shell内置命令的帮助
·alias 查看或定义别名(linux有这个设定)
alias copy=cp copy等于cp命令
alias drm="rm -rf" drm等于加选项的rm的命令
·unalias 删除别名
unalias [命令别名]
三、压缩解压命令(file、gzip、gunzip、tar、zip、unzip、bzip2、bunzip2)
·file 判断一个文件的类型
·gzip GNU zip 压缩文件,不能压缩目录,压缩完成后不保留源文件
gzip 选项 [文件]
·gunzip GNU unzip 解压缩
gunzip [压缩文件名]
·tar 打包目录成一个文件.tar
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩.tar.gz
-x 解包.tar文件
tar -zcvf [目录].tar.gz [目录] 打包并压缩[目录]
tar -zxcf dir.tar.gz 解包dir
·zip 压缩文件和目录成.zip格式(windows和linux唯一通用的格式)会保留源文件
zip 选项[-r] [压缩后文件名称] [文件或目录]
-r 压缩目录
·unzip 解压缩.zip
unzip [.zip文件名]
·bzip2 压缩文件称.bz2,默认不保留源文件
bzip2 选项 [-k] [文件]
-k 保留源文件
·bunzip2 解压缩.bz2
bunzip2 -k [.bz2文件]
-k 解压后保留源文件
四、网络通信指令(write、wall、ping)
·write 向另外一个用户发送信息,以Ctrl+D作为结束,登陆同一台linux的用户可以相互通信,必须在线才能发消息
write [用户名] 然后输入信息
·wall wirte all 写给所有用户
·ping 测试网络连通性,只有root可以用
ping ip地址
-c 发送的数据包个数
ping -c 3 192.16.54.1 发送3个数据包
-s 数据包个数
·ifconfig interface configer 显示ip设置
五、系统关机命令(shutdown、reboot)
·shutdown 关机命令。默认等待一会
-h now 立刻关机
·reboot 重启命令
六、Shell应用技巧
Shell就是一个命令解释器,用作内核和命令交互,推荐使用默认的bash
1、输入输出重定向
同标准I/O一样,Shell对于每一个进程预先定义3个文件描述字
0(STDIN)标准输入
1(STDOUT)标准输出
2(STDERR)标准错误输出
输出重定向
ls -l /test > /tmp.msg 将ls输出信息不打印在屏幕,而是存入/tmp.msg文件中
>会重写文件,>>是最加内容
输入重定向
wall < /etc/motd 将/etc/motd文件内的信息广播全体用户
错误输出重定向
ls -l /sdfs 2> /bak.err 没有这个目录,会出错,可以将错误信息写进/bak.err
2、管道
管道:将一个命令输出传送给另一个,作为另一个命令的输入
使用:
命令1 | 命令2 | 命令3 | ……
例:
ls -l /etc | more 利用more浏览/etc目录
3、命令连接符
; 分隔命令,按顺序依次执行。
&& 逻辑与,第一个命令执行成功才执行第二个
|| 逻辑与,第一个执行成功,第二个不执行,第一个失败,第二个执行
4、命令替换符
将一个命令的输出作为另一个命令的参数
例:ls -l `which touch` 显示touch命令文件的详细信息,和管道流还是有区别的