Linux Note [vaynexiao]

安装Linux

iso下载地址:
https://mirrors.aliyun.com/centos/
http://mirrors.163.com/centos
一路next装的linux没有图形界面,是因为这里没有选择【最小安装】改为【GNOME桌面】

各目录

/bin  存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里
/etc  存放系统管理和配置文件
/home  存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示

/usr  用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用)。
	这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。

/usr/x11r6 存放x window的目录
/usr/bin 众多的应用程序  
/usr/sbin 超级用户的一些管理程序  
/usr/doc linux文档  
/usr/include linux下开发和编译应用程序所需要的头文件  
/usr/lib 常用的动态链接库和软件包的配置文件  
/usr/man 帮助文档  
/usr/src 源代码,linux内核的源代码就放在/usr/src/linux里  
/usr/local/bin 本地增加的命令  
/usr/local/lib 本地增加的库

/opt  额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里。
/proc  虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息。(不能动)
/srv /sys 不能动
/root  超级用户(系统管理员)的主目录(特权阶级^o^/sbin  存放二进制可执行文件,只有root才能访问。这里是系统管理员使用的系统级别的管理命令和程序。如ifconfig等。
/dev  用于存放设备文件。
/mnt  系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统。
/boot  存放用于系统引导时使用的各种文件
/lib  存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,
	作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件。
/tmp  用于存放各种临时文件,是公用的临时文件存储点。
/var  用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等。
/lost+found  这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里

https://blog.csdn.net/u013239236/article/details/48845251

基本命令

shutdown -h now # 立即关机,注意不是重启
shutdown -h 10 # 指定 10 分钟后关机
shutdown -c # 取消按预定时间关闭系统

reboot  # 重启
su root  # 切换用户至root
cd /       # 进入根目录
cd ..      # 返回上一层目录
cd dirname   # 进入目录
clear   # 清屏
pwd  # 显示当前路径
top # 查看系统状况
ifconfig # 查看ip
history   # 查看命令历史 ! num 可以快速执行该num对应命令
find / -name 'prometheus*' # 搜索文件name中含有promethues的所有文件和文件夹
exit  # 退出
date # 查看时间和日期
man 命令   # 查看命令用法,q退出
touch f1.xml   # 新建文件
ping www.baidu.com
echo  $PATH # 查看PATH
source profile   # 让profile 立刻生效
df -h # 查看系统容量使用 默认单位k,-h表示单位M
file filename # 查看文件类型
cat /etc/redhat-release # 查看CentOS版本

wget 只下载
yum 下载和安装
rpm 只离线安装

tar  -zcvf  newname.tar.gz  oldname.tar.gz  # 压缩oldname至newname
tar  -zxvf  filename.tar.gz # 解压
tar  -zxvf  filename.tar.gz -C /root/software # -C解压至指定路径

ls   # 显示当前目录文件,也可以指定路径ls /etc
ls -l   # 列表形式显示当前目录全部非隐藏文件,包括权限,等价于ll(-a 显示隐藏文件)
ls -al # 等同于ls -la
  
mkdir xxx
mkdir -p aaa/bbb # 同时新建多层文件夹
rmdir xxx # 删除文件夹

rm setting.xml   # 删除文件
rm -rf f1.xml # -rf强制删除f1  f2仍然正常 f3失效
rm -r setting.xml  # 强制删除文件夹及里面文件  
rm -rf setting.xml  # 强制删除文件夹及里面文件  f代表递归
rm -rf /  # [ 删库跑路]

mv a.xml ../install/ # 剪切至上一层目录中的install文件夹中
mv a.xml b.xml # 重命名:原文件夹名与目标文件夹名路径相同,但名字不一样

cp  aaa ../software/   # 复制文件夹到上一层目录中的software文件夹中,只针对单层文件夹
cp -r  aaa ../software/   # -r表示 复制嵌套文件夹到上一层目录中的software文件夹中

nl a.txt # 带行号显示内容,为了查看总行数
nl  -n rz -w 3  b.xml # -n rz行号用0补齐6位,000001, -w 3 指定补足3位 001

cat < more < less
cat 命令 适用于文件内容少的情况,显示最后一屏内容
tac 倒序显示内容

more 命令会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,
按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。
-num  # 一次显示的行数
-d    # 在每屏的底部显示友好的提示信息 space q

less 功能最强大
pageup pagedown 上 下
g # 跳到第一行;
G # 跳到最后一行;
b # 向上滚动一屏;
d # 向下滚动半屏;

head -n 10 /etc/profile # 显示一个文件的内容的前多少行
tail -n 5 /etc/profile # 显示一个文件的内容的后多少行

echo hello A # 将内容输出到屏幕
echo hello A > tmp.txt #将rmp.txt内容替换为 hello A
echo hello C >> tmp.txt # 将字符串追加写入该文件的最后一行

ln old new1 # 硬链接,类似于old文件的复制,编辑一方内容,另一方会同步变化,但删除不会同步
ln -s old new2 # 软连接,类似windows的快捷方式

rpm

# -i install 安装
rpm -ivh fileName   #其中i表示安装,v表示显示安装过程,h表示显示进度
rpm -Uvh fileName   # 更新指定包,没安装会直接下载安装
rpm -Fvh fileName   # 更新指定包,没安装,会放弃

# -q 查询已安装的rpm包信息
rpm -qa   # 查看系统中所有rpm包
rpm -qa | grep -i mysql # 查看已安装的程序,-i 忽略大小写
rpm -qi   MySQL-server-5.5.48-1.linux2.6.x86_64 # 查看已安装包的详细信息
rpm -ql   MySQL-server-5.5.48-1.linux2.6.x86_64 # 查看已安装包的文件安装路径信息
rpm -qc   MySQL-server-5.5.48-1.linux2.6.x86_64 # 查看已安装包的配置信息
rpm -qd   MySQL-server-5.5.48-1.linux2.6.x86_64 # 查看已安装包的文档信息
rpm -qf /usr/share/mysql/ukrainian/errmsg.sys # 查看指定文件属于哪个rpm包

# -qp 针对本地未安装的rpm包
rpm -qpi MySQL-server-5.5.48-1.linux2.6.x86_64.rpm # 查询本地rpm文件的详细信息
rpm -qpc MySQL-server-5.5.48-1.linux2.6.x86_64.rpm # 查询本地rpm文件的包含文件
rpm -qpc MySQL-server-5.5.48-1.linux2.6.x86_64.rpm # 查询本地rpm文件的配置文件
rpm -qpc MySQL-server-5.5.48-1.linux2.6.x86_64.rpm # 查询本地rpm文件的文档文件

# -e 卸载
rpm -e mysql # 卸载程序
rpm -e –allmatches mysql # 卸载程序,删除所有跟PACKAGE_NAME匹配的所有版本的包

rpm -e –nodeps mysql # 不考虑依赖包,卸载程序
# --force强制安装,比如你装过这个rpm的版本1,如果你想装这个rpm的版本2,就需要用--force强制安装。
# 但一般不建议这样操作,因为可能引起其它问题,建议配置成 yum 安装。


# 重建rpm数据库
rpm --rebuilddb
rpm --initdb

yum

# yum安装卸载命令,
yum install fileName
yum -y remove fileName

# yum查询想要安装的包
yum search mysql

# 列出所有可安装的软件包
yum list
yum list | grep mysql  # 查找在源上是否有安装包

# 列出所有已安装的软件包
yum list installed
yum list installed  | grep mysql # 查找已安装的是否有安装包

# 列出所有已经安装但不在repository的包
yum list extras

# 另有命令查看软件包的详细信息
yum info ..

# 列出所有可更新的软件包
yum list updates

# 清除yum缓存
yum 会把下载的软件包和header存储在cache中,而不会自动删除。如果我们觉得它们占用了磁盘空间,
可以使用yum clean指令进行清除,更精确 的用法是:
yum clean headers # 清除header
yum clean packages # 清除下载的rpm包
yum clean all # 一股脑儿端

-y 自动应答yes
yum -y update:升级所有包同时也升级软内件和系统内核;
yum -y upgrade:只容升级所有包,不升级软件和系统内核。

vim

vi/vim    # 文件名(若文件名不存在,可以顺便新建和保存)
i         # 编辑模式
:q        # 退出;
:q!       #   不保存退出;
:w        #  保存;
:w!       #   强行保存;
:wq       #   保存退出
:wq!      #    强制保存并退出
Esc       # 切换到只读,
:iset nu  # 要行号
:iset nonu # 不要行号
/str   查找str,n查找下一个

安装Tomcat

################### tar.gz 方式 #################
tar -zxvf apache-tomcat-9.0.22.tar.gz   # 解压
# 执行:startup.sh -->启动tomcat
# 执行:shutdown.sh -->关闭tomcat
./startup.sh
./shutdown.sh

# 确保Linux的防火墙端口是开启的,如果是阿里云,需要保证阿里云的安全组策略端口是开放的!

# 查看firewall服务状态
systemctl status firewalld

# 开启、重启、关闭、firewalld.service防火墙服务
service firewalld start/restart/stop

# 查看防火墙规则
firewall-cmd --list-all    # 查看全部信息
firewall-cmd --list-ports  # 只看端口信息

# 开启端口
开端口命令:firewall-cmd --zone=public --add-port=8080/tcp --permanent
重启防火墙:systemctl restart firewalld.service

命令含义:
--zone #作用域
--add-port=80/tcp  #添加端口,格式为:端口/通讯协议
--permanent   #永久生效,没有此参数重启后失效

安装SQL Server

设置镜像
curl https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo > /etc/yum.repos.d/mssql-server.repo

yum install -y mssql-server
sudo /opt/mssql/bin/mssql-conf setup
输入2使用Developer(免费,无生产许可)版本
sa135#abc

rpm -qa | grep mssql

打开1433端口
firewall-cmd --zone=public --add-port=1433/tcp --permanent
firewall-cmd --reload

systemctl start mssql-server
systemctl restart mssql-server
systemctl stop mssql-server
systemctl status mssql-server
systemctl enable mssql-server # 设置为开机启动
具体配置路劲为/opt/mssql/bin/mssql-conf

???
[root@MiWiFi-R4CM-srv kuangshen]# systemctl  status mssql-server
● mssql-server.service - Microsoft SQL Server Database Engine
   Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; enabled; vendor preset: disabled)
   Active: failed (Result: start-limit) since Mon 2020-11-16 05:30:04 PST; 4min 36s ago
     Docs: https://docs.microsoft.com/en-us/sql/linux
  Process: 5297 ExecStart=/opt/mssql/bin/sqlservr (code=exited, status=1/FAILURE)
 Main PID: 5297 (code=exited, status=1/FAILURE)

