美文网首页
notes for linux

notes for linux

作者: 活体检测业余爱好 | 来源:发表于2017-07-06 16:56 被阅读25次

    不要轻易卸载什么,可添加,千万不要删除啊什么的!!血的教训啊啊啊啊啊

    1、.sh文件:里面写的是shell端的命令集合,&&连接命令

    2、make -j8命令:

    对于不知道背后机理的人来说,make命令像命令行参数一样接收目标。这些目标通常存放在以“Makefile”来命名的特殊文件中,同时文件也包含与目标相对应的操作。更多信息,阅读关于Makefiles如何工作的系列文章。

    当make命令第一次执行时,它扫描Makefile找到目标以及其依赖。如果这些依赖自身也是目标,继续为这些依赖扫描Makefile建立其依赖关系,然后编译它们。一旦主依赖编译之后,然后就编译主目标(这是通过make命令传入的)。

    现在,假设你对某个源文件进行了修改,你再次执行make命令,它将只编译与该源文件相关的目标文件,因此,编译完最终的可执行文件节省了大量的时间。

    3、注释:#(可跨行注释)

    4、mkdir -p:  mkdir -p /root/test/test,这样就在/root目录下建立了test目录 ,并在/root/test目录下还建立了/root/test/test目录

    5、source:简单来说就是将设置在文件中的配置信息马上生效

    6、[]内的内容意思是:可写可不写(me:应该是这样吧~~~),eg: [ -z $data_dir ] && data_dir =“...”,

    7、[ -z STRING ]“STRING” 的长度为零则为真。

    8、Shell中定义变量:variableName="value",注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样,赋值的时候不能写$variableName="value",使用变量的时候才加美元符

    9、单引号:可以说是所见即所得:即将单引号内内容原样输出,或者描述为单引号里面看到是什么就会输出什么。单引号''是全引用,被单引号括起内容不管是常量还是变量者不会发生替换。

    双引号:

    把双引号内内容输出出来;如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来。双引号""是部分引用,被双引号括起的内容常量还是常量,变量则会发生替换,替换成变量内容。

    引号:

    不会将含有空格的字符串视为一个整体输出,如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,一般连续的字符串,数字,路径等可以用。

    使用规则:

    一般常量用单引号''括起,如果含有变量则用双引号""括起。

    10、shell中对变量的赋值,直接就是不要双引号,输出的时候会直接echo $变量名

    11、:=:见http://blog.csdn.net/huang_xw/article/details/12255489,只有有固定某个值得时候才不会覆盖,空或者unset都可以覆盖

    12、解压:

    1)gunzip *.gz#会解压之后删除原压缩文件
    2)tar文件只是把多个文件或文件夹打包合成一个文件,本身并没有进行压缩。

    gz是进行过压缩的文件。

    如果一个文件的后缀是tar.gz,那么说明打包的时候进行了压缩,所以解包的使用也同样需要解压缩。可以使用如下命令得到解好的文件:

    tar -zxvf xxxx.tar.gz#不可写成-zxfv
    也可以分两步走,先解压,再解包:
    gunzip xxxx.tar.gz
    tar -xvf xxxx.tar

    3)tar: tar -xf xxxx.tar.gz#可以把文件解压到当前文件夹

    13、#!:是解释器的路径,脚本的内容是由解释器解释的

    14、注意:有时候直接*.sh文件会显示未找到命令,此刻可以sh *.sh,why?

    ./a.sh会用你脚本中第一行的那个#!XXX的shell来执行语句(比如会有#!/usr/bin/env sh,也有:#!/usr/bin/env python),而sh a.sh则是用sh来执行语句

    注意:#!usr/bin/php是告诉操作系统执行这个脚本的时候,调用usr/bin下的php解释器;#!usr/bin/env php这种用法是为了防止操作系统用户没有将php装在默认的/usr/bin路径里,当系统看到这行的时候,会首先到env设置里查找php的安装路径...

    15、运行sh文件只有两种方法:

    1)sh文件名.sh#直接 文件名.sh会提醒未找到命令
    2)./文件名.sh

    16、vim是vi的升级版

    17、:q!:强制不保存退出

    18、time命令:会记录运行多少秒

    19、cd \

    >..:表示命令续行

    20、那么,现在按以下4种方式执行:

    1)./test.sh
    2)sh test.sh
    3). test.sh
    4)source test.sh

    他们有何区别?

    1)第一种方式,是在当前的shell执行脚本本身,也就是说把test.sh当成一个文件执行,这时候我们需要拥有test.sh的运行权限(x权限),而且当我们在执行此命令时,有2个新进程在运行,一个是test.sh,一个是sleep,如果我们在执行第一个sleep时按ctrl+c终止脚本,test.sh和sleep一起终止,并且第二个sleep不会执行,因为整个test.sh运行已经终止。

    2)第二种方式,是新建一个shell执行test.sh脚本里面的命令,不需要执行权限,有读取权限(r权限)即可,在执行此命令时,有2个新进程在运行,一个是bash,一个是sleep,如果执行第一个sleep时按ctrl+c,bash被终止,结果和第一种方式一样,第二个sleep不会执行。

    3)第三种方式,是在当前shell执行test.sh里面的命令,不需要执行权限,有读取权限(r权限)即可,在执行此命令时,只有一个新进程在运行,就是sleep,如果在执行第一个sleep时按ctrl+c终止,那么第二个sleep接着运行,直到脚本所有命令执行完。

    4)第四种方式和第三种方式一致。

    21、.将文件file1复制成文件file2

    cp file1 file2

    22、&&

    方式:command1 && command2

    如果command1执行成功,则执行command2

    23、sudo ldconfig

    ldconfig命令的用途主要是在默认搜寻目录/lib和/usr/lib以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件

    24、中断命令:Ctrl+C

    25、首先,可以确定的是,Linux运行的可执行文件都是二进制文件。

    26、.sh 文件中如下,表示的是分别将运行该.sh文件时传入参数 
    GPU_ID=$1
    NET=$2
    NET_lc=${NET,,}
    DATASET=$3

    27、sudo加命令相当于root下执行命令

    28、注意:没有安装包,若是想执行哪个命令就只能写好命令的路径

    eg:./svm-train ...

    29、如何知道软件有没有安装:

    gcc -v

    30、linux源:软件源是debian系的概念,把软件放在一个pool里面,用一条命令就可以自动从指定服务器下载并安装

    31、Linux中的update和upgrade

    update:更新软件的信息,包括各种软件最新版本啊之类的,是下载源里面的metadata的. 包括这个源有什么包, 每个包什么版本之类的.这个命令,会访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。我们在新立得软件包管理器里看到的软件列表,都是通过update命令更新的。

    upgrade,是metadata决定要更新什么包(同时获取每个包的位置),这个命令,会把本地已安装的软件,与刚下载的软件列表里对应软件进行对比,如果发现已安装的软件版本太低,就会提示你更新。如果你的软件都是最新版本,会提示:

    升级了0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。

    注意:安装软件之前, 可以不upgrade, 但是要update. 因为旧的信息指向了旧版本的包, 但是源的服务器更新了之后旧的包可能被新的替代了, 于是你会遇到404...

    32、apt-get”命令,这是用于管理已安装程序的通用命令

    33、udo add-apt-repository ppa:ubuntu-toolchain-r/test:把 PPA 源添加到 Source list 中
    ppa: Personal Package Archives(个人软件包档案),每个用户和团队都有一个或者多个
    可以通过 Google 来搜索一些常用软件的 PPA 源

    34、sudo是superuser do的简写,sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登陆 和管理时间,同样也提高了安全性。

    apt是个很完整和先进的软件包管理程式,使用他能够让您,又简单,又准确的找到您要的的软件包,并且安装或卸载都很简洁。他还能够让您的任何软件都更新到最新状态,而且也能够用来对ubuntu进行升级。

    "apt是需要用命令来操作的软件,但是现在也出现了很多有图像的软件,比如Synaptic, Kynaptic 和 Adept。"

    35、#管理员$普通用户,~帐户的home 目录

    36、终端常常被称为命令行或者shell

    37、启动终端:Ctrl + Alt + T

    38、注意:linux系统对某个文件操作,必须给绝对路径或者起码cd到相应目录里面

    39、Linux 和 Unix文件系统被组织成一个有层次的树形结构。文件系统的最上层是/,或称为 根目录。在 Unix 和 Linux 的设计理念中,一切皆为文件——包括硬盘、分区和可插拔介质。这就意味着所有其它文件和目录(包括其它硬盘和分区)都位于根目录中。例如:/home/jebediah/cheeses.odt 给出了正确的完整路径,它指向 cheeses.odt 文件,而该文件位于 jebediah 目录下,该目录又位于 home 目录,最后,home 目录又位于根(/) 目录下。 在根 (/) 目录下,有一组重要的系统目录

    40、如果不想切换root但是想拥有大部分root权限,可以在使用命令时候加上sudo,sudo mount挂载

    41、lib*是正则表达式

    42、那么~就是登陆用户的主目录就相当于他的房间或者理解为他自己的单元,那么/就像是一栋房子

    43、sh:执行脚本的时候是用sh + 脚本名的方式来执行,其实,大部分的时候,简单脚本只要权限设置正确,可以直接执行,不需要sh命令的

    44、IDE(Integrated Development Environment)是用于程序开发的软件,一般包括代码编辑器、编译器、调试器和图形用户界面工具

    45、开发者之所以给二进制文件(一般来讲是机器代码,汇编语言编译后的结果)就是不想让人去修改数据结构

    46、注意以后安装的python工具包例如easy_install,pip等,都会安装在/usr/local/python2.7/bin目录下,要想直接使用这些命令还需要把/usr/local/python2.7/bin添加到$PATH变量中。

    47、可以终端输入gcc对源文件一个个编译

    48、cd $dir: $表示后面是变量,所以整个就是说进入你dir这个目录

    49、输出变量:echo $变量名

    50、注意:可以运行的不一定是.sh文件普通的文档都行,只要有执行权限

    51、$ cd `dirname $0`返回当前路径的"."。

    DIR="$( cd "$(dirname "$0")" ; pwd -P )"

    则DIR是变量,且存的是当前路径,文件中运行的就是相应文件所在路径,终端中运行的就只是我的终端所在的路径。注意,文件中的变量,运行结束了,就没有了,别指望终端中还保存着

    52、#!/bin/sh是指此脚本使用/bin/sh来解释执行

    53、gunziptest.txt.gz:它会将文件解压缩为文件test.txt,原来的文件则没有了,为了保留原有的文件,我们可以加上-c选项并利用linux的重定向

    54、安装某个软件否:dpkg -s firefox

    55、pip 是“A tool for installing and managing Python packages.”,也就是说pip是python的软件安装工具

    56、cat 文件:一次显示整个文件

    57、sudo ldconfig为了让动态链接库为系统所共享

    58、sh与bash:bash在sh的基础上加了一些扩展性功能

    59、挂载镜像文件

    #mount -o loop -t iso9660 /Centos.iso /dac
    表示挂载的类型,挂载的数据ISO,和挂载点

    60、rar的解压

    unrar x aa.rar
    unrar e aa.rar

    x参数 是解压到一个文件夹里
    e参数是把所有文件解压到当前目录下

    61、注意:以后权限设置读写之后,最好还是在设置回去只读

    62、加任何参数即可移动文件及其子文件

    63、软连接也是文件夹,只是有一个指向,cp之类命令中路径可以同样有软连接

    64、chmod默认是所有用户a

    65、sudo ln -sf例子:ln -sf 源文件 目标文件(指的是要生成的文件)-s 软链接(符号链接) -f 强制执行

    ln -s log2013.log link2013 #为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效

    66、修改设备名称:sudo gedit /etc/hostname,修改,重启

    67、lspci - 列出所有PCI设备(PCI,外设部件互连标准的缩写,它是目前个人电脑中使用最为广泛的接口)

    68、grep -i nvidia:grep,查找,-l:查询多文件时只输出包含匹配字符的文件名。

    69、lspci |grep VGA:查看机器显卡

    70、软件源就是软件库


    1、sudo apt-get install build-essential”
    执行完后,就完成了gcc,g++,make的安装。build-essential是一整套工具,gcc,libc等等。通过“g++ -v”可以查看g++是否安装成功。


    相关文章

      网友评论

          本文标题:notes for linux

          本文链接:https://www.haomeiwen.com/subject/znahhxtx.html