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

再参考
glibc编译方法 https://huaweicloud.csdn.net/635640b9d3efff3090b5c474.html?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~activity-1-121197932-blog-122738836.235^v43^pc_blog_bottom_relevance_base9&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~activity-1-121197932-blog-122738836.235^v43^pc_blog_bottom_relevance_base9&utm_relevant_index=2

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会取消限制。

posted @ 2024-05-29 16:54  奋然  阅读(36)  评论(0编辑  收藏  举报