ubuntu

发布时间 2023-09-18 11:09:17作者: 我不想学编丿程

配置ubuntu的源

https://mirrors.ustc.edu.cn/help/ubuntu.html

手动更改配置文件

警告

操作前请做好相应备份

一般情况下,将 /etc/apt/sources.list 文件中 Ubuntu 默认的源地址 http://archive.ubuntu.com/ 替换为 http://mirrors.ustc.edu.cn/ 即可。

可以使用如下命令:

sudo sed -i 's@//.*archive.ubuntu.com@//mirrors.ustc.edu.cn@g' /etc/apt/sources.list

更改完 sources.list 文件后请运行 sudo apt-get update 更新索引以生效。

apt-get install jdk下的JAVA_HOME的配置

1通过apt-get 的方式安装jdk

sudo apt-get update //sudo表示超级用户,如果是在root用户下可以不写

sudo apt-get install oracle-java8-installer
安装完后的目录在:/usr/lib/jvm/java-8-openjdk-amd64
echo $JAVA_HOME,没有结果;javac -version可以显示版本。

2 然后配置JAVA_HOME,JRE_HOME,PATH,配置文件的位置:/etc/profile

在内容中加入下面的:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=\({JAVA_HOME}/jre export CLASSPATH=.:\){JAVA_HOME}/lib:\({JRE_HOME}/lib export PATH=\){JAVA_HOME}/bin:$PATH
执行完之后,source /etc/profile ,使变动生效,不需用重启。
3 用echo $JAVA_HOME检查是否配置成功。

补充:关于Linux环境变量配置的问题:
参考文档:https://www.cnblogs.com/Joans/p/7760378.html
Ubuntu Linux系统环境变量配置文件:
a /etc/profile : 针对所有用户,第一个被执行的配置文件。就是上面的形式。
b /etc /environment : 在登录时操作系统使用的第二个文件, 系统在读取你自己的profile前,设置环境文件的环境变量。 不需要使用export,直接在path的变量中加入你的地址就行了,分隔符是:。
c ~/.profile : 在登录时用到的第三个文件 是.profile文件,针对一个用户,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
d /etc/bash.bashrc : 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
e ~/bash.bashrc : 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。

总结:开发者模式:就直接a那种就行了;但是如果是服务器上运行,应该针对每一个用户,选择最后一个比较不错。
————————————————
版权声明:本文为CSDN博主「i_am_will」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36801710/article/details/79306319

Linux下环境变量设置

Linux下环境变量设置

1、在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错误。

2、那么什么是环境变量?简单说,就是指定一个目录,运行软件的时候,相关的程序将会按照该目录寻找相关文件。 设置变量对于一般人最实用的功能就是: 不用拷贝某些dll文件到系统目录中了,而path 这一系统变量就是系统搜索dll文件的一系列路径

在Linux系统下,如果你下载并安装应用程序,很有可能在键入它的名称的时候出现 “command not found ” 的提示内容。 如果每次都到安装目录文件夹内,找到可执行文件来进行操作就太繁琐了。 这涉及到环境变量path的设置问题,而Path 的设置也是在Linux下定制环境变量的一个组成部分

Linux下环境变量设置的三种方法

如想将一个路径加入到$PATH中,可以像下面这样做:

只对当前的shell 起作用的环境变量

1、控制台中设置,不赞成这种方式,因为他只对当前的shell 起作用,换一个shell设置就无效了:

