linux
linux
简介
- 一种开源的、免费的操作系统,安装在计算机硬件上、用来管理计算机的硬件和软件资源的系统软件
- linux注重安全性、稳定性、高并发处理,没有优异的可视化界面
- windows用于个人计算机上,linux用于企业服务器上
linux
的发行版本
在1991年开发,linux
的内核程序,后来很多软件开发组织以及软件公司在内核程序基础上,陆续推出很多版本的linux
操作系统:Ubuntu
(乌班图)、ReHat
(红帽)、CentOS
安装
- 虚拟机:可以用软件模拟出一套完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统
- 安装
linux
:linux的镜像- 可视化界面比较单薄,很少使用,使用
linux
多数是基于终端命令使用linux
指令操作系统**
- 可视化界面比较单薄,很少使用,使用
安装目录结构
- 只有一个根目录
- 层级式的目录结构
bin/local/bin:系统的可执行文件,可以在任何目录下执行
user/local/bin:用户自己的可执行文件,可以在任何目录下执行
etc:存放配置文件,配置环境变量(etc/profile)
home:每一个用户的根目录,用来保存私人的数据,默认情况下,目录名和自己的用户名相同
opt:存档额外安装的软件。相当于windows系统的中Program files目录
linux
的远程操作
远程连接虚拟机必须连上网
- Xshell:linux的终端模拟软件
连接远程linux
创建会话
- 查看系统的IP地址:ifconfig
Xftp:文件传输软件
vi和vim
linux中的编辑器,用来在linux查看或编辑文本文件,就像被windows中的
记事本
vim是vi的增强版本,vi的绝大多数用法在vim都适用
一般模式:用vi或vim命令打开(vim test.text),进入了一般模式;
可以查看文件的内容,并且可以通过上下左右键移动光标,查看文件某一部分
编辑模式:在一般模式下,按下i或a或I或A进入到编辑模式 ;可以编辑内容;但是不能保存编辑的内容;按Esc可以回到一般模式
命令模式:在一般模式下,按:,进入命令模式;
- q!:不保存,强制退出编辑器
- wq:保存退出
- q:只是退出编辑器
vi和vim编辑器的快捷键
- 复制当前行:在一般模式下按yy;按p,把剪切板中的内容粘贴到光标所在的下一行
- 复制当前行往下5行:在一般模式下,按5yy,把光标所在行复制到剪切板;按p,把剪切板中的内容粘贴到光标所在的下一行
- 在文本文件中查找关键字:在命令行模式下,输入/关键字,回车;按n表示光标查找下一个关键字
- 删除光标所在的当前行:在一般模式下,按dd,删除光标所在行的内容
- 删除光标所在往下5行:在一般模式下,按5dd
- 撤销上次编辑内容:在一般模式下,按u
- 显示行号:set nu
- 取消行号:set nonu
linux用户管理
任何使用linux的系统资源的用户,必须使用一个合法的账号和密码;账号和密码一般都是系统管理员申请
root是linux系统安装时默认创建的系统管理员账号,由root创建普通账号
添加用户
useradd 用户名
会在/home目录下创建的根目录,目录名称默认跟用户名相同
创建一个组(用户名):在linux中任何一个用户都至少属于一个组,新建用户如果不指定组,则会新建一个组,组名和用户名相同,并且把该用户添加到该组中
useradd -d /home/ww wangwu(ww是根目录)创建用户的同时,指定用户的根目录
设置密码
passwd 用户名
密码具有一定的复杂度
删除用户
userdel 用户名
删除后数据还存在,主目录还在
userdel -r 用户名
删除用户的同时也会删除他的主目录
查看用户信息
id 用户名
切换用户
su 用户名
su baibai
从权限高的用户切换权限低的用户,不需要密码验证
从权限低的用户切换权限高的用户,需要密码验证
linux中的组管理
linux中的组相当于角色的概念,可以对有共性的用户进行统一管理
每一个用户至少属于一个组,不能独立于组存在,也可以属于多个组
新建用户时如果不指定组,则会新建一个组,组名和用户名相同,并且该用户添加到该组中
添加组
groupadd 组名
groupadd dev
删除组
groupdel 组名
groupdel dev
把用户添加到组中
gpasswd -a 用户名 组名
gpasswd -a zhangsan dev
把用户从组中移除
gpasswd -d 用户名 组名
gpasswd -d zhangsan dev
创建用户时,指定所属的组(主组):useradd -g 组名 用户名
useradd -g dev baibai
linux中的系统操作命令
关机
shutdown now 立即关机
shutdown -h xxx 定时关机
shutdown -r now 立即重启
重启
reboot 立即重启
同步数据库
sync
linux中的帮助命令
man
用来查看linux系统手册上的帮助信息
man ls:进入帮助命令,分屏显示、按回车翻一行,按空格翻一页
q 退出帮助命令
help
用来查看命名的内置帮助信息
help cd :
linux中的文件和目录操作的命令
查看当前所造目录
pwd
ls
查看指定目录下的所有子目录或文件列表 ls [指定目录]
ls -l /home :一列表形式显示
ls -a /home:显示指定目录下所有的子目录和文件(包括虚拟的目录)
ls -al /home:以列表形式显示指定目录下所有的子目录和文件(包括虚拟目录)
切换目录
cd 目录名
- 绝对目录:以盘符开始的目录 cd /opt/testDir
- ~:当前用户的根目录。在任何目录下执行cd ~,进入当前用户的根目录
- 相对目录:以目录名开始的目录 cd testDir(当前在opt下 )
- ..:当前目录的上一级目录,从当前目录开始查找他的上一级目录
创建目录
mkdir 目录名
在/opt/testDir下创建test1
- 绝对目录:mkdir /opt/testDir/test1
- 相对目录:
mkdir -p /opt/testDir/test3/test4
在/opt/testDir目录下创建test3,并且在test3下创建test4(一次创建多级目录)
删除目录
rmdir 目录名
rmdir test1
rmdir test2
创建文件
touch 文件名
touch 文件名列表(文件名用空格隔开)
复制文件
cp source(源) dest(目标 )
cp t1.txt test2 //把t1.text复制到test2目录下
t1.text中有内容无法复制
cp -r test2 test5 可以实现这个操作
cp t1.text test2 test2目录下已经有了t1.text
n:不覆盖
y:覆盖
删除文件或目录
rm 文件名/目录名
rm -f t1.text 提示删除
rm -r t2.text 无提示 提示递归强制删除目录
rm -rf test1 强制递归删除目录
移动目录或文件
mv source(源) dest(目标)
mv test.text test1
mv t1.txt t2.txt 文件中重命名
echo指令
输出系统变量或者常量的值到命令行终端
echo $JAVA_HOME
echo $PATH
C:\Program Files\Java\jdk1.8.0_191\bin\java.exe
把前一个查看命令的那结果输出到指定文件中,如果指定文件不存在,则新建:查看命令>文件名
ls > ret.texe
ls -al > ret.text
cat ret.text > ret2.text 文件内容复制到ret2.text
日期和时间的操作命令
查看或设置日期或时间
date 查看系统当前的完整的日期和时间
date +%Y 系统当前的年份
date +%m 系统当前的月份
date +%d 系统当前的日期
date ‘+%y-%m-%d %H:%N:%S’ 按yyyy-MM–dd HH:mm:ss格式显示
date -s 设置当前的系统时间
查看系统日历
cal:查看当前月份的日历
cal 2020:查看指定月份的日历
关于搜索文件或者目录的命令
find *.text 搜索当前目录下,所有的.txet文件
find e 搜索当前目录下,所有名称中包含e的那些文件或者目录
find /etc *.text 搜索/etc目录下所有.text文件
find /etc -size +5M 大于5M
-5M 小于5M
=5M 等于5M
- name:默认按名称搜索(目录所在的路径也在搜索范围内)
- size:按文件大小搜索
- user:按文件所有者搜索
locate指令
在整棵目录树中搜索文件或者目录,都是名称搜索,效率高
locate 文件名
搜索过滤命令
在前一个搜索命令的结果中进行按名称进一步过滤
- 搜索命令:grep 过滤条件
- 查看命令:grep 过滤条件
find *.text |grep new 搜索当前目录下,所有名称包含new的.text文件
find /etc -size -5k|grep firefox
cat t1.text|grep beijing
cat t1.text|grep -i beijing 忽略大小写
压缩和解压命令
压缩或者减压单个文件
gzip 文件名:压缩单个文件,自动生成.gz的压缩包,并且会把原来的文件删除
gunzip .gz压缩包名:解压.gz,并且会把原来的.gz压缩包直接删除
范围较小,只能解压或者压缩单个文件,且只能生成.gz文件
压缩(打包)或者解压多个文件和目录
zip 文件或者目录列表 目标压缩包名称(.zip):
zip ret.text t1.text test.text
unzip 压缩包名(.zip)-d 解压目录名:将指定.zip压缩包解压到当前目录或者指定目录
unzip test.zip -d test3
压缩(打包)或者解压多个文件和目录
c:打包或者压缩
tar [选项] 目标压缩包名称(xxxx.tar.gz)文件或目录列表
x:解压
tar [选项] 压缩包名(xxx.tar.gz)-C 解压目录名:
-v:显示详细信息
-f:指定压缩后的文件名
-z:打包同时压缩
-x:解压.tar.gz文件
tar -zcvf xxx.tar.gz 文件或者目录列表
tar -zxvf xxx.tar.gz -C 解压目录名
tar -zcvf mytar.tar.gz mytest.zip ret.text t1.text text2 将三个文件打包压缩进入mytar.tar.gz
tar -zxvf mytar.tar.gz -C test5 将压缩文件中的三个文件解压到test5目录下
组管理命令
文件或者目录与 组基本介绍
在linux中每一个用户都至少属于一个组,用户不能独立于组存在,一个用户可以属于多个组
在linux中,每一个文件或者0必须属于一个组,而且只能属于一个组
文件或者目录通过组老控制哪些用户可以对他进行哪些操作,即文件或者目录的访问权限
在文件或者目录看来,linux系统中所有的用户分为三类
- 所有者:默认情况下,文件或者目录的所有者都是创建者,可以修改
- 同组用户:跟文件或者目录属于同一个组的用户
- 其他组用户:既不是文件或者目录的所有者,也不是同组用户
查看文件的所有者和所在的组
ls -l
修改文件的所有者
1、chown 新的所有者 文件名
chown baibai t1.text
2、chown 新的所有者:新的组 文件名(或者目录名)
chown baibai:dev t1.text
3、递归修改目录的所有者和所在的组
chown -R baibai:dev test2
修改文件或者目录的所在组
chgrp 新的组 文件名或者目录名
chgrp dev t2.text
chgrp -R dev test3
权限管理
1、准备工作
一个用户至少属于一个组,也可以属于多个组
一个文件或者目录必须属于一个,并且只能属于一个组
在文件或者目录看来,linux系统中所有的用户分为三类
所有者:默认情况下,文件或者目录的所有者都是创建者,可以修改
同组用户:跟文件或者目录属于同一个组的用户
其他组用户:既不是文件或者目录的所有者,也不是同组用户
2、文件或者目录的三种权限
在linux中,任何文件或者目录都有三种权限:
对于文件:
- 读(Read):可以读取、查看文件的内容,可以执行的命令比如:cat,more,less,head,tail等
- 写(Write):可以修改文件的内容,比如:vi或者vim等
- 执行(Execute):如果文件是可执行文件(.sh),可以直接运行
对于目录
- 读:可以读取、查看目录下边的内容,比如:ls等
- 写:可以修改目录中的内容,创建子目录、删除目录、创建文件、删除文件、重命名或者目录
- 执行:能否进入该目录,比如:cd
文件或者目录的权限控制
在linux中,任何一个文件或者目录都有三部分权限:所有者权限、同组用户权限、其他组用户权限
第一部分权限:所有者权限,文件或者目录的所有者对文件所拥有的的权限,使用r、w、x分别表示读、写、执行的权限 rwx rw- r-x —
第二部分权限:同组用户权限,文件或者目录的同组用户对改文件所拥有的权限,使用r、w、x分别表示读、写、执行的权限 rwx rw- r-x —
第三部分权限:其他组用户权限
chmod u-w t1.text 去掉t1.text所有者的写的权限
chmod g+w t1.text 加上t1.text同组用户的写权限
chmod o-r t1.text 去掉t1.text其他组用户写权限
创建或者目录时,会有默认权限 -rw-rw-r– 会对所有者和同组用户有读和写的权限
查看文件或者目录的权限
ls -aul
修改文件或者目录的权限
用r、w、x分别表示读、写、执行的权限
用u、g、o、a分别表示给所有者、同组用户、其他组用户、所有用户修改权限
用+、-、=分别表示给指定的用户增加、减少、设置对应的权限
chmod g-w,o+w t1.text
chmod g=rwx t1.text
使用数字的方式修改文件或者目录的权限
每一个权限可以用一个数字来表示
r、w、x
4、2、1
2^2 2^1 2^0
每一个文件或者目录都有三部分权限,每一部分权限都可以用一组数据之和表示,三部分权限就是一组
rwx rwx rwx
7 7 7
chmod 777 t1.text
网络配置
在linux的配置文件:/etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=”static”
ONBOOT=”yes”
IPADDR=”” ip地址
GATEWAY=”” 网关
DNS=””
进程管理
线程:一个程序的线路
进程:一个程序的执行,一个进程占用一个端口
查看进程:ps ,只会显示应用进程
ps -e 显示所有进程
ps -ef 以全格式的形式显示所有进程
用于查看linux系统中一些软件或者引用是否处于启动状态
ps -ef |grep firewalld 查看防火墙
服务管理
服务:支持linux运行的一些必要程序,本质上也是进程,叫做守护进程
systemctl [start|stop|restart|reload、stataus(某个服务状态)、enable(设置)] 服务名称
systemctl status firewalld 查看防火墙状态
systemctl stop firewalld 关闭防火墙
systemctl start firewalld 开启防火墙
软件包管理
RPM包管理
一种linux的软件包打包和安装工具,他操作的软件包都是.rpm结尾
使用rpm:rpm命令
查看当前系统中已经安装的rpm软件包:rpm -qa|grep firefox
卸载rpm软件包:rpm -e firefox
安装rpm软件包:rpm -ivh xxx.rpm
cp firefox-xxx.rpm /opt 粘贴软件包到opt目录下
YUM包管理
是一种基于RPM的软件包管理工具,能够从指定服务器上自动下载RPM包并自动安装,可以自动处理软件包之间的依赖关系
查看当前系统中已经安装的RPM软件包:yum list installed|grep firefox
卸载rpm软件包:yum remove firefox.x86_64
安装rpm软件包:yum install firefox
安装jdk
找到jdk压缩包的位置
cd /home/baibai/opt
解压到opt文件夹
tar -zxvf jdk-8u311-linux-x64.tar.gz -C /opt
解压成功
配置环境变量的配置文件
vim /etc/profile
JAVA_HOME=/opt/jdk1.8.0_311
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/lib:.
export JAVA_HOME PATH CLASSPATH
配置文件生效
source profile
测试安装成功
java -version
安装mysql
查看是否安装了mariadb
mariadb数据库是mysql的分支,会和mysql有冲突
yum list installed | grep mariadb
卸载:yum-y remove
利用xtfp将mysql压缩包放到opt目录下
解压到目录/home/baibai/opt
tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz -C /opt
创建数据文件夹data
mkdir data
data文件夹是mysql用来存放数据的,数据库的表数据都放在data目录下
创建用来执行mysqld命令的Linux用户
创建mysql用户,用来执行mysql命令mysqld,此命令用来初始化mysql基础信息,可以使用其他用户
初始化mysql
使用mysql的mysqld命令初始化数据库的基本信息,切换到mysql-5.7.24/bin目录下执行
./mysqld –initialize –user=mysql –datadir=/opt/mysql-5.7.24/data –basedir=/opt/mysql-5.7.24
参数说明:
–initialize 初始化mysql时,创建一个mysql的root,随机生成密码,登录mysql使用
–user 执行mysqld命令的linux用户名
–datadir mysql数据文件的存放位置,目录位置参照本机的位置
–basedir mysql安装程序的目录,目录位置参照本机的位置
该命令执行后,会生成一个临时的mysql数据库root用户的密码
密码:LiT=alfnx4VR
启用安全功能
在服务器与客户机之间来回传输的所有数据进行加密。通过证书提供了身份验证机制,mysql命令程序 mysql_ssl_rsa_setup提供了开启安全数据加密的功能,生成数字证书
在mysql-5.7.24/bin目录下执行命令
./mysql_ssl_rsa_setup –datadir=/opt/mysql-5.7.24/data
修改mysql安装目录权限
mysql安装后,需要更改mysql-5.7.24整个文件夹目录权限,更改所属用户和组之前创建的mysql及其所在组
在mysql安装目录的上级(/opt)位置,执行命令chown
chown -R mysql:mysql /opt/mysql-5.7.24/
chmod 777 /opt/mysql-5.7.24/
启动mysql服务
启动mysql服务,mysql-5.7.24/bin目录下执行命令
./mysqld_safe & (&表示后台启动)
登录mysql
进入mysql-5.7.24/bin目录下执行命令
./mysql -uroot -p
修改root密码
执行sql语句 show databases; 第一次使用将会提示修改mysql的root用户密码:
show databases;
修改mysql的密码,命令语法:alter user ‘用户名‘@’主机域名或ip’ identified by ‘新密码’
例如:alter user ‘root‘@’localhost’ identified by ‘123456’;
授权远程访问
授权远程访问,在没有授权之前只能在本机访问msyql,远程授权就是让其他计算机通过网络访问mysql(这样远程客户端才能访问)。
授权命令:grant
语法:grant all privileges on . to root@’%’ identified by ‘yf123’;
参数:
其中*.* 的第一个表示所有数据库名,第二个表示所有的数据库表;
root@’%’ 中的root表示用户名,%表示ip地址,%也可以指定具体的ip地址,比如root@localhost,root@192.168.235.130等。
执行授权命令:grant all privileges on . to root@’%’ identified by ‘123456’;
更新权限信息,执行flush刷新权限: flush privileges;
关闭防火墙:systemctl stop firewalld
查看防火墙状态:systemctl status friewalld
安装tomcat
在tomcat官网上下载tomcat.gz压缩包
下载到/home/baibai/opt
解压到/opt目录下
tar -zxvf apache-tomcat-8.5.72.tar.gz -C /opt
启动tomcat
cd apache-tomcat-8.5.72/bins
./startup.sh
安装成功