• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

Debian常用操作

开发技术 开发技术 5小时前 2次浏览

 

 

 

 

 

 

Debian常用操作

 

version – debian-11.0.0-amd64

 

 

 

 

 

 

 

作者

刘畅

时间

20210907

 

 

 

 

Debian是精简的Linux发行版,有着干净的作业环境,拥有庞大的包库。

Debian 系统常用于制作docker应用镜像的基础镜像使用,因为它体积小,相比使用Centos

制作的镜像,体积要小很多。

 

 

 

 

 

 

 

 

 

目录

0
Debian镜像下载
1

1 修改语言 2

2 vim编辑器 5

3 添加网卡 5

4 添加apt 6

5 Debian日常使用 7

5.1 DebianCentos的关系 7

5.2 DebianUbuntu的关系 7

5.3 常用服务配置文件路径 7

5.4 查看系统版本号 7

5.5 创建用户 7

5.6 修改运行级别 8

5.7 创建rc.local文件 9

5.8 防火墙和SElinux 9

5.9 动态添加删除IP地址 9

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

5.11 默认没有rsync 10

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

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

6.1 apt相关的文件 10

6.2
apt-get子命令
11

6.3
apt-get命令选项
11

6.4
apt-cache命令
11

6.5 软件包操作对比 11

6.6 示例: 安装和卸载nginx 12

7 软件仓库 13

7.1 deb软件仓库配置 13

7.2 客户机测试 15

7.3 rsync同步中科大镜像源 16

 



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方式
Debian常用操作
http://mirrors.aliyun.com/debian-cd/11.0.0/amd64/jigdo-dvd/debian-11.0.0-amd64-DVD-1.jigdo
Debian常用操作
补充: 官方只有最新的镜像(https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/),没有之前的镜像,如果要下载之前的
Debian版本,可以访问地址
https://cdimage.debian.org/cdimage/archive/

(2) 让我输入旧镜像的路径,因为是第一次下载,跳过即可
Debian常用操作
注意: 如果根据旧镜像下载,一定要把镜像的架构、光盘格式(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/
Debian常用操作

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

 

4 版本对应

参考网站: https://baike.baidu.com/item/Debian/748667?fr=aladdin
8
Jessie
9
stretch
10
Buster
11
Bullseye
12 Bookworm

1 修改语言

1 查看当前语言

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

 

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: 选中内容,确认
Debian常用操作

(2) 选中en_US.UTF-8后保存
Debian常用操作

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

# source /etc/default/locale

 

 

4 查看当前语言

Debian常用操作 

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

Debian常用操作 

 

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
Debian常用操作

 

5 使用xshell 5连接

(1)
连接时报错
Debian常用操作
(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默认不创建家目录,需要手动创建并更改权限
Debian常用操作
Debian常用操作
再为用户创建密码就可以远程登录了
# passwd 
liuchang

2 adduser自动创建家目录
Debian常用操作

5.6 修改运行级别

Debian常用操作
# 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 的对应关系如下

Debian常用操作
参考文档:
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
防火墙和SE
linux

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

Debian常用操作

(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/
Debian常用操作

 

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

Debian常用操作

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

 

5 在页面中查看

http://10.0.0.102/
Debian常用操作

7.2
客户机测试

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


2 更新源
#
apt-get clean

# apt-get
update

Debian常用操作

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

Debian常用操作
……

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/


程序员灯塔
转载请注明原文链接:Debian常用操作
喜欢 (0)