ubuntu学习笔记

ubuntu学习笔记

前言

纯粹是个人学习过程中遇到的一些问题的解决方法,写在网上也是为了方便自己查阅

一、 ubuntu 22.04 更换阿里源

#备份源
cp /etc/apt/sources.list   sources.list.bak

#编辑sources.list文件,内容如下
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

#更新源
apt update

二、ubuntu22.04安装搜狗输入法

#安装fcitx

apt install fcitx

#设置fcitx开机自启

cp /usr/share/applications/fcitx.desktop /etc/xdg/autostart/

#卸载ibus输入框架

apt purge ibus

#安装搜狗输入法

dpkg -i sougou_xxx.deb

#修复依赖关系

apt -f install

#安装输入法依赖组件

apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2

apt install libgsettings-qt1


三、linux系统分区(个人向)

linux系统和windows系统一样,分三个区

linux系统:EFI分区,根分区,剩余空间先保留,安装完系统后再格式化后挂载,相当于windows系统的D盘,所有资料都放在这里,重装系统后不受影响

windows系统:EFI分区,C盘装系统,D盘放资料

linux系统,EFI分区大小200M,格式FAT32
根分区大小100G,格式EXT4
注意启动分区选择EFI分区

安装完系统后通过编辑/etc/fstab文件实现自动挂载分区


四、vi及vim文本编辑器使用

命令模式( Command mode)
输⼊模式( Insert mode)
底线命令模式( Last line mode)

默认是命令模式,按i键进入输入模式(左边最下显示-- INSERT – ),此时可以使用上下左右移动光标,退格键删除,在光标处直接新增内容,按esc键退出输入模式,返回到命令模式,在命令模式下输入:冒号进入底线命令模式,w表示保存,q表示退出,!表示强制。

在命令模式下,gg移动光标到第一行,G移动光标到最后一行,dd表示删除一行,4dd表示删除4行,dG删除光标到最后一行,yy表示复制一行,6yy表示复制6行,p表示粘贴。

:set nu #显示行号

:set nonu #不显示行号

#在命令模式下,/word搜索关键字“word”按n定位到下一个关键字

:1,$s/word1/word2/g #将word1替换为word2

:%s/word1/word2/g #同上

:%s/word1/word2/gc #替换时需要一个一个确认

五、 nano文本编辑器使用

ctrl+6 选择文本(反白表示选中)

alt+6 复制(单独用表示复制一行)

ctrl+u 粘贴

ctrl+k 剪切(删除)

ctrl+w 搜索关键字

alt+w 定位到下一个关键字

ctrl+y 翻上一页

ctrl+v 翻下一页

ctrl+o 保存

ctrl+x 退出


六、查看IP及网关DNS并设置IP地址(图形化)

#查看IP地址
ip address

#查看IP地址,网关,DNS等信息
nmcli dev show

#设置IP地址(图形化设置)
nmtui


七、 linux编辑/etc/fstab文件实现自动挂载分区

#查看分区的UUID
blkid
#编辑该文件实现自动挂载分区

nano /etc/fstab 
UUID="3e7ec857-3bb7-421c-9f95-f053bd4f3c36"    /mnt/dir2        ext4    defaults    0   0

#使上一条的编辑效果,立即生效
mount -a


八、ubuntu 22.04 安装 VirtualBox及相关问题

1 .ubuntu 22.04 安装 VirtualBox

1.官网下载对应的包(VirtualBox 6.1.36)

https://www.virtualbox.org/wiki/Downloads

2.安装deb包

dpkg -i virtualbox-6.1_6.1.36-152435_Ubuntu_jammy_amd64.deb

3.修复依赖关系

apt -f install

4.下载VirtualBox 6.1.36对应的拓展包(版本必须一致)

Oracle_VM_VirtualBox_Extension_Pack-6.1.36a-152435.vbox-extpack

5.安装VirtualBox拓展包

打开VirtualBox图形界面,“管理”——“全局设定”——“扩展”,选择拓展包

2 . ubuntu22.04打开VritualBox报错内核驱动问题

