文章目录
因为要做深度学习,所以不可避免要使用linux系统,常用的就是ubuntu了。这里可能写的比较零碎,权当做学习记录吧
一、对ubuntu系统的认识
最开始就是安装ubuntu系统,14.04需要自行配置每个盘的空间,这个可以在网上搜到(比如boot需要200M,swap需要两倍于系统内存),但我以后打算直接上16系统,因为可以自动分配。
安装并进入系统之后,看到的是一堆文件夹,这跟windows的cdef盘完全不一样,一开始真心不习惯。然而这么久以来,真正打交道的其实就以下几个文件夹:
home:这个文件夹下存放的是每个账户,类似于windows下的用户,点进你的账户,会跳转到一个叫做“主文件夹”的目录,它相当于一个根目录,下面包含着文件、图片、音乐等等文件夹,为了方便起见,可以把这些都改成英文名
usr:/usr/local是一个默认目录,通过源码编译安装的软件,往往默认头文件和库文件分别会在这个目录的include和lib目录下,例如opencv
其它文件夹暂时就不用管了,不要被他们吓到了。。
二、比较常用的shell语句
Ctrl+Alt+T,打开一个terminal,类似于windows下的命令行。但是在ubuntu下,这个terminal几乎就是灵魂,因为ubuntu的图形界面能力很弱,主要就看terminal里面的操作了。有时候一个文件夹下有大量的图片时,直接点开看,可能都会导致死机。下面继续介绍shell命令,比较简单的ls、cd这些就不多说了
pwd:显示当前的路径,刚打开terminal时,默认进入的是用户根目录,路径就是/home/yourname
cd /和cd ~:分别是进入系统根目录、进入用户根目录,有个比较危险的命令,sudo rm -rf /*,自行体会
ln -s src dst:给src创建软链接,软链接的名字叫dst,我感觉这个软链接就类似于windows里面的快捷方式 ll(ls -al):显示当前目录下所有的软连接信息,也有文件的基本信息
apt-get autoclean:已经删除的软件,残留的安装包文件,通过这个命令可以删除 apt-get clean:已经安装的软件,它的安装包文件已经不需要了,通过这个命令可以删除 apt-get (–purge) remove software:(彻底)卸载通过apt-get安装的software
df -h:查看各个盘的总空间、已用空间、剩余空间大小 du -h xxx:查看xxx文件的大小 du -h - -max_depth=1:(注意max前面的两个减号是连在一起的,这里为了看得清楚,特意分开了)查看当前目录下,各文件的大小(单个文件或是单个文件夹),输入- -max就可以按tab了。这是个我经常使用的命令,因为公司有个服务器空间总是会被大家占满,此时可以cd /home,然后执行sudo du -h –max_depth=1,这样每个人的账户占用了多大的空间就一目了然了
ls -l | grep “^-” | wc -l:(grep和wc前面是或符号|,其余是小写字母l)用于计算当前目录下有多少个文件,注意仅仅统计文件个数,不统计文件夹个数。我感觉这比“右键-文件夹属性”靠谱一些。此外,要统计文件夹个数,可以将”^-“改为”^d”。同理,要想统计jpg文件个数,可以将”^-“改为”.jpg”,等等以此类推
ls | head -10 | xargs -I {} cp {} dst:(xargs -后面接的是i的大写字母)将当前目录下的前10个文件拷贝到dst目录下,这个用法有点高级了,是同学教我的,就是利用xargs实现cp、mv时的自定义参数,读者可以更进一步了解它的用法
分个段,继续写
ssh yourname@192.168.x.x:登录ubuntu服务器,yourname是你在服务器上的账号名,后面是服务器在局域网里的ip scp (-r) src_file yourname@192.168.x.x:/home/yourname/xxx:将本机src_file拷贝到服务器的xxx路径下,加r是针对文件夹。这个命令同样可以用于从服务器下载文件到本机,前提是你装了open-ssh
关于上面的登录服务器,每次都输一遍太麻烦,此时可以写一个脚本,具体可以搜一下sshpass
su username:切换为username用户
dos2unix xxx:将windows格式的文本文件转换为linux
watch -n 1 nvidia-smi:每1秒刷新显卡的使用情况(输入nvidia-smi只能得到一个固定的结果)
whereis xx:查找xx的安装路径,这个好像只能找到系统路径下的软件
find path -name “filename”:在path下查找所有文件名为filename的文件,支持模糊查找
grep -nHR “xxx”:查找当前目录下,所有出现过xxx字段的文件,并给出在哪一行,这个比较适合看代码用
eog xx.jpg:用命令行查看xx.jpg,这样避免了从图形界面访问图片目录
接下来记录一下几个小问题的解决办法
1、ubuntu下经常会碰到文件管理器死掉的情况
ps -A | grep nautilus 或者 pidof nautilus
sudo kill pid
第一步是获取文件管理器的进程pid,第二步是杀掉进程,然后重启即可。ps的用法还有
ps -p pidnumber -o comm=
2、设置开机自动挂载硬盘
sudo blkid
sudo vim /etc/fstab
3、设置开机自启动的脚本
sudo vim /etc/rc.local
sudo 、xx/xx.sh
4、设置环境变量
sudo vim /etc/profile
vim ~/.bashrc
.(source ) ~/.bashrc
export PATH=xxxxxx:$PATH
export LD_LIBRARY_PATH=xxx:$LD_LIBRARY_PATH
5、自己编写脚本xx.sh
开头加上#!/bin/sh或者#!/bin/bash,后者是前者的增强版,因为有时候前者会失灵(我也不知道为什么。。)
写好脚本后,应执行chmod 777 ./xx.sh
此后即可执行./xx.sh
最后说一点vim的用法
关于vim其实我用的不多,开发代码还是要IDE。但是在服务器上查看和修改一些文件时,必须用到vim或者vi(vim是升级版的vi)。话不多说,下放一张图 上图是我偶然一次在stackoverflow的回答里面看到的,现在找不到原答案了,幸好当时跟着画了一遍。看明白了这张图,对vim的基本读写操作应该就清楚了。下面再介绍一些其它的用法:
vim的复制粘贴 把内容复制到vim外:先按“v”,进入可视化,然后选择复制内容,再按“+y“,此时内容仅仅在寄存器内。此时需要输入”:reg“,进入寄存器中,才能将内容复制到vim以外
vim的便捷浏览 shift+4:光标移动到句尾 0:(数字0)光标移动到句首 shift+g:光标移动到文件尾 gg:光标移动到文件头
vim的其它方法 :set number/nonumber:显示、消除行数信息 :%s/foo/bar/g:文本替换,用bar来替换foo
网上vim相关教程太多了,这里就提一点点我经常用的。
三、ubuntu下一些软件安装的注意事项
主要是我自己常用的软件,记录一下。
1、opencv解决卡在ippicv_xxx.tgz文件下载的问题
手动下载相应版本的.tgz文件 进入opencv/.cache目录,在该目录下有个未下载完成的ippcv文件,将这个文件名复制 将自己手动下载的ippicv_xxx.tgz重命名,替换上面的文件
2、cuda检查是否正确安装
cd /usr/local/cuda/samples/1_Utilities/deviceQuery sudo make ./deviceQuery,出现显卡的相关信息则说明安装成功
PS
这排版看得我脑壳疼,后面还会更新的,到时候整个好看点的。 (2018/08/28)更新了一下,感觉还是不太好看。另外csdn的markdown是支持html语言的。