Nov 16 05:30:04 MiWiFi-R4CM-srv systemd[1]: mssql-server.service: main process exited, code=exited, status=1/FAILURE
Nov 16 05:30:04 MiWiFi-R4CM-srv systemd[1]: Unit mssql-server.service entered failed state.
Nov 16 05:30:04 MiWiFi-R4CM-srv systemd[1]: mssql-server.service failed.
Nov 16 05:30:04 MiWiFi-R4CM-srv systemd[1]: mssql-server.service holdoff time over, scheduling restart.
Nov 16 05:30:04 MiWiFi-R4CM-srv systemd[1]: start request repeated too quickly for mssql-server.service
Nov 16 05:30:04 MiWiFi-R4CM-srv systemd[1]: Failed to start Microsoft SQL Server Database Engine.
Nov 16 05:30:04 MiWiFi-R4CM-srv systemd[1]: Unit mssql-server.service entered failed state.
Nov 16 05:30:04 MiWiFi-R4CM-srv systemd[1]: mssql-server.service failed.

安装Mysql

下载地址:https://downloads.mysql.com/archives/community/
或者在线下载:wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

###################### 卸载 ##################
# 检查之前有没有装过mysql,-i表示忽略大小写
rpm -qa|grep -i mariadb
yum -y remove mariadb-server-5.5.56-2.el7.x86_64
yum -y remove mariadb-5.5.56-2.el7.x86_64
yum -y remove mariadb-devel-5.5.56-2.el7.x86_64
yum -y remove mariadb-libs-5.5.56-2.el7.x86_64

