linux命令
现在在弄深度学习,根本没时间写基础算法了,看了几篇深度学习入门论文和使用了几个开源框架,总体上来说深度学习没有传统学习那么多数学推导,但是用过在图像之后竟然效果那么好。因此这笔记是记录一些日常使用的shell脚本。
查看程序:ps -ef | grep
关闭ssh,让程序仍然能在后台运行:nohup .. &
让caffe的标准输出输出到日志文件 2>&1 | tee -a log.txt
python -m ipdb <python.py> <args>
import ipdb; ipdb.set_trace(); 设置断点
c调到断点处,p打印变量,a打印函数的输入,j调到指定行,s执行当前行,停在第一个最可能地方,n执行当前行
unt:Continue execution until the line with a number greater than the current one is reached or until the current frame returns.
find . -maxdepth 1 -name "abc*" 查找文件
apt-cache search all | grep 查找安装包情况
g++ fun.cpp `pkg-config --libs --cflags opencv` -lboost_system -lboost_thread 编译
如果我们想改变某个文件的所有者和所属的组,可以使用命令chown,参数R必须是大写,否则会提示命令错误
chown -R test:test test.txt
LIBRARY_PATH和LD_LIBRARY_PATH是Linux下的两个环境变量,可以用export来修改caffe所选择的opencv目录
git clone -b <branch> <remote_repo> 例如: git clone -b 指定的分支名字
# 这里的-d 参数判断$myPath是否存在
if [ ! -d "$myPath"]; then
mkdir "$myPath"
fi
import os; os.system('kill -9 %d' % os.getpid()) ipdb强制退出
caffe中使用的OpenCV编译指令
cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -DWITH_CUDA=ON -DWITH_OPENCL=OFF -DWITH_TBB=ON -DWITH_DNN=OFF -DWITH_GTK=ON -DBUILD_opencv_dnn=OFF ../opencv-master
zip文件的解压
unzip <filename>
tar命令
tar [-cxtzjvfpPN] 文件与目录 ....
参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!
因为不可能同时压缩与解压缩。
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成
『 tar -zcvPf tfile sfile』才对喔!
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
--exclude FILE:在压缩的过程中,不要将 FILE 打包!
tar文件的解压
tar -xvf <filename>
tar文件压缩
tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
tmux使用
tmux new -s session_name
tmux det 退出会话
tmux kill-session -t session_name
tmux ls
tmux a -t session_name
tmux show-options -g | grep prefix
tmux list-keys | grep prefix
http://stackoverflow.com/questions/19204294/tab-issues-with-vim-while-running-tmux
窗口操作
c 创建新窗口
& 关闭当前窗口
数字键 切换至指定窗口
p 切换至上一窗口
n 切换至下一窗口
l 在前后两个窗口间互相切换
w 通过窗口列表切换窗口
, 重命名当前窗口;这样便于识别
. 修改当前窗口编号;相当于窗口重新排序
f 在所有窗口中查找指定文本
sudo gpasswd -a tp ky 把用户tp加到ky组
vim删除14-5940行,:40,5940d
vim重做ctrl+r, 撤销u
vim复制多行
任务:将第9行至第15行的数据,复制到第16行
由此可有:
:9,15 move 16 或 :9,15 m 16 将第9行到第15行的文本内容到第16行的后面
:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/