- 运行shell脚本:Syntax error: Bad for loop variable错误解决方法
分析:
从 ubuntu 6.10 开始,ubuntu 就将先前默认的bash shell 更换成了dash shell;其表现为 /bin/sh 链接倒了/bin/dash而不是传统的/bin/bash。
解决:
cd 到 xxx.sh 文件目录,
应该用 bash xxx.sh 来运行脚本
-
解压报错: unzip: cannot find zipfile directory in one of mongo.zip or
mongo.zip.zip, and cannot find mongo.zip.ZIP, period.
解决:
image.png
3.linux screen的用法
https://www.jianshu.com/p/e91746ef4058
1.创建会话:screen -S php
上面命令的意思就是新创建一个名为php的会话
2.离开会话,按住键盘上的ctrl,然后依次按a和d,好了,又回到主会话了,这时你可以继续创建其它会话或者执行其它命令,对我们创建的会话内容没有任何影响,你甚至可以退出会话;
3.恢复创建的会话:如果还记得会话名称,可以输入命令:
screen -r php
上面命令的意思就是恢复名为php的会话,如果你只创建了一个会话,直接如入命令
screen -r
就可以恢复了,如果不记得会话名称或者我直接输入screen创建的会话,怎么办呢,那就要用到下面的命令;
4.查看已经创建的会话:
screen -ls
上面的命令的意思就是查看本机已经创建的会话,可以查看会话的名称和id,恢复时可以使用id代替名称;
5.有时在恢复screen时会出现There is no screen to be resumed matching ****,遇到这种情况咋办呢?输入命令
screen -d ****
然后再使用恢复命令恢复就ok了
6.退出screen,使用screen会耗费一定的系统资源,所以当screen中的命令执行完毕之后,最好退出screen,直接输入命令
exit
就可以退出了。
7.其它命令
Ctrl + a,d #暂离当前会话
Ctrl + a,c #在当前screen会话中创建一个子会话
Ctrl + a,w #子会话列表
Ctrl + a,p #上一个子会话
Ctrl + a,n #下一个子会话
Ctrl + a,0-9 #在第0窗口至第9子会话间切换
[阿里云服务器安装mongodb并且启动]
// 1、下载 我是直接在local里面创一个mongodb文件夹进行下载和解压
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.9.tgz
//2、 解压
tar zxvf mongodb-linux-x86_64-3.2.9.tgz
//3创建数据文件夹和日志文件等
mkdir -p /usr/local/mongodb/mongodb-3.29/data
touch /usr/local/mongodb/mongodb-3.29/mongod.log
touch /usr/local/mongodb/mongodb-3.29/mongodb.conf
//4启动
//进入你安装的文件夹 cd /usr/local/mongodb/mongodb-3.29/bin
//启动
./mongod --dbpath=/usr/local/mongodb/mongodb-3.29/data --logpath=/usr/local/mongodb/mongodb-3.29/mongod.log --logappend --port=27017 --fork
./mongod --dbpath=/backup/etc/mongodb/data --logpath=/backup/etc/mongodb/mongod.log --logappend --port=27017 --fork
-
报错 export_etc.sh: line 9: mongoexport: command not found
解决:
在执行脚本中加入mongoexport 程序所在的绝对路径.
![](https://i-blog.csdnimg.cn/blog_migrate/035fb34d29e4563dbc297834ac5e531f.png)
mongoexport 执行 shell脚本的路径问题
6.ETC 的rpc 请求参数详情地址:
https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getblockbynumber
- mongoimport操作
可以不中断服务,后台运行
新建:screen -S import
暂时离开; ctrl + 依次按下a , d
返回: screen -r import
运行 import : bash mongoimport.sh 加上 上传文件的绝对路径(从根路径开始)
bash xxxx.sh /backup/etc/new_tx
bash import.sh /backup/etc/new_tx/
- 修改linux的环境变量 .bashrc
bashrc是一个隐藏的文件,要打开并修改该文件需要:
(1)命令:ls -a 找到文件 .bashrc;
(2) 命令 vim ~/.bashrc 进入到文件;
(3) 直接按 i 键可以对文件进行修改, Esc + :+ wq 退出并保存修改之后的文件
(4) 命令 :source ~/.bashrc 更新 .bashrc
![](https://i-blog.csdnimg.cn/blog_migrate/a5c5080674d3632a819b08e508752ee8.png)
image.png
前面的mongoexport.sh 不能直接运行的原因就是没有配置环境变量
参考:https://www.cnblogs.com/cursorhu/p/5806596.html
[Linux系统修改PATH环境变量方法]
(https://www.cnblogs.com/cursorhu/p/5806596.html)
在Linux安装一些软件通常要添加路径环境变量PATH.PATH环境变量通俗的讲就是把程序的路径"备案"到系统中,这样执行这些程序时就不需要输入完整路径,直接在bash输入程序名就可以执行.比如常用的ls命令就是添加好了环境变量才可以直接执行ls
export PATH=$PATH:/mongoData/mongodb/bin
**0查看PATH环境变量**
终端输入echo $PATH返回如下,各路径用:隔开. $符号用于展开变量的值.
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
**1添加路径到PATH**
添加路径可以直接给PATH赋值
export PATH=$PATH:新添加的路径
$PATH是当前的路径1:路径2:路径3 ,在后面追加:新添加的路径,然后把这个新的路径集赋值给PATH本身,相当于覆盖了原PATH变量.export命令是导出变量,相当于更新PATH
**2删除PATH中的路径**
删除PATH中的某个路径也是用以上重新给PATH赋值的方法,比如当前PATH是
echo $PATH
路径1:路径2:路径3:路径4
要删除路径4,只需要copy上面的路径1:路径2:路径3
然后赋值给PATH
export PATH=路径1:路径2:路径3