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行

方法1:(强烈推荐)
:9,15 copy 16  或 :9,15 co 16
由此可有:
:9,15 move 16  或 :9,15 m 16 将第9行到第15行的文本内容到第16行的后面  
 
解决bin/mv的巨多文件:
find . -maxdepth 1 -type f -name '*.jpg' -exec mv {} extract_frames_from_porn_train/{} ;
 
shuffle一个文件
perl -MList::Util -e 'print List::Util::shuffle <>' $i > $i.new
 
查看进程的线程
top -H -p <pid>
ps -T -p <pid>
 
快速生成10G文件
fallocate -l 10G gentoo_root.img
 
 vi/vim 中可以使用 :s 命令来替换字符串。该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询。 
  
  :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/ 
原文地址:https://www.cnblogs.com/Key-Ky/p/5812596.html