Linux从入门到精通

第一章=>
1、文件、用户、组、权限           
2、Linux运行级别指定             
3、文件目录指令                       
4、基础指令

第二章=>
5、搜索、过滤、压缩                 
6、Shell脚本                           
7、配置JDK                             
8、配置防火墙、端口、映射

第三章=>
9、启动SpringBoot                   
10、配置MySQL                     
11、离线安装ffmpeg                 
12、yum配置阿里云

第四章=>
13、网络配置                             
14、新的交叉编译                   
15、笔记本安装CentOs7           
16、df -h磁盘清理

****************************************************************************************************************************************************************************

1、文件、用户、组、权限
(1)文件
【1】vim /etc/profile #打开/etc/profile配置文件。
【2】vim是vi的增强版,建议使用vim。
【3】按i进入编辑模式,按Esc —>:—>wq保存并退出。修改但不想保存用q!
【4】设置文件行号,按Esc —>:—>set nu即可显示行号。
【5】CPU占用情况查看:
sar -u 1 5
%user:CPU处在用户模式下的时间百分比。
%nice:CPU处在带NICE值的用户模式下的时间百分比。
%system:CPU处在系统模式下的时间百分比。
%iowait:CPU等待输入输出完成时间的百分比。
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
%idle:CPU空闲时间百分比。
在所有的显示中,我们应主要注意%iowait和%idle,%iowait的值过高,表示硬盘存在I/O瓶颈,
%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。
%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。
(2)用户管理
useradd commonUser #不仅创建用户,还会默认创建一个同名的组。
id commonUser #查看用户所在的组
passwd commonUser #为用户设置登录密码,设置成功后可以用commonUser登录
pwd  #查看当前目录,默认在/home/commonUser目录下
userdel commonUser #删除用户但是保留家目录(建议使用这种,以为实际工作这个目录会有东西需要留存)
userdel -r commonUser #删除用户,但是不保存家目录
su - commonUser  #高级权限切换到低级不需要密码
su - root #低级权限切换到高级权限需要输入密码
cp /etc/skel/.bashrc /root/  #发现切换root变成了-bash-4.2了,拷贝文件到/root/目录下
cp /etc/skel/.bash_profile /root/ #发现切换root变成了-bash-4.2了,拷贝文件到/root/目录下
(3)组管理
cat /etc/group #查看组的配置文件和情况
groupadd police #创建一个警察组
groupdel police #删除警察组
cat /etc/group #查看发现组配置已经没有police组了
useradd -g bandit banditPerson #创建一个土匪,归到土匪组
cat /etc/passwd  #用户信息配置文件
cat /etc/group #组信息配置文件
cat /etc/shadow #加密信息配置文件
#Linux的每个用户都必须属于一个组,不能独立与组外,Linux中每个文件包括:所有者(谁创建谁就是所有者)、所在组(id 用户出来的组)、其他组(除文件所有者、所在组以外的用户)的概念。
ls -ahl #查看文件所有者情况
chown jack a.txt #改变文件所有者为jack,必须先有jack这个用户
chown -R jack /opt/usr/ #改变所有/opt/usr/目录下文件的所有者
chgrp police a.txt #改变文件所在组,必须有police这个组存在
 (4)权限管理
ls -l #查看当前文件下所有文件的权限情况
ls -l a.txt #查看a.txt的权限情况
#0位代表文件类型,1-9代表所有者、所在组、其他组权限。其中r(read)读可以用4代替,w(write)写可以用2代替,x(execute)执行可以用1代替。
chmod 744 a.txt #代表给所有者rwx权限,给所在组、其他组用户r--的权限
useradd -g police jack #创建jack属于警察组
useradd -g police jerry #创建jerry属于警察组
useradd -g bandit xh #创建xh属于土匪组
useradd -g bandit xq #创建xq属于土匪组
#用jack登录
pwd #查看当前目录
vim jack01.txt #在jack的目录创建jack01.txt
ls -l jack01.txt #查看jack01.txt的权限情况
chmod 750 jack01.txt #自己可以操作所有,所在组可以读和执行,其他组没有任何权限
#加入小红投靠警察组
#首先要修改/home/jack/目录的进入权限
chmod 750 /home/jack/ #修改jack目录所在组可以读
#用小红登录
cd /home/jack/ #进入jack的目录
vim jack01.txt #小红可以查看但是不能修改,如果想修改必须要root或jack用户给权限

****************************************************************************************************************************************************************************

2、Linux运行级别指定
#0代表关机级别。
#1代表单用户级别(用来找回丢失的root用户密码,但要求必须面对面操作机器)。
#2代表多用户无网络服务级别。
#3代表多用户有网络服务级别,这种模式比较常用。
#4代表保留级别。
#5代表图形界面级别。
#6代表重启级别。
cat /etc/inittab #查看当前系统运行级别
systemctl get-default #配合使用查看运行级别的方式
#如何找回丢失的root密码?
#在启动界面按Enter键
#按小e进入编辑界面
#再次输入小e,空格1,再次按Enter键
#再输入小b,进入启动单用户级别模式。
passwd root #为root改密码
#修改成功后即找回密码,重启下机器即可。

