linux二

Day01-0822

一、回顾
    1.GUN/GPL GUN/Linux  Linux内核   发行版

    2.基础命令
        ls
        ls -l 或者 ll
        ls -a
        cd   绝对路径 /   相对路径 回到上一级或者打开下一级目录
        用户主目录 /home/username  ~  cd
        pwd
        su  -
    3.目录和文件的指令
        增: mkdir   mkdir -p  touch  vi
        删: rmdir   rm   -r   -f
        改: cp  -r   mv
        查: cat   more   head  -n   tail -n  -f/-F   ls ll
    4.vi编辑器
        命令行模式:/   yy dd  p   u  
        插入模式或者编辑模式: i Esc
        最后行模式:  w q  !  wq! w! q!      set nu   替换

二、用户和用户组
    1.超级用户
        就是root用户,拥有至高无上的权限,这个用户在实际生产环境中尽量不要使用,系统安装过程中创建的
        root 用户的UID 0
    2.普通用户
        UID从500开始的  由root创建 不止一个   
    3.伪用户
        UID在1~499之间的是伪用户
        系统指定的一些进程,给它们也分配了一部分ID号,这部分伪用户不能够真正的登陆,也没有家目录

    $ cat  /etc/passwd  //当前系统中所有用户的信息
    hadoop:x:500:500::/home/hadoop:/bin/bash
    用户名:密码:UID:GID:注释性描述(fullname):用户家目录:用户使用的shell

    4.创建用户:# useradd username
                # useradd [用户名]
    # useradd beijing
    3个地方证明已经创建了用户
    Permission denied  权限禁止

    5.创建用户组 # groupadd  zhongguo
                 # groupadd   [用户组名]
    【注意】:在创建用户同时,会自动创建一个与其名称一样的用户组

    6.设置修改用户密码:
    第一种:
    # passwd [uesername]
    Changing password for user beijing.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
    
    第二种:echo 回显打印字符内容
    # echo '654321' | passwd --stdin beijing
    --stdin 表示输入的意思,一定要加的选项

Changing password for user beijing.
passwd: all authentication tokens updated successfully.    
    witch user
    7.切换用户  su - [要切换的目标用户] s
        切换一定 要加  -
        su 和 su - 的区别:一个是切换用户,一个是完整的切换(包括用户环境)

        普通用户切换root:需要知道root用户的密码
        root用户切换普通用户:不需要密码
        普通用户切换普通用户:需要知道被切换用户的密码

    8.删除用户: # userdel  hanzhou
            ***    # userdel  -r  hanzhou   ->推荐   
                选项:-r 彻底删除用户包括用户主目录  

扩展:
      1、# gpasswd 管理用户组成员,增加或删除
          -a 为用户组加入一个已存在的用户
          -d 将用户组内的某个用户移除
      # gpasswd -a beijing zhongguo
      # gpasswd -d beijing zhongguo

      2、# useradd -G: 创建一个新用户并加入到所属组


 三、用户文件和目录权限 (rwx)
    1.drwxrwxr-x    d代表目录  -代表文件  b
     2.rwx(所有者的权限)-> u   rwx(所属组的权限) ->g  r-x(其他用户权限) -> o
         r:文件-cat,more ,head,tail  目录-ls  ll
        w:文件-vi  touch  目录- mkdir mv  cp rm
        x:文件 执行脚本(脚本文件) sh 目录:cd

    所有者:user, 用u表示
    所属组:group,用g表示
    其他人:other,用o表示,其他普通用户

        r:4
        w:2
        x:1

    3.修改文件或目录的权限命令: chmod
        --> 字母用法:# chmod u+x test  
        --> 字母用法:# chmod g+w,g-r,o+x test
        --> 字母用法:# chmod o-x test

        赋予权限用户加号表示:+
        撤销去哪先用减号表示:-
        -->数字用法:# chmod 764  file5
                选项:-R, 递归修改
                用法:# chmod 777 -R test/

    4.修改文件的所有者或所属用户 chown
    用法: # chown shanghai  /home/user01/1.txt
    注意:使用root用户操作

    5.修改文件或目录的所属组用户 chgrp
    用法: # chgrp shanghai  /home/user01/1.txt
    注意:使用root用户操作

    6.一条命令同时修改所属用户和所属组 changing ownership 【必须使用root用户】
    # chown beijing:beijing  /home/user01/1.txt
    : 英文输入状态下的
    前后不能有空格
    选项:chown -R  beijing:beijing  /home/user01/Desktop

