学习linux捷径就是掌握它的命令。 多敲
- Linux简介安装
- Linux简介
Linux的概述
Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境。Linux是由Linus Torvalds(林纳斯·托瓦兹)起初开发的,由于源代码的开放性,现在已经衍生出了成千上百种不同的Linux系统。
Linux系统的应用非常广泛,不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,比如手机、平板电脑、路由器等。尤其在这里提及一下,我们熟知是Android程序最底层就是运行在Linux系统上的。
Linux的分类
1)Linux根据市场需求不同,基本分为两个方向:
图形化界面版:注重用户体验,类似window操作系统,但目前成熟度不够
服务器版:没有好看的界面,是以在控制台窗口中输入命令操作系统的,类似于DOS,是我们架设服务器的最佳选择
2)Linux根据原生程度,又分为两种:
内核版本:在Linus领导下的内核小组开发维护的系统内核的版本号
发行版本:一些组织或公司在内核版基础上进行二次开发而重新发行的版本
3)Linux发行版本不同,又可以分为n多种:
- Linux安装配置
安装Linux操作系统之前,先安装Vware虚拟机。
官网下载:
https://vault.centos.org/
进入centOs下载页面选择到7版本,下载镜像:
参考资料中文档安装。
必须开启当前系统的虚拟化,否则创建虚拟机失败,使用按键(F2,或者是F10,F1)进入操作系统的bios,然后开启虚拟化支持。每个品牌电脑不一样,请百度设置!
- Linux远程连接
xShell7和Xftp7軟件安装, 参考安装文档Xshell7安装
这两个软件和vmware中linux系统关系,类似于SqlYong和Mysql的关系。
- Linux目录结构
Linux的文件系统采用层级式的树状目录结构,在此结构中的最上层称之为根目录,使用”/”表示然后在此目录下创建其他目录。
Linux是一个文件系统,在linux中一切内容都是文件。
常用目录介绍:
- /bin [重点](/usr/bin、/usr/local/bin)
bin是binary的缩写,这个目录中存放着最经常使用的命令
- /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远程登录
Xshell和xftp工具安装.都是无脑点击下一步. 唯一需要注意的是自己修改一下安装路径.
三、Linux命令
1、切换目录命令
1)格式:cd 目录名 语义:切换到某一目录下
2)格式:cd .. 语义:切换到上一级目录
3)格式:cd / 语义:切换到根目录
4)格式:pwd 语义:显示当前所在目录
2、列出文件列表
1)ls命令用户显示当前工作目录下的内容,包括子目录和文件。
格式:ls [参数] [路径或文件名]
2)ll命令和 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、文件内容查看
1)cat 用于显示文件的内容。
格式:cat [参数] <文件名>
例如:cat xx.conf
- more 一般用于要显示的内容会超过一个画面长度的情况。
空格显示下一个画面。
回车显示下一行内容。
q键退出查看
例如:more xx.conf
3)less 和 more类似,不同的是less可以通过上下键控制
4)tail 命令是实际使用过程中使用非常多的一个命令,他的功能是:用于显示文件后几行的内容
例如:
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、查找文件和内容
1)find 指令用于查找符合条件的文件
格式:find 文件所有路径 -name “文件名或统配符关键字”
例如:
① find / -name “ins*” 查找文件名称是以ins开头的文件
② find /usr/local –name “1.txt” 查找指定目录下文件名为1.txt的文件
2)grep 指令查找文件中符合条件的字符串
格式:[root@localhost]# grep [-n] 字符串 文件名
例如:
① grep lang xx.cfg 在xx.cfg文件中查找lang字符串
② grep –n lang xx.cfg 查找时带行号
8、删除、复制和移动文件
1)rm 删除文件
格式:rm [选项] 文件
例如:
rm a.txt 删除文件 删除时需要用户确认
rm -f a.txt 不询问删除
rm -r aa 删除文件夹,询问删除
rm -rf aa 删除文件夹,不询问删除
rm -rf * 删除所有 慎用
- cp (copy) 命令可以将文件从一处复制到另一处,需要指定源文件名与目标文件名或目录
格式:cp 源文件 目标文件
例如:
① cp a.txt b.txt 将a.txt文件复制一份新的放到当前目录下,此时文件名能相同
② cp a.txt ../aaa/a.txt 将a.txt 复制到上一层目录中aaa目录下,并取名为a.txt
3)mv 移动或者重命名(用的比较多)
例如:
① 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、进程管理命令
1)ps 正在运行的某个进程的状态
① 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.sh 644:由 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)是一个在Fedora和RedHat以及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 firewalld(firewall-cmd –state)
重启:systemctl restart firewalld.service(firewall-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编程练习
- 需求:第一个案例HelloWorld
- 创建shell的练习目录,命令:mkdir /usr/local/demos
- 创建一个文件命名为 test.sh: touch test.sh
- 编写内容如下: 使用命令vim test.sh打开文件
#!/bin/bash
echo”Hello World !”
- 赋予文件执行权限:chmod 744 ./test.sh
- 执行文件: sh ./test.sh
五、linux系统软件安装和配置
(一)JDK安装配置
- 进入linux查看当前java版本:java -version
- 使用xftp将下载好的jdk上传到usr/local/softs目录下
- 解压上传的压缩包:tar -zxvf jdk1.8.0_191.tar.gz
- 重命名操作 mv jdk1.8.0_191 jdk8
- 配置环境变量:命令或者窗口打开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安装配置
- 将本地下载的压缩包上传到linux
- 进入软件目录使用命令解压:tar -zxvf apache-tomcat-8.5.56.tar.gz
- 修改tomcat的文件名 mv apache-tomcat-8.5.56 tomcat8
- 进入解压后的tomcat目录下bin目录,使用命令启动:./startup.sh
- 查看tomcat进程:ps aux | grep tomcat
- 安装netstat命令:yum -y install net-tools
- 根据进程查看占据的端口号:netstat -anop | grep 进程号
- 这个时候我们在windows中使用浏览器无法访问,原因是linux的防火墙对这个端口8080没有放行。
firewall-cmd –add-port=8080/tcp –permanent
重启防火墙:firewall-cmd –reload
浏览器访问tomcat: http://自己linux的ip: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
- 使用sqlyog连接linux上的msyql数据库,将sql脚本执行生成数据库
- 修改后台配置文件c3p0中的数据库连接地址 修改为linux中数据库的访问地址
- 使用idea将后台项目打包:打war包(可以build节点设置打包文件名)
- 修改前端页面文件中的后台连接地址及端口号 修改为linux中tomcat的地址和端口号
- 将前端项目和后台war包分别上传到linux的tomcat服务器webapps目录下
- 启动tomcat,访问项目,测试页面效果 http://192.169.60.129/book_front/index.html