Linux

操作系统:按照在计算机硬件,能够管理计算机硬件和软件的

优点:注重安全性(用户权限)、稳定(软件允许稳定)、高并发处理好(同时来很多请求操作Linux)、开源
缺点:没有好的可视化界面,用起来不方便

Linux中,一切皆文件
目录结构:                                          /表示根目录
Linux_第1张图片

  1. root : 该目录为系统管理员目录,root是具有超级权限的用户。
  2. bin ->usr/bin : 存放系统预装的可执行程序,这里存放的可执行文件可以在系统的任何目录下执行。
  3. usr是linux的系统资源目录,里边存放的都是一些系统可执行文件或者系统以来的一些文件库。
  4. usr/local/bin:存放用户自己的可执行文件,同样这里存放的可执行文件可以在系统的任何目录下执行。
  5. lib->usr/lib: 这个目录存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库。
  6. boot : 这个目录存放启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
  7. dev: dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,Linux中的设备也是以文件的形式存在。
  8. etc: 这个目录存放所有的系统管理所需要的配置文件。
  9. home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名以用户的账号命名,叫作用户的根目录;用户登录以后,默认打开自己的根目录。
  10. var : 这个目录存放着在不断扩充着的东西,我们习惯将那些经常被修改的文件存放在该目录下,比如运行的各种日志文件。
  11. mnt : 系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容
  12. opt: 这是给linux额外安装软件所存放的目录。比如你安装一个Oracle数据库则就可以放到这个目录下,默认为空。
  13. tmp: 这个目录是用来存放一些临时文件的。

远程连接Linux:
Linux_第2张图片Linux_第3张图片Linux_第4张图片
Linux_第5张图片

与远程Linux进行文件传输:
Linux_第6张图片Linux_第7张图片Linux_第8张图片Linux_第9张图片
Linux_第10张图片

 Linux中的编辑器:vi、vim
 

Linux_第11张图片

 vim 文件.格式:直接创建文件,进入
一般模式::可以使用:『上下左右』按键来移动光标
                                     『删除字符』或『删除整行』快捷键来处理档案内容
                                     『复制、贴上』快捷键来处理你的文件数据
编辑模式按下i, I, o, O, a, A, r, R等任何一个字母之后才会进入编辑模式, 一般来说按i即可        //只能编辑,不能保存
命令行模式:可以提供你相关指令,完成读取、存盘、替换、离开vim 、显示行号等的动作则是在此模式中达成的 
           

常用快捷键:
一般模式:拷贝当前行(yy) , 拷贝当前行向下的5行(5yy),并粘贴(p)
                  删除当前行(dd) , 删除当前行向下的5行(5dd)
                  到达文档的最首行[gg]和最末行[G]
                  撤销上次编辑的内容(u)
                  光标移动到第10行:输入10,shift+g,回车

命令模式下:在文件中查找某个单词--->      /单词+回车   、 输入(n) 就是查找下一个
                     设置文件的行号(: set nu),取消文件的行号  (:set nonu)

其它快捷键:
                        Linux_第12张图片

用户管理                             //Linux对安全性要求高,不同的用户根据不同权限可以见到的文件夹是不同的

使用Linux必须使用账号,使用系统管理员账号创建账号
root是安装系统时默认创建的系统管理员账号

添加用户:
        创建账号:useradd [选项] 用户名
                          useradd 用户名              //创建一个该名的账号,创建一个该名的组,把该用户分配到改组里,在/home下创建该名的目录,使用该用户的个人信息以后都存在该目录
                          useradd -d /目录/自定义用户的主目录   用户名                //        创建一个用户,在系统根目录下自定义目录作为用户根目录    //不知道-d则home下同名目录
                          useradd -g 组名 用户名                //添加用户时,分配组
        给用户设置秘密:passwd 用户名


删除用户:userdel[选项] 用户名
                  userdel 用户名              //删除该用户,保留该护目的根目录
                  userdel -r 用户名          //删除该用户,删除该护目的根目录
 

查询用户信息:id 用户名                

切换用户:su 用户名                        从高权限用户切换到低权限用户时,不需要输密码;否则,需要输密码。          //exit命令可以回到原来的用户

