Articles under the label of 文件

默认分类

说明:

  • 把字符串当成整型进行比较,由于abcd等字符对不上0123当程序尝试去转成二进制时无法完成转换,所以用于数值比较的运算不能用于字符串比较;但是把整型当成字符串进行比较,0123这些数值完全可以转成ASCII码而且原本两个整型相等则变成ASCII码还是相等、不等的还是不等,所以可用于字符串的比较也可用于整型的比较。
  • if语句中,数值比较的写法是if [ $var1 -ge $var2 ];字符串比较的写法是if [ "$var1" != "$var2" ],其中加双引号只是兼容$var2处为空的情况
  • 在各种运算中,test命令的运算和中括号是等效的
  • 赋值时等号两边没空格,比较或测试时运算符两边都要有空格
  • shell默认是字符运算,如果想当数值进行运算要在前边加上expr,如:var3='expr $var1 + $var2'
  • shell的文件包含命令只有“.”,而且该命令只能一次包含单个文件(当然可以用*表示文件夹下所有文件)而不能包含一个文件夹;所见的!includedir和#includedir并不存在这样的命令,应该是程序自己实现的包含功能
  • “.”在shell中执行则会影响shell的环境,但如果只在脚本中执行那只影响脚本中的环境不会影响当前shell的环境;source其实也如此。

1. 只适用于数值的比较


该类型操作会把两边变量当成整型进行加减运算,字符串abcd按整型运算无法进行,所以此类型不能用于字符串比较

参数说明
-eq等于则为真
-ne不等于则为真
-gt大于则为真
-ge大于等于则为真
-lt小于则为真
-le小于等于则为真
if  [ $i -eq 10 ]

2. 适用于字符串的比较(也可用于数值比较)


参数说明
==相等则为真
!=不相等则为真
注意:==的功能在[[]]和[]中的行为是不同的,如下:

[[ $a == z* ]] #如果$a以“z”开头(模式匹配)那么将为true

[[ $a == "z*"]] #如果$a等于z(字符匹配)那么为true,为字符

[ $a == z* ] #file flobbing和word splitting将会发生

[ "$a" == "z*" ] #如果$a等于z*(字符匹配),那么为true

3. 字符串测试运算


参数说明
-z 字符串字符串的长度为零则为真
-n 字符串字符串的长度不为零则为真
if[ -z $i ]

4. 文件测试运算


参数说明
-e 文件名如果文件存在则为真
-r 文件名如果文件存在且可读则为真
-w 文件名如果文件存在且可读则为真
-x 文件名如果文件存在且可执行则为真
-s 文件名如果文件存在且至少有一个字符则为真
-d 文件名如果文件存在且为目录则为真
-f 文件名如果文件存在且为普通文件则为真
-c 文件名如果文件存在且为字符型特殊文件则为真
-b 文件名如果文件存在且为块特殊文件则为真
if [ -d /root/cw ]

- Read More -
默认分类

在PVE服务器里面创建Docker并安装PortainerGUI

  • Install Proxmox VE
  • 进行以下源代码调整以便可以更新:

要首先修复此问题,请添加无订阅源:
编辑文件:

# nano /etc/apt/sources.list

添加:

deb http://download.proxmox.com/debian stretch pve-no-subscription

删除企业源,编辑文件:

# nano /etc/apt/sources.list.d/pve-enterprise.list

找到并删除或注释掉以下一行:

# deb https://enterprise.proxmox.com/debian stretch pve-enterprise

更行系统源:

apt-get update && apt-get dist-upgrade -y
  • 重启服务器
  • 安装 docker-ce:
apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
apt-key fingerprint 0EBFCD88
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
apt-get update && apt-get install docker-ce -y

你现在应该可以运行docker ps并且没有看到正在运行的容器

  • 使用持久容器安装Portainer

为了便于入门,我们将在引导驱动器上创建一个目录。您应该将其移动到其他存储,这样比较简单:

mkdir /root/portainer/data

为Docker WebGUI安装Portainer:

docker run -d -p 9000:9000 -v /root/portainer/data:/data -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

在您看到Portainer启动后等待大约15-30秒(您可以运行“docker ps”查看状态)

  • Your login URLs will be the following ports:
Proxmox GUI: https://<serverip>:8006
Portainer GUI: http://<serverip>:9000

- Read More -
Windows,Mac,PHP,CSS,JavaScript

VSCode的ftp-sync是一个通过sftp/ftp自动同步本地文件到远程机器的插件,配置之后,远程调试会方便很多,本地修改文件保存后会自动同步到远程机器。

安装插件后,shift+ctrl+p, 打开VSCode的命令搜索界面,输入ftp,会出现ftp-sync支持的所有命令。

Init: 新项目建立,使用此命令新建一份ftp配置,配置文件位于项目根目录下的.vscode/ftp-sync.json,其中主要需要配置以下参数:

remotePath: 远程目录,默认是 ./ ,表示home目录,此目录对应于本地项目的目录,比如本地项目位于D:/work/myproject , 远程项目目录为$HOME/work/myproject, 就填写./work/myproject.

username: 用户名,sftp、ftp的用户名

password: 密码

protocol: 可以填写ftp和sftp,默认是ftp。

port: 默认是21,ftp/sftp的端口,一般ftp的默认端口是21,sftp默认端口是22.

ignore: 忽略同步的目录和文件。

debug: 默认是false,如果设置为true,可以看到通过菜单的 查看->输出 打开输出界面,看到打印,怀疑自己连接有问题的可以打开看看。

uploadOnSave: 默认是false,建议设置成true,这样每次修改后ctrl+s保存后会自动同步。否则就需要手动同步

local to Remote: 启动一个向导,把本地文件同步到远程,用于手动同步。Remote to Local: 启动一个向导,用于把远程文件同步到本地。Sync Current file to

Remote: 同步当前窗口文件到远程机器。Upload file/Folder: 上传文件、文件夹。Commit: 查看本地和远程文件的差别,然后同步。

- Read More -
This is just a placeholder img.