跳转至

Linux 系统设置

3052 个字 172 行代码 预计阅读时间 14 分钟

这一篇主要记录在配置 linux 时候遇到的一些问题和解决方案

VMware

【VMware Workstation 17】 VMware Workstation v17.x 永久许可证激活密钥:

MC60H-DWHD5-H80U9-6V85M-8280D
4A4RR-813DK-M81A9-4U35H-06KND
NZ4RR-FTK5H-H81C1-Q30QH-1V2LA
JU090-6039P-08409-8J0QH-2YR7F
4Y09U-AJK97-089Z0-A3054-83KLA

VMware 无法复制问题的解决

安装 VMware Tools 选项显示灰色的正确解决办法

1. 关闭虚拟机;

2. 在虚拟机设置分别设置 CD/DVDCD/DVD2 和软盘为自动检测三个步骤;

3. 再重启虚拟机,灰色字即点亮。

4. 重新安装 vmware-tools

  • 虚拟机无法打开

虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本。 模块“Upgrade”启动失败。

打开.vmx文件,修改virtualHW.version = "19"一行至virtualHW.version = "16"

系统烧录

系统配置

换源

lsb_release -a
uname -a
vim /etc/apt/sources.list

注意换源的时候注意备份之前的

sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

20.04 版本的源

ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

ubuntu 镜像 _ubuntu 下载地址 _ubuntu 安装教程 - 阿里巴巴开源镜像站

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
deb https://mirrors.zju.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.zju.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.zju.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.zju.edu.cn/ubuntu/ focal-security main restricted universe multiverse
wget http://fishros.com/install -O fishros && . fishros
sudo apt-get update
sudo apt-get upgrade

中文系统

在系統中添加中文語言,既可以顯示中文,也可以輸入中文。

分辨率

xrandr
xrandr -s 1280x768
xrandr -s 1 #(1是顺序号,即xrandr给出的2560x1600。)

/boot/grub/下的menu.lst文件

cat menu.lst 查看文件内容。

gedit menu.lst
vim menu.lst
等都可以改。其中这个vga=788就是控制你的分辨率与色彩模式的,你可以把它改成你的显示器支持的你喜欢的任意模式。

linux 下更改分辨率

无法获得锁 /var/lib/dpkg/lock-frontend - open

ps -e | grep apt
> 3209 ? 00:00:00 apt.systemd.dai
> 3213 ? 00:00:00 apt.systemd.dai

杀死进程并切换到 sudo 权限完美解决“无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用 ) 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-f”的问题

查看系统信息

查看 cpu 信息

cat /proc/cpuinfo

查看系统架构

uname - a
x86-64、amd64、arm、aarch64 都是些什么?-CSDN博客

sudo !4
执行历史记录中第4条命令

更改密码

passwd
更改其他用户密码
sudo passwd username

更改 root 密码

sudo passwd root

PS1 修改

vim ~/.bashrc

通用软件

apt-get install git
apt-get install vim
  • tldr:简易版 man 手册
  • fd-find:人性化的 find
  • rg(ripgrep):快速搜索
  • fzf : 模糊搜索

新立得

sudo apt install -y synaptic

nano

常见操作

操作 快捷键
保存 Ctrl + O
退出 Ctrl + X
删除 Ctrl + K

terminator

terminator

sudo apt-get install terminator

设置为默认终端

开启 or 关闭快捷键 作用
Ctrl + Shift + O 水平分割终端(分成上下两个窗口)
Ctrl + Shift + E 垂直分割终端(分成左右两个窗口)
Ctrl + Shift + W 关闭当前终端
Ctrl + Shift + X 放大(还原)当前终端
Ctrl + Shift + G 清屏
Ctrl + Shift + Q 关闭所有终端(退出程序)
Ctrl + Shift + T 开一个新终端
快捷键 作用
alt+方向键 or ctrl+TAB 切换窗口
ctrl shift + 加字号
F11 全屏
super(win) + g group, 将不同窗口打包,指令可以广播
Super+Shift+g 取消分组
ctrl+shift+f 搜索命令
Ctrl+Shift+c 复制指令
Ctrl+Shift+v 粘贴指令
Ctrl+Shift+X 将分割的某一个窗口放大至全屏使用
Ctrl+Shift+Z 从放大至全屏的某一窗口回到多窗格界面

