学习linux捷径就是掌握它的命令。 多敲

  • Linux简介安装
  • Linux简介

Linux的概述

Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境。Linux是由Linus Torvalds(林纳斯·托瓦兹)起初开发的,由于源代码的开放性,现在已经衍生出了成千上百种不同的Linux系统。

Linux系统的应用非常广泛,不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,比如手机、平板电脑、路由器等。尤其在这里提及一下,我们熟知是Android程序最底层就是运行在Linux系统上的。

Linux的分类

1Linux根据市场需求不同,基本分为两个方向:

图形化界面版:注重用户体验,类似window操作系统,但目前成熟度不够

服务器版:没有好看的界面,是以在控制台窗口中输入命令操作系统的,类似于DOS,是我们架设服务器的最佳选择

2Linux根据原生程度,又分为两种:

内核版本:Linus领导下的内核小组开发维护的系统内核的版本号

发行版本:一些组织或公司在内核版基础上进行二次开发而重新发行的版本

3Linux发行版本不同,又可以分为n多种:

  • Linux安装配置

安装Linux操作系统之前,先安装Vware虚拟机。

官网下载:

https://vault.centos.org/

进入centOs下载页面选择到7版本,下载镜像:

参考资料中文档安装。

必须开启当前系统的虚拟化,否则创建虚拟机失败,使用按键(F2,或者是F10,F1)进入操作系统的bios,然后开启虚拟化支持。每个品牌电脑不一样,请百度设置!

  • Linux远程连接

xShell7Xftp7軟件安装, 参考安装文档Xshell7安装

这两个软件和vmwarelinux系统关系,类似于SqlYongMysql的关系。

  • Linux目录结构

Linux的文件系统采用层级式的树状目录结构,在此结构中的最上层称之为根目录,使用”/”表示然后在此目录下创建其他目录。

Linux是一个文件系统,在linux中一切内容都是文件。

常用目录介绍:

  • /bin [重点](/usr/bin/usr/local/bin)

binbinary的缩写,这个目录中存放着最经常使用的命令

  • /sbin(/usr/sbin/usr/local/sbin)

s就是super user的意思,这里存放的是系统管理员使用的系统管理程序

  • /home[重点]

存放普通用户的主目录,在linux中每个用户都有自己的一个目录,一般该目录名是以用户账号命名的。

  • /root 该目录是系统管理员,或者是超级权限者的用户目录
  • /lib 系统开机所需要的最基本的动态链接共享库,
  • /lost+fond 这个目录一般是空的,系统非法关机后这里就会存放一些文件
  • /etc [重点] 所有的系统管理所需要的配置文件和子目录
  • /usr[重点] 这是一个非常重要的目录,用户的很多应用程序和文件都放在此目录下类似于windows下的 program files文件夹
  • /boot 存放的是启动linux时使用的一些核心文件目录
  • /proc/srv/sys 这三个目录和linux内核有关的目录,他是系统内存的一个映射,访问这个目录来获取系统信息。Linux高手才会用到,普通操作者不要乱动。
  • /tmp 存放临时文件的目录
  • /dve 类似于windows的设备管理器,把所有的硬件用文件的形式存储
  • /media [重点] linux会自动识别一些设备,如u盘,光驱等,当识别后linux会把识别的设备挂载到这个目录下
  • /opt[重点] 这个是我们存放安装软件的目录(jdk tomcat sogou…)
  • /usr/local [重点] 这个是另外一个给主机额外安装软件所安装的目录,一般通过编译源码方式安装程序
  • /var 存放不断变化的文件,例如日志文件,经常更新,就放到这个目录下。

(二)Linux远程登录

Xshellxftp工具安装.都是无脑点击下一步. 唯一需要注意的是自己修改一下安装路径.

三、Linux命令

1切换目录命令

1)格式:cd 目录名 语义:切换到某一目录下
2)格式:cd .. 语义:切换到上一级目录
3)格式:cd / 语义:切换到根目录
4)格式:pwd 语义:显示当前所在目录

2列出文件列表

1ls命令用户显示当前工作目录下的内容,包括子目录和文件
格式:ls [参数] [路径或文件名]

2ll命令和 ls 命令功能一样,只是显示方式不一样,ll 命令会列出当前目录下子目录和文件列表的详细信息。包括:

文件属性 文件个数 所有者 所属用户组 文件大小 修改时间 文件名


2)清屏命令窗口的内容只是上移了,并没有消失。
clear 清屏
ctrl+l 清屏

3目录的创建和删除

1创建目录mkdir(make directory)
格式
① mkdir 目录名 在当前目录下创建某一目录
② mkdir -p 目录1/目录2 级联创建目录1和目录2