****************************************************************************************************************************************************************************

3、文件、目录相关指令
pwd #查看当前的绝对路径Print Working Directory
ls -l #以列表的方式显示当前目录的文件信息
ls -a #显示当前目录所有的文件和目录,包括隐藏的
ls -l /home #显示指定/home目录下的文件信息
cd /opt #切换到指定目录
cd ~ #回到自己的家目录
cd .. #回到当前目录的上一层级
mkdir /root/temp/ #在root下创建temp目录
mkdir -p /root/say/hello/ #在root下常见say目录下的hello目录
rm -rf /root/say/hello/ #删除hello目录
rm -rf /root/say/ #删除say目录
touch say.txt #创建say.txt文件
touch a.txt b.txt c.txt #一次性创建多个文件
cp a.txt /opt #把a.txt拷贝到/opt目录下
cp -r code/ /opt/ #把code文件夹及下面文件拷贝到/opt目录
mv a.txt pig.txt #统一目录下移动,将会启动重命名的作用
mv b.txt /opt #把b.txt移动到opt目录下、
mv code/ /opt #把code文件夹与下面的文件移动到opt目录下
cat /etc/profile #查看/etc/profile的内容,会发现一页展示不下
cat /etc/profile | more #为了方便浏览,|more能起到分页的作用,按空格看下一页
cat /etc/profile | less #比more的功能更强大,按空格下一页,按q退出

****************************************************************************************************************************************************************************

4、基础指令
ls -l >> pig.txt #把原本控制台显示的信息写到pig.txt中去
echo "Hello Linux" #在控制台打印Hello Linux
echo "Hello Linux" >> pig.txt #把原本控制台打印的东西写到pig.txt
ln -s /home linkToHome #当前目录下创建一个linkToHome的软链接,cd会到/home目录下
history #查看所有历史指令
history 10 #显示最近使用过的10个历史指令
date #查看当前日期
date "+%Y年%m月%d日 %H:%M:%S" #以年月日时分秒的形式查看当前日期
date –s "2021-01-10 11:22:22" #根据实际时间设置
cal #打印当月日历
cal 2021 #打印2021年日历
crontab -e #编辑定时执行的任务
crontab -l #查询定时执行的任务
crontab -r #删除当前用户所有定时执行的任务
#每天两点执行指定的shell脚本
例如:00 2 * * * /opt/usr/backup.sh 
lsblk -f #查看系统分区和挂载情况
df -lh #查询磁盘使用情况
ls -l | grep "^-" | wc -l #统计当前目录文件个数
ls -l | grep "^d" | wc -l #统计当前目录文件夹个数
ls -lR | grep "^-" | wc -l #统计所有文件,包括子目录
ls -lR | grep "^d" | wc -l #统计所有文件夹,包括子目录
yum install tree #安装树状图展示目录工具
tree #按树状图展示
ps -aux | more #分页展示进程
ps -aux | grep sshd #指定查看sshd相关的进程
kill -9 进程号 #踢掉某个用户也可以用这个指令
pstree -p #通过pid展示树状图
pstree -u #通过用户展示树状图
chkconfig --list #查看服务的自启动情况
top #可以动态监控进程状态,每3秒更新一次,按q退出
netstat -anp | more #查看所有系统的网络服务,分页展示
netstat -anp | grep mysql #查看某个服务的连接情况
rpm -qa | grep mysql #查看某软件已安装的rpm列表
rpm -qa | more #查看所有的rpm列表,分页展示
rpm -e 包名 #删除包
rpm -e --nodeps 包名#强制删除包,不太推荐这么做
yum list | grep mysql #某包可用的安装列表
yum install mysql #进行安装某包

****************************************************************************************************************************************************************************

5、搜索、过滤、压缩
find / -name 文件名 #查看某个具体的文件√
find /root -name 'a*' #查看root目录下以a开头的文件
find /root -size +20M #查看20M以上的文件
find /root -size 20M  #查看等于20M的文件
find /root -size -20M #查看20M以下的文件
 
yum install mlocate #先yum安装locate
updatebd #固定先执行
locate a.txt #查找a开头的文件所在位置
cat a.txt | grep -n yes #表示在a.txt中查找yes并返回行号
cat a.txt | grep -ni yes #表示在a.txt中查找yes并返回行号且不区分yes的大小写
 
#zip
yum install zip #yum安装
yum install unzip #yum安装
zip -r myPackage.zip /root/ #压缩root目录下所有内容
unzip -d /home myPackage.zip #解压到指定目录/home下
 
#tar.gz
tar -zcvf my.tar.gz a.txt pig.txt #压缩a.txt pig.txt到my.tar.gz压缩文件
tar -zcvf your.tar.gz /root/cxjia/ #压缩指定目录下的文件内容
tar -zxvf my.tar.gz -C /home #解压到指定目录

****************************************************************************************************************************************************************************

