该博客主要记载在开发中可能会用到的Linux知识。
相关部分有Linux基础指令,vim编辑器操作,用户管理,ssh服务,Linux指令拓展,在Linux中安装jdk和tomcat等。
希望该博客能对你有所帮助。
基础指令是学习Linux的基石,我们需要对常用的基础指令烂熟于心,这一部分罗列的指令包括操作文件和文件夹,查看Linux状态,查看文件信息,管道符,对Linux的开关机等等指令。
含义:列出当前工作目录下所有文件/文件夹的名称.
语法一:ls 路径
语法二:ls -l 路径
语法三:ls -la 路径
(以详细信息的形式列出指定路径下的所有文件/文件夹,包含隐藏文件/文件夹)
在Liunx中,所有的隐藏文件都以.开头,例如:.abc
语法四:ls -lh 路径
(以详细信息的形式列出指定路径下的所有文件/文件夹,并且文件信息中文件大小是可读性较好的形式。不包含隐藏文件。)
含义:切换当前的工作目录
补充:在Linux中"~"号表示当前用户的家目录,在此也可以组合cd命令直接切换到家目录下。
含义:创建文件目录,如果后面只有文件目录名称,表示在当前目录下创建,如果指令后面带有文件目录,表示在指定的文件目录中创建。
补充:在Linux中,黑色字体的表示文件夹,蓝色字体表示文件,绿色背景的表示该文件拥有所有权限。
语法一:mkdir -p 路径
(此语法可以用在一次性创建多层不存在目录的时候使用,当在不存在的目录中创建文件的时候会出错,此时就需要用到这个语法。)
语法二:mkdir 路径一 路径二 路径三…
含义:创建文件,当指令后面只有文件名称表示在当前目录下创建文件,当指令后面有文件目录以及文件名称,表示在指定的文件目录中创建文件。
语法一:touch 文件一 文件二 文件三…
含义:复制指定的文件/文件夹到指定的位置。
语法一:cp 被复制的文件的目录路径 复制到的目标目录路径
补充:与Windows不同,Linux是支持在赋值文件的同时重命名文件的名称的,只需要在目标文件路径中直接书写你想要的新文件名即可。
语法二:cp -r 被复制的文件夹的路径 复制到的目标路径
(在进行文件夹的复制的时候必须加上-r选项,-r表示递归复制,因为在复制文件夹的同时也需要将文件夹中的内容进行复制。)
含义:移动指定的文件/文件夹到指定的位置
语法一:mv 被移动的文件/文件夹路径 移动到的目标路径
(cp命令和mv命令分别代表复制和剪切功能,与cp命令不同的是剪切文件夹的时候不需要加-r。)
含义:删除文件/文件夹
语法一:rm 文件路径
(删除指定路径下的文件,会出现提示,出现提示的时候输入"y/yes"或者"n/no"进行删除或者取消删除。)
语法二:rm -f 文件路径
语法三:rm -r 文件夹路径
(加上-r选项进行递归可以进行文件夹的删除,会出现提示,并且在进行每一个文件夹删除的时候都会出现提示。)
语法四:rm -rf 文件夹路径
语法五:rm -rf 文件夹路径1 文件夹路径2
(批量删除多个文件夹并且不会出现提示。)
补充:在Linux中*也表示通配符的意思,在此可以结合rm指令完成批量匹配删除的功能。例如:rm -rf linux✳表示匹配所有文件夹是以linux开头的进行删除,rm -rf /✳表示匹配在根目录下的所有文件进行删除。
vim是一款强大的文本编辑器,在此我们只简单介绍使用vim命令打开和关闭一个文件。
打开文件:vim 文件路径
关闭打开的文件:在打开文件之后没有输入任何其他指令的情况下使用shift+:组合键可以在打开的文件中输入命令,然后输入q就可以关闭打开的文件。
在一般情况下我们使用命令输出的内容都会显示在终端上,如果我们需要将显示的内容保存在其他的文件中时,就需要使用到输出重定向选项。
>
:表示覆盖输出,在将输出内容输出到文件的时候会将文件的原内容覆盖;>>
:表示追加输出,在将输出内容输出到文件的时候不会覆盖文件的原内容;
补充:当输出的文件不存在的时候,输出重定向选项会自动创建不存在的文件。
含义:cat指令有两个功能,第一个是直接打开文件,与vim命令不同,cat指令会将打开的文件内容直接输出到终端上显示。第二个功能是合并文件,可以将两个文件合并为一个新文件。
语法一:cat 文件路径、
语法二:cat 待合并的文件路径1 待合并的文件路径2… > 合并之后的文件路径
含义:查看磁盘的空间
语法:df -h
含义:查看内存使用情况
语法:free -h
(-h表示将内存大小以可读性较好的形式表示,同样也可以使用-m和-g,-m表示将单位转换为mb格式输出,-g表示转换为gb格式输出。)
含义:查看一个文件的前n行,如果不指定n的值,则默认显示前十行。
语法:head -n 文件路径
含义:查看一个文件的后n行,如果不指定n的值,则默认显示后十行。
语法:tail -n 文件路径
含义:查看某个文件,以较少的方式进行输出,可以使用辅助键查看更多。
语法:less 被查看的文件路径
(less指令只会显示一屏的文件内容,如果需要查看更多可以使用方向键上下滚动或者使用空格键翻页,也可以直接输入数字选择从多少行开始查看内容。)
含义:统计文件内容信息(包含行数、单词数、字节数)。
语法:wc -lwc 被统计的文件路径
含义:操作日期时间(读取和设置)。
语法一:date
语法二:date +%F
语法三:date “+%F %T”
语法四:获取当前时间之前或者之后的某个时间
补充:时间单位的可选值,日(day),月(month),年(year)
含义:cal指令用来操作日历
语法一:cal
语法二:cal -3
语法三:cal -y 年份
含义:清除终端中的指令及输出信息。
含义:管道符一般用于过滤、拓展处理以及一些特殊操作。
过滤案例:使用管道符过滤出根目录下包含y字母的文件名称。
(ls /| grep y:此指令中,"|"之前的部分会输出内容,然后将此输出内容作为管道的输入内容进行输入,最后根据管道符后面的过滤关键字以及过滤条件进行过滤输出。)
含义:操作服务器的主机名
语法一:hostname
语法二:hostname -f
含义:查看一个用户的基本信息,允许指定特定用户,如果不指定则输出当前用户的基本信息。
含义:主要用于查看服务器进程信息,"-e"选项表示列出全部进程,"-f"选项表示列出所有的列。
关于服务器进程信息中列名的含义:
含义:查看服务器中进程所占用的资源。
语法:
进入命令:top;
退出命令:按下q键退出。
含义:查看目录的真实大小,其中,"-s"选项表示显示目录的汇总大小,"-h"表示将大小以可读性较高的形式显示。
含义:用于查找文件。
语法一:find 查找的路径范围 -name 目标文档的名称
(根据文档名称查找文件,支持模糊查询,*xiashihua表示以xiashihua结尾的文档,xiashihua✳表示以xiashihua开头的文档。)
语法二:find 查找的路径范围 -type 目标文档的类型
(根据文档的类型查找文件。)
文档类型:在此我们只接触到两种文件类型,其中"f"表示文件,"d"表示文件夹。
含义:用于控制一些软件服务的启动/停止/重启。
语法:service 服务名 start/stop/restart
含义:杀死进程,当遇到僵尸进程或者出于某些原因需要关闭某个进程的时候使用。
语法:kill 进程PID
(该语法需要通过ps指令配合使用,我们通过ps指令查看到需要关闭的进程信息中的PID之后就可以通过该指令来对该进程进行关闭。)
含义:killall指令也是用于杀死进程,不过不是通过进程的PID来进行关闭,而是可以直接通过进程的名称来进行关闭,如果我们知道进程名称的情况下可以不使用ps指令来查看进程信息,直接使用killall指令就可以关闭进程
语法:killall 进程名称
含义:用于操作网卡的相关指令。
语法:ifconfig
含义:重新启动计算机。
含义:关闭计算机,可以立即关机,也可以定时关机。
语法:shutdown -h now (立即关机) shutdown -h 时间 (定时关机)
取消定时关机:在centos7以下的版本中,取消定时关机只能使用ctrl+c组合键来强制关闭,在cnetos7之后的版本中,可以使用shutdown -c命令来取消定时关机。
其他关机指令:
语法一:uname -a
(获取计算机的完整信息,包括操作系统的类型、全部主机名、内核版本、发布时间、开源计划。)
含义:man指令代表一个包含全部Linux命令的英文手册,我们可以在man的后面跟上一个指令的名称来查询这个指令的相关信息,退出的时候按q则可以退出。
vim是Linux中自带的编辑文本信息的软件,我们在开发的过程中经常性需要对软件的配置文件进行修改,所以vim的操作也是非常重要的。
关于vi和vim:
vi编辑器是所有Unix已经Linux系统下的标准编辑器,类似于windows中的notepad(记事本)。vi是Linux中最基本的编辑器,vim则比较高级,是vi的升级版本,vi一般用于文本编辑,vim则更适用与coding。
在对于vim编辑器的学习中,重点是在于光标的移动、模式切换、删除、查找替换、复制、粘贴、撤销命令的使用。
vim中存在三种基本的模式:命令模式,编辑模式(输入模式),末行模式(尾行模式)。
命令模式:该模式下不能对文件直接进行编辑,可以输入快捷键进行一些操作(例如删除行、复制行、移动光标、粘贴等等);
编辑模式:在该模式下可以对文件内容进行编辑;
末行模式:可以在末行输入命令来对文件进行操作(例如搜索、替换、保存、退出、撤销
、高亮等等)。
命令模式是vim的默认打开模式。
vim打开文件的四种方式:
①vim 文件路径 (打开指定文件);
②vim +数字 文件路径(打开指定的文件,并且将光标移动到指定行);
③vim +/关键词 文件路径(打开指定文件,并且将关键词高亮显示);
④vim 文件路径1 文件路径2 文件路径3(同时打开多个文件)。
vim的退出方式: 使用shift+冒号的组合键然后输入q退出。
命令模式是vim编辑器打开文件的默认方式。
1、光标操作
①光标移动到行首:shift+6(^)
②光标移动到行尾:shift+4($)
③光标移动到首行:gg
④光标移动到末行:G
⑤翻屏:向上翻屏:ctrl+b;向下翻屏ctrl+f
2、复制操作
①复制光标所在行:yy
粘贴:在想要粘贴的位置按下p键进行粘贴。
②以光标所在行为准(包括光标所在行),向下复制指定的行数:行数yy
③可视化复制:c按下ctrl+v组合键之后,使用方向键选择需要复制的文本块,选择完成之后使用yy进行复制,然后到目的地使用p进行粘贴。
3、剪切/删除操作
①剪切/删除光标所在行:dd
②以光标所在行为准(包含光标所在行),向下剪切/删除指定的行:行数dd
4、撤销/恢复操作
①撤销:使用shift+冒号然后输入u进行撤销上一步操作。
②恢复:ctrl+r,恢复之前的撤销操作。
末行模式由命令模式进入,在命令模式中使用shift+冒号组合键即可进入,末行模式进入之后可以在最末行的位置对文件进行操作。退出末行模式只需要将末行中的命令删除干净或者按下esc键即可。
1、保存和另存为
保存文件内容:w
另存为文件:w 目标路径
2、退出vim
输入:q
保存文件并退出:wq
3、调用外部命令
输入:!外部命令
(在叹号后面紧跟外部命令即可,只能执行一次命令。)
4、搜索/查找
输入:/关键词
(搜索和查找与其他的命令不同,搜索是按下"/"后进行关键词搜索,其他的命令是通过shift+冒号的形式输入。)
在搜索结果中切换上/下一个结果:N/n
取消选中文本的高亮效果:nohl
5、替换操作
①替换光标所在行第一处符合条件的内容:s/搜索的关键词/新的内容
②替换光标所在行所有符合条件的内容:s/搜索的关键词/新的内容/g
③替换文档中每行第一个符合条件的内容:%s/搜索的关键词/新的内容
④替换整个文档中所有符合条件的内容:%s/搜索的关键词/新的内容/g
(%表示整个文件,g表示全局。)
6、显示行号
输入:set nu
取消行号显示:set nonu
7、使用vim同时打开多个文件,在末行模式下进行文件之间的切换:
①查看当前已打开的文件名称:files
补充:在上例图中,在%a位置有两种显示可能:
%a:表示正在打开的文件;
#:表示上一个打开的文件。
②切换文件的方式:
a、按照指定文件名称进行切换:open 文件名称;
b、通过其他命令切换上一个文件/下一个文件:
切换到下一个文件:bn
切换到上一个文件:bp
进入方式:在命令模式下按键"i"或"o"等键进入。
退出方式:按下esc退出。
("i"键进入表示在光标所在字符前开始插入,"a"键进入表示在所在光标字符后开始插入。)
1、代码着色
开启代码着色:syntax on
关闭代码着色:syntax off
2、vim的配置文件:
vim是一款编辑器,我们也可以使用自定义的方式去修改默认的配置信息来方便我们的使用。
vim的配置有三种方式:
a、在文件打开时使用末行模式下输入的配置(临时的);
b、个人配置文件(~/.vimrc);
c、全局配置文件(vim自带,/etc/vimrc)。
(如果家目录下没有.vimrc文件则需要手动创建一个一模一样的文件,然后打开在其中进行配置。)
在自定义的vim配置文件中进行配置:
开启行号显示:set nu (直接在.vimrc文件中输入然后保存即可。)
补充:当某个配置项的内容在全局配置文件和个人配置文件中发生冲突的时候,优先使用个人配置文件中的配置,个人配置文件中不存在的配置则使用全局配置文件中的配置。
3、别名机制
Linux中的别名机制可以让用户自定义属于自己的指令,别名机制需要依靠一个别名映射文件来完成,映射文件的地址在~/.bashrc文件中。
打开配置文件之后按照文件内容语法进行配置就可以自定义命令的别名,其中alias表示别名。完成配置之后保存退出,并且当前用户需要重新登录之后,设置的别名才可以生效。
4、退出方式
在之前的学习中,退出vim编辑器使用的是在末行模式下输入"q"或者"wq"来进行退出。
其实,vim还支持在末行模式下直接输入"x"的方式来进行退出。
(输入"x"退出的时候,当文件没有被修改过则直接退出,如果文件被修改过则保存后再退出。在此的"x"为小写,注意不是大写,大写的"x"有其特殊的含义,表示对文件进行加密处理。)
Linux的运行级别表示的是Linux操作系统的运行方式,一共分为7个级别,常用的功能我们可以通过命令来实现关机,从图像化界面到命令行界面的切换等等操作。用户管理在Windows操作系统中也是非常重要的一部分,此处记录的命令是关于用户组和用户的管理操作。
在Linux中一共有7种运行级别,分别用0-6的数字来表示,其含义为:
0:表示关机模式
1:单用户模式
2:多用户模式,不带NFS(即无网络情况下的多用户模式)
3:完全的多用户模式(命令行界面)
4:没有被使用的模式(保留模式)
5:X11,完整的图形化界面模式
6:表示重启模式
在centOS7以下的版本中运行级别一般是在/etc/inittab配置文件中进行配置,但是在cnetOS7以上的版本中该配置文件不再使用,init进程名称也更换为systemd。
但是我们还是可以使用在之前版本中的命令来完成运行级别的切换,例如:
init 0 (切换到关机模式,在终端中输入之后则关闭计算机。)
init 6 (切换到重启模式,在终端中输入之后则重新启动计算机。)
init 3 (切换到纯命令行模式。)
init 5 (切换到完全图形化界面模式。)
但是,以上在终端中输入命令的方式是临时切换,在进行重启之后依然会恢复到原来的状态。
centOS7永久修改默认运行级别:
在终端输入命令:
①systemctl set-default multi-user.target (修改级别为3,即命令行模式。)
②systemctl set-default graphical.target (修改级别为5,即图形化界面模式。)
查看当前运行级别:runlevel
在修改默认运行级别之后需要进行重启才会生效。
Linux是一个多任务多用户的操作系统,任何一个要使用系统资源的用户,都必须向系统管理员申请一个账号,然后以这个账号的身份进入系统。
在此,我们主要学习对用户账号的添加、删除、修改以及密码的管理,还有用户组的相关管理。
在此,有三个配置文件与用户和用户组的管理相关:
/etc/passwd (存储用户的关键信息)
/etc/group (存储用户组的关键信息)
/etc/shadow (存储用户的密码信息)
1、用户管理
①添加用户
常用语法:useradd 选项 用户名
常用选项:
-g:表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名;
-G:表示指定用户的附加组,选项的值可以是附加组的id,也可以是组明;
-u:表示uid,指用户的标识符,系统默认创建用户的时候会从500往后自动按序分配uid,如果不想使用系统默认的uid,可以通过此选项自定义。
-c:添加注释
在/etc/passwd中查看用户是否存在:
②修改用户
常用语法:usermod 选项 用户名
常用选项:
-g、-G、-u、-c四个选项都可以使用,含义与创建用户时相同;
-l:修改用户名
③设置密码
当新建的用户没有密码的时候,Linux会将该用户置为锁定状态,无法用于登录。
常用语法:passwd 用户名
④切换用户:在不重启计算机的情况下进行登录用户的切换
常用语法:su 用户名
(如果用户名不指定则表示切换到超级管理员。)
(从root切换到普通用户可以直接切换,但是从普通用户切换到root用户则需要密码,而且在进行用户切换的时候工作目录是不会发生改变的。)
⑤删除用户
常用语法:userdel 选项 用户名
常用选项:
-r:删除用户的同时删除用户对应的家目录信息
(已经登录的用户无法删除。)
所有与操作用户相关的操作,除了passwd之外,都只有root才能够执行。
2、用户组管理
每个用户都有一个用户组,系统可以对一个用户组中的用户进行集中管理。当创建用户的时候不指定其所属的用户组时,系统会自动创建一个同名的用户组。
用户组的管理涉及用户组的添加、删除和修改。组的添加、删除和修改实际上就是对/etc/group文件的更新。
①添加用户组
常用语法:groupadd 选项 用户组名
常用选项:
-g:该选项表示在创建用户组的时候自定义用户组的id,如果不指定,系统默认按照500往后进行自动创建。
②编辑用户组
常用语法:groupmod 选项 用户组名
常用选项:
-g:编辑用户组id
-n:编辑用户组名
③删除用户组
常用语法:groupdel 用户组名
注意:当如果需要删除一个组,但是这个组是某个用户的主组时,则不允许删除;如果非要进行删除,则需要先将所有的组内用户移出。
在学习过程中,可能都是采用的通过VM在本机上安装虚拟机的形式来操作Linux进行学习。但是在工作开发中,我们作为开发人员,显然是无法直接在服务器终端中进行操作的,此时,我们就需要通过Linux的SSH远程连接服务,使用一定的远程连接工具来进行对Linux服务器的远程操作。 在此示例的软件是xshell和xftp,但是在工作之后,博主发现了一个更加好用的远程连接工具:SecureCRT,CRT比xshell更加简洁,用起来感觉很棒。
ssh服务代表secure shell,表示安全外壳协议。
该协议有两个常用的作用:远程连接协议、远程文件传输协议。
该协议默认使用的端口号为22。
我们可以通过修改ssh服务的配置文件来进行端口的自定义配置,ssh服务的配置文件目录为:/etc/ssh/ssh_config
编辑此处则可以对默认端口22进行修改,但是修改端口的范围必须在0-65535之间,且不能是别的服务已占用的端口。
服务的启动/停止/重启:service sshd start/stop/restart
ssh服务主要就是用来进行服务器的远程连接的,所以该服务一般就是系统的默认启动服务。
在此,我们通过安装Xmanager来使用其中的两个工具来完成windows与Linux服务器的远程连接和传递文件的功能:
Xftp:实现远程文件传输的工具;
Xshell:实现远程连接的工具。
注意:在此我安装的是centos8版本,使用ifconfig查看网卡信息的时候显示了三个网卡信息。
其中,lo是本地网卡,在此连接需要使用的是ens33网卡的ip地址,virbr0网卡在windows下也可以ping通,但是无法使用连接。
该部分主要包括Linux的文件权限管理,防火墙操作和网络命令。
Linux下的文件权限解析:
使用ls -l命令可以查看文件的详细信息,其中每个文件的第一部分的十个字母就代表着该文件的权限信息:
①第一个字母代表文件类型,分别有l、d、-三种形式:
l:表示链接类型
d:表示目录
-:表示文件类型
②除去第一个字母之外,前三位代表所属用户权限,中间三位代表所属用户组的权限,最后三位代表其他用户访问的权限。
③权限一共有r、w、x三种形式:
r:代表可读权限
w:代表可写权限
x:代表可执行权限
修改文件权限操作:
修改文件权限需要使用命令:chmod
1、字母法
常用语法:chmod u/g/o/a +/- r/w/x 文件名
语法解析:
u:代表所属用户
g:代表所属用户组
o:代表其他用户
a:代表全部
2、数字法
数字法中简单来说就是将rwx分别赋予了不同的数字来代替,其中r=4,w=2,x=1。
在使用数字法来修改文件权限的时候,只允许输入三位数字,分别代表所属用户、所属用户组和其他用户。如果需要同时设置多个权限,只需要设置权限所属数字的和即可。
例如:设置某个文件拥有所属用户、所属用户组和其他用户的所有rwx权限
语法:chmod 777 文件名
修改文件所有者:chown 新的所属用户 文件名
修改文件所属组:chgrp 新的所属组 文件名
在centos7版本之前对于防火墙操作的命令和centos7之后版本是不同的,在此展示两个版本对于防火墙的操作命令:
1、centOS7之前版本:
查看防火墙状态:service iptables status
开启防火墙:service iptables start
关闭防火墙:service iptables stop
2、centOS7以上版本:
查看防火墙状态:systemctl status firewalld
关闭防火墙:systemctl stop firewalld.service
禁止防火墙开机启动:systemctl disable firewalld.service
1、下载文件
语法:wget 下载地址
(该语法可以在Linux上通过下载地址进行文件下载,并保存到当前工作目录。)
2、在线安装
语法:Yum -y install 软件名称
如果我们想要将自己的项目部署到服务器上让大家都能访问的话,首当其冲就是购买云服务器了,我们需要在云服务器上安装jdk,tomcat,mysql这些基本的软件才能让项目部署成功并跑起来,mysql的安装略显麻烦,而且不同版本的也略有差异,本人推荐如果想要自己部署的话可以采用docker进行一键部署,此处记载的部分可以当作参考,并在网上找到安装mysql的教程进行安装也是可以的。
1、下载jdk1.8Linux版的压缩包
2、使用Xftp工具将压缩包上传到Linux家目录中~/myUpLoad目录下
3、解压到/usr/local/java目录下
①创建/usr/local/java目录:mkdir /usr/local/java
②解压压缩包到/ust/local/java目录中:tar -zxvf 压缩包名 -C /usr/local/java
配置环境变量需要编辑/etc/profile文件,在第73行:done之后开始编辑:
编辑内容:
JAVA_HOME=/usr/local/java/jdk1.8.0_161
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
刷新环境变量:source /etc/profile
验证是否成功:java -version
1、下载tomcatLinux版本
2、上传到Linux中的~/myUpLoad目录中
3、解压到/usr/local/tomcat目录下
①创建/usr/local/tomcat目录:mkdir /usr/local/tomcat
②解压文件到/usr/local/tomcat目录下:tar -zxvf 压缩包名 -C /usr/local/tomcat
4、启动tomcat
进入tomcat文件中的bin目录下,执行名为startup.sh的可执行文件:
使用./startup.sh命令启动tomcat:
5、查看Linux的ip地址,在windows上访问tomcat:
欢迎关注博主的微信公众号,以后也会在微信公众号分享个人精品文章笔记: