例子
1 |
|
结果
1 | Shellhttp://c.biancheng.net/shell/ |
参考链接
例子
1 | #!/bin/bash |
结果
1 | Shellhttp://c.biancheng.net/shell/ |
参考链接
格式
1 | ${string:start:end} |
例
1 | url="c.biancheng.net" |
end 省略则截取到末尾
1 | url="c.biancheng.net" |
格式
1 | ${string: 0-start :length} |
例
1 | url="c.biancheng.net" |
end 省略
1 | url="c.biancheng.net" |
1 | ${string#*chars} |
例
1 | url="http://c.biancheng.net/index.html" |
注意,以上写法遇到第一个匹配的字符(子字符串)就结束了。例如
1 | url="http://c.biancheng.net/index.html" |
如果希望直到最后一个指定字符(子字符串)再匹配结束,那么可以使用##,具体格式为
1 | ${string##*chars} |
例
1 | #!/bin/bash |
使用%号可以截取指定字符(或者子字符串)左边的所有字符,具体格式如下:
1 | ${string%chars*} |
请注意的位置,因为要截取 chars 左边的字符,而忽略 chars 右边的字符,所以应该位于 chars 的右侧。其他方面%和#的用法相同,这里不再赘述,仅举例说明:
1 | #!/bin/bash |
格式 | 说明 |
---|---|
${string: start :length} | 从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。 |
${string: start} | 从 string 字符串的左边第 start 个字符开始截取,直到最后。 |
${string: 0-start :length} | 从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符 |
${string: 0-start} | 从 string 字符串的右边第 start 个字符开始截取,直到最后 |
${string#*chars} | 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符 |
${string##*chars} | 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符 |
${string%*chars} | 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 左边的所有字符 |
${string%%*chars} | 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 左边的所有字符 |
参考链接
1 | FATAL Something's wrong. Maybe you can find the solution here: https://hexo.io/docs/troubleshooting.html |
解决办法是修改package.json
文件,升级hexo-renderer-stylus
到2.0.0
版本
参考链接
https://evestorm.github.io/posts/430/
https://www.4spaces.org/hexo-mode-argument-must-be-integer-error/
错误描述
1 |
|
解决方案, 找到对应的磁盘文件(可以在网页里查看到磁盘的挂载路径)
例如
1 | [datastore1] openwrt/openwrt-x86-64-generic-squashfs-combined.vmdk |
尝试修复
1 | vmkfstools -x repair /vmfs/volumes/<datastorepath>/<vm name>/<vm name main base disk>.vmdk |
例如
1 | # 切换到该目录下 |
结果
1 | Disk was successfully repaired. |
磁盘修复成功, 可以打开了.
当 jupyter 配置了 SSL 时, Nginx 反向代理时也需要用 https 协议
例如, 反向代理到本地的 10000 端口
错误示范
1 | proxy_pass http://127.0.0.1:10000; |
正确示范
1 | proxy_pass https://127.0.0.1:10000; |
在基于 Docker 部署 jupyter 工作环境时, 可能会发生可以打开网页, 可以创建文件, 但是无法与后端 python 连接的情况.
查看 jupyter 日志显示
1 | jupyter | [W 2021-09-21 16:09:24.778 ServerApp] 400 GET /terminals/websocket/1 (172.27.0.1) 1.21ms referer=None |
当我尝试用 jupyter 提供的 terminal 时, 发现以上日志.
这说明这个请求没有成功, 400 状态码参考 MDN
1 | HTTP 400 Bad Request 响应状态码表示由于语法无效,服务器无法理解该请求。 客户端不应该在未经修改的情况下重复此请求。 |
所以应该是 nginx 在与 jupyter 通信时发生了问题.
Google …
找到以下解决方案, 一个可用的 Nginx 反向代理配置
1 |
|
注意添加这三项
1 | proxy_http_version 1.1; |
参考链接
https://jupyter-notebook.readthedocs.io/en/latest/config.html#options
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/400
在用 crontab 定时备份 gitlab 时, 发现任务总是不成功. 😱😱😱
命令如下
1 | 0 0 * * * /root/docker/gitlab/backup-gitlab.sh >> /root/docker/gitlab/backup-gitlab.log 2>&1 |
测试后发现日志总是没有任何输出, 说明这个命令没有被执行. 🤔🤔🤔
随便写了条命令测试
1 | * * * * * echo "`date`" > /root/crontest.log |
发现有输出…. 😲😲😲
那么说明 crontab 确实工作了…. 😵😵😵
沉思…. 🤔🤔🤔
虽然我不太清楚是什么原因, 但是当我把以下配置加入 crontab 后他开始工作了. 😄😄😄
1 | SHELL=/bin/bash |
也许是因为显式指定了 shell, 以及一些其他的一些参数, 导致可以正常工作, 因为我之前一直怀疑是权限的问题. 🤣🤣🤣
参考连接
错误提示:
1 | you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check) |
如果你以root用户运行编译, 会有这个提示. 有两个解决方案, 你可以换一个非root用户, 或者接忽略提示.
1 | export FORCE_UNSAFE_CONFIGURE=1 |
参考链接
项目基于 docker 搭建.
编辑 gitlab.rb 文件
该文件在容器里的路径为
1 | /etc/gitlab/gitlab.rb |
编辑一下内容
1 | gitlab_rails['manage_backup_path'] = true |
更新 gitlab 配置
1 | gitlab-ctl reconfigure |
使用 crontab 添加定时任务
1 | crontab -e |
添加配置, 每天 0 点备份
1 | 0 0 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create |
查看备份文件, 备份目录在容器里的路径
1 | /var/opt/gitlab/backups |
查看
1 | cd /var/opt/gitlab/backups |
参考链接
https://blog.csdn.net/rdp1305442102/article/details/105768441
实验路径
1 | /opt/au1200_rm/build_tools/bin |
1 | export PATH=$PATH:/opt/au1200_rm/build_tools/bin |
以上命令将实验路径导入到环境变量, 下次登录失效
1 | nano /etc/profile |
加入
1 | export PATH=$PATH:/opt/au1200_rm/build_tools/bin |
以上命令将实验路径导入到环境变量, 下次登录有效
1 | nano /root/.bashrc |
加入
1 | export PATH=$PATH:/opt/au1200_rm/build_tools/bin |
以上命令将实验路径导入到环境变量, 未测试下次登录是否有效
参考链接