Linux系统基础学习笔记1

个人学习笔记,如有错误还请告知。谢谢

文章目录

一、简介

实际开发中,开发一般是在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

  1. 把UUID和MAC地址删除(UUID,HWADDR)
  2. ONBOOT=yes :开机自动启用网络连接
    bootproto=static :设置为none禁止DHCP,设置为static启用静态IP地址,设置为dhcp开启DHCP服务
  3. 添加
    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.csdn.net/u010916338/article/details/78486568

虚拟机与主机桥接模式下设置静态ip: https://blog.csdn.net/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.csdn.net/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. 命令帮助

  1. 命令 --help:如ls --help
  2. 命令 -h:如yum -h
  3. man 命令:使用man之前要安装man,执行 yum install man。查看man命令的说明时,u向上,d向下,q退出。
  4. 百度

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)r4查看文件内容列出文件夹中的文件(ls)
写入(write)w2修改文件内容在文件夹中删除、添加或重命名文件(夹)
执行(execute)x1文件可以作为程序执行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.csdn.net/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; 
  1. 然后 把项目打成war包

  2. 复制war包到linux的tomcat的webapps目录下(war包会被自动解压)

  3. 访问:http://虚拟机地址:8080/项目名/项目资源

部署maven项目:

https://blog.csdn.net/qq_32865713/article/details/98511886

十七、其他

Linux下的命令笔记(作者:发则韩
https://blog.csdn.net/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下查看日志的常用命令

  1. 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行,并循环读取)
      从而达到动态读取文件日志的目的

  2. 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命令
  • 转载https://ssrvps.org/archives/7713

  1. 统计命令:wc

    wc -l 文件 :统计文件有多少

    wc -w 文件 :统计文件有多少单词

    wc -c 文件 :统计文件有多少字节

修改xshell缓冲区大小

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值