安装好 debian10/11 后,我们需要做的一些基本配置后,用起来会变得更加得心应手。常用命令实际上官方手册是最好的参考手册,这里总结的仅针对我自己常用的。
Debian 官方参考手册
https://www.debian.org/doc/manuals/debian-reference/
Debian 系统基本的操作命令
切换到 root shell 提示符
# 在任意用户的 shell 提示符下输入 su -l 或 su -
su -l
su -
# 这不会保存当前用户的环境设定。
# 在任意用户的 shell 提示符下输入su root 或 su
su root
su
# 这会保存当前用户的一些环境设定。
退出命令行提示符
同时按 Ctrl + d
键,或键入 exit
退出命令行。
关闭或重启系统
在普通多用户模式模式下,可以使用命令行关闭系统 shutdown -h now
# 立即关机
shutdown -h now
# 5分钟后关机
shutdown -h +5
# 重新启动
shutdown -r now
在单用户模式下,可以使用命令行关闭系统 poweroff -i -f
我一直都是使用 poweroff
恢复一个正常的控制台
当做了一些滑稽的事(例如“cat二进制文件”)后,屏幕会发狂,你可以在命令行输入 reset
。你可能无法在屏幕上看到你输入的命令。你也可以输入 clear
来清屏。
目录或文件的权限配置
目录或文件的拥有者配置
# 例1、将/tmp/目录下的test.conf文件修改为root所拥有。
# root(拥有者):root(组)
chown root:root /tmp/test.conf
# 例2、将/tmp目录包括目录下的所有文件改为root所拥有
chown -R root:root /tmp
目录或文件的权限配置
详细权限有点复杂,我这只记录的常用的权限修改方法,可能很不严谨哟。
语法为:chmod ABC file
其中A、B、C各为一个数字,分别表示User、Group、及Other的权限。
我们把他们对应关系分开整理如下:
A B C
| | |
rwx rwx rwx
| | |
User Group Other
用户的可读 (r=4), 可写 (w=2)和 可执行 (x=1) 权限之和:
若要rwx属性则4+2+1=7
若要rw-属性则4+2+0=6
若要r-x属性则4+0+1=5
我们看下面文件的权限示例:
root@debian11-ts2:~/test# ls -l
total 12
-rw------- 1 root root 8 Oct 16 21:57 test-2.txt
-rw-r--r-- 1 root root 8 Oct 16 21:57 test-3.txt
-rwxrwxrwx 1 root root 8 Oct 16 20:57 test.txt
# 此test-2.txt文件拥有者为root,用户组为root。
# rwx权限属性为rw-(6) ---(0) ---(0),表示只有root用户可以r=4读,w=2写,但x=0不可以执行。其他用户都不能读、写、执行。
-rw------- 1 root root 8 Oct 16 21:57 test-2.txt
# 此test-3.txt文件拥有者为root,用户组为root。
# rwx权限属性为rw-(6) r--(4) r--(4),表示root用户可以r=4读,w=2写,但x=0不可以执行。
# root用户组可以r=4读,但w=0不可写,x=0不可执行。其他用户可以r=4读,但w=0不可写,x=0不可执行。
-rw-r--r-- 1 root root 8 Oct 16 21:57 test-3.txt
# 此test.txt文件拥有者为root,用户组为root。
# rwx权限属性为rwx(7) rwx(7) rwx(7),表示root用户与root用户组以及其他用户都能 r=4读,w=2写,x=1执行
-rwxrwxrwx 1 root root 8 Oct 16 20:57 test.txt
下面是修改 test-2.txt
文件权限的例子:
root@debian11-ts2:~/test# chmod 605 test-2.txt
root@debian11-ts2:~/test# ls -l
total 12
-rw----r-x 1 root root 8 Oct 16 21:57 test-2.txt
-rw-r--r-- 1 root root 8 Oct 16 21:57 test-3.txt
-rwxrwxrwx 1 root root 8 Oct 16 20:57 test.txt
root@debian11-ts2:~/test# chmod 611 test-2.txt
root@debian11-ts2:~/test# ls -l
total 12
-rw---x--x 1 root root 8 Oct 16 21:57 test-2.txt
-rw-r--r-- 1 root root 8 Oct 16 21:57 test-3.txt
-rwxrwxrwx 1 root root 8 Oct 16 20:57 test.txt
你品一下,自然就明白了。
修改目录权限例子如下:
root@debian11-ts2:~/test# chmod -R 600 /root/test
root@debian11-ts2:~/test# ls -l
total 12
-rw------- 1 root root 8 Oct 16 21:57 test-2.txt
-rw------- 1 root root 8 Oct 16 21:57 test-3.txt
-rw------- 1 root root 8 Oct 16 20:57 test.txt
查看目录或文件所占空间
使用 du
命令,不加上 -s
会递归列出所有子目录,加上 -h
参数更能直观理解占用的容量单位,下面示例:
root@Debian11-Cloud:~# du -sh /site-data/www/
430G /site-data/www/
root@Debian11-Cloud:~# du -sh /site-data/www/*
429G /site-data/www/nextcloud
126M /site-data/www/nextcloud-22.2.0.tar.bz2
4.0K /site-data/www/nextcloud-22.2.0.tar.bz2.sha256sum
125M /site-data/www/nextcloud-22.2.2.tar.bz2
4.0K /site-data/www/nextcloud-22.2.2.tar.bz2.sha256sum
443M /site-data/www/nextcloud-old
235M /site-data/www/wordpress
系统设置
在最小化安装 debian 之后,需要根据自己的使用习惯进行一些配置。
调整 vi 编辑器
调整 vi 编辑器配置文件:
# 切换至root身份
su -
# 使用 nano 编辑器,编辑 vi 配置文件
nano /etc/vim/vimrc.tiny
# 修改为以下的配置内容
" set compatible
set nocompatible
set backspace=2
修改完成后,按 Ctrl + x
然后按 y
再按 回车
保存配置即可。
如果 vi 或 nano 编辑器显示中文为乱码,cat
命令却可以正常显示中文。
发现此问题是在 PVE 上的建立的 CT 容器里的 debian 上
我们可以使用 locale
命令检查区域语言配置
# LXC 容器里安装的 debian 区域语言配置
root@debian11-ts2:~# locale
LANG=C
LANGUAGE=
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=
# 我自己手动安装的 debian 系统区域语言配置
sgtfz@debian-buster:/$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
解决 vi 或 nano 编辑器显示中文乱码问题
# 首先执行
export LC_ALL=en_US.UTF-8
# 然后执行
dpkg-reconfigure locales
# 然后选择语言,选中我们不需要的语言按空格取消*号
# 选中 en_US.UTF-8 UTF-8,按空格选择,按回车确认
[*] en_US.UTF-8 UTF-8
# 系统环境的默认语言环境 选中 en_US.UTF-8,按回车确认
# Default locale for the system environment:
en_US.UTF-8
# 最后重启系统生效
完成配置默认语言环境后,vi 或 nano 编辑器即可正常显示中文了。vi 编辑器可以输入中文内容,但 nano 编辑器貌似不可以哟。
查看时区与时间
必须检查并修改为正确的时区,时间才准确。
# 查看时区与时间
timedatectl
# 修改时区为亚洲上海
timedatectl set-timezone Asia/Shanghai
# 或列出可用时区(可供修改时区作参考)
timedatectl list-timezones
有颜色输出的命令
Debian 普通用户登录命令提示符,命令的输出是带有颜色的,但是切换到 root
用户命令提示符却没有了颜色。我们切换到 root
用户命令提示符,修改 root
用户目录下的 .bashrc
文件
vi .bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.
# Note: PS1 and umask are already set in /etc/profile. You should not
# need this unless you want different defaults for root.
# PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
# umask 022
# You may uncomment the following lines if you want `ls' to be colorized:
# 去掉下面五行的注释
# export LS_OPTIONS='--color=auto'
# eval "$(dircolors)"
# alias ls='ls $LS_OPTIONS'
# alias ll='ls $LS_OPTIONS -l'
# alias l='ls $LS_OPTIONS -lA'
#
# Some more alias to avoid making mistakes:
# alias rm='rm -i'
# alias cp='cp -i'
# alias mv='mv -i'
# 如果还需要`用户名@主机名`显示颜色,请加上以下这行。
# 此行从普通用户复制过来的,只修改了 `[\033[01;32m\]改为[\033[04;32m\]` 增加下横线。
PS1='${debian_chroot:+($debian_chroot)}\[\033[04;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
保存配置后执行命令:source .bashrc
使之生效。
设置静态IP地址
#编辑网卡配置文件
vi /etc/network/interfaces
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.121
netmask 255.255.255.0
gateway 192.168.1.1
创建用户及配置权限
adduser xxx
会有向导一步一步的创建用户操作,要求您为新用户分配和确认密码。然后,系统会要求您输入有关新用户的任何其他信息。这是完全可选的,可以按 ENTER
跳过。示例如下:
root@debian11-ts2:~# adduser sgtfz
Adding user `sgtfz' ...
Adding new group `sgtfz' (1000) ...
Adding new user `sgtfz' (1000) with group `sgtfz' ...
Creating home directory `/home/sgtfz' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for sgtfz
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
添加用户到 sudo 组 (可选)
usermod -aG sudo xxx
将 xxx
用户,添加到 sudo
组
查看 xxx
用户是否已添加到 sudo
组。groups
中有 sudo
组表示添加成功。
最后还要确认 /etc/sudoers
vi /etc/sudoers
# 若不存在以下内容,则添加
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
仅授予普通用户有限的权限(仅关机权限),前提不要将用户添加到sudo组!
# 编辑权限
visudo
# 仅允许普通用户组sgtfz,免密执行shutdown命令
%sgtfz ALL= NOPASSWD: /usr/sbin/shutdown
检查用户是否具有sudo权限
sudo -l -U <UserName>
删除用户及移除权限
deluser xxx
删除 xxx
用户本身,而不删除任何他们的文件
deluser --remove-home xxx
删除 xxx
用户并且删除用户的主目录
移除用户的 sudo
权限
# 首先检查用户是否具有sudo权限
root@debian-buster:~# sudo -l -U sgtfz
Matching Defaults entries for sgtfz on debian-buster:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User sgtfz may run the following commands on debian-buster:
(ALL : ALL) ALL
# 检查用户id
root@debian-buster:~# id sgtfz
uid=1000(sgtfz) gid=1000(sgtfz) groups=1000(sgtfz),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),109(netdev)
# 移除用户sudo权限
root@debian-buster:~# gpasswd -d sgtfz sudo
Removing user sgtfz from group sudo
# 再次检查用户是否拥有sudo权限
root@debian-buster:~# sudo -l -U sgtfz
User sgtfz is not allowed to run sudo on debian-buster.
# 再次检查用户id
root@debian-buster:~# id sgtfz
uid=1000(sgtfz) gid=1000(sgtfz) groups=1000(sgtfz),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev)
允许 root 用户远程 ssh 登录
有时为了方便编辑一些文件,使用 WinSCP 登录修改,需要以 root 用户登录。我们需要允许 root 用户 ssh 登录,如下配置即可:
# 编辑配置文件
vi /etc/ssh/sshd_config
# 增加此行配置 PermitRootLogin yes ,或检查去掉这行配置的注释。
PermitRootLogin yes
# 然后重启 ssh 生效
/etc/initd.d/ssh restart
基础软件包管理操作
在 Debian 系统中有许多基于 APT 的软件包管理工具可以在 Debian 系统上进行基于仓库的软件包管理操作。我常用的操作
安装软件
apt install xxx
安装 xxx
软件包的候选版本以及它的依赖
列出软件
apt list xxx
列出 xxx
软件包
apt list --installed
显示已安装的软件包
apt list --upgradeable
显示可升级的软件包
apt show xxx
显示 xxx 软件包的详细信息(版本号,安装大小,依赖关系…)
apt search regex(正则表达式)
搜索匹配 regex
的软件包
更新软件
apt update
更新软件包档案库元数据
apt upgrade
安装已安装的软件包的候选版本并且不移除任何其它的软件包
apt full-upgrade
安装已安装的软件包的候选版本,并且需要的话会移除其它的软件包
删除软件
apt remove xxx
移除 xxx
相关联的软件包,不会移除与之相关联的配置文件或数据文件,也不会移除依赖包。
apt --purge remove xxx
移除 xxx
相关联的软件包,不保留配置文件,也不会移除依赖包。
apt -s remove xxx
模拟卸载,不会真的卸载。
apt autoremove
移除当前系统中的所有孤立的包,即不被任何包依赖的包。据说有点危险,但我卸载libreoffice时发现非常不干净,用过此命令,好用的很。
清理 apt 安装包
定期运行清理安装包,为磁盘腾出一些空间。
apt clean
清理/var/cache/apt/archives/
目录下的所有deb安装包,推荐。
apt autoclean
清理/var/cache/apt/archives/
目录下(已卸载的软件)的deb安装包。
更多的管理操作请访问 Debian 官方文档: