admin 管理员组

文章数量: 887021

Linux 操作系统

不同领域的主流操作系统

桌面操作系统:
	windows(用户数量最多)、
	Mac OS(操作体验好,办公人士首选)、
	Linux(用户数量少)

服务器操作系统:
	UNIX(安全、稳定、收费)、
	Linux(安全、稳定、免费、占用率高)、
	Windows Server(付费、占用率低)

移动设备操作系统:
	Android(基于Linux、开源,主要用于智能手机、平板电脑和智能电视)
	IOS(苹果公司开发,不开源,用于苹果公司的产品,例如:iPhone、iPad)
	
嵌入式操作系统:
	Linux(机顶盒、路由器、交换机)
	
1. 环境搭建
Linux 安装:

安装方式:

	1.物理机安装方式(直接将操作系统安装到服务器硬件上)
	2. 虚拟机安装(通过虚拟机软件安装)
	
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能、运行在完全隔离环境中的完整计算机系统。

常用的虚拟机软件:

	VMWare
	VirtualBox
	VMLite WorkStation
	Qemu
	HopeddotVOS
	
网卡设置
ip addr 查看服务器地址
安装 SSH 连接工具
2. 常用命令

1. ls 查看当前目录下的内容
   ll 或者 ls -al / ls -a -l;用法相同,查看当前目录或者文件信息

2. pwd 查看当前所在目录

3. cd 切换目录

4. touch 如果文件不存在,新建文件
	touch hello.txt 创建文件 hello.txt

5.  mkdir -p dirname 
       -p :确保目录名称存在,不存在就创建一个,通过此选项,可以实现多层目录同时创建.
    	mkdir -p a/test 在工作目录下的a  目录中建立一个test 的子目录,如果a 目录不存在,就新创建一个

6. rm 删除指定文件(rm -rf 文件/目录)

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

7. cat -n filename 

8. more filename 作用:以分页的形式显示文件内容

9. tail -f filename 动态读取文件末尾内容并展示,通常用于日志文件的内容输出

