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/

原文地址:https://www.cnblogs.com/LiuChang-blog/p/15260458.html