当前位置:网站首页>Liunx教程超详细(完整)
Liunx教程超详细(完整)
2022-08-05 07:06:00 【诗风雅韵】
Linux
1、计算机硬件软件体系
冯 诺依曼体系结构
- 计算机处理的数据和指令一律用二进制数表示
- 顺序执行程序
- 计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成
计算机硬件组成
- 输入设备
- 输出设备
- 存储器
存储器用来存放数据和程序
RAM(random access memory)即随机存储 内存
- 速度快,容量小
- 掉电易失
- 逻辑IO
ROM(Read-Only Memory)即只读内存 硬盘:
- 容量大,速度相对较慢
- 长久保存
- 物理IO
- 控制器
- 控制器主要用来控制和指挥程序和数据的输入运行,以及处理运算结果
- 运算器
- 运算器主要运行算数运算和逻辑运算,并将中间结果暂存到运算器中
硬盘的分类
机械硬盘(Hard Disk Driver, HDD)
- 机械硬盘采用磁性碟片来存储数据
- 用显微镜把盘片放大,会看见盘片表面凹凸不平,凸起的地方被磁化,凹的地方是没有
- 被磁化
- 凸起的地方代表数字1(磁化为1),凹的地方代表数字0。
- 硬盘可以以二进制来存储表示文字、图片等信息。
- 硬盘可以根据转速来判断硬盘的好坏 7200转/分 100-200M/s
固态硬盘(Solid State Disk, SSD)
- 固态硬盘通过闪存颗粒(固态电子存储芯片阵列)来存储数据
- 读写速度的区别
网络连接概念
- IP地址IPADDR
- IP地址是一种逻辑地址,用来标识网络中一个个主机
- IP地址=网络地址+主机地址
- IP地址是一个 4 * 8bit(1字节)由 0/1 组成的数字串(IP4协议)
- IP地址是一种逻辑地址,用来标识网络中一个个主机
- 子网掩码NETMASK
- 子网掩码只有一个功能,就是将IP地址划分为网络地址和主机地址两部分。
- 子网掩码用来判断任意两台计算机的IP地址是否在同一个子网中的根据
- 默认网关GATEWAY
- 网关的作用就是实现两个网络之间进行通讯与控制
- 连接两个不同的网络的设备都可以叫网关设备
- 网关地址就是网关设备的IP地址
- 域名服务器DNS
- DNS是域名服务器,用来解析域名的(域名和IP之间的解析)。
- 如果没有这东西,登陆某个网站时就必须输入该网站的IP地址,有了DNS就可以直接输入网址
- 全国
- 114.114.114.114
- 全球
- 8.8.8.8
- C:\Windows\System32\drivers\etc\hosts
网络连接模式
- host-onboy(主机模式)
- VMNet1
- bridged(桥接模式)
- 虚拟机和真实主机共享一个网络
- NAT(网络地址转换模式)
- 给虚拟机构建一个单独的子网络
- VMNet8
软件分类
- 应用软件
- 就是为了实现某些业务功能
- 应用软件要基于对应的系统软件
- 系统软件
- 就是为了和硬件打交道
- 屏蔽应用软件与硬件的差异
- 分类
- Window
- 用户量全球最大
- 收费,不开源,民用较多
- 各种软件比较齐全
- Mac
- 只限定于某些苹果的品牌机
- GNU/Linux
- GNU是一个开源软件组织,世界上所有的软件都应该开源免费
- Window
Linux分支
RedHat(收费)
CentOS
- 完全开源免费
- 不要使用最新版的CentOS
主要用于服务器版本
Debain(免费)
Ubuntu
- 视窗界面良好的Linux系统
- 一些主流的软件都支持Ubuntu系统
Linux下载
官网
- https://linux.org/
下载页面
- https://linux.org/pages/download/
CentOS7.6下载地址
- http://vault.centos.org/7.6.1810/
镜像的分类
- everything
- minimal
- netinstall
2、虚拟机安装与配置
虚拟化技术
可以更好的利用计算机闲置的资源
我们可以在计算机中虚拟出多台虚拟机帮助我们执行程序或者业务
虚拟机的各种组成理论上和真实主机是一样的
如果要使用这种技术只需要安装对应的软件即可
- Virtualbox
- VirtualMachine
安装软件
Win10
- VirtualMachine 15.X版本
Win11
- VirtualMachine 16.X版本
创建虚拟主机
安装操作系统
配置常见参数
网络
查看自己虚拟网卡地址
- 编辑–>虚拟机网络编辑器–>vmnet8
修改网络配置信息
修改网络信息
vi /etc/sysconfig/network-scripts/ifcfg-ens33
–修改
- ONBOOT=yes
- BOOTPROTO=static //静态网络IP dhcp 动态获取网络IP
–添加
- ip地址
- 网关地址
- 子网掩码
- DNS1
删除------
- UUID
重启网卡重新加载配置文件
- ip addr
- systemctl restart network.service
- ping www.baidu.com
- ctrl+c 终止命令的执行
软件安装限制
操作系统对未知软件的安装有可能拒绝或者警告,我们需要禁用这个功能
vi /etc/selinux/config
修改
- SELINUX=disabled
防火墙
保护本机的端口不被别人恶意访问
如果端口需要被别人访问到,需要添加端口的防火墙例外
关闭防火墙
本次开机状态下防火墙关闭
- systemctl stop firewalld (本次服务内关闭防火墙)
服务器重启后防火墙禁用
- systemctl disable firewalld(禁用防火墙服务)
查看防火墙状态
- systemctl status firewalld(禁用防火墙服务)
关机
halt
- 直接拔掉电源
poweroff
- 直接关闭机器,但是有可能当前虚拟机其他人在使用
shutdown -h now
- 马上关闭计算机 ,但是可以给其他用户发送消息
reboot
- 重启虚拟机
快照与克隆
拍摄快照
- 记录当前虚拟机的状态
- 拍摄快照的时候一定要关机
转到
- 回到某一个历史快照的节点
克隆
复制某一个历史快照节点
克隆的方式
链接克隆
- 当前节点文件夹只存储差异性数据
- 相同数据存放在原始节点上
- 优点:节省硬盘空间 缺点:耦合性大
完整克隆
- 就是基于原始节点完全拷贝到新节点的文件夹中
- 优点:耦合性抵 缺点:硬盘空间使用大
- 推荐使用完整克
修改克隆机配置
网络信息
- 参考修改网络信息
主机名
vi /etc/hostname
- 修改完成后需要重启生效
hostname xxxx
- 本次启动中有效,重启虚拟机还是使用原来的名字
连接Linux服务器
Xshell
- 负责向虚拟机输入命令
XFtp
- 如则向虚拟机传输文件
3、Linux的命令
命令学习法
Linux命令与参数之间必须用空格隔开
Linux命令是区分大小写的
如果输入了错误的命令
- -bash: abcd: command not found
- 命令敲错了
- 命令未安装
type 命令的类型
- cd is a shell builtin
- ping is /bin/ping
- ll is aliased to `ls -l --color=auto’
- for is a shell keyword
命令的帮助文档
help
- 内置命令的帮助文档
man
外部命令的帮助文档
因为当前系统为minimal的,very basic 没有man包
需要手动安装man
- yum install man man-pages -y
将来工作中如果遇到生疏的命令,直接百度
- 如果不是为了装C,完全没必要查看命令手册
常用的命令
- whereis 查询命令文件的位置
- file 查看文件的类型
- who 查看当前在线的用户
- whoami 我是谁
- pwd 我在那
- uname -a 查看内核信息
- echo 类似于 sout syso ,打印语句
- clear 清屏
- history 历史
特殊字符
.点:
- 如果文件的开始是.说明当前文件是一个隐藏文件
- . 指向当前目录
- …指向当前目录的上级目录
$
- 说明这是一个变量
- $PATH Linux的环境变量
*星号
- 通配符
~
- 当前用户的家目录
- 每个用户的家目录是不同的
- root用户家目录在系统根目录下
- 其他用户的家目录在/home/用户名为家目录
空格
- Linux的命令与参数用空格隔开
/
- 整个Linux的文件根目录
命令的参数
- 如果是单词 一般加–
- 如果是字母或者缩写 一般加 -
修改Xshell字体颜色
PS1=‘[\e[36;40m][\[email protected]\h \W][\e[0m]\$ ’
echo "PS1=’[\e[36;40m][\[email protected]\h \W][\e[0m]\$ '">>~/.bashrc
source ~/.bashrc
4、Linux的文件系统
万事万物皆
- 所以在Linux中所有的东西都是以文件的方式进行操作
- 在Linux中,文件的访问不和Window的一样。window依靠的是通过盘符进行访问
- Linux维护着一个树状结构的文件模型
- 只有一个根节点 ,他的名字叫做 /
- 一个节点上可以有多个子节点
- 查找文件的方式
- 相对路径
- 以当前路径为基准点,查找其他资源
- vi …/etc/sysconfig/network
- 以根目录为基准点,查找其他资源
- vi /etc/sysconfig/network-scripts/ifcfg-ens33
- 日常使用中,只要找到路径即可,但是如果是一些配置文件,尽量写绝对路径
- 相对路径
- 可以随意的挂载磁盘
- mount /dev/disk1 /usr/download disk1 1T mount /dev/disk2 /usr/upload disk2 100T mount /dev/disk3 /usr/upload/photo disk3 1P
Linux二级文件目录
- /bin:
- 可执行文件
- 比如命令和脚本
- 可执行文件
- /boot:
- 引导分区
- /dev :
- 设备信息
- /etc:
- 系统核心配置信息
- /home:
- 家目录(普通用户)
- /lib:
- 类库
- /media:
- 媒体
- /mnt:
- 硬盘挂载
- /opt:
- 自定义安装软件路径
- /proc:
- 进程信息
- /root:
- root用户家目录
- /sbin:
- 管理员可执行的相关命令和权限
- /srv
- 存放一些服务启动需要提前的数据
- /sys:
- 系统内核信息
- /tmp:
- 临时文件目录名
- /usr:
- 用户们共享的区域
- /var:
- 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日 志文件。
- /run:
- 运行时的一些系统信息和变量
Linux的文件操作
- cd
- 改变当前工作目录
- ls ll
- 显示出指定目录下所有的文件
- 文件的类型
- -普通文件
- d文件夹
- l软连接
- -rw-r–r–. 1 root root 3384 Nov 11 23:51 install.log.syslog
- mkdir
- 创建文件目录
- mkdir -p a/b/c/d/e/f 会自动创建文件父目录
- mkdir -p lucky/{1234}ls 一次可以创建多个子目录
- rmdir
- 删除空文件夹
- 可以安全的删除文件目录
- cp
- 拷贝文件或者文件目录
- cp 源文件 目标目录
- cp abcd /opt
- cp /opt/abcd ./
- 拷贝文件夹
- cp -r lucky /opt
- 拷贝文件夹下所有的内容
- cp: omitting directory ‘/root/a1
- mv
- 移动文件或者文件夹
- mv a1 /opt
- mv abc /opt
- 修改文件名称
- mv a abcd
- 移动文件或者文件夹
- rm
- 删除文件
- rm install.log
- rm -f install.log
- 删除文件夹
- rm -r abcd
- rm -rf abcd 谨慎使用,从删库到跑路
- 删除文件
- touch
- 如果没有就创建一个文件
- 如果该文件已经存在,修改文件的三个时间,将三个时间改为当前时间
- stat
- 查看文件的状态
- Inode 当前文件在文件系统的唯一标识,类似于ID
- 时间
access 访问时间
modify 修改文件内容时间
change 修改文件元数据信息时间
- 对于文件的描述信息
- 文件大小 ,文件所有者 ,文件权限
- ln
- 创建文件的链接
- 软(符号)连接
- ln -s lucky01 sl
- 软连接和原始文件不是同一个文件
- lucky1 131085
- sl 131074
- rm -rf lucky1
- 硬链接
- ln lucky02 hl
- 硬链接和原始文件使用文件系统中的同一个文件
- 如果你害怕一个文件被别人误删,你可以使用硬链接保护这个文件
- 软硬链接在链接文件的时候,推荐使用文件的绝对路径,否则有可能会出现问题
读取文件信息
- cat
- 将整个文档加载到内存中,并进行一次性显示
- 除非后面使用管道,传递数据
- tac
- 将整个文档加载到内存中,并进行一次性按行逆序显示
- more less
- 分页查看文档内容
- 快捷键
- 回车 下一行
- 空格 下一页
- b 回退
- q 退出
- head
- 从文章开始读取N行
- 默认如果超过10行读取10行,否则读取现在行数
- head -5 profile
- tail
- 从文章末尾读取N行
- head -3 profile | tail -1
- 利用管道只读取第N行
- 管道的作用就相当于把前面的结果以参数的方式传递给后面的命令
- 读取新增数据
- ping www.baidu.com >>baidu
- tail -F baidu
- 如果f:
- 它会监听指定inode的文件数据变化,但是当文件被删除后
- 即使创新创建,inode也会发生变化,于是监听失败
- 如果F
- 他会监听指定名字的文件,如果文件被删除后,重新创建
- 他会重新监听新文件的数据变化,监听不受影响
- find
- 查找指定的文件
- find 要查找的范围 -name 名字
- find /etc -name profile
VI和VIM编辑器
打开文件
- 正常打开
- vi profile
- 打开文件,并将光标置于第8行
- vi +8 profile
- 打开最后一行
- vi + profile
- 按n查找下一个,按N查找上一个
- 打开指定搜索单词的位置
- vi +/if profile
- 正常打开
三种模式
- 编辑模式
- 编辑模式中,每一个按键都有其他的功能
- 输入模式
- 每一个按键按下什么,就像文本中数据输入什么
- 末行(命令行)模式
- 我们可以直接在VI中输入特定的命令
- 编辑模式
三种模式切换
编辑模式
- G最后一行
- gg 跳转到第一行
- 数字gg 跳转到第数字行
- w 下个单词
- 数字w
- dw 删除一个单词
- 3dw 删除三个单词
- dd 删除一行
- 3dd 删除三行
- u回退到前面的操作
- .回退u执行的操作
- yw 复制一个单词
- 3yw 复制三个单词
- yy 复制一行
- 3yy复制三行
- p粘贴
- 6p 粘贴6次
- x 剪切
- 3x 剪切三个字符
- r 替换,然后输入一个字符替换
- 3r 替换三个
- hjkl 方向键
- ZZ 保存并退出
- ctrl+s 锁屏 ctrl+q 解锁
输入模式
- 没得讲。按啥是啥
末行模式
- set nu 设置行号
- set nonu 取消行号
- w 保存
- q 退出
- wq 保存并退出
- q!强制退出,但是不保存
- 如果上次异常退出会保留同名隐藏文件,每次启动会给与提示
- 如果确定当前文件没问题,请删除隐藏文件
- /pattern
- 搜索指定的字符串
- /usr n向下查找 N逆向查找
- s/p1/p2/g
- 替换字符串
- g 替换当前行所有 否则只替换当前行第一个
- s/abc/lucky/g
- 替换全文
- g/abc/s//lucky/g
计算机间的数据传输
- Window–Linux
- lrzsz
- 需要手动安装
- yum install lrzsz -y
- rz
- 将文件从window上传到Linux
- sz 文件
- 将文件从Linux传输到Window
- 需要手动安装
- xftp
- 较为通用的文件传输方式
- lrzsz
- Linux–Linux
- scp 源数据地址(source) 目标数据地址(target)
- scp apache-tomcat-7.0.61.tar.gz [email protected]:/opt
- scp [email protected]:/opt/apache-tomcat-7.0.61.tar.gz ./
- scp -r apache-tomcat-7.0.61 [email protected]:/opt
文件大小
- 分区信息
- df -h
- 指定文件目录大小
- du -h --max-depth=1 apache-tomcat-7.0.61
- swap
- 一个特殊分区,以硬盘代替内存
- 当内存使用满的时候,可以将一部分数据写出到swap分区
文件压缩
- tar
- 主要针对的文件是 lucky.tar.gz
- 解压缩
- tar -zx(解压)v(过程)f(文件) lucky.tar.gz
- 压缩
- tar -zc(压缩)f(文件) tomcat.tar.gz(压缩后的名字) apache-tomcat-7.0.61(源文件)
- tar -zxf tomcat.tar.gz -C /opt/
- -C 指定解压缩的文件目录
- zip和unzip
- 安装
- yum install zip unzip -y
- 压缩
- zip -r tomcat.zip apache-tomcat-7.0.61
- 解压缩
- unzip tomcat.zip
- 安装
5、Linux的网络信息
主机名称
- 临时修改
- hostname bdp
- 长久修改
- vi /etc/hostname
DNS解析
域名解析服务
可以将域名转换为IP地址
DNS域名劫持
- window --> C:\Windows\System32\drivers\etc\hosts
- 123.56.138.186 www.baidu.com
- 123.56.138.186 www.taodao.com
修改主机域名
- vi /etc/hosts
- 将来我们需要把所有的虚拟机都配置hosts文件
- 192.168.31.101 bd1601
- 192.168.31.102 bd1602
网络相关命令
ifconfig
- 查看当前网卡的配置信息
- 这个命令属于 net-tools中的一个命令,但是Centos7中minimal版并没有集成这个包
- 所以7的时候需要自己手动安装
- 如果没有ifconfig ,可以使用ip addr 临时代替
netstat
- 查看当前网络的状态信息
ping
- 查看与目标IP地址是否能够连通
telnet
- 查看与目标IP的指定端口是否能够连通
- yum install telnet -y
- telnet 192.168.31.44 22
curl
- restful 我们所有的资源在网络上中都有唯一的定位
- 那么我们可以通过这个唯一定位标识指定的资源
- http://localhost:8080/lucky/user.action/666
- curl -X GET http://www.baidu.com
防火墙
- 帮助计算机网络于其内、
外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术 - #查看防火墙状态 systemctl status firewalld.service
- #临时停止firewall systemctl stop firewalld.service
- 开启一个端口的正确操作
- 帮助计算机网络于其内、
加密算法
不可逆加密算法
- 可以通过数据计算加密后的结果,但是通过结果无法计算出加密数据
- md5
- Hash算法
对称加密算法
- 代表性算法叫做 DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES
- 特点
- 加密和解密使用相同的秘钥
非对称加密算法
非对称加密算法需要一对密钥(两个密钥):
- 公开密钥(publickey)和私有密钥(privatekey)(简称公钥,私钥)。
- 公开密钥与私有密钥生成时是一对
- 用公钥加密只能是对应的私钥解密,同理用私钥加密只能用对应的公钥解密
代表性算法叫做 RSA、ECC、Diffie-Hellman、El Gamal、DSA(数字签名用)
优点:
- 安全高(几乎很难破解)
缺点
- 加解密相对速度慢、密钥长、计算量大、效率低
应用场景
- HTTPS(ssl)证书里制作、CRS请求证书、金融通信加密、蓝牙等硬件信息加密配对传输、关键的登录信息验证。
主机间的相互免秘钥
可以通过ssh命令免秘钥连接到其他的主机
如果是第一次建立连接,需要输入yes
- 在 ~/.ssh/known_hosts 文件记录了以前访问地址(ip hostname)的信息
- 在访问地址的时候如果没有收录到known_hosts文件中,就需要输入yes
- 如果以前收录到known_hosts中,直接输入密码即可
配置步骤
- 生成秘钥
- ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
- 如果你想免秘钥登录谁,只需要把自己的公钥传递给对方主机即可
- 这个秘钥要放在 ~/.ssh/authorized_keys
- 发送公钥、给需要免秘钥的主机
- ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
- 生成秘钥
相互面秘钥工作流程
- 防止每次新的连接都要确认
- 解决方案1–本次
- ssh -v -o GSSAPIAuthentication=no [email protected]
- 解决方案2–所有
- 修改/etc/ssh/ssh_config文件的配置,以后则不会再出现此问题
- 最后面添加:
- StrictHostKeyChecking no
- UserKnownHostsFile /dev/null
用户-组-权限
用户
- 新增用户
- useradd luckyboy
- 会创建同名的组和家目录
- 设置密码
- passwd luckyboy
- 删除用户
- userdel -r luckyboy
- 级联删除家目录和组
- 修改用户信息
- usermod -l luckyss luckyls 修改用户名
- 家目录和组名称是不会被修改的
- usermod -L luckyss 锁定用户名
- usermod -U luckyss 解锁用户名
- usermod -l luckyss luckyls 修改用户名
- 常用文件
- cat /etc/shadow
- 用户名和密码
- cat /etc/passwd
- 7.6系统0-999 普通 1000+
- 6.5系统0-499 普通 500+
- 用户名,编号,组编号,家目录,命令,目录
- cat /etc/shadow
- 切换账户
- su luckyboy
- 新增用户
组
- 创建组
- groupadd lucky
- 删除组
- groupdel lucky
- 修改组名字
- groupmod -n bdp lucky
- 查看用户对应的组
- groups
- groups bdpboy
- 当我们创建用户的时候,会默认创建一个同名的主组
- 创建组
权限
查看文件的权限
- 三组权限,每组3个字母
- r :读取权限
- w :写入权限
- x :执行权限
- -:没有权限
权限的UGO模型
- 三组权限
- 属主的权限:属组的权限:其他的权限
- 所有说:将来修改文件的权限 可以从rwx和ugo两个方面进行修改
修改文件的权限
修改文件所属
- chown n1 /var/lucky1
- chown n1:m1 /var/lucky2
- 修改文件夹时,让子目录迭代修改
- chown -R n1:m1 bdp
- chgrp m2 lucky3
- 当用户的组被修改之后,需要重新登录才能获取新组的权限
修改文件的rwx
- chmod o+w lucky4
- chmod ug+rw lucky4
- chmod ugo-rw lucky4
- (权限RWX分别对应数字 4 2 1 5= 4+0+1 r-x)
权限赋予
- 我们可以将管理用的权限分配给普通用户
- 文件位置在 vim /etc/sudoers
- 但是修改这个文件需要使用命令
- visudo
- 修改 Line 99
- n1 ALL=(root) /sbin/useradd
- n1 ALL=(root) /sbin/*
- 如何使用
- su n1
- sudo chkconfig iptables off
6、日期与时间
时间命令
- 查看时区
- ll /etc/localtime
- /etc/localtime -> …/usr/share/zoneinfo/America/Los_Angeles
- ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- ll /etc/localtime
- date
- 查看当前系统时间
- cal 查看日历
- cal 2020
- 修改时间
- date -s 11:11:11
- date -s 2019-11-11
- date -s ‘2019-11-11 11:11:11’
日期自动同步
- 首先安装时间同步的服务
- yum install ntp -y
- 自动同步网络时间中心
- ntpdate cn.ntp.org.cn
- 自动同步网络时间中心本地NTP服务
- NTP服务器
- vi /etc/ntp.conf
- 添加到末尾
#权限控制====
restrict default kod nomodify notrap nopeer noquery 拒绝IPV4用户
restrict -6 default kod nomodify notrap nopeer noquery 拒绝IPV6用户
restrict 210.72.145.44 授权国家授时中心服务器访问本地NTP
restrict 133.100.11.8 授权133.100.11.8访问本地NTP
restrict 127.0.0.1
restrict -6 ::1
restrict 192.168.88.2 mask 255.255.255.0 nomodify 本地网段授权访问
#=源服务器===
server cn.ntp.org.cn prefer 指定上级更新时间服务器,优先使用这个地址
#=差异分析===
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys - 开启本地NTP服务器
- systemctl start ntpd.service
- 同步时间
- 其他主机来和本主机t同步
- ntpdate 本机ip
- 其他主机来和本主机t同步
- NTP服务器
7、管道与重定向
管道
- 将前面命令的结果作为参数传递给后面的命令
- grep
- 强大的文本搜索工具
- cat profile | grep if
- ls / | grep ^t
重定向
- 改变数据输出的位置,方向
替换 >> 追加
- 0 in 1 out 2 err
- ls / 1> lucky 标准输出
- ls / > lucky 标准输出
- ls abcd 2>lucky 错误输出
- 结合使用
- ls /etc /abc >> lucky 2>&1
- ls /etc /abc > lucky 2>&1
8、Linux的系统进程
进程信息
ps -ef
- UID PID PPID C STIME TTY TIME CMD
- UID 所属用户
- PID 当前进程编号
- PPID 当前进程编号的父进程编号
ps -ef | grep redis
ps -aux
- 所有信息
ps -aux --sort -pcpu
top
- 当前服务器内存使用率
后台进程
- 只需要在命令的后面添加一个 & 符号
- ping www.baidu.com >> baidu &
- jobs -l
- 可以查看当前的后台进程
- 但是只有当前用户界面可以获取到
- nohup 可以防止后台进程被挂起
- nohup ping www.baidu.com >> baidu 2>&1 &
杀死进程
- kill -9 17599
9、Linux的软件安装
环境变量
- 1、如果配置的多个文件夹都包含命令abc,默认执行第一个文件夹中的abc
- 2、环境变量尽量配置一些重要的文件夹目录,减少命令检索的时间
- 3、修改完配置之后需要重新加载配置信息
- Linux环境变量位置
- /etc/profile
- window 环境变量文件夹用分号;隔开,LInux中用:隔开
软件的安装方式
- 压缩包
- rpm包
- 自己下载安装包
- 使用统一的软件帮助我们安装
- 源码包安装
压缩包安装
- 压缩包解压即可安装
- 本次安装的tomcat属于此类
YUM安装
yum的作用
- 可以帮我们管理RPM包
- 可以帮我们安装软件,
- 如果软件有其他依赖,会帮我们安装依赖后在安装软件
- 类似于Maven
yum命令
- search 查询命令或者软件
- info
- 查看包的信息
- list / list jdk
- 查询安装的rpm包,或者只查询某一周
更换yum源
本次的mysql安装属于yum安装
rpm安装
RedHat Package Manager,它属于红帽的一种包管理方式
本次jdk安装属于rpm安装
10、Linux三剑客
普通剑客
cut
- 用指定的规则来切分文本
- cut -d’:’ -f1,2,3 passwd | grep bdp
sort
sort lucky
- 对文本中的行进行排序
sort -t’ ’ -k2 lucky
- 对每一行的数据进行切分,按照第二列进行排序
sort -t’ ’ -k2 -r lucky
- 逆序
sort -t’ ’ -k2 -n lucky
- 按照数值大小进行排序,如果有字母,字母在前
wc
- 统计单词的数量
- wc lucky
- 4 15 79 lucky
- -l line
- -w word 以空格来分割单词
- -c char
剑客1号:grep
可以对文本进行搜索
同时搜索多个文件
显示匹配的行号
- grep -n bdp passwd
显示不匹配的忽略大小写
- grep -nvi root passwd --color=auto
使用正则表达式匹配
- grep -E “[1-9]+” passwd --color=auto
剑客2号:sed
sed 是Stream Editor(字符流编辑器)的缩写,简称流编辑器
Sed软件从文件或管道中读取一行,处理一行,输出一行;再读取一行,再处理一行,再输出一行
一次一行的设计使得sed软件性能很高
vi命令打开文件是一次性将文件加载到内存
了解即可
行的选择模式
- 10 第十行
- m,n --> 第m行到第n行 [m,n]
- m,+n–>第一行到第四行 [m,m+n]
- m~n–>从m行开始,依次累加n
- m,$ -->从m开始到最后一行
- /bdp/ -->匹配到bdp的行
- /u1/,/u4/–>从匹配u1到匹配u4
增
- sed ‘2a luckyisgood’ passwd
- sed ‘2i luckyisgood’ passwd
- 打印到控制台
- sed -i ‘2a luckyisgood’ passwd
- 直接修改到文件
删
- sed ‘3,10d’ passwd
改
- 整行替换
- sed ‘3,20c hahaha’ passwd
- sed ‘3~1c hehehe’ passwd
- 整行替换
字符替换
- sed ‘1,5s/root/lucky/g’ passwd
- sed ‘1,5s#/#-#g’ passwd
剑客3号:awk
它不是一个剑客,它是一门语言
了解即可
模式与动作
- awk -F “:” ‘NR>=2&&NR<=6’ /etc/passwd
- awk -F “:” ‘{print NR,$1}’ /etc/passwd
- awk -F “:” ‘NR>=2&&NR<=6 {print NR,$1}’ /etc/passwd
- awk -F “:” ‘NR==1{print NR,KaTeX parse error: Expected 'EOF', got '}' at position 2: 1}̲NR==2{print NR,NF}’ /etc/passwd
11、shell编程
作为大数据开发人员,shell编程作了解和基本的知道即可,下面只是一些基础的shell编程知识适合学习和了解。在运维方面的话shell编程会重要的多。
Shell名词解释
Kernel
- Linux内核主要是为了和硬件打交道
Shell
- 命令解释器(command interpreter)
- Shell 是一个用 C 语言编写的程序。Shell 既是一种命令语言,又是一种程序设计语言。
shell两大主流:
sh:
- Bourne shell(sh) ,Solaris,hpux默认shell
- Bourne again shell(bash) ,Linux系统默认shell
csh
- C shell(csh)
- tc shell(tcsh)
#! 声明
- 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序
Shell脚本的执行
输入脚本的绝对路径或相对路径
- /root/helloworld.sh
- ./helloworld.sh
- 执行的必须是一个可执行文件
bash或sh +脚本
- sh helloworld.sh
- 当脚本没有x权限时,root和文件所有者通过该方式可以正常执行
在脚本的路径前再加". " 或source
- source helloworld.sh
区别
- 第一种和第二种会新开一个bash,不同bash中的变量无法共享。
- 第三种 是在同一个shell里面执行的
export : 可以将当前进程的变量传递给子进程去使用
- 将来配置profile的时候 所有的变量前必须加export
Shell基础入门
- shell变量
- 变量的类型
- Shell的字符串
- Shell数组
- Shell的注释
- Shell参数传递
Shell高级进阶
- Shell运算符
- Shell流程控制
- echo打印数据
- test 命令
- Shell函数
系统任务设置
系统启动流程
开机自启动服务
rc.local
首先创建脚本存放的文件夹
- mkdir -p /usr/local/scripts
在文件夹中创建脚本文件
- vim hello.sh
- 给予执行权限
去/etc/rc.d/rc.local文件中添加脚本的绝对路径
- 给予rc.local执行权限
重启虚拟机
- reboot
chkconfig
定时任务
在系统服务中心,crond负责周期任务
- systemctl status crond.service
添加任务,编辑当前用户的任务列表
- crontab -e
编辑任务
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启apache。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启apache。- */2 * * * /usr/local/etc/rc.d/lighttpd restart
每两小时重启apache - 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启apache
–(功能描述:显示年月日时分秒)
date “+%Y%m%d%H%M%S”
- */2 * * * /usr/local/etc/rc.d/lighttpd restart
重启crontab,使配置生效
- systemctl restart crond.service
通过crontab -l
- 查看当前的定时任务
查看任务的历史
- vim /var/spool/mail/root
清除任务
- crontab -r
虚拟机初始化脚本
虚拟机相互免秘钥
##三台主机分别生成秘钥
【123】ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
##host验证
【123】vim /etc/ssh/ssh_config 在最后添加
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
##将秘钥分别拷贝给自己和别人
【123】ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
【123】ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
【123】ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
123456
##关闭主机拍摄快照
power off
边栏推荐
猜你喜欢
Hash these knowledge you should also know
Why does Mysql fail to create a database
Summary of Text Characterization Methods
protobuf根据有关联的.proto文件进行编译
In the anaconda Promat interface, import torch is passed, and the error is reported in the jupyter notebook (only provide ideas and understanding!)
游戏思考19:游戏多维计算相关:点乘、叉乘、点线面距离计算
Redis
TCP sticky packet unpacking problem + solution
Flink Learning 10: Use idea to write WordCount and package and run
Week 8 Document Clustering
随机推荐
1, Citrix XenDesktop 2203 AD domain system installation (1)
【 LeetCode 】 235. A binary search tree in recent common ancestor
Unity—物理引擎+“武器模块”
七夕?编程?
栈与队列的基本介绍和创建、销毁、出入、计算元素数量、查看元素等功能的c语言实现,以及栈的压入、弹出序列判断,栈结构的链式表示与实现
MySQL: JDBC programming
二叉搜索树问题
2022熔化焊接与热切割操作证考试题及模拟考试
IO进程线程->进程间的通信->day7
线程池的使用(结合Future/Callable使用)
Mysql master-slave delay reasons and solutions
JS实现从照片中裁切自已的肖像
U++ 创建UI
RNote108---Display the running progress of the R program
在anaconda Promat界面import torch通过,在jupyter notebook中报错的问题(仅提供思路理解!)
TRACE32——通用寄存器查看与修改
"Automatic Data Collection Based on R Language"--Chapter 3 XML and JSON
IO process thread -> communication between processes -> day7
Cannot compare or sort text, ntext, and image data types
Flink Learning 10: Use idea to write WordCount and package and run