2022-11-21 15:58:48 +08:00

12 KiB
Raw Blame History

title, author, top_img
title author top_img
Linux 文永达 https://gcore.jsdelivr.net/gh/volantis-x/cdn-wallpaper/abstract/00E0F0ED-9F1C-407A-9AA6-545649D919F4.jpeg

Linux


简介

在linux系统中没有盘符的概念。 一个盘。/根目录 没有图形化界面 通过指令操作

linux指令是可以传参数的。

在Linux系统下万事万物皆文件。

Linux的文件结构19个

bin存放的是二进制的可以执行文件。重点 sbin存放的是二进制的可以执行文件。super只有root用户才能访问 etc存放系统配置文件重点 usr用来存放共享的系统资源 home家目录重点 root就是root用户的家目录 dev存放设备文件

Linux指令

ip addrip a查看主机的ip地址 clear清屏 cd进入指定的目录 ls列出当前目录下的所有文件及目录 ls -l给ls指令传了一个参数l。等同于ll。列出当前目录下的所有文件及目录的详情。 ls binls后可以接目录名要么接绝对路径。 tab键提示作用。自动补全。 cd cd ~):代表回到家目录 pwd查看当前所在的目录 方向键↑和↓:浏览历史指令

mkdir创建目录 mkdir -p创建多级目录 cp aa.txt init复制粘贴。把aa.txt复制到init目录下 cp -r init spring复制粘贴。把init目录以及包含的文件复制到spring目录下 mv aa.txt xiaoqiang.txt重命名。把aa.txt重命名为xiaoqiang.txt。 mv bb.txt spring移动。把bb.txt移动到spring目录。 mv -f spring aaaaa在覆盖前不提示 mv -r aaaaa bbbbb强行覆盖。前提是被覆盖的目录和覆盖的目录要结构相同。慎用 rm xiaoqiang.txt删除xiaoqiang.txt rm -f spring.xml强行删除spring.xml没有确认提示 rm -r init递归删除init目录 rm -rf bbbbb递归删除bbbbb并且没有确认提示慎用 rmdir aa删除空目录aa用的很少 rm -rf *:删除所有的目录及文件(慎用)

cat显示文本文件的内容一部分。.java.py.c++.xml.html.js.css more分页显示文本文件的内容。只能向下查看不能向上翻页。 less分页显示文本文件的内容。上下翻页。通过PgUp和PgDn进行上下翻页↑和↓一行一行的查看。输入q退出查看。 top -n 10 xxxx查看文本文件的前10行 tail -n 10 xxxx查看文本文件的后10行 tail -f xxxx实时监控文本文件的变化 Ctrl + c几乎可以退出所有的操作 echo打印输出一句话。也可以用作向文本文件内写入信息。会自动追加并换行。

压缩:

1、打包把多个文件打成一个包。 2、压缩把文件占用的大小进行压缩。

tar命令用来进行压缩和解压缩的。 -c 建立一个压缩文件(打包) -x 解开一个压缩文件(解包) -z 是否需要使用gzip压缩 -v 压缩过程中是否显示文件日志 -f 使用的文件名 tar -cf只打包不压缩不显示日志 tar -xf解压文件不显示日志 tar -cvf只打包不压缩显示日志 tar -xvf解压文件显示日志。 tar -zcvf打包压缩显示日志 tar -zxvf解压最常用

系统服务:

systemstl操作系统服务。 status查看某个服务的状态 stop终止某个服务 start启动某个服务 restart重启某个服务

systemctl status mysqld

网络服务network 防火墙服务firewalld Mysqlmysqld systemctl status network

文件详情以home目录为例

d说明当前文件是一个目录- 代表的是文件) rwxr可读w可写x可执行。代表当前文件的创建者的权限 r-x代表的是和文件创建者的同组的用户的权限 r-x代表的是其他用户 2链接数 root创建者 root创建者所在的组 6文件占用空间的大小字节 Apr 11 2018最后一次修改时间 home文件名或目录名

进程管理

ps 查看前台进程 ps -aux 查看所有进程详细信息 UID 用户 PID 进程ID ps -ef 查看所有进程详细信息 UID 用户 PID 进程ID PPID 父进程ID 父进程id为1 为系统进程 top 动态显示进程 ps -aux|grep network 查看所有进程详细信息并搜索network进程 kill 根据PID终止进程 kill -9 强制终止

vi命令 编辑器

i 切换到编辑模式 ESC 切换到命令模式 :wq 保存并退出 :q 不保存退出 :w 保存 :q! 强制不保存退出 :wq! 强制保存退出 a 在光标后插入 A 在光标当前行的行尾插入 i 在光标前插入 I 在光标当前行的行头插入 :set nu 显示行号 :set nonu 取消显示行号 gg 到文本的第一行 G 到文本的最后一行 u 后退一步 相当于 Ctrl + z Ctrl + r 前进一步 Shift + zz 保存退出 跟:wq一样 起始行号,结束行号 del 删除对应范围内的行

安装vim编辑器

yum install -y vim

配置网络

cd /etc/sysconfig/network-scripts
vi ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=08913b58-0bc2-42c5-8b59-6782e0029d7b
DEVICE=ens33
ONBOOT=yes

# 修改ONBOOT=yes
systemctl restart network

ip addr

软件安装

rpm 本地安装 yum centos安装软件 需要源

安装screenFetch