四、管道符|、追加/覆盖符号  命令未结束符号\
    1、用竖线表示  | :
        表示将前一个命令的输出结果传递给后面的命令处理,两边都是命令
        $ cat /etc/passwd | more

        1)、grep:过滤筛选
        $ cat /etc/passwd  |  grep 'root'

        2)、过滤条件
    $ ifconfig | grep 'inet'
    $ ls /dev |  grep 'cdrom'

    2、追加用两个大于符号表示:>>
        表示将前一个命令的输出结果追加写入到某个文件中
        $   ifconfig   |  grep  inet  >>    ~/test/file6
        如果被写入的文件不存在,则自动创建

    3、覆盖用一个大于符号表示:>
        表示将前一个命令的输出结果覆盖写入到某个文件中
        $ head  -3  /etc/passwd > /home/user01/test/demo

    4、 \ 表示命令未结束换行继续
    注意: \后面不能任何字符,直接回车
        $ cat /etc/sysconfig/\
> network-scripts/ifcfg-eth0
    
    补充命令
    5、wc(word count)统计命令:统计单词、字符、行数,支持管道符号      
       $ wc file.log
 1  4 19 file.log   行数  单词数  字节数

  $  wc -l  /etc/passwd   统计行数

       $  head -3 /etc/passwd  |  wc  -l
        
        统计某个文件或目录的大小或者是占用的存储空间大小
      du -sh  /test

    6、df  -l 显示当前各个硬盘分区的使用情况

    7、du -sh 统计文件或目录的大小

五、搜索命令:find
    1、搜索命令会消耗大量的资源
    2、语法格式:
        find  【搜索范围】  【匹配条件】
    3、根据文件名搜索
        选项: -name
        全盘精确查找:$  find   /  -name    init
        模糊查询包含关键字的: $ find /etc/ -name *init*
        查找关键字开头的文件:$  find  /etc/ -name init*
        # find /etc/ -name init???
        *号:通配符,匹配任意的字符
        ?号:匹配单个字符
        Linux中大小写是严格区分的
        选项:-iname,表示不区分大小写
        # find /etc/ -iname init???
    4.根据文件大小搜索
        选项:-size
            指定方式:+大于,  -小于,不加符号表示等于
        $  # find /etc/ -size  +2M
    5.根据所有者和所属组查找
        $  find   /root  -user root
        $  find   /root  -group root
    6.根据文件类型进查找
        $  find  /etc/ -name init* -type f
        $  find  /etc/ -name init* -type d
        f表示文件     d代表目录

六、sudo 权限
    1、操作对象是系统命令
    2、命令: # visudo 管理员(root)身份执行

    3.配置sudo   # visudo
    ## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
user01  ALL=(root)     NOPASSWD: ALL

    
    那三个ALL到底是什么意思。
    第一个ALL是指网络中的主机,我们后面把它改成了主机名,它指明user01用户可以在此主机上执行后面的命令。
    第二个括号里的ALL是指目标用户,也就是以谁的身份去执行命令。
    最后一个ALL当然就是指命令名了。


    4.使用:在需要root用户操作的时候,在原来命令的前方加sudo
    $ vi /etc/hosts
    "/etc/hosts" [readonly] 3L, 189C
    $ sudo vi /etc/hosts


七、压缩和解压缩
    WinRAR  .rar   .zip   .7z      
    在windows中,使用一款压缩软件就能全部搞定压缩和解压缩的问题压缩格式

    在Linux中常见的格式
        .gz
        .tar
        .tar.gz

    1、压缩格式:.gz
        1)压缩命令: gzip 准备压缩的文件
            用法:$  gzip  1.txt
            注意:不能保留源文件,只能压缩文件
        2)解压缩命令: gunzip
            用法:$ gunzip  passwd.gz

    2、压缩格式:.tar    
        1)压缩命令: tar -cvf  压缩后的文件及所在目录  被压缩的文件或目录
            用法:  $  tar -cvf  20170427.tar  passwd
        2)解压缩命令:tar -xvf 被压缩的文件或目录 -C 解压到的目录

    3、压缩格式:  .tar.gz
            分两步完成:第一步,先将源文件压缩成tar     tar -cvf
                      第二步,压缩成.tar.gz              gzip

            **一次性完成:
            $ tar -zxvf 1202.tar.gz  demo/

        ***3)解压缩
        $ tar  -zxf  1202.tar.gz  -C  Desktop/


选项:
          -z, --gzip, --gunzip, --ungzip   filter the archive through gzip
        -c, --create               create a new archive
        -x, --extract, --get       extract files from an archive
        -v, --verbose              verbosely list files processed
        -f, --file=ARCHIVE         use archive file or device ARCHIVE
        -C, --directory=DIR     change to directory DIR

