Linux
Linux主要目录速查表
/:根目录,一般根目录下只存放目录,在 linux 下有且只有一个根目录,所有的东西都是从这里开始。当在终端里输入 /home,其实是在告诉电脑,先从 /(根目录)开始,再进入到 home 目录
/bin、/usr/bin:可执行二进制文件的目录,如常用的命令 ls、tar、mv、cat 等
/boot:放置 linux 系统启动时用到的一些文件,如 linux 的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub
/dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt
/etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有
/etc/inittab
/etc/fstab
/etc/init.d
/etc/X11
/etc/sysconfig
/etc/xinetd.d
/home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下
~ 表示当前用户的家目录
~edu 表示用户 edu 的家目录
/lib、/usr/lib、/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助
/lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下
/mnt: /media:光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载
/opt:给主机额外安装软件所摆放的目录
/proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的文件有:/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等
/root:系统管理员root的家目录
/sbin、/usr/sbin、/usr/local/sbin:放置系统管理员使用的可执行命令,如 fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root 使用的命令,一般用户只能"查看"而不能设置和使用
/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
/srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内
/usr:应用程序存放目录
/usr/bin:存放应用程序
/usr/share:存放共享数据
/usr/lib:存放不能直接运行的,却是许多程序运行所必需的一些函数库文件
/usr/local:存放软件升级包
/usr/share/doc:系统说明文件存放目录
/usr/share/man:程序说明文件存放目录
/var:放置系统执行过程中经常变化的文件
/var/log:随时更改的日志文件
/var/spool/mail:邮件存放的目录
/var/run:程序或服务启动后,其 PID 存放在该目录下
Ubuntu操作系统是属于Linux操作系统中的一种。Ubuntu 没有盘符这个概念,只有一个根目录/
,所有文件都在它下面。
主要目录说明:/
:根目录。/bin
:可执行二进制文件的目录。/etc
:系统配置文件存放的目录。/home
:用户家目录。
文件
在Linux中文件没有扩展名,可以通过颜色区分,也可以通过命令来区分 file 文件名
。在Linux中文件分为:普通文件、目录文件、设备文件、管道文件、链接文件。
文件权限
读权限(r)、写权限(w)、可执行权限(x)。通常,Unix/Linux系统只允许文件的属主(所有者)或超级用户改变文件的读写权限。
d rwx rwx rwx
第1个字母代表文件的类型:“d” 代表文件夹、“-” 代表普通文件、“c” 代表硬件字符设备、“b” 代表硬件块设备、“s”表示管道文件、“l” 代表软链接文件。
后9个字母分别代表三组权限:文件所有者、用户者、其他用户拥有的权限。每一个用户都有它自身的读、写和执行权限。
常用Linux命令
ctrl + shift + = //放大终端窗口的字体显示
ctrl + - //缩小终端窗口的字体显示
ls //查看当前文件夹下的内容
pwd //查看当前所在文件夹
cd //切换文件夹
touch [文件名] //如果文件不存在,新建文件
mkdir [目录名] //创建目录,参数-p可递归创建目录
rm [文件名] //删除指定的文件名
rm -r [文件夹名] //删除指定的文件
clear //清屏
tree //以树状方式显示目录信息
Linux文件或者目录名称最长可以有256个字符,.
代表当前目录,..
代表上一级目录,以.
开头的文件为隐藏文件,需要用-a
参数才能显示。
ls -a //查看所有文件包含隐藏文件
ls -l //以列表形式查看文件,不包含隐藏文件
ls -lh //以列表形式查看文件,不包含隐藏文件 ,按照1024倍数显示{KB MB GB}
ls -all //以列表形式查看文件,包含隐藏文件 快捷方式【ll】
通配符:
【*】 匹配任意多个字符【0-256】 a* 一个以上字符 256以下
【?】 匹配任意一个字符 a? 两个字符
【[a-z]】 区间法 匹配a到z的所有字符 只能确定一个字符
【[abcde]】 穷举法 权值法 匹配abcde的所有字符 只能确定一个字符
重定向命令
//Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。
ls > test.txt //test.txt 如果不存在,则创建,存在则覆盖其内容。
>输出重定向会覆盖原来的内容,>>输出重定向则会追加到文件的尾部。
切换工作目录:
cd ~ 切换到当前用户的主目录
cd .. 切换到上级目录
cd - 切换到上一次目录
查看或者合并文件内容:
cat 文件名
cat a.txt b.txt > c.txt
建立链接文件:ln
//如果没有-s选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在。
//硬链接和拷贝(复制)区别:无论修改了哪一个链接之后的文件,两个文件都会改变,保持一致,但是拷贝不会。
ln 源文件 链接文件
//软链接文件不占磁盘空间 但是删除源文件会影响软链接文件
ln -s 源文件 链接文件
搜索文件里的文本内容:
//行首,搜寻以a开头的行
grep -n '^a' 1.txt
//行尾,搜寻以 ke 结束的行
grep -n 'ke$' 1.txt
//匹配 [] 里中一系列字符中的一个:搜寻匹配单词signal、signaL、Signal、SignaL的行
grep -n '[Ss]igna[Ll]' 1.txt
//匹配一个非换行符的字符:匹配 e 和 e 之间有任意一个字符,可以匹配 eee,eae,eve,但是不匹配 ee,eaae
grep -n 'e.e' 1.txt
计算文件行数或字数:
wc 文件名
-l 统计行数
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
-c 统计字节数
-m 统计字符数。这个标志不能与 -c 标志一起使用。
查找文件:
find ./ -name test.sh //查找当前目录下所有名为test.sh的文件
find ./ -name '*.sh' //查找当前目录下所有后缀为.sh的文件
find ./ -name "[A-Z]*" //查找当前目录下所有以大写字母开头的文件
find /tmp -size 2M //查找在/tmp 目录下等于2M的文件
find /tmp -size +2M //查找在/tmp 目录下大于2M的文件
find /tmp -size -2M //查找在/tmp 目录下小于2M的文件
find ./ -size +4k -size -5M //查找当前目录下大于4k,小于5M的文件
find ./ -perm 0777 //查找当前目录下权限为 777 的文件或目录
拷贝文件:cp
cp vim_configure/ code/ -ivr //把文件夹 vim_configure 拷贝到 code 目录里:
移动文件:mv
获取文件类型:
file 文件名
归档管理:tar
//tar [参数] 打包文件名 文件
tar -cvf text.tar 1.text 2.text 3.text
//解归档
tar -xvf test.tar
//一步归档压缩:把 1.c 2.c 3.c 4.c 压缩成 test.tar.gz
tar zcvf test.tar.gz 1.c 2.c 3.c 4.c
//一步解归档压缩
tar zxvf 文件名.tar.gz
文件压缩解压:gzip
//tar与gzip命令结合使用实现文件打包、压缩。tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。
gzip text.tar
//解压缩:生成了一个文件 归档文件名.tar
gzip -d 归档文件名.tar.gz
文件压缩解压:bzip2
//bzip2压缩:
tar -cjvf 文件名.tar.bz2 文件1 文件2
//bzip2解压缩:
tar -xjvf 文件名.tar.bz2 -C 路径
文件压缩解压:zip、unzip
//压缩
zip 文件名 文件1 文件2 生成一个文件为:文件名.zip
//unzip解压缩:
unzip 文件名.zip -C 路径
查看命令位置:which
用户、权限管理
查看当前用户:whoami
查看登录用户:who -m
切换用户
su //切换到root用户
su root //切换到root用户
su 普通用户 //切换到普通用户
su - 普通用户 //切换到普通用户,同时切换普通用户所在的目录
添加、删除组账号:
groupadd 新建组账号
groupdel 组账号
修改用户所在组:
usermod -g 用户组 用户名
添加组:
groupadd 组名 // 添加组 需要用户权限
groupdel 组名 //删除组 需要用户权限和清空组成员
usermod -g 组名 用户名1 用户名2】//修改用户所在组:需要用户权限
修改文件权限:chmod 修改文件权限有两种使用格式:字母法与数字法。
//字母法:
chmod u/g/o/a +/-/= rwx 文件
[ u/g/o/a ] 含义
u user 表示该文件的所有者
g group 表示与该文件的所有者属于同一组( group )者,即用户组
o other 表示其他以外的人
a all 表示这三者皆是
[ +-= ] 含义
+ 增加权限
- 撤销权限
= 设定权限
rwx 含义
r read 表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。
w write 表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。
x excute 表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。
//数字法:“rwx” 这些权限也可以用数字来代替
r 读取权限,数字代号为 "4"
w 写入权限,数字代号为 "2"
x 执行权限,数字代号为 "1"
- 不具任何权限,数字代号为 "0"
chmod u=rwx,g=rx,o=r filename //就等同于:chmod u=7,g=5,o=4 filename
chmod 751 file //文件所有者:读、写、执行权限、同组用户:读、执行的权限、其它用户:执行的权限
修改文件所有者:chown
修改文件所属组:chgrp
系统管理
查看当前日历:cal
显示或设置时间:date
查看进程信息:ps
动态显示进程:top
终止进程:kill
后台程序:&、jobs、fg
关机重启:reboot、shutdown、init
VI
VI编辑器有两个模式:文本编辑模式 命令行处理模式:
1、vi 文件名 2、vim
操作编辑器:
【i】在光标当前位置插入
【a】在光标右侧位置插入
【o】在光标下一行位置开启新的一行插入
【O】在光标上一行位置开启新的一行插入
【I】在光标当前行行首插入
【A】在光标当前行行尾插入
退出编辑器:
【ZZ】保存退出
【:wq】保存退出
【:x】保存退出
【:w 文件名】保存到指定文件中
【:q】 保存退出 针对未修改的文件 注意:未保存文件会提示 无法退出
【:q!】 强制退出 退出 不保存
【:! 命令】暂时离开vi 执行其他命令
编辑器操作:
【[n]x】删除光标位置后面n个字符
【[n]X】删除光标位置前面n个字符
【D】删除光标所在位置后面到行尾的所有字符
【[n]dd】删除光标所在行及下面n行 剪切
【p】在光标下一行粘贴
【[n]yy】复制光标所在行及下面n行
【dG】删除光标所在行到文件结尾
【J】合并光标所在行和下一行 中间用空格连接
【.】执行上一次命令行操作
【u】撤销
编辑器定位:
【ctrl+b】回滚 行号减小
【ctrl+f】前滚 行号增加
【gg】定位在文件第一行行首
【G】定位在文件最后一行行首
【:$】定位在文件最后一行行首
【[n]G | [n]gg】定位在m行
注意:在查找一些特殊含义的字符时,需要加上转义字符
【/内容】查找
【n】查找下一个
【N】查找上一个
【?】查找上一次的所搜内容
【/^word】 查找以word开头的内容
【/word$】 查找以word结尾的内容
【/.】查找任意一个字符
【/*】查找任意多个字符
编辑器替换:
【r】替换光标所在位置的字符
【:r 文件名】在光标当前行的下一行插入一个文件 每次添加只能添加一个文件
【:s/a/b/g】将光标所在行的a替换为b
【:g/a/s//b/g】将文件中所有a替换为b
【:n1,n2s/a/b/g】将行区间n1到n2的行中所有的a替换为b
编辑器设置:
【:set ic】搜索时不区分大小写
【:set noic】搜索时区分大小写
:set nu //显示行号
:set nonu //不显示行号
SSH
使用SSH服务,需要安装相应的服务器和客户端。客户端和服务器的关系:如果,A机器想被B机器远程控制,那么,A机器需要安装SSH服务器,B机器需要安装SSH客户端。
Xshell:是一个Windows平台下的SSH、TELNET和RLOGIN终端软件。它使得用户能轻松和安全地在Windows平台上访问Unix/Linux 主机。
Xftp:是一个应用于 Windows 平台的 FTP 和 SFTP 文件传输程序。Xftp能安全地在Unix/Linux 和 Windows 平台之间传输文件。
补充一些
重定向命令
终端内容保存到文件使用重定向有两种方式: >
和 >>
。>
表示每次只写入最新的数据,原有数据不保留。>>
表示每次在原有数据的基础上进行追加,原有数据会保留。
linux
安装
修改网络初始化配置,设定网卡在系统启动时初始化:
cd / 进入根目录
cd etc 进入etc目录
cd sysconfig 进入sysconfig目录
cd network-scripts 进入network-scripts
vi ifcfg-ens33 编辑ifcfg-ens33文件
i 进入编辑状态
光标 移动光标
<ESC> → :wq → <ENTER> 保存退出
查看ip:
ip addr
SSH(Secure Shell),建立在应用层基础上的安全协议。常用的SSH连接工具putty、secureCRT、xshell、finalshell。
通过SSH连接工具就可以实现从本地连接到远程的Linux服务器。
Linux系统中的目录:/
是所有目录的顶点;目录结构像一颗倒挂的树。
bin 存放二进制可执行文件
boot 存放系统引导时使用的各种文件
dev 存放设备文件
etc 存放系统配置文件
home 存放系统用户的文件
lib 存放程序运行所需的共享库和内核模块
opt 额外安装的可选应用程序包所放置的位置
root 超级用户目录
sbin 存放二进制可执行文件,只有root用户才能访问
tmp 存放临时文件
usr 存放系统应用程序
var 存放运行时需要改变数据的文件,例如日志文件
常用命令
ls:查看目录下内容
pwd:查看当前所在目录
cd 目录名:切换目录
touch 文件名:如果文件不存在,创建文件
mkdir 目录名:创建目录
rm 文件名:删除指定文件
在执行Linux命令时,提示信息如果显示为乱码,由于编码问题导致,只需要修改Linux的编码即可,命令如下:
echo 'LANG="en_US.UTF-8"' >> /etc/profile
source /etc/profile
使用技巧:
Tab键自动补全
连续两次Tab键,给出操作提示
使用上下箭头快速调出曾经使用过的命令
使用clear命令或者Ctrl+l快捷键实现清屏
ls:
ls -a //显示所有文件及目录 (. 开头的隐藏文件也会列出)
ls -l //除文件名称外,同时将文件型态(d表示目录,-表示文件)、权限、拥有者、文件大小等信息详细列出
注意:由于我们使用ls命令时经常需要加入-l选项,所以Linux为ls -l命令提供了一种简写方式,即ll
cd:
特殊说明:
~表示用户的home目录
. 表示目前所在的目录
.. 表示目前目录位置的上级目录
举例:
cd .. 切换到当前目录的上级目录
cd ~ 切换到用户的home目录
cd /usr/local 切换到/usr/local目录
cat:
作用:用于显示文件内容。语法: cat [-n] fileName
说明:-n :由1开始对所有输出的行数编号,即显示行数。
举例:
cat /etc/profile 查看/etc目录下的profile文件内容
more:
作用:以分页的形式显示文件内容。语法: more fileName
操作说明:
回车键 向下滚动一行
空格键 向下滚动一屏
b 返回上一屏
q或者Ctrl+C 退出more
举例:
more /etc/profile 以分页方式显示/etc目录下的profile文件内容
tail:
作用:查看文件末尾的内容。语法:tail [-f] fileName
说明:-f :动态读取文件末尾内容并显示,通常用于日志文件的内容输出
举例:
tail /etc/profile 显示/etc目录下的profile文件末尾10行的内容
tail -20 /etc/profile 显示/etc目录下的profile文件末尾20行的内容
tail -f /tea/my.log 动态读取/tea目录下的my.log文件末尾内容并显示
mkdir:
作用:创建目录。语法:mkdir [-p] dirName
说明:-p:确保目录名称存在,不存在的就创建一个。通过此选项,可以实现多层目录同时创建
举例:
mkdir tea 在当前目录下,建立一个名为tea的子目录
mkdir -p tea/test 在工作目录下的tea目录中建立一个名为test的子目录,若tea目录不存在,则建立一个
rmdir:
作用:删除空目录。语法:rmdir [-p] dirName
说明:-p:当子目录被删除后使父目录为空目录的话,则一并删除
举例:
rmdir tea 删除名为tea的空目录
rmdir -p tea/test 删除tea目录中名为test的子目录,若test目录删除后tea目录变为空目录,则也被删除
rmdir ----------* 删除名称以tea开始的空目录
rm:
作用:删除文件或者目录。语法:rm [-rf] name
说明:
-r:将目录及目录中所有文件(目录)逐一删除,即递归删除
-f:无需确认,直接删除
举例:
rm -r tea/ 删除名为tea的目录和目录中所有文件,删除前需确认
rm -rf tea/ 无需确认,直接删除名为tea的目录和目录中所有文件
rm -f hello.txt 无需确认,直接删除hello.txt文件
cp:
作用:用于复制文件或目录。语法:cp [-r] source dest
说明:-r:如果复制的是目录需要使用此选项,此时将复制该目录下所有的子目录和文件
举例:
cp hello.txt tea/ 将hello.txt复制到tea目录中
cp hello.txt ./hi.txt 将hello.txt复制到当前目录,并改名为hi.txt
cp -r tea/ ./it/ 将tea目录和目录下所有文件复制到it目录下
cp -r tea/* ./it/ 将tea目录下所有文件复制到it目录下
mv:
作用:为文件或目录改名、或将文件或目录移动到其它位置。语法:mv source dest
举例:
mv hello.txt hi.txt 将hello.txt改名为hi.txt
mv hi.txt it/ 将文件hi.txt移动到it目录中
mv hi.txt it/hello.txt 将hi.txt移动到it目录中,并改名为hello.txt
mv tea/ itheima/ 如果it目录不存在,将tea目录改名为it
mv tea/ it/ 如果it目录存在,将tea目录移动到it目录中
打包压缩命令tar:
作用:对文件进行打包、解包、压缩、解压
语法:tar [-zcxvf] fileName [files]
包文件后缀为.tar表示只是完成了打包,并没有压缩
包文件后缀为.tar.gz表示打包的同时还进行了压缩
说明:
-z:z代表的是gzip,通过gzip命令处理文件,gzip可以对文件压缩或者解压
-c:c代表的是create,即创建新的包文件
-x:x代表的是extract,实现从包文件中还原文件
-v:v代表的是verbose,显示命令的执行过程
-f:f代表的是file,用于指定包文件的名称
举例:
打包
tar -cvf hello.tar ./* 将当前目录下所有文件打包,打包后的文件名为hello.tar
tar -zcvf hello.tar.gz ./* 将当前目录下所有文件打包并压缩,打包后的文件名为hello.tar.gz
解包
tar -xvf hello.tar 将hello.tar文件进行解包,并将解包后的文件放在当前目录
tar -zxvf hello.tar.gz 将hello.tar.gz文件进行解压,并将解压后的文件放在当前目录
tar -zxvf hello.tar.gz -C /usr/local 将hello.tar.gz文件进行解压,并将解压后的文件放在/usr/local目录
文本编辑命令 vi/vim:
vi作用:vi命令是Linux系统提供的一个文本编辑工具,可以对文件内容进行编辑,类似于Windows中的记事本
语法:vi fileName
说明:
1、vim是从vi发展来的一个功能更加强大的文本编辑工具,在编辑文件时可以对文本内容进行着色,方便我们对文件进行编辑处理,所以实际工作中vim更加常用。
2、要使用vim命令,需要我们自己完成安装。可以使用下面的命令来完成安装:
yum install vim
vim作用:对文件内容进行编辑,vim其实就是一个文本编辑器
语法:vim fileName
说明:
1、在使用vim命令编辑文件时,如果指定的文件存在则直接打开此文件。如果指定的文件不存在则新建文件。
2、vim在进行文本编辑时共分为三种模式,分别是命令模式(Command mode),插入模式(Insert mode)和底行模式(Last line mode)。这三种模式之间可以相互切换。我们在使用vim时一定要注意我们当前所处的是哪种模式。
1、命令模式
命令模式下可以查看文件内容、移动光标(上下左右箭头、gg、G)
通过vim命令打开文件后,默认进入命令模式
另外两种模式需要首先进入命令模式,才能进入彼此
2、插入模式
插入模式下可以对文件内容进行编辑
在命令模式下按下[i,a,o]任意一个,可以进入插入模式。进入插入模式后,下方会出现【insert】字样
在插入模式下按下ESC键,回到命令模式
3、底行模式
底行模式下可以通过命令对文件内容进行查找、显示行号、退出等操作
在命令模式下按下[:,/]任意一个,可以进入底行模式
通过/方式进入底行模式后,可以对文件内容进行查找
通过:方式进入底行模式后,可以输入wq(保存并退出)、q!(不保存退出)、set nu(显示行号)
find:
作用:在指定目录下查找文件。语法:find dirName -option fileName
举例:
find . –name “*.java” 在当前目录及其子目录下查找.java结尾文件
find /tea -name “*.java” 在/tea目录及其子目录下查找.java结尾的文件
grep:
作用:从指定文件中查找指定的文本内容。语法:grep word fileName
举例:
grep Hello HelloWorld.java 查找HelloWorld.java文件中出现的Hello字符串的位置
grep hello *.java 查找当前目录中所有.java结尾的文件中包含hello字符串的位置
软件安装
软件安装方式:
二进制发布包安装
软件已经针对具体平台编译打包发布,只要解压,修改配置即可
rpm安装
软件已经按照redhat的包管理规范进行打包,使用rpm命令进行安装,不能自行解决库依赖问题
yum安装
一种在线软件安装方式,本质上还是rpm安装,自动下载安装包并安装,安装过程中自动解决库依赖问题
源码编译安装
软件以源码工程的形式发布,需要自己编译打包
安装jdk:操作步骤:
1、使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux
2、解压安装包,命令为tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local
3、配置环境变量,使用vim命令修改/etc/profile文件,在文件末尾加入如下配置
JAVA_HOME=/usr/local/jdk1.8.0_171
PATH=$JAVA_HOME/bin:$PATH
4、重新加载profile文件,使更改的配置立即生效,命令为source /etc/profile
5、检查安装是否成功,命令为java -version
安装Tomcat:
操作步骤:
1、使用FinalShell自带的上传工具将Tomcat的二进制发布包上传到Linux
2、解压安装包,命令为tar -zxvf apache-tomcat-7.0.57.tar.gz -C /usr/local
3、进入Tomcat的bin目录启动服务,命令为sh startup.sh或者./startup.sh
验证Tomcat启动是否成功,有多种方式:
查看启动日志
more /usr/local/apache-tomcat-7.0.57/logs/catalina.out
tail -50 /usr/local/apache-tomcat-7.0.57/logs/catalina.out
查看进程 ps -ef | grep tomcat
防火墙操作:
查看防火墙状态(systemctl status firewalld、firewall-cmd --state)
暂时关闭防火墙(systemctl stop firewalld)
永久关闭防火墙(systemctl disable firewalld)
开启防火墙(systemctl start firewalld)
开放指定端口(firewall-cmd --zone=public --add-port=8080/tcp --permanent)
关闭指定端口(firewall-cmd --zone=public --remove-port=8080/tcp --permanent)
立即生效(firewall-cmd --reload)
查看开放的端口(firewall-cmd --zone=public --list-ports)
停止Tomcat服务的方式:
运行Tomcat的bin目录中提供的停止服务的脚本文件:
sh shutdown.sh
./shutdown.sh
结束Tomcat进程:
查看Tomcat进程,获得进程id :ps -ef | grep tomcat
执行命令结束进程 kill -9 id
注意:
kill命令是Linux提供的用于结束进程的命令,-9表示强制结束
安装MySQL:
1-检测当前系统中是否安装MySQL数据库
rpm –qa 查询当前系统中安装的所有软件
rpm –qa | grep mysql 查询当前系统中安装的名称带mysql的软件
rpm –qa | grep mariadb 查询当前系统中安装的名称带mariadb的软件
RPM(Red-Hat Package Manager)RPM软件包管理器,是红帽Linux用于管理和安装软件的工具
如果当前系统中已经安装有MySQL数据库,安装将失败。CentOS7自带mariadb,与MySQL数据库冲突
2-卸载已经安装的冲突软件
rpm -e --nodeps 软件名称 卸载软件
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
3-将MySQL安装包上传到Linux并解压
mkdir /usr/local/mysql
tar -zxvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz -C /usr/local/mysql
说明:解压后得到6个rpm的安装包文件
4-按照顺序安装rpm软件包
rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
yum install net-tools
rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm
说明1:安装过程中提示缺少net-tools依赖,使用yum安装
说明2:可以通过指令升级现有软件及系统内核
yum update
5-启动mysql
systemctl status mysqld 查看mysql服务状态
systemctl start mysqld 启动mysql服务
说明:可以设置开机时启动mysql服务,避免每次开机启动mysql
systemctl enable mysqld 开机启动mysql服务
netstat -tunlp 查看已经启动的服务
netstat –tunlp | grep mysql
ps –ef | grep mysql 查看mysql进程
6-登录MySQL数据库,查阅临时密码
cat /var/log/mysqld.log 查看文件内容
cat /var/log/mysqld.log | grep password 查看文件内容中包含password的行信息
7-登录MySQL,修改密码,开放访问权限
mysql -uroot –p 登录mysql(使用临时密码登录)
#修改密码
set global validate_password_length=4; 设置密码长度最低位数
set global validate_password_policy=LOW; 设置密码安全等级低,便于密码可以修改成root
set password = password('root’); 设置密码为root
#开启访问权限
grant all on *.* to 'root'@'%' identified by 'root';
flush privileges;
8-测试MySQL数据库是否正常工作
show databases;
安装lrzsz:
操作步骤:
1、搜索lrzsz安装包,命令为yum list lrzsz
2、使用yum命令在线安装,命令为yum install lrzsz.x86_64
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
项目部署
将程序在后台运行,输出到日志文件:
nohup 命令:英文全称 no hang up(不挂起),用于不挂断地运行指定命令,退出终端不会影响程序的运行
语法格式: nohup Command [ Arg … ] [&]
参数说明:
Command:要执行的命令
Arg:一些参数,可以指定输出文件
&:让命令在后台运行
举例:后台运行java -jar命令,并将日志输出到hello.log文件:
nohup java -jar boot工程.jar &> hello.log &
停止SpringBoot程序:
ps -ef | grep java
kill -9 id
通过Shell脚本自动部署项目,操作步骤:
1、在Linux中安装Git
yum list git 列出git安装包
yum install git 在线安装git
2、在Linux中安装maven
tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local
vim /etc/profile 修改配置文件,加入如下内容
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
source /etc/profile 保存配置文件
mvn –version 查看是否安装成功
vim /usr/local/apache-maven-3.5.4/conf/settings.xml 修改添加配置文件内容如下
<localRepository>/usr/local/repo</localRepository>
3、编写Shell脚本(拉取代码、编译、打包、启动)
#!/bin/sh
echo =================================
echo 自动化部署脚本启动
echo =================================
echo 停止原来运行中的工程
APP_NAME=helloworld
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
echo 准备从Git仓库拉取最新代码
cd /usr/local/helloworld
echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成
echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`
cd target
echo 启动项目
nohup java -jar helloworld-1.0-SNAPSHOT.jar &> helloworld.log &
echo 项目启动完成
4、为用户授予执行Shell脚本的权限(chomd 777 bootStart.sh)
chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令
Linux中的权限分为:读(r)、写(w)、执行(x)三种权限
Linux的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)
只有文件的所有者和超级用户可以修改文件或目录的权限
要执行Shell脚本需要有对此脚本文件的执行权限,如果没有则不能执行
举例:
chmod 777 bootStart.sh 为所有用户授予读、写、执行权限
chmod 755 bootStart.sh 为文件拥有者授予读、写、执行权限,同组用户和其他用户授予读、执行权限
chmod 210 bootStart.sh 为文件拥有者授予写权限,同组用户授予执行权限,其他用户没有任何权限
注意:三位数字分别代表不同用户的权限
第1位表示文件拥有者的权限
第2位表示同组用户的权限
第3位表示其他用户的权限
0代表无权限,---
1代表只执行,--x
2代表只写,-w-
3代表写+执行,-wx
4代表只读,r--
5代表读+执行,r-x
6代表读+写,rw-
7代表读+写+执行,rwx
5、执行Shell脚本(./bootStart.sh)
设置静态ip:
修改文件/etc/sysconfig/network-scripts/ifcfg-ens33,内容如下:
BOOTPROTO="static" # 使用静态IP地址,默认为dhcp
IPADDR="192.168.138.100" # 设置的静态IP地址
NETMASK="255.255.255.0" # 子网掩码
GATEWAY="192.168.138.2" # 网关地址
DNS1="192.168.138.2" # DNS服务器
重启网络服务:
systemctl restart network