rpm -qa|grep -i mysql # 查看安装的服务名
rpm -ev MySQL-client-5.5.25a-1.rhel5 # 停止mysql
find / -name mysql # 查到所有涉及的路径
rm -rf /var/lib/mysql # 再将查到的路径全部逐一删除
rpm -qa|grep -i mysql # 再次查找机器是否安装mysql

yum list installed mysql*
。。。


###########  tar方式 来自:codesheep 未完,待整理 ########
tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C
/usr/local/
mv mysql-5.7.30-linux-glibc2.12-x86_64 mysql


######################## rpm #####################
官网下载:
MySQL-client-5.5.48-1.linux2.6.x86_64.rpm
MySQL-server-5.5.48-1.linux2.6.x86_64.rpm

# 安装:
rpm -ivh MySQL-server-5.5.48-1.linux2.6.x86_64.rpm 
# i是install v详细安装信息 h安装进度显示
# 如果错误信息是:
file /usr/share/mysql/czech/errmsg.sys from install of MySQL-server-5.6. 17-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.73-3.el6_5.x86_6 4

yum -y remove mysql-libs-5.1.73* # 自动应答yes需要卸载后面的5.1.73开头所有文件

再次安装客户端
rpm -ivh MySQL-client-5.5.48-1.linux2.6.x86_64.rpm