Kernel driver not installed(rc±1980)

#切换root
su

#安装这几个组件
apt install gcc make perl

#执行该配置文件
/sbin/vboxconfig
做完记得重启,然后再打开 VritualBox就不会报错了

3 . VirtualBox启用USB设备支持

需安装VirtualBox Extension Pack
(注意版本号必须和VirtualBox保持一致)

#查看当前登录的用户
chb@book1:~$ whoami
chb

#查看vbox用户
chb@book1:~$ cat /etc/group | grep vbox
vboxusers:x:134:chb

#将当前用户chb添加到vbox用户组
root@book1:~# usermod -a -G vboxusers chb

重启物理机后即可


九、ubuntu22.04打不开AppImage格式程序

1.安装libfuse
apt install libfuse2

2.右键属性,权限选项卡勾选“允许执行文件”


十、ubuntu系统备份与还原

方法一:使用PE上的DiskGenius分区工具备份还原系统

本人用的是IT天空的优启通,其他PE也是一样的

备份:打开DiskGenius分区工具,选择需要备份的分区,右键“备份分区到镜像文件”

还原:打开DiskGenius分区工具,选择需要还原的分区,右键“从镜像文件还原分区”

这个DiskGenius备份是连文件系统(如FAT32,NTFS,EXT4)一起打包备份还原的,文件名举例:fat32_efi_200M.pmf ,ext4_system_100G.pmf

方法二:ubuntu使用dd命令备份与还原系统

1.制作ubuntu可启动U盘,进入live cd模式

2.设置root密码,并切换到root权限

sudo passwd root	//设置root密码
su root		//切换到root权限

3.查看磁盘信息,确定根所在分区

fdisk -u -l		//查看磁盘信息
lsblk		//查看磁盘挂载信息

4.挂载外部磁盘用于保存备份文件

mount /dev/sda3  /mnt			//挂载sda3分区到/mnt目录

5.使用dd命令备份

#备份sdc1分区到指定位置
dd if=/dev/sdc1  of=/mnt/ubuntu_efi_400M.dd

#备份sdc2分区到指定位置
dd if=/dev/sdc2  of=/mnt/ubuntu_system_120G.dd

6.使用dd命令还原系统

dd if=/mnt/ubuntu_efi_400M.dd  of=/dev/sdc1

dd if=/mnt/ubuntu_system_120G.dd  of=/dev/sdc2

7.可以和压缩命令一起使用

#使用dd备份的同时压缩文件
dd if=/dev/sdc1 | gzip -6 > /mnt/ubuntu_efi_400M.dd.gz

dd if=/dev/sdc2  | gzip -6 > /mnt/ubuntu_system_120G.dd.gz

8.解压并还原的命令

gzip -dc /mnt/ubuntu_efi_400M.dd.gz | dd of=/dev/sdc1

gzip -dc /mnt/ubuntu_system_120G.dd.gz | dd of=/dev/sdc2 

十一、systemctl命令查看服务及示例

#查看版本
systemctl --version

#查看已启动的服务
systemctl

#查看所有服务
systemctl list-units -all

#查看所有服务,最全
systemctl list-unit-files

#查看所有类型是.service结尾的服务
systemctl list-unit-files --type=service --all

#查看所有类型是.mount结尾的服务
systemctl list-unit-files --type=mount --all

#查看指定服务的状态
systemctl status network-manager.service

#设置该服务开机自启动
systemctl enable network-manager

#下次重启关闭该服务
systemctl disable network-manager

#启用该服务
systemctl start network-manager

#禁用该服务
systemctl stop network-manager

#查看该服务配置
systemctl show network-manage

#锁定该服务,使其无法启动
systemctl mask network-manager

#解锁该服务
systemctl unmask network-manager

#查看该服务依赖哪些服务
systemctl list-dependencies network-manager

#查看该服务被哪些服务依赖
systemctl list-dependencies network-manager --reverse

#查看本机的sockets文件存放路径
systemctl list-sockets

