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 ...
随机推荐
- Ajax常用例子 Post 和 Get
1. 前台:Post$.ajax({ url: "@Url.Action("Save", "UserFun")", type: " ...
- ORB-SLAM2 地图加载
一.前面说了ORB-SLAM地图的保存部分,继续说地图如何加载,因为加载部分相比保存要稍微复杂一些,所以要多说一点. 二.ORB-SLAM2地图加载构成 首先同样是在头文件中声明加载函数,包含地图点和 ...
- QListWidget QListView QListWidgetItem样式设置
两种方式都可以,一个通用,一个具体 //具体 QListWidget#listWidget_param::Item:hover, QListWidget#listWidget_param::Item: ...
- JAVA基础系列:反射
1. 定义 在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法:这 种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. ...
- 解决office365无法登录以及同步的问题
解决office365无法登录以及同步的问题 You better need to test them one by one. You better need to test them one by ...
- Python连载18-closure闭包解释及其注意点
一.闭包 1.定义:当一个函数在内部定义函数,并且内部的函数应用外部函数的参数或者局部变量,当内部函数被当做返回值的时候,相关参数和变量保存在返回的函数之中,这种结果,叫做闭包. 2.例子:连载17中 ...
- tensorboard--打开训练的日志文件
tensorboard --logdir=logs 注意:等号之间不要空格.
- 使用 jQuery.TypeAhead 让文本框自动完成 (三)(服务器返回 JSON 复杂对象数组)
项目地址:https://github.com/twitter/typeahead.js 直接贴代码了: @section headSection { <script type="te ...
- VMware——虚拟机的安装
VMware——虚拟机的安装 摘要:本文主要记录了虚拟机的安装过程. 下载 可以去官网或者其他可靠站点下载虚拟机的安装包. 这次用的版本是:VMware-workstation-full-14.1.7 ...
- Java生鲜电商平台-商品的spu和sku数据结构设计与架构
Java生鲜电商平台-商品的spu和sku数据结构设计与架构 1. 先说明几个概念. 电商网站采用在商品模块,常采用spu+sku的数据结构算法,这种算法可以将商品的属性和商品的基本信息分离,分开维护 ...