Linux 踩坑笔记

时区问题

有的服务器时区不一样,会影响到一些业务,要换时区。

timedatectl set-timezone Asia/Shanghai

chrome

部分业务需要调用chrome浏览器。

chrome安装包下载地址:下载地址

#下载
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
#安装 
apt install ./google-chrome-stable_current_amd64.deb

#卸载 
apt purge google-chrome-stable

ffmpeg

ffmpeg作为常用的解码工具经常会用到。

可以到官网下载二进制包编译安装,配置环境变量。一般是选择apt安装,省时省力。

用Debian10 apt安装的时候依赖版本可能会冲突。官方源的话推荐Debian11吧。就是debian.org下载有点慢

安装 sudo

apt install sudo

中文字体

有点运用要用到中文字体,没有安装字体的话会方块字

1、先查看是否有中文语言环境

locale -a

结果会显示你的电脑已经安装的语言环境:

C.UTF-8
en_US.utf8
POSIX

2、安装语言环境(root权限):

dpkg-reconfigure locales

3、安装中文字体

apt-get install ttf-wqy-zenhei

apt-get install xfonts-intl-chinese wqy*

root用户登录问题

处于安全考虑,亲测 Debian,Ubuntu,Locky Linux 默认会关闭root用户的登录权限。

要使用非root用户(安装的时候有创建)登录后提权。

Rocky Linux 是一个开源企业操作系统,可以作为CentOS的替代品。

学习用的环境就可以不那么讲究

vim /etc/ssh/sshd_config

#增加 root登录的权限。
#  修改前
PermitRootLogin  without-password
# 修改后
PermitRootLogin yes

N1上防火墙的坑

#iptables 修改 NAT 表,使经过 eth0 的网卡的流量的源 IP 伪装成 eth0 的 IP,而且是动态伪装(直接读取 eth0 的 IP 地址)
#N1 只配置了一个 LAN 口,WAN 口是没有使用,或者直接把 WAN 口删了,这个时候 N1 作为辅助网关,LAN 口负责把数据转发给主路由网关,默认是不会修改你的源 IP 的。

iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

防火墙限制流量

原理是通过限制转发数据包数量来限制网速

#限制上传网速
iptables -t filter -I FORWARD -s 192.168.200.102 -j DROP
iptables -t filter -I FORWARD -m limit -s 192.168.200.102 --limit 100/s --limit-burst 100 -j ACCEPT

#限制下载网速
iptables -t filter -I FORWARD -d 192.168.200.102 -j DROP
iptables -t filter -I FORWARD -m limit -d 192.168.200.102 --limit 100/s --limit-burst 100 -j ACCEPT


#根据mac限制上行网速)
#iptables -t filter -I FORWARD -m mac --mac-source 3c:bd:3c:1c:3c:63 -j DROP
#iptables -t filter -I FORWARD -m mac --mac-source 3c:bd:3c:1c:3c:63 -m limit --limit 100/s --limit-burst 100 -j ACCEPT

IPV4 业务不通的坑

防火墙配置完发现ipv6业务可以通ipv4通不了。

原因是因为三层设备重启后upnp规则清除。导致没有端口转发,业务不通。

重启后要重新发起upnp链接。

command not found 报错

root用户下bash: reboot :command not found

场景:

使用mysql修改了.bash_profile文件后,ls不可用,然后退出使用root用户,直接source /home/mysql/.bash_profile后导致不可用。

解决:

查看当前PATH

echo $PATH

更改PATH

export PATH=$PATH:$HOME/bin:/sbin:/usr/bin:/usr/sbin

之后即可使用reboot,在root用户下尽量不要更改path参数

link硬链接脚本

hlink "/volume1/vTV" "/volume1/Media_Link/V";
hlink "/volume1/ves" "/volume1/Media_Link/M"
#加参数指定要链接的文件
hlink -i=mkv,mp4,mov,rmvb,avi,wmv,flv,ass,srt "/volume1/ves" "/volume1/Media_Link/M"

查看ip地址

ifconfignet-tools下的一个命令

有的系统没有预装,可以通过 addr ip 查看ip地址

net-tools安装:

apt install net-tools

修改镜像源

默认的镜像源下载比较慢,可以换成阿里的源

debian镜像下载地址

#更换apt源
vim /etc/apt/sources.list

#更新升级一下软件
apt update
apt upgrade

Notejs

官网有给二进制包,但是有点折磨人。官方源的版本又太低了

我找到了个自动安装脚本,其实也就是加了一个源

https://github.com/nodesource/distributions

NodeSource 维护的 PPA 安装最新版本的 NodeJS,该公司为不同的 Linux 发行版构建和维护各种包。PPA 是软件包的替代存储库。