#新增服务,修改了服务配置文件,生成依赖树(需执行让其生效)
systemctl daemon-reload


十二、which与whereis查看程序相关目录

which命令查看程序目录

#查看systemctl程序的目录
which systemctl

whereis 命令查看程序的相关目录

#查看systemd程序相关目录
whereis systemd

#查看systemctl程序相关目录
whereis systemctl

十三、 ubuntu将非标准程序放入桌面收藏栏

例子:

nano /usr/share/applications/Joplin.desktop 
[Desktop Entry]
Name=Joplin
Comment=Joplin
Exec=/home/chb/Software/Joplin-2.8.8.AppImage %F
Icon=/home/chb/图片/joplin.png
Terminal=false
Type=Application
Categories=Application;

注意上面的%F表示可以在文件管理器中右键打开方式中显示非标准程序

此时所有程序图标里面就多出了刚才的图标,像其他标准程序一样右键添加到收藏栏即可


十四、 ubuntu 查看已安装软件路径

1 #查看所有已安装软件
dpkg -l

2 #只记得软件名称的一部分,查看全称
 dpkg -l | grep "ftp"

3 #查看“vsftpd”软件的版本
dpkg -l vsftpd

4 #查看“vsftpd”软件的相关路径
dpkg -L vsftpd

十五、 ubuntu查看版本及内核版本

#查看ubuntu发行版本
cat /etc/issue
或
lsb_release -a
#查看linux内核版本
uname -r
或
cat /proc/version

十六、 ubuntu卸载WPS

#查询软件名
dpkg -l | grep wps 

#根据软件名卸载软件
apt remove wps-office

#卸载这个软件并删除配置文件(推荐)
apt purge wps-office

十七、Ubuntu 彻底删除libreoffice套件

# 卸载并且删除相关配置
apt purge libreoffice* 

# 删除安装了的软件包的安装包(如果你确定这些安装包不会再用)。 删除包缓存中的所有包。
apt clean 

# 删除为了满足其他软件包的依赖而安装的,系统会自动卸载这些不再需要的软件包
apt autoremove

十八、 ubuntu常用软件及使用小贴士

#ubuntu录屏软件kazam
apt install kazam

#ubuntu视频播放器vlc
apt install vlc

#类似windows画图工具
apt install drawing
#打开资源管理器,后面的.表示当前路径
xdg-open .

#命令行下打开图形文本
gedit 1.txt
#ubuntu 查看apt命令可以安装哪些程序
apt-cache search all | grep vlc
apt search all | grep wps
#在线刷新存储库中的包列表
apt update

#为正在安装或已安装的软件包安装任何未满足的依赖项
apt -f install

#再次尝试升级
apt upgrade

十九、 linux桌面创建关机和重启脚本sh

在主目录下的桌面文件夹下创建如下文件

nano 关机.sh 
#!/bin/bash
shutdown -h now
nano 重启.sh 
#!/bin/bash
shutdown -r now
#设置权限,记得切换到桌面的路径下执行哦
 chmod 777 *.sh

二十、 ubuntu创建快捷方式到桌面

1.在桌面创建一个sh后缀的文件,编辑内容如下

vim Typora.sh 
#! /bin/bash
/home/chb/Typora-linux-x64/Typora

例2:

vim qq.sh 
#! /bin/bash
/usr/local/bin/qq

2.设置sh文件的权限

chmod +x *.sh
或者
chmod 777 *.sh

3.如果此时双击桌面图标无法打开程序
打开文件管理器,左上角选择“Preferences”——Behavior选项卡——Run them


二十一、 ubuntu设置定时重启并自动登录

#在最后一行添加如下:
crontab -e
#表示19点55分执行重启命令,最后一位表示星期五(取值0-6)0表示星期日
55 19 * * 5 /usr/sbin/shutdown -r now
#查看crontab的服务是否启动
systemctl list-units -all | grep -i 'cron'
或
service --status-all | grep -i 'cron'
#启用crontab服务,并设置开机自动启动
systemctl start cron.service
systemctl enable cron.service
#查看crontab列表
crontab -l
#设置自动登录
nano /etc/gdm3/custom.conf
AutomaticLoginEnable=True
AutomaticLogin=chb   #用户名根据实际情况写

