linux简介
一种开源的、免费的操作系统
Linux注重安全性、稳定性、高并发处理能力,没有优异的可视化界面,大多用于企业服务器
linux的发行版本:linux在1991年发行,linux的内核程序,后来一些软件公司陆续推出不同的linux操作系统,Ubuntu(乌班图)、RedHat(红帽)、CentOS
Linux的目录结构
linux只有一个跟目录: /
bin目录 :系统的可执行文件,可以在任何目录下执行
usr ->bin目录:用户自己的可执行文件,可以在任何目录下执行
etc目录:存放配置文件,配置环境变量
home目录:每一个用户的根目录,用来保存用户私人的数据,默认情况下,目录名和自己的用户名相同。
opt目录:安装额外的软件,安装例如,jdk、tomcat、maven等软件就安装在这个目录中
Linux的远程操作
1.Xshell:linux的终端模拟软件,连接远程linux系统,创建会话:查看linux系统的ip地址,命令:ifconfig
2.Xftp:文件传输软件
创建会话连接远程linux,查看linux系统的ip地址命令:ifconfig
Linux命令
vi和vim:是Linux中的文本编辑器,用来在Linux中创建、查看或者编辑文本文件、就好像Windows中的记事本一样。
vi和vim的使用:
一般模式:用vi和vim命令打开文件,默认进入一般模式,一般模式只可以查看文件,无法编辑文件。
编辑模式:在一般模式下按i键或者a键,进入编辑模式,可以编辑内容,但不能保存内容,按ESC键,回到一般模式。
命令模式:在一般模式下,按shift+:,进入命令模式
输入:q!---不保存强制退出编辑器
wq---保存并且退出编辑器
q---只是退出编辑器
vi和vim 的快捷键:
复制当前行:一般模式下,yy复制光标所在行,p粘贴
复制当前行往下5行:一般模式下,按5 yy,复制光标所在往下5行
在文本中查找关键字:在命令行模式下,输入/关键字,回车,按n表示查找下一个
删除光标所在当前行:一般模式下,按dd
删除光标所在行往下5行:一般模式下,按5dd
撤销上次编辑内容(撤回):一般模式下,按u
显示文件的行号:命令模式下,输入set nu;取消行号set nonu
mkdir:创建目录,例,mkdir text,创建text目录
Linux中用户管理
增加用户命令:useradd 用户名,还不能使用该用户,还的设置密码,设置密码后才可以使用
设置密码:passwd 密码
创建一个用户,在/home目录下创建一个用户的根目录,目录名默认跟用户名一致;
在linux中任何一个用户都至少属于一个组,新建用户时如果不指定组,则会新建一个组,组名跟用户名相同,并且把该用户添加到该组中;
useradd -d /home/ww wangwu:创建用户时,指定用户的根目录
删除用户: userdel 用户名,只是删除用户,不删除用户在home目录下的用户根目录
删除用户同时删除用户的根目录:userdel -r 用户名
查看用户信息:id 用户名,例,查看lisi用户,id lisi
Linux中的组管理
新建用户时如果不指定组,则会新建一个组,组名跟用户名相同,并且把该用户添加到该组中。
每个用户至少属于一个组,不能独立存在,也可以同时存在多个组。
新建组(创建组):groupadd 组名
删除组:groupdel 组名
把用户添加到组中:gpasswd -a 用户名 组名
把用户从组中删除:gpasswd -d 用户名 组名
添加用户(新建用户)指定所属组(主组):useradd -g 组名 用户名
Linux中的系统操作命令
关机(立即关机):shutdown now
定时关机:shutdown -h 时间
立即重启:shutdown -r now
重启:reboot
Linux中的文件和目录操作命令
查看当前所在目录:pwd
查看目录下的内容:ls
查看指定目录下的内容:ls /home/lisi
ls -l /home/lisi:以列表形式显示
ls -a /home/lisi:显示指定目录内容,包括隐藏目录和文件
ls -al /home/lisi:显示指定目录内容,包括隐藏目录和文件,并以列形式显示
切换目录:cd 目录名
创建目录:mkdir 目录名
创建多级目录:mkdir -p 目录名,例,mkdir -p /pot/test1/test2/test3,一次创建3个目录
删除一个空目录:rmdir 目录名
创建一个或多个文件:touch 文件名 文件名
复制文件或目录:cp -r test1 test2 拷贝的目录
删除文件:rm 文件名
删除目录以及目录里的文件:rm -rf 目录名
剪切目录或文件:mv 剪切到哪 剪切目标,例,mv ../opt/lisi test1.txt
文件重命名:mv 文件原名 文件新名
命令的结果输出到文件中:ls > tss.txt,把ls命令输出的结果放在tss.txt文件中
拷贝a文件所有内容到b文件中:cat a.txt > b.txt
把一个查看命令结果追加输出到指定的文件中:查看命令 >> 文件名
Linux中关于日期和时间的操作
查看系统的当前时间和日期:date
查看系统当前年份:date +%Y
查看系统当前月份:date +%m
查看系统当前日期:date +%d
设置(修改)系统当前时间日期:date -s '2022-6-8 17:23:30'
Linux系统中搜索文件或者目录的命令
find 搜索范围 搜索标准 搜索关键字
搜索当前目录下所有txt文件:find *.txt
搜索指定目录下txt文件:find /etc/lisi *.txt
搜索指定目录下小于5k文件:find /ect/lisi -size -5k
搜索指定目录下大于5k文件:find /ect/lisi -size +5k
搜索ect目录下所有者是sili的文件和目录:find /ect -user lisi
locate :在整棵目录树中搜索文件或者目录,都是根据名称搜索,效率高
用法:
updatedb
locate 关键字
搜索过滤命令:在一个搜索命令的结果中进行按名称进一步过滤:
搜索命令 | grep [选项] 过滤条件
查看命令 | grep [选项] 过滤条件
find /ect *.txt | grep www,搜索ect目录下,所有名称包括www的.txt文件
Linux中压缩和解压缩命令
压缩和解压缩单个(一个)文件:zip 文件名,生成一个.gz的压缩包,并且会删除原来的文件
gunzip 文件名.gz:解压缩,并且会删除原来的压缩包
压缩和解压缩多个文件和目录:
zip 目标压缩包名称 文件或目录,例,zip fff.zip test.txt test1
解压缩unzip 压缩包名.zip -d 解压目录,例,unzip fff.zip -d test33,把fff.zip压缩包解压到test33目录里
压缩和解压缩多个文件和目录:(常用)
tar [选项] sss.tar.gz [打包内容文件或目录]
选项说明:
-c:产生.tar.gz打包文件
-v:显示详细信息
-f:指定压缩后的文件
-z:打包同时压缩
-x:解压.tat.gz文件
-C:指定解压到哪个目录
用法:
压缩:tar -zcvf xxx.tar.gz 文件名 目录
解压缩:tar -zxvf xxx.tar.gz -C 目录
文件或目录与组
文件或目录与组基本介绍:
Linux中每一个用户都至少属于一个组,用户不能独立组存在,一个用户可以属于多个组。
Linux中每一个文件或目录也必须属于一个组,而且只能属于一个组,默认情况下,文件所有者所属的主组就是文件所属的组。
文件或目录看来,Linux系统中所有的用户分为三类:
1.所有者:默认情况下,文件或目录的所有者都是创建者,可以修改
2.同组用户:跟文件或目录属于同一个组的用户
3.其他组用户:既不是文件或目录的所有者,也不是同组用户
查看文件或目录的所有者和所在组:ls -l,例,查看testDir目录下的文件或目录,如下图
修改文件的所有者:chown 新的所有者 文件名
修改文件的所有者和所属组: chown 新的所有者:新的组 文件名
修改test2文件所属者为lisi,所属组为dev,如下图
Linux文件权限管理
在一个文件或者目录看来,linux系统中所有的用户可以分为三类:
所有者
同组用户
其他组用户
任何文件或者目录的三种权限:
读(Read)-r、写(Write)-w、执行(Execute)-x
对于文件而言:读:可以查看文件内容,比如cat、more等
写:可以修改文件,比如vim
执行:如果文件是.sh可执行文件,可以直接运行
对于目录而言:读:可以查看目录下的内容,比如ls命令
写:可以修改目录中的内容,比如,创建子目录,删除目录,删除文件,重名文件
执行:可以进入该目录,比如cd命令
查看文件或目录的权限命令:ll
-rw-r--r--表示:该文件是一个普通文件,文件所有者具有读写权限,同组用户具有读权限,其他组用户具有读权限
-rw-r--r--一共10个符号,第一个符号-:表示普通文件
d:表示一个目录
l:表示该文件是一个符号链接文件
第2到4表示:所有者权限
第5到7表示:同组用户权限
第8到10表示:其他组用户权限
修改文件或目录权限:
系统用4中字符表示不同的用户
u:user所有者
g:group同组用户
o:others其他组用户
a:all以上三种用户
操作符号:
+:添加权限
-:减去权限
=:赋予权限,取消原来的权限
修改权限命令:
chmod 权限 文件或目录
例,chmod g+rwx ddd.txt 给ddd.txt文件同组用户添加读写执行权限
例,chmod g-w ddd.txt 给ddd.txt文件同组用户减去写权限
例,chmod o=rwx ddd.txt 给ddd.txt文件其他用户赋予读写执行权限
例,chmod g-w,o+w ddd.txt 给ddd.txt文件同组用户减去写权限,给其他组用户添加写权限
以数字表示修改权限
数字表示法指将读取r,写入w和执行x,分别以4、2、1来表示,没权限的部分就表示为0,然后再把授予的权限相加而成,如下
原始权限 转换为数字 数字表示法
rwxrwxr-x (421)(421)(401) 775
rwxr-xr-x (421)(401)(401) 755
rwxr--r-- (421)(400)(400) 744
linux中的网络配置管理
在linux中的网络配置文件:
打开/etc/sysconfig/network-scripts/ifcfg-ens33文件
修改以下内容
BOOTPROTO="static"
ONBOOT="yes"
IP地址:IPADDR=192.168.92.130
网关:GATEWAY=192.168.92.2
dns:DNS=192.169.92.2
重启linux: reboot
Linux中的进程管理
进程:一个程序的执行,一个进程占用一个端口
线程:一个程序的线路
查看正在运行的进程:ps
显示所有的进程:ps -e
以全格式的形式显示所有进程:ps -ef
Linux中服务管理
服务是支持Linux运行的一些必要程序,本质上也是进程,叫守护进程。
操作服务命令:systemcrl [start、stop、restart重新启动、reload重新加载、status状态、enable开机启动] 服务名称
例,查看防火墙状态:systemctl status firewalld
例,关闭防火墙:systemctl stop firewalls
例,开启防火墙:systemctl start firewalls
例,设置防火墙开机启动:systemctl enable firewalld
Linux中软件包的管理,软件安装包
RPM:一种Linux的软件包的打包和安装工具,它操作的软件包都是.rpm结尾
缺点:安装rpm软件如果有依赖,需要先安装该软件的依赖
使用rpm:
查看当前系统中已经安装的rpm软件包:rpm -qa
卸载rpm软件包:rpm -e 卸载的软件名
安装rpm软件包:rpm -ivh 安装的软件名.rpm
YUM包管理:是一种基于RPM的软件包管理工具,它能够从指定服务器上自动现在RPM包并且自动安装,可以自动处理软件包之间的依赖。(有外网推荐使用)
查看系统当前安装的rpm软件包:yum list installed
卸载火狐软件:yum remove firefox.x86_64
安装火狐rpm软件:yum install firefox
Linux系统安装JDk
第一步:先将jdk软件通过Xftp 上传到Linux系统/opt目录下
第二步:解压到/opt目录 tar -zxvf 文件名 -C /opt
第三步:配置环境变量,vim /etc/profile
添加下图红框内容
第四步:从新加载profile文件,让刚才配置内容生效
第五步:查看jdk是否生效
Linux安装tomcat
第一步:先将tomcat软件通过Xftp 上传到Linux系统/opt目录下
第二步:解压到/opt目录 tar -zxvf 文件名 -C /opt
第三步:运行tomcat 在tomcat目录下bin目录下运行startup.sh
./startup.sh
关闭tomcat
./shutdown.sh
安装MySQL
第一步:查看是否已经安装mariadb数据库,如果安装,卸载掉
查看命令:yum list installed|grep mariadb
卸载命令:yum -y remove mariadb
第二步:将mysql软件通过Xftp 上传到Linux系统/opt目录下
第三步:解压
第四步:修改名字
第五步:创建数据文件data
data文件夹是musql用来存放数据文件的,数据库的表数据都放在data目录,默认没有data目录,可以手工创建data目录,在mysql-5.7.18文件夹目录下创建一个data文件夹
第六步:创建用来执行mysql命令的Linux用户
创建mysql用户,用来执行Mysql的命令mysqld,此命令用来初始化mysql基础信息,可以使用其他用户,例如叫做mydb,但不推荐
第七步:初始化mysql
使用mysql的mysqld命令初始化数据库的基本信息,切换到mysql-5.7.18/bin目录下执行
命令:./mysqld --initialize --user=mysql --datadir=/opt/mysql-5.7.18/data --basedir=/opt/mysql-5.7.18
--initialize :初始化mysql,创建mysql的root,随机生成密码,记住密码,登陆msyql使用
--user:执行msyqld命令的linux用户名
--datadir:mysql数据文件的存放位置,目录位置参照本机的设置
--basedir:msyql安装程序目录,目录位置参照本机的设置
执行以上命令,会生成一个临时的mysql数据库root用户密码,请先拷贝记住,后续第一次登录mysql需要使用
第八步:启用安全功能
在服务器与客户机之间来回传输的所有数据进行加密,通过证书提供了身份验证机制,mysql命令程序 mysql_ssl_rsa_setup提供 开启数据加密功能,生成数字证书。
在mysql-5.7.18/bin目录下执行命令:./mysql_ssl_rsa_setup --datadir=/opt/mysql-5.7.18/data
第九步:修改mysql安装目录权限
mysql安装后,需要改mysql-5.7.18整个文件夹目录权限,更改所属的用户和组之前创建的mysql用户及其所在组,在mysql安装目录的上级(/opt)位置,执行命令chown
chown -R mysql:mysql /opt/mysql-5.7.18
chmod 777 /opt/mysql-5.7.18
第十步:启动mysql
启动mysql服务,mysql-5.7.18/bin目录下执行:./mysqld_safe &(&符号表示后台启动)如下图
不加&表示前台启动,会有客户端,不能在输入linux命令,只能输入sql命令
退出客户端:exit
确认是否启动mysql,查看进程,使用ps -ef |grep mysql ,如上图
第十一步:客户端登录mysql
登入录进mysql,mysql-5.7.18/bin目录下执行命令:./mysql -uroot -p
-u表示使用root用户登录系统,使用第7步生成的密码。
-p表示使用密码登录
第十二步:修改root密码
第七步的root用户密码是临时密码,要修改才能使用。
执行sql语句 show databases; 第一次使用将会提示修改mysql的root用户密码:
修改mysql的密码,命令语法:alter user '用户名'@'主机域名或ip' identified by '新密码'
例如:alter user 'root'@'localhost' identified by '123';
第十三步:授权远程访问
授权远程访问,在没有授权之前只能在本机访问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 '123';
更新权限信息,执行flush刷新权限: flush privileges;
关闭防火墙:systemctl stop firewalld
远程连接
第十四步:关闭mysql服务
mysql-5.7.18/bin目录下执行:./mysqladmin -uroot -p shutdown输入密码关闭
查看mysql进程,已经没有mysqld_safe
第十五步:修改数据库编码
查看数据库编码:show variables where Variable_name like '%char%';
修改mysql的字符集:在mysql客户端执行如下命令
set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_database=utf8;
set character_set_results=utf8;
set character_set_server=utf8;
set character_set_system=utf8;
set collation_connection=utf8;
set collation_database=utf8;
set collation_server=utf8;
**************************
直接关闭防火墙来达到从浏览器访问linux系统中的内容是很危险的,所以一般采用开放指定端口
firewall-cmd --zone=public --list-ports
firewall-cmd --zone=public --add-port=3306/tcp --permanent
systemctl start firewalld.service
systemctl stop firewalld.service关闭防火墙