Debian 12 系统安装及个人常用配置分享

版本变更

20241017 更改添加系统环境变量的方式

  • 重要: 在后续配置其他软件发现踩坑了,强烈建议各位有按照教程操作的,按照以下步骤修复
    • 原因
      原3.2中【可选】部分将 /usr/sbin 添加到系统环境变量方式
      cat >> ~/.bashrc <<EOF
      PATH=$PATH:/usr/sbin
      export PATH
      EOF
      
      在执行命令会将PATH=$PATH:/usr/sbin部分的变量解析,导致添加到~/.bashrc文件的内容与预期不符
    • 建议操作
      删除文件被添加的部分并重新使用以下命令重新添加
      cat >> ~/.bashrc <<'EOF'
      PATH=$PATH:/usr/sbin
      export PATH
      EOF
      
    • 总结
      使用单引号可以防止 Shell 在传递给 <<EOF 之前解析变量值

系统安装

下载 ISO

https://www.debian.org/distrib/

在“下载一个安装映像”中的“较庞大的 完整安装映像:包含了更多的软件包,以便在无法连上互联网的计算机上进行安装。”选择“64 位 PC DVD-1 iso”下载

安装时需要注意的

可以参考的链接

  1. 使用界面安装
  2. 语言选择,选择 English,Location 选择 China
  3. 设定 root 账号密码,并按提示新建一个账号(普通用户)并设置密码
  4. 软件包管理,可以选择本地镜像源(如果使用 DVD 安装默认将 cdrom 作为 source,也需要配置镜像,否则可能因依赖关系报错,例如 snmp
  5. 组件:默认选择 GNOME 桌面环境(需要取消)和 Standard System Utilities(保持勾选),勾选 SSH server

系统配置

配置软件源

安装的时候没有选择网络镜像,现在系统只有 cd 源,可以访问 Debian worldwide mirror sites 查看选择可用的镜像站点。

中国可以使用的源如下(可能会有变化),最好使用 ping 比较一下延迟

国家/地区 站点 硬件架构
ftp.cn.debian.org /debian/ amd64 arm64 armel armhf i386 mips mips64el mipsel ppc64el riscv64 s390x
mirror.lzu.edu.cn /debian/ amd64 arm64 armel armhf i386 mips mips64el mipsel ppc64el riscv64 s390x
mirror.nju.edu.cn /debian/ amd64 arm64 armel armhf i386 mips mips64el mipsel ppc64el riscv64 s390x
mirror.nyist.edu.cn /debian/ amd64 arm64 armel armhf i386 mips mips64el mipsel ppc64el riscv64 s390x
mirrors.163.com /debian/ amd64 arm64 i386 mips64el ppc64el riscv64
mirrors.bfsu.edu.cn /debian/ amd64 arm64 armel armhf i386 mips mips64el mipsel ppc64el riscv64 s390x
mirrors.jlu.edu.cn /debian/ amd64 arm64 armel armhf i386 mips mips64el mipsel ppc64el riscv64 s390x
mirror.sjtu.edu.cn /debian/ amd64 arm64 armel armhf i386 mips mips64el mipsel ppc64el riscv64 s390x
mirrors.neusoft.edu.cn /debian/ amd64 arm64 armel armhf i386 mips mips64el mipsel ppc64el riscv64 s390x
mirrors.qvq.net.cn /debian/ amd64 arm64 armel armhf i386 mips mips64el mipsel ppc64el riscv64 s390x
mirrors.tuna.tsinghua.edu.cn /debian/ amd64 arm64 armel armhf i386 mips mips64el mipsel ppc64el riscv64 s390x
mirrors.ustc.edu.cn /debian/ amd64 arm64 armel armhf i386 mips mips64el mipsel ppc64el riscv64 s390x
mirrors.zju.edu.cn /debian/ amd64 arm64 armel armhf i386 riscv64

上海交大源 为例

  1. 这时候没有 sudo,使用 su 切换到 root 用户

    su - root
    

    接下来输入安装时 root 用户的密码

  2. 备份

    cp /etc/apt/sources.list /etc/apt/sources.list.bak
    
  3. 修改 /etc/apt/sources.list 文件如下

    # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
    deb https://mirror.sjtu.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
    # deb-src https://mirror.sjtu.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
    
    deb https://mirror.sjtu.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
    # deb-src https://mirror.sjtu.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
    
    deb https://mirror.sjtu.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
    # deb-src https://mirror.sjtu.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
    
    # 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
    # deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
    deb-src https://mirror.sjtu.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
    
  4. 镜像配置好后更新下系统,如果更新时提示 SSL 错误,可以先将 sources.list 中的 https 改为 http,升级完成后再改回去

    apt update && apt upgrade
    

其他常见跟镜像有关的命令

sudo apt update #更新源
sudo apt upgrade #更新已安装的包
sudo apt dist-upgrade #升级系统
sudo apt clean && sudo apt autoclean #清理下载文件的存档

关于包管理工具

命令功能 / 系统 Darwin (macOS) FreeBSD Debian/Ubuntu RHEL(dnf = yum)
搜索和查找软件包 brew search pkg search apt list yum list
查看软件包信息 brew info pkg info apt show yum info
安装 brew install pkg install apt install yum install
删除 brew uninstall/remove/rm pkg delete/remove apt remove yum remove
删除不在使用的软件包 brew autoremove pkg autoremove apt autoremove yum autoremove
更新 repo 列表 brew update pkg update apt update yum makecache
更新软件包 brew upgrade pkg upgrade apt upgrade yum upgrade/update
清理缓存临时文件等 brew cleanup pkg clean -a apt autoclean yum clean all

需要注意不要做以下操作

  • 在 “/etc/apt/sources.list” 中不要包含 testingunstable
  • 在 “/etc/apt/sources.list” 里不要在标准的 Debian 中混合使用其它非 Debian 的档案库,例如 Ubuntu。
  • 不要建立 “/etc/apt/preferences”。
  • 不了解会造成的全部影响,就不要通过配置文件改变软件包管理工具的默认行为。
  • 不要使用 “dpkg -i <random_package>” 安装任何软件包。
  • 绝不使用 “dpkg --force-all -i <random_package>” 安装任何软件包。
  • 不要删除或修改 “/var/lib/dpkg/” 中的文件。
  • 不要让从源码直接安装的程序覆盖系统文件。如果需要的话,将它们安装到 “/usr/local” 或 “/opt” 中。

解决默认没有安装 sudo

  1. 安装 sudo:

    apt install sudo
    
  2. 将之前创建的普通用户添加到 sudo 组,即可获得管理员权限:

    usermod -a -G sudo <username>
    

    -a = append,不改变原有附加组

  3. 检查配置文件 /etc/sudoers

    #
    # This file MUST be edited with the 'visudo' command as root.
    #
    # Please consider adding local content in /etc/sudoers.d/ instead of
    # directly modifying this file.
    #
    # See the man page for details on how to write a sudoers file.
    #
    Defaults        env_reset
    Defaults        mail_badpass
    Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
    
    # This fixes CVE-2005-4890 and possibly breaks some versions of kdesu
    # (#1011624, https://bugs.kde.org/show_bug.cgi?id=452532)
    Defaults        use_pty
    
    # This preserves proxy settings from user environments of root
    # equivalent users (group sudo)
    #Defaults:%sudo env_keep += "http_proxy https_proxy ftp_proxy all_proxy no_proxy"
    
    # This allows running arbitrary commands, but so does ALL, and it means
    # different sudoers have their choice of editor respected.
    #Defaults:%sudo env_keep += "EDITOR"
    
    # Completely harmless preservation of a user preference.
    #Defaults:%sudo env_keep += "GREP_COLOR"
    
    # While you shouldn't normally run git as root, you need to with etckeeper
    #Defaults:%sudo env_keep += "GIT_AUTHOR_* GIT_COMMITTER_*"
    
    # Per-user preferences; root won't have sensible values for them.
    #Defaults:%sudo env_keep += "EMAIL DEBEMAIL DEBFULLNAME"
    
    # "sudo scp" or "sudo rsync" should be able to use your SSH agent.
    #Defaults:%sudo env_keep += "SSH_AGENT_PID SSH_AUTH_SOCK"
    
    # Ditto for GPG agent
    #Defaults:%sudo env_keep += "GPG_AGENT_INFO"
    
    # Host alias specification
    
    # User alias specification
    
    # Cmnd alias specification
    
    # User privilege specification
    root    ALL=(ALL:ALL) ALL
    
    # Allow members of group sudo to execute any command
    %sudo   ALL=(ALL:ALL) ALL
    
    # See sudoers(5) for more information on "@include" directives:
    
    @includedir /etc/sudoers.d
    

    接下来可以切回自己的用户

关于 vim

默认自带是 vim 并不是完整版的,使用上有好多问题,需要重新安装完整版的 vim

sudo apt remove vim-common
sudo apt install vim

在使用 crontab -e 命令时注意选择 vim.basic

可以创建 ~/.vimrc 配置文件,参考如下

""""""""""""""""""""""""""""""""""""""
" vim 示例配置文件 ~/.vimrc
" by leonshaw 2024.10.12
""""""""""""""""""""""""""""""""""""""

" 编码设置释义
" vim 内部使用的字符编码方式
"set encoding=编码
"set enc=编码
" vim 当前编辑的文件的字符编码方式,保存文件时也使用
"set fileencoding=编码
"set fenc=编码
" vim 打开的文件的字符编码方式,按顺序,最前面的优先
"fileencodings 是一个用逗号分隔的列表,简写 fencs
"set fileencodings=编码
" vim 所工作的终端的字符编码方式
"set termencoding=编码

" 编码设置
set encoding=utf-8
set fileencoding=utf-8
set fencs=utf-8,gb18030,gbk,cp936,gb2312,big5
set termencoding=utf-8

" 语言设置
set langmenu=zh_CN.UTF-8
set helplang=cn

" 去掉 vi 的一致性
set nocompatible

" 显示行号
set number

" 开启语法高亮
syntax on

" 设置字体
"set guifont=Monaco:h13
" solarized 主题设置在终端下的设置
"let g:solarized_termcolors=256

" 设置不自动换行
set nowrap

" 设置以 unix 的格式保存文件(UNIX 系统下默认)
set fileformat=unix

" 自动缩进
set autoindent
set cindent

" Tab 键的宽度 = 4 个空格
set tabstop=4
" 统一缩进为 4
set softtabstop=4
set shiftwidth=4
" expandtab:缩进用空格来表示,noexpandtab:用制表符表示一个缩进
set expandtab

" 高亮显示匹配的括号
set showmatch
" 匹配括号高亮的时间(单位是十分之一秒)
set matchtime=5

" 光标移动到 buffer 的顶部和底部时保持 3 行距离
set scrolloff=3

" 启动显示状态行 (1), 总是显示状态行 (2)
set laststatus=2

" 使退格键(backspace)正常处理 indent, eol, start 等
set backspace=2
" 允许 backspace 和光标键跨越行边界
"set whichwrap+=<,>,h,l

" 可以在 buffer 的任何地方使用鼠标(类似 office 中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key

" 搜索忽略大小写
set ignorecase
" 高亮显示匹配字符(回车后)
set hlsearch
" 搜索实时高亮显示所有匹配的字符
set incsearch

" 设置当文件被改动时自动载入
"set autoread

" 突出显示当前行
set cursorline

" 打开标尺,在屏幕右下角显示当前光标所处位置(设置了 statusline 可以忽略)
set ruler
" 状态行显示的内容
"set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ENC=%{&encoding}]\ [POS=%l,%v][%p%%]\ %{strftime(\"%Y.%m.%d\ -\ %H:%M\")}
set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %l,%c%)\ %p%%