6、Shell脚本
#应用程序—>Shell命令解释器—>Linux内核—>硬件
#系统变量
#!/bin/bash
echo "PATH=$PATH"
echo "USER=$USER"
#自定义变量
#!/bin/bash
A= 100
echo "A=$A"
unset A #静态变量不可以unset readonly A=99
echo "A=$A"
#设置环境变量
vim /etc/profile #配置的文件
#
#!/bin/bash
RESULT=$(ls -l /home)
echo "RESULT IS=$RESULT"
#参数数量
#!/bin/bash
#args num
echo "$0 $1 $2"
echo "$*"
echo "$@"
echo "args num is=$#
#后台运行shell脚本
#!/bin/bash
echo "now pid is =$$"
#run myShell.sh background
./myShell.sh &
echo "background pid=$!"
echo "value is =$?"
#数学运算
#!/bin/bash
RESULT=$[(2+3)*4]
echo "RESULT IS=$RESULT"
#判断语句
!/bin/bash
#1
if [ "OK" = "OK" ]
  then
    echo "is equal"
fi
#2
if [ 23 -gt 22 ]
  then
    echo "23>22"
fi
if [ 22 -ne 23 ]
  then
    echo "not equal"
fi
#3
if [ -e /root/a.txt ]
  then
    echo "exist"
fi
#流程控制
#if else判断
#!/bin/bash
#judge is or not 60
if [ $1 -ge 60 ]
 then
  echo "over 60"
elif [ $1 -lt 60 ]
 then
  echo "low 60"
fi
#case判断
#!/bin/bash
#case
case $1 in
 "1")
  echo "1"
;;
 "2")
  echo "2"
;;
 *)
  echo "other"
;;
esac
#for循环
#!/bin/bash
#for
for i in "$*"
 do
  echo "the num is $1"
done
echo "---cut---"
for j in "$@"
 do
  echo "the num is $j"
done
#2
#!/bin/bash
#for
SUM=0
for ((i=1;i<=100;i++))
 do
  SUM=$[$SUM+$i]
done
echo "the final result is =$SUM"
#while循环
#!/bin/bash
#while
sum=0
i=0
while [ $i -le $1 ]
 do
  sum=$[$sum+$i]
  i=$[$i+1]
done
echo "the final result is=$sum"
#读取控制台的输入
#!/bin/bash
#get console input num
read -p "please input a num=" num1
echo "your input num is $num1"
read -t 10 -p "please input a num=" num2
echo "your input num is $num2"
#函数与自定义函数
basename /home/a.txt #系统函数
dirname  /home/a.txt #系统函数
#自定义函数
#!/bin/bash
#function created by self
function getSum(){
    sum=$[$n1+$n2]
    echo "sum is $sum"
}
read -p "please input n1=" n1
read -p "please input n2=" n2
# use getSum
getSum $n1 $n2
#综合案例
#!/bin/bash
#complete data backup
backupDir=/opt/usr/DBBackup
#time as filename
datetime=$(date "+%Y_%m_%d_%H:%M:%S")
#output variable debug
echo "---start backup---"
echo "---backup dir is : $backupDir/$datetime.bak"
#host
host=localhost
#username
dbuser=root
db_pwd=your pwd
#db name
database=mydb
#exist use,not exist create
[ ! -d "$backupDir" ] && mkdir -p "$backupDir"
mysqldump -h$host -u$dbuser -p$db_pwd $database > $backupDir/$datetime.bak
#delete over 10 days
find $backupDir -mtime +10 -name '*.bak' -exec rm -rf {} ;
echo "---backup success---"

****************************************************************************************************************************************************************************

7、配置JDK
yum -y install java-1.8.0-openjdk-devel.x86_64 #安装
/usr/lib/jvm/xxx具体路径 #进入目录
ls -l #查看
vim /etc/profile #打开配置文件
---开始---
#JDK的相关配置by xxx 20210712
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el8_4.x86_64(具体路径根据实际修改)
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
---结束---
source /etc/profile #使得配置生效
#java/javac/java -verison 测试是否配置成功

****************************************************************************************************************************************************************************

8、配置防火墙、端口、映射
firewall-cmd --zone=public --list-ports #查看历史开启端口
systemctl status firewalld #查看防火墙状态
systemctl start firewalld #开启防火墙
firewall-cmd --zone=public --add-port=端口号/tcp --permanent #开启新的端口号
firewall-cmd --reload #重启防火墙
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 端口号 #将80映射到某个端口
firewall-cmd --zone=public --remove-port=端口号/tcp --permanent # 关闭端口号

****************************************************************************************************************************************************************************

9、启动SpringBoot项目
netstat -lnp|grep 端口号 #查看某端口的占用情况
kill -9 进程号 #杀掉查询端口占用的进程号
cd jar包所在的目录  #定位jar包
nohup java -jar springboot-maven-0.0.1-SNAPSHOT.jar -server.port=端口号 do_iptable.jar >/dev/null 2>&1& #永久启动springboot服务
nohup java -jar xxx.jar >/dev/null 2>&1& #永久启动xxx.jar
ps -ef | grep xxx.jar #查看占用的进程号,以便终止
kill -9 线程号 #终止.jar的执行

****************************************************************************************************************************************************************************

10、配置MySQL5.6
 (1)在线安装
