linux


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

解压成功

image-20211104224905969

配置环境变量的配置文件

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

image-20211104231055560

安装mysql

查看是否安装了mariadb

mariadb数据库是mysql的分支,会和mysql有冲突

yum list installed | grep mariadb

卸载:yum-y remove

image-20211105092449236

利用xtfp将mysql压缩包放到opt目录下

解压到目录/home/baibai/opt

tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz -C /opt

image-20211105195121935

创建数据文件夹data

mkdir data

data文件夹是mysql用来存放数据的,数据库的表数据都放在data目录下

创建用来执行mysqld命令的Linux用户

创建mysql用户,用来执行mysql命令mysqld,此命令用来初始化mysql基础信息,可以使用其他用户

image-20211105195912059

初始化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用户的密码

image-20211105225320665

密码:LiT=alfnx4VR

启用安全功能

在服务器与客户机之间来回传输的所有数据进行加密。通过证书提供了身份验证机制,mysql命令程序 mysql_ssl_rsa_setup提供了开启安全数据加密的功能,生成数字证书

在mysql-5.7.24/bin目录下执行命令

./mysql_ssl_rsa_setup –datadir=/opt/mysql-5.7.24/data

image-20211105230340038

修改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/

image-20211105231516317

启动mysql服务

启动mysql服务,mysql-5.7.24/bin目录下执行命令

./mysqld_safe & (&表示后台启动)

image-20211105232341888

登录mysql

进入mysql-5.7.24/bin目录下执行命令

./mysql -uroot -p

image-20211105233803925

修改root密码

执行sql语句 show databases; 第一次使用将会提示修改mysql的root用户密码:

show databases;

修改mysql的密码,命令语法:alter user ‘用户名‘@’主机域名或ip’ identified by ‘新密码’

例如:alter user ‘root‘@’localhost’ identified by ‘123456’;

image-20211105234220776

授权远程访问

授权远程访问,在没有授权之前只能在本机访问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;

image-20211105234654174

关闭防火墙:systemctl stop firewalld

查看防火墙状态:systemctl status friewalld

image-20211105235248927

安装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

image-20211105090330688

安装成功

image-20211105090824019


Author: baiwenhui
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source baiwenhui !
  TOC