curl -fsSL https://deb.nodesource.com/setup_17.x | sudo -E bash -

apt update -y

apt install nodejs -y

验证:

$ node -v
v17.4.0
$ npm -v
8.3.1

glibc

二、检查c语言库glibc版本

ldd --version

apt install gcc

二、安装jemalloc 是一款内存分配器

http://blog.fpliu.com/it/software/jemalloc

https://github.com/jemalloc/jemalloc/releases

 apt-get install -y jemalloc

文件夹和文件颜色

文件夹和文件没有颜色的解决办法

在~/.bashrc 中加入

alias ls="ls --color"

如果没有.bashrc 文件,在用户目录 /home/<username>/ 新建 1 个即可

vim ~/.bashrc

通过 source 命令,使配置生效

source .bashrc 

关于文件显示 ll ls命令

ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名。

Debian默认不支持命令ll,必须用 ls -l

如果要使用ll命令,可以作如下修改:
要改 ~/.bashrc文件
去掉 #alias ll=’ls -l’ 的注释

source .bashrc 

群晖挂载硬盘

sudi -i
#提升权限

fdisk -l
#查看设备

umount /dev/usb1p1
卸载某个设备

mount /dev/usb1p1 /volume1/Download
挂载设备到指定目录

synopartition --part /dev/usb1 12 
#按群晖的格式,格式化设备
# 回车
# 输入“Y”,确认

#查看分区信息
fdisk -l /dev/usb1

#查询当前群晖存储空间,避免存储空间名字冲突。
cat /proc/mdstat

mdadm --create /dev/md3 --level=1 --raid-devices=1 --force /dev/usb1p3
#/dev/md7要改

#格式化ssd存储池为btrfs
mkfs.btrfs -f /dev/md3

#格式化ssd存储池为ext4(不建议,大部分人应该都会用到虚拟机,所以只能是btrfs)
mkfs.ext4 -F /dev/md7
mdadm --assemble --run /dev/md3 /dev/usb1

这下面都是搬运的,觉得有用就加进来了!

shell 终端相关

常见的键映射

如下所列出的键映射都是最常见的键映射,但是它们不是固定的。

信号 作用
erase / / ^H 删除键入的最后一个字符
werase ^W 删除键入的最后一个单词
kill ^X / ^U 删除整行
intr ^C 停止正在运行的程序
quit ^\ 停止程序并保存core文件
stop ^S 暂停屏幕显示
start ^Q 重新启动屏幕显示
eof ^D 指示已经没有数据(停止shell,即退出登录)
susp ^Z 暂停一个程序(挂起)

linux shell中Backspace出现乱码^H

# 查看当前映射
# stty -a

# 改 erase 映射
stty erase [退格键]

linux shell中上左右上下键出现乱码^[[D ^[[C ^[[A ^[[B

方法一:查看shell环境

echo $SHELL

如果出现bin/sh, 那么试试输入

bash

X11配置

服务器端

debian 安装[1]

sudo apt install xorg
sudo apt install xserver-xorg

xserver-xorg、xserver-xorg-server 区别

xserver-xorg:该软件包取决于X.org X服务器的服务器和驱动程序的完整套件。它不提供实际服务器本身。
xserver-xorg-server:Xorg X server是一个针对多种架构和操作系统的X server,这个包是从 X.org xserver 模块构建的。

centos安装

yum install xorg-x11-xauth

改 ssh 设置

sudo nano /etc/ssh/sshd_config

# change
X11Forwarding yes

客户端(xserver)

MobaXterm:带 xserver 的 ssh 工具

VcXsrv :纯 xserver,可以配合 xshell 用

问题解决

Q:要 sudo 的应用没法用

A:

# 1.查看当前连接显示器和屏幕编号,【主机名称:显示器编号.屏幕编号】
$ echo $DISPLAY
localhost:11.0

# 2.获取显示器的认证信息
$ xauth list $DISPLAY
192/unix:11  MIT-MAGIC-COOKIE-1  da1580e522be7282457c83aaf98ba171

# 3.切换到 root 用户环境下
$ su - root    

# 4.添加认证信息给 root 用户
$ xauth add 192/unix:11  MIT-MAGIC-COOKIE-1  da1580e522be7282457c83aaf98ba171

# 5.添加显示器信息给 root 用户
$ export DISPLAY="localhost:11.0"   

Q:libGL error: failed to load driver: swrast. 报错

A:sudo apt install mesa-utils libgl1-mesa-glx

参考


  1. Xorg 文档 https://wiki.debian.org/Xorg#Installing_Xorg ↩︎