yum list installed mysql #查看安装过的mysql
yum remove mysql.x86_64 #移除已安装
wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm #下载安装包
rpm -ivh mysql-community-release-el6-5.noarch.rpm #解压安装包
mysql-community-release conflicts with (installed) mysql80-community-release-el7-3.noarch #如果解压报错使用这个
rpm -e mysql80-community-release-el7-3.noarch --nodeps #再解压
yum repolist all | grep mysql #查看可安装mysql
yum module disable mysql #禁用不可用
yum clean all #清理
yum install mysql-community-server #安装
vim /etc/yum.repos.d/mysql-community.repo #把要安装MySQL的版本对应的gpgcheck=0,然后再执行安装。
service mysqld start//启动mysql
service mysqld status//查看mysql的状态
service mysqld restart//重启mysql
*****************************************************************************************解决mysql首次配置连接问题:
mysql -u root -p
use mysql;
select host from user where user='root';
update user set host = '%' where host='localhost';
flush privileges;
quit;即可外部访问连接!!!!!!!!!!!!!!!
*****************************************************************************************
vim /var/log/mysqld.log #内存不足可能导致启动报错
sync; echo 1 > /proc/sys/vm/drop_caches #清理内存
sync; echo 2 > /proc/sys/vm/drop_caches #清理内存
sync; echo 3 > /proc/sys/vm/drop_caches #清理内存
#配置/etc/my.cnf文件来解决问题。
---开始---
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
innodb_buffer_pool_size= 50M
---结束---
mysql5.7安装
1、报错error: package mysql is not installed
***********************************************************************
解决方法:rpm -e --nodeps 自己虚拟机的sql信息( 我的SQL信息如下:mysql-libs-5.1.71-1.el6.i686)
查看你的:rpm -qa | grep mysql 来查看
把查看到的都用rpm -e --nodeps xxx全部删除。最后rpm -qa | grep mysql看删除是否彻底
2、下载与安装
cd /opt/mysql
***********************************************************************
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
***********************************************************************
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
***********************************************************************
yum-config-manager --disable mysql80-community
***********************************************************************
yum-config-manager --enable mysql57-community
***********************************************************************
yum install mysql-community-server -y
***********************************************************************如果执行报错GPG
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
***********************************************************************
systemctl start mysqld 
***********************************************************************
systemctl enable mysqld   开机自运行
***********************************************************************
systemctl status mysqld    查看状态
***********************************************************************
mysql -uroot -p
***********************************************************************
其他通过设置跳过密码,设置密码等来设置
(2)离线安装
yum remove mysql mysql-server mysql-libs compat-mysql51 #移除
chkconfig --list | grep -i mysql #列出
chkconfig --del mysql #删除
whereis mysql #查找
find / -name mysql  #查找
rm -rf xxx #删除
rm -rf /etc/my.cnf #删除
rm -rf /var/lib/mysql #删除
rpm -qa|grep mysql #使用rpm -e 命令将上个命令中包列表一一进行卸载,若有,rpm -e --nodeps mysql-libs #--nodeps代表强制删除
#https://pan.baidu.com/s/1cU-3ZEfKFBqMH5ZZMY2reg或者MySQL官网下载5.6.51版本。如果需要网盘的密码可以评论博客,我会私发你。建议在/opt目录操作
#安装配置cmake https://pan.baidu.com/s/10ROBo1UXurjeT8fMcMGm5w或者去网址下载cmake
cd /opt  #切到opt目录
tar -xzvf cmake-2.8.10.2.tar.gz  #解压cmake文件
cd cmake-2.8.10.2/    #切到cmake解压后的文件夹
./bootstrap ; make ; make install   #编译和安装cmake
vim /etc/profile  #打开配置文件
---开始---
export PATH=/opt/cmake-2.8.10.2/bin:$PATH   #cmake与mysql的环境变量
保存退出:
---结束---
source /etc/profile   #使得刚配置的环境生效
cmake --version  #切换到任意目录,执行此命令,如果出现cmake version 2.8.10.2则说明配置成功
tar -zxvf mysql-5.6.51.tar.gz  #解压mysql文件
cd /opt/mysql-5.6.51/   #切换到mysql解压后的目录
 
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci   #注意这么长是一个命令,设置源码编译配置脚本。PS:重新运行配置,需要删除CMakeCache.txt文件
 
yum -y install openssl-devel   #make install安装需要用到
make && make install  #(执行编译与安装30分钟左右,耐心等待)
cat /etc/passwd   #查看用户列表 
cat /etc/group #查看用户组列表
groupadd mysql   #增加mysql组
useradd -g mysql mysql #增加mysql用户
chown -R mysql:mysql /usr/local/mysql   #修改权限,R代表递归,下面所有的都给mysql的用户使用
cd /usr/local/mysql/   #初始化,需先进入到mysql的安装路径
scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql   #执行初始化
ls -l /etc/m*.*   #列出etc下以m开头的文件,如果有my.cnf则执行如下命令
mv /etc/my.cnf /etc/my.cnf.bak   #给配置文件my.cnf重命名为my.cnf.bak,目的是不影响我们安装的mysql
cd /usr/local/mysql/  #确认切换到此目录
cp support-files/mysql.server /etc/init.d/mysql  #设置开机启动
chkconfig mysql on #设置默认mysql自启动
service mysql start #启动MySQL
cd /usr/local/mysql/bin/  #到此目录下执行登录mysql
./mysql -uroot -p           #默认密码为空,单丝只能到此目录登录限制太死,需要配置环境变量
vim /etc/profile  #打开配置文件
---开始---
export PATH=/opt/cmake-2.8.10.2/bin:$PATH
export PATH=/usr/local/mysql/bin:$PATH     #cmake与mysql的环境变量,在文件末尾添加即可,保存退出
---结束---
source /etc/profile  #使得配置生效
#如我的就报错tarting MySQL.Logging to '/usr/local/mysql/data/support-test.novalocal.err'.
 