mysqladmin --version # 检查是否安装成功
mysqladmin  Ver 8.42 Distrib 5.5.48, for Linux on x86_64

启动服务
service mysql start/stop/restart/status

# 设置root密码123456
/usr/bin/mysqladmin -u root password 123456

# 设置开机自启动mysql
???chkconfig mysql on
# 查看
???chkconfig --list|grep mysql # 2345启用表示正常

# 进入mysql
mysql -uroot -p123456

# 修改字符集
插入中文数据会显示?
查看字符集
show variables like 'character%';
或者show variables like '%char%'; # 会发现都是latin1
改为utf8
# 具体做法
复制配置文件
cp /usr/share/mysql/my-huge.cnf /etc/my.cnf # 版本5.5
cp /usr/share/mysql/my-default.cnf /etc/my.cnf # 版本5.6
vim /etc/my.cnf
[client]
port		= 3306
socket		= /var/lib/mysql/mysql.sock
default-character-set=utf8  # 增加这一句
[mysqld]
port		= 3306
character_set_server=utf8  # 增加这一句
character_set_client=utf8  # 增加这一句
collation-server=utf8_general_ci  # 增加这一句
[mysql]
no-auto-rehash
default-character-set=utf8  # 增加这一句

重启mysql后,中文依然是乱码,而新建库中表中文不是乱码。

/var/lib/mysql # mysql数据库文件的存放路径
/usr/share/mysql # 配置文件目录
/usr/bin # 相关命令目录
/etc/init.d/mysql # 启停相关脚本

###################### yum待整理 ############################
yum list |grep mysql  # 查找mysql相关在线程序,区分大小写
yum  -y   install   mysql.xxx、mysql-devel.xxx、mysql-server.xxx # 默认安装最新版本
# 报错时:先下载仓库文件并安装
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm



# 帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑登入MySQL后,
# 更改"MySQL"数据库"user"表里的"host"项,将"localhost"改成"%"
use mysql;
update user set Host='%' where Host='localhost' and User='root';
FLUSH   PRIVILEGES  # 修改生效

MySQL的安装位置

  • /var/lib/mysql:mysql数据库文件的存放路径
  • /usr/share/mysql:配置文件目录
  • /usr/bin:相关命令目录
  • /etc/init.d/mysql:启停相关脚本

mysql主要配置文件
二进制日志log-bin
主从复制
错误日志log-error
默认是关闭的,记录严重的警告和错误信息,每次启动和关闭的详细信息等。
查询日志log
默认关闭,记录查询的sql语句,如果开启会降低mysql的整体性能,因为记录日志也是需要消耗系统资源的。
数据文件
windows:D:\devSoft\MySQLServer5.5\data目录下可以挑选很多库
linux
看看当前系统中的全部库后再进去
默认路径:/var/lib/mysql

frm文件:存放表结构
myd文件:存放表数据
myi文件:存放表索引

如何配置
windows:my.ini文件
Linux:/etc/my.cnf文件

mysql逻辑架构介绍

  • 和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和时机需要选择合适的存储引擎。

mysql存储引擎
查看命令
- 看你的mysql现在已提供什么存储引擎:show engines;
- 看你的mysql当前默认的存储引擎:show variables like ‘%storage_engine%’;