拷贝移动命令:

       cp -r source dest
       -r : 如果复制的是目录需要使用此选项,此时将复制该目录下所有的子目录和文件
           
       eg:
		cp hello.txt a/ 将hello.txt 复制到a目录中
         cp hello.txt ./hi.txt 将hello.txt 复制到当前目录,并改名为hi.txt
		cp -r a/ ./b/  将a目录和目录下的所有文件复制到b目录下
         cp -r a/* ./b/ 将a目录下所有文件复制到b目录下
         
         移动命令:mv
         mv source desk
         eg:
         
         mv hello.txt hi.txt   将hello.txt 改名hi.txt
         mv hi.txt a/          将文件hi.txt 移动到a 目录中
         
         mv hi.txt a/hello.txt 将 hi.txt 移动到 a 目录中,并改名 hello.txt 
         
         mv a/ b/ 如果 b 目录不存在,将a 目录改名为b目录
         mv a/ b/ 如果 b 目录存在,将 a 目录移动到 b 目录中
        
            
打包压缩命令:

	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,用于指定包文件的名称。

-cvf 打包
-zcvf 打包并压缩

-xvf 解包
-zxcvf 解压

tar -zxvf hello.tar.gz -C /usr/local 将hello,tar.gz 文件进行解压,并将解压后的文件放在/usr/local 

文本编辑命令vi/vim:

vi 文件名
vim 文件名
首先安装:
yum install vim
安装vim 

vim 在进行文本编辑的时候共分为三种模式,

命令模式:可以查看文件内容,移动光标(上下左右箭头、gg(文件开头)、G(文件末尾))
通过vim 命令打开文件后,默认进入命令模式
另外两种模式需要首先进入命令模式,才能进入彼此

插入模式:
插入模式可以对文件内容进行编辑
在命令模式下按下[i,a,o]任意一个,可以进入插入模式,进入插入模式后,下方会出现[insert]字样
在插入模式下按下[ESC]键,回到命令模式

底行模式
底行模式下可以通过命令对文件内容进行查找、显示行号、退出等操作
在命令模式下按下[:,/]任意一个,可以进入底行模式
通过 / 方式进入底行模式后,可以对文件内容进行查找
通过 : 方式进入底行模式后,可以输入 wq(保存并退出)、q!(不保存退出)、set nu (显示行号)

查找命令:

find :在指定目录下查找文件
find dirName -option fileName

eg:
find -name "*.java" 在当前目录及其子目录下查找.java 结尾的文件
find /a -name "*.java" 在/a目录及其子目录下查找.java 结尾的文件

grep :从指定文件中查找指定的文本内容

grep word fileName

eg:
grep Hello HelloWorld.java 查找HelloWorld.java 文件中出现的 Hello 字符串的位置
grep hello *.java 查找当前目录中所有.java 结尾的文件中包含hello 字符串的位置

3. 安装软件


1. 软件安装的方式
	
	二进制发布包安装:软件已经针对具体平台编译打包发布,只要解压,修改配置即可
	rpm 安装:软件已经按照 redhat 的包管理规范进行打包,使用 rpm 命令进行安装,不能自行解决库依赖问题。
	yum 安装:一种在线软件安装方式,本质上还是 rpm 安装,自动下载安装包并安装,安装过程中自动解决库依赖问题
	源码编译安装:软件源码工程形式发布,需要自己编译打包

2. 安装 jdk
        二进制发布包安装:软件已经针对具体平台编译打包发布,只要解压,修改配置即可:操作如下
            tar -zxvf  压缩文件 -C  指定解压路径  (解压)
        配置文件:etc/profile中修改
        配置完毕,重新加载命令:source /etc/profile
        java -version

3. 安装tomcat
            
         二进制发布包安装:软件已经针对具体平台编译打包发布,只要解压,修改配置即可:操作如下
             上传,解压
             进入启动服务目录,启动命令
             sh startup.sh 或者 ./startup.sh

         验证Tomcat 启动是否成功,有多种方式:
		查看启动日志:
            more /usr/local/apache-tomcat-7.0.57/logs/catalina.out
            tail -50 /usr/local/apache-tomcat-7.0.57/logs/catalina.out
            
         查看进程 ps -ef|grep tomcat
            
        注意:
		   1. ps 命令是Linux 下非常强大的进程查看命令,
               通过 ps -ef 可以查看当前运行的所有进程的详细信息
               
            2. "|"Linux 中称为 管道符,可以将前一个命令的结果输出给后一个命令作为输入
               
            3. 使用 ps 命令查看进程时,经常配合管道符和查找命令 grep 一起使用,来查看特定进程
            
       防火墙操作:
               查看防火墙状态(systemctl status firewalld、firewall-cmd-state)
               暂时关闭防火墙(systemctl stop firewalld)
               永久关闭防火墙(systemctl disable firewalld)
               开启防火墙(systemctl start firewalld)
			  开放指定端口(firewall-cmd-zone=public --add-port=8080/tcp --permanent)
               关闭指定端口(firewall-cmd --zone=public --remove-port=8080/tcp --permanent)
               立即生效(firewall-cmd --reload)
               查看开放的端口(firewall-cmd --zone=public --list-ports)
               
      注意:
           1. systemctl 是管理Linux中服务的命令,可以对服务进行启动、停止、重启、查看状态等操作
               
           2. firewall-cmd 是Linux 中专门用于控制防火墙的命令
           
           3. 为了保证系统安全,服务器的防火墙不建议关闭.
               
      停止Tomcat 服务的方式:
               运行Tomcat 的bin 目录中提供的停止服务的脚本文件 shutdown,sh
               sh shutdown.sh
               ./shutdown.sh
               
     结束 Tomcat 进程
               查看Tomcat进程,获取进程id
               ps -ef | grep tomcat
               执行命令结束进程 : kill -9 7742
               
     注意:
     kill 命令 是Linux 提供的用于结束进程的命令,-9表示强制关闭
               
               
4. 安装mysql 
	
    1. 检测当前系统中是否安装 Mysql 数据库
         
         RPM(Red-Hat Package Manager)RPM软件包管理器,是红帽Linux 用于管理和安装软件的工具
         
         rpm -qa 查询当前系统中安装的所有软件
         rpm -qa | grep mysql 查询当前系统中安装的名称带有mysql 的软件
         rpm -qa | grep mariadb 查询当前系统中安装的名称带有Mariadb 软件
         
         如果当前系统已经安装MySQL数据库,安装将失败.CentOS7自带mariadb ,与mysql 数据库冲突
         
        卸载软件: 
	  		
			rpm -e --nodeps 软件名称
             rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x87_64
                
                
       启动MySQL命令
                systemctl status mysqld 查看mysql服务状态
                systemctl start mysqld 启动mysql服务
                
       说明:
                可以设置开机时启动mysql服务,避免每次开机启动mysql
                systemctl enable mysqld 开机启动mysql服务
                 netstat -tunlp 查看已经启动的服务
                 netstat -tunlp | grep mysql
                
                ps -ef | grep mysql 查看mysql进程
                
     登录mysql数据库,查阅临时密码
         cat /var/log/mysqld.log 查看文件内容
         cat /var/log/mysqld.log | grep password 查看文件内容中包含password的行信息
     
    登录MySQL,修改密码,开放访问权限
         mysql -uroot -p 登录mysql(使用临时密码登录)
    #修改密码
        set global validate_password_length=4; 设置密码长度最低位数
        set global validate_password_policy=LOW; 设置密码安全等级低,便于密码可以修改成root
        set password = password('root'); 设置密码为root
    #开启访问权限
        grant all on *.* to 'root’@'%' identified by 'root';
        flush privilenges;     
         
5. 安装lrzsz(用于文件上传与文件下载的工具)
    搜索lrzsz安装包,命令为:
    yum list lrzsz
    
    使用yum 命令在线安装,命令为 yum install lrzsz.x86_64
    安装完毕,可以使用 rz 命令进行上传
    
    注意:
     yum(全称为 Yellow dog updater,Modified) 是一个在FedoraRedHat 以及 CenOS 中的Shell 前端软件包管理器,基于RPM 包管理,能够从指定的服务器自动下载RPM 包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
    

RPM(Red-Hat Package Manager)RPM软件包管理器,是红帽Linux 用于管理和安装软件的工具,安装mysql 顺序需要注意

4. 项目部署

手工部署:

通过 shell 脚本自动部署项目

1. 安装Git 

	yum list git
	yum install git版本
	

2. 使用git克隆代码
	cd /usr/local
	git clone 远程仓库地址

3. 安装 maven ,将maven安装包上传到Linux ,在Linux 中安装maven
tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local
vim /etc/profile 修改配置文件,加入如下内容

export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

source /etc/profile
mvn -version

vim /usr/local/apache-maven-3.5.4/conf/settings.xml  修改配置如下:
<localRepository>/usr/local/repo</localRepository>



把项目名修改成自己的项目


#!/bin/sh
echo =================================
echo  自动化部署脚本启动
echo =================================

echo 停止原来运行中的工程
APP_NAME=项目名

tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Stop Process...'
    kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Kill Process!'
    kill -9 $tpid
else
    echo 'Stop Success!'
fi

echo 准备从Git仓库拉取最新代码
cd /usr/local/项目路径

echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成

echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`

cd target

echo 启动项目
nohup java -jar 项目包-1.0-SNAPSHOT.jar &> 项目.log &
echo 项目启动完成


为用户授权


chmod(英文全拼:change mode) 命令是控制用户对文件的权限的命令

Linux 的权限分为:读(r)、写(W)、执行(x)三种权限

Linux 的文件调用权限分为三级:文件所有者(Owner)、用户组(Group)、其他用户(Other Users)

只有文件的所有者和超级用户可以修改文件或者目录的权限

要执行 Shell 脚本需要有对此脚本文件的执行权限,如果没有则不能执行


用户权限设置

虚拟机设置静态ip

本文标签: 操作系统 项目 常用命令 软件 Linux