" 显示 Tab 键和行尾空格
set list
"set listchars=tab:→■,trail:■
"set listchars=tab:→▫,trail:□
set listchars=tab:→·,trail:□

还可以将 .vimrc 添加到默认用户配置文件

cp ~/.vimrc /etc/skel/.vimrc

开启 root 账号登录的方法

不建议开启,以下步骤仅供参考。

Debian 默认禁用 root SSH 密码登录(Pubkey 认证不受此限,默认启用),安装时候创建特定用户作为管理员帐号(通过 sudo 执行特权命令),启用 root 用户步骤如下:

  • 修改 root 密码(设置密码后可以通过控制台登录)
sudo passwd root
  • 修改配置文件(启用 SSH 密码登录)
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo vim /etc/ssh/sshd_config

找到下面相关配置:

# Authentication:

#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#PubkeyAuthentication yes

# Expect .ssh/authorized_keys2 to be disregarded by default in future.
#AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2

修改如下:

#PermitRootLogin prohibit-password
# 增加一句
PermitRootLogin yes

补充:

PermitRootLogin prohibit-password  #允许 root 登录,但禁止使用密码认证
可以配合使用 Pubkey 认证,默认 `PubkeyAuthentication yes`
  • 或者直接快速配置
sudo sed -i.bak "/^#PermitRootLogin/c"PermitRootLogin""yes"" /etc/ssh/sshd_config
# 或者
sudo sed -i.bak '/^#PermitRootLogin/c\PermitRootLogin yes' /etc/ssh/sshd_config
  • 重启服务生效
