用了一年ubuntu14.04系统,整理下常用的shell语句

文章目录

    • 文章目录
      • 一、对ubuntu系统的认识
      • 二、比较常用的shell语句
            • 1、ubuntu下经常会碰到文件管理器死掉的情况
            • 2、设置开机自动挂载硬盘
            • 3、设置开机自启动的脚本
            • 4、设置环境变量
            • 5、自己编写脚本xx.sh
      • 三、ubuntu下一些软件安装的注意事项
            • 1、opencv解决卡在ippicv_xxx.tgz文件下载的问题
            • 2、cuda检查是否正确安装
      • PS

因为要做深度学习,所以不可避免要使用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 [email protected]:登录ubuntu服务器,yourname是你在服务器上的账号名,后面是服务器在局域网里的ip scp (-r) src_file [email protected]:/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=    #通过pidnumeber获取它对应的进程名
    2、设置开机自动挂载硬盘
    sudo blkid      #查看每块硬盘的uuid,复制待挂载硬盘的uuid
    sudo vim /etc/fstab   #参考里面其它硬盘的挂载方式,添加自定义的挂载盘
    3、设置开机自启动的脚本
    sudo vim /etc/rc.local  #打开该文件
    sudo 、xx/xx.sh   #写入rc.local,xx.sh是待启动的脚本
    4、设置环境变量
    sudo vim /etc/profile   #这个是系统的环境变量,能对所有用户起作用,尽量少改。修改之后需重启电脑才能生效
    
    vim ~/.bashrc   #当前用户的环境变量,修改之后还需配合执行如下命令
    .(source) ~/.bashrc        #注意这个改了之后,别的已经打开的terminal并不会生效,需要关了再开才会生效
    
    export PATH=xxxxxx:$PATH   #这两种都是临时环境,仅在当前terminal生效,terminal关闭之后就没了
    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)。话不多说,下放一张图
    用了一年ubuntu14.04系统,整理下常用的shell语句_第1张图片
    上图是我偶然一次在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语言的。

    你可能感兴趣的:(ubuntu)