精华内容
下载资源
问答
  • 主要介绍了Linux命令搜索命令whereiswhich的区别的相关资料,这里举例说明该如何区别他们之家的用法,需要的朋友可以参考下
  • which 命令格式 which --help Usage: /usr/bin/which [options] [--] COMMAND [...] Write the full path of COMMAND(s) to standard output. 作用 locate a command,从环境变量PATH中,定位/返回与指定...

    which

    命令格式

    which --help
    Usage: /usr/bin/which [options] [--] COMMAND [...]
    Write the full path of COMMAND(s) to standard output.
    

    作用

    locate a command,从环境变量PATH中,定位/返回与指定名字相匹配的可执行文件所在的路径

    原理

    执行which命令时,which会在当前环境变量PATH中依次寻找能够匹配所找命令名字的可执行文件名,不加-a选项,返回第一个匹配的可执行文件的路径,否则依次返回满足条件的所有可执行文件的路径名。

    适用场合

    一般用于查找命令/可执行文件所在的路径。有时候可能在多个路径下存在相同的命令,该命令可用于查找当前所执行的命令到底是哪一个位置处的命令。

    whereis

    用法:
     whereis [选项] 文件
    
    选项:
     -b         只搜索二进制文件
     -B <目录>  定义二进制文件查找路径
     -m         只搜索 man 手册
     -M <目录>  定义 man 手册查找路径
     -s         只搜索源代码
     -S <目录>  定义源代码查找路径
     -f         终止 <目录> 参数列表
     -u         搜索不常见记录
     -l         输出有效查找路径
    

    原理:whereis命令首先会去掉filename中的前缀空格和以.开头的任何字符,然后再在数据库(var/lib/slocate/slocate.db)中查找与上述处理后的filename相匹配的二进制文件、源文件和帮助手册文件,使用之前可以使用updatedb命令手动更新数据库。
    适用场合:二进制文件、源文件和帮助手册文件路径的查找。

    find

    用法: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
    
    默认路径为当前目录;默认表达式为 -print
    表达式可能由下列成份组成:操作符、选项、测试表达式以及动作:
    
    操作符 (优先级递减;未做任何指定时默认使用 -and):
          ( EXPR )   ! EXPR   -not EXPR   EXPR1 -a EXPR2   EXPR1 -and EXPR2
          EXPR1 -o EXPR2   EXPR1 -or EXPR2   EXPR1 , EXPR2
    
    positional options (always true): -daystart -follow -regextype
    
    normal options (always true, specified before other expressions):
          -depth --help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf
          --version -xautofs -xdev -ignore_readdir_race -noignore_readdir_race
    
    比较测试 (N 可以是 +N 或 -N 或 N): -amin N -anewer FILE -atime N -cmin N
          -cnewer 文件 -ctime N -empty -false -fstype 类型 -gid N -group 名称
          -ilname 匹配模式 -iname 匹配模式 -inum N -ipath 匹配模式 -iregex 匹配模式
          -links N -lname 匹配模式 -mmin N -mtime N -name 匹配模式 -newer 文件
          -nouser -nogroup -path PATTERN -perm [-/]MODE -regex PATTERN
          -readable -writable -executable
          -wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N
          -used N -user NAME -xtype [bcdpfls]
          -context 文本
    
    
    操作: -delete -print0 -printf 格式 -fprintf 文件 格式 -print 
          -fprint0 文件 -fprint 文件 -ls -fls 文件 -prune -quit
          -exec 命令 ; -exec 命令 {} + -ok 命令 ;
          -execdir 命令 ; -execdir 命令 {} + -okdir 命令 ;
    
    

    作用

    search for files in a directory hierarchy. 从当前目录递归的搜索文件。

    原理

    遍历当前工作目录及其子目录,find命令是在硬盘上遍历查找,非常耗硬盘资源,查找效率相比whereis和locate较低。

    适用场合

    能用which、whereis和locate的时候尽量不要用find.

    which whereis find对比

    在这里插入图片描述

    展开全文
  • linux利用whereis,which查找文件

    千次阅读 2019-02-20 15:06:23
    可以通过find命令查找,但是也可以通过whereiswhich来快速定位。 whereis whereis可以定位二进制文件,源文件,说明文件,查找时不需要文件的前置路径和后置扩展,whereis会尝试在标准的linux位置,$PATH 和 $...

    在linux上安装了某个应用时,是否会偶尔找不到应用的某些文件位置???
    可以通过find命令查找,但是也可以通过whereis,which来快速定位。

    whereis

    whereis可以定位二进制文件,源文件,说明文件,查找时不需要文件的前置路径和后置扩展,whereis会尝试在标准的linux位置,$PATH 和 $MANPATH中定位我们想要的程序。并且whereis可以同时分别查找多个文件。例如, 在man whereis有如下例子,

    tangs@ubuntu:~$ whereis -bm ls tr -m gcc
    ls: /bin/ls /usr/share/man/man1/ls.1.gz
    tr: /usr/bin/tr /usr/share/man/man1/tr.1.gz
    gcc: /usr/share/man/man1/gcc.1.gz
    

    这就是查找ls,tr的二进制文件路径和说明文件路径,同时只查找gcc的说明文件路径。

    whereis提供以下可输入参数:

    参数说明
    -b查找二进制位文件
    -m查找说明文件
    -s查找源文件
    -u只显示有不寻常的条目的命令;如果一个命令对于一个明确的请求类型不是只有一个条目(即0和多个),则称这个命令是不寻常的。
    -B directory指定目录查找二进制文件
    -M directory指定目录查找说明文件
    -S directory指定目录查找源文件
    -f将需要查找的路径和需要查找的命令隔开,必须和 -B,-M,-S 一起使用
    -l列出whereis查找命令时的有效的查找路径
    -h查看帮助信息
    -V查看版本信息

    以上参数中值得注意的是-f参数,它的原文解释为:

    Terminates the directory list and signals the start of filenames.  It must be used when any of the -B, -M, or -S options is used.
    

    但是一些blog和教程网站的解释为不显示文件名前的路径名称,如下图,我是觉得他们都解释错了。这应该是解释为在使用 -B,-M,-S时指定的路径是多个,查找的文件也是多个,那就需要一个-f参数将 查找的路径和查找的文件隔开,形如:

    # where -BMS 目录 -f 文件名
    tangs@ubuntu:/bin$ whereis -S /bin/ /usr/local -f ls ps
    ls: /bin/ls /usr/share/man/man1/ls.1.gz /bin/ls
    ps: /bin/ps /usr/share/man/man1/ps.1.gz /bin/ps
    

    在这里插入图片描述

    which

    which是一个很简单的命令,它就是在当前环境变量中查找可被执行文件或者可被执行文件链接的路径,最终就是在$PATH中查找路径,whereis命令已经可以做到这一点了。
    实例:

    tangs@ubuntu:/bin$ which ls ps
    /bin/ls
    /bin/ps
    
    展开全文
  • which,whereis,locate,find的用法与区别
  • 使用Pycharm过程中想要用...UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, 查了好多都不好用,找到一种可行的方法,在终端输入下面命令 sudo apt-get install tcl-dev tk-d...

    使用Pycharm过程中想要用matplotlib模块画图,结果plt.show()怎么都没有图片显示,还出现警告

    UserWarning: Matplotlib is currently using agg, which is a non-GUI backend,

    查了好多都不好用,找到一种可行的方法,在终端输入下面命令

    sudo apt-get install tcl-dev tk-dev python-tk python3-tk

     代码中这么些

    import tkinter
    import matplotlib
    matplotlib.use('TkAgg')
    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.linspace(-2,2,100)
    y1 = 3*x + 4
    y2 = x**2
    
    plt.plot(x,y1)
    plt.plot(x,y2)
    
    plt.show()

    展开全文
  • 一、说明:SpringBoot整合SpringSecurity实现JWT认证,选用了SignatureAlgorithm.HS512算法,在用使用base64-secret作为私钥JWT进行签名的时候报错: org.springframework.context.ApplicationContextException: ...

    项目:

    一、说明:SpringBoot整合SpringSecurity实现JWT认证,选用了SignatureAlgorithm.HS512算法,在用使用base64-secret作为私钥JWT进行签名的时候报错:

    org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
    	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:155) ~[spring-boot-2.0.6.RELEASE.jar:2.0.6.RELEASE]
    	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542) ~[spring-context-5.0.10.RELEASE.jar:5.0.10.RELEASE]
    	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) ~[spring-boot-2.0.6.RELEASE.jar:2.0.6.RELEASE]
    	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) [spring-boot-2.0.6.RELEASE.jar:2.0.6.RELEASE]
    	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386) [spring-boot-2.0.6.RELEASE.jar:2.0.6.RELEASE]
    	at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) [spring-boot-2.0.6.RELEASE.jar:2.0.6.RELEASE]
    	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1242) [spring-boot-2.0.6.RELEASE.jar:2.0.6.RELEASE]
    	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1230) [spring-boot-2.0.6.RELEASE.jar:2.0.6.RELEASE]	
    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jwtTokenUtils' defined in file [E:\CloneStudy\springcloud-token\target\classes\com\eureka\springcloudtoken\utils\JwtTokenUtils.class]: Invocation of init method failed; nested exception is io.jsonwebtoken.security.WeakKeyException: The specified key byte array is 40 bits which is not secure enough for any JWT HMAC-SHA algorithm.  The JWT JWA Specification (RFC 7518, Section 3.2) states that keys used with HMAC-SHA algorithms MUST have a size >= 256 bits (the key size must be greater than or equal to the hash output size).  Consider using the io.jsonwebtoken.security.Keys#secretKeyFor(SignatureAlgorithm) method to create a key guaranteed to be secure enough for your preferred HMAC-SHA algorithm.  See https://tools.ietf.org/html/rfc7518#section-3.2 for more information.
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1694) ~[spring-beans-5.0.10.RELEASE.jar:5.0.10.RELEASE]
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:573) ~[spring-beans-5.0.10.RELEASE.jar:5.0.10.RELEASE]
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495) ~[spring-beans-5.0.10.RELEASE.jar:5.0.10.RELEASE]
    	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) ~[spring-beans-5.0.10.RELEASE.jar:5.0.10.RELEASE]
    	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.0.10.RELEASE.jar:5.0.10.RELEASE]
    	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) ~[spring-beans-5.0.10.RELEASE.jar:5.0.10.RELEASE]
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.0.10.RELEASE.jar:5.0.10.RELEASE]
    	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251) ~[spring-beans-5.0.10.RELEASE.jar:5.0.10.RELEASE]
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1135) ~[spring-beans-5.0.10.RELEASE.jar:5.0.10.RELEASE]
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1062) ~[spring-beans-5.0.10.RELEASE.jar:5.0.10.RELEASE]
    	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:819) ~[spring-beans-5.0.10.RELEASE.jar:5.0.10.RELEASE]
    	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:725) ~[spring-beans-5.0.10.RELEASE.jar:5.0.10.RELEASE]
    	... 38 common frames omitted
    Caused by: io.jsonwebtoken.security.WeakKeyException: The specified key byte array is 40 bits which is not secure enough for any JWT HMAC-SHA algorithm.  The JWT JWA Specification (RFC 7518, Section 3.2) states that keys used with HMAC-SHA algorithms MUST have a size >= 256 bits (the key size must be greater than or equal to the hash output size).  Consider using the io.jsonwebtoken.security.Keys#secretKeyFor(SignatureAlgorithm) method to create a key guaranteed to be secure enough for your preferred HMAC-SHA algorithm.  See https://tools.ietf.org/html/rfc7518#section-3.2 for more information.
    	at io.jsonwebtoken.security.Keys.hmacShaKeyFor(Keys.java:81) ~[jjwt-api-0.10.6.jar:na]
    	at com.eureka.springcloudtoken.utils.JwtTokenUtils.afterPropertiesSet(JwtTokenUtils.java:37) ~[classes/:na]
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1753) ~[spring-beans-5.0.10.RELEASE.jar:5.0.10.RELEASE]
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1690) ~[spring-beans-5.0.10.RELEASE.jar:5.0.10.RELEASE]
    	... 49 common frames omitted
    

    二、分析:
    主要报错在:
    (1)Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
    一开始以为是版本依赖冲突问题,继续看后面的错误发现不是

    (2)Caused by: io.jsonwebtoken.security.WeakKeyException: The specified key byte array is 40 bits which is not secure enough for any JWT HMAC-SHA algorithm.
    大概的意思是Key的数组位数不足,返回来看自己Key代码的位置,
    发现key是用于生成Token时候的签名密钥,附上生成token的部分代码:

    public String createToken(Map<String,Object> claims){
        return Jwts.builder()
                .claim(AUTHORITIES_KEY,claims)
                .setId(UUID.randomUUID().toString())
                .setIssuedAt(new Date())
                .setExpiration(new Date((new Date()).getTime()+jwtSecurityProperties.getTokenValidityInSeconds()))
                .compressWith(CompressionCodecs.DEFLATE)
                .signWith(key, SignatureAlgorithm.HS512)
                .compact();
    }
    

    三、解决方法
    (1)依赖jjwt0.9.1之后的版本对于密钥安全性要求更高(体现在secret密钥的长度要达到一定的位数),若仍想使用安全性较低的密钥,需使用0.9.1之前的版本。
    (2)经排查,这问题是因为选用了HS512算法后,对安全要求更高了,原有的RSA算法私钥长度1024已经不符合要求,因此假如要使用该算法进行加密,需要重新更换秘钥长度,在生成RSA密钥对的时候,把keySize改为2048或者更高。
    (3)本项目的key取值是从配置文件中获取的,所以只需要把key的值(即私钥)位数变多即可:

    
    ```java
    jwt:
      header: Authorization
      #令牌前照
      token-start-with: Bearer
      #使用Base64对该令牌进行编码
      base64-secret: 1212121hsodhsdhasdhsaldhsalhdlsahdlsad(关键点)
      #令牌过期时间,单位毫秒
      token-validity-in-seconds: 1440000
    
    展开全文
  • 在运行TensorFlow.Object_Detection时遇到问题:UserWarning: Matplotlib is currently using agg, which is a non-GUI backend. 检测物体最终生成的图片无法在终端显示 解决办法 编辑tensorflow所在目录下的 models...
  • (多选)Which statement declares a variable a which is suitable for referring to an array of 50 string objects?(Java) A. char a[][]; B. String a[]; C. String[] a; D. Object a[50]; E. String a[50]; F. ...
  • Linux which命令的使用方法

    万次阅读 2017-05-24 09:43:20
    Linux which命令的使用方法 功能简述which命令的作用是在PATH变量指定的路径中搜索某个系统命令的位置并且返回第一个搜索结果。也就是说使用which命令就可以看到某个系统命令是否存在以及执行的到底是哪一个位置的...
  • error: request for member 'push' in 's', which is of non-class type 'T_stack<int>()'| 先上实现代码,先不要在意我为什么不直接用stl::stack,而是自定义的stack里套一个std::vector。这里是想试一下模板...
  • 我本地的AndroidStudio版本是4.2,而我们项目的gradle版本是3.0.1,编译报错不兼容,提示需要升级到4.8.1,升级后是不报错了,但各种类方法依赖库找不到问题,因此此方法行不通 最后经过排查发现原因为,4.2版本...
  • 我在项目中使用Mybatis... number of parameters, which is 0)的错误。 经查阅资料发现,注解的SQL 使用like的写法有问题,正确写法应该如下: 平时我们写SQL like语句的时候 一般都会写成 like '% %' 在Myb...
  • which is not functionally dependent on columns in GROUP BY clause

    万次阅读 多人点赞 2019-07-15 12:23:09
    mysql出现which is not functionally dependent on columns in GROUP BY clause报错欢迎使用Markdown编辑器总结 欢迎使用Markdown编辑器 假设查询语句是下面这样: SELECT d_1 FROM table WHERE id = 1 GROUP ...
  • python第三方库安装后遇到的问题 ...然后装好了,就黄字提示我 WARNING: The script jsonschema.exe is installed in ’ 你的python.exe所在盘符位置‘ which is not on PATH. 有问题找百度 那最后使用的是 新建
  • which命令用法举例

    千次阅读 2018-09-11 09:00:03
    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:  which 查看可执行文件的位置。 whereis 查看文件的位置。  locate 配合数据库查看文件位置。 find 实际搜寻硬盘查询文件...
  • [Fatal Error] total number of created files now is 100385, which exceeds 100000. Killing the job.     并最终导致了SQL的运行失败。这个错误的原因是因为 Hive 对创建文件的总数有限制( hive.exec....
  • 其实开始是另一个报错,说box需要一个size,我就给padding加了width和height,然后错误信息就成了现在这个,搜资料说是ROW嵌套TextField时计算控件属性引起的问题,需要使用Expanded包裹一下,直接包裹就行 ...
  • Category is implementing a method which will also be implemented by its primary class
  • How to check which CUDA version is installed on Linux ? (CUDA version) 如何检查 Linux 上安装的 CUDA 版本? http://arnon.dk/ http://arnon.dk/check-cuda-installed/ There are several ways and steps you ...
  • 安装好APR之后,使用root用户启动Tomcat正常没有错误,使用服务启动,服务指定Tomcat用户启动报错 cat /usr/lib/systemd/system/tomcat.service [Unit] Description=Tomcat After=syslog.target network....
  • 最近因为好奇python数据分析,就学习了matplotlib。但是在使用的时候出现了如下错误: ...UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure. plt.show()
  • 遇到该问题的代码,请参考:spring boot Websocket(使用笔记) 当使用getAsyncRemote 的方式,也就是异步的方式发送消息的时候,导致该问题的产生...解决方法: 就是添加synchronized 关键字; 那么这和getBasi...
  • 疑问代词which/what/who的用法

    千次阅读 2019-07-16 22:34:25
    若后接名词(即用作限定词),只用which和what,不能用who,因为who不是限定词。 Which / What train did you come on? 你是坐哪次火车来的?1、当选择的范围较小或比较明确时,多用 which,当选择的范围较较大或不...
  • Class MediaTransCoder is implemented in both /private/var/containers/Bundle/Application/7D09FAA4-C843-44D9-89ED-132F614B5F5D/FSVideo.app/Frameworks/MediaTransCoder.framework/MediaTransCoder (0x10675...
  • Linux下查找相关命令主要有以下4个:which、whereis、locate、find。(1)which [-a] cmdname1 cmdname2 ...... 作用:locate a command,从环境变量PATH中,定位/返回与指定名字相匹配的可执行文件所在的路径 ...
  • 如题所示,在React开发中,我们会自定义一些函数,比如hook函数,或者组件,当我们使用了useState,useEffect等这些hook函数的时候,可能会报错,如下所示,是一个完整的报错信息截图: 报错信息很明确,就是load...
  • 在Linux中,有很多方法可以做到这一点。国外网站LinuxHaxor总结了五条命令,你可以看看自己知道几条。大多数程序员,可能经常使用其中的2到3条,对这5条命令都很熟悉的人应该是不多的。 1. find find是最常见...
  • WebFlux中,如果是Mono/Flux.map()或者其他方法体是属于NonBlocking线程,如果在NonBlocking线程中再调用阻塞方法(block()等)会报错 static final class NonBlockingThread extends Thread implements ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 346,239
精华内容 138,495
关键字:

is的用法which