Linux命令


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


文章作者:
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 !
  目录