sudo systemctl restart ssh

网络配置

格式化网卡命名

从 Debian 9 开始,(CentOS 7 开始,Ubuntu 16.04 开始),安装好后网卡名称变成了类似 ensxxx 这种随机名称(本例为 ens32,可能是其他数字)。

  1. 编辑 grub 配置文件

    1. 手动更改

      sudo vim /etc/default/grub
      

      修改 GRUB_CMDLINE_LINUX = “” 为 GRUB_CMDLINE_LINUX = “net.ifnames = 0 biosdevname = 0”

    2. 或者直接使用 sed 编辑

      sudo sed -i "/^GRUB_CMDLINE_LINUX=""/c GRUB_CMDLINE_LINUX=\"net.ifnames=0 biosdevname=0\"" /etc/default/grub
      
  2. 更新 grub 配置文件

    sudo update-grub
    
  3. 然后编辑配置文件并重启生效

    sudo vim /etc/network/interfaces
    

    将 ensxxx 修改为 eth0

  4. 重启系统生效

    sudo reboot
    

配置固定 ip

  • 查看 IP 地址信息:
ip address
# 简写 ip a

【可选】或者使用 ifconfig(需要安装必要包,并将 /usr/sbin 添加到系统环境变量)

# 安装 net-tools
sudo apt install net-tools
# 添加环境变量供普通用户使用
echo 'PATH=$PATH:/usr/sbin' >> ~/.bashrc
echo 'export PATH' >> ~/.bashrc
# 使生效
source ~/.bashrc
echo $PATH

