1. shell读取excel数据
1.使用快捷键组合“Win+R”调出运行命令框,键入 regedit.exe,回车,打开注册表编辑器。
2.若弹出用户账户控制窗口,请允许以继续。
3.定位到注册表键值:HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open
右击,选择“导出”。在修改之前,我们先为其做一下备份。
做好备份后,就可以大胆修改了。
4.修改 Open\command值。
展开“Open\command”,在右边细节窗口:
双击打开“默认”,将其键值改为"C:\Program Files\Microsoft Office\Office14\EXCEL.EXE" "%1"
(如果使用的是 Office 2007, 把 Office 14 改为 Office 12。另外,千万不要丢了引号)。
5.然后,双击 command,将鼠标光标移到数值数据最后,用"%1"代替/dde(如果使用的是 Office 2007, 用"%1"代替/e)
6.重命名 Open\ddeexec。选中“ddeexec”,右击,选择“重命名”。为其取个新名字,例如“ddeexec2”。
7.用相同的办法,对 HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open进行备份和修改。
2. shell中exec的用法
Linux中执行shell脚本五种方式
方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本:
方法二:以绝对路径的方式去执行bash shell
方法三:直接使用bash 或sh 来执行bash shell脚本
方法四:在当前的shell环境中执行bash shell脚本
方法五:在shell中启动另外的shell
在运行shell脚本时候,有三种方式来调用外部的脚本,exec(exec script.sh)、source(source script.sh)、fork(./script.sh) 1、exec(exec /home/script.sh): 使用exec来调用脚本,被执行的脚本会继承当前shell的环境变量。但事实上exec产生了新的进程,他会把主shell的进程资源占用并替换脚本内容,继承了原主shell的PID号,即原主shell剩下的内容不会执行。
2、source(source /home/script.sh)
使用source或者“.”来调用外部脚本,不会产生新的进程,继承当前shell环境变量,而且被调用的脚本运行结束后,它拥有的环境变量和声明变量会被当前shell保留,类似将调用脚本的内容复制过来直接执行。执行完毕后原主shell继续运行。
3、fork(/home/script.sh)
直接运行脚本,会以当前shell为父进程,产生新的进程,并且继承主脚本的环境变量和声明变量。执行完毕后,主脚本不会保留其环境变量和声明变量。
3. shell处理excel
乱码的解决方法如下:
1、Excel 打开一个日文文档,出现了乱码
2、有乱码的文档通过记事本的方式开启
3、用记事本打开后,开到的也是一堆乱码,单击“档案”---“另存为”
4、在弹出的保存对话框中选择“ANSI"格式
5、设置完成,将文件保存再用excel 打开。可以看到,文档能够正常的显示了
4. shell exec
其实,你这里真是的需求,只是希望在Web这边获取一种方式,来执行一个长达数小时的“异步”任务。
就PHP而言,可以用2种方式来做:
(1)在PHP里使用shell_exec的函数,以shell的方式,启动一个独立的PHP脚本执行。
这种方式,其实相当于在Web服务器处理过程中,独立起了一个shell进程处理你的任务。
这里,需要特别注意的是shell_exec的服务器安全,注意校验参数,小心避免被带入shell命令中。
这个是比较容易实现的方式。
(2)使用PHP实现一个Server,监听一个端口,为Web端提供服务。这里的实现方式有很多,通常要配合扩展,例如原生的pthread(多线程),开源扩展swoole等等。
直接在web程序里使用多线程,是不恰当的,web请求通常有时间限制,例如timeout默认是30秒。你如何保证,在线程任务执行完之前,它的父进程仍然在工作?
5. shell exclude
1. scp命令
scp语法
scp [option] 源文件 目标IP@目录
scp用法举例:
eg1:将/tmp/test.log文件传送到172.10.1.2服务器的/tmp目录下
scp /tmp/test.log root@172.10.1.2:/tmp
eg2:将/data/test目录传送到172.10.1.2服务器的/tmp目录下
scp -r /data/test root@172.10.1.2:/tmp
2. rsync命令
rsync语法:
rsync [option] 源文件 目标IP@目录
选项参数:
-v:显示rsync过程中详细信息。可以使用"-vvvv"获取更详细信息。
-P:显示文件传输的进度信息。(实际上"-P"="--partial --progress",其中的"--progress"才是显示进度信息的)。
-n --dry-run:仅测试传输,而不实际传输。常和"-vvvv"配合使用来查看rsync是如何工作的。
-a --archive:归档模式,表示递归传输并保持文件属性。等同于"-rtopgDl"。
-r --recursive:递归到目录中去。
-t --times:保持mtime属性。强烈建议任何时候都加上"-t",否则目标文件mtime会设置为系统时间。
-o --owner:保持owner属性(属主)。
-g --group:保持group属性(属组)。
-p --perms:保持perms属性(权限,不包括特殊权限)。
-D:是"--device --specials"选项的组合,即也拷贝设备文件和特殊文件。
-l --links:如果文件是软链接文件,则拷贝软链接本身而非软链接所指向的对象。
-z:传输时进行压缩提高效率。
-R --relative:使用相对路径。意味着将命令行中指定的全路径而非路径最尾部的文件名发送给服务端,包括它们的属性。用法见下文示例。
--size-only:默认算法是检查文件大小和mtime不同的文件,使用此选项将只检查文件大小。
-u --update:仅在源mtime比目标已存在文件的mtime新时才拷贝。注意,该选项是接收端判断的,不会影响删除行为。
-d --dirs:以不递归的方式拷贝目录本身。默认递归时,如果源为"dir1/file1",则不会拷贝dir1目录,使用该选项将拷贝dir1但不拷贝file1。
--max-size:限制rsync传输的最大文件大小。可以使用单位后缀,还可以是一个小数值(例如:"--max-size=1.5m")
--min-size:限制rsync传输的最小文件大小。这可以用于禁止传输小文件或那些垃圾文件。
--exclude:指定排除规则来排除不需要传输的文件。
--delete:以SRC为主,对DEST进行同步。多则删之,少则补之。注意"--delete"是在接收端执行的,所以它是在exclude/include规则生效之后才执行的。
-b --backup:对目标上已存在的文件做一个备份,备份的文件名后默认使用"~"做后缀。
--backup-dir:指定备份文件的保存路径。不指定时默认和待备份文件保存在同一目录下。
-e:指定所要使用的远程shell程序,默认为ssh。
--port:连接daemon时使用的端口号,默认为873端口。
--password-file:daemon模式时的密码文件,可以从中读取密码实现非交互式。注意,这不是远程shell认证的密码,而是rsync模块认证的密码。
-W --whole-file:rsync将不再使用增量传输,而是全量传输。在网络带宽高于磁盘带宽时,该选项比增量传输更高效。
--existing:要求只更新目标端已存在的文件,目标端还不存在的文件不传输。注意,使用相对路径时如果上层目录不存在也不会传输。
--ignore-existing:要求只更新目标端不存在的文件。和"--existing"结合使用有特殊功能,见下文示例。
--remove-source-files:要求删除源端已经成功传输的文件。
rsync用法举例:
eg:将/tmp/test.log文件传送到172.10.1.2服务器的/tmp目录下
rsync -av /tmp/test.log root@
- 相关评论
- 我要评论
-