重要文件目录及操作系统优化

◇◆丶佛笑我妖孽 提交于 2019-12-08 22:26:29

一、操作系统挂载概念

1、服务器磁盘如何使用

1)进行磁盘阵列配置
2)进行系统分区操作
3)进行磁盘格式化操作
4)进入磁盘,创建文件系统
5)进行挂载操作(给一个存储设备开个门)

2、如何进行挂载操作

1)挂载环境准备
PS:linux系统中一切皆文件
1.1、准备光驱(分区):/dev/cdrom (/dev/ 存储设备文件目录)
/dev/s(接口类型)d(设备)a(第几块)
1.2、准备挂载门:任意空目录 /mnt 临时挂载点目录
1.3、光驱设备中需要存放光盘
1.4、进行挂载操作
#mount + 设备文件信息 + 挂载点目录

#mount /dev/cdrom  /mnt  (将光盘挂载到mnt目录)

#umount + 挂机点目录 (取消挂载操作/卸载操作)

#umount /mnt
1.5、检查确认是否挂载

df ——检查磁盘信息 -h(人类能看懂的方式显示)

二、操作系统重要文件

1、/etc目录

1)网卡配置文件
文件路径信息:/etc/sysconfig/network-scripts/ifcfg-eth0(ifcfg-ens33)
文件作用说明:配置网卡地址信息(IP地址、子网掩码、网关地址、DNS地址信息)
文件详细信息:

TYPE=Ethernet ——指定网络类型 以太网类型(以前用电话网) 3G、4G、5G(人工智能)
BOOTPROTO=static ——获取IP地址方式 none/static(手动配置IP地址)、dhcp(自动获取IP地址)
DEFROUTE=yes ——是否激活默认路由(网络知识)
NAME=eth0 ——当前网卡名称信息 (逻辑名称)
UUID=c413a280-edef-416c-a3b1-9b3ac8d734fb ——eth0网卡设备编号
DEVICE=eth0 ——当前网卡名称信息(设备名称)
ONBOOT=yes ——是否激活开启网卡
IPADDR=10.0.0.200 ——IP地址
PREFIX=24 ——子网掩码
GATEWAY=10.0.0.254 ——网关地址
DNS1=10.0.0.254 —<!---->—DNS地址

问题:如何快速修改IP地址

sed -i 's#10.0.0.200#10.0.0.201#g' /etc/sysconfig/network-scripts/ifcfg-eth0

#nmcli connection add type ethernet autoconnect yes con-name eht0 ifname eth0 ip4 10.0.0.200 gw4 10.0.0.254
#nmcli connection modify eth0 ipv4.dns 10.0.0.254
#systemctl restart network
文件配置生效:重启网络服务

方法一:利用systemctl命令 企业环境不建议

#systemctl restart network 

方法二:利用serivce命令 企业环境不建议

#service network restart   

方法三:利用ifxx命令,指定网卡重启

#ifdown eth0 &&ifup eth0

方法四:利用nmcli命令

# nmcli con reload
如何修改网卡信息:

1、修改网卡文件中的名称信息

#vi /etc/sysconfig/network-scripts/ifcfg-ens33   网卡文件重命名

2、将网卡配置文件改名

#mv /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-eth0

3、让系统内核加载网卡名称修改信息

vi /etc/default/grub
#GRUB_CMDLINE_LINUX=''crashkernel=auto rhgb [这里添加]net.ifnames=0 biosdevname=0' 

保存退出

4、加载修改配置信息

#grub2-mkconfig -o /boot/grub2/grub.cfg

5、重启操作系统

#reboot
2)域名服务配置文件
文件路径信息:/etc/resolv.conf
文件作用说明:影响是否可以访问名称或者域名信息
文件内容信息:
#vi /etc/resolv.conf
nameserver 10.0.0.254

<!--PS:DNS服务器作用:将域名解析成IP地址-->

223.5.5.5 阿里云公司提供的DNS服务器 ***