#使用wget 下载安装包
wget https://github.com/KittyKatt/screenFetch/archive/master.zip
#使用unzip解压unzip需要安装
yum install unzip
unzip master.zip
#移动
mv screenFetch-master/screenfetch-dev /usr/bin/screenfetch

用户

who am i 查看当前用户 who --count 查看当前登录用户数量 exit 退出登录 groupadd 创建用户组 groupdel 删除用户组 useradd xiaoqiang -g user 创建一个用户xiaoqiang并指定用户组user passwd xiaoqiangf 给xiaoqiang用户指定密码 su 切换用户 从root切换到其他用户不需要输入密码 如果从其他用户切换到root用户需要输入密码

权限管理

Linux 下文件有三种权限 r 读 w写 x可执行


chmod 755 file

安装MySQL

有些Linux会自带MariaDB数据库所以需要先卸载

列出安装的MariaDB的包

rpm -qa | grep mariadb

得到查看到的包名

卸载包 后面加上包名

rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

自此下载MariaDB已经完成了

切换到home目录下

cd /home/

安装 wget 并下载yum库

yum install wget -y
wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
rpm -Uvh mysql80-community-release-el7-1.noarch.rpm
cd /etc/yum.repos.d/
vim mysql-community.repo

选择要安装的MySQL版本

[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=0  // 将这里的0改为1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
enabled=1  //将这里的1改为0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

enabled=0为禁用对应版本的YUM库enabled=1为启用默认8.0的配置为enabled=1安装5.7的话我们就把8.0的enabled=1修改为enabled=0然后把5.7的enabled=0修改为enabled=1

安装MySQL并启动

yum install mysql-community-server
service mysqld start

第一步安装成功之后然后启动MySQL

如果失败了提示GPG

RPM 维护一个单独的密钥环,因为它是一个系统范围的应用程序,而用户的 GPG 公钥环是一个用户特定的文件。要将 MySQL 公钥导入 RPM 密钥环,首先获取密钥,然后使用 rpm --import 导入密钥

# centos
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

# Ubuntu
wget -q -O - https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 | apt-key add -

yum install mysql-community-server

查看MySQL初始密码

sudo grep 'temporary password' /var/log/mysqld.log

登录MySQL

mysql -u root -p

设置密码的验证强度等级

set global validate_password_policy=LOW;

设置密码长度为6位

set global validate_password_length=6;

修改MySQL初始密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

给root权限开启远程登录

use mysql;
select user,host from user;
update user set host = '%' where user = 'root';
flush privileges;

配置Java环境变量

将tar.gz格式的jdk解压后移动到/usr目录下

mv jdk1.8.0_301/ /usr/

编辑/etc目录下profile文件 G到最后一行

vim /etc/profile

export JAVA_HOME=/usr/jdk1.8.0_301
export PATH=$PATH:$JAVA_HOME/bin

:wq保存退出

重新加载配置文件

source /etc/profile

CentOS7防火墙

放行特定端口

firewall-cmd --add-port=6379/tcp --permanent

重新加载防火墙

firewall-cmd --reload

查看防火墙开放的端口

firewall-cmd --list-all

指定作用域开发防火墙端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent
# -zone 作用域
# -add-port 添加端口,格式为端口/协议
# -permanent 永久生效,没有此参数重启后失效

分配Swap

查看分区大小

free -h

使用dd命令创建一个swap分区

dd if=/dev/zero of=/home/swap bs=1024 count=4194304

count的值是size多少M* 1024

格式化swap分区

mkswap /home/swap

把格式化后的文件分区设置为swap分区

swapon /home/swap

swap分区自动挂载

vim /etc/fstab
# G 在文件末尾加上
/home/swap swap swap default 0 0

关闭Swap

swapoff /home/swap

修改swap使用率

swappiness的值的大小对如何使用swap分区是有着很大的联系的。swappiness=0的时候表示最大限度使用物理内存然后才是 swap空间swappiness100的时候表示积极的使用swap分区并且把内存上的数据及时的搬运到swap空间里面。两个极端

查看swappiness

cat /proc/sys/vm/swappiness 

修改swappiness值为60

sysctl vm.swappiness=60

但是这只是临时性的修改,还要做一步

vim /etc/sysctl.conf 
# 编辑这行
vm.swappiness=60

Windows Linux子系统

WSL2

打开 Windows Terminal PowerShell

安装

wsl --install

微软官方文档 安装 WSL | Microsoft Docs

默认安装Ubuntu 20.04 LTS版

更改默认安装的Linux发行版

wsl --install -d <Distribution Name>

/mnt目录下是Windows系统的挂载盘可直接访问Windows磁盘文件

通过FinalShell连接WSL2

  1. 需要先删除ssh再安装ssh
apt-get remove --purge openssh-server #先删ssh
apt-get install openssh-server #再安装ssh
rm /etc/ssh/ssh_config
service ssh --full-restart #重启ssh服务
  1. 修改配置文件
vim /etc/ssh/sshd_config

Port 6666 # 指定连接端口 6666
ListenAddress 0.0.0.0 # 指定连接的IP
PasswordAuthentication yes # 开启密码认证
PermitRootLogin yes # 开启root用户登录

  1. 重启ssh每次重启wsl都要执行该语句
service ssh --full-restart
  1. 重新生成host key
dpkg-reconfigure openssh-serve

FinalShell就可以连接WSL2了

安装Nginx

tar -zxvf nginx-1.21.4.tar.gz 
cd nginx-1.21.4/
./configure
make
make install

安装.Net 6 SDK

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
sudo yum install dotnet-sdk-6.0
dotnet --info