linux 命令总结

linux 命令总结精简有用

目录

1.将目录不含-label.png的文件,加上前缀路径,输出到all.list

1.7 把视频段列表转换为网页(加
)

1.8 从一台机器一个目录烤到另外一个一个机器的目录

2.将JPEG文件改变大小,保持横纵比例。

3.如何知道一个可执行程序依赖哪些库

4.查看导出的库函数

 

5. linux soft link: ln -sf src dst

6.makefile 中 $@ $^ %< 使用http://blog.csdn.net/kesaihao862/article/details/7332528

7.递归检索文件内容,指定文件类型,匹配完整word

8. 添加到python path

9. 把前台任务,放到后台执行

10. 建立用户及home目录

11. 查看各个程序的网络接受发送情况

12. over great wall

13. sudo 时候保持环境变量不变

14. vim 粘贴自动缩进,导致格式混乱

15.编译链接pgsql

17 抓包

18  本地文件同步到远端

19 中文显示乱码,vim, print ,命令行等,修改本地语言编码日期货币为中国显示

20 查看linux 版本

21 centos 设置系统时间

22. 编译vl_slic  

23. vscode linux 无法启动显示

24. 持续查看nvidia-smi输出

25.如何让unzip a.zip 的输出不显示?

25.1 那么输出到/dev/null里面,是什么意思呢,都做了什么呢?


1.将目录不含-label.png的文件,加上前缀路径,输出到all.list

1.1 ls . | grep -v -- "-label.png" | awk '{print "PATH_TO_FILES/"$1}' > ../all.list

    grep -v :--invert-match ,select non-matching lines

1.2  replace .xml with blank: awk '{sub(/.xml/,"");print $1}'

1.3  把某目录下的文件,去掉后缀,文件名到一个文件中:

     ls JPEGImages/ | awk '{sub(/.jpg/, "");print $1}' > all.list

https://github.com/domoritz/label_generator

1.4  把文件夹下面的很多压缩文件解压,到自己名字去掉后缀的文件夹下面,${NAME%.tar},表示NAME去掉.tar

find . -name "*.tar" | while read NAME ; do mkdir -p "${NAME%.tar}"; tar -xvf "${NAME}" -C "${NAME%.tar}"; rm -f "${NAME}"; done

1.5从目录中多个视频中抽取帧,放到去后缀的文件名为目录名的目录中。视频文件后缀h264, 如test_12597_fp1.h264

ls /home/silva/data/carvideo2annotation/ |  awk '{sub(/.h264/,"");print $1}' | xargs -I {} turkic extract /home/silva/data/carvideo2annotation/{}.h264 /home/silva/data/carframe2annotation/{}/  --no-resize

1.6  把视频帧导入到turkic 数据库中

    ls /home/silva/data/carframe2annotation/ | xargs -I {} turkic load {} /home/silva/data/carframe2annotation/{}/ car --overlap 0 --offline

    

1.7 把视频段列表转换为网页(加<br>)

  cat ~/test_0.txt | while read NAME; do  echo "<br>"$NAME"<br>" >> b.txt ; `turkic find --id $NAME|xargs -I {} echo {}"<br>" >> b.txt`;done

  y=0;cat ~/test_0.txt | while read NAME; do  echo "<br>"$NAME `echo $(($y%3))`"<br>" >> c.txt ; `turkic find --id $NAME|awk '{gsub(/localhost/, "192.168.12.31");print $0}'|xargs -I {} echo {}"<br>" >> c.txt`;y=$y+1; done;

1.8 从一台机器一个目录烤到另外一个一个机器的目录

   从目标机器新建一个目录,拷贝小于1G的用M,否则有问题; 不包含后缀.pkl .o .caffemodel ;条件或|要加反斜杠

     mkdir pyfaster2  && cd pyfaster2

    ssh sam@192.168.12.243 "cd /home/sam/src/pyfaster2 && find . -size -1000M \( ! -regex'.*/\..*\|.*\.pickle\|.*\.bak\|.*\.bak2\|.*\.bin\|.*\.pkl\|.*\.caffemodel\|.*\.o\|.*\.mdb\|.*\.git/.*' \) | cpio -ov | bzip2 -c" | bunzip2 -c | cpio -ivd

   使用awk,正则表达式,列出目录中不包含.git/, .pickle等的文件:

find . -size -1000M | awk '!/.*\.git\/.*/ && !/.*\.pickle/ && !/.*\.bak/ && !/.*\.bak2/ && !/.*\.bin/ && !/.*\.pkl/ && !/.*\.caffemodel/ && !/.*\.o$/ && !/.*\.mdb$/ && !/.*nohup\.out.*/'

 

    远程传输

  find caffeup2date_pyfasterrcnn -size -1000M \( ! -regex '.*/\..*\|.*\.pickle\|.*\.bak\|.*\.bak2\|.*\.bin\|.*\.pkl\|.*\.caffemodel\|.*\.o\|.*\.mdb\|.*\.Git/.*\|.*\.nohup.*' \) | cpio -oaV -O archive2.cpio

  scp -l 500 -P9520 archive2.cpio sam@202.100.210.218:/home/sam/src/ar2.cpio   #因为scp 贪婪的用大带宽,如果网速不好要限速,才不会stalled

    cpio -imVd -I archive.cpio

 

2.将JPEG文件改变大小,保持横纵比例。

resize all the images such that the smaller dimension is 256 and the aspect ratio is intact

find. -name "*.JPEG"| xargs -I {} convert {} -resize "256^>" {}

convert clapton-1.jpg -resize 96x90! clapton-1p.jpg

https://github.com/facebook/fbcunn/tree/master/examples/imagenet

3.如何知道一个可执行程序依赖哪些库

 

ldd命令可以查看一个可执行程序依赖的共享库,ldd -v可以查看动态库有依赖与那个依赖库, 非常有用

例如# ldd /bin/lnlibc.so.6

=> /lib/libc.so.6 (0×40021000)/lib/ld-linux.so.2

=> /lib/ld- linux.so.2 (0×40000000)

可以看到ln命令依赖于libc库和ld-linux库

 

查看一个正在运行的程序加载了哪些动态库

查看apache2 加载了哪个python

sudo lsof | grep apache2 |grep libpython

3.1如何知道一个动态库,来源于那个安装包:

      dpkg -S libopencv_core.so

   sudo apt-cache rdepends lib32stdc++6

  另外一种方法是:

sudo apt-get update && sudo apt-get install apt-file
sudo apt-file update
sudo apt-file search /usr/lib32/libstdc++.so.6
The result should be :
$ apt-file search /usr/lib32/libstdc++.so.6
lib32stdc++6: /usr/lib32/libstdc++.so.6
lib32stdc++6: /usr/lib32/libstdc++.so.6.0.21
lib32stdc++6: /usr/share/gdb/auto-load/usr/lib32/libstdc++.so.6.0.21-gdb.py
lib32stdc++6-5-dbg: /usr/lib/debug/usr/lib32/libstdc++.so.6.0.21

/usr/lib32/libstdc++.so.6

4.查看导出的库函数

nm -D /usr/lib/libopenal.so.1
.
.
.
00012ea0 T alcSetThreadContext
000140f0 T alcSuspendContext
         U atanf
         U calloc

 

 

5. linux soft link: ln -sf src dst

  hard link: ln src dst

difference: hard link have no difference with original file. Soft link is just a link to the file.

6.makefile 中 $@ $^ %< 使用http://blog.csdn.net/kesaihao862/article/details/7332528

Makefile有三个非常有用的变量。分别是$@,$^,$<代表的意义分别是:

$@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件。  

 

7.递归检索文件内容,指定文件类型,匹配完整word

grep -r str-to-find .

grep -Er "[^a-zA-Z]Detect[^a-zA-Z]" --include \*.cpp .