查看对应的目录下的文件内容发现如下:
2021-07-14 11:55:08 3345529 [Note] Plugin 'FEDERATED' is disabled.
2021-07-14 11:55:08 3345529 [Note] InnoDB: Using atomics to ref count buffer pool pages
2021-07-14 11:55:08 3345529 [Note] InnoDB: The InnoDB memory heap is disabled
2021-07-14 11:55:08 3345529 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2021-07-14 11:55:08 3345529 [Note] InnoDB: Memory barrier is not used
2021-07-14 11:55:08 3345529 [Note] InnoDB: Compressed tables use zlib 1.2.11
2021-07-14 11:55:08 3345529 [Note] InnoDB: Using CPU crc32 instructions
2021-07-14 11:55:08 3345529 [Note] InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
2021-07-14 11:55:08 3345529 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2021-07-14 11:55:08 3345529 [ERROR] Plugin 'InnoDB' init function returned error.
2021-07-14 11:55:08 3345529 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2021-07-14 11:55:08 3345529 [ERROR] Unknown/unsupported storage engine: InnoDB
2021-07-14 11:55:08 3345529 [ERROR] Aborting
 
#原来是内存不够用,把my.cnf的配置改下,重新上传到对应目录覆盖原有my.cnf配置即可。
---开始---
[mysqld]
innodb_buffer_pool_size = 18M
---结束---
pwd    #查看当前目录 
netstat -anp | more   #查看端口监听情况

****************************************************************************************************************************************************************************

11、离线安装ffmpeg
#下载yasm并安装 
#https://pan.baidu.com/s/1azNHeaN73EjHoyZAa-r3VQ 评论或私聊我都可以免费获取提取码
#放到/opt目录
tar zxvf yasm-1.3.0.tar.gz #解压
cd yasm-1.3.0/ #切换到解压后的目录
./configure --prefix=/usr/local/yasm #配置安装目录
make && make install #编译并安装
vim /etc/profile #配置环境变量
#yasm的环境变量  export PATH=/usr/local/yasm/bin:$PATH
#保存退出
source /etc/profile #使得配置生效
 
#下载安装ffmpeg
#https://pan.baidu.com/s/1m1R83CbTVYp4ekE7Zgs0AA 评论或私聊我都可以免费获取提取码
#放到/opt目录
tar zxvf ffmpeg-4.3.1.tar.gz #解压
cd ffmpeg-4.3.1 #到解压的文件夹
./configure --enable-shared --prefix=/usr/local/ffmpeg #配置安装目录
make && make install #编译并安装,要等一会
vim /etc/profile #配置环境变量
#配置ffmpeg的环境变量
#export PATH=/usr/local/ffmpeg/bin:$PATH
#配置动态库
#export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib/
#保存退出
source /etc/profile #使得配置生效
ffmpeg -version #查看ffmpeg的版本
即可在任意目录执行ffmpeg~

****************************************************************************************************************************************************************************

12、yum源配置从阿里下载
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup #备份
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo #下载
yum clean all #清除历史
yum makecache #生成缓存
---centos 8执行yum makecache报错解决 cat /etc/redhat-release---
---打开/etc/yum.repos.d/CentOS-Base.repo---
### cat CentOS-Base.repo ###
[base]
name=CentOS-8 - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=https://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/
        http://mirrors.aliyuncs.com/centos/8/BaseOS/x86_64/os/
        http://mirrors.cloud.aliyuncs.com/centos/8/BaseOS/x86_64/os/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
### cat CentOS-AppStream.repo ###
[AppStream]
name=CentOS-8 - AppStream - mirrors.aliyun.com
failovermethod=priority
baseurl=https://mirrors.aliyun.com/centos/8/AppStream/x86_64/os/
        http://mirrors.aliyuncs.com/centos/8/AppStream/x86_64/os/
        http://mirrors.cloud.aliyuncs.com/centos/8/AppStream/x86_64/os/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
### cat CentOS-Extras.repo ###
[extras]
name=CentOS-8 - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=https://mirrors.aliyun.com/centos/8/extras/x86_64/os/
        http://mirrors.aliyuncs.com/centos/8/extras/x86_64/os/
        http://mirrors.cloud.aliyuncs.com/centos/8/extras/x86_64/os/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
