1、ubuntu操作记录
1、ubuntu使用mysql
安装mariadb数据库:
sudo apt install mariadb-server-10.1 # 自己选择版本
sudo apt install mariadb-client-10.1 # 自己选择版本
1.1、修改密码
ubuntu在安装数据库时,会出现没有设置密码的情况,解决方案如下:
- 终端输入:
sudo cat /etc/mysql/debian.cnf
查看默认的密码
如果password为空:sudo mysql -u [查找的用户名] -p
回车即可进入连接数据库,再改密码即可。 - 终端输入:
mysql -u [查到的用户名] -p
,再输入查找的密码后,进入mysql中,在mysql中输入以下内容:
mysql> show databases;
mysql> use mysql;
mysql> update user set authentication_string=PASSWORD("root") where user="root";
mysql> update user set plugin="mysql_native_password";
mysql> flush privileges;
mysql> quit;
- 在终端中输入
sudo /etc/init.d/mysql restart
; 命令,重启mysql服务 - 使用新密码登陆
详情见: https://blog.youkuaiyun.com/shihuangdeng898/article/details/84147270
1.2、创建用户
命令:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
#删除用户
drop user 'username'@'host'
说明:
- username:你将创建的用户名
- host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
- password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
示例:
CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '';
CREATE USER 'pig'@'%';
1.3、授权
命令:
GRANT privileges ON databasename.tablename TO 'username'@'host'
说明:
- privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
- databasename:数据库名
- tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如.*
示例:
GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';
GRANT ALL ON maindataplus.* TO 'pig'@'%';
注意:
用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
更多操作见: https://www.cnblogs.com/sos-blue/p/6852945.html
1.4、执行sql文件
mysql -u[user] -p[psw] databaseName<sql文件路径
- 进入mysql中,use数据库,再使用
source sql文件路径
导入表。
1.5、安装Navicat出现乱码
- 将安装目录下的
start_navicat
文件中的字符集改为zh_CN.UTF-8
- 在界面选项中修改字体,见:https://www.cnblogs.com/tanrong/p/10173109.html
- 修改字体为:
Noto Sans mono CJK SC Regular
2、apache-activemq
需要先安装openjdk,代码:sudo apt-get install openjdk-8-jdk
3、软件快捷方式
cd /usr/share/applications
sudo gedit navicat.desktop
在跳出的编辑器中,写入以下代码:
[Desktop Entry]
Encoding=UTF-8
Name=Navicat # 软件名称
Comment=Navicat Premium # 软件描述
Exec=/home/rongt/software/navicat121_mongodb_cs_x64/start_navicat #(脚本启动路径)
Icon=/home/rongt/software/navicat121_mongodb_cs_x64/Navicat.png # (图标路径)
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Development;
4、Markdown软件Typora的安装
在Ubuntu商店中安装的Typora可能会出现无法使用搜狗拼音的问题,因此需要卸载商店安装的Typora,重新从官网进行安装。安装命令如下:
wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add -
sudo add-apt-repository 'deb https://typora.io/linux ./'
sudo apt-get update
sudo apt-get install typora
安装完成!
5、Ubuntu中无法自启动搜狗拼音或显示栏乱码
转载自:https://blog.youkuaiyun.com/qq_36528804/article/details/83751554
使用命令:pidof fcitx|xargs kill
。即可正常使用
在Ubuntu系统上安装搜狗输入法可能会出现候选词显示英文乱码,网上查了一下,按照网上提供的方法,打开终端输入如下命令
cd ~/.config
rm -rf SogouPY* sogou*
再重启,重启之后是不显示乱码了,但等下次再重启之后又会出现乱码的问题。
网上查了一下,发现有更好的解决办法如下,在终端中输入如下命令:
#fictx自带的重启
fcitx -r
或者执行以下三条:
# 获得fcitx的进程id并kill
pidof fcitx|xargs kill
# 重新后台模式打开fcitx
fcitx &
# 打开sogou
sogou-qimpanel &
不用重启,即可解决。
6、关于Anaconda的基本操作
6.1、常用命令
conda create -n [环境名称] python=[版本] # 创建新环境,指定Python版本
conda create -n [环境名称] [第三方库]... # 创建环境时,安装指定库
conda remove -n [环境名称] --all # 删除环境
conda remove -n [环境名称] [第三方库] # 删除某个第三方库
conda activate [环境名称] # 激活环境
conda deactivate # 退出环境
conda env list # 显示所有的环境列表
conda info -e # 同上,显示所有的环境列表
conda list # 列举当前环境下的所有包
conda install [第三方库] # 安装第三方库
conda install -n [环境名称] [第三方库] # 为指定环境安装指定包
conda update [第三方库] # 更新当前环境下的某个库
6.2、修改环境名称
先克隆旧环境,再删除旧环境
- 第一步,克隆旧环境致新环境中。
conda create -n [新名称] --clone [旧环境名称]
- 第2步,删除旧环境
conda remove -n rcnn --all
6.3、分享环境(环境打包)
- 生存环境文件
conda env export -n [环境名称] > environment.yml
- 使用yml文件安装环境
conda env create -n [环境名称] -f environment.yml
7、ubuntu18.04安装docker
-
更换国内软件源,推荐中国科技大学的源,稳定速度快(可选)
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list sudo apt update
-
安装需要的包
sudo apt install apt-transport-https ca-certificates software-properties-common curl
-
添加GPG秘钥,并添加Docker-ce软件源,这里以中国科技大学的Docker-ce源为例
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \ $(lsb_release -cs) stable"
-
添加成功后更新软件包缓存
sudo apt update
-
安装Docker-ce
sudo apt install docker-ce
-
设置开机自启动并启动 Docker-ce(安装成功后默认已设置并启动,可忽略)
sudo systemctl enable docker sudo systemctl start docker
-
测试运行
sudo docker run hello-world
-
添加当前用户到 docker 用户组,可以不用 sudo 运行 docker(可选)
sudo groupadd docker sudo usermod -aG docker $USER
-
测试添加用户组(可选)
docker run hello-world
8、配置开机自启脚本
8.1、文件配置
systemd默认读取/etc/systemd/system下的配置文件,该目录下的文件会链接/lib/systemd/system/下的文件。一般系统安装完/lib/systemd/system/下会有rc-local.service文件,即我们需要的配置文件。
链接过来:
#将/lib/systemd/system下的rc-local.server软链接到etc中
ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service
cd /etc/systemd/system/
cat rc-local.service
rc-local.service文件内容
:
# SPDX-License-Identifier: LGPL-2.1+
#
# 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.
# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
- [Unit] 区块:启动顺序与依赖关系。
- [Service] 区块:启动行为,如何启动,启动类型。
- [Install] 区块,定义如何安装这个配置文件,即怎样做到开机启动。
8.2、创建rc.local
文件
sudo touch /etc/rc.local
8.3、添加执行权限
sudo chmod 755 /etc/rc.local
8.4、编辑rc.local
文件,添加自启任务
#!/bin/bash
echo "你好"
reboot重启
2、树莓派操作
2.1、Ubuntu和树莓派文件传输
scp 文件 用户名@ip:/home
#输入密码即可进行传输
#双方电脑都需要安装ssh服务
2.2、设置wifi连接
在/etc/wpa_supplicant/wpa_supplicant.conf
文件中添加信息
network={
ssid="WiFi-name1"
psk="WiFi-password1"
priority=5
}
network={
ssid="WiFi-name2"
psk="WiFi-password2"
priority=4
}
#priority是WiFi优先级,数值越大优先级越高
2.3、设置用户自动登录
- 修改pi默认密码,添加root密码
#修改文件
sudo vim /etc/systemd/system/getty.target.wants/getty\@tty1.service
#我们只要把第28 行从:
ExecStart=-/sbin/agetty --noclear %I $TERM
#改为:
ExecStart=-/sbin/agetty --autologin root --noclear %I $TERM
#保存后,重启就可以自动以root用户登录了。(如果改为其他用户,将以那个设置的用户免密码登录树莓派
2.4、安装virtualenvwrapper
sudo pip3 install virtualenvwrapper -i https://pypi.douban.com/simple
配置virtualenvwrapper
#搜索virtualenvwrapper.sh的位置
sudo vim ~/.bashrc
#在文件的末尾添加
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh #地址
刷新:source ~/.bashrc
2.5、烧录系统
下载官网系统,使用Etcher软件进行烧录
2.6、设置网络
在树莓派的/etc/wpa_supplicant/wpa_supplicant.conf文件中进行修改,添加你的WiFi名字和密码
network={
ssid="wifi名字"
psk="WiFi密码"
priority=1
}
// 参数介绍
ssid:网络的ssid
psk:密码
priority:连接优先级,数字越大优先级越高(不可以是负数)
scan_ssid:连接隐藏WiFi时需要指定该值为1
2.7、进入树莓派系统
默认的登录账号:pi 密码:raspberry
查看树莓派版本
cat /proc/cpuinfo
2.7.1、校正树莓派时间
// 设置时区为 亚洲(Asia) 上海(Shanghai)
sudo dpkg-reconfigure tzdata
// 启动 NTP 使计算机时钟与 Internet 时间服务器同步
sudo timedatectl set-ntp true
2.7.2、修改开启ssh和spi
使用sudo raspi-config
命令进入配置界面,选择第五个》更改ssh和spi为开
然后确认,重启
进入系统后安装ssh和openssh-server
开启远程root用户登录方法:
修改/etc/ssh/sshd_config内的:
#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
改为:
LoginGraceTime 2m
PermitRootLogin yes
#PermitRootLogin prohibit-password
StrictModes yes
2.8、用户修改
2.8.1、修改pi用户密码
passwd pi
根据提示输入两次密码,提示修改成功
2.8.2、启用root用户
passwd root
修改root用户密码
su -
切换root用户,输入密码
2.8.4、增加用户
useradd -m -s /bin/bash/ jly
增加jly用户,-m强制增加家目录,-s设置默认shell
2.8.4、开启自动用户免密登陆
先切换为root用户
然后修改配置文件:/etc/systemd/system/getty.target.wants/getty\@tty1.service
路径下
将其中的ExecStart=-/sbin/agetty --noclear %I $TERM
,修改为ExecStart=-/sbin/agetty --autologin (你想要自动免密登陆的用户名) --noclear %I $TERM
2.9、安装环境和需要的Python包
先安装pip3,之后使用pip3 install -r (环境).txt
批量安装
pandas装不上的可以使用sudo apt install python3-pandas
安装
2.10、将文件上传至树莓派
从本地上传文件命令:sudo scp (需要上传的文件) (树莓派用户)@(树莓派IP):(需要上传到树莓派的文件路径)
上传文件夹时加上-r
参数
测试运行项目
2.11、开机自动运行脚本
把需要运行的脚本添加到文件/etc/rc.local里
注意添加到exit 0上方,才开机自动可以运行
2.12、安装can驱动
2.12.1、 虚拟驱动安装
sudo modprobe vcan
# Create a vcan network interface with a specific name
sudo ip link add dev can0 type vcan
sudo ip link set can0 up
2.12.2、真实设备驱动安装
修改树莓派的/boot/config.txt
sudo vim /boot/config.txt
在config.txt最后加入
记得启动spi和i2c
dtparam=spi=on
dtoverlay=mcp2515-can0,oscillator=8000000,interrupt=25
dtoverlay=spi-bcm2835-overlay
其中模块使用mcp2515-can0,时钟晶振频率为8M,中断25,实际之前配置已经启动了spi,这里第一句修改启动文件,可以确保开机生效,之后sudo reboot
2.13、拷贝系统
sudo dd bs=4M if=/dev/mmcblk0 of=/dev/sda
mmcblk0就是树莓派上原来的存储卡
sda就是插入的USB存储设备(可能会随着接入的设备多少而改变,如可能为sdb,sdc等,自己根据情况去判断是哪一个)
3、docker使用记录
-
检查docker版本
docker version
-
搜索可用镜像
docker search [镜像名称]
-
下载镜像(在docker网站中,镜像都是以[用户名/镜像名]进行存储的)
docker pull [查找到的镜像名称]
-
在刚下载的镜像中输出“hello world!”
docker run learn/tutorial echo "hello word"
-
在容器中安装新程序
docker run [安装的镜像] apt-get install -y ping #参数-y可避免进入交互模式,而docker不支持交互
-
保存对容器的修改
docker ps -l #获取到安装ping命令之后的容器的id docker commit [容器id] [新名称] #容器id不需要拷贝完整id,3-4位即可区分
-
运行新镜像
docker run [新镜像名称] ping www.baidu.com
-
检查运行中的镜像
docker ps # 可以查看所有正在运行中的容器列表 docker inspect [容器id] # 可以查看容器详情
-
发布个人镜像
- 在官网注册账号
- linux端docker 登录
- 打包
- push
docker使用
1.查看容器运行
docker ps
2.查看当前容器的标准输出
docker logs (容器id或者容器名称name)
3.停止容器
docker stop (容器id或者name)
4.运行容器
docker run
参数:-t:在新容器内指定一个伪终端或终端
-i:允许你对容器内的标准输入进行交互 如:docker run -i -t ubuntu:15.10 /bin/bash
-d:让容器在后台运行
5.列出本地镜像
docker images
6.删除本地镜像
docker rmi -f (镜像id)
7.删除日志记录
docker rm $(docker ps -a -q)删除全部
docker rm (镜像id)
8.下载镜像
docker pull (镜像名称)
9.查找镜像源
docker search (需要查找的名称)
会自动从Docker Hub网站搜索镜像,网址为:https://hub.docker.com/
10.更新镜像
先使用镜像创建一个容器:docker run -i -t ubuntu:15.10 /bin/bash
在容器内执行apt-get update
命令进行更新,然后exit
退出
使用docker commit提交,记住这个容器的id
docker commit -m="has update" -a="name1" 12345678 aaaa/bbbb:v1
参数说明:
-m:提交的描述信息
-a:指定镜像作者
12345678:容器id
aaaa/bbbb:v1:制定要创建的目标镜像名
可以使用docker images查看新的镜像aaaa/bbbb:v1
11.构建镜像
使用docker build命令创建一个新的镜像,在此之前我们需要创建一个Dockerfile文件,基于这个文件来创建什么样的镜像。
先创建一个文件夹用于存放我们的Dockerfile文件
cd /opt/static_file/
sudo vim Dockerfile
输入以下内容:
FROM ubuntu:latest
MAINTAINER Bourbon Tian "bourbon@1mcloud.com"
RUN apt-get update
RUN apt-get install -y nginx
RUN echo ‘Hi, I am in your container’ > /usr/share/nginx/html/index.html
EXPOSE 80
Dockerfile是由一系列的指令和参数组成,每条指令都必须大写。Dockerfile中的指令会按照从上往下的顺序依次执行。大致流程如下:
- docker从基础镜像上运行一个容器
- 执行第一条指令,对容器进行修改
- docker再给予刚提交的镜像运行一个新的容器
- 继续执行Dockerfile中的下一条指令,直到所有的指令都执行完毕
FROM:
每个Dockerfile的第一个指令都要是FROM,这个表示的是指定一个已经存在的镜像,在这个镜像的基础智商执行后续命令。
MAINTAINER:
这个指令会告诉docker该镜像的作者是谁,邮箱地址
RUN:
这条指令代表在该镜像中运行指定的命令
EXPOSE:
EXPOSE指令是告诉docker该容器内的应用程序将会使用的容器端口号,可以有多个EXPOSE指令。docker不会自动打开这个端口号,需要在docker run时指定打开哪个端口
执行docker build命令时,Dockerfile中的所有指令都会被提交,成功后返回新的镜像id。类似“Successfully built 94728651ce15”
docker build -t (镜像名称) .)
参数解释:
-t:指定要创建的目标镜像名
.:Dockerfile文件的所在目录,这里是当前目录,也可以指定Dockerfile的绝对路径
注意:可以使用–no-cache在docker build是指定不适用缓存
使用docker images命令查看新构建的镜像,使用docker history (镜像id)查看镜像的每一层,以及创建这些层的Dockerfile指令。