zoukankan      html  css  js  c++  java
  • linux的一些运维操作基本知识

    1 ~/.bashrc

      这个可以认为是linux系统的启动项,每次启动的时候都会运行一些这里边的命令;

      常见的有:

        alias rm='rm -i'//修改某些指令;

        export LD_LIBRARY_PATH=……//制定环境变量;LD_LIBRARY_PATH是linux系统的环境变量,直接去其目录下去找lib库等;

    2 gcc

      gcc(gnu collect compiler)是一组编译工具的总称;它主要完成的工作任务是“预处理”和“编译”,以及提供了与编译器紧密相关的运行库的支持,如libgcc_s.so、libstdc++.so等;

     

    3 glibc

      glibc是gnu发布的libc库,也即c运行库。glibc是linux系统中最底层的api(应用程序开发接口),几乎其它任何的运行库都会倚赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现,主要的如下:
     (1)string,字符串处理
     (2)signal,信号处理
     (3)dlfcn,管理共享库的动态加载
     (4)direct,文件目录操作
     (5)elf,共享库的动态加载器,也即interpreter
     (6)iconv,不同字符集的编码转换
     (7)inet,socket接口的实现
     (8)intl,国际化,也即gettext的实现
     (9)io
     (10)linuxthreads
     (11)locale,本地化
     (12)login,虚拟终端设备的管理,及系统的安全访问
     (13)malloc,动态内存的分配与管理
     (14)nis
     (15)stdlib,其它基本功能

     

    4 binutils

      binutils提供了一系列用来创建、管理和维护二进制目标文件的工具程序,如汇编(as)、连接(ld)、静态库归档(ar)、反汇编(objdump)、elf结构分析工具(readelf)、无效调试信息和符号的工具(strip)等。通常,binutils与gcc是紧密相集成的,没有binutils的话,gcc是不能正常工作的;

     

    一些常用指令:

      查看centos系统版本:cat /etc/redhat-release;

     

    5 git相关

            git配置:
            cat ~/.ssh/id_rsa.pub #检查是否已经有SSH key pair
            ssh-keygen -t rsa -C "name" #生成SSH key pair
            cat ~/.ssh/id_rsa.pub #获取SSH key pair,将其copy到git网页版本的ssh keys的页面上即可;
            配置完成,直接clone代码即可;
     
      git常用命令:
              git clone https://github.com/kaldi-asr/kaldi // 从网上复制代码;
              git branch //查看本地分支信息;
              git branch -a //查看所有分支,包括非本地的分支
              git checkout -b 本地分支名 origin/远程分支名;eg:git checkout -b new_v origin/new_v //从远程将分支拉取至本地;
              git push 代码仓库名 远程分支名:本地分支名;eg:git push origin new_a:new_a//本地提交代码;
          一般可以直接git push完成操作,默认推到当前分支;
              git checkout . //代码还原;
              git checkout + 分支名;//代码切换至分支;
              git reset --hard +提交编号;//将代码回退到某次提交
        查看用户信息:
                git config user.name
                git config user.email
            修改用户名和邮箱地址:
                git config --global user.name "xxxx"
                git config --global user.email "xxxx"
     
    6 安装高版本的gcc(至少5.3.1以上);
                yum install centos-release-scl
                yum install devtoolset-4-gcc-c++-7.3.1
                source /opt/rh/devtoolset-7/enable
                gcc --version
     
            注意:有些机器不支持安装5.3.1 通过命令【 yum --disablerepo="*" --enablerepo="*scl*" search gcc 】来看库中有声明版本;
                source /opt/rh/devtoolset-7/enable 每次运行前source一下;
     
            注:yum可能出错:报错如下:
              #yum
                        File "/usr/bin/yum", line 30
                        except KeyboardInterrupt, e:
                                    ^
                        SyntaxError: invalid syntax
     
                原因:这是因为yum 采用python作为命令解释器,但是有时候我们python默认为3.5,但是yum只支持2.7;所以报错;
                修改/usr/bin/yum文件第一行,#!/usr/bin/python改成#!/usr/bin/python2.7即可;
             
    7 linux账户管理
      Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统;用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护;
      7.1 用户账号的管理:

        a 增 : useradd 选项 用户名
          参数说明:

            选项:

              -c comment 指定一段注释性描述;
              -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录;
              -g 用户组 指定用户所属的用户组;
              -G 用户组,用户组 指定用户所属的附加组;
              -s Shell文件 指定用户的登录Shell;
              -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号;

              -p 设置密码,必须是秘文,不建议使用;

            用户名 : 指定新账号的登录名;

          举例:

            实例1 # useradd –d /home/sam -m sam

              此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录 /home/sam(/home为默认的用户主目录所在的父目录);

            实例2 # useradd -s /bin/sh -g group –G adm,root gem

              此命令新建了一个用户gem,该用户的登录Shell是 /bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组;

              这里可能新建组:#groupadd group及groupadd adm

              增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等;

              Linux提供了集成的系统管理工具userconf,它可以用来对用户账号进行统一管理;

        b 删:userdel 选项 用户名

          常用的选项是 -r,它的作用是把用户的主目录一起删除; 

        c 改:usermod 选项 用户名

           常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值;

           另外,有些系统可以使用选项:-l 新用户名 ;这个选项指定一个新的账号,即将原来的用户名改为新的用户名;

        d 查

          

      7.2 用户密码管理

        修改密码:passwd 选项 用户名

          /etc/security/opasswd文件存储历史密码,如果有冲突可以修改或删除对应的历史密码;

          /etc/login.defs 文件存储了一些密码要求,如果有对密码的要求不满足(比如必须带数字等),可以修改对应文件;

      7.3 用户组的管理

        每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建;

        用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新; 

        7.3.1 用户组操作

          增 : groupadd 选项 用户组

            删 :groupdel 用户组

           改:groupmod 选项 用户组

              -g GID 为用户组指定新的组标识号;

            -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同;

            -n新用户组 将用户组的名字改为新名字;

          查:

        7.3.2 用户组切换,适用于一个用户,有多个用户组使用命令newgrp (另一个用户组) 切换;

      7.4 系统文件管理

        与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括/etc/passwd, /etc/shadow, /etc/group等;

        7.4.1 /etc/passwd

          每一行记录一个用户属性,举例如下,部分内容省略:

          # cat /etc/passwd

            root:x:0:0:Superuser:/:

            daemon:x:1:1:System daemons:/etc:

            usera:x:1000:1000::/home/usera:/bin/bash      
          含义是:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

          口令是加密的,所以只能看到x;

          用户标识号,一般从100开始,0标识超级用户root,0~100系统备用;

          组标示号对应着/etc/group文件中的一条记录;

         7.4.2 /etc/shadow

          /etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生;

          直接pwconv运行即可;

          它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用":"隔开。这些字段是:

            登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

        7.4.3 /etc/group

          用户组的所有信息都存放在/etc/group文件中;

          将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段;

          每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组;

          当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组;

          用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员;

          用户组的所有信息都存放在/etc/group文件中。此文件的格式也类似于/etc/passwd文件,由冒号(:)隔开若干个字段,这些字段有:

            组名:口令:组标识号:组内用户列表

        7.4.4 /etc/sudoers,他就是来存储操作超级账户的,默认只有root,可以把你想设置成超级用户的加进去;

          

      7.5 示例:

        增加一个用户名和密码都是worker的组,并且设置工作目录为/data/worker/ ;然后删除它;

          groupadd worker

          useradd -g worker -d /data1/worker -s /bin/bash/ -m worker

          passwd worker #设置密码

          userdel worker

          groupdel worker

          rm -rf /var/spool/mail/worker

      7.6 说明:

        7.6.1 最好不要直接修改etc下边的文件夹;

    8 scp失效,一般是机器存储了错误的公匙,找到本机/root/.ssh/known_hosts,删除错误ip即可,下次会显示

      Are you sure you want to continue connecting (yes/no)? yes
      Warning: Permanently added '[ip]:36000' (ECDSA) to the list of known hosts.
      root@ip's password:
        完成一次成功的scp之后,你会发现你删掉的那行有出现了在/root/.ssh/known_hosts文件中;
      注:从A机器传文件到B机器,known_hosts在A机器中;另,不同用户在同一台机器上,使用不同的known_hosts;

      

  • 相关阅读:
    环境变量的配置
    java语言概述
    快捷键,功能键及常用的DOS命令
    html介绍
    Java web学习框架
    线程的使用
    Task类(任务)
    Parallel类(简化Task 操作)
    文件及数据流技术
    泛型的使用
  • 原文地址:https://www.cnblogs.com/hanlaomo/p/10908537.html
Copyright © 2011-2022 走看看