Linux
一、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
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