组和用户管理

Linux中的组类似于角色的概念,把同一共性的用户放到一个组里,方便对用户统一管理        //组是为权限做准备的
每一个用户都至少属于一个组,创建用户时如果不指定组,会默认创建一个跟用户名相同的组,并且把新创建的用户分配到组中
root用户默认属于root组。


添加组:groupadd 组名
删除组:groupdel 组名
组和用户管理:把用户添加到组:useradd –g 组名 用户名
把用户从组删除:gpasswd -d 用户名 组名
 

组和文件管理 

每个文件、目录都属于一个组(只能属于1个),文件、目录通过组来控制哪些用户可以对它进行哪些操作-------即文件、目录的访问权限     
               
在文件或者目录看来,linux系统中所有的用户分为三类:
                 所有者:默认情况下,文件或者目录的所有者都是创建者,可以修改
                 同组用户:跟文件或者目录属于同一个组的用户
                 其它组用户:既不是文件或者目录的所有者,也不是同组用户                 

修改文件或者目录的所有者:chown 新的所有者 文件或者目录     
                                               chown 新的所有者:新的组 文件或者目录                     //同时修改新的组
                                               chown -R 新的所有者:新的组 文件或者目录              //-R递归更改所有者和组
修改文件或者目录的所在组:chgrp 新的组 文件名或者目录名
                                               chgrp -R 新的组 文件名或者目录名                        //-R递归更改组

Linux中文件、目录的权限管理

文件或者目录的三种权限:读(Read)、写(Write)、执行(Execute)
                对于文件而言:
                           读:可以读取、查看文件的内容, 比如:cat、more、less、head、tail等。
                           写:可以修改文件的内容,比如:vi或者vim等
                           执行:如果该文件是可执行文件(.sh),可以直接运行,比如:./xxx.sh。
                对于目录而言:
                           读:可以读取、查看目录下边的内容,比如:ls等
                           写:可以修改目录中的内容,创建子目录、删除子目录、创建文件、删除文件、重命名文件或者目录
                           执行:可以进入该目录, 比如:cd等。

在linux中,任何一个文件或者目录都有三部分权限:所有者权限、同组用户权限、其它组用户权限。
           第一部分权限:所有者权限,文件或者目录的所有者对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。                                                                          
           第二部分权限:同组用户权限,文件或者目录的同组用户对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。
           第三部分权限:其它组用户权限,文件或者目录的其它组用户对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。
           //比如:rwx:拥有读写执行的权限,r-x:拥有读和执行的权限,r--:只拥有读的权限,---:没有任何权限。

查看文件或者目录的权限:ls -aul
Linux_第13张图片1d目录-文件|234所有者|567同组用户|8910其他组

修改文件或者目录的权限:chmod
                用r、w、x分辨表示读、写、执行的权限,
                用u、g、o、a分别表示给所有者、同组用户、其它组用户、所有用户修改权限
                用+、-、=分别表示给指定的用户增加、减少、设置对应的权限
        chmod g-w,o+w t5.txt               //,逗号分隔
        chmod g=rwx t5.txt
        chmod a-r t5.txt
                使用数字的方式修改文件或者目录的权限:r 4、w 2、x 1       //例如: chmod 777 t5.txt

控制Linux系统

shutdown now: 立刻进行关机
shudown -h 1:  1小时后会关机了
shutdown –r now: 现在重新启动计算机      

Linux帮助命令:                                        //如果有不会的命令,首先上网查,没网时再使用帮助命令
获得系统手册上的帮助信息:man 命令名                                                                                         //按回车翻一行,按空格翻一页,按q退出
获得命令开发时的注释帮助信息(内置帮助信息):help 命令名   

文件和目录命令                                        目录:
                                                                        绝对目录:        1)/根目录开始
                                                                                                  2)~:在Linux中是个绝对路径,代表当前用户的根目录//注意root用户的根目录不在home,是/root
                                                                        相对目录:        1)直接下一级目录
                                                                                                  2)..:是个相对目录,表示当前目录的上一级目录
                                                                                                  3).:是个相对目录,表示当前目录
                   

