which 用于查找 $PATH
中设置可执行文件,不过有些解压即可用的经常是没有放到 $PATH
中的,如 redis ,mongodb 等。
# 查找 java 命令位置 which java
如果没有放到 $PATH
中,我们也可以通过查找它的进程或端口号来找到它,如果你有权限访问的话,像这样
# 查找 zookeeper 的进程编号,如果你有权限查看的话 netstat -tlnp | grep 2181 # 查找进程的启动命令,一般都可以找到启动位置 ps -o 'cmd' --width=10000 -p <pid> # 有时也可以直接使用 ps 来查看,因为启动命令中,一般会包含你需要相关信息 # 比如常见的查看 tomcat 进程号,顺便可以查到位置 ps -ef | grep tomcat
type 用来查看命令是内建命令还是外部命令,也可以看看可执行命令的路径 ,或者查看命令是不是别名。bash 会内建一些常用命令比如 cd umask
locate 是一个比较常用的查找工具,在 which 查不到,并且软件没有启动的时候,这时候可以使用 locate 来查找,它就相当于 windows 的 everything ,已经提前做好了索引,查询速度很快,但是会有一大堆没有用的文件出来,需要你来筛选。
# 查找 redis 位置 locate redis # 两个常用的参数 -i 忽略大小写 -r 后面可以接正则表达式来搜索
和 locate
也是利用 linux 提前建立好的索引来搜索,但我在实际中用得比较少,可能是当初用的时候 ,每次用这个命令都找不到文件吧,它的使用方法如下
# 查找 mysql 位置,它会把所有的可能路径列出来 whereis mysql
find
在《鸟哥的私房菜》这本书中说是最不常用的命令,但我觉得它应该是我最常用的一个命令了,因为实在是太方便了。
因为 find
没有使用 linux 的索引,是直接搜索磁盘的,一般不会直接搜索根路径;
但实际情况是我们的 web 应用都是放在某一个路径下的,还有日志信息等,而且 java 项目你们知道的一般都会有很深的路径,一层一层 cd 很费事,而且文件并不多的时候使用 find 还是很快速的,下面介绍 find
的常用参数 。
下面只列出程序员来说比较常用的,运维需要知道的可能不止这些,大神忽喷。
# find 的命令格式如下 find [PATH] [option] [action] # 查找 classes 下某个类 find ./classes -type f -name 'XXX.class' # 经常一些类有内部类,直接查找 .class 可能会漏,可以使用通配符 find ./classes -type f -name 'XXX*' -type f 只搜索文件,-type d 只搜索目录 -name 搜索指定名称的文件 find 默认是递归搜索 # 查找 /data 目录下 大于 1G 的文件 ,G 要大写,还支持 M ,k find /data -type f -size +1G # find 的递归搜索是挺方便,但有时候就不想让它搜那么深,可以设置搜索深度. find /data -maxdepth 1 # 想排除某个目录的时候,可以使用 -path 来排除一些目录 # 不想看 2018 年的目录,可以这么玩 find /data ! -path '2018*' # 搜索到的文件我想做一些处理,比如复制到另一个地方 # 把 java 文件复制到我的主目录里面去 find /data -name '*.java' -exec cp {} ~/{} /; # 删除 classes 下的 java 文件,可能有人误上传了 find ./classes -name '*.java' -exec rm -f {} /; # 查找今天改过哪些文件,这个指从当前时间 24 小时内改过的文件 find ./classes -mtime 0
Excel 通用导入导出,支持 Excel 公式
https://blog.csdn.net/sanri1993/article/details/100601578使用模板代码 ,从数据库生成代码 ,及一些项目中经常可以用到的小工具
https://blog.csdn.net/sanri1993/article/details/98664034