Linux

  • Linux 是一套免费使用和自由传播的作系统

不同应用领域的主流操作系统
  • 桌面操作系统

    • Windows

    • Mac OS

    • Linux

  • 服务器操作系统

    • UNIX (安全,稳定,付费)

    • LINUX (安全,稳定,免费,占有率高)

    • Windows Server(付费,占有率低)

  • 移动设备操作系统

    • Android (基于Linux,开源,主要用于智能手机,平板电脑和智能电视)

    • iOS(苹果公司开发的,不开源,用于苹果公司的产品)

  • 嵌入式操作系统

    • Linux(机顶盒,路由器,交换机)

Linux系统版本
  • 内核版

    • 由Linus Torvalds 及其团队开发,维护

    • 免费,开源

    • 负责控制硬件

  • 发行版

    • 基于Linux内核版进行扩展

    • 由各个Linux 厂商开发,维护

    • 有收费版和免费版本

  • Linux系统发行版

    • Ubntu: 以桌面应用为主

    • RedHat :应用最广泛,收费

    • CentOS :RedHat 的社区版,免费

    • opentSUSE:对个人完全免费,图像界面华丽

    • Fedora :功能完备,快速更新,免费

    • 红旗Linux:北京中科红旗软件技术有限公司开发

Linux系统安装方式
  • 物理机安装 :直接将操作系统安装到服务器硬件上

  • 虚拟机安装 :通过虚拟机软安装:通过虚拟机软件来模拟计算机硬件

  • 虚拟机:只通过软件模拟的具有完整硬件系统功能,运行在完全隔离环境中的完整计算机系统

    • VMWare

Linux 系统中的目录
  • / 是所有目录的顶点

  • 目录结构像一颗倒挂的树

Linux命令
序号命令对应英文作用
1 ls list 查看当前目录下的内容
2 pwd print work directory 查看当前所在目录
3 cd change directory 切换目录
4 touch touch 如果文件不存在,新建文件
5 mkdir make directory 创建目录
6 rm remove 删除指定文件
  • Linux命令使用技巧

    • Tab 键自动补全

    • 连续两次Tab键,给出操作提示

    • 使用上下箭头快速调出曾经使用过的命令

    • 使用clear 或者Ctrl+l 快捷键清屏

文件目录操作命令 ls
  • 语法:ls [-al] [dir]

  • -a 显示所有文件及目录,包括(.开头的隐藏文件也会列出来)

  • -l 除文件名称外,同时将文件形态(d表示目录,-表示文件),权限,拥有者,文件大小等详细信息

  • ls -l 简写方式双 ll

文件目录操作命令cd
  • ~ 表示用户的home目录 cd ~

  • . 表示目前所在的目录

  • .. 表示目前目录位置的上级目录 cd ..

  • cd /user/local 目录切换

文件目录操作命令 cat
  • 显示文件内容

  • cat [-n] fileName

  • -n : 对输出的行数从0开始编号

  • cat -n /etc/profile 查看/etc 目录下的profile文件内容

文件目录操作命令more
  • 以分页的形式显示文件内容

  • more fileName

  • 回车键 向下滚动一行

  • 空格键 向下滚动一屏

  • b 返回上一屏

  • q或者 Ctrl +C 退出more

  • 举例:more /etc/profile 以分页的形式显示/etc目录下的profile文件内容

文件目录操作命令 tail
  • 作用:查看文件末尾的内容

  • tail [-f] fileName

  • -f :动态读取文件末尾内容并显示,通常用于日志文件的内容输出

  • 举例: tail /etc/profile 显示末尾10行数据

  • tail -20 /etc/profile 显示末尾20行数据

  • tail -f /itcast/my.log 动态读取my.log文件末尾内容并显示

文件目录操作命令 mkdir
  • mkdir [-p] dirName

  • -p : 确保目录名称存在,不存在的就创建一个,通过此选项可以实现多层目录同时创建

文件目录操作命令 rmdir
  • 作用:删除空目录

  • rmdir [ -p ] dirName

  • -p : 当子目录被删除后使父目录为空目录的话,则一并删除

  • 例:

    • rmdir itcast 删除名为itcast的空目录

    • rmdir -p itcast/test 删除 test目录,如果使itcast为空的话,itcast也一并删除

    • rmdir itcast* 删除名称以itcast开始的空目录

