linux子系统常见问题与配置
1、CentOS Mini联网问题
如果安装的centos minimal时,会遇到 无法使用ifconfig命令
可参考:https://blog.csdn.net/u013162356/article/details/51474999
- 输入ip addr 查看有无ip,没有则记住网卡名(如我的网卡名为 ens33)
- 进入网卡配置目录 cd /etc/sysconfig/network-scripts/
- 编辑网卡文件,把ONBOOT=no 改成ONBOOT=yes
- 重启服务。输入service network restart 或 service restart network ,在输入ip addr 查看,现在已经可以自动获取ip了。
固定IP:ifcfg-ens33文件配置
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static //修改为static,设置静态ip
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=28c65968-4c13-43b8-9c85-c3233bba9a72
DEVICE=ens33
ONBOOT=yes //修改为yes,开机启动服务
IPADDR=192.168.10.100 //自定义固定ip地址
NETMASK=255.255.255.0 //虚拟机中VM8中NAT设置中子网掩码值
GATEWAY=192.168.10.2 //虚拟机中VM8中NAT设置中网关值
DNS1=192.168.43.1 //当前联网电脑联网属性详情中ipv4的dns地址值
2、Linux ln 命令
Linux ln(英文全拼:link files)命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
语法
ln [参数][源文件或目录][目标文件或目录]
其中参数的格式为
[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]
[--help] [--version] [--]
命令功能 :
Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。
软链接:
- 1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
- 2.软链接可以 跨文件系统 ,硬链接不可以
- 3.软链接可以对一个不存在的文件名进行链接
- 4.软链接可以对目录进行链接
硬链接:
- 1.硬链接,以文件副本的形式存在。但不占用实际空间。
- 2.不允许给目录创建硬链接
- 3.硬链接只有在同一个文件系统中才能创建
命令参数
必要参数:
-
-b 删除,覆盖以前建立的链接 -d 允许超级用户制作目录的硬链接 -f 强制执行 -i 交互模式,文件存在则提示用户是否覆盖 -n 把符号链接视为一般目录 -s 软链接(符号链接) -v 显示详细的处理过程
选择参数:
-
-S "-S<字尾备份字符串> "或 "--suffix=<字尾备份字符串>" -V "-V<备份方式>"或"--version-control=<备份方式>" --help 显示帮助信息 --version 显示版本信息
实例
给文件创建软链接,为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效:
ln -s log2013.log link2013
输出:
[root@localhost test]# ll
-rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log
[root@localhost test]# ln -s log2013.log link2013
[root@localhost test]# ll
lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log
-rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log
给文件创建硬链接,为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同
ln log2013.log ln2013
输出:
[root@localhost test]# ll
lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log
-rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log
[root@localhost test]# ln log2013.log ln2013
[root@localhost test]# ll
lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log
-rw-r--r-- 2 root bin 61 11-13 06:03 ln2013
-rw-r--r-- 2 root bin 61 11-13 06:03 log2013.log
==============================================================================
3、为windows下linux子系统切换国内软件源
①、备份原sources.list
$ sudo mv /etc/apt/sources.list /etc/apt/sources.list.backup
②、然后在 /etc/apt/sources.list 中加入如下代码
cp /etc/apt/sources.list /etc/apt/sources.list_backup
③、编辑阿里云数据源
sudo vim /etc/apt/sources.list(此时最好进入管理员账户操作)
替换原内容,保存退出————<这里需要注意使用对应Ubuntu版本的数据源,否则有些功能会失效>
<ubuntu20版本数对应据源>
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
④.更新配置
运行sudo apt-get update
运行sudo apt-get upgrade
4、Xshell连接linux子系统
配置SSH服务
sudo apt-get remove --purge openssh-server ## 先删ssh
sudo apt-get install openssh-server ## 在安装ssh
sudo rm /etc/ssh/ssh_config ## 删配置文件,让ssh服务自己想办法链接
sudo service ssh --full-restart ## 每次启动linux子系统后需要运行一次一下命令才能成功连接Xshell(视电脑情况而定)
5、windows子系root账户问题
设置简单账户密码方法:
《windows子系统默认是没有root账户的密码的,因此,无法切换到root账户,只能临时调用。》
《可以通过sudo passwd root命令来给root账户设置密码,然后就可以切换到root账户了》
创建用户后,通过root账户来修改密码,(会有无效密码提示,直接略过,输入重复密码即可)然后就会修改成功)
通过root创建的用户,默认没有密码,可以通过root登录,但是无法通过其他用户登录,
需要通过root来设置密码或者删除密码-d,就可以登陆了;
=========================================================================================================
6、su、sudo、sudo su、sudo -i的用法和区别
总结:
sudo——临时使用一次管理员权限(环境不切换)
sudo -i ——长时间使用root权限,(环境不切换)
sudo su——切换到root账户(还不太理解)(环境切换)
su - 或者 su root——切换到root账户(环境切换)
sudo : 暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。不过有时间限制,Ubuntu默认为一次时长15分钟。
su : 切换到某某用户模式,提示输入密码时该密码为切换后账户的密码,用法为“su 账户名称”。如果后面不加账户时系统默认为root账户,密码也为超级账户的密码。没有时间限制。
sudo -i: 为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。执行该命令后提示符变为“#”而不是“$”。
想退回普通账户时可以执行“exit”或“logout” 。
sudo -i 直接运行sudo命令加-i参数
sudo su 运行sudo命令给su命令提权,运行su命令。
sudo -i 运行结果 PWD=/root
sudo su 运行结果 PWD=/home/用户名(当前用户主目录)
转载自:https://forum.ubuntu.org.cn/viewtopic.php?t=372636
7、WSL2
注意:
因为不知道为什么,只要设置wsl2为默认架构,然后安装的linux就无法进行初始化,,,,,(所以暂时放弃研究)
解决办法:
1、以管理员身份 打开 PowerShell 并运行——wsl -l -v
2、使用命令行将 WSL 1 设置为默认架构——wsl --set-default-version 1
3、下载安装liunux子系统,运行,设置账号,,,,
4、再次以管理员身份 打开 PowerShell 并运行
5、使用命令行将 WSL 1 的发行版转化为 WSL2、在 PowerShell 中运行:
——wsl --set-version Ubuntu 2
wsl --set-version $已经使用的WSL的名字 2
在第五步中会遇到一个问题,解决方法如下:https://github.com/microsoft/WSL/issues/4103
C:\Users\HL\AppData\Local\Packages
转到个人资料文件夹中的Ubuntu目录
(类似%USERPROFILE%\ AppData \ Local \ Packages \ CanonicalGroupLimited …),
右键单击“ LocalState”,“属性”,“高级”,取消选择“压缩内容”(如果选中,我也想“加密内容”)。
当它询问您是要仅应用于此文件夹还是所有子文件夹和文件时,您可以说“仅此文件夹”,
因为您要做的只是清除“ compress”标志。之后,该wsl --set-version命令应该起作用。
此外,如果要使 WSL 2 成为你的默认体系结构,可以通过此命令执行该操作:
wsl --set-default-version 2