vscode

vscode on Kali

  1. 用内嵌的浏览器搜索 vscode,下载 vscode .deb 格式的安装包
  2. 在终端中输入 sudo dpkg -i code_1.72.1-1665423861_amd64.deb 进行解压包
  3. vscode 软件上点击鼠标右键,点击 Edit Application
  4. 有个 Command 选项,输入 /usr/share/code/code --unity-launch %F --no-sandbox 即可,再点击保存。

SSH

sudo apt install net-tools
ifconfig
sudo apt-get install openssh-server
ssh user@remote
ssh -X ldz@192.168.0.1  # 带图形化界面
ssh -p 1234 ldz@192.168.0.1 # 指定端口
vim /etc/ssh/sshd_config
  • 33 : PermitRootLogin without-password(第 33 行) 改为 PermitRootLogin yes 并去掉前面的注释符号(#)
  • 57 :#PasswordAuthentication yes( 57 ) 的注释去掉,如果是 no 就改为 yes
  • 保存
service ssh restart

验证安装

service ssh status

开机自启动

update-rc.d ssh enable

配置免密登陆

ssh-keygen -t rsa
然后根据提示一步步的按enter键即可(其中有一个提示是要求设置私钥口passphrase,不设置则为空,这里看心情吧,如果不放心私钥的安全可以设置一下)

执行结束以后会在/home/当前用户 目录下生成一个 .ssh 文件夹 , 其中包含私钥文件 id_rsa 和公钥文件 id_rsa.pub

ssh-copy-id 会将公钥写到远程主机的 ~/.ssh/authorized_key 文件中

ssh-copy-id name@ip

注意,windows cmd 中不能直接执行 ssh-copy-id 命令,可以使用 git bash 或者其他 linux 终端工具

当出现

Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'HAHA@127.0.0.1'" and check to make sure that only the key(s) you wanted were added.

说明配置成功!

深入理解 ~/.ssh/config /etc/ssh/ssh_config 配置文件 - 百度开发者中心

错误与解决方法

警告:远程主机标识已更改!

此报错是由于远程的主机的公钥发生了变化导致的。 ssh 服务是通过公钥和私钥来进行连接的,它会把每个曾经访问过计算机或服务器的公钥(public key,记录在 ~/.ssh/known_hosts 中,当下次访问曾经访问过的计算机或服务器时,ssh 就会核对公钥,如果和上次记录的不同,OpenSSH 会发出警告。

解决方法
ssh-keygen -R XX.XX.XX.XX 
ssh -6 user@ipv6

conda

conda 换地址

清华镜像地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/

按照你系统的架构选择合适的下载

uname -m

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py39_24.7.1-0-Linux-aarch64.sh
下载后执行得到的文件
bash Miniconda3-py39_24.7.1-0-Linux-aarch64.sh

一路点 enter yes,最后重启终端,得到带有(base)的提示符,说明安装成功

nomachine

外设与硬件

蓝牙操作

打开系统蓝牙

systemctl status bluetooth
sudo service bluetooth start
sudo /etc/init.d/bluetooth restart
管理界面
bluetoothctl

输入以下命令

list 
scan on 
devices
power on
agent on 
default-agent
pair yourDeviceMAC

其中 pair 后面跟上扫描出的键盘的 MAC 地址,根据提示输入密码,显示配对成功,此时,在桌面的设置界面“我的设备”中可以看到蓝牙中键盘为已配对状态,但此时可能依然无法成功连接。

压缩

递归压缩
zip -r examples.zip examples   # examples为目录
解压缩
unzip name.zip
目录路径来指明压缩包所在的位置
unzip name.zip -d 当前目录
如果是压缩包是 .tar 后缀
tar xvf name.tar 

复制 scp

好的,我来帮你总结一下 scp 的常见用法。

## SCP 常用命令
[关于scp传输文件踩过的坑(最全!linux与windows相互传输文件,连接失败,免密登录,连接超时) - 知乎](https://zhuanlan.zhihu.com/p/542926236)
### 基本语法
```shell
scp [可选参数] 源文件 目标文件
# 复制文件
scp local_file remote_username@remote_ip:remote_folder
scp local_file remote_username@remote_ip:remote_file

# 复制目录
scp -r local_folder remote_username@remote_ip:remote_folder
  • -r: 递归复制整个目录
  • -P port: 指定远程主机的端口号
  • -p: 保留原文件的修改时间和访问权限
  • -q: 不显示传输进度条
  • -C: 允许压缩
  • -v: 详细方式显示输出

示例

# 复制本地文件到远程服务器
scp file.txt user@192.168.1.100:/home/user/

# 复制远程文件到本地
scp user@192.168.1.100:/home/user/file.txt ./

# 复制整个目录
scp -r local_folder user@192.168.1.100:/home/user/

# 使用特定端口
scp -P 2222 file.txt user@192.168.1.100:/home/user/

局域网

apt-get install -y cifs-utils

windows 做服务器

windows 上共享文件夹

windows 作客户端

如果你是没有打开 smb 服务,那么继续往下看,打开控制面板进入

点击“启用或关闭 windows 功能”

smb 的几个都点开,然后点击确定,立即重启

然后直接在 explorer 中输入 ip 地址即可。

注意输入的格式: - 不是smb://156.26.51.55 - 而是应该直接双斜杠+ip地址,如果有具体的共享的文件夹的话就把路径跟在后面。不需要加smb前缀,也不能用 // ,要用 \\,然后输入对应的账户和密码就完事了。

window10 使用 smb 连接远程电脑的文件夹 [ 打开 smb 服务和连接巨坑 ]-CSDN 博客

linux 做服务器——samba

安装
sudo apt install samba
启动服务
systemctl start smbd.service

systemctl enable smbd.service

systemctl start nmbd.service

systemctl enable nmbd.service
systemctl status smbd.service
systemctl status nmbd.service
设置共享文件夹
net usershare add "共享名" /home/Desktop/文件名 "备注名" Everyone:R guest_ok=y
参数 含义
Everyone:R 设置 Everyone 用户为只读权限
Everyone:F 设置 Everyone 用户为可写权限
Everyone:D 设置 Everyone 用户为拒绝权限
guest_ok=y 允许匿名访问
guest_ok=n 不允许匿名访问
客户端侧安装
sudo apt install smbclient
使用命令登录
smbclinet //ip/name -U xxx

Linux 上挂载 SambaWindows & macOS 共享文件夹)的正确姿势 - 知乎

注意权限问题

  1. 设置了当前共享文件夹有可写权限的话,那么需要增加当前文件夹的 other 的写权限

  2. 设置了匿名访问的话需要设置当前目录以及这个目录的父目录的 other 的可执行权限

不然的话,不管使用命令访问还是使用图形界面访问都是会导致报错没有权限的问题

linux 作客户端——挂载文件系统

举例
smbclient -L 192.168.1.70 -U lab

Enter lab's password:   #输入密码,不回显
Domain=[WIN7] OS=[Windows 7] Server=[Windows 7]
   #共享点名称#      #类型#      #描述# 
    Sharename       Type      Comment
    ---------       ----      -------
    ADMIN$          Disk      远程管理
    Share               Disk      
    C$              Disk      默认共享
Connection to 192.168.1.70 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND) 
NetBIOS over TCP disabled -- no workgroup available #可能会出现一些错误警告,不过可以列出的话就不用管

//<ip>/test 挂载到 /mnt/ 目录上,如果不需要认证,则无需指定用户名和密码。

sudo mount -t cifs //<ip>/test /mnt/test_shared -o dir_mode=0777,file_mode=0777

linux mount 挂载文件夹设置权限 - 秋声梧叶 - 博客园

开机自动挂载(修改 /etc/fstab 文件

//192.168.xx.xx/sharedir挂载到/mnt/cifs上,并指定了用户名和密码 ; 如果不需要认证,可以不指定用户名和密码。

//192.168.3.4/sharedir /mnt/cifs cifs username=demo,password=demo 0 0

然后可以把/mnt/folder直接当作 linux 中的文件夹进行文件的操作

解除挂载
umount /dev/hda2

pywin32 库没有安装好 Python 如何通过 Python 访问 Windows 网络上的共享文件夹 | 极客教程

网络

连接 wifi

sudo vim /etc/netplan/50-cloud-init.yaml
network:
  ethernets:
    enp2s0:
      dhcp4: true
  wifis:
    wlan0:
      dhcp4: true
      access-points:
        "<ssid>":
          password: "<passowrd>"
  version: 2

设置好之后退出,重启网络

sudo netplan apply

1. 该编辑文件中不能出现制表符,要不然会有问题;在执行后面的命令会报错;

2. 改文件的编辑必须严格按照格式来,是分层的,用空格来退格

启动 netplan-wpa-wlan0.sevice 失败:未找到单元 netplan-wpa-wlan0.service - ubuntu

注意事项

出现类似错误:line8 column 6:cloud not find expected 提示是冒号:后面没加空格

出现类似错误:netplan found character that cannot start any token,提示是没有按五个层次写配置文档,一定要下一层比上一层多空一格或以上。

出现类似错误: Invalid YAML: inconsistent indentation: # 缩进不对,就是每一层没有严格缩进

sudo apt install net-tools wireless-tools network-manager

校网验证

net2.zju.edu.cn

QSCTech/zjunet: Command Line Scripts for ZJU (VPN / WLAN / DNS)

w3m 之类的命令行浏览器试试

比较简单的 ubuntu 18.04 有线连接校园网的方法 - CC98 论坛

路由

静态路由

Linux 配置静态 IP

内网穿透

校园网内登录寝室电脑远程桌面和 ssh 连接 WSL - 知乎 干货 | 在校园网中用ssh连接宿舍电脑

用户设置

新建用户

```shell title=" 创建 root 用户 " sudo passwd root

```shell title="创建普通用户"
sudo adduser username
删除用户
sudo userdel -r username
查看密码
sudo grep bash /etc/passwd

用户权限

给新用户 root 权限
sudo usermod -a -G adm username
sudo usermod -a -G sudo username

docker

Docker Compose - 安装和基本使用 _docker-compose 安装 -CSDN 博客

定义:Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。

功能: - 多容器管理:允许用户在一个 YAML 文件中定义和管理多个容器 - 服务编排:配置容器间的网络和依赖关系 - 一键部署:使用 docker-compose up 命令启动、停止和

定义:一个开放源代码的容器化平台,允许开发者将应用及其依赖打包进轻量级、可移植的容器中。

  • 容器化:将应用和其运行环境封装在一个容器中
  • 镜像管理:创建、存储和分发容器镜像
  • 容器运行:可以运行在任何支持 Docker 的环境中

查看是否安装成功

[root@localhost ~]# docker-compose --version
Docker Compose version v2.16.0

换源

sudo vim /etc/docker/daemon.json
插入下面的句子,最后不要加逗号
{
    "registry-mirrors": ["https://dockerhub.icu"]
}

文档

文档结构

  • version:指定 Compose 文件格式 yaml 的规则版本,版本决定可用的配置选项
  • service:定义了应用中的服务,每个服务可以使用不同的镜像、环境设置和依赖关系
    • web:自己构建的镜像
    • build:用于构建镜像,指定构建镜像的 dockerfile 的上下文路径
    • ports:映射容器和宿主机的端口
    • volumes:挂载本地目录到指定容器目录,用于数据持久化或在容器之间共享数据
    • links:与 redis 服务连接
  • redis:构建指定镜像 redis
  • image:从指定的镜像中启动容器,可以是存储仓库、标签以及镜像 ID
  • volumes:用于数据持久化和共享的数据卷定义,常用于数据库存储、配置文件、日志等数据的持久化
version: "3.9"
services:
    web:
    build: .
    ports:
        - "8000:5000"
    volumes:
        - .:/code
        - logvolume01:/var/log
    links:
        - redis
    redis:
    image: redis
volumes:
logvolume01: {}

使用

docker-compose up

Q & A

sh: 0: getcwd() failed: No such file or directory

一般来说是因为你 cd 到了某个目录之后 rm 了这个目录,这时去执行某些 service 脚本的时候就会报 get cwd 错误。 只需要 cd 到任何一个实际存在的目录下再执行就好了

Java

.jar文件打开方式

1. 双击打开

  1. 命令行打开 x
java -jar xxx.jar
后台执行
java -jar xxx.jar &
不挂断执行
nohup java -jar test_jar-1.0-SNAPSHOT.jar &   

nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行。

当用 nohup 命令运行 jar 包时,缺省情况下该应用的所有输出被重定向到 nohup.out 的文件中,除非另外指定了输出文件。