Debian 11 网络配置文件为:/etc/network/interfaces

默认配置使用 DHCP,安装过程并没有手动配置提示。内容如下:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug ens32       #ens32 在格式化网卡命名修改为 eth0
iface ens32 inet dhcp     #ens32 在格式化网卡命名修改为 eth0
# This is an autoconfigured IPv6 interface
iface ens32 inet6 auto    #ens32 在格式化网卡命名修改为 eth0
  • 修改 /etc/network/interfaces 配置文件为固定 ip
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface

# 如果设置的是auto,不管你插不插网线,网卡都会启用,而且运行/etc/init.d/networking restart 之后网卡能自动起来
# 如果设置的是allow-hotplug,它会在开机时启动插网线的网卡,运行/etc/init.d/networking restart之后网卡不能自动重启
# 所以建议使用auto,但是如果设置网卡为dhcp,但是又没插网线,系统在启动,或者重启网络之后,系统会一直试图通过dhcp获取ip直到超时,这会影响系统的启动,最好是使用“auto”而且为每块网卡配置好ip

#allow-hotplug eth0       # ens32 在格式化网卡命名修改为 eth0
auto eth0                 # ens32 在格式化网卡命名修改为 eth0

# 如果是DHCP
#iface eth0 inet dhcp     # ens32 在格式化网卡命名修改为 eth0

