zoukankan      html  css  js  c++  java
  • Debian常用操作


    0 Debian镜像下载

    Debian镜像下载提供的下载方式有iso-dvdbt-dvdjigdo-dvd ……,这里介绍jigdo方式下载。

    1 jigdo介绍

    Jigdo需要先下载一个索引文件,然后读取这个索引,下载所有需要的deb包和其它文件,最后再用mkisofs
    成一个完整的ISO光盘镜像。这样做的好处就是,如果你已经有了一个老版本的Debian光盘映像,新版出了之
    后,你可以不用重新下载新的,而可以直接用Jigdo在旧版本的基础上下载一些更新后的文件(算是增量更新)
    最后生成一个新的镜像,节省大量时间。也可以选择iso镜像进行直接下载。

     

    2 安装jigdo

    官方网站为http://atterer.org/jigdo/DebianUbuntu用户可直接从官方仓库安装。
    # apt-get install jigdo-file -y
    # mkdir -p dvd && cd dvd/
    # jigdo-lite

     

    3 下载镜像

    (1) 它会问你要一个'.jigdo'文件,这就是它所需要的索引文件,jigdo不支持https方式下载,只支持http方式
    wps1
    http://mirrors.aliyun.com/debian-cd/11.0.0/amd64/jigdo-dvd/debian-11.0.0-amd64-DVD-1.jigdo
    wps2
    补充: 官方只有最新的镜像(https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/),没有之前的镜像,如果要下载之前的
    Debian版本,可以访问地址
    https://cdimage.debian.org/cdimage/archive/

    (2) 让我输入旧镜像的路径,因为是第一次下载,跳过即可
    wps3
    注意: 如果根据旧镜像下载,一定要把镜像的架构、光盘格式(CDDVD)以及编号对上,比如使用debian-8.11.0-amd64-DVD-3.iso
    的旧镜像升级到11.0.0版本,就用debian-11.0.0-amd64-DVD-3.jigdo
    ,不然下载的时候就会出现错误。

    (3) 提供一个Debian镜像站的地址,找一个离你这里网络较快的Debian镜像站
    http://mirrors.aliyun.com/debian/
    wps4

    (4) 接下来Jigdo就正式下载镜像了,你会看到jigdo会一个个的wget所需要的软件包,完成之后他会自动利用
    mkisofs将下载到的文件合成为一个完整的ISO镜像,并进行校验
    wps5

     

    4 版本对应

    参考网站: https://baike.baidu.com/item/Debian/748667?fr=aladdin
    8 Jessie9 stretch10 Buster11 Bullseye
    12 Bookworm

    1 修改语言

    1 查看当前语言

    # locale <=> localectl # 显示当前使用的语言字符集
    # locale -a #
    查看系统可用的语言环境
    wps6

     

    2 修改语言(方法一,推荐)

    (1) 修改/etc/locale.gen文件,为系统增加English语言包
    # localectl set-locale en_US.UTF-8
    (2) 修改/etc/default/locale文件,指定当前默认语言环境并生效
    # sed -i 's|LANGUAGE=zh_CN:zh|LANGUAGE=en_US:en|' /etc/default/locale
    #
    source /etc/default/locale

     

    3 修改语言(方法二)

    # env | grep LANG
    # export LANG=en_US.UTF-8
    # dpkg-reconfigure locales

    (1) 选中en
    _US.UTF-8 UTF-8
    上下键: 连续内容上下移动光标 tab: 不连续内容移动光标 space: 选中内容,确认
    wps7

    (2) 选中en_US.UTF-8后保存
    wps8

    (3) 修改/etc/default/locale文件,指定当前默认语言环境并生效
    # sed -i 's|#LANGUAGE="zh_CN:zh"|LANGUAGE=en_US:en|' /etc/default/locale
    # source /etc/default/locale

     

     

    4 查看当前语言

    wps9 

    2 vim编辑器

    1 Debian安装完成后默认的vi编辑器存在缺陷,编辑文件时使用不正常
    # apt-get install vim -y

    2 Debianvim右键进入visual模式解决方法
    # vim /usr/share/vim/vim82/defaults.vim +82
    # mouse=a改为mouse
    -=a

    3 添加网卡

    1 查看当前的网卡名为ens33

    wps10 

     

    2 添加网卡(注意: 只有网卡名前加auto的网卡才会生效)

    # cat >> /etc/network/interfaces << EOF
    # The primary network interface
    #allow-hotplug ens33
    auto ens33
    iface ens33 inet static
      address 10.0.0.102/24
      gateway 10.0.0.253
    EOF

     

    3 添加dns解析

    # cat > /etc/resolv.conf << EOF
    search 0.0
    nameserver 223.5.5.5
    nameserver 223.6.6.6
    EOF

     

    4 重启网卡

    # systemctl restart networking.service
    #
    ip addr
    wps11

     

    5 使用xshell 5连接

    (1) 连接时报错
    wps12
    (2) 原因
    xshell 5版本太低了
    (3) 解决办法
    使用xshell 7
    进行连接

    4 添加apt

    参考文档: https://mirrors.tuna.tsinghua.edu.cn/help/debian/
    # > /etc/apt/sources.list

    # cat
    > /etc/apt/sources.list << EOF
    deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
    deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
    deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
    deb http://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
    EOF

    #
    apt-get update

    5 Debian日常使用

    5.1 DebianCentos的关系

    没什么关系。Debian的版本命名更好玩一些,以电影<玩具总动员>里的人物命名。

    5.2 DebianUbuntu的关系

    Ubuntu是基于Debian的,与Debian使用相同的deb软件包格式,可以安装绝大多数为Debian编译的软件包,
    虽然不能保证完全兼容,但大多数情况是兼容的。
    https://zh.wikipedia.org/wiki/Ubuntu

    5.3 常用服务配置文件路径

    服务

    Debian

    网卡配置文件

    /etc/network/interfaces

    DNS配置文件

    /etc/resolv.conf

    软件源配置文件

    /etc/apt/sources.list

    5.4 查看系统版本号

    root@debian-11:~# uname -a
    Linux debian-11 5.10.0-8-amd64 #1 SMP Debian 5.10.46-4 (2021-08-03) x86_64 GNU/Linux
    root@debian-11:~# cat /etc/debian_version
    11.0

    5.5 创建用户

    1 useradd默认不创建家目录,需要手动创建并更改权限
    wps13
    wps14
    再为用户创建密码就可以远程登录了
    # passwd 
    liuchang

    2 adduser自动创建家目录
    wps15

    5.6 修改运行级别

    wps16
    # systemctl get-default
    # systemctl set-default multi-user.target

    (1) 使用了 Systemd,就不需要再用init了。Systemd 取代了initd,成为系统的第一个进程(PID等于1),其他进
    程都是它的子进程。每一个 Unit 都有一个配置文件,告诉 Systemd 怎么启动这个Unit
    (2) Systemd 默认从目录/etc/systemd/system/读取配置文件。但是,里面存放的大部分文件都是符号链接,指向
    目录/usr/lib/systemd/system/,真正的配置文件存放在指向的那个目录。systemctl enable命令用于在上面两个目
    录之间,建立符号链接关系。
    (3) 
    默认的 RunLevel(在/etc/inittab文件设置)现在被默认的 Target 取代,位置是/etc/systemd/system/default.target,通常符号链接到graphical.target(图形界面)或者multi-user.target(多用户命令行)。
    (4) 启动脚本的位置,以前是/etc/init.d目录,符号链接到不同的 RunLevel 目录 (比如/etc/rc3.d/etc/rc5.d等)
    ,现在则存放在/lib/systemd/system/etc/systemd/system目录。
    (5) 配置文件的位置,以前init进程的配置文件是/etc/inittab,各种服务的配置文件存放在/etc/sysconfig目录。现
    在的配置文件主要存放在/lib/systemd目录,在/etc/systemd目录里面的修改可以覆盖原始设置。
    (6) Target 与 传统 RunLevel 的对应关系如下
    wps17
    参考文档:
    http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html

    5.7 创建rc.local文件

    # cat >> /lib/systemd/system/rc-local.service << EOF
    [Install]
    WantedBy=multi-user.target
    Alias=rc-local.service
    EOF

    # systemctl daemon-reload
    # systemctl enable rc-local
    Created symlink /etc/systemd/system/rc-local.service /lib/systemd/system/rc-local.service.
    Created symlink /etc/systemd/system/multi-user.target.wants/rc-local.service /lib/systemd/system/rc-local.service.

    # cat > /etc/rc.local << EOF
    #!/bin/bash
    echo "test rc.local " > /tmp/rctest.log
    EOF

    # chmod +x /etc/rc.local

    5.8 防火墙和SElinux

    Debian默认没有SElinux
    防火墙默认没有任何规则

    5.9 动态添加删除IP地址

    1 网卡上增加一个IP

    # ifconfig ens33:02 10.0.0.103 netmask 255.255.255.0

     

    2 删除网卡的第二个IP地址

    # ip addr del 10.0.0.103/24 dev ens33:02

    5.10 .bash.rc默认注释了命令别名

    # cat >> /etc/profile << EOF
    export LS_OPTIONS='--color=auto'
    eval "$(dircolors)"
    alias ls='ls $LS_OPTIONS'
    alias ll='ls $LS_OPTIONS -l'
    alias l='ls $LS_OPTIONS -lA'
    alias rm='rm -i'
    alias cp='cp -i'
    alias mv='mv -i'
    EOF

    # source /etc/profile

    5.11 默认没有rsync

    # apt-get install rsync -y
    : apt 安装后会有 init.d systemd 启动脚本

    #!/bin/bash
    lsb_functions="/lib/lsb/init-functions"
    if test -f $lsb_functions; then
    . $lsb_functions
    fi

    5.12 SSH 默认不允许 root 远程登录

    # sed -i 's|#PermitRootLogin prohibit-password|PermitRootLogin yes|' /etc/ssh/sshd_config
    # systemctl restart ssh.service

    6 Debian软件包和Centos软件包的区别

    CentOS Red Hat 使用 yum 安装,Debian ubnutu 使用 apt 工具。

    6.1 apt相关的文件

    /etc/apt/sources.list

    设置软件包的获取来源

    /etc/apt/apt.conf.d/

    apt的各种配置文件

    /var/cache/apt/archives/

    存放已经下载的软件包

    /var/cache/apt/archives/partial/

    存放正在下载的软件包

    /var/lib/apt/lists/

    存放已经下载的软件包详细信息

    /var/lib/apt/lists/partial/

    存放正在下载的软件包详细信息

     

     

    6.2 apt-get子命令

    update

    更新软件包列表

    upgrade

    更新系统中的所有软件包

    install

    安装软件包

    remove

    卸载软件包

    autoremove

    仅删除不需要再次下载的软件包

    purge

    彻底删除软件包(包括配置文件)

    source

    下载源代码

    build-dep

    自动下载安装编译某个软件所需要的软件包

    dist-upgrade

    升级整个发行版

    clean

    删除本地缓存中所有的升级包

    autoclean

    删除本地缓存中无用的软件包

    check

    检查是否存在有问题的依赖关系

    6.3 apt-get命令选项

    -d,--download-only

    仅下载,不安装

    -f,--fix-broken

    修复依赖问题(用于 install remove 子命令)

    -m,--ignore-missing,--fix-missing

    忽律缺失的软件包,遇到无法下载的软件包,自动忽略

    --no-download

    禁止下载软件包,-m 配合,可以使 apt 只使用已经下载的软件包

    -q,--quiet

    静默模式,输出的信息适合做日志

    -s,--simulate,--just-print

    模拟测试,不做实际操作,不改变系统

    -y,--yes,--assume-yes

    在系统提问时,自动应答 yes

    -u,show-upgraded

    显示已升级的软件包

    -V,--verbose-versions

    显示已安装和升级的软件包的完整版本号

    -b,--compile,--build

    在源码包下载完成后进行编译

    --ignore-hold

    忽略被保留的软件包

    --no-upgrade

    不要升级软件包

    --force-yes

    强制回答 yes

    --print-uris

    仅答应软件包地址,不安装

    --purge

    彻底删除,包括配置文件

    --reinstall

    重新安装软件包

    6.4 apt-cache命令

    功能: 搜索某个软件包的名字或显示某个软件包的详细信息

    搜索mariadb-server的软件包

    apt-cache search mariadb-server

    搜索mariadb-server软件包的详细版本号

    apt-cache show mariadb-server

    6.5 软件包操作对比

    操作内容

    CentOS

    Debian

    基本信息

    软件包后缀

    *.rpm

    *.deb

    软件源配置文件

    /etc/yum.conf

    /etc/apt/sources.list

    安装,删除,升级软件包

    更新软件包列表

    yum makecache fast

    apt-get update

    从软件仓库安装软件

    yum install package

    apt-gen install package

    安装一个已下载的软件包

    yum install pkg.rmp

    rpm -ivh pkg.rpm

    dpkg -i pkg.deb

    dpkg --install pkg.deb

    删除软件包[仓库源]

    [删除包、依赖、配置信息]

    # yum remove package

    [显示软件包的依赖信息]

    yum deplist package

    [删除包、依赖,不删除配置文件]

    apt-get remove package

    [删除包、依赖,配置文件]

    apt-get purge package

    apt-get remove --purge package

    [显示软件包的依赖信息]

    apt-cache depends package

    删除软件包[包管理器]

    [删除包、配置信息,被依赖时不删除]

    rpm -e package

    [删除包、配置信息,忽略依赖]

    rpm -e --nodeps package

    [删除包、依赖、配置信息]

    rpm -qa | grep package |xargs -i rpm -e --nodeps {}

    [查看已被安装包的依赖]

    rpm -qR package

    [查看未被安装包的依赖]

    rpm -qpR path_to_rpm_file

    [删除包,不删除配置文件,被依赖时不删除]

    dpkg -r package

    [删除包、配置文件,被依赖时不删除]

    dpkg -P package

    [删除包、配置文件,忽略依赖]

    dpkg --ignore-depends=<依赖包1>,<依赖包2> -P package

    [查看已被安装、未被安装包的依赖]

    apt install apt-rdepends

    apt-rdepends package

    [查看未被安装包的依赖]

    dpkg --info path_to_deb_file

    升级指定软件包

    yum update package

    rpm -Uvh package.rpm

    apt-get upgrade package

    dpkg --update-avail package.dep

    软件包信息

    获取某软件包的信息

    yum search package

    apt-cache search package

    获取所有已经安装的软件

    yum list installed

    rpm -qa | grep package

    dpkg -l | grep package

    dpkg --get-selections | grep package

    获取某个已经安装软件包的信息

    yum info package

    rpm -qi package

    dpkg --status packages

    列出某个已安装软件包所包含的文件列表

    rpm -ql package

    dpkg -S package

    6.6 示例: 安装和卸载nginx

    1 安装nginx
    # apt-get update
    # apt-get install nginx -y

    2 卸载nginx
    (1) 关闭nginx服务
    # systemctl stop nginx.service

    (2) 卸载nginx,包括配置文件
    # apt-get purge nginx -y

    (3) 列出与nginx相关的依赖包
    # dpkg --get-selections | grep nginx <=> dpkg -l | grep nginx
    wps18

    (4) 卸载与nginx相关的依赖包,包括配置文件
    # apt-get --purge remove nginx-common -y

    (5) 移除全部不使用的软件包
    # apt-get autoremove -y

    (6) 全局查找与nginx相关的文件
    # find / -type d -name nginx*
    # rm -rf file

    7 软件仓库

    仓库服务器地址: 10.0.0.102

    验证服务器地址: 10.0.0.105

    7.1 deb软件仓库配置

    1 编译安装nginx

    (1) 创建用户
    # groupadd nginx -g 888
    # useradd nginx -u 888 -g 888 -M -s /sbin/nologin

    (2) 安装依赖
    # apt-get -y install build-essential libpcre3 libpcre3-dev zlib1g-dev openssl libssl-dev# mkdir -p /data/mydeb/
    # wget -q http://nginx.org/download/nginx-1.18.0.tar.gz
    # tar -xzf nginx-1.18.0.tar.gz
    # cd nginx-1.18.0/
    # ./configure --user=nginx --group=nginx --prefix=/opt/nginx --with-http_stub_status_module
    --with-http_ssl_module
    # make && make install
    # egrep -v "#|^$" /opt/nginx/conf/nginx.conf.default >/opt/nginx/conf/nginx.conf

    (3) 修改配置文件
    # cat /opt/nginx/conf/nginx.conf
    worker_processes  1;
    user nginx;
    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
        server {
            listen       80;
            server_name  localhost;
            location / {
                autoindex             on;
                autoindex_exact_size  off;
                autoindex_localtime   on;
                root                  /data/mydeb/;
            }
        }
    }

    # /opt/nginx/sbin/nginx -t
    # /opt/nginx/sbin/nginx

     

    2 只下载不安装软件包

    # apt-get clean
    # ls -lh /var/cache/apt/archives/
    # apt-get install -d apache2 -y
    # ls -lh /var/cache/apt/archives/
    wps19

     

    3 移动自定义的 DEB 安装包到仓库

    # mv /var/cache/apt/archives/*.deb /data/mydeb/

     

    4 更新仓库信息索引

    # apt-get install dpkg-dev -y
    # cd /data/mydeb
    # dpkg-scanpackages ./ /dev/null | gzip -9c > Packages.gz
    wps20

    # 查看索引压缩包内容
    # zcat Packages.gz

     

    5 在页面中查看

    http://10.0.0.102/
    wps21

    7.2 客户机测试

    1 添加源
    # echo 'deb [trusted=yes] http://10.0.0.102:80/ /' > /etc/apt/sources.list

    2 更新源
    # apt-get clean
    # apt-get update
    wps22

    3 安装测试
    # apt-get install apache2 -y
    wps23
    ……

    7.3 rsync同步中科大镜像源

    : 推荐使用什么包再复制什么包过去,不然可能会同步很多不需要的文件,占用磁盘空间。
    官方文档: https://mirrors.ustc.edu.cn/help/rsync-guide.html

    1 列出 /repo/ 
    路径下的目录列表
    # rsync rsync://rsync.mirrors.ustc.edu.cn/repo/debian/

    2 同步源
    # rsync -azP rsync://rsync.mirrors.ustc.edu.cn/repo/debian /data/mydeb/

  • 相关阅读:
    显示器面板参数
    解决SQL Server 2008安装时提示:重新启动计算机 失败
    SQL Server 的 TSQL 语句的性能评估方法
    判断字母大小写
    linux发展史简介
    下载route命令源码
    TCP糊涂窗口综合症
    QT显示中文
    TCP四个定时器 之 TCP坚持定时器
    android 去ListView滑动阴影
  • 原文地址:https://www.cnblogs.com/LiuChang-blog/p/15260458.html
Copyright © 2011-2022 走看看