一、linux简介

1.1、操作系统

Linux 也是众多操作系统之一,要想知道 Linux 是什么,首先得说一说什么是操作系统。

计算机是一台机器,它按照用户的要求接收信息、存储数据、处理数据,然后再将处理结果输出(文字、图片、音频、视频等)。计算机由硬件和软件组成:

  • 硬件是计算机赖以工作的实体,包括显示器、键盘、鼠标、硬盘、CPU、主板等;
  • 软件会按照用户的要求协调整台计算机的工作,比如 Windows、Linux、Mac OS、Android 等操作系统,以及 Office、QQ、迅雷、微信等应用程序。

**操作系统(Operating System,OS)**是软件的一部分,它是硬件基础上的第一层软件,是硬件和其它软件沟通的桥梁(或者说接口、中间人、中介等)。它除了会为应用程序保驾护航,还会“杀死”不听话的应用程序,具有双面性。

目前流行的服务器和 PC 端操作系统有 Linux、Windows、UNIX 等,手机操作系统有 Android、iOS、Windows Phone(简称 WP),嵌入式操作系统有 Windows CE、PalmOS、eCos、uClinux 等。

1.2、Linux

Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

二、linux安装和启动过程

2.1、安装

1、下载vmware
2、下载centos系统文件
3、打开vmware安装centos
4、选择软件和分区
5、创建管理员密码

2.2、启动流程

linux启动时我们会看到许多启动信息。

Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段:

  • 内核的引导

    当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。
    
    操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。  
    
  • 运行 init。

    init 进程是系统所有进程的起点,你可以把它比拟成系统所有进程的老祖宗,没有这个进程,系统中任何进程都不会启动。
    
    init 程序首先是需要读取配置文件 /etc/inittab。 
    
  • 系统初始化。

    在init的配置文件中有这么一行: si::sysinit:/etc/rc.d/rc.sysinit 它调用执行了/etc/rc.d/rc.sysinit,而rc.sysinit是一个bash shell的脚本,它主要是完成一些系统初始化的工作,rc.sysinit是每一个运行级别都要首先运行的重要脚本。
    
    它主要完成的工作有:激活交换分区,检查磁盘,加载硬件模块以及其它一些需要优先执行任务。 
    
  • 建立终端 。

    rc执行完毕后,返回init。这时基本系统环境已经设置好了,各种守护进程也已经启动了。
    
    init接下来会打开6个终端,以便用户登录系统。
    
    默认我们登录的就是第一个窗口,也就是tty1,这个六个窗口分别为tty1,tty2 … tty6,你可以按下Ctrl + Alt + F1 ~ F6 来切换它们。
    
  • 用户登录系统。

    • (1)命令行登录
    • (2)ssh登录
    • (3)图形界面登录
    在这个登录界面中会提示用户输入用户名,而用户输入的用户将作为参数传给login程序来验证用户的身份。
    然后 login 会对用户名进行分析:如果用户名不是 root,且存在 /etc/nologin 文件,login 将输出 nologin 文件的内容,然后退出。
    
    这通常用来系统维护时防止非root用户登录。只有/etc/securetty中登记了的终端才允许 root 用户登录,如果不存在这个文件,则 root 用户可以在任何终端上登录。
    
    /etc/usertty文件用于对用户作出附加访问限制,如果不存在这个文件,则没有其他限制。
    

在这里插入图片描述

三、 linux目录结构

在linux中,我们平时打交道的都是文件,那么,应该如何找到它们呢?很简单,在 Linux 操作系统中,所有的文件和目录都被组织成以一个根节点“/”开始的倒置的树状结构。

登录系统后,在当前命令窗口下输入命令:

ls /

你会看到如下图所示:

在这里插入图片描述

在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

**/boot:**这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

**/dev :**dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

/media: linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

/etc: 这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。

值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。

/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。

/opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

/usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

命令提示符

[root@localhost ~]#
  • []:这是提示符的分隔符号,没有特殊含义。
  • root:显示的是当前的登录用户,笔者现在使用的是 root 用户登录。
  • @:分隔符号,没有特殊含义。
  • localhost:当前系统的简写主机名(完整主机名是 localhost.localdomain)。
  • ~:代表用户当前所在的目录,此例中用户当前所在的目录是家目录。
  • #:命令提示符,Linux 用这个符号标识登录的用户权限等级。如果是超级用户,提示符就是 #;如果是普通用户,提示符就是 $。

四、linux常用命令

ls
ls:显示当前目录下文件和目录

在这里插入图片描述

