Linux系统倒腾笔记三

标签: Linux 分类: 操作系统 创建时间:2020-03-04 05:15:46 更新时间:2024-11-15 10:49:43

1.ssh安装与配置

1
2
3
4
5
6
## 查看是否安装了ssh
rpm -qa | grep ssh
## 启动ssh
systemctl start ssh
## 生成密钥
ssh-keygen -t rsa -c "邮箱"

2.设置时间

1
2
3
4
5
6
## 读取时间
timedatectl
## 设置时区
timedatectl set-timezone Asia/Shanghai
## 是否NTP服务器同步
timedatectl set-ntp yes

3.配置sftp

4.查看文件及文件大小

1
2
## 以MB为单位,查看当前目录下所有子目录的文件大小
du -m --max-depth 1

5.磁盘满了及清理方法

1
2
3
4
5
6
## 查看磁盘空间剩余情况
df -h
## 对/目录进行磁盘占用量进行排序
du -sh /* | sort -nr
## 然后进行一级一级的查看,然后就是使用rm -rf 进行清理
du -sh /var/* | sort -nr
参考文章:
1.Linux磁盘空间查看及空间满的处理 (这篇文章非常的有用)
2.Linux 查看磁盘空间
3.Linux 查看文件夹大小,磁盘剩余空间(du/df) (这个df命令还是挺复杂的)
4./var空间满了,简单处理一下 (/var这里大部分就是存放一个日志文件,可以尝试着进行清理)
5.Centos /var/log 日志文件详解及清除方法 (这里有正确的清理日志的方法推荐)
5.日志清理脚本 (这里提供了一个脚本,自动定期清理日志文件)
6.Linux 系统 /var/log/journal/ 垃圾日志清理 (如何清理journal日志)

6.乱码

在新装的一个CentOS8中,执行ifconfig,出现乱码,其实就是说没有这个ifconfig命令。

我安装的时候,默认选的是中文环境,所以查看安装的语言环境的时候,没有英文的语言环境。但是很多的文章,都是从英文环境,切换到中文环境,而没有说是切换回去的。

1
2
## 查看字体
locale -a

想要切换回英文语言包
(1) 安装语言包

1
2
3
4
5
6
7
8
## 安装全部语言包
dnf install glibc-all-langpacks -y

## 安装英文语言包
dnf install glibc-langpack-en

## or
dnf install langpacks-en

(2) 修改/etc/locale.conf

1
2
3
4
5
## 
LANG="en_US.UTF-8"

## 使生效
source /etc/locale.conf

(3) 修改/etc/sysconfig/i18n

1
2
3
4
5
6
## 添加
LANG="en_US.utf-8"
LC_ALL="en_US.utf-8"

## 使生效
source /etc/sysconfig/i18n
参考文章:
1.CentOS8出现-bash:乱码问题 (这里只写了修改/etc/locale.conf,不生效)
2.Centos中文语言乱码解决方法 (修改了locale.conf和i18n文件,也同样不生效,还是显示乱码)
3.centos 的中文切换为英文! (图形界面解决问题)
4.CentOS 8更改语言和安装中文输入法记录 (图形界面解决问题)
5.CentOS 8修改系统语言为中文且立即生效 (这里有安装中文语言包:yum -y install langpacks-zh_CN,并且使用localectl命令设置系统语言为中文)
6.Centos yum命令提示failed to set locale, defaulting to C (在执行yum的时候,出现了failed问题,于是就有了解决方法)
7.CentOS7添加en_US.UTF-8字符集 (localedef -v -c -i en_US -f UTF-8 en_US.UTF-8命令,对我没有用)
9.How to Fix “Failed to set locale, defaulting to C.UTF-8” in CentOS 8 (这提供了命令,安装全部的语言包,glibc-all-langpacks)
10.ubuntu 20.04 中文环境和英文环境切换 (虽然是ubuntu环境,但是安装的包都是一样的)

7.source not found

在Deepin上执行 source /etc/profile 时,报source命令不存在

【解决】

1
2
3
4
5
6
7
8
9
## 执行ls -l /bin/sh命令,若得到结果/bin/sh -> dash,则说明shell的解释器为dash。
ls -l /bin/sh

## 执行dpkg-reconfigure dash命令,然后选择no
dpkg-reconfigure dash

## 注意 此步骤需要root权限。
## 再次执行ls -l /bin/sh命令,若得到结果/bin/sh -> bash,则说明成功更改shell的解释器为bash
ls -l /bin/sh

8.No such file or directory

在windos上的shell脚本,上传到linux上,明明有这个文件,但是总是提示 No such file or directory。主要就是CRLF的问题,或者是编码的问题,这个问题可以通过重新设置换行符解决。

参考文章:
1.Linux运行shell脚本提示No such file or directory错误的解决办法 1.利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换,再放到Linux中执行。2.用vim打开该sh文件,编辑
2.批量将Windows系统文件转换为Unix系统文件 安装了 window2unix 工具,并编写了批量的脚本,我这里的问题就是找不到这个windows2unix的工具

9.systemd服务启动顺序

在使用sYstemctl管理服务启动的时候,会遇到一个问题,就是比如我是用自定义的服务配置,配置了nacos启动,但是这个nacos启动需要依赖mysql数据库,这个时候如果mysql数据库没有启动,这个nacos启动就可能不顺利,还有就是如果某一个docer容器依赖于nacos的启动,那么也可能就启动不了,于是我就寻思着要定义一个服务的启动顺序。

10.kill不允许的操作

在一个普通用户使用 kill -9 命令,总是不行。用户已经加入了 root 组了。

【尝试操作】
我尝试了修改用户权限,将用户加入了root组,还加入了 wheel组,结果无效

1
2
3
4
5
6
7
# 
vi /etc/sudoers

# 修改用户群组
usermod -G wheel 用户名
# 查看用户群组
id 用户名

【解决方案】
我尝试了很多的方法都不行,最后只能是切换到这个 gitlab-runner 账号,然后启动应用程序,这样就可以进行操作了。

参考文章:
【1】.linux用户kill命令无权限
【2】.【Linux】将用户添加到root组中
【3】.linux中kill命令无权限怎么办
【4】.Linux给普通用户添加管理员权限 给普通用户xxx添加sudo权限,在“root ALL=(ALL) ALL”这一行下面
【5】.Linux中的wheel用户组是什么? 用命令“usermod -G wheel 用户名”将一个用户添加到wheel组中。(命令usermod -G的意思是,修改用户所属的次要组群,默认test用户的主要组群为test)
【6】.linux给用户添加root权限方法总结 1.修改 /etc/sudoers 文件,找到下面一行 %wheel ALL=(ALL) ALL 把前面的注释(#)去掉。2.修改 /etc/sudoers 文件,添加一行。3.修改 /etc/passwd 文件,找到如下行,把用户ID修改为 0。
【7】.linux提升权限命令 1.sudo命令;2.su命令;3.chmod命令;4.chown命令;5.chgrp命令。
【8】.GitlabCICD—-gitlab-runner 用户如何使用root权限执行命令,即使用 sudo 去执行命令 保存后再次去 gitlabCICD流水线中的 .gitlab-ci.yml中使用sudo 命令就OK了,gitlab-runner ALL=(ALL) NOPASSWD:ALL,保存后再次去 gitlabCICD流水线中的 .gitlab-ci.yml中使用sudo 命令就OK了
小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。