直接控制台中输入 : \(PATH="\)PATH":/NEW_PATH (关闭shell Path会还原为原来的path)

对所有的用户的都起作用的环境变量

2、修改 /etc/profile 文件,如果你的计算机仅仅作为开发使用时推存使用这种方法,因为所有用户的shell都有权使用这个环境变量,可能会给系统带来安全性问题。这里是针对所有的用户的,所有的shell

vi /etc/profile

在/etc/profile的最下面添加: export PATH="$PATH:/NEW_PATH"

针对当前特定的用户起作用的环境变量

3、修改bashrc文件,这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,这里是针对某一特定的用户,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的 .bashrc文件就可以了。

vi ~/.bashrc

在下面添加:

Export PATH="$PATH:/NEW_PATH"

Ubuntu Linux系统环境变量配置文件:
/etc/profile : 在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。

/etc /environment : 在登录时操作系统使用的第二个文件, 系统在读取你自己的profile前,设置环境文件的环境变量。

~/.profile : 在登录时用到的第三个文件 是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。

/etc/bashrc : 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.

~/.bashrc : 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。

PASH环境变量的设置方法:

方法一:用户主目录下的.profile或.bashrc文件(推荐)

登录到你的用户(非root),在终端输入:
$ sudo gedit ~/.profile(or .bashrc)
可以在此文件末尾加入PATH的设置如下:
export PATH=”$PATH:your path1:your path2 ...”
保存文件,注销再登录,变量生效。
该方式添加的变量只对当前用户有效。

方法二:系统目录下的profile文件(谨慎)

在系统的etc目录下,有一个profile文件,编辑该文件:
$ sudo gedit /etc/profile
在最后加入PATH的设置如下:
export PATH=”$PATH:your path1:your path2 ...”
该文件编辑保存后,重启系统,变量生效。
该方式添加的变量对所有的用户都有效。

方法三:系统目录下的 environment 文件(谨慎)

在系统的etc目录下,有一个environment文件,编辑该文件:
$ sudo gedit /etc/environment
找到以下的 PATH 变量:
PATH="<......>"
修改该 PATH 变量,在其中加入自己的path即可,例如:
PATH="<......>:your path1:your path2 …"
各个path之间用冒号分割。该文件也是重启生效,影响所有用户。
注意这里不是添加export PATH=… 。

方法四:直接在终端下输入

$ sudo export PATH="$PATH:your path1:your path2 …"
这种方式变量立即生效,但用户注销或系统重启后设置变成无效,适合临时变量的设置。

注 意:方法二和三的修改需要谨慎,尤其是通过root用户修改,如果修改错误,将可能导致一些严重的系统错误。因此笔者推荐使用第一种方法。另外嵌入式 Linux的开发最好不要在root下进行(除非你对Linux已经非常熟悉了!!),以免因为操作不当导致系统严重错误。

下面是一个对environment文件错误修改导致的问题以及解决方法示例:

问题:因为不小心在 etc/environment里设在环境变量导致无法登录
提示:不要在 etc/environment里设置 export PATH这样会导致重启后登录不了系统
解决方法:
在登录界面 alt +ctrl+f1进入命令模式,如果不是root用户需要键入(root用户就不许这么罗嗦,gedit编辑会不可显示)
/usr/bin/sudo /usr/bin/vi /etc/environment
光标移到export PATH** 行,连续按 d两次删除该行;
输入:wq保存退出;
然后键入/sbin/reboot重启系统(可能会提示need to boot,此时直接power off)

Linux之Ubuntu18.04安装Java JDK8的三种方式

接和本声明。

本文链接:https://blog.csdn.net/zbj18314469395/article/details/86064849

Java JDK在linux系统有两个版本,一个开源版本Openjdk,还有一个oracle官方版本jdkoracle JDK既可以通过添加ppa源命令行安装,也可以去官网下载jdk压缩包安装。下面分别记录一下这三种安装方式的步骤

安装openjdk

1、更新软件包列表:

sudo apt-get update

2、安装openjdk-8-jdk:

sudo apt-get install openjdk-8-jdk

3、查看java版本,看看是否安装成功:

java --version

命令行方式安装oracle Java JDK

1、安装依赖包:

sudo apt-get install python-software-properties

2、添加仓库源:

sudo add-apt-repository ppa:webupd8team/java

3、更新软件包列表:

sudo apt-get update

4、安装java JDK:

sudo apt-get install oracle-java8-installer

安装过程中需要接受协议:

5、查看java版本,看看是否安装成功:

java --version

手动下载压缩包安装oracle Java JDK

1、前往oracle Java官网下载JDK(http://www.oracle.com/technetwork/java/javase/downloads/index.html)

推荐华为镜像地址:https://mirrors.huaweicloud.com/java/jdk/

2、解压缩到指定目录(以jdk-8u191-linux-x64.tar.gz为例)

  • 创建目录:
sudo mkdir /usr/lib/jvm
  • 解压缩到该目录:
sudo tar -zxvf jdk-7u60-linux-x64.gz -C /usr/lib/jvm

3.修改环境变量:  

sudo vi ~/.bashrc

在文件末尾追加下面内容:

#set oracle jdk environmentexport JAVA_HOME=/usr/lib/jvm/jdk1.8.0_191  ## 这里要注意目录要换成自己解压的jdk 目录export JRE_HOME=${JAVA_HOME}/jre  export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  export PATH=${JAVA_HOME}/bin:$PATH  

使环境变量马上生效:

source ~/.bashrc

4、系统注册此jdk

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_191/bin/java 300

5、查看java版本,看看是否安装成功:

java --version

如果你安装了多个版本的jdk,你可以通过以下命令在这些版本之间切换:

sudo update-alternatives --config java

前面带星号的是当前正在使用的java版本,键入编号选择使用哪个版本。

redis

在 Ubuntu 20.04 上安装 Redis 可以下载http://download.redis.io/redis-stable.tar.gz直接运行,但也可以使用apt来直接按装。Ubuntu 20.04 软件源中有Redis 5.0。

sudo apt update
sudo apt install redis-server

启动、停止、重启

安装完成后Redis会自动启动,可以用systemctl来控制Redis的启动、停止、重启等

# 查看状态
systemctl status redis-server.service

# 启动
systemctl start redis-server.service

# 停止
systemctl stop redis-server.service

# 重启
systemctl restart redis-server.service

# 设置开机启动
systemctl enable redis-server.service

配置

apt安装的Redis配置文件在/etc/redis/redis.conf

配置远程访问

注释 bind这一行

#bind 127.0.0.1

修改密码

requirepass 密码

修改端口

port 6379

Ubuntu安装配置MySQL

Ubuntu安装配置MySQL

安装

通过包管理工具apt安装,在ubuntu20.04下mysql版本默认为8.0,而ubuntu18.04在截至本文完成时默认版本为5.7。如果想在20.04下安装5.7版本,可以看这篇连接

首先,更新软件包列表索引:

sudo apt update

安装MySQL:

sudo apt install mysql-server

查看MySQL版本]

mysql --version

由于本地系统为ubuntu20.04,[MySql版本号为8.0。
version

查看服务状态,

service mysql status

status

状态正常,到此安装完毕!

配置

此时,mysql客户端已经作为服务器的依赖安装到本地,故可以通过命令行登录服务器。mysql8.0,root 用户默认通过 auth_socket 插件授权,而 auth_socket 插件通过 Unix socket 文件来验证所有连接到 localhost 的用户。这意味着你不能以用户–密码的方式,登录root账户。通过指令以root身份登录:

sudo mysql

在这里插入图片描述

但是,通过第三方程序是无法连接到数据库的,例如JDBC、pymysql等。可以通过修改mysql下的user表,配置密码方式以root身份登录:

use mysql;
select user, host, plugin from user;

在这里插入图片描述

将root对应的plugin由 auth_socket 改为 mysql_native_password 即使是mysql8.0也是,否则影响后续远程连接:

#MySQL8.0必须先执行此步骤设置密码,MySQL5.7可以选择先安装下面的secure!!!
alter user 'root'@'localhost' identified with mysql_native_password by '密码';

flush privileges;

exit;

至此,可以不用输入sudo,通过密码的方式登录数据库:

mysql -uroot -p

在这里插入图片描述

增强数据库服务的安全性

执行:

sudo mysql_secure_installation

在这里插入图片描述

键入Enter后继续,
在这里插入图片描述

设置root用户密码,并反馈当前密码强度,询问是否确认密码:
在这里插入图片描述

询问三个问题,并根据提供的答案来设置系统的安全性。

  1. 是否关删除匿名测试用户的信息。
  2. 是否禁止远程root登录。只允许本地登录root用户,并拒绝远程连接。
  3. 是否删除 test 数据库。

根据自身需求键入相应的y or n

最后输入 y ,重新加载特权表使上述配置生效。返回 All Done!,设置成功。

远程连接

如何连接ubuntu服务器下的mysql数据库?

修改配置文件:

#MySQL8.0!!!
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 
#MySQL5.7!!!
sudo vim /etc/my.cnf 

注释下图标记行,解除地址绑定:
在这里插入图片描述

重启mysql服务:

sudo service mysql restart

登录mysql后执行:

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

#MySQL8.0执行这行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
#MySQL5.7执行这行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;

flush privileges;

在这里插入图片描述

卸载

sudo apt purge mysql-* # mysql后用tab补全,把所有与mysql相关的卸载

sudo rm -rf /etc/mysql/ /var/lib/mysql

sudo apt autoremove

sudo apt autoclean

忘记密码(ERROR 1045)

在这里插入图片描述

修改配置文件,在[mysqld]后添加 skip-grant-tables (登录时跳过权限检查):

#MySQL8.0!!!
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 
#MySQL5.7!!!
sudo vim /etc/my.cnf 

在这里插入图片描述

重启服务后可以无密码登录mysql:

sudo service mysql restart

mysql

在这里插入图片描述

mysql8.0

use mysql; 
#必须先将authentication_string置为空!
update user set authentication_string='' where user='root';

flush privileges;
#设置新密码
ALTER user 'root'@'%' IDENTIFIED BY '新密码';

mysql5.7

use mysql; 
update user set authentication_string = password('新密码') where user = 'root';

最后记得删除配置文件中的 skip-grant-tables 并重启服务,否则会影响远程连接!

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

查看密码策略:

SHOW VARIABLES LIKE 'validate_password%';

在这里插入图片描述

参照上图变量名修改策略:

set global validate_password.policy=0
set global validate_password.length=1;

最后修改密码:

alter user 'root'@'%' identified by 'root';

登录成功:
在这里插入图片描述

文章知识点与官方知识档案匹配,可进一步学习相关知识

常用命令

1.例如查看80端口是否开放,输入 lsof -i:端口号 ,如果没有信息出现则说明该端口还未开放

$ lsof -i:80
$ telnet 192.168.0.1 80

防火墙

默认ubuntu已经安装了ufw,但是未开启。

# 1. 查看ufw的状态  
sudo ufw status  

# 2. 开启ufw  
sudo ufw enable  

# 3. 重启防火墙ufw  
sudo ufw reload  

# 4. 对外开启80端口  
sudo ufw allow 80  

# 对外开启3306端口  
sudo ufw allow 3306  

# 再查看开启端口状态  
sudo ufw status