Shell:
Bash Notes for professionals
ebook
https://blog.csdn.net/simple_the_best/article/details/52821136
27个Jupyter Notebook小提示与技巧
https://cloud.tencent.com/developer/article/1194156
http://liuchengxu.github.io/pelican-blog/jupyter-notebook-tips.html
4个Shell小技巧,帮你提高机器学习生产效率
晓查 发自 凹非寺
量子位 报道
在机器学习的实践过程中,用好Shell能帮你很多节省时间。
最近,有位来自ETHZ的学生分享了一些Shell小技巧。对程序员来说,这些技巧更重要的是让你的思维从琐碎小事中解脱出来,大大提高了工作效率。
下面就是他分享的4个tips。由于本文中涉及到的shell脚本过多,你可以去文末地址中查看所有脚本的源代码。
抓取远程文件
当你在远程服务器上监视程序运行时,如果想把一个远程文件抓取到本地查看,通常你会怎么做?
记下文件路径,打开终端,用rsync之类的工具同步到本地,再到文件浏览器中查看。
实际上不必这么麻烦。只需要事先写好几个shell脚本,就可以避免重复的机械劳动。
在这里强烈推荐iTerm 2,它比Mac自带的终端要强大得多,可以指定某个触发关键词执行某个相应的命令。
先在远程服务器上设置一个脚本t。当我们输入r awesome_video.mp4时,它会搜索awesome_video.mp4文件所在路径,并连同主机名以字符串rtransfer <host> <path>的形式打印出来。
rtransfer作为iTerm2的触发关键词,解析出主机和路径,然后调用另一个本地脚本t2。脚本t2将这个视频文件传输到临时目录,然后在该目录中打开Finder。
使用iTerm 2触发关键词功能调用脚本,可以大大提升效率,而你要做的只是在前期花费时间定制脚本。
远程访问TensorBoard
除了抓取远程文件,另一个让人痛苦的是访问远程服务器上的TensorBoard实例。你可以设置SSH端口转发,但是哪个端口对应哪个服务器?它们都在Docker容器中。
ngrok可以让你把访问本地端口变成访问URL,比如输入ngrok http 6006后,它会为你生成一个URL网址http://683acac3.ngrok.io,你可以在这个地址中查看TensorBoard实例。
结合脚本n,以更快的速度启动ngrok,然后用脚本tb打开Web浏览器,启动TensorBoard,在十秒内就能从运行目录转到显示图形。
ngrok有个缺点是它一次只能允许一个会话,因此在使用前需要杀死上一个ngork进程。如果你忘记在另外一台服务器上杀死ngrok,可能会比较麻烦。
ngrok下载地址:https://ngrok.com/
用tbplot代替TensorBoard绘图
对于运行大量metrics的情形,我们需要等待较长时间让TensorBoard加载所有图形。如果使用tbplot脚本,速度会快很多,并且能直接生成图像文件。
tbplot实际上调用的是Matplotlib,缺点是目前只能生成标量图。
tbplot下载地址:https://github.com/mrahtz/tbplot
自动化崩溃监测
运行代码时,最耗费精力的事情就是是担心遇到了错误并崩溃,因此需要不断检查他们的运行情况。
当程序出现问题时,通过警报自动监控可以缓解这种担忧。一般可以把警报发送到邮箱中,为了避免这么麻烦,可以使用sqs-alerts,它依靠AWS AWS Simple Queue服务存储和接收消息。
在每台远程机器上,使用cron运行一个脚本,监控日志并在检测到运行中断时向队列发送消息。然后在本地机器上运行一个服务来监控队列,并在收到消息时弹出警报。
sqs-alerts下载地址:https://github.com/mrahtz/sqs-alerts
最后,本文使用的所有shell脚本都可以在以下地址中找到:
https://github.com/mrahtz/dotfiles/tree/master/.local/bin
— 完 —
有那些你相见恨晚的Linux命令 - hellojukay的文章 - 知乎 https://zhuanlan.zhihu.com/p/49450665
shell中的${},##和%%的使用查看脚本语法是否有错误: 1.${var} 1.Shell中变量的原形:${var} 但当你要显示变量值加随意的字符(我这里用_AA)时,就会出错 这时应该用变量的原形:${var},即是加一个大括号来限定变量名称的范围 [root@bogon sh]# aa='ajax' 批量修改一个目录里文件名 [root@bogon ~]# cat modify_suffix.sh 按 Ctrl+C 复制代码 [root@bogon ~]# file="modify_suffix.sh.tar.gz"[root@bogon ~]# echo "${file%%.*}" 按 Ctrl+C 复制代码 2.$(cmd) [root@bogon t]# ls [root@bogon t]# var=$(cat 3.txt) 3、一串的命令执行()和{} [root@bogon t]# var=test 在{}中 第一个命令和{之间必须有空格,结束必须有; [root@bogon t]# { var1=test1;var2=test2;echo $var1>a;echo $var2;} 4.几种特殊的替换结构: ${var:-string},${var:+string},${var:=string},${var:?string} (1) ${var:-string} 和 ${var:=string} 若变量var为空或者未定义,则用在命令行中用string来替换${var:-string} [root@bogon ~]# echo $a [root@bogon ~]# echo ${a:-bcc} 发现 ${var:-string}和${var:=string} 比较 后者发现$var为空时,把string赋值给了var (2) ${var:+string} [root@bogon ~]# a=ajax (3). ${var:?string} [root@bogon ~]# echo $a [root@bogon ~]# echo ${a:?bbc} 5.$((exp)) POSIX标准的扩展计算 [root@bogon ~]# echo $(3+2) 6.四种模式匹配替换结构: ${var%pattern} 只有在pattern中使用了通配符才能有最长最短的匹配,否则没有最 长最短匹配之分 [root@bogon ~]# f=a.tar.gz 假设我们定义了一个变量为: 可以用${ }分别替换得到不同的值: 记忆的方法为: 也可以对变量值里的字符串作替换: 利用 ${ } 还可针对不同的变数状态赋值(沒设定、空值、非空值): ${file:?my.file.txt} :若 $file 没设定或为空值,则将 my.file.txt 输出至 STDERR。 (非空值時不作处理) ${#var} 可计算出变量值的长度: ${#file} 可得到 27 ,因为/dir1/dir2/dir3/my.file.txt 是27个字节 转载:https://blog.csdn.net/shmilyringpull/article/details/7631106 |
|
Shell:的更多相关文章
- Linux下限制Shell:Rssh和Scponly
限制Shell,正如Rsh和Scponly让系统管理员限制Linux用户可以做哪些操作,你可以创建用户,将被允许通过Scp复制文件,但不会被允许登录到系统的命令行.这是非常重要的安全功能,应考虑每个系 ...
- shell:bash环境
1.什么是shell shell一般代表两个层面的意思,一个是命令解释器,比如BASH,另外一个是shell脚本. 命令解释器shell的发展史,sh-csh-ksh-tcsh-bash. 2.命令的 ...
- [翻译] 使用 Python 创建你自己的 Shell:Part I
目录 使用 Python 创建你自己的 Shell:Part I 原文链接与说明 步骤 0:项目结构 步骤 1:Shell 循环 步骤 2:命令切分 步骤 3:执行 运行 使用 Python 创建你自 ...
- [SHELL]:let 命令详解
[SHELL]:let 命令详解 摘自:https://blog.csdn.net/happygongzhuo/article/details/6819099 let :简单的计算器 语 法let[ ...
- 转 功能强大的shell:if条件语句
原文 http://blog.zol.com.cn/2322/article_2321767.html 功能强大的shell:if条件语句 if语句测试条件,测试条件返回真(0)或假(1)后,可相应执 ...
- Shell:子shell概念
Blog:博客园 个人 目录 shell环境 什么是子shell 子shell的分类 shell环境 每个shell进程有一个自己的运行环境,不同的Shell进程有不同的Shell环境.Shell解析 ...
- 二、spark入门之spark shell:文本中发现5个最常用的word
scala> val textFile = sc.textFile("/Users/admin/spark-1.5.1-bin-hadoop2.4/README.md") s ...
- Shell:进程的层级关系
[luwenwei@appdev115 ~]$ ps -ef | grep initroot 1 0 0 Apr24 ? 00:08:25 init [3] [luwenwei@appdev115 ~ ...
- shell:正则表达式和文本处理器
1.什么是正则 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. 生活中处处都是正则: 比如我们描述:4条腿 你可能会想 ...
- [翻译] 使用 Python 创建你自己的 Shell:Part II
目录 使用 Python 创建你自己的 Shell:Part II 原文链接与说明 步骤 4:内置命令 最后的想法 使用 Python 创建你自己的 Shell:Part II 原文链接与说明 htt ...
随机推荐
- es6的map()方法解释
es6的map()方法解释 map方法的作用不难理解,即“映射”,也就是原数组被“映射”成对应新数组.下面这个例子是数值项求平方: var data = [1, 2, 3, 4]; var arr ...
- 大话设计模式Python实现-工厂方法模式
工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延时到其子类. #!/usr/bin/env python ...
- Eureka服务注册中心错误:com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connect
报错信息 14:43:45.484 [main] INFO com.netflix.discovery.DiscoveryClient - Getting all instance registry ...
- CodeForce 117C Cycle DFS
A tournament is a directed graph without self-loops in which every pair of vertexes is connected by ...
- AngleSharp 实战(04)之遍历内部超链接(a)元素的 Href 和 InnerText
文档地址:https://anglesharp.github.io/docs/Examples.html 直接贴代码了: using System; using System.Linq; using ...
- 基于MicroPython:TPYBoard心率监测器
转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 一.前言 这几年智能穿戴设备大火,尤其是手环类,从A ...
- MySQL for OPS 07:主从复制
写在前面的话 对于企业而言,在互联网这一块其实最重要的是数据.保证数据的安全性,稳定性是作为运维人的基本工作职责.于是为了数据安全性,引进了数据备份,bin log 等.但这并不意味着有这些就足够了. ...
- 2019-9-2-win10-uwp-判断本地ip
原文:2019-9-2-win10-uwp-判断本地ip title author date CreateTime categories win10 uwp 判断本地ip lindexi 2019-0 ...
- Immediate Window
name="ZFF""ZFF"date=new DateTime(2017,02,03,21,19,45){2/3/2017 21:19:45 PM} Date ...
- GDAL读取Shapefile
-------------------------------------------------------------------------------------- #include < ...