操作系统:按照在计算机硬件,能够管理计算机硬件和软件的
优点:注重安全性(用户权限)、稳定(软件允许稳定)、高并发处理好(同时来很多请求操作Linux)、开源
缺点:没有好的可视化界面,用起来不方便
- root : 该目录为系统管理员目录,root是具有超级权限的用户。
- bin ->usr/bin : 存放系统预装的可执行程序,这里存放的可执行文件可以在系统的任何目录下执行。
- usr是linux的系统资源目录,里边存放的都是一些系统可执行文件或者系统以来的一些文件库。
- usr/local/bin:存放用户自己的可执行文件,同样这里存放的可执行文件可以在系统的任何目录下执行。
- lib->usr/lib: 这个目录存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库。
- boot : 这个目录存放启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
- dev: dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,Linux中的设备也是以文件的形式存在。
- etc: 这个目录存放所有的系统管理所需要的配置文件。
- home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名以用户的账号命名,叫作用户的根目录;用户登录以后,默认打开自己的根目录。
- var : 这个目录存放着在不断扩充着的东西,我们习惯将那些经常被修改的文件存放在该目录下,比如运行的各种日志文件。
- mnt : 系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容
- opt: 这是给linux额外安装软件所存放的目录。比如你安装一个Oracle数据库则就可以放到这个目录下,默认为空。
- tmp: 这个目录是用来存放一些临时文件的。
Linux中的编辑器:vi、vim
![]()
vim 文件.格式:直接创建文件,进入
一般模式::可以使用:『上下左右』按键来移动光标
『删除字符』或『删除整行』快捷键来处理档案内容
『复制、贴上』快捷键来处理你的文件数据
编辑模式:按下i, I, o, O, a, A, r, R等任何一个字母之后才会进入编辑模式, 一般来说按i即可 //只能编辑,不能保存
命令行模式:可以提供你相关指令,完成读取、存盘、替换、离开vim 、显示行号等的动作则是在此模式中达成的
常用快捷键:
一般模式:拷贝当前行(yy) , 拷贝当前行向下的5行(5yy),并粘贴(p)
删除当前行(dd) , 删除当前行向下的5行(5dd)
到达文档的最首行[gg]和最末行[G]
撤销上次编辑的内容(u)
光标移动到第10行:输入10,shift+g,回车命令模式下:在文件中查找某个单词---> /单词+回车 、 输入(n) 就是查找下一个
设置文件的行号(: set nu),取消文件的行号 (:set nonu)
用户管理 //Linux对安全性要求高,不同的用户根据不同权限可以见到的文件夹是不同的
使用Linux必须使用账号,使用系统管理员账号创建账号
root是安装系统时默认创建的系统管理员账号添加用户:
创建账号:useradd [选项] 用户名
useradd 用户名 //创建一个该名的账号,创建一个该名的组,把该用户分配到改组里,在/home下创建该名的目录,使用该用户的个人信息以后都存在该目录
useradd -d /目录/自定义用户的主目录 用户名 // 创建一个用户,在系统根目录下自定义目录作为用户根目录 //不知道-d则home下同名目录
useradd -g 组名 用户名 //添加用户时,分配组
给用户设置秘密:passwd 用户名
删除用户:userdel[选项] 用户名
userdel 用户名 //删除该用户,保留该护目的根目录
userdel -r 用户名 //删除该用户,删除该护目的根目录
查询用户信息:id 用户名
切换用户:su 用户名 从高权限用户切换到低权限用户时,不需要输密码;否则,需要输密码。 //exit命令可以回到原来的用户
组和用户管理
Linux中的组类似于角色的概念,把同一共性的用户放到一个组里,方便对用户统一管理 //组是为权限做准备的
每一个用户都至少属于一个组,创建用户时如果不指定组,会默认创建一个跟用户名相同的组,并且把新创建的用户分配到组中
root用户默认属于root组。
添加组:groupadd 组名
删除组:groupdel 组名
组和用户管理:把用户添加到组:useradd –g 组名 用户名
把用户从组删除:gpasswd -d 用户名 组名
组和文件管理
每个文件、目录都属于一个组(只能属于1个),文件、目录通过组来控制哪些用户可以对它进行哪些操作-------即文件、目录的访问权限
在文件或者目录看来,linux系统中所有的用户分为三类:
所有者:默认情况下,文件或者目录的所有者都是创建者,可以修改
同组用户:跟文件或者目录属于同一个组的用户
其它组用户:既不是文件或者目录的所有者,也不是同组用户修改文件或者目录的所有者:chown 新的所有者 文件或者目录
chown 新的所有者:新的组 文件或者目录 //同时修改新的组
chown -R 新的所有者:新的组 文件或者目录 //-R递归更改所有者和组
修改文件或者目录的所在组:chgrp 新的组 文件名或者目录名
chgrp -R 新的组 文件名或者目录名 //-R递归更改组Linux中文件、目录的权限管理
文件或者目录的三种权限:读(Read)、写(Write)、执行(Execute)
对于文件而言:
读:可以读取、查看文件的内容, 比如:cat、more、less、head、tail等。
写:可以修改文件的内容,比如:vi或者vim等
执行:如果该文件是可执行文件(.sh),可以直接运行,比如:./xxx.sh。
对于目录而言:
读:可以读取、查看目录下边的内容,比如:ls等
写:可以修改目录中的内容,创建子目录、删除子目录、创建文件、删除文件、重命名文件或者目录
执行:可以进入该目录, 比如:cd等。在linux中,任何一个文件或者目录都有三部分权限:所有者权限、同组用户权限、其它组用户权限。
第一部分权限:所有者权限,文件或者目录的所有者对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。
第二部分权限:同组用户权限,文件或者目录的同组用户对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。
第三部分权限:其它组用户权限,文件或者目录的其它组用户对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。
//比如:rwx:拥有读写执行的权限,r-x:拥有读和执行的权限,r--:只拥有读的权限,---:没有任何权限。
查看文件或者目录的权限:ls -aul1d目录-文件|234所有者|567同组用户|8910其他组
修改文件或者目录的权限:chmod
用r、w、x分辨表示读、写、执行的权限,
用u、g、o、a分别表示给所有者、同组用户、其它组用户、所有用户修改权限
用+、-、=分别表示给指定的用户增加、减少、设置对应的权限
chmod g-w,o+w t5.txt //,逗号分隔
chmod g=rwx t5.txt
chmod a-r t5.txt
使用数字的方式修改文件或者目录的权限:r 4、w 2、x 1 //例如: chmod 777 t5.txt
控制Linux系统
shutdown now: 立刻进行关机
shudown -h 1: 1小时后会关机了
shutdown –r now: 现在重新启动计算机
Linux帮助命令: //如果有不会的命令,首先上网查,没网时再使用帮助命令
获得系统手册上的帮助信息:man 命令名 //按回车翻一行,按空格翻一页,按q退出
获得命令开发时的注释帮助信息(内置帮助信息):help 命令名
文件和目录命令 目录:
绝对目录: 1)/根目录开始
2)~:在Linux中是个绝对路径,代表当前用户的根目录//注意root用户的根目录不在home,是/root
相对目录: 1)直接下一级目录
2)..:是个相对目录,表示当前目录的上一级目录
3).:是个相对目录,表示当前目录
当前目录路径:pwd
查看指定目录下子目录和文件:ls [选项] [指定目录]
选项:-a :显示当前目录所有的文件和目录,包括隐藏的。 -l :以列表的方式显示信息 //组合:-al
切换目录:cd 目录
创建目录:mkdir 目录 只能创建一级目录
mkdir -p 目录 创建多级目录,即创建xx/xxx/xx/xx
删除空目录:rmdir 目录
创建文件:vi或vim 文件名
touch 文件名列表 创建多个文件 //列表用空格隔开
复制文件/目录:cp 源 目标目录
cp -r 源 目标目录 // -r:复制目录时,将子目录文件递归复制复制过去
删除文件/目录:rm 文件 提示删除
rm -f 文件 强制删除 //-f强制
rm -r 目录 递归删除目录 //还可以递归强制删除 -rf
移动文件/目录:mv 源 目标目录
mv 文件 文件 相当于文件重命名
查看文件内容:cat 文件
cat -n t4.txt 显示行号
分页查看文件文件内容:more 文件名 //一次性加载文件所有内容到内存,分页显示 //按回车翻一行、按空格翻一页
分页查看文件文件内容:less 文件名 //分页加载文件所有内容到内存,分页显示 //按回车翻一行、按空格翻一页,按q退出查看
查看文件的头10行:head [选项] 文件名
head -n 5 t4.txt //查看头5行
查看文件的后10行:tail [选项] 文件名
tail -n 5 t4.txt //查看后5行
输出系统变量或常量的值到命令行终端:echo 常量值
echo $变量
把前一个查看命令的结果输出到指定文件中:查看命令 > 文件 //会覆盖文件原本内容
cat 文件 > 文件 相当于文件内容复制
linux中关于日期和时间的操作命令:
1)、查看或者设置系统的日期或者时间:date
date 查看系统当前的完整的日期和时间
date +%Y 系统当前的年份
date +%m 系统当前的月份
date +%d 系统当前的日期date '+%Y-%m-%d %H:%M:%S' 按yyyy-MM-dd HH:mm:ss格式显示
date -S '2020-10-20 10:20:30' 设置当前的系统时间
2)、查看系统日历:cal
cal:查看当前月份的日历
cal 2020:查看指定年份的日历搜索文件或者目录:find 关键字 //默认搜索当前目录目录下的
find *.txt 搜索当前目录下,所有的.txt文件
find *e* 搜索当前目录下,所有名称中包含e的那些文件或者目录
find [搜索范围][搜索标准] 关键字
搜索标准:按什么搜,默认-name按名称搜索、-size按文件大小搜索、-user按文件所有者搜索
find 指定目录 关键字 //搜索指定目录
find /etc -size -5k 搜索/etc目录下所有小于5k的文件 // -小于 +大于
find /etc -user zhangsan 搜索/etc目录下所有的所有者是zhangsan的文件和目录
搜索文件或目录:locate 关键字 //按Linux维护的目录树搜索,所以只能搜名字,搜的是系统内的
//搜索不能及时反应出来,因为创建目录文件时目录树不能及时更新,需先手动更新目录树 updatedb
前一个搜索/查看命令的结果按名称进一步过滤:搜索命令 |grep [选项] 过滤条件
查看命令 |grep [选项] 过滤条件
find *.txt|grep new 搜索当前目录下,所有名称包含new的.txt文件
find /etc -size -5k|grep firefox
cat t1.txt|grep beijing
cat t1.txt|grep -ni beijing //-n显示行号 -i忽略大小写
ls -al|grep new
压缩解压命令:
单个文件----------------------压缩:gzip 文件 //生成一个.gz的压缩包,并且会把原来的文件删除
----------------------解压:gunzip 文件 //把.gz的压缩包解压,并且会把原来的文件删除
多个文件/目录------压缩、打包:zip 目标压缩包 文件或者目录列表 // zip test.zip ret.txt t1.txt test2 //目标压缩包名称通常使用.zip压缩包
---------------解压: unzip 压缩包 -d 解压目录 //-d指定解压到的目录多个文件/目录: 选项: -c打包、压缩 -x解压 -f:指定压缩后的文件名 -z:打包同时压缩 -v:显示详细信息 -C解压到的目录
-----压缩、打包:tar [选项] 目标压缩包名称(xxx.tar.gz) 文件或者目录列表 tar -zcvf mytar.tar.gz mytest.zip ret.txt t1.txt test2
----------------解压:tar [选项] 压缩包(xxx.tar.gz) -C 解压目录名 tar -zxvf mytar.tar.gz -C /opt/testDir/test5
网络管理
在linux的配置文件: vi /etc/sysconfig/network-scripts/ifcfg-ens33 //ifcfg-ens33为当初设置为网络 //权限root
BOOTPROTO="static" ONBOOT="yes" IPADDR=192.168.11.128 //IP地址 GATEWAY=192.168.11.2 //网关 DNS1=192.168.11.2 //DNS
进程管理线程:一个程序的线路
进程:一个程序的执行,一个进程占用一个端口。
查看正在运行的进程:ps //只会显示应用进程
ps -e //显示所有进程
ps -ef //以全格式的形式显示所有进程 //用于查看linux系统中某一些软件或者应用是否处于启动状态
ps -ef|grep 关键字 //配合过滤使用
关闭进程:kill -9 PID号 //使用ps命令查看进程的PID号
服务管理
服务本质就是进程,是Linux系统运行所必要的程序,也叫守护进程 //守护进程通常默默地运行在后台,为应用程序提供必要支撑,比如sshd、防火墙等。
操作服务:systemctl [start|stop|restart|reload|status|enable] 服务名称
启动|停止|重启|重新加载|查看|设置
linux中软件包的管理:管理软件安装包
RPM包管理:RPM是一种LInux的软件包的打包和安装工具,它操作的软件包都是.rpm结尾。
查看当前系统中已经安装的rpm软件包:rpm -qa|grep 关键字 、 rpm -qa
卸载rpm软件包:rpm -e 软件包 //软件包可以写一部分名,系统会进行匹配
安装rpm包:rpm -ivh xxx.rpm //在当前目录安装,所以需要把软件包拷贝到opt目录再安装
YUM包管理:是一种基于RPM的软件包管理工具,它能够从指定服务器上自动下载RPM包并且自动安装,可以自动处理软件包之间的依赖关系。
查看当前系统中已经安装的rpm软件包:yum list installed|grep 关键字 、 yum list installed
卸载rpm软件包:yum remove 软件包
安装rpm包:yum install 软件包关键字 //注意要在opt目录下安装,不需要电脑上有软件包,会自动在互联网服务器下载软件包安装搭建JavaEE运行环境
- 安装JDK
安装Tomcat
把Linux版本Tomcat安装包的压缩包上传到Linux服务器,解压到opt目录 //同上,也是免安装的
启动startup.sh 文件,开启Tomcat。可以看进程看看有没有启动 // ./startup.sh
从其它机器上访问需要关闭linux的防火墙。 //systemctl stop firewall
访问: Linux主机名:端口
安装MySQL
查看是否已经安装了mariadb: yum list installed | grep mariadb
(检查linux是否安装了mariadb数据库,mariadb数据库是mysql的分支。是免费开源的。mariadb和msyql会有冲突。首先要检查)
若安装了mariadb, 卸载掉: yum –y remove xxxx把Linux版本MySQL安装包的压缩包上传到Linux服务器,解压到opt目录 //免安装
创建用来执行mysqld命令的Linux用户
(创建mysql用户,用来执行MySQL的命令mysqld ,此命令用来初始化msyql基础信息。可以使用其他用户,例如叫做 mydb.等,但不推荐。)初始化mysql
使用mysql的 mysqld 命令初始化数据库的基本信息。切换到mysql-8.0.28/bin目录下执行。
命令:./mysqld --initialize --user=mysql --datadir=/opt/mysql-8.0.28/data --basedir=/opt/mysql-8.0.28
参数说明:--initialize 初始化mysql,创建mysql的root, 随机生成密码。记住密码,登录msyql使用。
--user执行msyqld 命令的linux用户名
--datadir : mysql数据文件的存放位置,目录位置参照本机的设置。
--basedir : msyql安装程序的目录,目录位置参照本机的设置。
该命令执行后,会生成一个临时的mysql数据库root用户的密码,请先拷贝出来记住,后续第一次登录mysql需要使用 )j=!HaLh25R/启用安全功能在服务器与客户机之间来回传输的所有数据进行加密。
通过证书提供了身份验证机制,mysql命令程序mysql_ssl_rsa_setup提供了开启数据加密功能,生成数字证书。
命令:./mysql_ssl_rsa_setup --datadir=/opt/mysql-8.0.28/data //切换到mysql-8.0.28/bin目录下执行。
data目录下出现的文件就是安全证书
- 修改mysql安装目录权限:mysql安装后,需要更改mysql-8.0.28整个文件夹目录权限,更改所属的用户和组为之前创建的mysql用户及其所在组。
在mysql安装目录的上级(/opt)位置,执行命令chown .
chown -R mysql:mysql /opt/mysql-8.0.28/
给所有用户授权:chmod 777 /opt/mysql-8.0.28/- 启动MySQL服务:bin目录下的命令 ./mysqld_safe & (其中&符号表示后台启动),启动后回车就可以
客户端登录mysql:bin目录下的命令 ./mysql -uroot -p 输入第5步给的密码
修改root密码:第5步root用户密码是临时密码,要修改才能使用。
命令:alter user '用户名'@'主机域名或ip' identified by '新密码';授权远程访问:在没有授权之前只能在本机访问msyql,远程授权就是让其他计算机通过网络访问mysql(这样远程客户端才能访问)。
语法:grant all privileges on *.* to root@'%' identified by 'yf123';
参数: 其中*.* 的第一个*表示所有数据库名,第二个*表示所有的数据库表
root@'%' 中的root表示用户名,%表示ip地址,%也可以指定具体的ip地址,比如root@localhost,[email protected].235.130等。由于 MySQL8.0 以上将创建账户和赋予权限分开了,需要用不同的语句创建账号,赋予远程权限需要2步:先进入data下的mysql数据库
在user表中创建账号 create user '账号名'@'%' identified by '密码';
//若是创建root,表中已有,更新其服务地址即可 update user set host = '%' where user = 'root';给创建好的账号赋予远程权限 grant all privileges on *.* to '用户名'@'%';
刷新数据库 flush privileges;
远程连接数据库
- 关闭MySQL服务:bin目录下的命令 ./mysqladmin -uroot -p shutdown输入密码关闭