# 如果是静态地址
iface eth0 inet static    # ens32 在格式化网卡命名修改为 eth0
address 172.16.18.100
netmask 255.255.240.0
#broadcast 172.16.31.255   # 可选,上述配置了掩码
#network 172.16.16.0       # 可选,上述配置了掩码
gateway 172.16.16.1

# 这一部分是关于DNS
#dns-domain example.com
# domain 和 search 不能共存;如果同时存在,后面出现的将会被使用。
dns-search hzlti.work
dns-nameservers 223.5.5.5 8.8.8.8 #注意 debian 12 默认没有安装 resolvconf,所以需要手动在 resolv.conf 中编辑 DNS
# 或者安装 resolvconf 后,在这里配置,将自动更新 resolv.conf


# This is an autoconfigured IPv6 interface
iface eth0 inet6 auto     # ens32 在格式化网卡命名修改为 eth0

【可选】关于 DNS,如果安装 resolvconf,修改配置文件后将自动更新 resolv.conf

# 安装 resolvconf
sudo apt install resolvconf

【可选】配置多个 IP 的 /etc/network/interfaces 配置文件需要修改对应部分为这样:

auto eth0:0
iface eth0:0 inet static
    address 172.16.18.100
    netmask 255.255.255.0

auto eth0:1
iface eth0:1 inet static
    address 172.16.18.101
    netmask 255.255.255.0

【可选】添加静态路由(Linux 通用,临时,重启消失):

# route add -net <目标网络> gw <网关IP>
route add -net 10.10.11.0/24 gw 10.10.1.1

【可选】Debian 配置永久静态路由,编辑 /etc/network/interfaces 并在末尾加上:

# static routes
# up ip route add <目标网络> via <网关IP> dev <接口名>
up ip route add 10.10.11.0/24 via 10.10.1.1 dev eth0
  • 所有对编辑 /etc/network/interfaces 配置文件的修改后,都需要重启网络来生效
#重启网络
systemctl restart networking

修改主机名

  • 设置主机名:
# 修改主机名
# hostnamectl set-hostname <you hostname> --static
hostnamectl set-hostname hadoop100 --static
  • 【或者】手动编辑 /etc/hostname 文件
sudo vim /etc/hostname
# 修改为主机名 debian01
debian01
  • 编辑 /etc/hosts 文件
127.0.0.1       localhost
#127.0.1.1       debian         # 将这一行改为新主机名
127.0.1.1       hadoop100

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

其他系统配置

时区配置

# 查看时区
timedatectl | grep "Time zone"
# 设置时区
sudo timedatectl set-timezone Asia/Shanghai

配置 NTP

编辑 /etc/systemd/timesyncd.conf 文件

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it under the
#  terms of the GNU Lesser General Public License as published by the Free
#  Software Foundation; either version 2.1 of the License, or (at your option)
#  any later version.
#
# Entries in this file show the compile time defaults. Local configuration
# should be created by either modifying this file, or by creating "drop-ins" in
# the timesyncd.conf.d/ subdirectory. The latter is generally recommended.
# Defaults can be restored by simply deleting this file and all drop-ins.
#
# See timesyncd.conf(5) for details.

[Time]
#NTP=
#FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
#ConnectionRetrySec=30
#SaveIntervalSec=60

在末尾加上

NTP=ntp1.aliyun.com ntp2.aliyun.com

重启服务生效:

systemctl restart systemd-timesyncd

【可选】手动同步(需要安装必要包):

# 安装ntpdate必要包
sudo apt install ntpdate
# 手动同步
ntpdate -s ntp1.aliyun.com

查看同步状态:

timedatectl timesync-status

