Ubuntu操作系统

基础操作

  • 查询IP: ifconfig

  • 每十秒检测一次GPU状态:watch -n 10 nvidia-smi

  • 安装deb文件:sudo dpkg -i test.deb

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

  • 查询占用swap分区的进程ID:
  1. 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
  • 修改文件或文件夹名称:mv forename newname

  • 删除(不放入回收站,会直接删除)
    删除当前目录下所有文件:rm ./*
    删除当前目录下以patch开头的所有文件:rm ./patch*

  • 查看磁盘空间: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/*

  • 挂载和取消挂载
    https://www.saltycrane.com/blog/2008/06/mount-drives-manually-on-ubuntu-linux/
  1. sudo fdisk -l # 查看磁盘对应位置,假设是/dev/sdd1
  2. sudo mkdir /media/usr/diskname # 假设磁盘名字为sdcard
  3. sudo mount /dev/sdd1 /media/usr/sdcard # 挂载
  4. sudo umount /media/usr/sdcard # 取消挂载

SSH-ubuntu

参考: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里追加以下内容:

  1. Host lab(别名)
  2. HostName remoteIP
  3. User user
  4. Port port

此后,直接ssh lab即可。

传输文件

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

  1. # 把本地的 /path/to/local/file 文件传输到远程的 /path/to/remote/file
  2. scp -P port /path/to/local/file user@remote:/path/to/remote/file
  3. # 也可以使用别名
  4. scp /path/to/local/file lab:/path/to/remote/file
  5. # 把远程的 /path/to/remote/file 下载到本地的 /path/to/local/file
  6. scp lab:/path/to/remote/file /path/to/local/file
  7. # 远程的默认路径是家目录
  8. # 下面命令把当前目录下的 file 传到远程的 ~/dir/file
  9. scp file lab:dir/file
  10. # 加上 -r 命令可以传送文件夹
  11. # 下面命令可以把当前目录下的 dir 文件夹传到远程的家目录下
  12. scp -r dir lab:
  13. # 别忘了 . 可以用来指代当前目录
  14. # 下面命令可以把远程的 ~/dir 目录下载到当前目录里面
  15. `scp -r lab:dir/ ./

设置短密码

通过:sudo passwd YourUsrname 来设置。

驱动问题(循环自登陆,分辨率异常)

  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 & Ubuntu16.04 双系统

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

注意:

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

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

Budgie Desktop

好看的桌面,但还是别装了,在服务器上出现了反复重启的情况。

http://tipsonubuntu.com/2016/11/09/install-budgie-desktop-ubuntu-16-04-16-10/

搜狗输入法乱码

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

注销后生效。

zip解压中文乱码

  1. unzip -O CP936 xxx.zip

创建桌面快捷方式

直接把/usr/share/application 下面的图标,复制到/desktop即可

导入中文字体

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

推荐方正字体。

注意最后运行:

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

Python3

argparse库

https://zhuanlan.zhihu.com/p/31274256

  1. import argparse
  2. parser = argparse.ArgumentParser()
  3. parser.add_argument('-d','--dims',type=str,help="video resolution, e.g. 480p.") # 480p,720p,1080p
  4. parser.add_argument('-ql','--qplist',nargs='+',type=int,default=[12,17,22,27,32,37,42,47],help="QPs under evaluation.")
  5. parser.add_argument('-vl','--videolist',nargs='+',type=int,default=list(range(19)),help="videos under evaluation, start from 0.")
  6. parser.add_argument('-cl','--cbrlist',nargs='+',type=int,default=[300,400,500,700],help="cbrs under evaluation.")
  7. parser.add_argument('-g','--gpu',type=str,help="GPU")
  8. parser.add_argument('-ml','--modellist',nargs='+',type=int,default=[0,0,1018000,806000,694000,588000,782000,0],help="best models for each QP.")
  9. args = parser.parse_args()
  10. os.environ['CUDA_VISIBLE_DEVICES'] = args.gpu
  11. for index_v in args.videolist:
  12. ...

注意:不要随意增加nargs=1,否则会变成list。

调用时:
python3 main.py --dims=480p --gpu=3 -vl 3 14 15

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

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

  1. export PATH=$PATH:/usr/local/cuda-8.0/bin
  2. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64
  3. export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-8.0/lib64
  4. $source /etc/profile #使配置文件生效,再次执行。

提醒:

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

Softwares

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

MATLAB2018a

资源: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会小很多,但清晰度感觉几乎不变~

Note | 常用指令和教程的更多相关文章

  1. Note | 常用指令,工具,教程和经验笔记

    目录 图像处理 机器学习和数学 编程环境和工具 写作工具 其他 图像处理 获取图像频域并分解为高低频:https://www.cnblogs.com/RyanXing/p/11630493.html ...

  2. ROS零门槛学渣教程系列(二)——Linux常用指令:mkdir、tar、 unzip、cp、scp、mv、rm、find、apt、ssh

    Linux常用指令通过上一教程,我们获得了ubuntu系统.Linux是一个很大的领域.但不要紧张,我们一步步来就是了,跟着教程,需要能用到新知识,会提前介绍给大家.下面学习几个常用的Linux指令. ...

  3. git常用命令说明教程

    git常用命令说明教程 git介绍 是一个分布式的,版本控制软件.每台使用git的电脑都是一个分版本库.svn是集中管理的. 安装git 一 git相关操作 1.官网下载最新版安装https://gi ...

  4. 02: vue.js常用指令

    目录:Vue其他篇 01: vue.js安装 02: vue.js常用指令 目录: 1.1 vuejs简介 1.2 选择器:根据id.class等查找 1.3 静态绑定数据 data 1.4 插值 { ...

  5. 新人成长之入门Vue.js常用指令介绍(一)

    写在前面 作为一个刚步入职场工作的新人,对于公司中所用的技术和框架基本上不懂,只能从最基础的开始做起,进入公司接触的第一个框架就是前端框架Vue.js,几个功能做下来,觉得Vue.js首先学习起来真的 ...

  6. Linux常用指令总结

    概述 因为平时不是经常使用Linux系统,每次用到都需要重新温习一遍,这里对自己平时经常使用到的指令做个小结,方便后面直接查阅. 常用指令 登陆root指令 sudo su - 安装软件及卸载指令 d ...

  7. vue入门-常用指令操作

    指令:v-xx组成的特殊指令,如果一个标签中有指令会默认替换原有的书 v-model:实现数据和视图的双向绑定 v-text:在元素中插入值 v-html:在元素中插入标签或者插入文本 v-if:根据 ...

  8. Git Bash 常用指令

    1. 关于git bash常用指令 推荐博客: 史上最简单的 GitHub 教程  猴子都能懂的GIT入门 Learn Version Control with Git for Free Git Do ...

  9. vue 的基本语法和常用指令

    什么是vue.js Vue.js是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站,还可以开发手机App, Vue语法也是可以用于进行手机App开发的,需要借助于Wee ...

随机推荐

  1. 2019/2/11 LinuxRPM包管理

    一.RPM安装包管理: a.yum install  …… ,  yum remove ……,    yum update ……  , b.只下载安装包而不安装:yum install -y 包名 - ...

  2. Container and Injection in Java

    一.Container 1.为什么使用Container 通常,瘦客户端多层应用程序很难编写,因为它们涉及处理事务和状态管理.多线程.资源池和其他复杂的低级细节的复杂代码行.基于组件和独立于平台的Ja ...

  3. Error:java: Compilation failed: internal java compiler error 解决办法

    https://blog.csdn.net/jdjdndhj/article/details/70256989

  4. java课程之团队开发冲刺1.6

    一.总结昨天进度 1.依照视频学习了sqlite,但是由于视频的不完整性导致并不知道代码的实际效果怎么样. 二.遇到的问题 1.依据上一条,在date目录下date文件夹中,的确发现了数据库的文件,但 ...

  5. MySql数据库执行insert时候报错:Column count doesn't match value count at row 1

    遇到这个问题之后,第一反应就是前后列数不等造成的,但是我检查SQL之后,发现列数是相同得,但是插入还是有问题,然后又写了简单得SQL只插入不为空得字段,执行还是报这个错,最后请教了高人,指点之后,大概 ...

  6. 【题解二连发】Construct Binary Tree from Inorder and Postorder Traversal & Construct Binary Tree from Preorder and Inorder Traversal

    LeetCode 原题链接 Construct Binary Tree from Inorder and Postorder Traversal - LeetCode Construct Binary ...

  7. 关于STM32CubeMX使用LL库设置PWM输出

    HAL和LL库 HAL是ST为了实现代码在ST家族的MCU上的移植性,推出的一个库,称为硬件抽象层,很明显,这样做将会牺牲存储资源,所以项目最后的代码比较冗余,且运行效率大大降低,运行速度受制于fla ...

  8. Mybatis 接口代理的实现(BeanDefinitionRegistryPostProcessor+FactoryBean)

    相信在开发中,尤其是mybatis 配置操作中,我们只需要提供一个mapper 接口,然后注入到service 中,就可以进行调用. 按我们的一般逻辑来说,我们并没有进行接口的实现,应该会报空指针异常 ...

  9. java_32 SQLyog中创建数据库表

    USE test; /*1.创建账务表 id name mony*/ CREATE TABLE zhangwu(id INT PRIMARY KEY AUTO_INCREMENT, sname VAR ...

  10. mysql7.5.x删除重新安装

    删除: cmd管理员运行,进入D:\devs\MySQL\mysql-5.7.25-winx64\bin目录下: 输入命令:sc delete mysql 删除data目录下的所有文件 安装: 创建m ...