报错:/bin/sh^M:bad interpreter: 编码没有被识别, vi *.sh Esc 输入 :set fileformat 查看文件格式(显示  fileformat=dos) Esc输入 :set fileformat=unix 保存 Esc 输入 :set fileformat 修改文件格式(修改后 显示 fileformat=unix) Esc输入 :wq 最后重新执行sh文件 环境变量 echo $PATH [root@lihui ~]# echo $PATH/java/…
前两天由于要查一个数据库的binlog日志,经常用命令写比较麻烦,想着写一个简单的脚本,自动去刷一下数据库的binlog日志,就直接在windows上面写了,然后拷贝到linux中去运行,其实很简单的脚本,具体如下: #!/bin/bash #flush mysql logs every day BASEDIR="/usr/local/mysql" echo $BASEDIR BIN="$BASEDIR/bin" echo $BIN MYSQL="$BIN…
   今天想重新学习下ffmpeg,于是又来到了雷晓骅的博客,先下载了他的所有代码,这里记录一下在Windows上使用sh脚本下载GitHub上代码的过程. CygWin(最后并没有用到)    可以在Windows系统上使用Unix终端的工具,在运行Windows的同时也可以使用vi,bash,tar等Unix下的工具. 使用CygWin执行sh脚本提示'\r'未找到的命令,因为在dos/window下按一次回车键实际上输入的是“回车(CR)”和“换行(LF)”,而Linux/unix下按一次…