cd
cd:进入目录
	cd ..	返回到上一级目录
	./	当前目录
	../	父目录
	- 	代表前一个工作目录 
	~	代表[目前使用者身份]所在的家目录
mkdir
mkdir:新建目录
cp
cp:复制文件
	cp file1 /home/haowen/	将文件复制copy到目录
	cp file1 ./file2		复制文件并改名
mv
mv:移动文件
	mv file1 /home/haowen/		将文件移动到目录 /home/haowen/下
	mv file1 filenew1			将文件名改为 filenew1
rm
rm:删除文件或目录,f不提示输入y
	rm file1		删除文件
	rm -r dir1		删除目录
	rm -rf dir2 	删除目录,不提示
tar
tar:解压、打包
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个

-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出

下面的参数-f是必须的

-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。


压缩
tar -zcvf jpg.tar *.jpg		将目录里所有jpg文件打包成tar.jpg

解压
tar -zxvf 123.tar.gz		解压123.tar.gz

vim
vim file:使用vi编辑器编辑文件

	按i进入insert状态,即插入模式,按Esc退出插入模式。
	在非插入模式下按 dd 删除光标当前行,按 x 删除当前字,按j,n,l移动光标
	:wq  ( 保存退出 ) 
	:q! (不保存退出)
cat
cat:由第一行开始显示档案内容

在这里插入图片描述

source
source:在当前bash环境下读取并执行FileName中的命令,该命令通常用命令“.”来替代。

	如:source .bash_rc 与 . .bash_rc 是等效的。
clear
clear:清屏,在 console 上输入 clear
systemctl

操作linux下的系统服务的

systemctl start 服务名
systemctl restart 服务名
systemctl stop 服务名
systemctl status 服务名
firewall-cmd

防火墙命令

firewall-cmd --list-port 			#查看防火墙已开放的端口
firewall-cmd --add-port=8080/tcp 	#临时开放8080端口
firewall-cmd --add-port=8080/tcp --permanent 	#永久开放8080端口

五、网络配置

默认安装完centos是不能上网的,我们需要进行网络配置。网络配置有两种,一种是自动获取;另一种是设置静态ip。

自动获取

在命令行执行以下命令即可

dhclient
ip addr

ip addr 可以查看当前ip
在这里插入图片描述

静态ip

1、设置网络适配器为NAT模式

在这里插入图片描述
在这里插入图片描述

2、设置虚拟网卡

在这里插入图片描述
在这里插入图片描述

主要记住:

网关:192.168.68.2
子网掩码:255.255.255.0
在这里插入图片描述

3、设置静态ip

打开centos,打开ifcfg-ensxx文件,配置静态ip

vim /etc/sysconfig/network-scripts/ifcfg-ens33 

在文档最后加入

#静态ip
IPADDR=192.168.68.150
#子网掩码(步骤2中要记住的子网掩码)
NETMASK=255.255.255.0
#默认网卡(步骤2中要记住的网关)
GATEWAY=192.168.68.2
#DNS(windows主机的网关)
DNS1=192.168.1.1

DNS1的值为在windows下打开cmd,输入ipconfig,找到默认网关:192.168.1.1

4、重启网络模块

service network restart

六、部署应用

6.1、jdk安装

1、下载jdk

首次需要安装wget命令,执行下面命令等待完成即可

yum install wget

在这里插入图片描述

官网找到jdk下载地址,复制。打开终端,输入wget 下载地址(在终端shift+insert表示粘贴)

wget 下载地址

2、解压jdk

3、配置环境变量

vim /etc/profile

添加如下内容:JAVA_HOME根据实际目录来

JAVA_HOME=/usr/java/jdk1.8.0_60
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

4、重新加载资源

source /etc/profile

5、检查

在终端分别执行:java、javac、java -version查看结果

6.2、maven安装

1、下载maven

2、解压maven

3、配置环境变量

#使用vim编辑器打开profile文件
vim /etc/profile

#添加maven_home变量,并加入path变量中
export MAVEN_HOME=/usr/local/maven/apache-maven-3.5.2
PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

#重新加载资源
source /etc/profile

6.3、git安装

yum install git

在这里插入图片描述

6.4、安装tomcat

下载tomcat

wget  https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0.107/bin/apache-tomcat-7.0.107.tar.gz

在这里插入图片描述

解压即可

6.5、发布项目

1、克隆代码到本地

git clone xxxxxxx.git

2、打包安装代码

切到项目根目录,即与pom.xml同一层目录
mvn install

3、复制war包到tomcat中

cp xxx.war tomcat/webapps

4、启动tomcat

./startup.sh
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