二十二、 tar使用密码压缩及解压目录

#打包并压缩dir2这个目录,并使用openssl的des3加密算法,密码为pass@123,生成文件为dir2.tar.gz
tar -czvf - dir2 | openssl des3 -salt -k pass@123 -out dir2.tar.gz

#使用openssl的des3算法解密dir2.tar.gz这个文件,并解压缩到当前目录
openssl des3 -d -k pass@123 -salt -in dir2.tar.gz | tar xzvf -

二十三、ubuntu上grub2的相关设置

ubuntu 18.4使用grub2临时添加启动项引导win10

以下命令只是临时用启动了win10,不可能每次这样去启动win10,那样太麻烦了

先来个热身,使用grub命令行引导win10

在grub界面按ESC进入grub命令行

#查看所有的硬盘设备
ls

#选择一个分区查看里面的内容,看是否是win10的EFI分区
ls (hd2,gpt1) /

#进一步确认
ls (hd2,gpt1) /efi/

#进一步确认,该目录下的bootmgfw.efi文件就是win10的引导文件
ls (hd2,gpt1) /efi/Microsoft/Boot/

#设置目录为win10的EFI分区
set root=(hd2.gpt1)

#指定链接启动的win10引导文件
chainloader /efi/Microsoft/Boot/bootmgfw.efi

#引导启动win10
boot

ubuntu 18.4 配置grub2添加自定义的启动项引导win10

#切换root管理员
sudo -i

#进入该目录
cd /etc/grub.d/

#备份该文件,养成良好习惯,改任何文件时记得先备份
cp 40_custom 40_custom.bak

#编辑该文件,添加如下内容
nano 40_custom