### cat CentOS-Epel.repo ###
[epel]
name=CentOS-$releasever - Epel
baseurl=http://mirrors.aliyun.com/epel/8/Everything/$basearch
enabled=1
gpgcheck=0
 
 
### cat CentOS-PowerTools.repo ###
[PowerTools]
name=CentOS-8 - PowerTools - mirrors.aliyun.com
failovermethod=priority
baseurl=https://mirrors.aliyun.com/centos/8/PowerTools/x86_64/os/
        http://mirrors.aliyuncs.com/centos/8/PowerTools/x86_64/os/
        http://mirrors.cloud.aliyuncs.com/centos/8/PowerTools/x86_64/os/
gpgcheck=1
enabled=0
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
### cat CentOS-centosplus.repo ###
[centosplus]
name=CentOS-8 - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=https://mirrors.aliyun.com/centos/8/centosplus/x86_64/os/
        http://mirrors.aliyuncs.com/centos/8/centosplus/x86_64/os/
        http://mirrors.cloud.aliyuncs.com/centos/8/centosplus/x86_64/os/
gpgcheck=1
enabled=0
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
------粘贴以上代码替换原有的内容再执行

****************************************************************************************************************************************************************************

13、网络配置
vim /etc/resolv.conf #打开配置文件
---开始---
# Generated by NetworkManager
nameserver 8.8.8.8
#向resolv.conf文件中添加下面内容
nameserver 114.114.114.114
---结束---
systemctl restart NetworkManager #重启
systemctl restart network #如果是centos8使用nmcli c reload
# 配置静态的IP地址
cd /etc/sysconfig/network-scripts/ #切换目录
ls -l #找到ifcfg-XXX文件并打开编辑
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static  #重要
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=enp3s0
UUID=ac2edfe1-9923-415c-add7-6b1078d8a684
DEVICE=enp3s0
ONBOOT=yes
IPADDR=192.168.105 #重要
GATWAY= 192.169.70.2 #重要
DNS=192.168.70.2 #重要

****************************************************************************************************************************************************************************

14、新的交叉编译方法
(1)ftp://10.1.184.110/  自己电脑
(2)ftp://192.168.102.89/  堡垒机
#Xshell常用命令:
cd /home/你的域名
tar -xvf **.tar  #解压tar格式文件
unzip **.zip    #解压zip格式文件
cd /home/你的域名/解压文件夹/bin
ls -l #查看gcc名称
readelf -h xxxx-gcc #查看编译器位数
chmod  -R 775 * #添加目录读写权限
交叉编译步骤:(自动)
pwd #查看gcc路径,注意:gcc不用带,先复制到txt文件
cd /home/yanmeng
ls -l #查看可执行文件
./msc_64lib.sh #运行
# 粘贴保存的gcc路径
# 选择能力组合 1 3代表离线命令词+唤醒
# 完成后去文件/home/1195/targets/linux/msc_lua/build获取libmsc.so
# appid转换
(1)根据appid查询审核的新字符
(2)把so库与.exe工具同目录,执行命令
key 查询到的长字符 110X #即可完成转换

****************************************************************************************************************************************************************************

15、笔记本安装Centos7
(1)笔记本、电脑长久卡顿,VM装虚拟机卡顿,福利来了,安装Linux精简版,解决所有问题。
我的笔记本是2015年买的,Windows系统几乎难以使用,想着装Linux又有界面可以上网,又可以操作各种指令,解决卡顿。下面把安装心得和经验分享下。
 
(2)准备一个U盘(8G以上即可)
去制作U盘装机的PE环境,这里百度即可,非常简单。
 
(3)制作完毕后,下载Linux系统,我用的是Cent OS7精简版
【1】网盘链接:https://pan.baidu.com/s/1DWJskcenNkYVJyZACLouIA  提取码评论/留言给我即可获得
【2】阿里云链接:http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso
 
(4)为什么不用完整版,由于完整版是4G
【1】我们安装4G完整版后,会提示找不到挂载盘,进入紧急模式
【2】我们需要在安装界面设置挂载盘,首先需要查看有哪些挂载盘。
【3】按tab键,进入vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOSx207x20x86_64.check 
     #quiet界面 
     #把上面整体替换为vmlinuz initrd=initrd.img linux dd quiet 然后按enter键
【4】会看到我们应该选择的sda1对应的type是ntfs,强行选择会报错如下。就是ntfs不支持挂载的意思。网上很多说下载ntfs-3g,都没安装系统呢,怎么下载安装。所以我们只能把U盘的ntfs改成fat32格式,这时需要U盘格式化。
【5】U盘格式化后我们会发现,原来4G完整版拷贝不进去了,这个就是fat32格式的限制。所以只能选择精简版不到1G进行安装。这个界面按tab再整体更改下vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sda1 quiet(根据【2】自己的挂载盘而定),然后回车就可以顺利安装了。
(5)最后我们就进入图形安装界面了
(6)完成安装后重启即可使用Linux系统
#后续配置
#用ifconfig查看IP提示找不到命令
#用yum下载命令提示No more mirrors to try
yum clean all #清除
yum makecache #建立缓存
yum -y update #升级yum
sudo yum install net-tools #安装网络工具
ifconfig #获取ip地址
(8)还有另一种安装完整版的方案
【1】使用UltraISO把大于4G的文件直接写入U盘
 