MyISAMInnoDB
主外键不支持支持
事物不支持支持
行表锁表锁,仅操作一条记录也会锁住整个表,不适合高并发操作行锁,操作一行,就锁一行,不影响其他操作,适合高并发操作
缓存只缓存索引,不缓存真实数据不仅缓存索引,还缓存数据,对内存要求极高,内存大小对性能有决定性影响
表空间
关注点性能事务

安装Redis

##################### tar方式 #####################
wget https://download.redis.io/releases/redis-5.0.10.tar.gz
后面make用的gcc不支持redis6.0版本,建议下载5
http://download.redis.io/releases/

tar xzf redis-5.0.10.tar.gz # -zxvf也可以

cd redis-5.0.10

make # 编译此时的二进制代码
安装软件的时候,提示make: command not found
或者其他警告错误

yum install gcc gcc-c++ # 安装gcc

src/redis-server # 临时启动
此时要改为后台启动:
(1)注释掉redis.conf中的"bind 127.0.0.1"
(2)redis.conf中的"protected-mode yes"改为"protected-mode no",去掉保护模式
(3)redis.conf中的"daemonize no"改为"daemonize yes"
(4)redis.conf中的"requirepass your_password"一行可以注释掉,变成免密登录
(5)src/redis-server redis.conf,启动程序
(6)ps -ef | grep redis,确认redis后台程序已经启动
src/redis-server redis.conf

ps -ef | grep redis 查看

安装JDK

######################## 卸载 ########################
rpm -qa | grep java
yum -y remove java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64
yum -y remove java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64
... 查询到的逐个remove,以下省略 ...

rpm -qa|grep jdk
rpm -e --nodeps jdk1.8.0_121-1.8.0_121-fcs.x86_64 # 强制删除


######################## 方式1:tar ########################
tar -zxvf jdk-8u271-linux-x64.tar.gz
# 安装位置自定义

######################## 方式2:rpm ########################
rpm -ivh jdk-8u221-linux-x64.rpm
# 默认安装在 /usr/java/jdk1.8.0_271-amd64


#####################  配置/检查 ###########################
vim /etc/profile
在 unset i 的前面输入
export JAVA_HOME=/usr/local/jdk1.8.0_11   # jdk路径    
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

source /etc/profile # 让新增的环境变量生效!

验证
java -version # tar方式没有安装过程,只是一个固定位置的文件,卸载只需删除文件夹即可??
javac

账户权限

超级账号切换到普通账号不需要密码,反之需要密码
useradd zhangsan   # 添加账号
useradd -m zhangsan   # 添加账号,同时创建目录

userdel zhangsan # 删除
userdel -r zhangsan # 连目录一起删除
usermod -d /home/233 zhangsan # 修改zhangsan用户的目录为233(最好先创建233目录)
su zhangsan # 切换用户
exit # 退出到root

hostname # 查看主机名
hostname vaynexiao # 修改主机名 ,需要重新连接xshell

passwd zhangsan  # 修改张三密码
passwd -l zhangsan # 冻结张三
passwd -d zhangsan #清空密码 等同于冻结,因为没密码了

进程

ps -aux | grep mysql # 静态查看系统运行情况,mysql不区分大小写
ps -elf | grep redis

pgrep -l mysql # 根据模糊查询名字杀
39227 mysql

pgrep -U zhangsan # 根据user杀
39227

pgrep -t tty3 # 根据终端杀

top
pstree -pua # pid user 完整命令
pstree mysql

kill -9 pid # 强制杀进程 pid
kill -9 vim # 模糊杀死 vim
killall -9 vim # 模糊杀死 vim 全部进程

pkill -U zhangsan # 杀死该用户全部进程
pkill -t pts、2 # z杀死终端全部进程

vim 123.xml & # 后台vim该文件
vim zzz.xml 然后 crtl+z # 挂起至后台
jobs # 查看后台
fg num # 根据num还原后台

用户组

groupadd dev # 添加用户组

cat /etc/group

groupadd -g 520 dev2 # 添加用户组并自定义组id,默认会自增

groupdel dev # 删除

groupmod -g 666 -n new_dev dev # 修改组名

/etc/passwd

/etc/group

虚拟机配置网络

https://www.bilibili.com/video/BV187411y7hF?p=18

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值