locale 设置

  1. 安装 locales 包

    sudo apt-get install locales
    
  2. 添加配置

    dpkg-reconfigure locales
    

    选择 en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8

  3. 查看语言

    locale
    

如何创建一个管理员账号

默认配置下,创建一个管理员账号

useradd -m -s /bin/bash -G sudo <username>
passwd <username>

-m 创建同名 home 目录

-s 指定 shell

-G 修改附加属组

删除用户

sudo userdel --remove-home <username>

虚机安装 VMware Tools

默认自动安装,查看状态如下:

# 查看版本
vmtoolsd -v

# 查看运行状态
systemctl status vmtoolsd

虚机会自动安装,如果未安装,执行如下命令安装:

apt install open-vm-tools

Shell 配置

命令自动补全忽略大小写

该配置针对 Bash,仅使用 Zsh 可以忽略。

echo 'set completion-ignore-case on' >> ~/.inputrc

ll 别名定义

一般 Linux 中默认定义了 ll 别名,但参数比较少,需要使用更加强大的 lll 别名。

Debian 默认并没有定义 ll 别名。

写入环境变量(当前用户优先执行)

bash:

echo 'alias ll="ls -lahF --color=auto --time-style=long-iso"' >> ~/.bashrc

zsh:

echo 'alias ll="ls -lahF --color=auto --time-style=long-iso"' >> ~/.zshrc

注意:仅仅针对当前用户,写入全局用户配置文件:/etc/skel/.bashrc 或者 /etc/skel/.zshrc

制作镜像模板前清理各种缓存

清理 apt 缓存

sudo apt clean && sudo apt autoclean #清理下载文件的存档

清理临时文件夹

rm -rf /tmp/*  # 清空临时文件夹

清空历史记录

#比较完整的清空历史记录
#debian/ubuntu use auth.log
rm -f /var/log/auth.log.*
echo > /var/log/auth.log
#rm -f /var/log/audit/audit*
#echo > /var/log/audit/audit.log
rm -f /var/log/secure*
echo > /var/log/secure
rm -f /var/log/btmp*
echo > /var/log/btmp
echo > /var/log/lastlog
rm -f /var/log/wtmp*
echo > /var/log/wtmp
#以上需要 root,以下当前用户执行
echo > ~/.bash_history
echo > ~/.zsh_history
history -c

至此,Debian 的基本配置已经完成,可以制作模板了。

参考文献

  1. TMaize. (2024, July 21). Debian 12 安装记录. TMaize Blog. Debian 12 安装记录-TMaize Blog
  2. delph1s. (2024, January 26). [好玩的 Docker 项目] Debian 11 系统安装. LINUX DO. 【好玩的 Docker 项目】Debian 11 系统安装
  3. Sysin. (2021, August 24). Debian 11 安装指南. Sysin.org. Debian 11 “bullseye” 安装笔记 - sysin | SYStem INside | 软件与技术分享
  4. 鸠摩智首席音效师. (2022, October 17). 如何安装 Debian 11 (Bullseye) 图文教程. SegmentFault. https://segmentfault.com/a/1190000042631416
88 个赞

不要用debian桌面端,会变得不幸~~

4 个赞

感谢你的教程

6 个赞

Linux Do竟然能谈Linux(

3 个赞

居然在linux.do看到了linux :crazy_face:

3 个赞

非常详细,总结的很到位啊佬

2 个赞

好详细,辛苦佬整理了tieba_013

4 个赞

正好用的上z

2 个赞

感谢,一直用debian

2 个赞

很好,收藏了

5 个赞

确实不太好用,太复古了感觉 :tieba_087:

2 个赞

谢谢佬的分享

2 个赞

终于在 linux do 看到 linux 了

7 个赞

linux.do居然有linux

8 个赞

linux无处不在,那些基本命令就是啊 :bili_040:

7 个赞

居然这是真的

5 个赞

:bili_040: 你是指 c 命令吗

4 个赞

Mark一下

为啥?

用了10多年了……

Mark一下