Linux

来源:互联网 发布:psv重勾数据库 编辑:程序博客网 时间:2024/05/18 00:45
一、回顾
    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个地方证明已经创建了用户  cat /etc/sysconfig/network
    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 - [要切换的目标用户]
        切换一定 要加  -
        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.tx
    注意:使用root用户操作
    6.一条命令同时修改所属用户和所属组changing ownership 【必须使用root用户】
# chown beijing:beijing  /home/user01/1.txt
    : 英文输入状态下的
    前后不能有空格
    选项:chown -R  beijing:beijing  /home/user01/Desktop
四、管道符 |    追加 >>     覆盖符号 >   命令未结束符号 \
    1、用竖线表示  | :
        表示将前一个命令的输出结果传递给后面的命令处理,两边都是命令
        $ cat /etc/passwd | more
        $ ps -ef | grep 'init'
        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 tre
  # 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 wanglu:wanglu /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)