https://pan.baidu.com/s/1vUYc67X7ajCQcjiJe1PtDg 聊我免费提供获取码
【2】使用UltraISO打开完整版的CentOS7
【3】启动—>写入硬盘映像,写入方式选择为USB-HDD+
【4】格式化U盘并写入镜像,写入完毕直接把U盘插电脑上,从U盘启动可以看到安装界面
【5】按下键盘TAB键将最下面的vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOSx207x20x86_64 rd.live.check quiet 改为 vmlinuz initrd=initrd.img linux dd quiet,然后键入回车查看设备名。找到显示显示Centos7等字样的的设备。
【6】重启后到第三步界面按下TAB键,将vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOSx207x20x86_64 rd.live.check quiet  改为  vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sda4 quiet  
 
【7】进入安装界面,在安装如果需要使用图形界面最小安装哪里选择GNOME即可。
(9)安装谷歌浏览器用来听歌和看电影
cd /etc/yum.repos.d/ #配置yum下载仓库地址
vim google-chrome.repo #创建谷歌配置仓库
#下面是配置文件内容
-------------------------------------------
#谷歌浏览器下载配置
[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64
enabled=1
gpgcheck=1
gpgkey=https://dl.google.com/linux/linux_signing_key.pub
-------------------------------------------
yum -y install google-chrome-stable --nogpgcheck #安装
#最后在GNOME桌面找到/usr/share/applications/
#里面有谷歌浏览器的图片,点击使用即可
#配置在笔记本盒盖时,局域网内台式机仍可以登录Linux
cd /etc/systemd/ #切换目录
vim logind.conf #编辑配置文件,找到 # HandleLidSwitch=suspend 将其改成 HandleLidSwitch=ignore
systemctl restart systemd-logind.service #执行重启命令,即可在盒盖的情况下局域网登录Linux系统

****************************************************************************************************************************************************************************

16、df -h磁盘清理
1、 df -h 磁盘满了
2、 cd /   到根目录   du -h --max-depth=1  查看磁盘占用打的目录
3、 cd到文件打的目录,继续执行du -h --max-depth=1 层层定位
4、执行rm -rf即可
5、.sh执行报错,大部分是因为编码
(1)vim 对应文件(必须有vim安装)
(2)esc :set ff=unix 保存退出
(3)set ff可以查看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/587674.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JavaFX创建桌面应用exe文件以及SceneBuilder使用讲解

文章目录 1 JavaFX1.1 引言1.2 简单使用1.2.1 搭建项目1.2.2 fxml文件1.2.3 生成exe文件 1.3 Idea中集成SceneBuilder1.4 注解讲解1.4.1 FXMLController1.4.2 FXML1.4.3 FXMLLoaderParameters1.4.4 FXMLProperty 1.5 SceneBuilder1.5.1 添加组件ControlsFX1.5.1.1页面展示 1.5.…

Vue入门篇:样式冲突scoped,data函数,组件通信,prop data单向数据流,打包发布

这里写目录标题 1.组件的样式冲突scoped2.data函数3.组件通信1.两种组件关系分类和对应的组件通信方案2.父子通信方案的核心流程 4.prop & data、单向数据流5.打包发布6.打包优化:路由懒加载 1.组件的样式冲突scoped 默认情况:写在组件中的样式会全局生效→因此很容易造成多…

PyCharm更换pip源、模块安装、PyCharm依赖包导入导出

一、Pycharm更换安装源 在下载安装好Pycharm后&#xff0c;一个在实际编程开发过程中非常重要的问题是第三方库添加&#xff0c;然而Python默认的源网络速度有点慢&#xff0c;因此&#xff0c;我们常常需要做的是更换Pycharm的安装源。 在当前最新版&#xff08;2022.03版&…

Blender常见操作

1.局部视图&#xff1a;Local View&#xff0c;也可称作Solo模式&#xff0c;按快捷键 “/”进入&#xff0c;在按退出&#xff0c;只显示选中的物体&#xff08;可多选&#xff09;&#xff0c;方便编辑 2.物体合并&#xff1a;Ctrl J 其中&#xff0c;当选中多个物体时&am…

XTuner微调LLM:1.8B、多模态和Agent-笔记四

本次课程由XTuner 贡献者李剑锋、汪周谦、王群老师讲解【XTuner 微调 LLM&#xff1a;1.8B、多模态和 Agent】课程 课程视频&#xff1a;http:// https://b23.tv/QUhT6ni 课程文档&#xff1a;https://github.com/InternLM/Tutorial/blob/camp2/xtuner/readme.md 两种Finetun…

border-image-slice详细说明

上一篇文章我们介绍了 border-image的用法&#xff0c;其中border-image-source、border-image-width、 border-image-outset都比较简单好理解&#xff0c;这边文章我们重点学一下border-image-slice 属性&#xff0c;它用于定义边框图像如何被切割并应用到元素的边框上。这个属…

JavaScript 动态网页实例 —— 数值处理对象

前言 Math对象用于进行数学运算。其属性是数学中一些常见的常数值,在程序中可以直接使用。Math对象的方法很多,主要完成一些常见的数学运算,如三角函数计算、乘方、开方、求对数等。在 Math 对象的方法中,除了random()之外的所有方法都需要一个或几个参数,并且其用法基本…

【数据结构】为了节省空间,对于特殊矩阵我们可以这样做……

特殊矩阵的压缩存储 导读一、数组与矩阵1.1 数组1.2 数组与线性表1.3 数组的存储结构1.4 矩阵在数组中的存储1.4.1 行优先存储1.4.2 列优先存储 二、特殊矩阵及其压缩存储三、对称矩阵及其存储3.1 方阵与对称矩阵3.2 对称矩阵的存储3.3 压缩存储的手动实现3.3.1 行优先存储3.3.…

修改Ubuntu远程登录欢迎提示信息

无论何时登录公司的某些生产系统&#xff0c;你都会看到一些登录消息、警告或关于你已登录服务器的信息&#xff0c;如下所示。 修改方式 1.打开ubuntu终端,进入到/etc/update-motd.d目录下面 可以发现目录中的文件都是shell脚本, 用户登录时服务器会自动加载这个目录中的文件…

大白话理解IoC和DI

引言 Spring是Java领域最受欢迎的开发框架之一&#xff0c;其核心功能之一就是Spring容器&#xff0c;也就是IoC容器。这篇文章&#xff0c;我们就来聊聊Spring的两大核心功能&#xff0c;控制反转&#xff08;IOC&#xff09;和依赖注入&#xff08;DI&#xff09;。 文章思…

Go 语言基础(二)【数组、切片、指针、map、struct】

1、数组 特别需要注意的是&#xff1a;在 Go 语言中&#xff0c;数组长度也是数组类型的一部分&#xff01;所以尽管元素类型相同但是长度不同的两个数组&#xff0c;它们的类型并不相同。 1.1、数组的初始化 1.1.1、通过初始化列表{}来设置值 var arr [3]int // int类型的数…

09_Scala函数和对象

文章目录 函数和对象1.函数也是对象 scala中声明了一个函数 等价于声明一个函数对象2.将函数当作对象来用&#xff0c;也就是访问函数&#xff0c;但是不执行函数结果3.对象拥有数据类型(函数类型)&#xff0c;对象可以进行赋值操作4.函数对象类型的省略写法&#xff0c;也就是…

SCI一区 | MFO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测(Matlab)

SCI一区 | MFO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测&#xff08;Matlab&#xff09; 目录 SCI一区 | MFO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测&#xff08;Matlab&#xff09;预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现MFO-CNN…

常见公式的几何解释

本文旨在深入探讨常见数学公式的几何意义&#xff0c;通过直观的图形和解释&#xff0c;帮助读者更好地理解并掌握这些公式的本质。文章首先概述了公式与几何图形之间的紧密联系&#xff0c;然后选取了几个典型的数学公式&#xff0c;进行详细解析。每个公式都将配以相应的几何…

vuex的学习

首先下载vuex&#xff0c;然后建立一个目录在vueX中 接着在index。js文件夹中引入 引入后导出这个文件 在main.js文件中导入&#xff0c;这样vue就有了状态管理 接着我创建了2个组件&#xff0c;在 里边规定了一个num:0 在 打印出来就可以看见 映射函数mapState&#xff0c;必…

数据结构算法——链表带环问题——数学深度解析

前言:本节内容主要是讲解链表的两个问题 &#xff1a;1、判断链表是否带环&#xff1b; 2、一个链表有环&#xff0c; 找到环的入口点。 本节内容适合正在学习链表或者链表基础薄弱的友友们哦。 我们先将问题抛出来&#xff0c;友友们可以自己去力扣或者牛客网去找相应题目&…

基于SSM的个人博客系统(四)

目录 5.3 博客类别管理模块 5.3.1 添加博客类别 5.3.2 修改博客类别 5.3.3 删除博客类别 5.3.4 显示博客类别 5.4 评论管理模块 5.4.1 审核评论 5.4.2 删除评论 前面内容请移步 基于SSM的个人博客系统&#xff08;三&#xff09; 个人博客系统的设计与实现免费源码…

头歌:Spark GraphX—寻找社交媒体中的“影响力用户”

第1关:认识Pregel API 简介 Spark GraphX中提供了方便开发者的基于谷歌Pregel API的迭代算法,因此可以用Pregel的计算框架来处理Spark上的图数据。GraphX的Pregel API提供了一个简明的函数式算法设计,用它可以在图中方便的迭代计算,如最短路径、关键路径、n度关系等,也可以…

【C++】STL学习之优先级队列

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《C》 《Linux》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 文章目录 前言一、优先级队列的使用1.1 基本功能1.2 优先级模式切换1.3 相关题目 二、模拟实现优先级…

AI赋能不应贵气:深度解读AI助力企业渡过经济寒冬以及如何落地AI的路径

AI很棒可是给人感觉“很贵”因此我不敢用 继GPT4后Dalle3、Sora、GPT4.5、GPT5的消息以及前天突然出现的GPT 2.0&#xff08;GPT二代&#xff0c;有人说这就是OPEN AI的新产品&#xff1a;Q*&#xff09;但凡涉及到AI的一系列新闻给人予很震撼的感觉。放眼望去AI正在欣欣向荣。…
最新文章