grep -R 可以把文件夹下面的链接也搜索,然后-r需要在命令行里面指定搜索那些链接

8. 添加到python path

1). import sys 
     sys.path.append(your_path)

2). set PYTHONPATH

9. 把前台任务,放到后台执行

   有时候不小心,把nohup任务,fg一下到了前台了,这时

   ctrl+z,  bg

10. 建立用户及home目录

   useradd -u 544 -d /usr/testuser1  -g users -m  testuser1

11. 查看各个程序的网络接受发送情况

    sudo nethogs eth1

12. over great wall

1.sudo lantern

2. git clone https://github.com/rofl0r/proxychains-ng.git && cdproxychains-ng && ./configure && make

3. vim src/proxychains.conf   最后面修改为lantern 地址如下: 

[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
socks5  127.0.0.1 56148
http    127.0.0.1 55468

4. ./proxychains4 -f src/proxychains.conf wget google.com

13. sudo 时候保持环境变量不变

   sudo -E env ....

    

14. vim 粘贴自动缩进,导致格式混乱

 

粘贴之前:
:set paste
粘贴完了:
:set nopaste


另一个很棒的方法:
:r! cat
然后用
shift+insert
或其他方式粘贴代码,然后
ctrl+d
完成输入。

15.编译链接pgsql

    gcc -I/home/sam/install/include/  -L/home/sam/install/lib/ a.cpp -o db -lpq

   -lpq 必须放在后面,g++ -I/home/sam/install/include/  -L/home/sam/install/lib/ -lpq a.cpp -o db, 就会出错

 

16 centos防火墙开端口并重启

firewall-cmd --zone=public --add-port=8888/tcp --permanent

firewall-cmd --reload

17 抓包

在5020端口抓udp包,-X 16进制打印包体, -vv详尽打印:tcpdump udp port 5020 -vv -X

18  本地文件同步到远端

  rsync -avr  ./text-detection-cptn-can-train sam@192.168.12.243:/home/TextDetection/

19 中文显示乱码,vim, print ,命令行等,修改本地语言编码日期货币为中国显示

  locale  显示当前自己所在国家,所用语言,所用编码, -a显示本地已经安装的字符集

 sudo apt-get install  -y language-pack-zh-hans  安装中文字符集

   export LC_ALL=zh_CN.utf8   即可显示中文

  python里面打印要单独打印,不可以 var = <网络传来的字符,utf8的>   print('abc',  var),打印出来带引号,单独print(var)即可

20 查看linux 版本

  centos : lsb_release -a     uname -a

21 centos 设置系统时间

timedatectl set-time '2015-11-23 08:10:40' 

22. 编译vl_slic  

 /usr/local/MATLAB/R2016a/bin/mex -I/home/sam/TextDetection/fayao-dcnf-fcsp/libs/vlfeat-0.9.18/toolbox/ -I/home/sam/TextDetection/SynthText_Chinese_version-master/libs/vlfeat-0.9.18/ -L. -lvl -L. vl_slic.c

23. vscode linux 无法启动显示

sudo sed -i 's/BIG-REQUESTS/_IG-REQUESTS/' /usr/lib/x86_64-linux-gnu/libxcb.so.1

24. 持续查看nvidia-smi输出

watch -n 0.1 nvidia-smi

25.如何让unzip a.zip 的输出不显示?

  unzip a.zip > /dev/null

25.1 那么输出到/dev/null里面,是什么意思呢,都做了什么呢?

  unzip命令的输出还是产生了,只是没有写到屏幕,而是输出到了/dev/null,而/dev/null是直接丢弃,所以更好,更高效的办法是,unzip -q a.zip

26.ffmpeg录制视频

ffmpeg -i rtsp://admin:Admin12345@10.18.100.100:554/Streaming/Channels/3 -vcodec copy -f segment -segment_time 60 seg%d.mp4

每60秒录制一个视频文件

 

   

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值