个人学习笔记,如有错误还请告知。谢谢
文章目录
一、简介
实际开发中,开发一般是在windows系统进行,开发完成之后把开发完成的产品【项目】部署到线上一般是部署在linux系统上。Linux相对于windows系统系统优势:稳定!
Linux确切的说不是一个系统,是一个内核。
RedHat:小红帽,企业级的Linux系统,收费的。
Centos: 企业级的Linux系统,免费的。
Ubuntu: 图形化界面比较友好,适合小白。
二、虚拟机配置网络
1、VMWare中虚拟机网络模式
-
桥接:虚拟机ip和物理机ip的地址会在同一个网段。(配置网络时:网关,子网掩码,DNS都要跟物理机的配置一致,只有ip是自定义的)
-
nat连接模式(推荐):虚拟机ip和物理机ip不在同一个网段,虚拟机在访问外网的时候,实际是拿着该虚拟机所在的物理机的ip地址去访问外网。( 配置网络的时候: 网关,子网掩码,DNS都要跟VMWare一致 ,只有ip是自定义的,应该在网关的网段内)
-
仅主机模式: 虚拟机和物理机可以通信,但是虚拟机不能访问外网。
大神道士说:
nat是使用物理机的ip做端口映射,局域网内其他主机才能访问,桥接是直接使用局域网内的网段。无线是dhcp 自动分配ip的 每次开虚拟机ip都会变,设置不变的话在网卡配置文件 改成static。
2、命令方式 配置
1. 配置ifcfg-eth0文件
vi /etc/sysconfig/network-scripts/ifcfg-eth0
- 把UUID和MAC地址删除(UUID,HWADDR)
- ONBOOT=yes :开机自动启用网络连接
bootproto=static :设置为none禁止DHCP,设置为static启用静态IP地址,设置为dhcp开启DHCP服务 - 添加:
IPADDR=192.168.37.144 :虚拟机的ip地址,要在VMWare的网关的网段内
NETMASK=255.255.255.0 :子网掩码,要与VMWare的NAT的子网掩码一致
GATEWAY=192.168.37.2 : 网关,要与VMWare的一致
DNS1=192.168.37.2 :DNS
保存该文件并退出:wq
如果是桥接模式:
桥接模式下配置静态IP: https://blog.youkuaiyun.com/u010916338/article/details/78486568
虚拟机与主机桥接模式下设置静态ip: https://blog.youkuaiyun.com/weixin_39082031/article/details/84874524
ifcfg-eth0配置详解: https://www.cnblogs.com/zhanghaoyong/p/7762406.html
2. 删除70-persistent-net.rules
rm -rf /etc/udev/rules.d/70-persistent-net.rules
文件位置: /etc/udev/rules.d/70-persistent-net.rules
文件作用:网卡相关信息
文件修改:ifconfig -a 查看ip配置
修改70-persistent-net.rules文件,mac地址与eht0 eth1 eth2 eth3等一一对应
使用“cat 70-persistent-net.rules”命令,查看网卡设备名称和mac地址的对应关系。
如果在“70-persistent-net.rules”文件中发现了,某个设备名称和mac地址不对应的现象,可以将此文件直接删除,然后重启系统,就可以了。
70-persistent-net.rules文件: https://www.cnblogs.com/dapaitou2006/p/5903756.html
3. 关闭防火墙
service iptables status:查看防火墙的状态
service iptables stop:临时关闭防火墙,重启之后,就不起作用。
chkconfig iptables off: 永久关闭防火墙,启后生效(off/on)
chkconfig
是对服务的开机管理,哪些开机启动哪些不是都可以用chkconfig来决定,如:
chkconfig httpd on
#开机自启动Web服务器
chkconfig dhcpd on --level 35
#开机后在3号与5号界面启动DHCP服务器,其他界面不启动
4. 关闭selinux(secure linux,Linux安全)
## 1.编辑config文件
vi /etc/selinux/config
## 2.将SELINUX修改为 disabled :永久关闭,重启生效 。enforcing强制生效。
SELINUX=disabled
## 常用命令
setenforce 0 //关闭SELinux,临时关闭
getenforce //查看selinux的状态
5. 查看主机名
vi /etc/sysconfig/network
6. 编辑主机名和ip的映射
vi /etc/hosts
在最后添加一行:虚拟机ip 虚拟机主机名
如:192.168.37.14 iamjack
7. 重启Linux
reboot
3、图形化界面 配置
鸟: https://blog.youkuaiyun.com/weixin_43575868/article/details/101197264
4、centos7配置网卡
配置linux网卡
1、检查网卡是否获取到ip
ip a
输出结果,查看网卡:ens33
2、修改网卡配置
vi /etc/sysconfig/network-scripts/ifcfg-ens33
找到:ONBOOT=no
改成:ONBOOT=yes
3、重启网卡
systemctl resatrt network
4、再次检查是否获取ip
ip a
5、使用远程工具来进行连接
三、Linux常用命令
1. 常用
命令 | 含义 |
---|---|
hostname | 查看当前系统的主机名 |
whoami | 查看当前登录用户的 |
ifconfig | 查看虚拟机ip |
shutdown -h now | 关机 |
reboot | 重启 |
pwd | (print working directory)查看光标所在位置 |
clear | 清屏 |
ls / ls 目录 | :查看当前 / 指定目录里面的文件或者文件夹,ls -a :查看所有文件子文件和子文件夹【包括隐藏文件】,详细的看 ls --help |
ll / ll 目录 | :(等价于 ls -l)以长输出的方式显示指定目录下的文件和文件夹 |
touch 文件名 | 创建 一个指定的文件 |
mkdir 文件夹名 | (mkdir:make directory)创建 一个文件夹。命令mkdir -p目录名 : 创建多层目录。[p:parent] |
rm -rf 文件或目录 | r递归 f强制 删除 文件或目录。使用案例:rm -rf /test1 递归删除test1及目录下所有的东西 |
cp [-r] 源文件名|源文件夹 目标文件名|目标文件夹 | 复制 ,-r递归复制子目录及子文件。使用案例:cp a.txt /tmp b.txt /opt 表示把tmp/a.txt 复制到 opt目录下,改名为b.txt |
mv 源文件|源文件夹 目标文件|目标文件夹 | 剪切 、移动 |
cd 目录 | (cd:change directory)进入 指定的目录(注意相对路径和绝对路径) |
tab键使用 | 在linux系统中可以有 命令补全、目录、文件名补全的作用。 |
echo “字符串” | 将字符串输出到控制台上。 |
echo “字符串” > 文件名 | 将原本输出到控制台上的字符串输出到指定的文件中。[覆盖式重定向] |
echo “字符串” >> 文件名 | 将原本输出到控制台上的字符串输出到指定的文件中。[追加式重定向] |
关于对linux命令rm -rf 的理解: https://www.jianshu.com/p/44f24496a3c8
Linux命令大全: https://www.runoob.com/linux/linux-command-manual.html
2. 查看文件命令
命令 | 描述 |
---|---|
ls 目录 | 显示一个指定目录下所有的文件和文件夹 |
cat 文件名 | 查看指定文件的内容【将整个文件的所有内容显示到控制台上】 |
more 文件名 | 分屏显示指定文件的内容,最后一屏自动退出 |
less 文件名 | 分屏显示指定文件的内容, 最后一屏不自动退出 |
head [-num] 文件名 | 查看一个文件最前面num行,默认前10行 |
tail [-num] 文件名 | 查看一个文件最后面num行 ,默认后10行 |
tail -f 文件名 | 监控文件,文件变化实时刷新,在服务器中可监控tomcat的执行日志 |
find | 查找文件位置,例:find / -name *bcd* 查找的是文件名中含有bcd的文件或者文件夹。* 表示任意字符,相当于模糊查询 |
file 文件名 | 查看文件类型。 |
grep | 过滤。例:cat bcd.txt | grep hello 表示:将bcd.txt中的hello字符串过滤出来。其中| 是管道符 |
Linux 监控tomcat的执行日志:
cd tomcat目录/logs tail -f catalina.out
3. 系统命令
命令 | 描述 |
---|---|
top | 查看cpu |
df -h | 查看磁盘空间大小 |
free -m | 查看内存大小 |
free [-b-k-m] [-o] [-s delay] [-t] [-V] | -b -k -m -g :分别以字节(KB、MB、GB)为单位显示内存使用情况。 -s delay :显示每隔多少秒数来显示一次内存使用情况。 -t :显示内存总和列。 -o :不显示缓冲区调节列。 |
sync | 将内存中的数据保存到磁盘上(一般关机前使用) |
4. 创建用户
5. 命令帮助
命令 --help
:如ls --help
命令 -h
:如yum -h
man 命令
:使用man之前要安装man,执行yum install man
。查看man命令的说明时,u向上,d向下,q退出。- 百度
6. 扩展:
f forward向前
b back 向后
q quit 退出
more命令操作:(不常用):
less命令操作(不常用):
四、Linux目录结构
Linux目录结构:倒树状结构,由一个根目录展开
注意:
root:root用户的目录
home:普通用户的目录
etc:放配置文件的目录
opt:手动安装软件的目录
usr:默认软件安装位置
五、绝对路径与相对路径
- 绝对路径:以
/
开头的路径,称之为绝对路径 - 相对路径:不是以
/
开头的路径,称之为相对路径.(直接输入相对这个路径下的目录。如../
或..
:相对于这个目录的上一级目录)
这张图可以看出来,目录中有一个隐藏目录..
,表示上一目录,直接cd ..
就可以进入上一目录。
去任何一个目录,可以使用相对路径,也可以使用绝对路径。
六、VI编辑器
所有的linux系统都自带了这个vi编辑器。
Linux客户端使用问题:如XShell
按了Ctrl S 编辑器就没反应了
问题的原因:CTRL+S表示停止向终端停止输出; CTRL+Q恢复向终端输出流.
如果打开了NERDTree,CTlist或者多个文件,如果Ctrl+Q没反应,先按键数字键 1,再ctrl+q
1.使用说明
- 命令模式:输入命令的模式。
由命令模式进入到输入模式: 输入i
(o
,a
,r
);(i:insert,a:append,r:replace)
由命令模式进入到末行模式: 输入:
【冒号】 - 输入模式:往文件里面写内容的模式。
由输入模式退出到命令模式:用ESC - 末行模式:在末行模式输入(w,q,wq,wq!)就可以退出编辑器了
:q
(已保存或未更改)
:wq
(保存后退出)
:q!
(强制退出)
2.文本编辑器的作用:
修改系统配置文件
创建用户信息文件
编辑程序源代码文件
3.VI编辑器的模式(三种):
命令模式:由命令模式进入到输入模式:点击i(o,a,r);由命令模式进入到末行模式 输入:【冒号】
输入模式:由输入模式退出到命令模式:用ESC
末行模式:在末行模式输入(w,q,wq,wq!)就可以退出编辑器了!
4.VI编辑器的使用:
打开或新建文件:vi <file>
编辑文件:i ,或者o ,或者a,或者r
保存文件: :w <file>(有另存为功能)
退出编辑器:
:q(已保存或未更改)
:wq(保存后退出)
:q!(强制退出)
5.快捷使用:
命令模式即打开时的状态。Esc
从输入模式到命令模式,:
从命令模式到末行模式。
1. 行内快速跳转:
^ 行首
$ 行尾
w 后一个单词首字母
2. 行间快速跳转:
: set nu 显示行号
: set nonu 取消行号
1G 文件首行
#G 转到#行(#号代表的是数字)
G文件末行
vi [+#] 文件名,光标就会自动到达文件的第#行首! (#表示数字!!!)
在末行模式直接输入:#(#代表的是数字),那么就会直接跳转到第#行!
3. 删除操作:
dd 删除光标所在行
3dd 从光标所在行,往下删除三行
d$ 删除光标至行尾
d^ 删除光标至行首
在末行模式直接输入 `:1,20 d` 即可删除第#1行到#2行的所有内容!(#代表的是数字)!
4. 撤销操作: u
5. 复制操作:
yy 复制光标所在行
3yy 复制光标所在行及下面2行
y$ 复制光标至行尾
y^ 复制光标至行首
加#,如20yy -----从光标开始计算
在末行模式直接输入:#,$y 即可复制第#行到文尾的所有内容!(#代表的是数字)!
6. 粘贴操作:
p(小p): 粘贴在光标所在行之后
P(大p) 粘贴在光标所在行之前
7.查找与替换(末行命令):
查找:
由”/”或者”?”开始后跟一个word
按n键查找后一个
按N键查找前一个
替换:
在末行模式,%s/被替换单词/替换成哪个单词
七、Linux管道
管道符:|
如:cat bcd.txt | grep hello
表示:将bcd.txt中的hello字符串过滤出来。
即先将bcd.txt 用cat读取到控制台,然后用grep过滤hello字符串。
管道使用: https://www.jianshu.com/p/9c0c2b57cb73
管道说明:https://www.cnblogs.com/zhonglongbo/p/8591901.html
八、权限
1. 文件/目录 的权限
权限 | 简写 | 数字 | 对普通文件的作用 | 对文件夹的作用 |
---|---|---|---|---|
读取(read) | r | 4 | 查看文件内容 | 列出文件夹中的文件(ls) |
写入(write) | w | 2 | 修改文件内容 | 在文件夹中删除、添加或重命名文件(夹) |
执行(execute) | x | 1 | 文件可以作为程序执行 | cd 到文件夹 |
无 | - | 0 | 表示没有该权限 | 无意义 |
注意: root用户:不受权限限制,是一个超级的存在
2. 查看文件/目录的权限
ll
命令:输出显示文件详细信息
[第1位]:文件类型,上图中d表示是一个目录
-
:表示这是个普通文件d
:表示这是个目录(directory)l
:这是一个链接文件(link)
[第2位-第4位]:表示属主对当前文件的操作权限
[第5位-第7位]:表示属组中的用户对当前文件的操作权限
[第8位-第10位]:表示其它人【既不属于属主、也不属于属组中的用户】对当前文件的操作权限
[第11位]:文件个数,如果是文件肯定是1,如果是目录,表示目录中的文件数
3. 修改权限
3.1 更改文件权限,方式1:chmod [ugoa][+-=][rwx] <file> (用逗号分隔)
[ugoa]
- 属主(user):
u
如:chmod u+rwx b.txt
:给b.txt的属主权限添加 rwx 权限 - 属组(group):
g
如:chmod g+rwx b.txt
:给b.txt的属组中的用户权限添加 rwx 权限 - 其它(other):
o
如:chmod o+rwx b.txt
:给b.txt的其他用户权限添加 rwx 权限 - 所有用户(all):
a
如:chmod a+rwx b.txt
:给b.txt的所有用户权限添加 rwx 权限
修改完后:
[±=]
+
:添加权限
如:chmod o + r b.txt
,给b.txt的其他用户权限添加 r权限-
:删除权限
如:chmod a-rwx b.txt
,给b.txt的所有用户权限,取消rwx权限
结果为:
=
:赋值权限
如:chmod a=w b.txt
,给b.txt的所有用户权限赋值为w权限
结果为:
3.2 更改文件权限,方式2:chmod ### <file>
#
表示数字,数字代表的权限如下:
r w x
1 0 0 = 4 ,表示r--
,仅可读
0 1 0 = 2 ,表示-w-
,仅可写
0 0 1 = 1 ,表示--x
,仅可执行
1 1 1 = 7 ,表示rwx
,最高权限
0 0 0 = 0 ,表示---
,没有权限
1 1 0 = 6 ,表示rw-
,可读可写,不可执行
1 0 1 = 5,表示r-x
,可读可执行,不可写
0 1 1 = 3,表示-wx
,可写可执行,不可读
命令:
chmod 777 b.txt
:表示,分别把user,group,other分别设置为777,即最高权限。
结果:
chmod 000 b.txt
:把user,group,other权限设置为000,即没有权限。
结果:
chmod 640 b.txt
:把user设为rw-,group设为r–,other设为—。
结果:
3.3 更改文件所有者:chown <owner> <file>
如:chown rose b.txt
,将b.txt的所有者设置为rose用户
结果:
3.4 更改文件所属组:chgrp <group> <file>
如:``,将b.txt的所属组设置为rose属组。
那么加3.3的测试,现在的结果就是 属主是rose用户,属组是rose组。
注意:在创建用户的时候,Linux会自动创建一个同名的属组,只有他一个用户。
3.5 同时更改所有者和所属组:chown <owner:group> <file>
如:chown root:rose b.txt
,将b.txt的属主和属组分别设置为root用户和rose组
九、快照(VMWare中的Linux快照)
通过VMWare的快照可以保留虚拟机的状态,以便以后可以返回相同的状态。
十、用户和用户组
history:查看你输入过的命令[200]
用户
-
添加用户:
useradd <username>
,如useradd tom
,不仅会添加tom用户,还会在home目录下创建tom用户的目录。且创建同名用户组tom组,即tom的用户组是tom组
-
设置密码:
passwd <username>
,如passwd tom
,设置tom用户的登录密码
注意:若无<username>
则默认 会修改root用户的密码 -
删除用户:
userdel [-r] <username>
,-r
表示同时删除该用户的目录。如:userdel -r rose 不仅会删除rose用户,还会删除home下的rose目录
-
禁止/解禁用户:
usermod [-L|-U] <username>
,-L
即lock,锁定用户,-U
即unlock,解除锁定用户。如:usermod -L tom
,锁定tom用户。
注意,如果tom用户正在使用,则这次登录仍会正常使用,下次登录将被拒绝。 L和U必须是大写,具体看usermod --help
usermod -U tom
,解锁tom用户。 -
切换用户:
su <username>
,然后输入你将要切换到的目标用户的密码。输入exit
退出这个目标用户。
注意:root用户进任何用户都不用密码。
-
查看当前用户:
whoami
/who am i
-
查看所有已登录用户:
who
-
查看所有登录用户记录:
last
-
查看你输入过的命令:
history
用户信息文件: /etc/passwd 可通过cat /etc/passwd
进行查看,字段之间都是用冒号隔开,
格式为:用户名:口令:用户标示符号:组标识符号:注释性描述:宿主目录:命令解释器
如:jerry:x:504:504::/home/jerry:/bin/bash
用户密码文件: /etc/shadow 可通过cat /etc/shadow
进行查看。密码都被加密了,看了也白看。
用户组
- 增加用户组:
groupadd <groupname>
,如:groupadd tom
,添加tom用户组 - 创建用户时指定用户初始组:
useradd -g <initial_group> <username>
如:useradd -g tom jerry
,创建Jerry用户,且Jerry用户的组为tom组
注意:创建时,tom组必须存在。 - 删除用户组:
groupdel <groupname>
- 修改用户所在初始组:
usermod -g <groupname> <username>
如:usermod -g group1 tom
- 查看用户所属组:
groups <username>
如:group tom
,查看tom用户所在用户组
组信息在:/etc/group 文件中
格式为:组名:组口令:GID:组成员
组密码信息在:/etc/gshadow文件中
十一、Linux的软连接和硬链接
硬链接文件:ln 源文件 链接文件
软链接文件:ln -s 源文件 链接文件
注意:软连接必须使用绝对路径,如果使用相对路径可能会出错。
比如:
在a目录下的a.txt创建软连接(使用相对路径)到b目录下的b.txt,那b.txt的连接会用相对路径指向b目录的a.txt,文件会找不到 。
但是:硬连接都可以用,因为硬连接直接连接的是文件的inode,而不是路径。
ln :link
1、硬链接
使用:
硬链接文件:ln 源文件 链接文件
,(ln或link) 硬连接文件不完全依赖于源文件
如:ln /tmp/testlink/aaa.txt /tmp/bbb.txt
,表示:创建aaa.txt的硬链接到/tmp/bbb.txt。这时,这两个文件有同一个inode,这时如果删除aaa.txt还有bbb.txt可以访问真实文件,如果删除bbb.txt还有aaa.txt可以访问真实文件。
2、软连接
使用:
软链接文件:ln -s 源文件 链接文件
,软连接文件依赖于源文件
如:
软连接不依赖与源文件,既可以创建不存在的文件的软连接,又可以给目录创建连接,但是,源文件删除后,软连接将不能用。
这帖子可以,参考的这个帖子:http://www.360doc.com/content/19/0623/21/99071_844403814.shtml
十二、Linux 压缩和解压
1、 .zip 文件
注意:windows的zip格式的压缩和linux系统的zip压缩是一致的(可以互相压缩和解压缩)!
1.zip压缩格式:
压缩文件:zip 压缩文件名 源文件
压缩目录:zip -r 压缩文件名 源目录
注意:压缩文件有可能比源文件大(这是由于压缩格式的信息也在压缩包里面)!
2.解压缩zip压缩的文件:
unzip 压缩文件
2、 .gz 文件
gz压缩格式是linux所特有的压缩格式,但可以在windows上解压,不能压缩目录,只能压缩子文件
.gz格式解压和压缩(gz压缩格式是linux所特有的压缩格式,但可以在windows上解压,不能压缩目录,只能压缩子文件!)
1.压缩:gzip 源文件 注意:源文件会消失
gzip -c 源文件 > 压缩文件 注意:源文件会保留(重定向是把命令的结果输出到一个文件中!)
gzip -r 目录 注意:这会压缩该目录下的子文件
2.解压: gzip -d 压缩文件
gunzip 压缩文件
gunzip -r 目录 (解压缩目录里面的文件)
3、 .bz2 文件
.bz2格式解压和压缩( bzip2压缩目录会报错)
1.压缩:bzip2 源文件 注意:源文件会消失
bzip2 -k 源文件 注意:源文件会保留
2.解压: bzip2 -d 压缩文件 注意:-k保留压缩文件
bunzip2 压缩文件 注意:-k保留压缩文件
4、 .tar.gz 文件(常用)
tar命令:
-z
:通过gzip过滤归档(即打tar包后用gzip压缩,解tar包前后gzip解压)
-j
:通过bzip2过滤归档(同上,用bzip2方式压缩或解压)
-c
:create,创建tar包
-x
:extract,提取tar包内容,解压
-v
:显示过程-f
:指定打包后 在本地的文件名,或要解压的文件
压缩(需要自己写后缀名)
- 方式1:先把文件们打成tar包,然后用gzip压缩成gz
1.压缩: tar -cvf 打包文件名 源文件(源目录) 选项: -c : 打包 -v : 显示过程 -f : 指定打包后的文件名 例子:tar -cvf hello.tar hello.txt gzip hello.tar 压缩成hello.tar.gz gzip -d hello.tar.gz 解压成hello.tar bzip2 hello.tar 压缩成hello.tar.bz2 bzip2 -d hello.tar.bz2 解压成hello.tar
- 方式2:一步到位(推荐)
tar -zcvf 目标文件(打包后的文件) 源文件
z过滤,c打包,v显示过程,f打包成的文件压缩: tar -zcvf 压缩包名.tar.gz 源文件(可以为多个,文件之间用空格隔开,压缩包名.tar.gz也可以写绝对路径) 选项:-zc :压缩(c)为.tar.gz格式(z)
解压
-C 指定要解压到的目录
- 方式1:先把文件用gzip解压缩成tar,然后通过tar解出文件
gzip -d hello.tar.gz 解压成 hello.tar tar -xvf hello.tar -C /tmp 把hello.tar解压到tmp目录下
- 方式2:一步到位(推荐)
tar -zxvf 压缩包 -C 要解压到的目录
解压: tar -zxvf 压缩包名.tar.gz -C 要解压到的文件夹 选项:-zx :解压(x).tar.gz格式(z)
5、.tar.bz2 文件
与.tar.gz同理
.tar.bz2格式解压和压缩
压缩: tar -jcvf 压缩包名.tar.bz2 源文件
选项:-j :压缩为:.tar.bz2格式
tar -jxvf 压缩包名.tar.bz2
选项:-x :解压.tar.bz2格式
案列(指定解压目录):tar -jxvf hello.tar.bz2 -C /opt/installDir
十三、Linux的软件安装
Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的
- /usr:系统级的目录,可以理解为C:/Windows/,
/usr/lib理解为C:/Windows/System32。
/usr/local:用户级的程序目录,可以理解为C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。 - /opt:用户级的程序目录,可以理解为D:/Software,opt有可选的意思,这里可以放置第三方软件,当你不需要时,直接rm -rf掉即可。
1、 rpm(以安装jdk为例,一般用tar.gz解压安装)
1.RPM(RedHat Package Manager),Rethat软件包管理工具,类似windows里面的setup.exe
是Linux这系列操作系统里面的软件安装工具,它虽然是RedHat的标志,但理念是通用的。
2.RPM包的名称格式:
apache-1.3.23-11.i386.rpm
“apache”:“软件名称”
"1.3.23-11":软件的版本号,主版本和此版本
"i386":是软件所运行的硬件平台
“rpm”:文件扩展名,代表RPM包
3.对于RPM包而言,常用命令:默认会自动配置环境变量
-
查询:
rpm -qa
:查询所安装的所有rpm软件包
q:query , a:all
rpm -q tomcat
:查询名为tomcat的已安装程序
rpm -qa | grep X
:查询名包含X的已安装程序 -
安装:
rpm -ivh RPM包全路径名称
:
i=install,安装
v=verbose,提示信息
h=hash,进度 -
卸载:
rpm -e RPM软件包
案例:jdk-7u67-linux-x64.rpm的安装:
查询:rpm -qa | grep jdk
将jdk-7u67-linux-x64.rpm 移动到/opt目录下:
cd /opt
mkdir DevSoft
mv jdk-7u67-linux-x64.rpm DevSoft
chmod +x jdk-7u67-linux-x64.rpm //添加可执行权限
灵魂就下面这一句,上面都是准备工作:
rpm -ivh jdk-7u67-linux-x64.rpm //安装 ,默认安装到/usr/java/目录下了
rpm -qa | grep jdk //再次查询
配置环境变量:在profile文件后追加
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_67
# ---下面这一句不配置也可以------
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# --------------------------------------
export PATH=$PATH:$JAVA_HOME/bin 注意:这里等号两侧不要留空格;
保存并退出,并使得配置生效
source /etc/profile 重新加载配置文件
查看java版本:java -version
2、yum(以安装mysql为例)
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
全自动安装: yum -y install 包名
:自动选择y,全自动
安装: yum install 包名
:手动选择y or n
卸载: yum remove 包名
案例 安装mysql:
需要安装mysql和mysql-server。mysql-devel选装
一、 安装mysql:centos6
1. 使用root用户: su root
2. 安装
yum install mysql(这是安装的mysql的客户端!!!)
yum install mysql-server 这是安装的mysql的服务端!!!)
yum install mysql-devel(可选)
3. 修改配置信息,添加: vim /etc/my.cnf
(添加一个mysql节点)
[mysql]
# 解决中文乱码
default-character-set=utf8
[mysqld]
# 解决中文乱码
character-set-server=utf8
# select时忽略列名大小写
lower_case_table_names=1
4. 启动mysql:service mysqld restart/stop/start
5. 配置mysql用户名和密码, mysqladmin -u root password 123456
6. root用户登录mysql -u root -p 123456
7. 创建mysql用户:create user 'hive' identified by '123456';
8. 授权:grant all privileges on *.* to 'hive'@'%' with grant option
*.* :所有库的所有表。 hive:是用户名,%:所有host都可以访问
9. flush privileges;
10. 重启一下这个mysql服务。
11. 使用hive用户创建数据库并修改连接信息。可以在物理机连接这个mysql,并操作
create database hive;
yum的服务器仓库(了解):
cat /etc/yum.repos.d/CentOS-Base.repo
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
http://
ftp://
file:///(最后一个表示的是根目录)
3、tar.gz解压配置安装(以tomcat安装为例,jdk类似)
以安装tomcat为例:安装Tomcat必须要有jdk环境变量。
安装配置jdk环境变量跟tomcat环境变量配置一样。也可以参考rpm安装的案例。
1. 解压:tar -zxvf apache-tomcat-7.0.65.tar.gz -C /opt/devsoft/ //解压到要安装的目录
2. 复制tomcat解压的目录的全路径名。
cd /opt/devsoft/
mv apache-tomcat-7.0.65/ tomcat7 //修改文件夹的名字,可以不改
cd tomcat7/ //进入到tomcat7目录中
pwd //查看当前目录的全路径,并复制全路径名
3. 配置环境变量
vim /etc/profile // 然后末行模式$ 到文件尾,添加以下内容
export CATALINA_HOME=/opt/devsoft/tomcat7 到tomcat的bin的上一级目录
export PATH=$PATH:$CATALINA_HOME/bin 注意:等号两侧不能有空格
4. 启动tomcat
startup.sh启动tomcat
ps -ef |grep tomcat 查看tomcat是否已经启动!
或直接访问tomcat主页:虚拟机地址:8080
https://blog.youkuaiyun.com/qq_24394093/article/details/89401180
十四、Linux重要命令(面试)
ps -ef | grep 服务名
: ps(process status:进程状态)。-e:显示所有进程,-f:以特定格式显示。|
管道符,grep:过滤,在内容中查找。
//这种方法可以看到自己输入的这个的命令的进程,结果最少为2条,才算已经启动。
top:查看cpu
df -h:查看磁盘大小
free -m:查看内存大小
find / -name *bcd*:查找文件名中含有bcd的文件或者目录
cat 文件 | grep 字符串:查看一个文件的内容是否含有指定的字符串信息
查看一个服务是否启动的:
netstat -an | grep 端口号 // 该端口号必须为LISTENING(监听)才算启动
ps -ef | grep 服务名 : //这种方法可以看到自己输入的这个的命令,结果最少为2条,才算已经启动。ps(process status:进程状态)。-e:显示所有进程,-f:以特定格式显示。
service 服务名 status
杀死一个进程:
Kill [-9] pid //[-9:强制]杀死pid为pid的进程
十五、Linux的Shell脚本
执行脚本的两种方式:
sh 脚本名称:这种执行脚本的方式 不需要 当前用户 有该文件的执行权限。
./脚本名称:直接 执行当前目录下的某个脚本,要求:当前用户有该文件的可执行权限
./abc.sh zhangsan lisi
最简单的脚本:
#!/bin/bash // 这一句必须有
echo "hello wolrd";
echo "hello linux"
## 1. if语句:
if [ command ]; then
符合该条件执行的语句
fi
## 2. if…else语句:
if [ command ];then
符合该条件执行的语句
elif [ command ];then
符合该条件执行的语句
else
符合该条件执行的语句
fi
## 3. for语句:
for(( i =0;i<10;i++))
do
循环语句;
done
案例
#!/bin/bash
for (( i=0;i<10;i++))
do
echo "this is the $i time"
done
十六、项目部署
注意:如果用的物理机的mysql,需要修改数据库连接信息,且修改物理机的mysql的项目中用的用户的权限。参考mysql安装时的修改权限
# 修改用户权限, [注]by后面跟的是密码
# *.*:任意库的任意表 。'root'@'%':任意host可以访问root用户
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
# 刷新权限
flush privileges;
-
然后 把项目打成war包
-
复制war包到linux的tomcat的webapps目录下(war包会被自动解压)
-
访问:
http://虚拟机地址:8080/项目名/项目资源
部署maven项目:
https://blog.youkuaiyun.com/qq_32865713/article/details/98511886
十七、其他
Linux下的命令笔记(作者:发则韩
)https://blog.youkuaiyun.com/weixin_43575868/article/details/103155499
Ctrl + F
以下防火墙设置均为 上述链接 内容
1、开启防火墙
systemctl start firewalld
2、开放指定端口
firewall-cmd --zone=public --add-port=1935/tcp --permanent
命令含义:
–zone #作用域
–add-port=1935/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
3、重启防火墙
firewall-cmd --reload
4、查看端口号
netstat -ntlp //查看当前所有tcp端口·
netstat -ntulp | grep 2181 //查看所有1935端口使用情况·
火墙设置 参考
十八、Linux下查看日志的常用命令
tail -f 文件名
/tail -f n 文件名
(重要)-
tail -n 文件名
查看后n行
(tail 100 catalina.out
读取catalina.out尾部100行) -
tail -f n 文件名
查看后n行,并循环读取文件内容
(tail -f 100 catalina.out
读取catalina.out尾部100行,并循环读取)
从而达到动态读取文件日志的目的
-
cat catalina.out | grep -C 5 '1911040000317463882'
(重要)
查找1911040000317463882的前后5行
如果前后5行,显示不全,并且看不出来什么东西,可以看合适的行数。
如果看得很多的话,就需要用less命令来分页了
cat catalina.out | grep -C 2000 '1911040000317463882' | less
(注意:xshell客户端的缓冲区默认是1024,所以只能看到1024行记录,如果要看很多日志,可以修改xshell缓冲区大小,或者下载文件)
head -n 文件名
查看前n行
more
分页显示,只能向后看,不能向前看
less
分页显示,可以向前,向后看
grep -i
忽略大小写
cat catalina.out | grep "ERROR" -C 1000 | less
-C 1000
前后1000行-A 5
之后5行-B 5
之前5行
less
用法:
1.输入/
输入关键字查询想要内容(向下查找文件内容,用n、N查看下一个或上一个结果),例:/ERROR
-
n
键向前继续显示搜索结果 -
Shift+n
键向后复看搜索结果
2.输入?
输入关键字,向上查找文件内容
还可以使用正则表达式,如
//\' '中间是有一个空格,这个表示查询10点11分到10点18分数据
2019-07-15\ 10:1[1-8]
//同理这个是10点到19点
2019-07-15\ 1[0-9]:
//同理这个是10点到23点日志
2019-07-15\ 1[0-9]|2019-07-15\ 2[0-3]
less
命令用法:
- j、k:向下和向上滚动一行
- 回车键:向下滚动一行
- 空格:向下翻一页
- f、b:向下、向上翻一页,也可以用vim中的 ctrl + f、ctrl + b
PageUp、PageDown:向上、向下翻一页 - d、u:向前、向后翻半页,也可以用vim中的ctrl + d和ctrl + u
- gg:回到文件开始
- G:回到文件末尾
- /:向下查找文件内容,用n、N查看下一个或上一个结果
- ?:向上查找文件内容,n、N查看下一个或上一个结果
- F:向前读模式,等同于 tail -f
- q:退出less命令
-
-
统计命令:
wc
wc -l 文件
:统计文件有多少行
wc -w 文件
:统计文件有多少单词
wc -c 文件
:统计文件有多少字节
修改xshell缓冲区大小