Linux学习笔记
操作系统
操作系统概念
操作系统:operating system 简称OS
1、管理和控制计算机的硬件和软件资源的计算机程序,最基本的系统软件,其他软件需要在此基础上才能运行。
2、用户和计算机交互的桥梁
3、计算机硬件和软件交互的桥梁
操作系统类型
DOS Windows /WindowsServer Unix Linux(免费:copyLeft)
命令行 图形界面 命令行 命令行
单用户 单用户(pc) 多用户 多用户
单任务 多任务 多任务 多任务
Linux
Linux概念
1、自由的,免费的,开源的,类Unix操作系统
2、支持多用户,多任务
3、用户和计算机交互的桥梁,计算机硬件和软件交互的桥梁
Linux特点
性能:
WindowsServer软件 1.8G
Linux 软件 300M
价格:开源,免费
稳定性:长时间持续不间断工作(环境:无尘,无噪音等等)
安全:自带防火墙,入侵检测和安全认证工具
Linux继承unix的设计,用户和组 权限管理
开源的系统,修复块
可移植性,可分割:
嵌入式产品
Linux组成
kernel: 系统内核,心脏,存储管理,CPU和进行管理,文件系统,设备和驱动管理,网络,系统调度
shell: 系统交互页面,提供用户和内核交互的一套接口
接受用户输入的命令(解释),送入内核执行
文件系统:文件存放在磁盘等设备上的组织形式,文件系统:ext3,ext3,NFS
应用程序:
系统内嵌一套应用程序
Linux和windows的区别
1、Linux中严格区分大小写
2、Linux一切皆文件
3、Linux不识别后缀
*.sh 脚本文件,提高文件的可读性
*.rpm 二进制软件包
*. conf 配置文件
项目部署在Linux的优势
1.linux本身是网络操作系统,支持所有TCP/IP协议,网络功能是内核中六大模块之一
2.linux和unix兼容,unix是早期的服务器霸主,现在份额逐渐让给linux了
3.linux是多用户多进程系统,windows是单用户伪多用户系统,不适合服务器
4.互联网开放,linux也是开放的,像apach这样的开放软件优先在linux上实现
5.linux是模块化的,可裁减,出现问题只要关闭一个模块,windows只有微软自己才会裁减
6.linux的用户管理严格,病毒难以破坏,windows漏洞百出,用户管理混乱
7.linux硬件需求小,大部分版本免费,总得成本低
8.windows常会蓝屏、需要磁盘清理,linux下kernel panic几年一遇,也可以好几年不关机,一两年一次磁盘清理
9.win的图形界面浪费了太多资源,linux使用x-window systerm,平时根本不用开图形界面
10.Linux系统是最具稳定性的系统;事实上,以Linux系统的美国服务器用户在出现系统崩溃的反馈上比例非常少。
11.Linux是天生就比Windows更具安全性,无论是从服务器系统,桌面上或在嵌入式环境Linux系统都更具安全性。
12.Windows服务器通常需要频繁的硬件升级,以容纳不断增加的资源需求,Linux服务器更灵活性和可扩展性,无论处理器或机器架构都能很好地进行资源上的容纳。
13.因为软件本身是免费,因而Linux服务器在应用开发上更能节约成本。即使有企业购买了专业的版本,但是在性价比上它也比window或者其他系统更加高因为它通常包括基于用户的许可和一系列昂贵的附加软件。
14.Linux服务器更具自由性,无论用户选择什么样的业务,都可以用Linux系统对业务进行更加自由的开发。
Linux安装
1.磁盘类型:
IDE硬盘 ,老式硬盘
SCSI硬盘 ,服务器使用硬盘
SATA硬盘 ,pc笔记本使用的硬盘
U盘
光盘
2.分区
/ 根目录 20G
bin/sbin/etc/dev/boot/root/home/mnt/sys/tmp... ...
挂载:20G磁盘空间,挂载之后才可以使用(将磁盘设备挂载到某一个文件夹上的操作:挂载)
把20G挂载到/根目录,系统根据用户划分的分区,进行存储空间的挂载操作
分区:划分/根目录和其下其他目录所独享的存储空间
将存储设备划分成多份,挂载到不同的文件夹上
/ 17G #/根分区:必须单独划分
20G boot 200M #swap分区:启动分区,200MB
Swap 2G #boot分区:交换分区,用于作为临时内存,建议设置成内存的2倍
默认分区:
注意:
vt-x功能没有开启,intel virtual Technology
进入BIOS 页面选择,intel virtual Technology,开启即可
3.磁盘格式化
逻辑格式化操作
将整个文件系统划分成等大小的数据块
在分区列表中建立二维表格(id,修改时间,权限,数据的存储位置等等)
Linux目录结构
Linux中的目录结构
/ 根目录
bin sbin etc dev tmp usr home root boot mnt … …
linux操作系统最顶层目录:/根目录
在此根目录下,默认创建多个子目录,每个目录中存储不同的数据,各个目录共享/根目录的存储空间
Linux常见目录:
bin/sbin: 存储可执行的命令
etc: 配置目录,存储配置信息
dev: 设备目录,存储设备文件
boot: 引导加载程序文件
单独划分200MB空间
root: 管理员root的家目录
home: 普通用户的家目录
lib: 系统库
sys/proc: 系统目录
mnt/mdeia/misc: 挂载目录,系统提供的三个挂载目录
例如: linux --- U盘
使用存储设备,将设备挂载到某一个目录上,才可以使用此存储设备
usr: 安装软件目录,用户程序,类似于windows上的d:/program file
opt: 安装软件目录,系统程序,类似于windows上的c:/program file
VM
概念:
VMware 软件:virtual Machine Ware , 虚拟的机器 器皿
安装
安装目录:不要包含中文和空格
安装位置:不要存放在c盘根目录,单独创建一个空目录,存储虚拟机,删除虚拟机,会将虚拟机所在的目录中的所有内容全部移除
虚拟机的网络设置
NAT模式:网络地址转换模式,宿主机和客户机形成一个局域网
宿主机所在的局域网中的其他客户机是无法直接访问客户机(centos)
桥接模式:客户机完全等价于一台物理机,一定选择一块物理网卡
避免ip冲突
Nat模式下网络设置
方式一:动态ip地址
自动获取ip地址:DHCP
方式二:静态ip地址
手动设置
1. 修改网卡配置
添加如下配置
BOOTPROTO=static|none 静态获取ip地址,dhcp动态获取IP地址
IPADDR=192.168.227.66 ip地址
GATWAY=192.168.227.2 网关
NETMASK=255.255.255.0 子网掩码
DNS1=114.114.114.114
2. 启动网卡
systemctl restart network.service
Xshell的使用
远程访问linux操作
1. 安装xshell
2. 获取Linux操作系统的ip地址
ifconfig / ip addr
ip地址设置:
编辑网卡信息:vi /etc/sysconfig/network-scripts/ifcfg-ens33
默认在文本编辑器中的操作模式是:命令模式
VIM编辑器的基本操作:
vim/vi 文件名 , 编辑某个文件
按下i , 进入修改模式
将NOBOOT=yes
按下ESC,退出修改模式,进入命令模式
按下冒号(:),输入wq 保存退出
3. 重启网卡:
方式一:service network restart
方式二:systemctl restart network , centos7 +
4. 使用xshell连接Linux
Linux常用命令(一)
1、快捷操作
清空屏幕内容:
clear或ctrl+l
查询历史命令:↑键:
智能补全操作:TAB键
取消当前命令:ctrl+c
在vim编辑器中的命令模式下,快捷退出:shit+zz / ZZ
2、命令提示符
[root@localhost ~]#
[zhangsan@localhost ~]$
1. root: 用户名称
2. @ 分隔符:分隔用户名和主机名
3. localhost:主机名
~ :当前路径
~表示当前用户的家目录
root超级管理员的家目录:/root
普通用户的家目录:/home/用户名
4. $/#:当前用户身份标识
# 表示当前用户是超级管理员
$ 表示当前用户是普通用户
3、帮助命令
help + 命令名称
man + 命令名称
命令名称 --help //显示此帮助信息
4、pwd
pwd (print working directory):查看当前的工作目录
5、ls
ls (list) : 列出指定目录下的所有内容
语法:ls [-参数] [文件路径]
-a 列出当前目录所有内容,包括隐藏文件(linux中以.开头的文件都是隐藏文件)
-l 列出当前目录所有详细的内容,不包含隐藏文件
文件的权限 文件的所属者 所属组 大小 操作时间 文件名称
缩写:ll 表示 ls -l
-al 列出当前目录所有详细的内容,包括隐藏文件
-hl 在长格式下文件大小人性化的显示 B KB MB GB
-R 遍历指定目录下的所有内容
6、mkdir
mkdir (make directories) : 创建新的目录
-p 父目录不存在的情况下,自动生成父目录
-v 显示命令执行过程的描述信息
7、cd
cd (change directories) : 切换目录
相对路径:参考当前位置,进行切换
绝对路径:从根目录开始切换
cd . 进入当前目录(刷新当前目录)
cd .. 进入上一级目录
cd - 进入上一次所在目录
cd 返回家目录
cd ~ 返回家目录
8、rmdir
rmdir (remove empty directories) : 删除空目录
-p 父目录不存在的情况下,自动生成父目录
-p 一级目录/二级目录/三级目录/.../
-v 显示命令执行过程的描述信息
9、rm
rm (remove) : 删除文件和目录
语法:rm [-参数] [文件路径]
-r (recursive) : 递归删除
-f : 强制删除,不提示
rm -rf 配合使用,默认删除当前位置的所有内容
注意:
rm -rf / 强制删除根目录下所有内容
rm -rf * 强制删除当前目录下所有内容
rm -rf . 强制删除当前目录下所有内容
10、touch
touch : 生成一个空文件
11、cat/tac
cat:查看文件中的内容
tac:倒序查看文件中的内容
12、more/less
more/less: 分页查看文本内容
more -n 文件名称
空格: 向下翻页
b:向上翻页
less -n 文件名称
空格: 向下翻页
b:向上翻页
👆
👇
d和u:只翻动半页
13、head/tail
head:显示指定的前多少条数据(默认显示10条)
head -n 条数 文件名称
tail:显示指定的后多少条数据(默认显示10条)
tail -n 条数 文件名称
#输出文件末尾行(默认10行),当文件有追加时,会输出后续添加的行,不会中断输出,除非ctrl+c中断
#-f 即 --follow=file.log
tail -f file.log
#输出文件末尾包含关键字的行,当文件有追加时,会输出后续添加的行,不会中断输出,除非ctrl+c中断
#-f 即 --follow=file.log
tail -f file.log | grep "关键字"
#输出文件的后100行中包含关键字的行(-n 100 即 --lines=100)
tail -n 100 file.log | grep "关键字"
#输出文件的后100行中包含关键字的行和该行的后10行
tail -n 100 file.log | grep "关键字" -A10
#输出文件的后100行中包含关键字的行和该行的前10行
tail -n 100 file.log | grep "关键字" -B10
#输出文件的后100行中包含关键字的行和该行的前后10行
tail -n 100 file.log | grep "关键字" -B10 -A10
14、cp
cp (copy) : 文件的复制
语法:cp [选项]... 源文件... 目录
例如:
cp /root/helloworld.java /root/aa/bb/cc/ , 复制一个文件到指定位置
cp -r /root/aa /root/bb ,复制一个目录到指定位置(目录中的所有内容都被复制)
cp 文件路径1 文件路径2 ... 目标位置路径 , 一次性将多个文件复制到指定目录
15、mv
mv (move) : 剪切
语法:mv [选项]... 源文件... 目录
-f 是否进行覆盖询问
例如:
mv cc aa ,剪切cc目录到aa目录中(目录中的所有内容都被剪切)
mv helloworld.java aa , 剪切一个文件到aa目录中
mv 文件1 文件2 目录1 目录2 目标目录 ,一次性移动多个文件和目录到指定目录(最后一定得是一个目录)
mv ./文件1 ./文件2 , 给文件更改名称
16、wc
wc (work count) : 统计文档中的行数,字数,字符数等等
-c 统计字节数
-l 统计行数
-w 统计单词数
例如:
wc 文件
wc -c -l 文件
17、echo
echo : 字符串的输出,类似于System.out.println('内容')
直接将指定内容进行输出
echo 文本数据
将指定内容写入文件中
echo "\"一路向南\"" > myfilms ,如果文件不存在,则自动创建
echo "\"一路向南\"" >> myfilms ,追加数据到指定文本中
显示命令执行的结果
echo `命令` 注意:此处使用反引号将命令包裹起来 (tab键上面按键)
例如:
echo `ls`
echo `date`
18、ln
ln (link)
语法:ln -s 源文件/目录 目标链接名称
symbolic 符号链接 (常用)
例如:
ln -s 11/22/33/44/55/66/77/date date.ln 给文件创建快捷方式
ln -s 11/22/33/44/55/66/77 77dir.ln 给目录创建快捷方式
硬链接:
类似于创建副本,将目标文件或者目录复制一份,实时同步,占据同样大小的物理空间
删除链接源文件,不会删除目标文件
不允许给目录创建硬链接
不能跨文件系统
符号链接:
类似于快捷方式,存储的是路径
删除链接源文件,目标文件失效
允许给目录创建符号链接
能跨文件系统
19、grep
grep 数据的检索查询
语法:grep 参数 过滤条件 文件名称
例如:
grep "public" helloworld2.java
grep -E "[1-9]{6}" helloworld2.java
grep ^public helloworld2.java 查询以public开头的内容
grep public$ helloworld2.java 查询以public结尾的内容
grep '交易对账文件查询' 2022-05*/0.log 查询多个文件中的指定内容
Linux常用命令(二)
1、文件权限管理
文件权限分类
读权限:读取文件信息,查询文件内容
写权限:修改文件的内容
可执行权限:只针对脚本文件(给脚本文件赋予可执行权限,脚本才能够执行)
目录权限分类
读权限:读取目录信息,查看目录内容
写权限:对目录中的内容进行修改,添加,删除
可执行权限:进入目录的权限
2、Linux三种脚本权限
读权限:R 4
写权限:W 2
可执行权限:X 1
权限描述位(10位)
ls -l 查看文件的详细描述信息
例如: 权限 属主 属组 大小 操作日期 文件名称
drwxr-xr-x. 3 root root 16 3月 25 16:12 mydir
分析: drwxr-xr-x
d rwx r-x r-x
第一位:文件类型 读、写、执行权限 读、执行权限 读、执行权限
属主的权限 属组的权限 其他的权限
- 文件
d 目录
l 链接
三种权限身份
属主:user ,文件或者目录的所有者
属组:group ,多个用户针对同一个文件或者目录具有相同的权限,划分到一组,赋予统一操作权限(更好的关联权限)
其他:other,其他用户
3、adduser/passwd
创建新用户
adduser zhangsan 新建用户
passwd zhangsan 设置密码
su zhangsan 切换账户
4、chmod
注意:只有当前文件的所属者(root)才可以使用此命令,修改权限
修改权限的命令
语法:chmod (chang mode)
chmod u/g/o/a 用户身份
+ / - / = 具体操作
r/w/x 操作权限
例如:
chmod u+x myfile ,给myfile的所属者赋予可执行权限
chmod g+rwx myfile ,给myfile的所属组赋予可执行权限,可读权限,可写权限
chmod ugo+w myfile ,给myfile的所属者,所属组,和其他,赋予可写权限
chmod u-r,g+w,o-x myfile,给myfile的所属者去除可读权限,所属组添加写权限,其他去除可执行权限
chmod u=r myfile ,给myfile的所属者赋予读权限
chmod 三位数字 文件目录:
chmod 777 myfile ,等价于chmod ugo+rwx myfile,给myfile的所属者,所属组,和其他,赋予所有权限
chmod 735 myfile ,给myfile的所属者赋予rwx权限,给所属组赋予wx权限,给其他用户赋予rx权限
5、chown/chgrp
chown:修改属主
chown 用户名 文件、目录 ,修改文件或者目录的所属主
chown 用户名:组名称 文件、目录 ,同时修改文件或者目录的所属主和所属组
chown :组名称 文件、目录 ,修改文件或者目录的所属组
chgrp:修改属组
chgrp 组名称 文件、目录 ,修改文件或者目录的所属组
6、sudo
sudo:临时借用超级管理员的权限
配置当前用户具有sudo的执行权力需要修改配置文件:/etc/sudoers
此配置文件是只读文件:修改权限
chmod u+w sudoers
添加:
用户名 ALL=(ALL) ALL
使用此命令sudo,借用管理员的权限,进行操作
例如:
sudo chown lisi zhangsanfile #操作zhangsanfile这个文件借用超级管理员权限给用户lisi
第一次借用管理员的权限,需要输入管理员的密码
7、whereis
whereis 查询可执行命令的命令的位置,查询到此命令的帮助文档
例如:
whereis ls
8、find
find 查询文件
find 查询位置 -参数 实际参考数据
-name 文件名称
-user 属主名称
-group 数组名称
-type 文件类型:f/d/l 文件/目录/链接
-perm 权限 (三位 数字)
-size 大小
find /file -name myfile #在/file目录下查询文件名称为myfile的文件
9、|
管道命令
分隔多个命令,可以同时执行多个命令
语法:命令1 | 命令2 | 命令3... ...
作用:同时执行多个命令
例如:
cat xxx | more
ls | grep 'config' | more
cat xxxfile | grep xxx
10、压缩和解压缩命令
压缩:将一个大文件,使用相应的算法,压缩成一个小文件
打包:将多个小文件或者目录变成一个总文件
windows常见压缩格式:
.zip / .rar
linux常见压缩格式:
.gz(压缩) / .bz2(压缩) / .tar (打包)
语法格式:tar
将多个文件或者目录进行打包
支持在打包的过程中进行压缩/解压缩
tar -参数 目标文件 源文件
参数:
-c 新建一个打包文件
-x 拆包,将一个文件进行拆分
-v 显示操作过程
-f 后面指定归档文件名称
-j 使用bzip2压缩或者解压缩
-z 使用gzip压缩或者解压缩
组合用户:
打包: tar -cvf
拆包: tar -xvf
解压缩: tar -jxvf 使用bz2算法,用于解压缩后缀为.bz2的文件
tar -zxvf 使用gz算法,用于解压缩后缀为.gz的文件
压缩:
tar -jcvf 使用bz2算法,用于压缩后缀为.bz2的文件
tar -zcvf 使用gz算法,用于压缩后缀为.gz的文件
例如:
tar -cf archive.tar foo bar // 打包 -cvf
# Create archive.tar from files foo and bar.
tar -xf archive.tar // 拆包 -xvf
# Extract all files from archive.tar
tar -xvf rootHomeContext.tar -C /test2/
11、mount
mount 查看系统已经挂载的设备(存储设备需要挂在到目录上才可以使用)
mount -t 文件系统 设备名称 挂载点 , 将某个存储设备挂在指定位置
执行挂载操作
mount [-t iso9660] /dec/cdrom /mnt/cdrom 将光盘设备挂在指定位置
mount [-t vfat ] /dec/cdrom /mnt/cdrom 将U盘设备挂在指定位置
卸载
umount /dev/设备名称
umount /mnt/挂载点
查找设备
/dev中查找:
SATA/SCSI/IDE硬盘/U盘: /dev/sd[a-p] 最多接入16块
当前系统中接入的第一块硬盘:sda , 20G
sda1 17G
sda2 200M
sda3 2G
例如:访问u盘上数据
1. 插入u盘,点击wmware虚拟机菜单,选择开移动设备,选择u盘并连接(u盘从windows切换到连接linux)
2. 在/dev下查询存储设备U盘是否存在
sdb --- 接入u盘
sdb1 --- 默认u盘只有一个分区
光盘:/dev/cdrom ----->sr0
/dev/sr0
注意:linux不支持ntfs文件系统
设置共享文件夹
1、挂载vmware提供的镜像文件linux.iso
2、进入到 linux.iso 设备的挂载目录,解压 VMwareTools-10.1.6-5214329.tar.gz
3、执行脚本
./vmware-install.pl
错误:坏的解释器 /usr/bin/perl
安装:yum -y install perl*
4、增强工具安装完毕后,共享文件夹会自动挂载到/mnt下
自动挂载目录hgfs
12、ping
ping 命令,检测网络的连通性
ping ip地址 , 一直执行ping操作,可以使用ctrl+c停止
ping -c 次数 ip地址
13、ifconfig
ifconfig 命令,查询ip地址
ifconfig 查看所有网卡地址、
ifconfig 网卡名称
ifconfig 网卡名称 down , 关闭网卡
ifconfig 网卡名称 up , 激活网卡
14、hostname
hostname,查询主机名称
hostname 查看直接名称
修改主机名称:
修改此配置文件:/etc/hostname
修改主机名称重启虚拟机方可生效
15、wget/curl
wget/curl:下载资源到本地系统
wget -O 下载的目标名称 资源路径
curl -o 下载的目标名称 资源路径
16、rz
rz:上传文件
rz之后按enter键,将本机文件上传至服务器
Linux常用命令(三)
1、shutdown
shutdown:开关机命令
语法格式:
shutdown 参数 时间 消息
-r 重启 now
-h 关机 15:00
-c 取消定时的操作 +5
例如:
shutdown -h now 立即关机
shutdown -r now 立即重启
shutdown -h +5 定时5分钟后关机
shutdown -r 20:55 定时在指定时间点重启
shutdown -h +5 & 定时5分钟后关机,允许用户在关机进行其他操作
切换系统的运行级别:init n // n:系统的运行级别
0 : 关机
6 : 重启
5 : 切换到图形界面
3 : 切换到纯命令行
关键词:
halt 关机
reboot 重启
poweroff 关机
2、job
job:对作业进行管理
将程序放置到后台运行,以&结尾
vi myfile &
jobs:查看当前后台的所有任务
切换后台作业到前台来
fg %n //n: 作业的编号
将前台正在运行的进程,切换到后台
ctrl+z
结束作业
kill %n //n: 作业的编号
执行作业
bg %n //n: 作业的编号
3、service
service:设置系统服务命令
语法:
systemctl 设置系统服务命令,结合了service 和chkconfig命令
service 设置系统服务命令
systemctl status/start/stop/restart 服务名称
service 服务名称 status/start/stop/restart
操作网络服务:
systemctl status/start/stop/restart network.service
service network status/start/stop/restart
4、top/htop
top/htop:动态监控进程信息
top
htop
htop详解:https://www.cnblogs.com/programmer-tlh/p/11726016.html (其他博主博文,写得非常好,大家有兴趣可以看一看,如有有侵权请联系删除)
5、ps
ps -Af 列举出当前用户所有进程信息
ps -ef
ps -aux
ps -Af | grep 进行信息 查询当前是否运行指定进程
例如:
ps -Af | grep ping
ps -aux | grep mysql
6、kill
kill:结束进程
kill -9 2134 强制结束进程2134
7、df
df:显示文件系统磁盘空间使用情况
df -h 分区
8、du
du:查询某一个目录占用磁盘空间
du -sh * | sort -nr 查询当前文件夹中所有文件的大小,并按照降序排列
9、sort
sort:排序
-n 以数字方式排序
-r 降序
-u 剔重
du -sh * | sort -nr 查询当前文件夹中所有文件的大小,并按照降序排列
10、su
su:切换账户
su lisi 从当前用户切换成用户lisi
11、netstat
netstat:监控TCP/IP网络
netstat -antp | grep 8080 查询8080端口是否被占用
-a 所有连接
-n 使用ip地址
-t 显示tcp信息
-p 显示正在使用的进程的程序名称
12、Alias
alias:设置别名
alias del=rm -rf 给 rm -rf设置别名del
del a.txt 等于 rm -rf a.txt
unalias del 取消命令别名
VIM编辑器的使用
vim三种模式
1、命令行模式:等待编辑命令输入,控制光标移动,文本的快捷操作
2、插入模式:修改文本内容(insert)
3、底行模式:保存退出,强制退出,其他文本操作(查询,显示行号等操作)
vim使用语法
vi/vim 文本文件名称
使用vim命令,先进入命令行模式
在命令行模式,输入i ,切换到插入模式,对当前文本进行编辑
在插入模式下,按下ESC键,退出插入模式,返回命令行模式
在命令行按下冒号":" ,进入底层模式,输入wq保存退出,输入q!不保存强制退出
常见操作:
命令行模式:
GG:移动光标到文件尾部
gg:移动光标到文件头部
dd:删除当前行
ndd:删除n行
yy:复制当前行
nyy:复制多行
p :粘贴,在当前行下面粘贴
P :粘贴,在当前行上面粘贴
u : 撤销操作
ctrl+r:反撤销
ZZ (shift+zz ) : 快速退出
底层模式:
:q 直接退出
:q! 强制退出
:wq 保存退出
:set number 显示行号
:set nonumber 取消显示行号
:n 移动到指定行
:/查找内容 内容的检索
n 下一个
N 上一个
:起始行号,结束行号s/需要替换的旧数据/新数据/g , 替换指定区域的内容
:1,10s/hehe4/haha/g
:%s/需要替换的旧数据/新数据/g , 替换全文的内容
shift + g 定位到最后一行
Linux软件安装
软件包分类
源码包:源代码,没有编译的源文件
helloworld.java
二进制包:rpm包(redhat package manager)
helloworld.class
rpm安装命令:
rpm -ivh 安装程序名称 , 安装
rpm -e --nodeps 安装程序名称, 卸载
依赖问题:处理麻烦
a->b->c
yum安装:
就是解决了依赖的rpm安装
安装脚本:
把复杂的软件安装过程编写成程序脚本,一键安装
安装远程仓库程序
1、设置yum源:
curl -o CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2、测试
yum list //列举出阿里提供的yum源仓库中的所有可安装的程序
保证:可以ping www.baidu.com
3、安装:wget
yum search wget
yum -y install wget.x86_64
安装:ifconfig
yum search ifconfig
yum -y install net-tools.x86_64
安装:bzip2
yum search bzip2
yum -y install bzip2.x86_64
安装jdk(压缩包)
1、将jdk安装包移动到linux
windSCP/u盘/光盘
2、将jdk安装包进行拆包或者解压缩到: /usr/local/
tar -zxvf jdk-8u65-linux-x64.tar.gz -C /usr/local/
ln -s jdk1.8.0_65 jdk.ln #给jdk1.8.0_65设置软连接jdk.ln
3、查看linux是否已经安装了jdk
javac java java -version
rpm命令:
rpm -qa | grep java 查询当前系统已经安装成功的软件中是否包含java相关的软件
卸载:
rpm -e --nodeps 软件名称
4. 配置环境变量
配置文件:/etc/profile 在用户登录本系统时,此配置文件将被加载(适用所有用户)
1. 编辑此配置文件:vi /etc/profile
2. 添加jdk的环境变量
export JAVA_HOME=/usr/local/jdk , 为了后续给tomcat使用
export PATH=$PATH:$JAVA_HOME/bin
等价于 export PATH=$PATH:/usr/local/jdk/bin
3. 保存退出
5. 刷新配置文件,使其立即生效
source /etc/profile
6. 测试
javac java java -version
编写helloworld.java,编译,并运行
安装tomcat(压缩包)
1、将tomcat安装包移动到linux
windSCP/u盘/光盘
2、将tomcat安装包进行拆包或者解压缩到: /usr/local/
tar -zxvf apache-tomcat-7.0.47.tar.gz -C /usr/local/
ln -s apache-tomcat-7.0.57 tomcat
3、查看linux是否已经安装了tomcat
rpm命令:
rpm -qa | grep tomcat 查询当前系统已经安装成功的软件中是否包含java相关的软件
卸载:
rpm -e --nodeps 软件名称
4. 配置环境变量
# tomcat environment setting
export PATH=$PATH:/usr/local/tomcat/bin
5. 关闭linux防火墙
systemctl status firewalld 查看当前系统防火墙的状态
systemctl stop firewalld 关闭防火墙
systemctl disable firewalld 禁用防火墙
6. 启动tomcat服务器
startup.sh
7. 测试
打开浏览器,访问tomcat默认项目 : ip地址:端口号
安装MySQL
1. 将MySQL安装包移动到linux
windSCP/u盘/光盘
2. 将MySQL安装包进行拆包或者解压缩到:mysqlInstall文件夹中
3. 查看MySQL是否已经安装(注意)
rpm命令:
rpm -qa | grep mysql 查询当前系统已经安装成功的软件中是否包含mysql相关的软件
rpm -qa | grep MySQL 查询当前系统已经安装成功的软件中是否包含mysql相关的软件
上述命令如果程序到软件:(不要省略此步骤)
rpm -e --nodeps 软件名称 ,进行卸载
卸载:
rpm -e --nodeps 软件名称
查看是否存在MySQL残留文件:
find / -name mysql
find / -name MySQL
rm -rf xxxx
4. 安装
1. rpm -ivh MySQL-server-5.6.26-1.linux_glibc2.5.x86_64.rpm ,安装mysql,server
出现两个100% 表示安装成功
安装日志:A random root password has been set. You will find it in '/root/.mysql_secret'. ,在指定位置生成了一个随机密码
2. rpm -ivh MySQL-client-5.6.26-1.linux_glibc2.5.x86_64.rpm ,安装mysql,client
出现两个100% 表示安装成功
5. 启动mysql服务
service mysql start
systemctl start mysql
6. 登录mysql
mysql -uroot -p密码 ,此密码在/root/.mysql_secret 文件中
7. 修改密码
set password=password('root');
8. 添加mysql账户的远程访问权限
授权:grant all privileges on *.* to 'root'@'%' identified by 'root';
刷新权限:flush privileges;