当前目录路径:pwd                                                                        
查看指定目录下子目录和文件:ls [选项] [指定目录]
                                                        选项:-a :显示当前目录所有的文件和目录,包括隐藏的。           -l :以列表的方式显示信息              //组合:-al
切换目录:cd 目录
创建目录:mkdir 目录                    只能创建一级目录
                  mkdir -p 目录                创建多级目录,即创建xx/xxx/xx/xx
删除空目录:rmdir 目录
创建文件:vi或vim 文件名                 
                  touch 文件名列表              创建多个文件      //列表用空格隔开           
复制文件/目录:cp 源 目标目录                   
                          cp -r 源 目标目录          //   -r:复制目录时,将子目录文件递归复制复制过去
删除文件/目录:rm 文件             提示删除
                          rm -f 文件          强制删除                     //-f强制
                          rm -r 目录         递归删除目录                 //还可以递归强制删除 -rf
移动文件/目录:mv 源 目标目录                     
                          mv 文件 文件    相当于文件重命名
查看文件内容:cat 文件
                         cat -n t4.txt  显示行号
分页查看文件文件内容:more 文件名          //一次性加载文件所有内容到内存,分页显示                 //按回车翻一行、按空格翻一页
分页查看文件文件内容:less 文件名           //分页加载文件所有内容到内存,分页显示                     //按回车翻一行、按空格翻一页,按q退出查看
查看文件的头10行:head [选项] 文件名
                                  head -n 5 t4.txt               //查看头5行
查看文件的后10行:tail [选项] 文件名
                                 tail -n 5 t4.txt                   //查看后5行
输出系统变量或常量的值到命令行终端:echo 常量值
                                                                 echo $变量
把前一个查看命令的结果输出到指定文件中:查看命令 > 文件                   //会覆盖文件原本内容
                                                                        cat 文件 > 文件                相当于文件内容复制
linux中关于日期和时间的操作命令:
    1)、查看或者设置系统的日期或者时间:date
              date 查看系统当前的完整的日期和时间
              date +%Y  系统当前的年份
              date +%m  系统当前的月份
              date +%d  系统当前的日期

              date '+%Y-%m-%d %H:%M:%S'      按yyyy-MM-dd HH:mm:ss格式显示

              date -S '2020-10-20 10:20:30'          设置当前的系统时间
    2)、查看系统日历:cal
              cal:查看当前月份的日历
              cal 2020:查看指定年份的日历

搜索文件或者目录:find 关键字                        //默认搜索当前目录目录下的
                                find *.txt          搜索当前目录下,所有的.txt文件
                                find *e*           搜索当前目录下,所有名称中包含e的那些文件或者目录
                                find [搜索范围][搜索标准] 关键字
                                                                搜索标准:按什么搜,默认-name按名称搜索、-size按文件大小搜索、-user按文件所有者搜索
                                        find 指定目录 关键字                //搜索指定目录
                                        find /etc -size -5k                 搜索/etc目录下所有小于5k的文件             //    -小于    +大于
                                        find /etc -user zhangsan  搜索/etc目录下所有的所有者是zhangsan的文件和目录
搜索文件或目录:locate 关键字                  //按Linux维护的目录树搜索,所以只能搜名字,搜的是系统内的   
                         //搜索不能及时反应出来,因为创建目录文件时目录树不能及时更新,需先手动更新目录树       updatedb

前一个搜索/查看命令的结果按名称进一步过滤:搜索命令 |grep [选项] 过滤条件
                                                                             查看命令 |grep [选项] 过滤条件
                                        find *.txt|grep new  搜索当前目录下,所有名称包含new的.txt文件
                                        find /etc -size -5k|grep firefox
                                        cat t1.txt|grep beijing
                                        cat t1.txt|grep -ni beijing                  //-n显示行号         -i忽略大小写
                                        ls -al|grep new
压缩解压命令:
                单个文件----------------------压缩:gzip 文件                        //生成一个.gz的压缩包,并且会把原来的文件删除
                              ----------------------解压:gunzip 文件                    //把.gz的压缩包解压,并且会把原来的文件删除
                多个文件/目录------压缩、打包:zip 目标压缩包 文件或者目录列表       // zip test.zip ret.txt t1.txt test2               //目标压缩包名称通常使用.zip压缩包               
                                      ---------------解压: unzip 压缩包 -d 解压目录          //-d指定解压到的目录

                多个文件/目录:                               选项: -c打包、压缩         -x解压         -f:指定压缩后的文件名        -z:打包同时压缩        -v:显示详细信息         -C解压到的目录
                                        -----压缩、打包:tar [选项] 目标压缩包名称(xxx.tar.gz) 文件或者目录列表             tar -zcvf mytar.tar.gz mytest.zip ret.txt t1.txt test2
                                      ----------------解压:tar [选项] 压缩包(xxx.tar.gz) -C 解压目录名                                 tar -zxvf mytar.tar.gz -C /opt/testDir/test5

网络管理

在linux的配置文件: vi /etc/sysconfig/network-scripts/ifcfg-ens33            //ifcfg-ens33为当初设置为网络                 //权限root
Linux_第14张图片

BOOTPROTO="static"
ONBOOT="yes"

IPADDR=192.168.11.128       //IP地址
GATEWAY=192.168.11.2        //网关
DNS1=192.168.11.2            //DNS

 



进程管理

                线程:一个程序的线路
                进程:一个程序的执行,一个进程占用一个端口。
查看正在运行的进程:ps              //只会显示应用进程                                                                 
                                    ps -e          //显示所有进程
                                    ps -ef         //以全格式的形式显示所有进程                                                    //用于查看linux系统中某一些软件或者应用是否处于启动状态
                                    ps -ef|grep 关键字             //配合过滤使用

关闭进程:kill -9 PID号                   //使用ps命令查看进程的PID号


服务管理

服务本质就是进程,是Linux系统运行所必要的程序,也叫守护进程        //守护进程通常默默地运行在后台,为应用程序提供必要支撑,比如sshd、防火墙等。
操作服务:systemctl [start|stop|restart|reload|status|enable] 服务名称
                                   启动|停止|重启|重新加载|查看|设置

linux中软件包的管理:管理软件安装包
 

        RPM包管理:RPM是一种LInux的软件包的打包和安装工具,它操作的软件包都是.rpm结尾。
                                查看当前系统中已经安装的rpm软件包:rpm -qa|grep 关键字    、  rpm -qa
                                卸载rpm软件包:rpm -e 软件包        //软件包可以写一部分名,系统会进行匹配
                                安装rpm包:rpm -ivh xxx.rpm       //在当前目录安装,所以需要把软件包拷贝到opt目录再安装

        YUM包管理:是一种基于RPM的软件包管理工具,它能够从指定服务器上自动下载RPM包并且自动安装,可以自动处理软件包之间的依赖关系。
                                查看当前系统中已经安装的rpm软件包:yum list installed|grep 关键字       、    yum list installed
                                卸载rpm软件包:yum remove 软件包            
                                安装rpm包:yum install 软件包关键字                 //注意要在opt目录下安装,不需要电脑上有软件包,会自动在互联网服务器下载软件包安装

