Ubuntu
apt换国内源
https://blog.csdn.net/RadiantJeral/article/details/104184351
https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
打开终端输入命令下载vim工具
|
|
1.备份 /etc/apt/sources.list
|
|
2.编辑 /etc/apt/sources.list
打开 /etc/apt/sources.list
:
|
|
在命令模式下输入 ggdG
,删除全部内容.
在输入模式下,粘贴复制下列内容:
|
|
上面这个会报错
仓库 “https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-security Release” 没有 Release 文件。 N: 无法安全地用该源进行更新,所以默认禁用该源。
解决方法:https://blog.csdn.net/gezongbo/article/details/121056781
适用于ubuntu18.04
使用aliyun,将sources.list内容修改为下面内容
|
|
适用于ubuntu20.04
使用aliyun,将sources.list内容修改为下面内容
|
|
保存退出.
3.更新
|
|
设置root密码
Ubuntu的默认root密码是随机的,即每次开机都有一个新的root密码。我们可以在终端输入命令 sudo passwd
,然后输入当前用户的密码
终端会提示我们输入新的密码并确认,此时的密码就是root新密码。修改成功后,输入命令 su root
,再输入新的密码就ok了
如何解决:不在 sudoers 文件中此事将被报告?
1.首先切换到root用户下,输入当前用户账号密码
su - root
2.输入sudo相关命令
chmod 740 /etc/sudoers
sudo gedit /etc/sudoers
3.添加权限
找到
|
|
在下面添加一行,如下
xx ALL=(ALL) ALL (将此处的XX修改为出现该问题的用户名!)
拓展:
sudo 命令需要输入当前用户的密码,su 命令需要输入 root 用户的密码
提升用户权限
https://www.cnblogs.com/rnckty/p/5741956.html
Ubuntu默认root密码
https://blog.csdn.net/jiangshuanshuan/article/details/95715837
安装Java
Java推荐用安装包安装 之后安装Tomcat比较方便
安装包:
https://blog.csdn.net/qq_34412086/article/details/88035820
1.上传安装包jdk-8u301-linux-x64.tar.gz
2.解压压缩包
tar -zxvf jdk-8u301-linux-x64.tar.gz
3.配置环境变量
vim /etc/profile
在末尾加入如下配置
|
|
4.检查环境是否配置完成
source /etc/profile
java -version
命令行: 不会给你配JAVA_HOME
https://blog.csdn.net/wan_ide/article/details/99447752
输入命令:
|
|
等待安装完成
安装完成后用 java -version 检验是否安装成功
|
|
Linux如何查看JDK的安装路径
https://www.cnblogs.com/kerrycode/p/4762921.html
安装Tomcat
https://blog.csdn.net/qq_34412086/article/details/88038210
1.上传压缩包并解压
tar -zxvf apache-tomcat-8.5.41.tar.gz
2.配置startup.sh
启动Tomcat之前先进入目录/usr/local/tomcat/apache-tomcat-7.0.93/bin
,编辑文件startup.sh
。在startup.sh
文件最后的exec上方添加如下配置
|
|
3.关闭Tomcat之前先进入目录/usr/local/tomcat/apache-tomcat-7.0.93/bin
,编辑文件shutdown.sh
。配置shutdown.sh
|
|
4.启动
进入到tomcat的bin目录下,./startup.sh
后面的环境配置可以考虑不用(不知道会不会有什么问题)
修改文件
|
|
linux命令行下,在任意目录下启动Tomcat
https://blog.csdn.net/qq_40794973/article/details/86591391
==关闭TOMCAT日志的三个方法==
https://blog.csdn.net/ZCY5202015/article/details/120685589
开启远程连接ssh服务端
https://jingyan.baidu.com/article/359911f5a5b74857fe0306c4.html
首先看看自己的Ubuntu是不是已经安装或启用了ssh服务,执行ps -e | grep ssh
我们看到只有ssh-agent 这个是ssh-client客户端服务,如果有sshd,证明你已经装好了ssh-server并已启用,当然就可以不用往下看了
如果没有安装执行sudo apt install openssh-server开始安装,输入yes回车
执行完了就代表安装完成了
然后再执行ps -e | grep ssh,发现多了sshd,远程连接本电脑就已经启用了
然后我们通过其他电脑或服务器连接本电脑执行ssh ‘你的用户名’@‘你的ip’,然后输入yes,然后输入密码,就成功连接了
最后执行ls,可以看到自己熟悉的ubuntu文件了
开启远程连接ubuntu root权限
https://blog.csdn.net/qq_35445306/article/details/78771398
Ubuntu输入su提示认证失败的解决方法(接上)
https://blog.csdn.net/henren555/article/details/7546508
|
|
xshell一直断开连接:Socket error Event: 32 Error: 10053
https://blog.csdn.net/betonme/article/details/102546857
修改/etc/ssh/sshd_config文件
|
|
将port的注释#删去,重启ssh服务 ,
|
|
安装Nginx
https://www.cnblogs.com/fengkun125/p/14142912.html
参考尚硅谷的教程安装 用wget安装Nginx
|
|
用安装包一堆坑
sudo make && make install
后面那个命令会报没有权限
未发现软件包gcc-c+
:
|
|
zlib
找不到:
直接wget
安装
https://www.php.cn/blog/detail/13838.html
Tomcat开放对外的端口
查看已经开放的端口号
|
|
对外开放访问的端口
|
|
关闭对外端口
|
|
Windows文件换行符转Linux换行符
https://blog.csdn.net/cjf_iceking/article/details/47836201
操作系统文件换行符
首先介绍下,在ASCII中存在这样两个字符CR(编码为13)和 LF(编码为10),在编程中我们一般称其分别为’\r’和’\n’。他们被用来作为换行标志,但在不同系统中换行标志又不一样。下面是不同操作系统采用不同的换行符:
|
|
使用cat -A [Filename]
查看
使用命令"dos2unix",如下所示
|
|
安装anaconda
第一步 - 检索最新版本的Anaconda
在Web浏览器中,转到Anaconda下载页面,可通过以下链接访问:
|
|
找到最新的Linux版本并复制安装程序bash脚本。
Anaconda安装包下载
(1)官网下载,下载速度较慢 (2)清华大学开源软件镜像站
第二步 - 下载Anaconda Bash脚本
以sudo非root用户身份登录到您的Ubuntu 18.04服务器,进入该/tmp
目录并使用curl
下载您从Anaconda网站复制的链接:
|
|
或者下载完成后把bash脚本传输到linux上
第三步 - 验证安装程序的数据完整性
通过SHA-256校验和通过加密哈希验证确保安装程序的完整性:
|
|
输出如下所示:
|
|
第四步 - 运行Anaconda脚本
|
|
将收到以下输出以查看许可协议,按ENTER
键直到到达结尾。
|
|
当到达许可证末尾时,只要同意完成安装的许可证即可输入yes
。
第五步 - 完成安装过程
一旦同意许可,系统将提示选择安装位置。可以按ENTER
接受默认位置,或指定其他位置。
|
|
此时,安装将继续。请注意,安装过程需要一些时间。
第六步 - 选择选项
安装完成后,您将收到以下输出:
|
|
建议输入yes
以使用该conda
命令。
接下来,系统将提示下载Visual Studio Code,可以从官方VSCode网站了解更多信息。
输入yes
要安装和no
拒绝安装。
第七步 - 激活安装
现在可以使用以下命令激活安装:
|
|
第八步 - 测试安装
使用此conda
命令测试安装和激活:
|
|
将收到通过Anaconda安装可用的所有软件包的输出。
第九步 - 设置Anaconda环境
可以使用该conda create
命令创建Anaconda环境。例如,可以使用以下命令创建名为my_env
的Python 3环境:
|
|
像这样激活新环境:
|
|
您的命令提示符前缀将更改以反映您处于活动的Anaconda环境中,现在您已准备好开始处理项目。
常用命令
|
|
安装mongodb
apt安装
https://blog.csdn.net/yutu75/article/details/110941936
基本安装
目前最新版本为4.4版本,ubuntu20.04中默认安装的是3.6版本【可以继续基于这个版本进行学习,这块内容跳过即可】。
安装之前建议更新下Linux源.
|
|
如果要在ubuntu20.04中安装最新4.4版本mongodb,则需要完成以下命令步骤:
|
|
启动和关闭MongoDB
|
|
==问题:==
mongodb启动之后立马关闭
1.修改/tmp
目录下mongodb-23266.sock
的权限
|
|
修改之后启动mongodb,出现另外一个错误
打开日志查看错误:
==建议重装==
压缩包安装
mongodb彻底卸载方式
|
|
安装redis
==重要的事情说三遍!:服务器上不要开放对外端口,必要时修改端口,设置密码,不然会被注入cleanfda木马==
https://developer.aliyun.com/article/764565
一、在 Ubuntu 20.04 上安装 Redis
在 Ubuntu 上安装 Redis 非常简单直接。
Redis 5.0 被包含在默认的 Ubuntu 20.04 软件源中。想要安装它,以 root 或者其他 sudo 身份运行下面的命令:
|
|
一旦安装完成,Redis 服务将会自动启动。想要检查服务的状态,输入下面的命令:
|
|
你应该看到下面这些:
|
|
就这些。你已经在你的 Ubuntu 20.04 上安装并运行了 Redis。
二、配置 Redis 远程访问
默认情况下,Redis 不允许远程连接。你仅仅只能从127.0.0.1(localhost)连接 Redis 服务器 - Redis 服务器正在运行的机器上。
如果你正在使用单机,数据库也同样在这台机器上,你不需要启用远程访问。
想要配置 Redis 来接受远程访问,使用你的文本编辑器打开 Redis 配置文件 (查看redis配置文件位置):
|
|
定位到以bind 127.0.0.1 ::1
开头的一行,并且取消它的注释:
|
|
保存这个文件,并且重启 Redis 服务,使应用生效:
|
|
使用下面的命令来验证 Redis 服务器正在监听端口6379
:
|
|
你应该能看到类似下面的信息:
|
|
同时还要进行如下配置,防止redis运行几天后报错
Redis踩坑——MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on
1.直接修改redis.conf配置文件,但是更改后需要重启redis。
修改redis.conf文件:
(1)vim打开redis-server配置的redis.conf文件 /etc/redis/redis.conf
,
(2)使用快捷匹配模式:
/stop-writes-on-bgsave-error
定位到stop-writes-on-bgsave-error字符串所在位置,
(3)把后面的yes设置为no。
2.在/etc/sysctl.conf
添加一项 vm.overcommit_memory = 1
,然后重启(或者运行命令sysctl vm.overcommit_memory=1
)使其生效)
使用如下命令刷新配置,使其立即生效:
|
|
重启redis失效
杀死redis进程重新restart
ps -ef | grep redis
kill -s 9 进程id
systemctl restart redis.service
还是启动不起来,打开日志查看问题
cat /var/log/redis/redis-server.log
Write error saving DB on disk: No space left on device
查看磁盘的占用情况
df -h
还真满了
寻找原因:
从根目录下开始使用du
命令查找出空间占用最大的文件
|
|
删除掉大文件之后还是不行,再次执行df -h
查看磁盘使用状况,可以看到/snap
下的文件使用情况都是100%
可以看到/opt
文件夹占用了极大的空间,再一层层排查发现是tomcat生成的日志文件过大
删除掉tomcat的日志即可
https://blog.csdn.net/ZCY5202015/article/details/120685589
杀死redis进程失效
执行sysctl vm.overcommit_memory=1
便可重启redis: systemctl restart redis.service
redis启动报WARNING
8423:M 01 Aug 10:47:50.770 # WARNING you have Transparent Huge Pages (THP) support enabled in your ernel. This will create latency and memory usage issues with Redis. To fix this issue run the commad ’echo never > /sys/kernel/mm/transparent_hugepage/enabled’ as root, and add it to your /etc/rc.loal in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
root用户执行echo never > /sys/kernel/mm/transparent_hugepage/enabled
编辑/etc/rc.local
在最后一行添加echo never > /sys/kernel/mm/transparent_hugepage/enabled
重启redis: systemctl restart redis.service
8528:M 01 Aug 11:00:34.857 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
解决方法
方式一:设置的值128较低,需要“echo 511 > /proc/sys/net/core/somaxconn”命令,注意此命令只是暂时生效,如果重启后就会失效。
方式二:永久解决Redis中The TCP backlog setting of 511 cannot be enforced告警问题,编辑/etc/sysctl.conf
文件,添加net.core.somaxconn = 1024
然后执行sysctl -p
命令查看是否添加成功,之后重启Redis服务即可。
|
|
systemctl status redis-server
报错
redis-server.service: Can’t open PID file /var/run/redis/redis-server.pid (yet?) after start: No such file or directory
解决方法如下:
https://blog.csdn.net/zhangpeterx/article/details/104093275
|
|
在[Service]
下新增一行ExecStartPost=/bin/sh -c "echo $MAINPID > /var/run/redis/redis.pid"
|
|
随后重启服务:
|
|
redis运行时日志报错
==Redis被挖矿脚本注入了!!!==
3543227:M 01 Aug 2022 21:27:36.031 * 1 changes in 900 seconds. Saving… 3543227:M 01 Aug 2022 21:27:36.031 * Background saving started by pid 3604362 3604362:C 01 Aug 2022 21:27:36.031 # Failed opening the RDB file crontab (in server root dir /etc) for saving: Read-only file system 3543227:M 01 Aug 2022 21:27:36.131 # Background saving error
https://blog.csdn.net/zhangjunli/article/details/103817837
|
|
|
|
Linux管理python推荐使用miniconda
安装miniconda
https://www.jianshu.com/p/47ed480daccc
1、下载最新版 miniconda:
|
|
2、在bash中安装:
|
|
3、安装完成后,关闭terminal后,重新打开,输入以下命令以验证是否安装成功:
|
|
4、若要卸载,可直接删除已安装的文件夹后,并删除相应的环境变量:
|
|
删除后,打开 ~/.bashrc 文件,删除以下conda的路径变量:
|
|
解决方案:
打开一个终端,然后输入命令行打开bashrc文件:
|
|
注意这里要有sudo,不然无法编辑里面的内容。
打开自己的安装目录/opt/software/miniconda3/bin
,输入指令pwd
查看路径。
在bashrc文件中输入:
|
|
保存关闭bashrc文件,在命令行输入:
|
|
随后检测一下:
|
|
如上图所示,成功。
常用指令
conda activate GIS
conda create -n Name python=3.x(2.x)
conda install xx (pip install xx)
conda deactivate
新建用户
如下操作都是在root用户下进行的
新增单个用户
|
|
设置密码
|
|
设置密码的时候,有的密码无法通过字典检查。
可以通过修改:/etc/security/pwquality.conf
文件 关闭字典检查。
修改完成之后:
但是不建议这么修改。建议换个密码。
删除帐号
删除一个已有的用户账号使用userdel
命令,其格式如下:
|
|
常用的选项是 -r,它的作用是把用户的主目录一起删除。
例如:
|
|
此命令删除用户sam在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。
/etc/passwd文件是用户管理工作涉及的最重要的一个文件。
Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。
|
|
从上面的例子我们可以看到,/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:
|
|
添加批量用户
(1)先编辑一个文本用户文件。
每一列按照/etc/passwd
密码文件的格式书写,要注意每个用户的用户名、UID、宿主目录都不可以相同,其中密码栏可以留做空白或输入x号。一个范例文件user.txt内容如下:
|
|
(2)以root身份执行命令 /usr/sbin/newusers
,从刚创建的用户文件user.txt
中导入数据,创建用户:
|
|
然后可以执行命令 vipw
或 vi /etc/passwd
检查 /etc/passwd
文件是否已经出现这些用户的数据,并且用户的宿主目录是否已经创建。
(3)执行命令/usr/sbin/pwunconv。
将 /etc/shadow
产生的 shadow
密码解码,然后回写到 /etc/passwd
中,并将/etc/shadow
的shadow
密码栏删掉。这是为了方便下一步的密码转换工作,即先取消 shadow password
功能。
|
|
(4)编辑每个用户的密码对照文件。
格式为:
|
|
实例文件 passwd.txt
内容如下:
|
|
(5)以 root 身份执行命令 /usr/sbin/chpasswd
。
创建用户密码,chpasswd
会将经过 /usr/bin/passwd
命令编码过的密码写入 /etc/passwd
的密码栏。
|
|
(6)确定密码经编码写入/etc/passwd的密码栏后。
执行命令 /usr/sbin/pwconv
将密码编码为 shadow password
,并将结果写入 /etc/shadow
。
|
|
这样就完成了大量用户的创建了,之后您可以到/home下检查这些用户宿主目录的权限设置是否都正确,并登录验证用户密码是否正确。
Centos
换国内源
https://blog.csdn.net/sinat_31089473/article/details/105929293
|
|
安装Java
https://www.cnblogs.com/lumama520/p/11058927.html
|
|
安装Tomcat
https://blog.csdn.net/qq_21077715/article/details/85541685
|
|
开放对外端口
==注意:centos7自带的防火墙已经不是iptables了,改成了firewalld== ufw也是一种防火墙
执行命令时,出现firewalld is not running的报错,用以下命令将firewalld起起来即可
1.查看firewalld状态:systemctl status firewalld
,如果是dead状态,即防火墙未开启。
2.开启防火墙:systemctl start firewalld
3.确认firewalld状态:systemctl status firewalld
4.开放默认端口号 3306,出现success表示成功
|
|
5.重新加载防火墙配置:firewall-cmd --reload
6.设置firewalld开机启动:systemctl enable firewalld
7.关闭防火墙:systemctl stop firewalld
8.查看该机器有几个端口开放:firewall-cmd --list-all
、firewall-cmd --zone=public --list-ports
经过上述操作后外网还是访问不到tomcat
可能是服务没开?
https://www.cnblogs.com/cui0614/p/12746383.html
但是开了之后还不行
==主要原因是我是在腾讯云上买的服务器,所以要在腾讯云上面先开端口号~!!!!==
因为centos7自带的防火墙已经不是iptables了,改成了firewalld,所以不用下面的这种方法解决
|
|
注意这一行-A INPUT -j REJECT --reject-with icmp-host-prohibited
,如果我们添加的规则在这行之下那么就不会生效
解决办法:在-A INPUT -j REJECT --reject-with icmp-host-prohibited
之前加入我们的规则即可
如果防火墙放行了端口,但是仍然访问不到的话,可能是因为添加规则的时候,用的是iptables -A 选项,这样,增加的规则会排列在 第6条 规则后面,虽然service iptables status
显示放行了端口,但是实际上,由于第六条规则的原因,新增加的这条并没有起作用。
改为使用iptables -I 插入规则即可,将规则添加到 第6条 之前,就可以生效了。
但是当我执行service iptables status
命令时出现如下错误:
|
|
原因是没有安装iptables-services
https://blog.csdn.net/y368769/article/details/104490697/
安装MongoDB
https://www.jianshu.com/p/994bc7b19b26
https://www.cnblogs.com/xiaoyaojinzhazhadehangcheng/p/12156597.html
1.解压
|
|
之后装的时候把文件目录改个名,因为之后要有很多关于这个目录的配置
|
|
2.修改配置文件
|
|
在 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 一行的上面添加如下内容:
|
|
使环境变量生效
|
|
3.创建数据库目录
|
|
4.修改mongodb配置文件
|
|
添加以下内容
|
|
5.设置文件夹权限
|
|
6.启动mongodb
|
|
7.安装完之后记得开放端口
部署项目
https://www.cnblogs.com/shu-java-net/p/13886242.html
1.Springboot 先打包成jar包
2.放到服务器上
|
|
nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行,
当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。
3.结束项目
|
|
把这个端口kill掉
|
|
4.使用nginx:外网访问内网项目
|
|
写 .sh
自动启动
1、自己将项目(比如用springboot框架写的项目)打包成jar包,然后我们需要将它用软件传输到linux版本的服务器上(服务器提前安装好JDK>=1.8)。
2、自己编写sh命令,用于启动和关闭项目,并打印日志信息到服务器本地。
1)、start_项目名.sh文件
|
|
2)、shutdown_项目名.sh文件
|
|
3、将你的项目jar包、start_项目名.sh、shutdown_项目名.sh放在服务器的某一个文件夹下(他三个处于同一个目录),此时,可以用控制台启动和关闭项目了。
4、写完之后放到服务器上面要转换换行符
https://blog.csdn.net/li_1303999/article/details/93159197
文件下载
使用
sz hadoop-mapreduce-examples-3.1.3.jar
安装
yum install -y lrzsz
虚拟机扩容
https://blog.csdn.net/cc1949/article/details/89918775
安装gparted
|
|
打开gparted
|
|
按照上述操作之后, df -h
还是没有变化
输入 lsblk
发现分区并没有分完,虽然增加到sda2,但是每增加带centos-root中
把用gparted划分的空间撤回,重新进行分区操作:
https://blog.csdn.net/Akari0216/article/details/108944111
https://zhuanlan.zhihu.com/p/450057653
扩容之后
==更新UUID值==
https://blog.csdn.net/Chen_qi_hai/article/details/108814596
查看mongodb安装路径
|
|
命令行注解
ps
1)ps -a 显示现行终端机下的所有程序,包括其他用户的程序。
2)ps -A 显示所有程序。
3)ps -c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
4)ps -e 此参数的效果和指定"A"参数相同。
5)ps -e 列出程序时,显示每个程序所使用的环境变量。
6)ps -f 用ASCII字符显示树状结构,表达程序间的相互关系。
7)ps -H 显示树状结构,表示程序间的相互关系。
8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
9)ps -s 采用程序信号的格式显示程序状况。
10)ps - S 列出程序时,包括已中断的子程序资料。
11)ps -t <终端机编号>指定终端机编号,并列出属于该终端机的程序的状况。
12)ps -u username
grep
用于查找文件里符合条件的字符串
管道符号 |
用法: command 1 | command 2
他的功能是把第一个命令command 1执行的结果作为command 2的输入传给command 2
sed
参数说明:
- -i:使 sed 修改文件
- -e