Linux手记

1. 常用的配置文件

文件作用
/etc/profile系统级别的shell配置文件,它包含了系统中所有用户的默认环境变量和系统级别的全局配置信息
/etc/apt/apt.conf配置APT(Advanced Package Tool)软件包管理器的行为,包括代理等
/etc/apt/sources.list配置用于更新和安装软件包的软件源列表
/etc/wgetrcwget命令的全局配置文件
/etc/hostname配置当前计算机的主机名
/etc/ssh/sshd_configSSH服务的配置文件 配置比如 PermitRootLogin:是否允许root用户通过SSH登录,可以设置为yes或no。

如何查看某个环境变量在哪里设置的:

grep -rnw '/etc' -e "PATH"

2. gcc

1.安装

  1. 输入以下命令更新软件包列表:

    sudo apt-get update
    
  2. 安装gcc-8和g+±8:

    sudo apt-get install gcc-8 g++-8
    
  3. 确认安装是否成功:

    gcc-8 --version
    g++-8 --version
    

    如果成功安装,将会显示gcc和g++的版本号。

  4. 如果需要将gcc-8设置为默认的gcc版本,可以使用以下命令:

    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 100
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 100
    sudo update-alternatives --config gcc
    sudo update-alternatives --config g++
    

    这将会将gcc-8和g+±8设置为默认的gcc和g++版本。

2.编译选项

  • -c:表示只编译不链接,生成目标文件。
  • -std=gnu11:指定使用GNU C11标准。
  • -fgnu89-inline:启用GNU89内联语义。
  • -g:生成调试信息。
  • -O2:启用优化级别2。
  • -fdump-rtl-expand:生成RTL扩展信息。
  • -Wall:启用所有警告。
  • -Wwrite-strings:启用字符串字面量只读警告。
  • -Wundef:启用未定义宏警告。
  • -Werror:将所有警告视为错误。
  • -fmerge-all-constants:启用常量合并优化。
  • -frounding-math:启用浮点数舍入优化。
  • -fno-stack-protector:禁用堆栈保护。
  • -fno-common:禁用共享未初始化数据段。
  • -Wp,-U_FORTIFY_SOURCE:禁用_FORTIFY_SOURCE宏定义。
  • -Wstrict-prototypes:启用函数原型检查。
  • -Wold-style-definition:启用旧式函数定义警告。
  • -fmath-errno:启用数学库错误处理。
  • -D_TIME_BITS=64:定义_TIME_BITS宏为64。
  • -D_FILE_OFFSET_BITS=64:定义_FILE_OFFSET_BITS宏为64。
  • -fPIE:生成可执行文件时使用位置独立代码。
  • -fcf-protection:启用控制流完整性保护,用于防止代码被篡改。
  • -DTZDIR:定义宏TZDIR,指定时区数据库文件的路径。
  • -DTZDEFRULES:定义宏TZDEFRULES,指定默认的时区规则。
  • -DTM_GMTOFF:定义宏TM_GMTOFF,用于表示本地时间与UTC的偏移量。
  • -DTM_ZONE:定义宏TM_ZONE,用于表示本地时区的名称。
  • -DHAVE_GETTEXT:定义宏HAVE_GETTEXT,表示系统支持国际化(gettext)功能。
  • -DUSE_LTZ:定义宏USE_LTZ,表示使用本地时区。
  • -D_ISOMAC:定义宏_ISOMAC,表示使用ISO C标准的宏定义。
  • -DTZ_DOMAIN:定义宏TZ_DOMAIN,指定时区域名。
  • -include:包含指定的头文件。
  • -Wno-maybe-uninitialized:禁止警告可能未初始化的变量。
  • -Wno-unused-variable:禁止警告未使用的变量。
  • -I:指定包含文件的搜索路径。

2. Docker

  1. 本地加载镜像 docker load -i xxx.tar
  2. 删除所有已经退出的容器
docker rm $(docker ps -a -q -f status=exited)

另外 删除所有没有被使用的临时镜像(REPOSITORY和TAG都为<none>的镜像)

 docker rmi $(docker images -f "dangling=true" -q)
  1. 将容器提交为镜像
docker commit <CONTAINER_ID> <IMAGE_NAME>
  1. 将镜像导出为tar包
docker save -o myimage.tar myimage
  1. 将容器导出为tar包
docker export -o mycontainer.tar mycontainer

docker save 保存的文件包含完整的镜像历史记录和元数据,而 docker export 保存的文件只包含容器的文件系统和元数据。
6. 将容器中的文件拷贝到宿主机上

docker cp <container_id>:<path_to_file> <path_on_host_machine>
docker cp my_container:/app/data.txt /home/user/data.txt
# 如果需要拷贝整个目录则加-r
docker cp -r my_container:/app/data /home/user
  1. 为docker配置代理
mkdir /etc/systemd/system/docker.service.d
touch /etc/systemd/system/docker.service.d/http-proxy.conf
# 写入:
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080/"
Environment="HTTPS_PROXY=https://proxy.example.com:8080/"
Environment="NO_PROXY=localhost,127.0.0.1"
#重新加载 Docker 服务配置
systemctl daemon-reload
#重新启动 Docker 服务
systemctl restart docker

代理地址中如果有特殊字符情况会比较复杂 不同docker版本对特殊字符的支持还不一样,有的需要转为以%+数字代表的URL编码,有的则不需要?
可以确定的是任何版本的docker,下划线 _ 都是不需要转为URL编码的

3. k8s

  1. 查看一个pod的详细信息
kubectl describe pod <pod名称>

记录工作中遇到的linux相关知识,方便自己记忆和查阅,持续更新中~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值