ubuntu 使用
ubuntu 使用
获取debian系发行版的debian版本:
cat /etc/debian_version
Ubuntu debian debian
14.04 8 jessie
16.04 9 strech
18.04 10 buster
查看系统信息:
cat /proc/version
uname -a
lsb_release -a
1 图形界面切换
默认命令行启动:
sudo systemctl set-default multi-user.target
reboot
临时使用一次图形界面进入:
sudo systemctl start lightdm
默认图形界面启动:
sudo systemctl set-default graphical.target
reboot
2 配置静态IP地址
首先打开终端,输入命令 sudo vim /etc/network/interfaces 进入到文件中开始我们的配置
只需要在该文件中添加如下内容:
auto ens33 #网卡名
iface ens33 inet static #设置为静态
address 192.168.190.3 #IP地址
netmask 255.255.255.0 #子网掩码
gateway 192.168.190.2 #网关
dns-nameserver 114.114.114.114 #DNS服务器
设置完成后需要使用命令
ip addr flush dev ens33 && ifdown ens33 && ifup ens33
或
sudo /etc/init.d/networking restart 重启网络,成功后就配置成功了,
3 root远程登录
vi /etc/ssh/sshd_config,找到PermitRootLogin without-password 修改为PermitRootLogin yes
systemctl restart sshd
网络管理
显示网络接口
ip a |ifconfig -a
lshw -class network #显示网卡详细的硬件信息
网络接口设置
ethtool ens33 #显示网卡的设置信息
IP地址管理
设置临时IP
ip addr add 10.0.0.121/24 dev ens33
link up/down ip
ip link set dev ens33 up
ip link set dev ens33 down
显示网卡的IP地址配置
ip address shwo dev ens33
配置默认网关
ip route add default via 10.0.0.100 dev ens33
显示默认网关
ip route show
配置DNS
在/etc/resolv.conf添加: nameserver 8.8.8.8
清除IP地址配置(所有配置,除了DNS)
ip addr flush ens33
重启网卡可以恢复配置 /etc/init.d/networking restart
静态IP设置(18以上)
在/etc/netplan/99_config.yaml配置:
vi /etc/netplan/99_config.yaml:
软件管理
本地软件源设置 DVD版
1 挂载ISO
mount -o loop -t iso9660 xxx.iso /media/cdrom/
2 把ISO添加到软件源列表
apt-cdrom -m -d=/media/cdrom/ add
3 刷新软件库:
apt-get update
注意,执行完成后查看/etc/apt/sources.list文件,确保文件如下一行在文件顶部或者在网络源前面,否者,安装软件的时候系统还是优先从网络上下载【建议把除了dvd本地源之外的下面所有项注视掉,不建议删除,之后在apt-get update更新下】
deb cdrom:[Ubuntu 9.04 _Jaunty Jackalope_ - Release i386 (20090421.3)]/ jaunty main restricted
之后就可以用apt-get install ** 来安装软件包了,不过有点问题,这命令执行一次可能会不成功,多执行几次就OK了
apt命令:
apt search package_name #在源中查看软件包
apt show package_name #在源中查看软件包详细信息
apt install package_name #安装软件
apt show depends package_name #查看软件包的依赖关系
查看安装的所有软件:
dpkg -l #查看所有安装的软件包信息
apt list --installed
dpkg -L sysstat #查看安装软件路径和信息
dpkg -s sysstat #查看软件包的状态
dpkg -S /usr/bin/mpstat #查看命令对应的软件包
密码规则设置:
安装cracklib
apt install libpam-cracklib (本地源里面有)
禁止使用旧密码:
vi /etc/pam.d/common-password
password [success=1 default=ignore] pam_unix.so obscure sha512 添加remember=5
设置最短密码长度: minlen
vi /etc/pam.d/common-password
password requisite pam_cracklib.so retry=3 minlen=10 difok=3
设置密码复杂度:
vi /etc/pam.d/common-password
password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1
它表示密码必须至少包含一个大写字母(ucredit),两个小写字母(lcredit),一个数字(dcredit)和一个标点符号(ocredit)
设置密码过期期限
vi /etc/login.defs
PASSMAXDAYS 150 PASSMINDAYS 0 PASSWARNAGE 7
这些设置要求用户每6个月改变他们的密码,并且会提前7天提醒用户密码快到期了
chage -l username #查看用户的密码期限
chage -E 6/30/2014 -m 5 -M 90 -I 30 -W 14 test
上面的命令将密码期限设为2014年6月3日。另外,修改密码的最短周期为5天,最长周期为90天。密码过期前14天会发送消息提醒用户,过期后帐号会被锁住30天
口令锁定策略:
vi /etc/pam.d/common-auth
第一行添加 auth requisite pam_tally2.so deny=5 reset
lvm管理
fdisk -l #查看磁盘信息
pvcreate /dev/sdb #创建PV
vgcreate datavg /dev/sdb #创建VG
lvcreate -L 1G -n lv01 datavg #创建名字为lv01 大小为1G的LV
mkfs.ext4 /dev/mapper/datavg-lv01 #创建ext4 文件系统
mkdir /u01
mount /dev/mapper/datavg-lv01 /u01 #挂载文件系统
文件系统扩容可以在线操作
lvextend -L 2G /dev/datavg/lv01 #把lv01的大小扩展到2G
resize2fs /dev/mapper/datavg-lv01 #扩展文件系统大小
附加软件安装
apt install
rsh-server
rsh-client
rsh-redone-server(替换rsh-server 不要装)
xinetd
添加rsh服务器
/etc/securetty 加入rsh rlogin rexec
vi /etc/xinetd.d/rsh
# default: on
# descrīption: The rshd server is the server for the rcmd(3) routine and, \
# consequently, for the rsh(1) program. The server provides \
# remote execution facilities with authentication based on \
# privileged port numbers from trusted hosts.
service shell
{
disable = no
socket_type = stream
wait = no
user = root
log_on_success += USERID
log_on_failure += USERID
server = /usr/sbin/in.rshd
}
vi /etc/xinetd.d/rlogin
# default: on
# descrīption: rlogind is the server for the rlogin(1) program. The server \
# provides a remote login facility with authentication based on \
# privileged port numbers from trusted hosts.
service login
{
disable = no
socket_type = stream
wait = no
user = root
log_on_success += USERID
log_on_failure += USERID
server = /usr/sbin/in.rlogind
}
vi /etc/xinetd.d/rexec
# default: off
# descrīption: Rexecd is the server for the rexec(3) routine. The server \
# provides remote execution facilities with authentication based \
# on user names and passwords.
service exec
{
disable = no
socket_type = stream
wait = no
user = root
log_on_success += USERID
log_on_failure += USERID
server = /usr/sbin/in.rexecd
}
重启xinetd
/etc/init.d/xinetd restart
vi /etc/pam.d/rlogin
注释第一行
关闭防火墙
ufw disable
systemctl stop ufw.service
启动防火墙
ufw enable
systemctl disable ufw.service
自动清理/tmp目录
vi /etc/default/rcS
把TMPTIME=0 修改成TMPTIME=-1 就是不清理
修改内核参数
vi /etc/sysctl.conf
添加需要修改的参数
sysctl -p 加载配置
修改sysstat配置:
vi /etc/sysstat/sysstat
关闭transport_hugepage
vi /etc/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never> /sys/kernel/mm/transparent_hugepage/defrag
kdump配置:
apt install linux-crashdump
apt install kexec-tool
echo c > /proc/sysrq-trigger #需要运行两次
自动更新:
通过定时任务执行更新:
root@ubuntu-2:/lib/systemd/system# ll apt-*
-rw-r--r-- 1 root root 225 Oct 9 2018 apt-daily.service
-rw-r--r-- 1 root root 156 Oct 9 2018 apt-daily.timer
-rw-r--r-- 1 root root 238 Oct 9 2018 apt-daily-upgrade.service
-rw-r--r-- 1 root root 184 Oct 9 2018 apt-daily-upgrade.timer
其中的 apt-daily.timer 和 apt-daily-upgrade.timer 是两个触发器,分别在每天指定的时间触发 apt-daily.service 和 apt-daily-upgrade.service。
/usr/lib/apt/apt.systemd.daily 脚本负责完成与更新相关的一系列工作,这些工作主要分为两大块:
检查更新并下载更新包
安装更新并清理更新包
unattended-upgrades
Ubuntu 实际上是通过 unattended-upgrades 命令来自动安装更新的。Ubuntu 16.04/18.04 默认安装了这个包,如果碰到没有安装的情况你还可以通过下面的命令自行安装:
apt install unattended-upgrades
unattended-upgrades 的配置文件为 /etc/apt/apt.conf.d/50unattended-upgrades。
unattended-upgrade 命令常见的用法之一是检查系统是否有更新:
$ sudo unattended-upgrade --dry-run
另一种用法是安装更新:
$ sudo unattended-upgrade
在 apt.systemd.daily 脚本中执行 unattended-upgrade 命令时,由于更新包已经提前下载到缓存目录了(/var/cache/apt/archives),所以直接它直接使用缓存中的更新包。
配置文件 50unattended-upgrades
50unattended-upgrades 文件中的默认配置只是安装安全更新:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
"${distro_id}ESM:${distro_codename}";
// "${distro_id}:${distro_codename}-updates"; #取消注释就可以更新所有包了
// "${distro_id}:${distro_codename}-proposed";
// "${distro_id}:${distro_codename}-backports";
};
下面的配置项指定在更新后移除无用的包:
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
Unattended-Upgrade::Remove-Unused-Dependencies "true";
有些更新需要重启系统,而默认的配置是不重启系统的。下面的配置允许重启系统(更新完成后,如果需要重启,立即重启系统):
Unattended-Upgrade::Automatic-Reboot "true";
但是多数情况下我们更期望指定一个时间让系统重启(如果需要重启,在下面配置中指定的时间重启系统):
Unattended-Upgrade::Automatic-Reboot-Time "02:38";
在系统更新的过程中发生了错误怎么办?当然是通知管理员啦!下面的配置在发生错误时给管理员发送邮件:
Unattended-Upgrade::Mail "user@example.com";
Unattended-Upgrade::MailOnlyOnError "true";
关闭自动更新:
systemctl stop apt-daily.service
systemctl stop apt-daily.timer
systemctl stop apt-daily-upgrade.service
systemctl stop apt-daily-upgrade.timer
systemctl disable apt-daily.service
systemctl disable apt-daily.timer
systemctl disable apt-daily-upgrade.service
systemctl disable apt-daily-upgrade.timer
systemctl status apt-daily.service
systemctl status apt-daily.timer
systemctl status apt-daily-upgrade.service
systemctl status apt-daily-upgrade.timer
systemctl start apt-daily.service
systemctl start apt-daily.timer
systemctl start apt-daily-upgrade.service
systemctl start apt-daily-upgrade.timer
安装软件包
1)安装软件
命令行:dpkg -i <.deb file name>
示例:dpkg -i avg71flm_r28-1_i386.deb
2)安装一个目录下面所有的软件包
命令行:dpkg -R
示例:dpkg -R /usr/local/src
3)释放软件包,但是不进行配置
命令行:dpkg –-unpack package_file 如果和-R一起使用,参数可以是一个目录
示例:dpkg –unpack avg71flm_r28-1_i386.deb
4)重新配置和释放软件包
命令行:dpkg –configure package_file
如果和-a一起使用,将配置所有没有配置的软件包
示例:dpkg –configure avg71flm_r28-1_i386.deb
5)删除软件包(保留其配置信息)
命令行:dpkg -r
示例:dpkg -r avg71flm
6)替代软件包的信息
命令行:dpkg –update-avail <Packages-file>
7)合并软件包信息
dpkg –merge-avail <Packages-file>
8)从软件包里面读取软件的信息
命令行:dpkg -A package_file
9)删除一个包(包括配置信息)
命令行:dpkg -P
10)丢失所有的Uninstall的软件包信息
命令行:dpkg –forget-old-unavail
11)删除软件包的Avaliable信息
命令行:dpkg –clear-avail
12)查找只有部分安装的软件包信息
命令行:dpkg -C
13)比较同一个包的不同版本之间的差别
命令行:dpkg –compare-versions ver1 op ver2
14)显示帮助信息
命令行:dpkg –help
15)显示dpkg的Licence
命令行:dpkg –licence (or) dpkg –license
16)显示dpkg的版本号
命令行:dpkg –version
17)建立一个deb文件
命令行:dpkg -b direc×y [filename]
18)显示一个Deb文件的目录
命令行:dpkg -c filename
19)显示一个Deb的说明
命令行:dpkg -I filename [control-file]
20)搜索Deb包
命令行:dpkg -l package-name-pattern
示例:dpkg -I vim
21)显示所有已经安装的Deb包,同时显示版本号以及简短说明
命令行:dpkg -l
22)报告指定包的状态信息
命令行:dpkg -s package-name
示例:dpkg -s ssh
23)显示一个包安装到系统里面的文件目录信息
命令行:dpkg -L package-Name
示例:dpkg -L apache2
24)搜索指定包里面的文件(模糊查询)
命令行:dpkg -S filename-search-pattern
25)显示包的具体信息
命令行:dpkg -p package-name
示例:dpkg -p cacti
openbsd-inetd
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了