menuentry "Microsoft Windows 10" {
  insmod fat
  set root=(hd2,gpt1)
  chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

重启后发现自定义的win10启动项

ubuntu设置grub2的默认引导项

nano /etc/default/grub
#0表示默认引导第一行,2表示默认引导第三行
修改GRUB_DEFAULT="0" 
#使配置生效
update-grub

ubuntu20.04和win10切换grub默认启动项(记住上次启动项)

#编辑该文件,并修改内容如下
vim /etc/default/grub
GRUB_DEFAULT=“saved”
GRUB_SAVEDEFAULT="true"
#使配置生效
update-grub

二十四、ubuntu截图快捷键及flameshot截图工具快捷键设置

ubuntu自带截图快捷键

以下内容对于ubuntu22.04会有出入

PrtSc – 获取整个屏幕的截图并保存到 Pictures ⽬录。
Shift + PrtSc – 获取屏幕的某个区域截图并保存到 Pictures ⽬录。
Alt + PrtSc –获取当前窗⼝的截图并保存到 Pictures ⽬录。
Ctrl + PrtSc – 获取整个屏幕的截图并存放到剪贴板。
Shift + Ctrl + PrtSc – 获取屏幕的某个区域截图并存放到剪贴板。
Ctrl + Alt + PrtSc – 获取当前窗⼝的 截图并存放到剪贴板。

ubuntu截图工具flameshot

#安装flameshot截图工具
apt install flameshot

settings——keyboard shortcuts——点击+号新建快捷键

name :随便起个名字

command : /usr/bin/flameshot gui

shortcut : 按对应的按键即可设置快捷键,我一般设置为F1


二十五、 ubuntu 22.04设置internet连接共享

笔记本A是ubuntu系统,有无线网卡和有线网卡
台式机B只有有线网卡
目的:台式机B能够访问internet

1.笔记本A无线网卡连接到internet()

2.笔记本A有线网卡在“IPv4”选择“与其他计算机共享”

3.台式机B有线网卡与笔记本A有线网卡使用一条网线对接

4.台式机B有线网卡设置自动获取IP即可访问internet


二十六、 ps命令查看进程

#查看进程,筛选关键字systemd
ps -eaf | grep systemd

#查看1号进程
ps u -p 1

#可以看出/sbin/init只是/lib/systemd/systemd的链接文件
ls -l /sbin/init
lrwxrwxrwx 1 root root 20 9月   8 02:37 /sbin/init -> /lib/systemd/systemd

二十七、ubuntu安装openssh及升级openssl

ubuntu安装openssh

#更新源列表
apt update

#查看是否有安装openssh-server
dpkg -l | grep ssh

#查看apt源能安装的软件列表
apt-cache search all | grep openssh

#安装openssh-server
apt-get install openssh-server

#查看指定服务是否运行
ps -ef | grep openssh

#查看所有的服务
systemctl list-unit-files | grep ssh

#查看已启动的服务
systemctl list-units | grep ssh

#查看sshd.service服务的状态
systemctl status sshd.service

#下次开机启动sshd.service服务
systemctl enable sshd.service

#下次开机禁用sshd.service服务
systemctl disable sshd.service

ubuntu升级OpenSSL方法

1.更新国内源(阿里源推荐)

2.安装build-essential(包含了make和gcc)

apt install build-essential
apt install make gcc

3.查看make和gcc版本

make -v
gcc -v

4.下载OpenSSL并解压编译程序

https://www.openssl.org/source/

解压后进入目录执行

./config          #执行该文件
make    #开始编译
make test   #测试编译一遍
mv /usr/bin/openssl  /tmp/    #备份当前的openssl
make install   #开始编译安装
ln -s /usr/local/bin/openssl  /usr/bin/openssl   #创建软链接
ldconfig    #刷新一下动态库
openssl version  #查看openssl版本

二十八、在 Ubuntu 20.04 上安装 Steam及csgo黑屏解决方法

Ubuntu 20.04 上安装 Steam

使用浏览器下载staem软件包
https://steamcdn-a.akamaihd.net/client/installer/steam.deb

#切换到下载的目录再执行
apt install ./steam.deb
#更新软件源
apt update
apt upgrade

第一次启动steam时会提示安装必要的软件包,按回车键,自动下载安装即可

ubuntu steam csgo启动后黑屏(设置steam启动分辨率)

通过设置启动项修改分辨率,打开“Steam客户端——库”,找到CSGO,右键属性,然后在“设置启动选项”里输入“-width 宽数值 -height 高数值”,例如“-width 1280 -height 720”,设置完成后点击确定,启动游戏就是设置的分辨率了。


二十九、 ubuntu20.04安装ppsspp1.12.1

#添加ppa
add-apt-repository ppa:xuzhen666/ppsspp

#更新源
apt update

#安装ppsspp
apt install ppsspp

#删除ppa
add-apt-repository --remove ppa:xuzhen666/ppsspp

#卸载ppsspp
apt remove ppsspp ppsspp-sdl

三十、 ubuntu关于vsftp配置主动模式和被动模式

#编辑vsftp配置文件
vim /etc/vsftpd.conf

主动和被动同时并存

listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES

write_enable=YES
chroot_local_user=YES
local_root=/home/chb/ftp

dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES

connect_from_port_20=YES

secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
utf8_filesystem=YES

主动模式

connect_from_port_20=YES
pasv_enable=NO

被动模式

connect_from_port_20=NO
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=65536

三十一、ubuntu离线安装make和gcc

如果想要离线安装make和gcc ,需要相同版本的linux并且能够访问外网

为了方便表述不能上网的主机为A ,相同版本的linxu主机为B

思路: 在主机B上安装make和gcc编译器,然后在/var/cache/apt/archives/目录下就有了对应的安装包,将这些安装包打包复制到主机A上,再主机A上使用dpkg -i 安装所有安装包

#清除包缓存
rm -rf /var/cache/apt/archives/*  

#安装build-essential(包含了make和gcc)
apt install build-essential  

#将缓存的安装包全部复制到build-essential这个目录中
cp -r /var/cache/apt/archives/*  /build-essential/  

通过ftp或者U盘的方式复制到主机A (注意ftp必须使用二进制方式传输)
dpkg -i *.*  

三十二、 linux查看CPU是否支持虚拟化

#结果大于0表示支持虚拟化
egrep -c '(vmx|svm)' /proc/cpuinfo

三十三、 ubuntu 禁⽌系统⾃动更新的⽅法

界⾯操作
系统设置–>软件和更新–>更新,将“⾃动检查更新”和“有新版本时通知我”设置为“从不“,关闭
对话框完成设置。

修改配置⽂件
修改配置⽂件/etc/apt/apt.conf.d/10periodic
将“1”改为“0”,保存即可

vim /etc/apt/apt.conf.d/10periodic
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";

linux错误提示‘E: Could not get lock /var/lib/dpkg/lock’ Error

是因为没有关闭自动更新,提示这个错误,说明系统正在更新


三十四、 untu20.04安装独立显卡驱动

主机有nivdia显卡安装ubuntu时选择进入安全模式,然后安装过程中按esc和ctrl+c跳过系统检测,这样就避免了安装过程中的错误,安装完成后更换国内源。
点击右上角的设置——关于——软件更新——附加驱动——点击对应的驱动即可自动安装


三十五、 ubuntu上安装anydesk 其他电脑连接提示错误display server not supported

在Ubuntu上安装anydesk 别的电脑连接过来的时候会出现 display_server_not_supported 的错误

需要修改
/etc/gdm3/custom.conf
WaylandEnable=false    #将这行的注释去除

三十六、ubuntu上ufw防火墙设置

ubuntu上默认安装了ufw,这个防火墙设置简单,底层还是使用的iptables

ufw status	#查看ufw防火墙状态及规则
ufw enable	#启用ufw防火墙
ufw disable	#停用ufw防火墙

systemctl enable ufw    #设置开机启动ufw防火墙
systemctl disable ufw   #永久关闭ufw防火墙

ufw default deny	#默认拒绝所有
ufw default allow	#默认允许所有

ufw allow 22/tcp	#允许tcp的22端口
ufw deny 22/tcp	       #拒绝tcp的22端口

ufw allow 3000:4000/tcp    #允许tcp的3000到4000端口

ufw status numbered     #查看ufw防火墙并显示规则编号
ufw delete 2                 #删除指定编号的规则
ufw reset	#重置防火墙,清除所有规则

ufw logging on	#开启防火墙日志
ufw logging off	#关闭防火墙日志

需要注意的一点,即使设置了拒绝所有,ufw防火墙也是允许icmp的


三十七、windows连接ubuntu的SSH服务

ubuntu默认是没有安装SSH服务的

1 .安装ssh服务

apt update   #更新源
apt install openssh-server   #安装ssh服务

2 .查看SSH服务状态是否启用,并设置启动

systemctl status ssh.service     #查看ssh服务状态
systemctl start ssh.service      #启用ssh服务
systemctl stop ssh.service       #停用ssh服务

在windows上使用telnet到ubuntu的22端口,可以查看SSH版本,一般都是SSHv2版
在windows上使用SecureCRT连接,需要注意默认情况下ubuntu是不支持使用root账号直接登录SSH的,先使用普通用户SSH连接到ubuntu后,再su切换到root用户,ubuntu上使用whoami查看当前登录的用户名

SecureCRT ssh连接ubuntu提示密钥交换失败

#修改配置文件,在最后一行添加如下内容
nano /etc/ssh/sshd_config

KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1

三十八、 使用openssl加密解密文件示例

使用aes对称加密算法加密解密文件

#查看文件的MD5值
openssl dgst -md5 test.docx 

#查看文件的SHA1值
openssl dgst -sha1 test.docx

#使用openssl生成随机数
openssl rand -hex 123
openssl rand -base64 123

#使用aes对称密钥加密test.txt文件,密码123456,输出文件是out.txt
openssl enc -e -aes-128-cbc -in test.txt -out out.txt -pass pass:123456

#使用aes对称密钥解密out.txt文件,密码123456
openssl enc -d -aes-128-cbc -in out.txt -out test2.txt -pass pass:123456

#生成一段随机数给到key1.txt
openssl rand -hex 123 > key1.txt

#使用key1.txt这个文件里面的随机数作为加密的密码
openssl enc -e -aes-128-cbc -in test.txt -out out2.txt -pass file:key1.txt 

#使用key1.txt这个文件里面的随机数作为解密的密码
openssl enc -d -aes-128-cbc -in out2.txt -out test3.txt -pass file:key1.txt

使用rsa非对称加密算法加密解密文件

#使用rsa算法生成私钥长度1024
#这里的格式可以是pem也可以是der
openssl genrsa -out mykey.pem 1024

#从私钥中提取出公钥
openssl rsa -in mykey.pem -pubout -out mypub.pem

#使用公钥加密test.txt文件,输出out.txt文件
openssl rsautl -encrypt -in test.txt -inkey mypub.pem -pubin -out out.txt

#使用私钥解密out.txt文件,输出test2.txt文件
openssl rsautl -decrypt -in out.txt -inkey mykey.pem -out test2.txt

#使用私钥加密test.txt文件,输出out.txt文件
openssl rsautl -sign -in test.txt -inkey mykey.pem -out out.txt

#使用公钥解密out.txt文件,输出test2.txt文件
openssl rsautl -verify -in out.txt -inkey mypub.pem -pubin -out test2.txt

补充说明:
公钥和私钥是成对的,公钥是可以在互联网上传播,可以给任何人看,使用公钥加密的文件,公钥是无法解密的,只有对应的私钥才能解密。
密钥后缀pem和der , pem - base64编码 ,der - 二进制编码

三十九、ubuntu22.04自带录屏工具

直接按PrtSc键,可以选择录屏,也可以选择区域录制,同时也没有了之前的30秒限制,录制的文件非常的小,录制的文件自动保存在视频这个目录里,缺点是无法录制声音,这点对我来说完全没有影响。感觉ubuntu22.04这个版本简直爆赞。

四十、ubuntu更新chrome

apt-get --only-upgrade install google-chrome-stable

四十一、ubuntu 使用自带远程桌面

ubuntu桌面版系统自带了一个vnc服务端,叫vino
设置–共享–屏幕共享–需要密码

在这里插入图片描述
安装dconf-editor工具

apt-get install dconf-editor

使用dconf-editor工具关闭安全认证
图形界面下打开dconf
/org/gnome/desktop/remote-access
将requlre-encryption关闭
在这里插入图片描述
或者直接使用命令关闭安全认证

gsettings set org.gnome.Vino require-encryption false

查看端口是否侦听

netstat -ap | grep vino

window下使用Realvnc 远程桌面连接到ubuntu
在这里插入图片描述

四十二、iptables防火墙设置

#启用防火墙
service iptables start  
systemctl start  iptables.service

#禁用防火墙
service iptables stop 
systemctl stop  iptables.service

#查看规则
iptables -L -n

#保存规则
iptables-save

#保存规则到指定位置
iptables-save > /root/firewall_rules.backup

#预设规则,入站拒绝,出站允许,转发拒绝
iptables -p INPUT DROP
iptables -p OUTPUT ACCEPT
iptables -p FORWARD DROP

#清除所有配置,并允许所有
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

#还原规则
iptables-restore </root/firewall_rules.backup

#允许SSH连接
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT 

#允许ICMP
iptables -A OUTPUT -p icmp -j ACCEPT 
iptables -A INPUT -p icmp -j ACCEPT   


#允许本地环回口
iptables -A INPUT -i lo -p all -j ACCEPT 
iptables -A OUTPUT -o lo -p all -j ACCEPT

#只允许个IP访问SSH
iptables -A INPUT -s 192.168.0.3 -p tcp --dport 22 -j ACCEPT

#只允许某个网段的IP访问SSH
iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT

四十三、 Debian 5 修改IP及DNS

#修改IP地址
nano /etc/network/interfaces

#修改DNS
nano /etc/resolv.conf

#重启网卡,使配置生效
/etc/init.d/networking restart

四十四、 Debian 5 启用禁用ssh服务

#启用ssh
/etc/init.d/ssh start

#禁用ssh
/etc/init.d/ssh stop

#查看状态
/etc/init.d/ssh status

#查看22端口运行情况
netstat -tunlp | grep 22

四十五、vbox下ubuntu虚拟机使用共享文件夹

方法一:

virtualbox的共享文件夹一般都挂载在/media下面,用ll查看会发现文件夹的所有者是root,所有组是vboxsf,所以文件管理去无法访问是正常的,解决方法是把你自己加入到vboxsf组里面。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

chb@chbpc05:~/桌面$ whoami
chb
chb@chbpc05:~/桌面$ sudo usermod -a -G vboxsf chb
[sudo] chb 的密码: 

重启后即可

方法二:

宿主机win10 ,安装vbox并运行ubuntu虚拟机,想使用vbox的共享文件夹功能
(如果宿主机和虚拟机都是win10的话直接就能用)
1.在宿主机win10的D盘创建一个文件夹名为myshare

2.使用vbox打开ubuntu,点击设备->共享文件夹->选择D盘的myshare文件夹,勾选“固定分配”
在这里插入图片描述

3.在ubuntu虚拟机中,打开终端在root权限下执行以下命令
#创建目录

mkdir /mnt/share

#挂载(每次重启虚拟机需重新挂载)

mount -t vboxsf myshare /mnt/share

四十六、ubuntu开机启动脚本

1.编辑以下文件,添加内容如下
/lib/systemd/system/rc-local.service

[Install]
WantedBy=multi-user.target

在这里插入图片描述
2.复制文件

cp /usr/lib/systemd/system/rc-local.service /etc/systemd/system/

3.创建文件并修改权限

touch /etc/rc.local
echo '''#!/bin/bash''' >> /etc/rc.local
chmod 777 /etc/rc.local

4.设置开机启动rc-local.service服务

systemctl enable rc-local.service

重启
5.编辑 /etc/rc.local添加内容如下

sleep 6
mount -t vboxsf myshare /mnt/share

exit 0

6.重启看效果

四十七、ubuntu使用定时任务crontab

#安装cron
apt install cron

#查看cron服务状态
systemctl status cron

#开机启动cron服务
systemctl enable cron

#查看cron任务
crontab -l

#编辑cron任务并添加如下内容
crontab -e

#每分钟执行这个脚本
*/1 * * * * /root/1.sh

四十八、ubuntu22.04安装docker engine

#更新软件
apt-get update

#安装必要软件
apt-get install apt-transport-https ca-certificates curl gnupg gnupg-agent lsb-release software-properties-common

#添加 docker 的官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |  apt-key add -

#添加docker的存储库
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb\_release -cs) stable"

#再次更新软件
apt-get update

#安装docker engine
apt-get install docker-ce docker-ce-cli containerd.io

#设置开机启动docker服务
systemctl enable docker

#查看docker版本
docker --version

#查看当前用户
whoami
chb

#将当前用户添加到docker组
usermod -aG docker chb

四十九、Ubuntu22.04 docker配置镜像加速器

在/etc/docker/目录下创建daemon.json并编辑内容如下

{

  "registry-mirrors":[

    "https://hub-mirror.c.163.com",

    "https://mirror.baidubce.com"

  ]

}

重启

验证镜像加速器是否生效
docker info 查看输出结果有如下内容,表示配置成功

Registry Mirrors:
https://hub-mirror.c.163.com/
https://mirror.baidubce.com/

五十、Ubuntu22.04 docker获取镜像

#获取ubuntu18.04镜像
docker pull ubuntu:18.04

#以ubuntu18.04镜像为基础运行一个容器
docker run -it --rm ubuntu:18.04 bash

#查看容器的系统版本是ubuntu18.04(宿主机是ubuntu22.04)
cat /etc/os-release

在这里插入图片描述

通过exit退出容器

总结

未完待续

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神秘剑客_CN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值