Note | 常用指令和教程
Ubuntu操作系统
基础操作
查询IP:
ifconfig
每十秒检测一次GPU状态:
watch -n 10 nvidia-smi
安装deb文件:
sudo dpkg -i test.deb
复制文件时查看进度:
cp -v ori_path new_path
-v
是查看执行情况。- 查询占用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
修改文件或文件夹名称:
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/
sudo fdisk -l # 查看磁盘对应位置,假设是/dev/sdd1
sudo mkdir /media/usr/diskname # 假设磁盘名字为sdcard
sudo mount /dev/sdd1 /media/usr/sdcard # 挂载
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
里追加以下内容:
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/ ./
设置短密码
通过:sudo passwd YourUsrname
来设置。
驱动问题(循环自登陆,分辨率异常)
ctrl+alt+f1
进入命令行模式。sudo /etc/init.d/lightdm stop
关闭lightdm服务。wget http://cn.download.nvidia.com/XFree86/Linux-x86_64/410.78/NVIDIA-Linux-x86_64-410.78.run
,下载最新驱动。注意改最新的版本号。- 驱动文件将会在当前目录。赋权限:
sudo chmod a+x NVIDIAXXXXX.run
。 - 卸载旧驱动:
sudo sh ./NVIDIAXXXXX.run --uninstall
。所有问题都默认回车。 - 安装新驱动:
sudo sh ./NVIDIAXXXXX.run -no-x-check -no-nouveau-check -no-opengl-files
。所有问题都默认回车。 - 重启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/
搜狗输入法乱码
cd ~/.config
rm -rf SogouPY* sogou*
注销后生效。
zip解压中文乱码
unzip -O CP936 xxx.zip
创建桌面快捷方式
直接把/usr/share/application 下面的图标,复制到/desktop即可
导入中文字体
https://zh-cn.libreoffice.org/download/fonts/
推荐方正字体。
注意最后运行:
fc-cache -fv # 更新字体缓存
Python3
argparse库
https://zhuanlan.zhihu.com/p/31274256
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-d','--dims',type=str,help="video resolution, e.g. 480p.") # 480p,720p,1080p
parser.add_argument('-ql','--qplist',nargs='+',type=int,default=[12,17,22,27,32,37,42,47],help="QPs under evaluation.")
parser.add_argument('-vl','--videolist',nargs='+',type=int,default=list(range(19)),help="videos under evaluation, start from 0.")
parser.add_argument('-cl','--cbrlist',nargs='+',type=int,default=[300,400,500,700],help="cbrs under evaluation.")
parser.add_argument('-g','--gpu',type=str,help="GPU")
parser.add_argument('-ml','--modellist',nargs='+',type=int,default=[0,0,1018000,806000,694000,588000,782000,0],help="best models for each QP.")
args = parser.parse_args()
os.environ['CUDA_VISIBLE_DEVICES'] = args.gpu
for index_v in args.videolist:
...
注意:不要随意增加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
教程唯一的问题:修改环境变量那里写的不好,容易看成一行。改为:
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
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设置。
设置完后,每一次登录,记得-X
:ssh -X remote
此时,在远程输入gedit
或firefox
等都可以看到界面。
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:
- 卸载干净原来安装错误的TeX Live和TeXstudio。
sudo apt install texlive-full
sudo apt-get install texstudio
2. Trick
F7开启预览。
Visio
1. 转PDF,再转成裁剪好的eps
Visio画好图片。
- “文件/打印”,选择Adobe PDF打印机;
点击“属性”,在“Adobe PDF设置”选项卡中选择合适的纸张,将默认设置改成“高质量打印”;
将Visio文件打印成pdf。
需要注意:- 纸张一定要足够大,否则可能会有一部分图片显示不出来。不必担心在pdf文件中图像周围的白边,可以在下面的步骤中裁减。
- 如果直接另存为PDF,公式会模糊。
打开生成的pdf文件,选择“文件/另存为”;
把保存类型改成“内嵌式 postscript(*.eps)”,得到eps文件。将生成的eps文件用gsview打开,在media菜单中选择合适的纸张,使得所有的图像细节都显示出来;
在orientation中选择合适的方向,比如landscape等;
这一步一定要保证所有的图像细节都在一张页面上显示出来,所以纸张大小不能太小,否则图片会分成几页显示。选择“File/PS to EPS”,会弹出一个对话框,确保已经选中了“Automaticallycalculate Bounding Box”,点击Yes,输入文件名保存即可。
将pdf另存的eps文件和gsview裁减的eps文件用纯文本编辑器打开,找到%%BoundingBox一行,可以看到gsview已经将图片裁减了。
或直接在LaTeX中引用裁剪后的eps,会看到裁剪效果。
2. Visio中的高清图片降质问题
如果用Visio编辑高清图片,导出pdf经常会遇到清晰度问题。
我的方法:
先导出为tif,文件会非常非常大,但自动完成了裁剪功能!
然后再创建pdf,导入tif,这样得到的pdf会小很多,但清晰度感觉几乎不变~
Note | 常用指令和教程的更多相关文章
- Note | 常用指令,工具,教程和经验笔记
目录 图像处理 机器学习和数学 编程环境和工具 写作工具 其他 图像处理 获取图像频域并分解为高低频:https://www.cnblogs.com/RyanXing/p/11630493.html ...
- ROS零门槛学渣教程系列(二)——Linux常用指令:mkdir、tar、 unzip、cp、scp、mv、rm、find、apt、ssh
Linux常用指令通过上一教程,我们获得了ubuntu系统.Linux是一个很大的领域.但不要紧张,我们一步步来就是了,跟着教程,需要能用到新知识,会提前介绍给大家.下面学习几个常用的Linux指令. ...
- git常用命令说明教程
git常用命令说明教程 git介绍 是一个分布式的,版本控制软件.每台使用git的电脑都是一个分版本库.svn是集中管理的. 安装git 一 git相关操作 1.官网下载最新版安装https://gi ...
- 02: vue.js常用指令
目录:Vue其他篇 01: vue.js安装 02: vue.js常用指令 目录: 1.1 vuejs简介 1.2 选择器:根据id.class等查找 1.3 静态绑定数据 data 1.4 插值 { ...
- 新人成长之入门Vue.js常用指令介绍(一)
写在前面 作为一个刚步入职场工作的新人,对于公司中所用的技术和框架基本上不懂,只能从最基础的开始做起,进入公司接触的第一个框架就是前端框架Vue.js,几个功能做下来,觉得Vue.js首先学习起来真的 ...
- Linux常用指令总结
概述 因为平时不是经常使用Linux系统,每次用到都需要重新温习一遍,这里对自己平时经常使用到的指令做个小结,方便后面直接查阅. 常用指令 登陆root指令 sudo su - 安装软件及卸载指令 d ...
- vue入门-常用指令操作
指令:v-xx组成的特殊指令,如果一个标签中有指令会默认替换原有的书 v-model:实现数据和视图的双向绑定 v-text:在元素中插入值 v-html:在元素中插入标签或者插入文本 v-if:根据 ...
- Git Bash 常用指令
1. 关于git bash常用指令 推荐博客: 史上最简单的 GitHub 教程 猴子都能懂的GIT入门 Learn Version Control with Git for Free Git Do ...
- vue 的基本语法和常用指令
什么是vue.js Vue.js是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站,还可以开发手机App, Vue语法也是可以用于进行手机App开发的,需要借助于Wee ...
随机推荐
- 2019/2/11 LinuxRPM包管理
一.RPM安装包管理: a.yum install …… , yum remove ……, yum update …… , b.只下载安装包而不安装:yum install -y 包名 - ...
- Container and Injection in Java
一.Container 1.为什么使用Container 通常,瘦客户端多层应用程序很难编写,因为它们涉及处理事务和状态管理.多线程.资源池和其他复杂的低级细节的复杂代码行.基于组件和独立于平台的Ja ...
- Error:java: Compilation failed: internal java compiler error 解决办法
https://blog.csdn.net/jdjdndhj/article/details/70256989
- java课程之团队开发冲刺1.6
一.总结昨天进度 1.依照视频学习了sqlite,但是由于视频的不完整性导致并不知道代码的实际效果怎么样. 二.遇到的问题 1.依据上一条,在date目录下date文件夹中,的确发现了数据库的文件,但 ...
- MySql数据库执行insert时候报错:Column count doesn't match value count at row 1
遇到这个问题之后,第一反应就是前后列数不等造成的,但是我检查SQL之后,发现列数是相同得,但是插入还是有问题,然后又写了简单得SQL只插入不为空得字段,执行还是报这个错,最后请教了高人,指点之后,大概 ...
- 【题解二连发】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 ...
- 关于STM32CubeMX使用LL库设置PWM输出
HAL和LL库 HAL是ST为了实现代码在ST家族的MCU上的移植性,推出的一个库,称为硬件抽象层,很明显,这样做将会牺牲存储资源,所以项目最后的代码比较冗余,且运行效率大大降低,运行速度受制于fla ...
- Mybatis 接口代理的实现(BeanDefinitionRegistryPostProcessor+FactoryBean)
相信在开发中,尤其是mybatis 配置操作中,我们只需要提供一个mapper 接口,然后注入到service 中,就可以进行调用. 按我们的一般逻辑来说,我们并没有进行接口的实现,应该会报空指针异常 ...
- java_32 SQLyog中创建数据库表
USE test; /*1.创建账务表 id name mony*/ CREATE TABLE zhangwu(id INT PRIMARY KEY AUTO_INCREMENT, sname VAR ...
- mysql7.5.x删除重新安装
删除: cmd管理员运行,进入D:\devs\MySQL\mysql-5.7.25-winx64\bin目录下: 输入命令:sc delete mysql 删除data目录下的所有文件 安装: 创建m ...