linux环境开发过程中遇到的问题以及解决办法 how to
1. 装好开发机后上网
检查网口是否开通,网线是否正常
一般桌面上多个网口可能只开通一个,需要联系IT
联系之前可以先找一个正常的网线连到PC看看是否能够提供网络
一般从公司内网连接外网需要连接代理
检查proxy的可访问性
curl -x <proxy_address>:<proxy_port> http://www.example.com
添加代理
在~/.bashrc下添加
export http_proxy= http://yourproxy:port
export https_proxy= http://yourproxy:port
export ftp_proxy= http://yourproxy:port
export socks_proxy= http://yourproxy:port
然后source .bashrc,过一会生效
上面的方法是一次性的,想要永久生效需要在/etc/environment下添加
http_proxy= http://yourproxy:port
https_proxy= http://yourproxy:port
ftp_proxy= http://yourproxy:port
socks_proxy= http://yourproxy:port
然后重启生效
附. 区别:
• .bashrc 文件:
• 范围: 仅适用于当前用户的交互式 shell 会话。
• 生效方式: 需要重新加载 .bashrc 或启动新的终端会话。
• 用途: 通常用于个性化用户 shell 环境,如设置别名、环境变量等。
• /etc/environment 文件:
• 范围: 适用于整个系统的所有用户,包括登录界面和后台进程。
• 生效方式: 需要重新启动系统或重新登录。
• 用途: 适用于系统范围的环境变量设置,如全局代理配置等。
看环境变量里代理是否设置成功
env | grep -i proxy 或者 export | grep -i proxy
附. -i是ignore case
2. 修改kernel config
标准方式
通过UI窗口修改,make menuconfig,输入''进入搜索模式,输入一个config比如CONFIG_DEBUG_INFO,根据结果找到图形界面的设置路径,进入路径修改,保存退出
直接修改文件
修改.config文件,可能会不生效,因为config直接可能存在依赖关系,make之后可能会被覆盖
3. ubuntu图形界面
图形界面消失
如果开机只有tty,需要重新安装图形界面,然后重启即可
sudo apt-get install --reinstall ubuntu-desktop
图形和字符界面切换
设置默认开机模式
cmd | content |
---|---|
systemctl set-default multi-user.target | "默认进入字符界面" |
systemctl set-default graphical.target | "默认进入图形界面" |
4. 使用date指令修改系统时间重启后失效的问题
原因
Linux中有硬件时钟和系统时钟两种。硬件时钟:存储在主板上CMOS里,关机后该时钟依然运行,主板的电池为它供电,嵌入式设备有一个RTC模块,硬件时钟即RTC时钟。系统时钟是软件时钟,软件启动后去读取硬件时钟,然后独立运行。
date命令修改的是系统时钟,所以重启后会失效
解决方案
date命令修改时间后,将系统时间同步给硬件时间,这样重启后就不会失效了
date MMDDhhmm
hwclock -uw
5. sudo apt update error: "Release file is not yet valid"
检查系统时间,切换到正确的时间里
6. 如何用Docker搭建nginx文件服务器
https://blog.csdn.net/chenhui2313896/article/details/123731559
docker容器重命名
docker rename mynginx myrenamednginx
7. 如何删除文件中包含关键字的那一行
Grep -v keyword oldfile > newfile
-v, select non-matching lines
8. 编译glic库
先参考
Glibc编译过程总结 https://blog.csdn.net/xiaoshixiu/article/details/122738836
9. sudo apt install make提示没有这个package
可能是因为系统缺少了必要的软件源或软件包索引信息
先更新软件包索引:
sudo apt update
然后再尝试安装
10.linux下制作静态库
https://www.yanbinghu.com/2019/07/10/23906.html
11. ubuntu下安装了多个kernel
开机时可能会在GNU GRUB界面等待选择使用哪一个kernel
查看已经安装的内核版本
dpkg --list | grep linux-image
删除不需要的内核
sudo apt-get purge linux-image-X.X.XX-generic
12. linux开启后提示"welcome to emergency mode! "
产生原因
因为在 /etc/fstab 写入了光盘自动挂载,但开机有没有挂载成功导致的。
解决办法
修改/etc/fstab,注释掉不正确的内容即可
13. 如何让vmlinux携带debug info
在kernel config中打开
# CONFIG_DEBUG_INFO_NONE is not set
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y
14. 打印不全
recovery: 29 output lines suppressed due to ratelimiting
echo 0 > /proc/sys/kernel/printk_ratelimit
echo 0 > /proc/sys/kernel/printk_ratelimit_burst
printk_ratelimit 表示时间间隔,printk_ratelimit_burst 表示频次间隔。默认情况下 printk_ratelimit 的值是 5 ,printk_ratelimit_burst 的值是 10。即指定的打印在每5秒的时间里最多只能打印10次。都设置为0会取消限制。