今天碰到一个奇怪的问题,编写好的shell脚本再linux上执行一直提示找不到文件或目录,后来想想是文本编辑器的问题,记录下来!!! 1.查看当前文本格式 Notepad++界面中,在右下角有文件格式的描述:“Dos\Windows或UNIX或Mac”. 2.文件转换方法 但是如果每写一个shell文件都需要这样转换可能会很麻烦,那有没有一劳永逸的办法呢?答案是有的,我们可以设置Notepad++默认新建的文件都是shell格式,具体操作如下: 打开在notepad++,设置,首选项 注意点:…
今天在windows下的sublime text 2下写了个脚本,上传到ubuntu服务器中执行后提示: -bash: /usr/bin/python: /usr/bin/python^M: bad interpreter: No such file or directory 分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh或.py文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息.一般是因为windows行结尾和linux行结尾标识不同造成的. 在win7上面…
今日打包编译项目时,发现缺少一个git pull更新项目的脚本,所以在linux编写了一个gitpull.sh脚本,能够实现更新项目的需求. 1.首先vi  gitpull.sh或者使用vim编辑器. 2.内容 #!/bin/sh   (首行) cur_dir=$(pwd)  cd $cur_dir/mobcb-platformgit checkout -B demo -t origin/demogit pull 3.保存退出 4.chmod   +x    gitpull.sh     赋予可…
win上是dos模式,需要改成unix模式 方法是: 在linux上vim 打开脚本,然后:set ff=unix…
之前在Windows下写好了一个Python脚本,运行没问题,今天在Linux下,脚本开头的注释行已经指明了解释器的路径,也用chmod给了执行权限,但就是不能直接运行脚本. 1 问题1: 报错:: No such file or directory #!/usr/bin/env python chmod 777 test.py   解决办法: 用vim打开该sh文件,输入: :set ff  回车,显示fileformat=dos,重新设置下文件格式: :set ff=unix  保存退出  …
今天在windows下使用notepad++写了个python脚本,传到linux服务器执行后提示:-bash: ./logger.py: usr/bin/python^M: bad interpreter: No such file or directory 1.原因分析 这是不同系统编码格式引起的:在windows系统中编辑的logger.py文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息.一般是因为windows行结尾和linux行结尾标识不同造成的,在window中行结…
How to migrate a .NET Windows Service application to Linux using mono? 写在最前:之所以用要把windows程序迁移到Linux上,主要是由于一些成本问题,这个就不多解释了. 如何把之前用.net写的windows服务程序迁移到linux上运行.答案是有很多种的,今天我只提一下mono(我只实验了mono,呵呵). 如何在Linux部署mono,并成功的运行.net程序,还请大家多多查询吧,我在这方面也只是搭建成功了,遇到的问…
思路:生成目录结构文件,复制到linux上,然后建立每个文件即可 借助unix_utils( https://sourceforge.net/projects/unxutils/) 1. windows(in source_path): ufind . -type d | sed "s/\\/\//g" >dir_list.txt 2. 把 dir_list.txt 复制到linux文件系统上 3. linux(in target_path): cat dir_list.txt …
今天学习Linux下定时执行脚本,看到一篇讲解比较好的文章,特此拿来分享. 原文链接:http://www.blogjava.net/decode360/archive/2009/09/18/287743.html Linux下定时执行脚本 首先查看一下/etc/crontab文件:   $ cat /etc/crontab SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/ # run-parts01 * * *…
想要在Ubuntu上运行java程序,可以将java程序编译成功后打包,然后在Ubuntu上用命令执行jar文件 具体操作如下: 1.Windows上使用eclipse编译java工程,编译完成后导出为Runnable JAR File 例如,此处将test工程中的Test2文件export为MyTest2.jar文件 2.Ubuntu上java环境安装 ①jdk官网http://www.oracle.com/technetwork/java/javase/downloads/jdk8-down…
main()函数,想必大家都不陌生了,从刚开始写程序的时候,大家便开始写main(),我们都知道main是程序的入口.那main作为一个函数,又是谁调用的它,它是怎么被调用的,返回给谁,返回的又是什么?这次我们来探讨一下这个问题. 1. main()函数的形式先来说说main函数的定义,较早开始写C程序的肯定都用过这样的定义void main(){},其实翻翻C/C++标准,从来没有定义过void main().在C标准中main的定义只有两种:        int main(void)   …
main()函数,想必大家都不陌生了,从刚开始写程序的时候,大家便开始写main(),我们都知道main是程序的入口.那main作为一个函数,又是谁调用的它,它是怎么被调用的,返回给谁,返回的又是什么?这次我们来探讨一下这个问题. 1. main()函数的形式先来说说main函数的定义,较早开始写C程序的肯定都用过这样的定义void main(){},其实翻翻C/C++标准,从来没有定义过void main().在C标准中main的定义只有两种:        int main(void)   …
当我们把java程序打成jar包后,放到linux上通过putty或其它终端执行的时候,如果按照:java -jar xxxx.jar执行,当我们退出putty或终端的时候,xxxx.jar这个程序也会停止.为了保证程序能够一直运行,应该改为这样运行:nohup java -jar xxx.jar&命令,则程序会在后台一直运行,值得注意的是,此时程序控制台输出会被转移到nohup.out文件中,这个nohup.out文件的位置就在jar包的当前文件夹内. 但是有时候在这一步会有问题,当把终端关闭…
假设现有一篇待执行的python脚本test.py python脚本在linux下面执行有两种方式: 打开Linux终端,输入 python test.py 在test.py脚本第一行添加声明 #!/usr/bin/python 这是指定python脚本的解释器,然后给test.py添加可执行权限并执行 chmod +x test.py ./test.py 第一行时给test.py添加可执行权限,第二行执行该脚本.(./)的含义是本目录下…
下载安装NppFTP插件之后,重启打开notepad++连接到linux主机,之后进行编辑shell脚本,出现无法保存上传至linux主机的问题. 分析的原因:可能的原因是Windows防火墙阻止了应用的通信,导致上传失败. 解决的方法就是在Windows防火墙中允许notepad++进行通信,即可解决. 查看防火墙: 我的防火墙列表最一开始是没有找到notepad++,可以找到从允许其他应用进去,找到notepad++的安装目录,添加即可,记得把后面的专用和共用进行打上对勾.…
之前在Windows下写好了一个Python脚本,运行没问题,今天在Linux下,脚本开头的注释行已经指明了解释器的路径,也用chmod给了执行权限,但就是不能直接运行脚本. 1 问题1: 报错:: No such file or directory #!/usr/bin/env python chmod a+x test.py   解决办法: 用vim打开该sh文件,输入: :set ff  回车,显示fileformat=dos,重新设置下文件格式: :set ff=unix  保存退出  …
问题 在把windows下的一个python脚本挪到linux下的时候,出现了一个奇怪的问题,就是标题那样的报错,很明显,shell没有用对应的python解释器去解释脚本,而是直接用shell解释了,下面就直接导致了一系列奇奇怪怪的报错.看了下面这篇文章还是让人略有启发的 $ head  weixinbaojing.py #!/usr/bin/env python3 import requestsimport jsonimport sys $ chmod u+x weixinbaojing.p…
上个月刚入职一家公司从事区块链研发工作,选型采用Hyperledger Fabric作为开发平台.团队的小组成员全部采用的是在VirtualBox上面安装桌面版的Ubuntu 16.04虚拟机,开发工具JetBrains GoLand也就直接在桌面版的虚拟机里面安装.而我因为之前比较习惯使用Vagrant + VirtualBox的方式快速加载我定制版的Ubuntu镜像从而创建Linux开发环境,这样一来的弊端就是我只能通过命令行来进行一切操作而没有桌面可操作,所以我的整个开发IDE就在本机的w…
1.脚本后加& 加了&以后可以使脚本在后台运行,这样的话你就可以继续工作了.但是有一个问题就是你关闭终端连接后,脚本会停止运行 python3 run.py >/dev/null 2>&1 & (执行语句含义详见https://www.cnblogs.com/clarenceyang/p/9837352.html) 2.使用nohup在后台执行命令 nohup python3 run.py >/dev/null 2>&1 & 注意pr…
window上的脚本一定要用dos2unix 文件名处理一下…
上传文件rz与sz命令,远程linux您需要在系统上安装lrzsz工具包 安装例如,下面的: [xxxx@xxxx /]# yum install lrzsz 注意:我用命令yum,假设在Internet上的其他,请找到相关信息.只有到install 后面加上 lrzsz都能够,单独的rz或sz是不行的 上传文件运行命令例如以下 [xxxx@xxxx /]# rz 此时会弹出一个windowns的对话框.选择你要上传的文件就能够了,注意文件不能为空文件,也就是大小为0字节的文件.文件为空文件是不…
在v2ex看到一个问题: 允许在一个命令之前立即发生一个或多个变量赋值,这些赋值为跟随着的命令更改环境变量,这个赋值的影响是暂时的. 那为什么: int=100 int=10 echo $(($int - 10)) 结果是 90 而不是 0 其实是这样: int=100 int=10 echo $(($int - 10)) echo $int sh -x 输出: + int=100 + int=10 echo 90 90 + echo 100 100 ----------------------…
HFILE=`who -m | awk '{print $1}'`readonly HISTFILE=/var/history/$HFILE-$USER-$UID.logreadonly HISTFILESIZE=50000readonly HISTSIZE=10000readonly HISTTIMEFORMAT='%F %T 'readonly HISTCONTROL=ignoredupsshopt -s histappendreadonly PROMPT_COMMAND="history…
最近在研究Docker集群和安装的时候,需要准备若干台机器.所以我为节约时间,打算批量复制VM机器,然后用sh脚本命令执行机器名称和IP等基础配置信息的修改. 具体操作:我在windows环境下,用Notepad++编辑如下脚本,并且保存编码格式为UTF-8无编码BOM. 但是测试发现,linux会自动将命令行尾部的\r写到执行命令里面. 一.失败过程,如下 >> sh -x /opt/command/batch_modify_servername_all.sh 然后,我们试着找刚才创建的if…
程序猿都非常懒,你懂的! 近期在开发中,须要用到server的ip和mac信息.可是server是架设在linux系统上的,对于多网口,在获取ip时就产生了非常大的问题.以下是在windows系统上,java获取本地ip的方法.贴代码: package com.herman.test; import java.net.InetAddress; /** * @see 获取计算机ip * @author Herman.Xiong * @date 2014年5月16日 09:35:38 */ publ…
Shell脚本命令的工作方式有两种: 交互式(Interactive):用户每输入一条命令就立即执行. 批处理(Batch):由用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本中诸多的命令. 一.编写简单的脚本 一个Shell脚本主要由三部分组成:脚本声明.脚本注释.脚本命令. 脚本声明:告诉系统使用哪种Shell解释器来执行该脚本,比如:#!/bin/bash 脚本注释:以#开头,主要是介绍脚本的功能和某些命令 脚本命令:需要被执行的Linux命令. Shell脚本的名称可以…
一:介绍背景 微软在2016年 3 月首次对外宣布了 Linux 版的 SQL Server,并于2017年 7 月发布了首个公开 RC 版.前几日在美国奥兰多召开的微软 Ignite 2017 大会上,微软宣布 SQL Server 2017 将于10月2日正式发布. 现在,SQL Server 2017 已正式发布.这是 SQL Server 历史上首次同时发布 Windows 和 Linux 版.此外,微软还发布了能使用 Docker 部署的容器版本. 对 SQL Server 而言,这是…