搭建JavaEE运行环境

  1. 安装JDK
    1. 把Linux版本jdk安装包的压缩包上传到Linux服务器,解压到opt目录      //因为jdk不是rpm安装包,他是免安装的
    2. 配置环境变量   vim /etc/profile
      Linux_第15张图片

      JAVA_HOME=/opt/jdk1.7.0_79
      PATH=$JAVA_HOME/bin:$PATH
      CLASSPATH=$JAVA_HOME/lib:.
      export JAVA_HOME PATH CLASSPATH


      执行命令:source /etc/profile           //重新加载一遍配置文件,让更改的配置文件生效

  2. 安装Tomcat

    1. 把Linux版本Tomcat安装包的压缩包上传到Linux服务器,解压到opt目录             //同上,也是免安装的

    2. 启动startup.sh 文件,开启Tomcat。可以看进程看看有没有启动                       //    ./startup.sh 

    3. 从其它机器上访问需要关闭linux的防火墙。                //systemctl stop firewall

    4. 访问:          Linux主机名:端口

  3. 安装MySQL

    1. 查看是否已经安装了mariadb:   yum list installed | grep mariadb     
      检查linux是否安装了mariadb数据库,mariadb数据库是mysql的分支。是免费开源的。mariadb和msyql会有冲突。首先要检查
      若安装了mariadb, 卸载掉:        yum –y remove xxxx

    2. 把Linux版本MySQL安装包的压缩包上传到Linux服务器,解压到opt目录           //免安装

    3. 在MySQL根目录下创建data文件夹,用来存储数据库文件
       

    4. 创建用来执行mysqld命令的Linux用户
      (创建mysql用户,用来执行MySQL的命令mysqld ,此命令用来初始化msyql基础信息。可以使用其他用户,例如叫做 mydb.等,但不推荐。)

    5. 初始化mysql
      使用mysql的 mysqld 命令初始化数据库的基本信息。切换到mysql-8.0.28/bin目录下执行。
      命令:./mysqld --initialize --user=mysql --datadir=/opt/mysql-8.0.28/data --basedir=/opt/mysql-8.0.28
              参数说明:--initialize 初始化mysql,创建mysql的root, 随机生成密码。记住密码,登录msyql使用。
                                --user执行msyqld 命令的linux用户名

                                --datadir : mysql数据文件的存放位置,目录位置参照本机的设置。
                                --basedir : msyql安装程序的目录,目录位置参照本机的设置。
             该命令执行后,会生成一个临时的mysql数据库root用户的密码,请先拷贝出来记住,后续第一次登录mysql需要使用          )j=!HaLh25R/

    6. 启用安全功能在服务器与客户机之间来回传输的所有数据进行加密。
      通过证书提供了身份验证机制,mysql命令程序mysql_ssl_rsa_setup提供了开启数据加密功能,生成数字证书。

      命令:./mysql_ssl_rsa_setup --datadir=/opt/mysql-8.0.28/data                       //切换到mysql-8.0.28/bin目录下执行。
      data目录下出现的文件就是安全证书

    7. 修改mysql安装目录权限:mysql安装后,需要更改mysql-8.0.28整个文件夹目录权限,更改所属的用户和组为之前创建的mysql用户及其所在组。
      在mysql安装目录的上级(/opt)位置,执行命令chown .
      chown -R mysql:mysql /opt/mysql-8.0.28/
      给所有用户授权:
      chmod 777 /opt/mysql-8.0.28/
    8. 启动MySQL服务:bin目录下的命令    ./mysqld_safe &         (其中&符号表示后台启动),启动后回车就可以
    9. 客户端登录mysql:bin目录下的命令    ./mysql -uroot -p                输入第5步给的密码    

    10. 修改root密码:第5步root用户密码是临时密码,要修改才能使用。
      命令:alter user '用户名'@'主机域名或ip' identified by '新密码';

    11. 授权远程访问:在没有授权之前只能在本机访问msyql,远程授权就是让其他计算机通过网络访问mysql(这样远程客户端才能访问)。
      语法:grant all privileges on *.* to root@'%' identified by 'yf123';
             参数:   其中*.* 的第一个*表示所有数据库名,第二个*表示所有的数据库表
                           root@'%' 中的root表示用户名,%表示ip地址,%也可以指定具体的ip地址,
      比如root@localhost,[email protected].235.130等。

      由于 MySQL8.0 以上将创建账户和赋予权限分开了,需要用不同的语句创建账号,赋予远程权限需要2步:先进入data下的mysql数据库

      1. 在user表中创建账号    create user '账号名'@'%' identified by '密码';         
        //若是创建root,表中已有,更新其服务地址即可   update user set host = '%' where user = 'root';

      2. 给创建好的账号赋予远程权限    grant all privileges on *.* to '用户名'@'%';

      3. 刷新数据库  flush privileges;         

      4. 远程连接数据库

    12. 关闭MySQL服务:bin目录下的命令    ./mysqladmin -uroot -p shutdown输入密码关闭     

 


ifconfig:查看主机IP信息               
               
 



 

你可能感兴趣的:(服务器,工具使用,工具,linux,mysql)