114.114.114.114 电信公司提供的DNS服务器

8.8.8.8 谷歌公司提供的DNS服务器

文件配置如何生效:立即生效不需更改
3)本地域名解析配置文件
文件路径信息:/etc/hosts
文件作用说明:实现本地名称解析 (用于访问不同服务器);用于网站测试;(web服务器、数据库服务器、存储服务器、监控服务器、日志服务器、备份服务器、审计服务器、缓存服务器等)
文件内容信息:
#vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.201  db01(使访问db01时解析成10.0.0.201)
文件配置如何生效:立即生效不需更改
4)开机自动运行命令文件:
文件路径信息:/etc/rc.local
文件作用说明:让系统启动后自动运行命令信息

需求:系统启动好

1、将重要数据做好初始备份

2、系统启动后自动清除回收站数据

3、实现自动存储设备挂载

#vi /etc/rc.local
添加+
mkdir /backup                     #建立备份文件夹
cp /etc/hosts /backup             #将/etc/hosts文件备份到/backup
rm -rf /tmp/*                     #删除tmp下的所有文件
mount /dev/cdrom /mnt             #挂载光盘
文件配置如何生效

/etc/rc.local为/etc/rc.d/rc.local的快捷方式,

所以需要给/etc/rc.d/rc.local执行权限

#chowd +x /etc/rc.d/rc.local  #为rc.local文件添加执行权限
文件内容信息:
#!/bin/bash   #脚本文件

什么是脚本文件:将复杂工作简单化,将重复工作高效化(堆命令的文件)

脚本文件如何执行:

方法1:sh 脚本文件.sh

方法2:脚本文件.sh(需要完整路径以及必须确认脚本文件有执行权限)x--execute

#chowd +x test.sh   #为test.sh增加执行权限
系统自动挂载文件
文件路径信息:/etc/fstab
文件作用说明:实现存储设备自动挂载
文件配置信息:

UUID / xfs defaults 0 0

了解fstab文件配置:man fstab

1、挂机存储设备信息:表示方式UUID

2、挂载点目录信息 / 挂载点

3、文件系统类型 xfs 默认centos7文件系统

4、挂载参数信息 决定了是否可以向存储设备中存储数据 ro rw

5、是否进行磁盘备份 影响磁盘存储效率 磁盘利用率会降低

6、是否进行磁盘检查 影响磁盘存储效率

如何配置信息:

1、如何进行光驱自动挂载操作

​ 一:编写配置文件

/dev/cdrom     /mnt   iso9660  defaults  0 0

​ 二:重启系统(使配置文件生效)

reboot

2、如何进行磁盘自动挂载

​ 一:编写配置文件

blkid   #查看UUID
UUID    /oldboy   xfs  defaults  0  0

二:重启系统

reboot
系统环境变量
文件路径信息:/etc/profile
文件作用说明:可以设置环境变量,可以设置别名功能

环境变量:

变量如何设置:字母、数字、下划线

 X(变量)=10(变量值)

变量如何使用:$+X(变量)

info="oldgirl"
echo "$info"
#显示内容即是oldgirl

一:环境变量都是由大写字母组成

二:环境变量都是系统默认设置好的变量

三:环境变量是有特殊作用的变量

$PATH —— 让系统用户可以直接运行命令
命令执行逻辑:1、用户输入命令——>系统加载PATH环境变量 $PATH
            /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
            保存二进制目录

            2、在指定环境变量目录中找寻执行命令的文件
            环境变量路径中找到命令文件——>执行命令功能
            环境变量路径中找不到命令——>提示报错信息 (命令找不到、命令不存在)

四:环境变量设置完毕后,影响所有用户

环境变量设置方法:

临时生效:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:

永久生效设置:

vi /etc/profile
(G切换到最后一行添加以下内容)
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp

永久配置生效:

方法一:重新连接
方法二:source /etc/profile  利用命令重新加载配置文件
. == source 同等作用,系统默认别名

可以自己发明系统命令:

创建一个命令,将数据放到回收站里面

一:vi del
#!/bin/bash 
mv $* /tmp
:wq保存退出
二:将文件放入到环境变量PATH路径中
三:将命令文件权限修改
chmod +x /bin/del
别名设置

作用:简化命令操作

临时设置

alias ——查看别名信息
alias  rm='rm -i'  (为rm设置别名等于rm -i)
unalias rm   (临时取消别名)
alias  别名名称='真正命令'

永久设置

vi /root/.bashrc
vi /etc/profile
按G到最后一行添加以下内容
alias  rm='rm -i'  (为rm设置别名等于rm -i)

需求:执行rm命令,等价于将删除数据移动到回收站

alias rm='mv -t /tmp'
vi /etc/profile,将以上内容添加至最后一行
:wq  保存退出
source /etc/profile

永久设置别名和环境变量设置方法:

有4个文件可以设置

/etc/profile   /etc/bashrc       全局配置:影响所有用户
/~/.bashrc   /~/.bash_profile    局部配置:只影响指定用户
局部优先于全局
取消别名功能:
方法一:unalias rm   清除别名
方法二:使用命令绝对路径  /usr/bin/rm + 要删除的文件或目录
方法三:使用撬棍
\rm + 要删除的文件或目录
/etc/profile 优先级最低
/etc/bashrc 优先级第二
/root/.bashrc 优先级第三
/root/.bash_profile 优先级第一
同一个文件,相同命令,下面的生效
系统运行级别文件
文件路径信息:/etc/inittab
文件作用说明:定义系统启动后,自动开启哪些软件程序
系统运行级别:

centos6: 0 -- 系统关机级别(init 0) 1 -- 单用户模式 (可以用于破解系统密码、救援恢复系统数据) 2 -- 系统多用户级别(没有网络多用户级别) 3 -- 系统多用户级别(拥有网络多用户级别、系统默认登录级别) 4 -- 未使用级别 5 -- 系统图形化级别 6 -- 系统重启级别 (init 6)

设置方法:

​ 临时设置:init + 级别数字

​ 永久设置:vi /etc/inittab 最后一行 xx:3 :XXX改成你想要的级别

查看级别:runlevel

centos7(target模式):

ll /usr/lib/systemd/system/runlevel*target  

lrwxrwxrwx. 1 root root 15 Dec  2 17:27 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root 13 Dec  2 17:27 /usr/lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root 17 Dec  2 17:27 /usr/lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Dec  2 17:27 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Dec  2 17:27 /usr/lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root 16 Dec  2 17:27 /usr/lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root 13 Dec  2 17:27 /usr/lib/systemd/system/runlevel6.target -> reboot.target

设置方法:

查询级别命令:systemctl get-default

临时设置:init + target模式

永久设置:systemctl set-default 相应的target

系统登录提示信息
文件路径信息:/etc/motd
文件作用说明:登录系统后显示的提示信息
文件路径信息:/etc/issue *** /etc/issue.net
文件作用说明:登录系统前显示的提示信息
系统主机名称配置文件
文件路径信息:/etc/hostname
文件作用说明:修改主机名称

PS:企业需求,需要统计主机信息 == 资产管理

主机名称信息——主机网络地址——主机品牌型号——主机CPU——主机内存——主机存储信息等

主机名称规范:区域—机房名称—机柜号码—机器编号

​ BJ-pbs-010203-01

系统名称修改:

临时修改:

hostname + 主机名

永久修改:

vi /etc/hostname  修改主机名

hostnamectl set-hostname 主机名 (临时也修改,永久也修改)

操作系统软件安装(4方法)

第一种:利用rpm命令安装软件

命令简单介绍

rpm:RPM软件包管理命令 软件包都称为rpm包

命令使用方法:

安装准备:必须要有软件包
rpm -ivh

i (install装软件) v(显示安装过程) h(以人类能看懂的方式)

缺点:无法解决软件依赖关系

第二种:利用yum命令安装软件

命令简单介绍:

yum:可以下载软件 并安装软件

命令使用方法:

yum install -y 软件名
yum reinstall -y 软件名 (重新安装)

缺点:过度依赖网络,不能定制一些功能

第三种:利用编译命令安装软件(源码安装软件)

命令简单使用:

软件程序源码包——>configure(指定软件安装目录,指定软件功能)——>make ——>make install 编译安装

缺点:需要解决软件依赖,安装复杂度较高,安装软件更灵活

第四种:二进制包安装方法 (绿色软件安装包)速度快

安装软件过程:

二进制压缩包——>解压——>数据保存好——>简单配置——>启动程序)

缺点:无法解决软件依赖关系,功能单一

操作系统日志文件查看

日志文件:记录系统或者服务的运行情况(正常信息)(异常信息*)

cat /var/log/nginx/error.log(nginx错误路径)

日志文件保存路径:/var/log/

日志重要文件信息:

/var/log/messages ——系统运行或者服务运行状态信息的日志文件
/var/log/secure —— 系统用户登录情况日志文件
Dec  4 19:42:44 mwy sshd[8254]: Address 10.0.0.1 maps to bogon, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
Dec  4 19:42:45 mwy sshd[8254]: Accepted password for root from 10.0.0.1 port 53110 ssh2
Dec  4 19:42:45 mwy sshd[8254]: pam_unix(sshd:session): session opened for user root by (uid=0)
第一列:日志产生时间
第二列:主机名称信息
第三列:登录主机方式 ssh远程登录 login直接登录
第四列:登录成功或失败的具体信息
(opened或者closed代表打开或关闭)

日志文件如何查看:

head ——查看一个文件头部10行内容 加—数字可指定行数
tail ——查看一个文件尾部10行内容 加—数字可指定行数
tail -f ——实时查看文件变化内容信息,当文件被删除后停止追踪
tail -F——实时查看文件变化内容信息,文件被删除后保持重试,当创建同名文件后继续追踪
grep 筛选字符 日志文件 ——过滤文件信息
grep -i failed /var/log/secure
忽略大小写帅选secure 文件中含有failed内容

操作系统基础优化

1)系统用户优化:

如何创建用户:

useradd + 用户名
id + 用户名查询用户是否存在

用户设置密码:

方法一:交互式设置密码(输入两次密码信息)
passwd oldboy
输入密码:
确认密码:
方法二:免交互式设置密码
echo 123456 | passwd --stdin oldboy
管道符号:|
作用:将前面的命令执行结果信息 通过管道 输出给后面的命令加载使用

如何使用创建的用户:

方法一:重新建立远程连接
方法二:su - 用户名
su - oldboy
PS:root前往其他用户无需密码信息,其他用户切换至root或别的用户,需要密码信息

如何删除用户:

userdel oldboy  #删除oldboy用户

2)系统下载优化:

优化选择软件仓库:(更新yum源文件)

1、软件仓库中软件比较全面,定期更新
2、软件仓库服务器网络必须问题
最终选择
阿里源:https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.53322f70j4DgVa
下载优化过程:
确认是否有下载源目录:/etc/yum.repos.d/
完成下载优化操作:
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
清华源:https://mirrors.tuna.tsinghua.edu.cn/help/centos/
vi /etc/yum.redos.d/CentOS-Base.repo

下载基础软件:

vim ——vi 升级版

telnet——用于测试服务端口 telnet 服务器地址 服务端口

nc ——用于测试服务端口 nc 服务器地址 服务端口

nmap——用于测试服务端口 nmap 服务器地址 -p 服务端看

net-tools——使centos7系统可以支持centos6中网络相关命令

wget ——用于下载软件

bash-completion ——将部分命令参数进行补全

lrzsz ——用于从linux系统下载数据,也可以将windows数据上传到linux

​ sz -y 数据文件 rz -y 数据文件或直接拖拽

开发人员完成开发软件:放入不同平台(审核)

base软件平台:审核操作标准严格

epel软件平台:审核操作标准较松

epel下载源优化:

3)系统安全优化:

PS:系统的安全—反比—系统性能

firewalld 防火墙服务:

***者(*** ***) 外面 防火墙(安全策略 默认) 里面 网站架构
临时关闭:
systemctl stop firewalld     关闭防火墙
systemctl status firewalld   查看防火墙状态
systemctl is-active firewalld 查看防火墙状态精简
永久关闭:
systemctl diable firewalld  永久关闭防火墙
systemctl status firewalld 查看防火墙开机是否启用
systemctl is-enabled    firewalld  精简查看防火墙开机状态

selinux 安全服务:

root 管理员用户 利用selinux程序配置,限制root用户的能力
oldboy 普通用户
临时关闭:
setenforce 0(permissive)  临时关闭selinux
setenforce 1(enforcing)  临时开启selinux
getenforce 查看selinux状态
0——功能开关关闭   1——功能开关开启
永久关闭:
vi /etc/selinux/config
找到SELINUX改成SELINUX=desabled(enforcing是开启,permissive自由)
保存退出
查看selinux状态:getenforce
永久关闭生效:重启系统
永久启动程序:修改配置文件——重启系统——等待很长时间——重新加载selinux程序

技能领域各种问题:解决问题大招

1、重启系统服务

2、重启操作系统

3、重装操作系统

4)系统时间优化:

时间信息同步操作

系统时间同步,和所在时区同步

自动同步时间:
方式一:利用timadatectl

10为整数字符 10.01为浮点字符 abc为char字符串 0或者1为布尔类型字符

timedatectl status 查看时间、时区等信息
timedatectl timezone Asis|Shanghai 设置时区为亚洲上海
timedatectl set-ntp 1 同步网络时间
timedatectl set-local-rtc 1 同步硬件时间和电脑时间一样
yum -y install chrony   安装系统同步软件
systemctl start chronyd 启动同步软件服务
systemctl enable chronyd    让时间同步软件开机自启
方式二:利用ntpdete
yun -y install ntpdate  
ntpdate ntp.aliyun.com 找时间服务器

情况一:下载软件包 软件包名称和命令名称一致

yum -y install ntpdate 直接安装使用即可

情况二:下载软件包 软件包名称和命令名称一致

yum provides locate (检索含有locate的软件包)

yum search locate (搜索含有locate的软件包)

手动修改时间:
方式一:利用timedatectl
timedatectl set-timezone Asis|Shanghai 设置时区为亚洲上海
timedatectl set-time "2019-05-12 12:23" 手动设置时间
yum -y install chrony   安装系统同步软件
systemctl start chronyd 启动同步软件服务
systemctl enable chronyd    让时间同步软件开机自启
方式二:利用命令date
date “月日时分年”  手动更改时间

5)字符编码优化:

解决中文乱码,系统提示信息变为中文

字符编码修改方法:
UTF-8 支持中文
GBK-xx 支持中文
修改字符编码:
$LANG

en_US.UTF-8

临时修改:LANG=zn_CN.gbk
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8 支持中文的字符编码
localectl list-locales  查询字符编码信息
localectl list-locales | grep "zh_CN"   查询支持中文的字符编码
永久修改
localctl set-locale "LANG=zn_CN.gbk"

6)远程连接优化:

提升远程连接速度

vi /etc/ssh/sshd_config ---远程服务配置文件
UseDNS no  ---是否开启DNS反向解析过程
DNS  已知域名-->解析-->IP  利用IP地址通过网络---访问IP地址主机
     已知IP地址-->访问服务器中的服务  22端口 ssh远程服务
     收到谁访问  源IP:10.0.0.1
     服务端询问-->10.0.0.1名称或者域名是什么
RDNS 已知IP地址-反向解析->名称域名信息  (影响速率)
GSSAPIAuthentication yes  GSSAPI身份验证   关闭改成no
systemctl restart sshd  重启sshd服务生效

7)系统提示符优化:

改组成信息 颜色优化

特殊环境变量:PS1 = [\u@\h \W]\$
[\u@\h \W]\$
[root@mwy ~]#
\u---表示登录系统用户信息
\h---表示主机名称信息
\W---显示当前路径信息(相对路径)

临时修改:
PS1='[\u@\h \w]\$'   可以改成显示绝对路径
\w---显示当前绝对路径信息

1575599232802

永久修改:
vi /etc/profile  加入信息保存退出

修改命令提示符颜色:

临时修改
\[\e[32;1m]      字符串信息添加颜色 数字信息表上不同颜色  m代表字体信息加粗
[\u@\h \W \t]\$  命令提示符
\[\e[0m\]        停止后面字符串颜色修改

PS1='\[\e[32;1m\][\u@ \W \t]\$ \[\e[0m\]'
运维操作文件信息:
1)先将文件进行备份
2)编辑文件内容信息
3)利用对比命令分析错误
vimdiff(对比文件,找出错误) + 配置文件信息+备份文件信息

系统信息查看方法

系统信息查看:

1)使用系统版本信息:centos 7.6

cat /etc/redhat-release  查看系统版本信息
CentOS Linux release 7.6.1810 (Core) 

2)使用系统内核信息

uname -a
Linux mwy 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

硬件信息查看

1)CPU

查看文件信息:
cat /proc/cpuinfo
model name  : Intel(R) Core(TM) i5-8300H CPU @ 2.30GHz  CPU名称
cpu MHz     : 2303.999   CPU主频
cache size  : 8192 KB    CPU缓存
physical id : 0          服务器上CPU颗数 
    physical id : 0     physical id : 1
    physical id : 0     physical id : 1   
                        2颗CPU
cpu cores   : 1          CPU核心总数   显示单颗CPU的内核数量
processor   : 0          服务器核心数   服务器上所有CPU的总核心数
grep "physical id" /pro/cpuinfo | uniq | wc -l 统计服务器CPU数量
grep "processor" /pro/cpuinfo | wc -l 统计服务器总核心数

查看CPU命令:lscpu

Core(s) per socket:    1    每颗CPU核心数
CPU(s):                1    服务器总核心数
问题:为什么proc中的信息不能更改
此目录中的所有数据都存储在内存里面,无法更改

2)内存

查看文件信息:/proc/meminfo
cat /proc/meminfo
MemTotal:         995896 kB     服务器总内存容量
MemFree:          734044 kB     服务器内存空闲容量 
MemAvailable:     725888 kB     服务器可用内存容量 ***
Buffers:            2092 kB     缓冲(加快写入数据)
Cached:           109016 kB     缓存(加快读取速度)
查询内存信息命令:free -h

3)磁盘

查看挂载信息:/proc/mounts
cat /proc/mounts
/dev/sr0 /mnt iso9660 ro,relatime 0 0
/dev/sda1 /boot xfs rw,relatime,attr2,inode64,noquota 0 0
硬盘      挂载点 硬盘类型    
查看挂载信息:df -h
Filesystem      Size  Used Avail Use%*** Mounted on
/dev/sda3        99G  1.8G   98G   2%    /
devtmpfs        476M     0  476M   0%    /dev
除了硬盘信息还能查询到容量,使用率

4)系统负载情况

cpu压力-->CPU负载(系统负载)
查看负载信息:/proc/loadavg
cat /proc/loadavg
0.00           0.01          0.05 1/115 10508
每分钟平均负载  5分钟平均负载   15分钟平均负载
命令查看负载信息:w
12:17:36 up  6:51,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      Thu19    3:58m  0.01s  0.01s -bash
root     pts/0    10.0.0.1         10:56    1:15m  0.02s  0.02s -bash
root     pts/1    10.0.0.1         11:02    0.00s  0.04s  0.00s w
负载数值 <= 服务器总核心数
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!