文件目录操作命令 rm
  • 作用:删除文件或者目录

  • 语法: rm [-rf] name

  • -r : 将目录及目录中的文件(目录)逐一删除,即递归删除

  • -f :无需确认,直接删除

  • 例子:

    • rm -r itcast/ 删除名为itcast的目录和目录中的所有文件,删除前需要确认

    • rm -rf itcast / 无需确认

    • rm -f hello.txt 无需确认,直接删除文件

拷贝移动命令 cp
  • 作用:用于复制文件或者目录

  • 语法: cp [ -r] source dest

  • -r : 如果复制的是目录需要使用此选项,此时将复制该目录下所有的子目录和文件

  • cp hello.txt itcast/

  • cp hello.txt ./hi.txt 将文件复制到当前目录,并改名为hi.txt

  • cp -r itcast/ ./itheima/ 将itcast 目录和目录下的所有文件复制到ithima目录下

  • cp -r itcast/* ./itheima/ 将itcast目录下所有文件复制到itheima目录下(itcast目录不会被复制)

拷贝移动命令 mv
  • 作用:为文件或者目录改名。或者将文件或者目录移动到其它位置

  • 语法: mv source dest

  • mv hello.txt hi.txt 将hello.txt 改名hi.txt

  • mv hello.txt itheima/ 将hello.txt 移动到itheima/目录下

  • mv hi.txt itheima /hello.txt 将hi.txt 移动到itheima 下并改名hello.tx

  • mv itcast/ itheima/ 如果 itheima/ 目录不存在,将itcast改名为itheima

  • mv itcast/ itheima/ 如果 itheima存在,则将 itcast目录移动到itheima中

打包压缩命令 tar
  • 作用:对文件进行打包,解包,压缩,解压

  • 语法: tar [-zcxvf] fileName [files]

  • 包文件后缀为.tar 表示只是完成了打包,并没有压缩

  • 包文件后缀为.tar.gz 表示打包同时还进行了压缩

  • -z : z 代表的是gzip ,通过gzip命令处理文件,gzip可以对文件压缩或者解压

  • -c :c代表create ,即创建新的包文件 (打包)

  • -x :x 代表的是extract ,实现从包文件中还原文件 (解包)

  • -v : v代表的是verbose ,显示命令的执行过程

  • -f :f代表的是file ,用于指定包文件的名称。

  • 例子

    • tar -cvf itcast.tar itcast 打包 /

    • tar -cvf itcast.tar ./* 打包到当前目录,文件名itcast.tar

    • tar -zcvf itheima.tar.gz itheima 打包并压缩 itheima.tar.gz 打包压缩后的名字 itheima是要操作的文件名

    • tar -zcvf itheima.tar.gz ./* 到当前文件,名字itheima.tar.gz

    • tar -xvf itcast.tar 解包 到当前目录

    • tar -zxvf itheima.tar.gz 解包解压 到当前目录

    • tar -zxvf itheima.tar.gz -C /user/local 指定文件放在/user/local 下

文本编辑命令 vi/vim
  • 作用:vi命令是Linux系统提供的一个文本编辑工具,可以对文件内容进行编辑,类似记事本

  • 语法:vi fileName

  • vim是从vi发展来的一个功能更加强大的文本编辑工具,在编辑文件时可以对文本内容进行着色,方便我们对文件进行编辑处理,所以实际工作中vim更加常用

  • 要使用vim命令,需要我们自己完成安装。

  • 安装命令:yum install vim

  • Shift +g 到文件最底层

  • 说明:

    1. 在使用vim命令编辑文件时,如果指定文件存在则直接打开,不存在则新建文件

    2. vim在进行文本编辑时共分为三种模式。这三种模式之间可以互相切换,我们使用的时候一定要注意当前所在的模式

      • 命令模式

        • 命令模式下可以查看文件内容,移动光标(上下左右箭头,gg,G)

        • 通过vim命令打开文件后,默认进入命令模式

        • 另外两种模式需要首先进入命令模式,才能进入彼此

      • 插入模式

        • 插入模式下可以对文件内容进行编辑

        • 在命令模式下按下[i,a,o]任意一个,可以进入插入模式。进入插入模式后,下方会显示insert字样

        • 再插入模式下按下ESC,回到命令模式

      • 底层模式

        • 可以通过命令对文件进行查找,显示行号,退出等操作

        • 在命令模式下按下[:,/] 任意一个,可以进入底层模式

        • 通过/方式进入底层模式后,可以对文件内容进行查找

        • 通过 :方式进入底层模式后,可以输入wq(保存退出),q!不保存退出,set nu(显示行号)。

查找命令 find
  • 作用:在指定目录下查找文件

  • 语法:find dirName -option fileName

  • 例子:

    • find . -name ".java" 在当前目录及其子目录下按照 文件名 查找.java结尾文件

    • find /itcast -name “ .java” 在itcast目录及其子目录下查找.java结尾文件

查找命令 grep
  • 作用:从指定文件种查找指定的文本内容

  • 语法:grep word fileName

  • 例子:

    • grep Hello HelloWorld.java 查找HelloWorld.java 文件中出现的Hello字符串的位置

    • grep hello *.java 查找.java 文件中出现的Hello字符串的位置

查看进程 ps
  • ps -ef 查看所有进程的详细信息

  • ps -ef|grep tomcat

  • “|” 管道符 ,可以将前一个命令的结果输出给后一个命令作为输入

  • 使用ps命令查看进程,管道符和grep 结合使用,查看特定进程

防火墙操作
  • firewall-cmd --zone=public --add-port=8080/tcp --permanent 开放指定端口

  • firewall-cmd --zone=public --remove-port=8080/tcp --permanent 关闭指定端口

  • firewall-cmd --state 查看防火墙状态 或者 systemctl status firewalld

  • systemctl start firewalld 开启防火墙

  • systemctl disable firewalld 永久关闭防火墙

  • firewall-cmd --reload 立即生效

  • firewall-cmd --zone=public --list-ports 查看端口

安装tomcat
  • 停止tomcat服务

  • 运行 sh shutdown.sh ./shutdown.sh

  • 结束taomcat进程

  • 查看tomcat进程 id 执行kill -9 id

  • -9 表示强制结束

     

安装mysql
  • 检测当前系统是否安装了Mysql

  • rmp 是红帽Linux用于管理和安装软件的工具

  • rpm -qa 查询系统中安装的所有软件

  • rpm -qa | grep mysql

  • rpm -qa | grep mariadb

  • Centos7 自带mariadb 会和mysql冲突

  • 卸载:rpm -e --nodeps 软件名称

  • 安装rpm :rpm -ivh 软件名称

  • yum update :更新现有的软件和系统内核

启动mysql 默认名 mysqld
  • systemctl status mysqld

  • systemctl start mysqld 启动mysql服务

  • systemctl enable mysqld 开机启动mysql服务

  • netstat -tunlp 查看已经启动的服务

  • netstat -tunlp | grep mysql

  • ps -ef | grep mysql

登录mysql
  • cat /var/log/mysqld.log 查看文件内容

  • cat /var/log/mysqld.log | grep password 查看文件内容中包含password的行信息

  • set global validate_password_length=4;

  • set global validate_password_policy=LOW;

  • set password = password('root'); 设置密码

  • grant all on. to 'root'@'%' identified by 'root'; 访问权限

  • flush privileges; 刷新,立即生效

安装 lrzsz
  • 作用:上传和下载

  • yum list lrzsz

  • yum install 文件名

  • 命令 :rz

手工部署项目

项目部署 nohup
  • 语法格式:nohup Command [Arg...] [&]

  • Arg :一些参数 ,可以指定输出文件

  • & :让命令在后台执行

     

后台运行:nohup java -jar boot工程.jar &>hello.log &
关闭项目:
  • 使用杀进程的方式

  • 查找进程id : ps -ef | grep java

  • 杀死进程 : kill -9 id

使用shell脚本自动部署项目

  • 操作步骤:

    1. 在Linux中安装Git

    2. 在Linux中安装maven

    3. 编写Shell脚本(拉取代码,编译,打包,启动)

    4. 为用户授予执行Shell脚本的权限

    5. 执行Shell脚本