1.将整个test1目录复制到test2目录中:
cp -r /test1/ /test2/
2.将磁盘sdb1挂载到文件夹mnt下:
# 先查看磁盘列表
fdisk -l
# 挂载磁盘
mount /dev/sdb1 /mnt
如果mnt目录不存在,要先创建:
mkdir /mnt
取消挂载:
umount /mnt
查看磁盘的挂载情况:
df -hk
3.针对ubuntu server 16.04设置使用root登录ssh。
先确认是否安装了openssh:
sudo ps -e|grep ssh
如果安装了会显示的,我的这个结果表示没有安装:
安装openssh服务:
sudo apt-get install openssh-server
开启服务:
sudo service ssh start
开启服务之后,不需要做其他的设置,使用22端口就可以进行ssh远程登录了,如果不能登录,看下你的防火墙是否有限制。
到这里,只是使用普通用户登录,如果要使用root用户登录,那么还需要做其他的配置。
设置root用户密码:
sudo passwd root
修改/etc/ssh/sshd_config,将PermitRootLogin prohibit-password改为PermitRootLogin yes,如果提示只读,就用wq!命令强制覆盖。重启ssh:
sudo service ssh restart
这个时候就可以远程使用root连接了。
4.安装java:https://openjdk.java.net/install/index.html
5.打包:
# 将目录dirname打包到filename.tar
tar -cvf filename.tar dirname
# 打包当前目录
tar -zcvf filename.tar.gz *
# 解包到当前目录下
tar -xvf filename.tar
6.修改apt源,修改/etc/apt/sources.list,在最前面添加如下源地址:
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
更新生效:apt update
7.模糊查询:
# 查找当前目录以及子目录所有包含abc的文件
find . -name '*abc*'
8.打包整个ubuntu系统成docker镜像
# 依次执行
sudo su
cd /
tar -cvpzf /media/ubuntusystem.tar --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys --exclude=/media /
# 拷贝system.tar到docker宿主机
# 在docker宿主机上,运行命令
docker import system.tar ubuntusystem_img
9.模糊查询
# 当前目录下查询名字里面包含test的文件或者目录
find . -name '*test*'
10.克隆整个系统到另外一台机器,使用开源软件再生龙(clonezilla):https://clonezilla.org/。该工具不单单可以克隆系统,还有其他的实用功能。
11.创建文件软链接:
# 将/user/data目录链接到/data
ln -s /user/data /data
# 将/home/test.so文件链接到/usr/lib/test.so
ln -s /home/test.so /usr/lib/test.so
12.ubuntu忘记密码,一种方式是使用recovery mode,这个网上的方法很多。有些简化的系统没有recovery mode,那么如果忘记密码了,可以采用直接修改文件的方式解决。首先使用U盘创建一个ubuntu的启动盘,然后使用该启动盘启动忘记密码的机器,进入到ubuntu的试用系统,试用系统此时是没有root权限的,在终端开启一下:
# 修改root密码
sudo passwd root
# 切换到root用户
su root
将原系统的硬盘挂载进来,然后修改密码存放的文件,ubuntu用户密码文件存放在/etc/passwd和/etc/shadow里面,/etc/passwd存放的是用户信息,系统加密处理后的密码存放在/etc/shadow里面,/etc/shadow的内容如图,红框里的是密码部分:
加密区域如果是*,表示这个用户没有被启用。在ubuntu试用系统里面创建一个用户,设置一个密码,然后把该账户的密码区域拷贝出来,替换掉忘记密码的账户的加密区域,那么这个账户的密码就被修改成了新设置的那个密码。
13.查看版本和位数:
# 查看版本
cat /etc/issue
# 查看具体
cat /etc/lsb-release
# 查看内核
uname -a
# 查看位数
getconf LONG_BIT
14.系统自带vi是tiny模式的,这个模式的vi无法正常输入,要解决这个问题,可以通过安装vim解决:sudo apt install vim。但是对于虚拟机,刚刚创建,由于apt源的问题,要安装非常慢,但是vi不能正常试用,又无法修改源地址。另外一个解决办法就是修改掉vi的模式,方式是修改/etc/vim/vimrc.tiny,将“set compatible”修改成“set nocompatible”,由于无法正常换行,因此修改了之后,先保存退出。然后再增加一行:set backspace=2,保存退出,就可以正常使用vi了。
15.snap安装离线包。正常通过snap下载包的方式:
snap download core
下载的内容会放到root目录下:
.assert
是软件包的元数据信息,包括签名和权限控制信息,.snap
是实际的安装文件。安装时先注册.assert,再安装包:
sudo snap ack /root/core_10823.assert
sudo snap install /root/core_10823.snap
如果网上下载的包,没有.assert文件,可以通过--dangerous模式安装:
sudo snap install /root/core_10823.snap --dangerous
如--dangerous
所提示的是,这种模式有些“危险”。这是因为缺少.assert
文件所描述的签名信息和权限控制信息,意味着软件不是在“沙盒”环境下执行的,运行过程不受控。但只要.snap来源可信,就没什么问题,这个有些类似于我们使用mac电脑时不通过app store安装软件。
core是所有snap应用的基础,在安装其他应用前,要先安装core。
16.查看开机启动项
systemctl list-unit-files --type=service|grep enabled
17.查看服务状态
systemctl status mysql
18.查看服务运行日志
# 异常信息
journalctl -xe
# 所有信息
journalctl -f
19.新增用户
sudo adduser ceshi
提示信息如下:
输入密码后:
中间这几个信息(Full Name、Room Number、Work Phone、Home Phone、Other)都是和系统无关的私人信息,属于这个用户的个人信息,家庭住址工作电话啊之类的,都可以不用填。输入y,回车,用户就创建好了。
20.解决软件报apparmor=“DENIED“ operation=“exec“之类的错误,解决方案在另一篇博客:https://blog.csdn.net/dap769815768/article/details/114369686
21.Docker启动32位的ubuntu容器,可以从官方下载站点下载对应版本的base包,格式是.tar.gz的,这种包可以直接被docker加载成镜像:http://cdimage.ubuntu.com/ubuntu-base/releases/,使用如下的命令:
docker import ./ubuntu-base-16.04.6-base-i386.tar.gz ubuntu16.04.06-32
注意,这里要用import,而不是load。否则会报错:
open /var/lib/docker/tmp/docker-import-091873607/bin/json: no such file or directory
这是因为import加载的是容器通过export导出的镜像文件,而load加载的是镜像通过save导出的镜像文件。
镜像创建好之后,要想容器启动后维持开启状态,需要使用下面的命令:
docker run -d -i -t --name=ubuntu16.04.06-32 -v /home:/home ubuntu16.04.06-32 /bin/bash
22.针对ubuntu20开启root访问ssh权限:
1)安装open-ssh:
sudo apt install openssh-server
2)设置root密码:
sudo passwd root
3)修改/etc/ssh/sshd_config,将:
#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
改为:
LoginGraceTime 2m
PermitRootLogin yes
StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
4)重启:
sudo service ssh restart
23.离线安装apt包。有些系统在没有网络的情况下,又需要通过apt安装包,那么可以通过将apt下载的依赖包单独导出来进行安装。apt下载的包都存放/var/cache/apt/archives里面。apt-get只下载不安装的方法:
apt-get install -d snapd
下载内容存放在/var/cache/apt/archives里面。将里面的.deb安装包全部拷贝到没有网络的系统的某个目录下,然后执行:
dpkg -i ./*.deb
由于存在依赖关系,首次安装可能因为顺序原因无法完全安装成功,那么就多执行两次,或者看下失败的包依赖哪个包,单独安装那个包。
24.使用echo往文件里写内容:
# 覆盖,可以不加双引号
echo "test" > test.txt
# 追加一行
echo "test" >> test.txt
25.apt-get下载常用工具:
# 只下载不安装,如果要直接安装去掉-d
# 安装前要执行该命令
apt-get update
# apparmor工具
apt-get install -d apparmor-utils
# snap
apt-get install -d snaps
# ping
apt-get install -d inutile-ping
# ifconfig
apt-get install -d net-tools
# curl
apt-get install -d curl
# vim
apt-get install -d vim
26.网络出站规则。有限情况下,你可能只想你的服务器只能访问特定的地址,其他的地址一律禁止。比如在工厂的工控机一般都有这样的需求。那么可以通过iptables
首先使用iptables禁止所有的出站:
iptables -I OUTPUT -j REJECT
然后放开指定的ip:
# 允许数据出站到指定的ip
iptables -I OUTPUT -d 192.168.10.66 -j ACCEPT
# 端口
iptables -I OUTPUT -p tcp --sport 22 -j ACCEPT
# 允许ping,该条命令允许本地能够ping通所有的ip
# iptables -I OUTPUT -p icmp -j ACCEPT
# 该条命令只允许本地能够ping通192.168.10.66
iptables -I OUTPUT -d 192.168.10.66 -p icmp -j ACCEPT
-d表示destination,-s表示source。这样设置之后,该ip就可以正常通过ssh连接该设备了。
iptables的配置只是保存在内存中,如果重启,就失效了,永久生效的方法如下。
使用命令:
iptables-save >/root/iptables.rules
文件名和地址可以根据你自己的喜好来定。保存之后,配置/etc/network/interfaces,把下面的内容加到最后:
pre-up iptables-restore < /root/iptables.rules
pre-up表示网卡启用前。
注意,这里的方法目前只对ubuntu16有效,因为20的网络配置并不在这个文件,而是在/etc/netplan/里面。所以该方法针对20版本的系统无效。
27.查看出站规则:
iptables -L OUTPUT
删除出站规则:
# 删除第一条OUTPUT规则
iptables -D OUTPUT 1