# WP-test **Repository Path**: h455257166/wp-test ## Basic Information - **Project Name**: WP-test - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-04-23 - **Last Updated**: 2021-04-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # **Shell常用命令** ------------ ## 运行Shell脚本的方法(两种方式) > 情景:我需要运行 "/opt/test/" 目录下的 "test.sh" 脚本 test.sh 脚本的代码如下: ``` #!/bin/bash echo "Hello World !" ``` > #! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。 > echo 命令用于向窗口输出文本。 > 在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为 #!/bin/bash。 - #### 方法1: - ###### 作为可执行程序运行 ``` cd /opt/test/ # 用cd命令进入到相应的目录 chmod +x ./test.sh # 使该脚本具有管理员的执行权限 ./test.sh # 执行脚本 ``` > 注意:执行脚本一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH(目录) 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。 - #### 方法2: - ###### 作为解释器的参数运行,这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名 ``` /bin/sh test.sh # 用sh的解释器执行sh文件 /bin/php test.php # 用php的解释器执行php文件 ``` ------------ ## 文件夹操作 > 情景:我需要删除 "/opt/test/" 这个目录下的 "app"文件夹 - 如果"app"文件夹为空文件夹,可以使用以下命令: ``` rmdir /opt/test/app #rmdir 适合文件夹为空文件夹的时候使用 ``` - 如果"app"文件夹内有下级文件夹和文件,不为空文件夹可以使用以下命令: ``` rm -rf /opt/test/app #-r:向下递归,无论多少级目录,一并删除 #-f:直接强制删除,不做任何提示 建议使用: rm -r /opt/test/app ``` > 情景:创建 "/opt/test/app" 这个文件夹结构 ``` mkdir -p /opt/test/app # `mkdir -p` 递归创建目录,即使上级目录不存在,会按目录层级自动创建目录 ``` ------------ ## 判断语句 ``` [ -d $file ] # -d directory意思 用于判断目录是否存在,判断参数file是否是目录,是则true,否则false。 [ -n $str ] # -n 用于判断字符串长度是否为0,不为0则true,为0则false。注意只要有一个符号就不为空,空格也不行 [] 这个叫条件表达式 是简易版的if ! 非运算符,在shell脚本中表示取反,[ ! true ]返回false。 ```