八、linux  软件包管理(安装,卸载,升级,查询)
    1、针对服务器
    2、windows中所有的软件包不能直接Linux中使用
    3、软件包:
        ->源码包(脚本)--》特点:免费、开源  .src  编译安装
            -mvn(maven) mvn
            -ant make makeapp
            -sbt
        ->二进制包(rpm包,系统默认包)  相当于windows中.exe
            -> rpm (获取rpm包的方式:可以网上下载,安装镜像ISO文件)
            -> yum(依赖问题需要借助网络,会自动解析依赖)
        
        ->压缩包 (绿色版)

    一)、rpm命令
        1、CentOS主要管理包的方式
        2、rpm管理以rpm结尾的包
        3、挂载光驱
        # mount  /dev/cdrom      /media/

【扩展】
    软件包的命名方式:
        zlib-devel-1.2.3-29.el6.x86_64.rpm
    软件名(zlib) 版本类型(devel:开发版 ;client:客户端)版本号(1.2.3)  发行号(29.el6) 硬件平台(x86_64:64位;i386:32位)
    
    软件全名:sudo-1.7.2p1-5.el5.i386.rpm
    软件名(sudo),版本号(1.7.2pl),发行号(5.el5),和硬件平台(i386)。

注意:64位的应用或软件是无法在32位系统上运行,而64位系统则可以兼容32位的应用
    
        4、安装: # rpm  -ivh   tree-1.5.3-3.el6.x86_64.rpm
            用法: rpm -ivh 软件名(.rpm)
            选项:-i install 代表安装
                  -vh 显示详细的进度

        5、查看:# rpm -qa 查询当前系统中安装了哪些软件(已经安装好的rpm包)
                选项: -q(--query)代表查询   
                       -a  --all
            # rpm -qa | grep  jdk
            # rpm -qa | grep mysql



        6、卸载:# rpm  -e xcb-util-0.3.6-1.el6.i686
            选项: -e 代表卸载  --erase
            用法: rpm -e  软件名(.rpm)  --nodeps  (不验证依赖卸载)
        --nodeps
              Don’t do  a  dependency  check  before  installing  or
              upgrading a package.

         rpm -e   --nodeps   软件名(.rpm)

         $ sudo rpm -e tree-1.5.3-3.el6.x86_64
         【注意】:先查询再卸载

        7、查看某个文件属于哪个rpm包安装的
        #  rpm   -qf /etc/ntp.conf

        8、whereis  【命令】
 
        9、which 【命令】



    二)、yum命令  在线安装 .rpm 安装  查询  更新  卸载
        1、前提是必须连接外网
     ***2、用来解决rpm依赖性问题
        3、方便、快捷、自动解析依赖

        4、查询:
        # yum list    //查看yum源上拥有的软件
        # yum list installed  |  more  //查看系统中已经安装好的rpm包 等同于 rpm -qa
        $ sudo yum list  installed  | grep tree
    
        # yum  list updates  |  more  //查询可以更新的软件

        5、安装:
        # yum install httpd
        选项:install   后缀不需要加.rpm  可以直接使用命令  
        选项:-y , 表示直接自动确认
        # yum -y install httpd
        $ sudo yum install tree

        6、卸载
        # yum  -y remove httpd-devel.x86_64
        $ sudo rpm -qa | grep  tree

    常见问题:
    1.ping (检测网络质量和网络连接) 不同外网
        检查网卡设置,DNS
    2、包无法下载
        检查配置仓库是否正确包

推荐做法:使用yum安装,然后rpm做查询和卸载


综合练习:
安装jdk
    1.创建两个目录
    $ sudo mkdir /opt/software   //安装包的存放目录
    $ sudo mkdir /opt/modules    //解压安装的目录


    2.修改目录的所属用户及所属用户组
    $ sudo chown user01:user01 /opt/software/ /opt/modules/
    
    3.上传并解压jdk
    $ tar -zxf jdk-7u67-linux-x64.tar.gz -C ../modules/

    4.配置环境变量
    # vi /etc/profile

    #JAVA_HOME
export JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin

    5.使生效
    source /etc/profile

    6.检查是否成功
    java -version

//查询自带的jdk
$ rpm -qa | grep jdk
java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64

//卸载自带的jdk
$ sudo rpm -e java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64 --nodeps
$ sudo rpm -e java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64  --nodeps

//重新生效
$ source /etc/profile

再次进行验证
$ java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)


你可能感兴趣的:(linux二)