2删除目录rmdir(remove directory)

格式:rmdir 目录0 删除目录0

4、创建文件

在编辑文件前先创建一个新文件touch 创建一个空文件
例如:touch a.txt 创建a.txt

Linux下一般使用vi/vim编辑器来编辑文件。既可以查看文件也可以编辑文件。

三种模式:命令行、插入模式、底行模式

vim 不存在的文件表示创建该文件并进入编辑模式

注意:vim命令需要安装后使用,安装命令:yum install vim

  • 命令语法:vi/vim 文件名
  • 切换到插入模式:按 i/o/a
    i:在当前位置前插入
    I:在当前行首插入
    a:在当前位置后插入
    A:在当前行尾插入
    o:在当前行之后插入一行
    O:在当前行之前插入一行
  • 非插入模式下的快捷方式
    dd 删除一行
    yy 复制当前行
    p 粘贴

u 撤销操作

  • 切换到命令行:按ESC
  • 切换到底行模式:按冒号,

/: /内容 搜索文件的内容

:q! 不保存退出

:wq 保存退出

:set nu显示行号

:set nonu 取消显示行号

5文件内容查看

1cat 用于显示文件的内容。

格式:cat [参数] <文件名>
例如:cat xx.conf

  1. more 一般用于要显示的内容会超过一个画面长度的情况。

空格显示下一个画面。

回车显示下一行内容。

q键退出查看
例如:more xx.conf

3less more类似,不同的是less可以通过上下键控制

4tail 命令是实际使用过程中使用非常多的一个命令,他的功能是:用于显示文件后几行的内容
例如:
tail -10 xx.conf 查看后10行数据
ctrl + c 结束查看

6、重定向输出

1> 重定向输出,覆盖原有内容

2>> 重定向输出,又追加功能
例如:
① cat 1.txt > 2.txt 1.txt中的文件内容输出到2.txt文件中,覆盖2.txt中的内容
② cat 1.txt >> a.txt 1.txt中的内容追加到a.txt

7查找文件和内容

1find 指令用于查找符合条件的文件

格式:find 文件所有路径 -name “文件名或统配符关键字
例如:
① find / -name “ins*” 查找文件名称是以ins开头的文件
② find /usr/localname “1.txt” 查找指定目录下文件名为1.txt的文件

2grep 指令查找文件中符合条件的字符串
格式:[root@localhost]# grep [-n] 字符串 文件名
例如:
① grep lang xx.cfg xx.cfg文件中查找lang字符串
② grep –n lang xx.cfg 查找时带行号

8、删除、复制和移动文件

1rm 删除文件

格式:rm [选项] 文件
例如:
rm a.txt 删除文件 删除时需要用户确认
rm -f a.txt 不询问删除

rm -r aa 删除文件夹,询问删除
rm -rf aa 删除文件夹,不询问删除
rm -rf * 删除所有 慎用

  1. cp (copy) 命令可以将文件从一处复制到另一处,需要指定源文件名与目标文件名或目录

格式cp 源文件 目标文件
例如:
① cp a.txt b.txt a.txt文件复制一份新的放到当前目录下此时文件名能相同
② cp a.txt ../aaa/a.txt a.txt 复制到上一层目录中aaa目录下并取名为a.txt

3mv 移动或者重命名(用的比较多)
例如:
① mv a.txt ../ a.txt移动到上一层目录中
② mv a.txt b.txt a.txt重命名为b.txt

9打包(**.tar)或压缩(**.tar.gz)

tar命令位于/bin 目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。一般Linux 上常用的压缩方式是选用 tar 将许多文件打包成一个文件,再使用gzip压缩命令压缩成xx.tar.gz(或称为xxx.tgz)的文件 压缩: 先把内容变为tar文件,在对tar进行压缩 tar.gz

格式:tar 参数 文件名.tar.gz 需要打包或压缩的文件
常用参数:
-c 创建一个新的tar文件
-v 显示运行过程中的信息
-f 指定文件名
-z 调用gzip 压缩命令压缩
-x tar文件
常见命令:

tar -cvf file1.tar file1 将文件夹file1中的所有文件打包成file1.tar
tar -cvf file2.tar ./* 将当前目录下所有文件打包
tar -zcvf xx.tar.gz ./* 打包并压缩
tar -xvf xx.tar 解压
tar -zxvf xx.tar.gz 解压文件

10、进程管理命令

1ps 正在运行的某个进程的状态
① ps -ef 查看所有进程
② ps -ef | grep ssh 查看某一进程 | 管道符号
③ kill 2868 杀掉编号为2868的进程
④ kill -9 2868 强制杀死进程

11、Linux 的权限命令

(1)用户和组管理(了解)

用户组与用户之间的关系:

一个用户组可以包含很多用户,一个用户一定是属于某个用户组的。

1.groupadd

groupadd 命令用于创建新的用户组。语法格式: groupadd 组名

[root@localhost]# groupadd gp1

查看当前用户组:在/etc/group文件中查看

[root@localhost]# cd /etc

[root@localhost]# cat group

2.groupdel

groupdel 命令用于删除用户组; 语法格式:groupdel 组名

[root@localhost]# groupdel gp1

3.groups

groups 命令用于显示当前用户所在的组。

[root@localhost]# groups

4.useradd

useradd 命令用于建立用户帐号,默认同时会创建一个用户组与用户名同名

[root@localhost]# useradd user1

[root@localhost]# useradd -g gp1 user1 创建用户同时指定用户组

查看所有用户在/etc/passwd文件中查看

[root@localhost]# cd /etc

[root@localhost]# cat passwd

5.usermod

指定所属用户组:

[root@localhost]# id user1

[root@localhost]# usermod -g root user1

[root@localhost]# id user1

6.userdel

userdel 命令用来删除用户帐号及其相关文件。

[root@localhost]# userdel user1 删除用户

ls /home/

[root@localhost]# userdel -rf user1 连同文件一起删除用户

ls /home/

7.passwd

passwd(password)命令用于修改用户的密码。通常是root账号权限可以修改

一般来说,设置账户密码失败有几 种情况:密码太简单、密码太短、密码中的字符多数相同。

语法格式:passwd 用户名

命令如下:

[root@localhost]# passwd user1 lgx0802..

8.su

切换到 user1 用户:

[root@localhost]# su user1

切换到 root 用户:

[root@localhost]# su

(2)文件权限(了解)

ll查看列表时可查看到文件的读写权限

chmod 命令用于改变文件或目录的访问权限。

权限对应的数字:

权限属性

对应数字

说明

r

4

文件可以被读取

w

2

文件可以被写入

x

1

文件可以被执行(如果它是程序的话)

0

相应的权限还没有被授予。

例如,给 test.sh 文件设置权限

-rw-rw-rw-

[root@localhost]#chmod 644 test.sh644: 3 为数字组成

1 位数字代表文件所有者对这个文件的权限

2 数字代表文件所属用户组对这个文件的权限

3 位数字代表其他人对这个文件的权限。

例如:仅有读权限,就是 4。仅有写权限就是 2。如果既有读,也有写权限, 则把权限值加起来,4+2 就是 6

644 权限说明:文件所有者对这个文件的权限是:读、写;文件所属用户组对这个文件的权限仅有读;其他人对这个文件的权限仅有读。

常用的权限设置:

这里是一个某些常用设置、数值、以及它们的含义的列表:

-rw——-(600)—只有所有者才有读取和写入的权限。

-rw-r-r– (644)—只有所有者才有读取和写入的权限:组群和其他人只有读取的权 限。

-rwx—–(700)—只有所有者才有读取、写入和执行的权限。

-rwxr-xr-x(755)—所有者有读取、写入和执行的权限;组群和其他人只有读取和 执行的权限。

-rwx–x–x(711)—所有者有读取、写入和执行权限;组群和其他人只有执行权限。

-rw-rw-rw-(666)—每个人都能够读取和写入文件。(请谨慎使用这些权限。)

-rwxrwxrwx(777)—每个人都能够读取、写入和执行。(再重申一次,这种权限设置可能会很危险。)

下面列举了一些对目录的常见设置:

drwx—-(700)—只有所有者能在目录中读取、写入。

drwx-xr-x(755)—每个人都能够读取目录,但是其中之一的内容却只能被告所有者 改变。

12、yum

(一)yum简介

Yum(全称为 Yellow dog Updater, Modified)是一个在FedoraRedHat以及CentOS中的软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

(二)常见命令

1. 安装命令:yum install 安装软件包 yum install vim
2. 查看:list 查看可以安装的软件包 如:yum list | grep 软件名

13、防火墙命令

安装:yum install firewalld

启动: systemctl start firewalld

关闭: systemctl stop firewalld

查看状态: systemctl status firewalldfirewall-cmd –state

重启:systemctl restart firewalld.servicefirewall-cmd –reload

开机禁用 systemctl disable firewalld

开机启用 systemctl enable firewalld

查看开放的端口:firewall-cmd –list-ports

添加端口:firewall-cmd –add-port=8080/tcp –permanent –permanent永久生效,没有此参数重启后失效)

四、shell编程(了解)

  • shell概述

Shell是一个命令行解释器,它为用户提供了一个向linux系统内核发送请求以便运行程序的界面系统级程序,用户可以通过shell脚本来启动,挂起,停止或者是编写一些程序。

1、运维人员在进行服务器集群管理的时候,需要编写一下shell脚本来进行集群的管理

2、大数据的工作人员需要编写shell脚本对数据库进行管理

  • Shell语法规范

(1)Shell 脚本以 ***.sh 命名

(2)Shell 脚本的开头为 #!/bin/bash 开头 (声明批处理文件)

(3)赋予用户执行的权限 +x

(4)执行的时候可以是相对路径或者是绝对路径

  • Shell编程练习
  1. 需求:第一个案例HelloWorld
  2. 创建shell的练习目录,命令:mkdir /usr/local/demos
  3. 创建一个文件命名为 test.sh: touch test.sh
  4. 编写内容如下: 使用命令vim test.sh打开文件

#!/bin/bash

echo”Hello World !”

  1. 赋予文件执行权限:chmod 744 ./test.sh
  2. 执行文件: sh ./test.sh

五、linux系统软件安装和配置

(一)JDK安装配置

  1. 进入linux查看当前java版本:java -version
  2. 使用xftp将下载好的jdk上传到usr/local/softs目录下
  3. 解压上传的压缩包:tar -zxvf jdk1.8.0_191.tar.gz
  4. 重命名操作 mv jdk1.8.0_191 jdk8
  5. 配置环境变量:命令或者窗口打开vim /etc/profile

打开etc目录下面的profile文件,在最后添加如下代码

JAVA_HOME=/usr/local/softs/ jdk8

PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOME PATH

重新加载profile配置文件:source /etc/profile

命令测试: java javac java -version

(二)Tomcat安装配置

  1. 将本地下载的压缩包上传到linux
  2. 进入软件目录使用命令解压:tar -zxvf apache-tomcat-8.5.56.tar.gz
  3. 修改tomcat的文件名 mv apache-tomcat-8.5.56 tomcat8
  4. 进入解压后的tomcat目录下bin目录,使用命令启动:./startup.sh
  5. 查看tomcat进程:ps aux | grep tomcat
  6. 安装netstat命令:yum -y install net-tools
  7. 根据进程查看占据的端口号:netstat -anop | grep 进程号
  8. 这个时候我们在windows中使用浏览器无法访问,原因是linux的防火墙对这个端口8080没有放行。

firewall-cmd –add-port=8080/tcp –permanent

重启防火墙:firewall-cmd –reload

浏览器访问tomcat: http://自己linuxip:8080/

(三)Mysql的安装配置

安装wget命令:

yum -y install wget

下载mysql

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

yum安装mysql仓库:

yum -y install mysql57-community-release-el7-10.noarch.rpm

安装mysql服务:

yum -y install mysql-community-server

启动mysql

注意这里如果包公钥失败: 加上下面这两语句

rpm –import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

yum -y install mysql-community-server

systemctl start mysqld.service

查看mysql状态:

systemctl status mysqld.service

获取mysql默认登录密码:

grep “password” /var/log/mysqld.log

使用密码登录mysql(默认密码中包含特殊字符的需要使用\进行转译:!; + 类似字符,或者可以直接将密码用单引号引起来)

mysql -uroot -p 密码

例如:mysql -uroot -p ‘m>)1pG+Lwtk-’

修改默认密码(不修改不能进行其他操作),密码设置必须要大小写字母数字和特殊符号

ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘ROOTroot1234@@’;

设置远程连接mysql数据库:

赋予权限 %代表所有IP

grant all privileges on *.* to ‘root’@’% ‘identified by ‘ROOTroot1234@@’ with grant option;

刷新权限表: flush privileges ;

退出mysql登录设置开放端口号

防火墙中开放3306端口:

firewall-cmd –zone=public –add-port=3306/tcp –permanent

查看开放的端口:firewall-cmd –list-ports

重启防火墙:

firewall-cmd –reload

使用slqyog连接测试:

  • 将本地项目部署到linux
  1. 使用sqlyog连接linux上的msyql数据库,将sql脚本执行生成数据库
  2. 修改后台配置文件c3p0中的数据库连接地址 修改为linux中数据库的访问地址
  3. 使用idea将后台项目打包:打war包(可以build节点设置打包文件名)
  4. 修改前端页面文件中的后台连接地址及端口号 修改为linuxtomcat的地址和端口号
  5. 将前端项目和后台war包分别上传到linuxtomcat服务器webapps目录下
  6. 启动tomcat,访问项目,测试页面效果 http://192.169.60.129/book_front/index.html