RyanXing

Multimedia Processing & Computer Vision.

Note | 常用指令和教程

Ubuntu 16.04 LTS

基础操作

挂载/卸载移动硬盘

参考:https://www.saltycrane.com/blog/2008/06/mount-drives-manually-on-ubuntu-linux/

  • 挂载硬盘三部曲
sudo fdisk -l # 查看磁盘对应位置,假设是/dev/sdd1
sudo mkdir /media/usr/DiskName # 假设磁盘名字为sdcard
sudo mount /dev/sdd1 /media/usr/DiskName # 挂载到指定路径
  • 取消挂载(卸载):sudo umount /media/usr/DiskName

删除

注:不会放入回收站或垃圾文件夹,而是直接删除。

注:网上的大佬说,实际上rm只是将指向数据块的索引点(information nodes)释放,并没有真正抹除数据。

  • 删除文件夹(递归地删除目录下的文件及子目录的文件):rm -r FolderName
  • 删除时给出实时情况(删一个文件就输出一行):rm -v FileName
  • 强制删除,忽略不存在的文件(无提示):rm -f FileName
  • 使用通配符,删除当前目录下以patch开头的所有文件:rm ./patch*
  • 使用通配符,删除当前目录下所有文件:rm ./*

复制

  • 复制文件时查看进度:cp -v ori_path new_path
    -v是查看执行情况。

重命名文件或文件夹

  • 修改文件或文件夹名称:mv forename newname

系统配置和情况

  • 查询IP: ifconfig
  • 每十秒检测一次GPU状态:watch -n 10 nvidia-smi
  • 查询占用swap分区的进程ID:
for i in `cd /proc;ls |grep "^[0-9]"|awk ' $0 >100'` ;do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps ;done |sort -k2nr
  • 查看磁盘空间:df -h
  • 查看文件大小:ls -hl filename
    -h是human readable的意思,会更直观地显示大小。
  • 查看文件夹大小:进入该文件夹后:du -sh
  • 查看当前文件夹下文件名含“qp_42”字符串的文件大小总和:find . -name "*_qp_42*" | xargs du -BG -c
    -BG是以GB为单位输出,-c是最后输出总和。详情可参见du --help
  • 查看每个用户的磁盘空间:sudo du -sh /home/*
  • 给用户设置短密码:sudo passwd YourUsrname

其他基础操作

  • 安装deb文件:sudo dpkg -i test.deb
  • 创建桌面快捷方式:直接把/usr/share/application下面的图标,复制到/desktop即可

异常:循环自登陆,分辨率异常

  1. ctrl+alt+f1进入命令行模式。
  2. sudo /etc/init.d/lightdm stop 关闭lightdm服务。
  3. wget http://cn.download.nvidia.com/XFree86/Linux-x86_64/410.78/NVIDIA-Linux-x86_64-410.78.run,下载最新驱动。注意改最新的版本号。
  4. 驱动文件将会在当前目录。赋权限: sudo chmod a+x NVIDIAXXXXX.run
  5. 卸载旧驱动:sudo sh ./NVIDIAXXXXX.run --uninstall。所有问题都默认回车。
  6. 安装新驱动:sudo sh ./NVIDIAXXXXX.run -no-x-check -no-nouveau-check -no-opengl-files。所有问题都默认回车。
  7. 重启lightdm服务:sudo service lightdm start,回到图形界面。

提醒:BOOT空间不足

参考博文:https://blog.csdn.net/g15827636417/article/details/69803118

安装:Win10下装Ubuntu 16.04 LTS(双系统)

基本教程:https://blog.csdn.net/s717597589/article/details/79117112/

注意:

  • 强烈建议装英文。原因很简单,cd 下载(等其他汉字) 在命令行模式下非常麻烦,甚至无法表示。
  • 和教程不同,/home大一些,越大越好,因为后期大部分软件都装在/home。/usr比/home可以小很多。

英文系统装拼音:
https://blog.csdn.net/Areigninhell/article/details/79696751
建议:不要在装系统的过程中选择汉语keyboard;后面我遇到了很多问题。

异常:搜狗输入法乱码

cd ~/.config
rm -rf SogouPY* sogou*

注销后生效。

异常:zip解压中文乱码

unzip -O CP936 xxx.zip

安装:导入中文字体

https://zh-cn.libreoffice.org/download/fonts/

推荐方正字体。

注意最后运行:

fc-cache -fv # 更新字体缓存

TensorFlow

PyCharm异常:ImportError: libcusolver.so.8.0: cannot open shared object file

在 Run → Edit Configuration 中编辑环境变量为:PYTHONUNBUFFERED=1;LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64

安装:CUDA8.0+Cudnn6.0+TensorFlow1.4.0

基本教程:https://blog.csdn.net/jinyuan7708/article/details/79642924

教程唯一的问题:修改环境变量那里写的不好,容易看成一行。改为:

export PATH=$PATH:/usr/local/cuda-8.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-8.0/lib64

$source /etc/profile #使配置文件生效,再次执行。

提醒:

  • pip3不要随便升级。新版本有一堆问题。
  • 安装之前,一定要搞清楚版本对应。否则还得重来。
  • 其余工具,如可能用到的gcc等(本教程用不到),都不建议升级,甚至要降级。所以以后别随随便便根据提示升级工具,很有可能和环境不匹配。

Softwares

MATLAB

为了在ubuntu命令行中运行matlab,我们首先要将安装目录(默认/usr/local/MATLAB/R2018a/bin)加入PATH:export PATH="/usr/local/MATLAB/R2018a/bin:$PATH"

或:在目录/usr/local/bin内创建一个指向安装目录的符号链接:sudo ln -s /usr/local/MATLAB/R2018a/bin/matlab /usr/local/bin/matlab

现在,我们就可以在命令行中输入matlab -h,查看各参数的意义。常用的有:

option meaning
-h 展示参数
-nodisplay 不显示X命令(X server是Linux下的图形引擎)
-nosplash 启动时不展示图标
-nodesktop 不启动桌面,在终端中执行
-nojvm 关闭Java支持。这将导致任何与图形界面相关的命令都无法执行
-r command 启动MATLAB并执行该命令

因此,如果要在命令行执行MATLAB程序,我们最好只用以下两个参数:-nodesktop -nosplash

假设有一个.m程序:function test(x,y),那么完整命令如下:

matlab -nodesktop -nosplash -r "test(x,y)"

异常:imwrite文件名未提供

imwrite(I, save_path)改为imwrite(I, char(save_path))即可。

一定要确保路径字段是字符串而不是cell等其他类别。

SSH

参考:https://abcdabcd987.com/ssh/

登录退出

ssh usrname@ip:ip可以换成域名或别名(后)。
退出:exit

设置SSH秘钥以免密登录

以下在本地操作:
生成SSH秘钥:ssh-keygen
默认情况下,生成的公钥放在了 ~/.ssh/id_rsa.pub,私钥放在了 ~/.ssh/id_rsa
记住我们的公钥:ssh-copy-id user@remote -p port,port是端口号,默认为22。

设置别名以免IP登录

在本地的~/.ssh/config里追加以下内容:

Host lab(别名)
    HostName remote(IP)
    User user
    Port port

此后,直接ssh lab即可。

传输文件

ssh类似,而且可以设置别名。注意这里是大写P。

# 把本地的 /path/to/local/file 文件传输到远程的 /path/to/remote/file
scp -P port /path/to/local/file user@remote:/path/to/remote/file

# 也可以使用别名
scp /path/to/local/file lab:/path/to/remote/file

# 把远程的 /path/to/remote/file 下载到本地的 /path/to/local/file
scp lab:/path/to/remote/file /path/to/local/file

# 远程的默认路径是家目录
# 下面命令把当前目录下的 file 传到远程的 ~/dir/file
scp file lab:dir/file

# 加上 -r 命令可以传送文件夹
# 下面命令可以把当前目录下的 dir 文件夹传到远程的家目录下
scp -r dir lab:

# 别忘了 . 可以用来指代当前目录
# 下面命令可以把远程的 ~/dir 目录下载到当前目录里面
`scp -r lab:dir/ ./

PuTTY

在 Connection -> SSH -> Tunnels 里输入:Source port:52698,Destination:localhost:52698,选择 Remote Auto。
然后进入会话。

tmux

参考:https://www.cnblogs.com/wangqiguo/p/8905081.html

如果一个程序运行时间较长,为了防止ssh意外退出或断开连接,我们最好使用tmux。
借助tmux,即使关闭ssh,进程仍然会继续。

  • 在remote端安装会话管理程序tmux:sudo apt-get install tmux
  • 在remote端进入名为“session1”的会话:tmux new -s session1
    此时,你就进入了tmux管理的会话中,网络中断或ssh退出都不会关闭执行中的程序。
    最下端绿色条依次标记了会话名、当前会话中该窗口的序号、窗口名(比如bash,htop等),星号是指当前窗口。
  • 暂时离开会话:ctrl+b d,d是detach的意思。
  • 恢复“session1”会话:tmux a -t session1-t是指定会话名。
  • 销毁会话:tmux kill-session -t session1
    如果没有退出会话,先ctrl+b :进入命令行模式,再输入kill-session -t session1
  • 重命名会话:tmux rename -t oldname newname
    如果没有退出会话,ctrl+b $ newname即可。
  • 查看后台中运行的tmux会话列表:tmux ls
    如果没有退出会话,可以直接ctrl+b s查看。

一个tmux会话可以分为很多windows。

  • 新建一个窗口(初始就有1个):ctrl+b c
  • 修改窗口名:ctrl+b , newname
  • 切换窗口:ctrl+b p,p是previous的意思
    ctrl+b n,n是next的意思
    ctrl+b 2,切到2号窗口
    ctrl+b w,列出所有窗口
    ctrl+b l,切换相邻窗口
  • 关闭窗口:ctrl+b &,关闭当前窗口,y确认。

每个窗口还可以拆分为多个pane,实现小分屏效果。

  • ctrl+b %,左右分屏
  • ctrl+b ",上下分屏

以上组合可以叠加哦!实现X264块分割效果。
光标在哪闪,哪边就是活动的。

  • 切换pane:ctrl+b o,依次切换
    ctrl+b Up Down Left Right
    ctrl+b Space,重新随机布局
  • 最大化当前pane:ctrl+b z,再按一次恢复
  • 关闭当前pane:ctrl+b x

开启滚轮:set -g mouse on
ctrl+b后按Page Up/Down 操作,结束后q退出。

传递图形界面

我们可以使用X Server。参考https://blog.csdn.net/weixin_42232749/article/details/81624156设置。
设置完后,每一次登录,记得-Xssh -X remote
此时,在远程输入geditfirefox等都可以看到界面。

remote-atom

参见:https://atom.io/packages/remote-atom
使用方法:先在客户端的Atom上,打开remote-atom的server;
然后通过ssh -R 52698:localhost:52698 509的命令登录;
再通过ratom filename即可本地编辑,实时同步。

pscp传文件

先连接putty,然后在cmd中执行:pscp ori_file_path xing@ip: target_file_dir

MATLAB R2018a

资源:https://pan.luochenzhimu.com/disk/software/MATLAB/MATLAB_R2018a/Linux/
教程:https://blog.csdn.net/davidhopper/article/details/79701177

不要装在 /usr !!! 建议装在/home/XXX 下面,否则破解可能会出问题。

后记:一定要装在/home下!!!否则一堆问题!!!

TeX Live + TeXstudio

1. 安装

Windows:
https://blog.csdn.net/lvshu_yuan/article/details/80468425
注意文末给了TexLive的镜像地址,去下iso。

Ubuntu:

  1. 卸载干净原来安装错误的TeX Live和TeXstudio。
  2. sudo apt install texlive-full
  3. sudo apt-get install texstudio

2. Trick

F7开启预览。

Visio

1. 转PDF,再转成裁剪好的eps

  1. Visio画好图片。
  2. “文件/打印”,选择Adobe PDF打印机;
    点击“属性”,在“Adobe PDF设置”选项卡中选择合适的纸张,将默认设置改成“高质量打印”;
    将Visio文件打印成pdf。
    需要注意:
    • 纸张一定要足够大,否则可能会有一部分图片显示不出来。不必担心在pdf文件中图像周围的白边,可以在下面的步骤中裁减。
    • 如果直接另存为PDF,公式会模糊。
  3. 打开生成的pdf文件,选择“文件/另存为”;
    把保存类型改成“内嵌式 postscript(*.eps)”,得到eps文件。
  4. 将生成的eps文件用gsview打开,在media菜单中选择合适的纸张,使得所有的图像细节都显示出来;
    在orientation中选择合适的方向,比如landscape等;
    这一步一定要保证所有的图像细节都在一张页面上显示出来,所以纸张大小不能太小,否则图片会分成几页显示。
  5. 选择“File/PS to EPS”,会弹出一个对话框,确保已经选中了“Automaticallycalculate Bounding Box”,点击Yes,输入文件名保存即可。
  6. 将pdf另存的eps文件和gsview裁减的eps文件用纯文本编辑器打开,找到%%BoundingBox一行,可以看到gsview已经将图片裁减了。
  7. 或直接在LaTeX中引用裁剪后的eps,会看到裁剪效果。

2. Visio中的高清图片降质问题

如果用Visio编辑高清图片,导出pdf经常会遇到清晰度问题。

我的方法:

  • 先导出为tif,文件会非常非常大,但自动完成了裁剪功能!
  • 然后再创建pdf,导入tif,这样得到的pdf会小很多,但清晰度感觉几乎不变~

Mathjax

Code Mathjax Note
$\arg\max\limits_x{F(x)}$ \(\arg\max\limits_x{F(x)}\) limits要求上、下限必须在正上、下方

posted on 2018-08-01 14:23 RyanXing 阅读(...) 评论(...) 编辑 收藏

导航

统计信息

News