• LinuxStudyNote


    LinuxStudyNoteBy_Silvers:
    (E:Video_TutorialsLinux自学视频linux视频教程-后盾网视频教程)
    22:25 2016/1/28
    =================================HackedBySilversForCentOS7.0=======================================

    ##Linux中的基本命令包括文件操作命令、目录操作命令、文件查看命令等几类。
    文件操作命令完成对文件的建立、复制、删除、移动等功能 目录操作命令完成对目录的建立、复制、删除、移动等功能
    文本查看命令完成对文本文件内容的浏览、局部浏览活分页浏览等功能

    ##linux下文件操作基本的命令
    ls: 列举文件 -a 显式隐藏文件 -l 具体文件及所有属性
    pwd: 无参数 显式当前所处目录结构
    touch:创建空白文件
    file :显式文件属性

    ##目录操作基本命令
    cd :改变目录
    cp :-r 复制目录
    mv :移动文件及目录
    rm :-r 删除文件夹 -f 静默删除
    mkdir: 创建目录
    rmdir: 删除一个空的文件夹

    ##文本文件查看基本命令
    cat :查看文件内容
    more:分屏显式文件内容
    less:分屏显式文件内容
    head : -nu 指定显式文件前nu行内容
    tail:-nu 指定显式文件倒数nu行内容
    ===========================================HackedBySilversForCentOS7.0=================================================

    使用Tab键进行长命令的自动补全

    查看命令使用的历史记录

    方向键上:查看执行过的命令
    使用!!:执行最近(上一次)执行过的命令
    使用!: 执行已经执行过的命令(!①模糊查询(执行过命令的首字母或全称,当有多于一条相同命令,从下往上第一条命令优先执行)②!history显示的命令行数号
    history:显示历史执行过的命令  -d 删除历史记录 
    

    标准输入输出

    Linux的大部分命令都具有标准的输入/输出设备端口
    STDIN      0        标准输入      键盘    命令在执行时所要的输入数据通过它来取得。
    STDOUT   1        标准输出      显示器    命令在执行后的输出结果从该端口送出。
    STDERR    2        标准错误       显示器    命令执行时的错误信息通过该端口送出。
    

    系统重定向

     重定向及时不使用系统的标准输入端口,标准输出端口和标准错误输出端口,而进行重新的指定,所以重定向分为输入,输出、错误重定向。通常情况下重定向到一个文件。
    <: 实现输入重定向。
    输入重定向不经常使用,因为大多数命令都以参数的形式在命令行上指定输入文件的文件名,尽管如此,当使用一个不    接受文件名为输入参数的命令,而需要的输入又是在        一个已存在的文件里,就可以使用输入重定向解决问题
    >或>>:实现输出重定向。输出重定向比输入重定向更为常用。输出重定向使用户能把一个命令的输出重定向到一个文件里,而不是显示在屏幕上。很多情况下都可以使用这种功        能。例如,如果某一个命令的输出很多,在屏幕上不能完全显示,即可把它重定向到一个文件中,稍后再用vim或cat打开该文件。(>和>>的区别 : 前者覆盖保存,后者追加保        存)
    2>或>>:实现错误重定向
    &>:同时实现输出重定向和错误重定向
    

    管道的应用

    许多Linux命令具有过滤特性,即一条命令通过标准输入端口接受一个文件中的数据,命令执行后产生的结果数据又通过标准输     出端口送给后一条命令,作为该命令的输入数据。
    后一 条命令也是通过标准输入端口而接受输入数据的。
    管道命令“|”将这些命令前后连接在一起,形成一条管道线
    命令格式
    cmd1 | cmd2
    cmd为命令名,|为管道连接符。
    

    ===========================================HackedBySilversForCentOS7.0=================================================

    文件权限管理

      文件权限(File Permission)定义了对某文件或目录的访问限制。每个文件或目录都有9个基本权限位控制其读、写、执行。
      r    读权限    可以读文件的内容    可以列出目录中的文件列表    
      w    写权限    可以修改、删除文件    可以在该目录中创建删除文件
      x    执行权限    可以执行该文件    可以使用cd进入该目录
       —————————————————————————————————————————————————
       |     权限项   |    读    写    执行  |    读    写    执行   |    读    写     执行  |
       |  字符表示   |    r    w    x       |    r    w    x        |    r    w    x       |
       |  字符示例   |    u+r    u+w    u+x   |    g+r    g+w    g+x   |    o+r    o+w    o+x   |
       |  数字表示   |    4    2    1       |    4    2    1       |    4    2    1       |
       |  权限分配   |           文件所有者                  |    文件所属组用户             |               其他用户                  |
    ——————————————————————————————————————————————————     
     说明:
          a. 目录上只有执行权限,表示可以进入此目录以及深层目录
    b. 目录上只有执行权限,要访问该目录下的有读权限文件,必须知道文件才可以访问
    c. 目录上只有执行权限,不能列出目录也不能删除该目录
    d. 目录上执行权限和读权限的组合,表示能可以进入目录并能列出目录列表
    e. 目录上执行权限和写权限的组合,表示可以在目录中创建和重命名文件
        权限修改方法A:
         chmod u+rw 文件名称
         chmod g+r 文件名称
          chmod o+x 文件名称(添加权限)
          chmod u-rwx 文件名称(取消所有权限)
     权限修改方法B:数字(八进制)表示法[ 4表示读权限,2表示写权限,1表示执行权限]
         chmod 777 文件名称 :表示所有权限
          chmod 444 文件名称 :表示所有用户拥有读权限
          chmod 745 文件名称 :各组权限分配不同 
     chown 改变文件及目录的组 
                 chown user:group 文件/目录名称  将文件/目录名称的属主改变为user:group
    

    特殊权限位

     三个特殊权限位是在可执行程序运行时影响操作权限的。它们分别是SUID们、SGID位和sticky-bit位
    特殊权限                说明
     SUID    当设置了SUID位的可执行文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,它都有文件所有者的特权。
    SGID    当一个设置了SGID位的可执行文件运行时,该文件将具有所属组的特权,任意存取整个组所能使用的系统资源;
        若一个目录设置了SGID,则所有被复制到这个目录下的文件,其所属的组都会被重设为和这个目录一样。
    sticky-bit    对一个文件设置了sticky-bit之后,尽管其他用户有写权限,也必须由属主执行删除、移动等操作;
        对一个目录设置了sticky-bit权限之后,那么存放在该目录下的文件或目录只能由其属主执行删除、移动等操作
    若用户无特殊需要,尽量不要去打开这些权限,避免安全方面出现漏洞
    

    ===========================================HackedBySilversForCentOS7.0=================================================

    系统查找

     which         查找可执行程序的命令/程序/文件(在指定目录下),只在当前用户path(env命令可查看用户path环境变量)中指定的目录中查找(优先)
     whereis    查找指定文件 可查找与名称相关的所有文件、(内嵌查询DB)全面详细。
     locate        查找含有指定字符串的所有文件,(模糊查询)不精确  
     find        查找实例(直接在硬盘/分区中操作,速度慢) 在当前目录查找
         ## 与时间相关的参数 
                mtime : 修改时间,修改过的所有文件,系统修改的文件.         
     atime:访问时间,文件何时被读取
                 ctime:状态时间,rw权限修改时间
    find / -mtime 0;
    find / -mtime 3(0:24小时之内,3:三天之前的那一天,(+指定区间范围以外,-指定区间范围以内));       
         ## 与用户、组相关的参数
    find / -user username:查找与用户相关的所有文件 
    find / -nouser:不属于任何用户的文件查找;
    find / -group groupname.
         ## 与文件权限相关的参数 
    find / -name filename(查找(区分大小写)匹配整个名称的文件) 
    find / -iname filename(不区分大小写);
    find / -type f (f表示普通文件,l表示链接文件d表示目录).
         ## find 特殊过滤条件 
                  find / -size +1000k(查找指定目录中大于1000k的文件(s表示kb,h表示mb,));
                  find /etc -name '*pas*'(通配符填充,模糊查询)
                  find / -perm +7000(查找特殊权限的文件)
    

    文本编辑器Vim

         vim和vi的区别:vim是vi的升级版,内核是一样的, Linux默认文本编辑器vi,系统集成vi。vim是需要安装才能使用,vi不用安装即可使用。
         ## Vi编辑基础,wq保存退出,!wq强制不保存,q不保存退出,!q强制不保存退出.
            ## 光标移动和翻页操作
    h:向左移动光标,
    l(小写L):向右移动光标,
    k:向上移动光标,j:向下移动光标。
    ^:将光标快速跳转到本行的行首字符,
    $:将光标快速跳转到本行的行尾字符,
    w:将光标快速跳转到当前光标所在位置的后一个单词的首字母,b:将光标快速跳转到当前光标所在位置的前一个单词的首字母,e:将光标快速跳转到当前光标所在位置的后一个单词的        尾字母;
    Ctrl+f:向前翻整页,
    Ctrl+b:向后翻整页,
    Ctrl+u:向前翻半页,
    Ctrl+d:向后翻半页;
               :set nu(在编辑器中显示行号),
    :set nonu(取消编辑器中的行号显示);
    1G:跳转到文件的首行(数字1),
    G:跳转到文件的尾行,
    #G:跳转到文件中的第#行;
           ## vi模式(控制模式(默认)命令模式(输入冒号进入)编辑模式(输入a进入))Esc键退出INSERT模式
    进入INSERT模式
    i:在当前光标处进入INSERT模式。
    a:在当前光标后进入INSERT模式。
               A:将光标移动到当前行的行末,并进入INSERT模式。
               o:在当前行的下面插入新行,光标移动到新行的行首,进入INSERT模式。
               O:在当前行的上面插入新行,光标移动到新行的行首,进入INSERT模式。
               cw:删除当前光标到所在单词尾部的字符,并进入INSERT模式。
               c$:删除当前光标到行尾的字符,并进入INSERT模式。
               c^:命令删除当前光标之前(不包括光标上的字符)到行首的字符,并进入INSERT模式
          ## 功能键操作
              INSERT模式编辑键操作
    方向键:进行上下左右方向的光标移动。
    Home:快速定位光标到行首。
    End:快速定位光标到行尾。
    PageUP:进行文本的向上翻页。
    PageDown:进行文本的向下翻页。
    Backspace:删除光标左侧的字符。
    Delete:删除光标位置的字符。
         ## 删除操作
    x:删除光标处的单个字符。
    dd:删除光标所在行。
    dw:删除当前字符到单词尾(包括空格)的所有字符。
    de:删除当前字符到单词尾(不包括单词尾部的空格)的所有字符。
    d$:删除当前字符到行尾的所有字符。
    d^:删除当前字符到行首的所有字符。
    J:删除光标所在行行尾的换行符,相当于合并当前行和下一行的内容
         ## 撤销操作
    u:取消最近一次的操作,并恢复操作结果。可以多次使用u命令恢复已进行的多步操作。
    U:取消对当前行进行的所有操作。
    Ctrl+r:对使用u命令撤销的操作进行恢复。
        ## 复制与粘贴操作
    yy:复制当前行整行的内容到vi缓冲区。
    yw:复制当前光标到单词尾字符的内容到vi缓冲区。
    y$:复制当前光标到行尾的内容到vi缓冲区。
    y^:复制当前光标到行首的内容到vi缓冲区。
    p:读取vi缓冲区中的内容,并粘贴到光标当前的位置(不覆盖文件已有的内容)。
       ## 字符串查找操作
    /word:从上到下在文件中查找字符串"word"。
        ?word:从下到上在文件中查找字符串"word"。
    n:定位下一个匹配的被查找字符串。
    N:定位上一个匹配的被查找字符串。   
    

    ## 字符串替换操作

    :s/old/new:将当前行中查找到的第一个字符"old"字符串替换为"new"字符串。
    :s/old/new/g:将当前行中查找到的所有字符串"old"替换为"new"字符串。
    :#,#s/old/new/g:在行号"#,#"范围内替换所有的字符串"old"为"new"字符串。
    :%s/old/new/g:在整个文件范围内替换所有的字符串"old"为"new"字符串。
    :s/old/new/c:在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认。
       ## 使用vi打开多个文件
    vi file1 file2 file3 .....
       ## vi多文件操作命令
    :args:显示多文件信息
    :next:向后切换文件
    

    : :prev:向前切换文件
    :first: 定位首文件
    :last: 定位尾文件
    Ctrl+^:快速切换到编辑器中切换前的文件
    ==========================================HackedBySilversForCentOS7.0=================================================

    进程操作

    ## ps 查看系统当前进程 
         ps -ef 查看所有
         ps  aux (包含cpu 的当前信息)
         filename + & 显示filename进程号
         killall -u command : 杀死指定进程
         kill pid : 杀死指定进程
         sleep 10000 :暂时停掉进程(会产生新的进程)
         jobs : 显示挂起的进程 
         fg + jobs号码 :将挂起的进程调入前台模式
         bg +jobs号码 :将前台的进程调入后台模式
    

    ============================== ============HackedBySilversForCentOS7.0=================================================

    yum&&rpm&&源码安装软件

    Linux 应用程序组成:

    文件类型                保存目录
    普通执行程序文件                /usr/bin
    服务器执行程序文件和管理程序文件        /uur/sbin
    应用程序配置文件                /etc
    应用程序文档文件                /usr/share/doc
    应用程序手册页文件            /usr/share/man
    

    为什么使用yum(在有网络连接的情况下才能使用yum)
    Linux系统维护中令管理人员最头痛的就是软件包之间的依赖了,往往是安装了A软件,但是安装的时候告诉你需要B软件,安装B软件时又告诉你需要Z库,好不容易安装好Z库,发现版本还有问题,RPM软件包管理系统对软件之间的依赖关系没有内部定义,造成安装RPM软件时经常出现令人无法理解的问题。
    什么是yum
    用Python写成,早时称为yup,后经杜克大学的Linux@Duke团队进行改进,才更名为yum。
    yum的宗旨是自动化升级,安装/移除RPM软件包,收集RPM软件包的相关信息,检查依赖并自动提示用户解决。yum的关键之处是要有可靠的repository。
    也就是软件仓库,它可以是HTTP或FTP站点,也可以是本地软件池。
    yum工具实例:
    yum updae # 升级系统 yum remove httpd # 移除指定的软件包 yum install httpd # 安装指定的软件包
    yum search httpd # 搜索指定的软件包 yum update httpd # 升级指定的软件包 yum list httpd # 列出软件的详细信息 
    替换yum官方仓库源为国内开源镜像站点的yum仓库源(速度快)
    备份本机仓库源: mv /etc/yum.repository.d/CentOS7-Base.repo /etc/yum.repository.d/CentOS-Base.repo.backup
    wget download’url(国内开源镜像站中提供的对应源repo文件的下载链接)
    yummakecache 生成本地缓存

    ##RPM 软件包(RedHat,CentOS,SUSE支持)
    RPM最早是由RedHat公司提出的软件包管理标准,目前应用于很多Linux发行版。
    RPM Package Manager
    RPM软件包的文件名
    bash-3.0-19.2.i386.rpm
    bash #软件包名称
    3.0-19.2 # 软件版本号
    i386 # 软件运行硬件平台
    .rpm # 软件包扩展名
    rpm命令的功能:
    Centos中使用rpm命令对RPM软件包进行管理
    rpm命令可以完成对软件包的所有管理功能

    • 查询已安装在Linux系统中的RPM软件包的信息
    • 查询RPM软件包安装文件的信息
    • 安装RPM软件包到当前Linux系统
    • 从当前Linux系统中卸载已安装的RPM软件包
    • 升级当前Linux系统中已安装的RPM软件包

      rpm查询命令

      命令 功能
      rpm -qa 查询Linux系统中的所有软件包
      rpm -q 包名称 查询指定名称的软件包是否安装
      rpm -qi 包名称 查询指定名称的软件包的详细信息
      rpm -ql 包名称 查询指定名称的软件包中所包括的文件列表
      rpm -qf 文件名称 查询指定文件所属的软件包
      rpm -qpi 包文件名 查询指定RPM包文件的详细信息
      rpm -qpl 包文件名 查询指定RPM包中包含的文件列表

      rpm安装命令:

      rpm -i(表示安装软件包)
      -ivh(表示在安装RPM软件包是会显示更多的提示信息)
      被依赖的软件包应该优先被安装

      rpm包卸载

      rpm -e(表示卸载软件包)
      RPM软件包的卸载同样存在依赖关系
      被依赖的软件包应该最后被卸载

      rpm包升级

      rpm -U(表示升级软件包)
      当系统中未安装需要升级的软件包时,升级的过程等同于安装软件包的过程

      源码编译安装应用程序

      源代码安装的一般步骤:
    • 确认当前系统中具备软件编译的环境
    • 获得应用程序的源代码软件包文件
    • 解压缩源代码软件包文件
    • 进行编译前的配置工作
    • 进行程序源代码的编译
    • 将编译完成的应用程序安装到系统中
      编译应用程序前的准备工作:
      确认系统中已经安装了编译环境
      $ rpm -qa | grep gcc
      获得(下载)程序的源码安装包文件
      释放程序源码软件包文件
      $ tar zxf nginx-1.3.3.5.tar.gz
      进入源码目录
      $ cd nginx-1.3.3.5
      编译应用程序前的配置
      程序源码目录中的”configure”命令用于完成程序编译前的配置工作
      查看”configure”命令支持的配置选项
      ./configure –help
      指定安装路径进行配置
      ./configure –prefix=/opt/nginx(configure表示命令名,prefix表示用于设置安装路径的配置选项,nginx表示为命令选项设置的值)
      编译与安装
      程序编译过程
      使用make命令进行应用程序的编译
      $ make
      程序安装过程
      使用make install 命令进行应用程序的编译
      $ make install
      验证(执行)已编译安装完成的程序
      查看安装目录中的文件,执行命令程序
      $ cd /opt/nginx ; ls

    ##
    dmesg 查看系统硬件配置
    df -h 查看磁盘使用情况

  • 相关阅读:
    详解threading模块:Condition类的使用
    concurrent.futures 模块使用说明
    细读Spring源码(四)什么是IOC?
    OAuth 2.0系列(六) OAuth令牌
    OAuth 2.0系列(七) OAuth 2.0可能存在的安全漏洞及预防方法
    细读Spring源码(一)refresh()方法概览
    HashMap源码解读() put方法的实现过程
    跟着字节码追踪JAVA中的基本运算
    细读Spring源码(六)Spring源码设计架构
    细读Spring源码(五)AOP从实战到源码
  • 原文地址:https://www.cnblogs.com/Silvers/p/5861780.html
Copyright © 2020-2023  润新知