文章目录
- 一. Ubuntu的安装
- 1.1 Ubuntu独立安装
- 1.1.1 制作Ubuntu启动U盘
- 1.1.2 win10系统安装双系统Ubuntu
- a. 开辟Ubuntu系统空间
- b. 开机U盘加载Ubuntu
- c. 等待系统初始化
- d. win10重装系统后重新引导boot到启动(开机没有启动选择的时候需要手动创建)
- e. 在win10构建ubuntu开机引导, 默认Ubuntu已经插入了开机引导
- 1.2 win10中VM虚拟机中安装Ubuntu链接
- 1.3 win10子系统 Ubuntu WSL
- 1.3.1 打开功能
- 1.3.2 在应用商店下载Ubuntu18.04
- 1.3.3 初始化输入账号密码
- 二. 子系统WSL命令
- 三. Ubuntu初始配置
- 3.1 修改源,下载更新
- Ubuntu版本22.04
- 3.2 安装搜狗输入法
- 3.3 设置系统中文
- 3.4 设置命令行只显示当前路径
- 3.5 截图
- 3.6 播放器
- 3.7 如果不小心把系统设置删除了
- 3.7 对~/.bashrc误操作造成所有系统命令失效
- 3.8 如果提示源不可用或者下载无效
- 3.9 非常好用的全代码编辑器sublime
- 3.10 另一个非常好用的代码编辑器 VScode
- 3.11 如果开机默认进入ubuntu系统
- 3.12 安装完系统后找不到WiFi
- 3.13 使用deepin wine容器插入WeChat 和QQ等win软件
- a. 下载wine框架
- b.安装deepin.com应用
- 3.14 python&conda
- 3.15 命令行搜索查找文件 `updatedb`更新数据库
- 3.16 同步Ubuntu和win10系统时间
- 3.17 三种网络文件共享方式
- a python自带的文件共享
- b ssh文件传输
- c 搭建Samba文件共享服务器
- 3.18 安装完Ubuntu, U盘怎么恢复
- 3.19 Firefox浏览器
- 登陆账号同步标签
- 3.20 屏幕自己转了90度, 在旋转回来...
- 3.21 命令行被锁定 ctr+s, ctr+q
- 3.22 命令行将数据上传到百度网盘, 适用于远程ssh连接操作
- 3.23 安装llvm+clang
- 3.24 vim中显示行数, vim显示中文, vim鼠标右键可以粘贴
- 3.25 修改密码
- 3.26 压缩解压
- 3.27 bash文件格式错误错误
- 3.28 `ssh` 操作
- a 配置
- b `ssh`后台运行
- c 设置win10开机自启动WSL功能
- d 设置win10自动进入桌面, 而不需要登录
- 3.29 设置定时任务crontab
- 3.30 安装gcc-4.9版本
- 3.31 ssh客户端直接上传和下载文件
- 3.32 scp命令行文件上传和下载
- 3.33 cmake升级
- 3.34 screen xshell恢复会话工具
一. Ubuntu的安装
安装分三种
安装方法 | 优点 | 缺点 | 章节 | 安装难易程度 |
独立安装 | 独立的系统 | 不能切换win10 | 1.1 | 简单 |
双系统 | 开机可自动切换 | 切换麻烦 | 1.2 | 较难 |
win10虚拟机 | 不用开机切换 | 占用系统资源较大 | 1.3 | 简单 |
win10子系统 | 不用切换; | 有些软件安装较麻烦,比如mysql | 1.4 | 极简单 |
建议: win10安装Ubuntu子系统,软件用win10的熟悉且多, 工具用Ubuntu的方便;
1.1 Ubuntu独立安装
1.1.1 制作Ubuntu启动U盘
下载系统–>win10中利用UltraISO将系统安装到U盘中–>开机启动进入U盘–>install Ubuntu
具体的如下
打开UltraISO 在目录中打开Ubuntu镜像
工具栏中 启动→写入硬盘镜像→选择U盘,写入方式一定是RAW,不然无法读取
写好后启动盘就制作好了
1.1.2 win10系统安装双系统Ubuntu
win10已经安装在固态中,现要将Ubuntu18安装到机械中
系统是legacy引导
a. 开辟Ubuntu系统空间
win10->磁盘管理, 固态分出1G空间(用于引导boot), 机械分出60G空间(用于安装Ubuntu系统)
b. 开机U盘加载Ubuntu
插入1.1节中做好的包含Ubuntu系统的U盘,电脑选择U盘启动,进入Ubuntu安装–>中国,汉语,正常安装–>识别到有win10系统,选择其他安装模式
双击空闲区
分区 | 位置 | 大小 | 格式选择 | 挂载 | 作用 |
主分区 | 空间起始位置 | 8192 | 交换空间 | 用于作为内存的切换 | |
逻辑分区 | 空间起始位置 | 10240 | Ext4 | 挂载 / | 根目录 |
逻辑分区 | 空间起始位置 | 30720 | Ext4 | 挂载 /home | 软件用户等文件都在这里 |
逻辑分区 | 空间起始位置 | 剩余所有 | Ext4 | 挂挂载 /usr | 用户有关的稳基建 |
逻辑分区 | 空间起始位置 | 1024(60G硬盘开辟的1G free space) | Ext4 | 挂挂载 /boot | 开机引导文件 |
注意,下面有一行选择Boot盘,一定要选择boot安装的那个盘,(我这里选择60G那个盘)
引导区选择挂载的/boot区
安装→时区(最好是上海)随意,账户密码什么的都越简单越好
c. 等待系统初始化
安装完毕后会提示拔出U盘,重启系统,
此时Ubuntu安装完会自动创建开机选择引导, 开机后会有一个win10选择和Ubuntu选择的选项
d. win10重装系统后重新引导boot到启动(开机没有启动选择的时候需要手动创建)
进入win10 构建ubuntu启动引导
下载EasyBCD 2.3
添加新条目
类型:GRUB(Legacy) 不行就试一下2
名称:Ubuntu
驱动器:1G那个区(boot)
不使用副本
点击添加条目,保存重启,重启, 就有Ubuntu选项了
e. 在win10构建ubuntu开机引导, 默认Ubuntu已经插入了开机引导
- 制作一个U盘启动盘。下载对应的ubuntu系统,用UltraISO制作Ubuntu U盘启动。
- 打开电脑后选择u盘启动盘,然后选择try ubuntu。试用不安装。
- 进入ubuntu系统后,连接好网络,打开终端,输入下面命令,按照提示操作。 可以使用手机共享usb热点
-
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
-
sudo apt-get install -y boot-repair && boot-repair
- 会出现如下界面,选择
recommended repair
- 按照提示进行操作,会提示重启, 然后点击重启就会出现原来的启动项了,
- 这里注意需要重新调整时间与win10和主板时间一致
1.2 win10中VM虚拟机中安装Ubuntu链接
VM15安装
VM上安装Ubuntu18
VM tool
1.3 win10子系统 Ubuntu WSL
安装方式最简单
1.3.1 打开功能
打开功能–>下载Ubuntu–>首次登陆设置账号密码
1.3.2 在应用商店下载Ubuntu18.04
1.3.3 初始化输入账号密码
二. 子系统WSL命令
这里通过win10的powershell可用
wsl -l # 查看win10系统安装的linux子系统
wsl -l --running #查看运行子系统
wsl --veresion # 版本信息和命令行参数
wsl -d Ubuntu-18.04 # 运行子系统
wsl -t Ubuntu-18.04 # 停止子系统
备份与还原:
wsl --export Ubuntu-18.04 c:\tmp\Ubuntu-18.04.tar # 备份子系统到指定的tar文件
wsl --unregister Ubuntu-18.04 # 删除子系统
wsl --import Ubuntu-18.04 c:\WSL c:\tmp\Ubuntu-18.04.tar #还原子系统 安装路径 tar系统压缩包名
ubuntu1804 config --default-user zjq # 设置默认登录用户
三. Ubuntu初始配置
这里不管是如何安装的,都下面的初始配置都有效,因为大部分工作都是使用命令行操作的
3.1 修改源,下载更新
换源:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old 保存原来的源
sudo vim/gedit /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
$ sudo apt update && sudo apt upgrade
如果是命令行没有vim等编辑器,可以使用echo “” >>source.list
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse">> /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse">> /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse">> /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse">> /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse">> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse">> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse">> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse">> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse">> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse">> /etc/apt/sources.list
$ sudo apt update && sudo apt upgrade
# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
Ubuntu版本22.04
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
3.2 安装搜狗输入法
Ubuntu搜狗输入法安装全解
3.3 设置系统中文
在安装完搜狗输入法后, 因为已经系统语言中插入了中文,
点击设置 语言与地区 选择中文
主要重启后, 选择保持原来的文件名字, 不然文件名字就会变成中文
3.4 设置命令行只显示当前路径
# 打开gedit编辑器, 修改配置文件
gedit ~/.bashrc
# 小写w改成大写W
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '
# zjq revise
# PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\W\$ '
# zjq revise
# PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
source ~/.bashrc
3.5 截图
系统自带截图
快捷键是ctr+shift+prtscsysRq
或者还有一款可以对图片进行编辑的截图工具shutter
首先去软件管理器中下载**shutter**
然后在下载下面的三个软件相关工具, 也就是编辑工具
https://launchpad.net/ubuntu/+archive/primary/+files/libgoocanvas-common_1.0.0-1_all.deb
https://launchpad.net/ubuntu/+archive/primary/+files/libgoocanvas3_1.0.0-1_amd64.deb
https://launchpad.net/ubuntu/+archive/primary/+files/libgoo-canvas-perl_0.06-2ubuntu3_amd64.deb
下载完成后
sudu dpkg -i 名字.deb
如果出错
sudo apt -f install
重新dpkg
3.6 播放器
安装
sudo apt install mpv
3.7 如果不小心把系统设置删除了
sudo apt-get install gnome-control-center
3.7 对~/.bashrc误操作造成所有系统命令失效
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
3.8 如果提示源不可用或者下载无效
请到系统与软件中, 把更新都打开,重启系统
3.9 非常好用的全代码编辑器sublime
ubuntu下的sublime全教程安装使用
3.10 另一个非常好用的代码编辑器 VScode
VScode使用技巧
3.11 如果开机默认进入ubuntu系统
修改grub引导, 修改为4, 是因为4号位是win10
~$ sudo gedit /etc/default/grub
~$ sudo update-grub
3.12 安装完系统后找不到WiFi
使用手机链接电脑, 打开手机的USB共享热点
打开软件和更新, 选择802.11 这个就是WiFi驱动,然后确定等待配置好系统就会出现WiFi可以选择了
3.13 使用deepin wine容器插入WeChat 和QQ等win软件
a. 下载wine框架
wine框架相当于一个Ubuntu的扩展层, 有点像win的.net层一样, 为了使不同的硬件平台能够兼容统一的软件而设定, 而做的最好的当属deepin公司了.
安装deepin-wine环境:
上页面下载zip包(或用git方式克隆)点击这里跳转下载页
解压到本地文件夹,在文件夹中打开终端,输入sudo ./install.sh
等待安装完毕即可.
b.安装deepin.com应用
点击这里跳转下载应用页面 下载需要的应用, 如WeChat QQ等应用,点击deb安装即可。
QQ:http://mirrors.aliyundeepin.com.qq.im/
微信:http://mirrors.aliy/deepin.com.wechat/
3.14 python&conda
Ubuntu维护7 conda环境全解_python
3.15 命令行搜索查找文件 updatedb
更新数据库
- which 只能寻找可执行文件 ,并在PATH变量里面寻找。
- whereis 从linux文件数据库(/var/lib/slocate/slocate.db)寻找,所以有可能找到刚刚删除,或者没有发现新建的文件。全部匹配
- locate 同上,不过文件名是部分匹配
- find 是直接在硬盘上搜寻,功能强大,但耗硬盘,一般不要用。
find / -name filename 再根目录里面搜索文件名为filename的文件
find /etc -name *s*在目录里面搜索带有s的文件
find /etc -name *S 在目录里面搜索以s结尾的文件
find /etc -name s*在目录里面搜索以s开头的文件
find / -amin -10在系统中搜索最后10分钟访问的文件
find / -atime -2查找在系统中最后48小时访问的文件
find / -empty 查找在系统中为空的文件或者是文件夹
find / -group groupname 查找在系统中属于groupname的文件
find / -mmin -5查找在系统中最后5分钟修改过的文件
find / -mtime -1查找在系统中最后24小时修改过的文件
find /-nouser查找在系统中属于费用户的文件
find / -user username 查找在系统中属于username的文件
find / -ctime -1查找在系统中最后24小时被改变状态的文件
find / -fstype type查找在系统中文件类型为?的文件
find / -user user1name -or -useruser2name查找在系统中属于user1name或着属于user2name的文件
find / -user user1name -and-user2name在系统中查找既属于user1name又属于user2name用户的文件.
# 文件资料库搜索aaaa
locate aaa # 比find快, 但是不是精准查找
3.16 同步Ubuntu和win10系统时间
- 安装ntpdate:
zjq@zjq:~$ sudo apt-get install ntpdate
- 矫正服务器
zjq@zjq:~$ sudo ntpdate time.windows.com
- 设置硬件时间为本地时间
zjq@zjq:~$ sudo hwclock --localtime --systohc
- 重启系统
reboot
3.17 三种网络文件共享方式
a python自带的文件共享
python3自带的HTTP serve, 能够提供当前路径下的web文件服务, 开启后即可在局域网内通过浏览器输入对应的ip:port访问当前路径下的文件
python -m http.server 端口号
该方法适用于只让对方访问下载自己的文件夹, 而不能修改当前文件夹内容
b ssh文件传输
- xshell有个人免费版, 可以传输文件, 也有命令行操作
sudo apt-get install openssh-server
- VScode也有
remote-ssh
插件, 知道服务器的账号密码就可以连接, 进行文件更改, 上传和下载操作 -
python jupyter notebook
也可提供web操作, 能够在线修改上传下载文件
c 搭建Samba文件共享服务器
该方法可以实现局域网内在自己机器上的文件管理器中直接操作共享文件
具体方法点击跳转
3.18 安装完Ubuntu, U盘怎么恢复
method1: win10磁盘管理, 将U盘对应所有分区全部删掉
method2:
进入win10命令行
alt+R
cmd
3.19 Firefox浏览器
登陆账号同步标签
问题: Firefox在Ubuntu和win10上标签同步不成功
原因: Firefox在win10上默认安装的是中国版, 而Ubuntu默认安装的是国际版, 两版本的数据服务器不是一个, 因此无法同步数据
解决方案:
- 听从别人家的, 在Ubuntu上安下载中国版本, 然后替换路径里面的
/usr/lib/Firefox
但是很遗憾, 失败了 - 从win10上下载国际版Firefox,安装后登陆同一个账号, 直接同步就OK了, 换一个思路, 换一个世界
火狐国际版下载火狐国际版官网下载
3.20 屏幕自己转了90度, 在旋转回来…
$ xrandr -o left //向左旋转90度
$ xrandr -o right //向右旋转90度
$ xrandr -o inverted //上下翻转
$ xrandr -o normal //回到正常角度
3.21 命令行被锁定 ctr+s, ctr+q
解除锁定为ctr+q
3.22 命令行将数据上传到百度网盘, 适用于远程ssh连接操作
前提是安装了python
- 安装百度网盘工具bypy
pip install bypy --user
- 与自己的百度网盘建立连接
bypy info
显示:
Please visit:
https://openapi.baidu.com/oauth/2.0/authorize?client_id=q8WE4EpjfhjhgjgkjhkNBn&response_type=code&redirect_uri=oob&scope=basic+netdisk
And authorize this app
Paste the Authorization Code here within 10 minutes.
Press [Enter] when you are done
- 将上面的https连接复制到浏览器, 登陆自己的百度网盘, 会显示授权码
- 将授权码复制粘贴到上面的命令行, 如下
Please visit:
https://openapi.baidu.com/oauth/2.0/authorize?client_id=q8WE4EpjfhjhgjgkjhkNBn&response_type=code&redirect_uri=oob&scope=basic+netdisk
And authorize this app
Paste the Authorization Code here within 10 minutes.
Press [Enter] when you are done
77d15345f3debdf
这里键入回车
返回: # 下面显示的就是自己百度网盘空间
Quota: 2.008TB
Used: 1.802TB
- 上面就已经将百度云盘和服务器建立了新的连接, 下面上传数据
bypy list # 显示文档
bypy upload filename -v # 上传某文件,显示进度
bypy -c # 取消令牌文件。一段时间后要重新授权
bypy download 需要下载的文件名 下载后文件命名# 下载
bypy compare # 比较本地目录和网盘目录
- 上传服务器上的数据
run.sh
- 运行命令:
bypy upload run.sh
- 打开自己的百度网盘, 搜索run.sh
- 可以看到bypy目录已经包含了run.sh, 表明已经上传到了百度云盘
3.23 安装llvm+clang
- 博客记录
- 两种方法:自己官网下载文件自行编译 / 使用官网二进制文件配置路径
3.24 vim中显示行数, vim显示中文, vim鼠标右键可以粘贴
进入vimrc配置文件添加下面对应指令, 即可实现对应功能
sudo vim /etc/vim/vimrc
- 1.显示行数,鼠标可以粘贴复制移动光标
set nu
set tabstop=4
set mouse=a
- 2.中文显示
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
- 3.如果1设置了还不行, 就添加下面设置
if has('mouse')
set mouse-=a
endif
- 4.只配置一个文件如hello.c
vim hello.c
sec键 :set mouse -=a
3.25 修改密码
passwd
3.26 压缩解压
常用压缩和解压命令
zip -r zjq.zip zjq/ #将zjq文件夹压缩为zjq.zip
unzip zjq.zip # 解压到同目录下
tar -cf zjq.tar zjq/ #将zjq文件夹压缩为zjq.tar
tar -vzxf zjq.tar -C ./ # 将zjq.tar解压到-C后面指定的路径下
'''
其中-vzxf含义
-v 在压缩或解压缩过程中显示正在处理的文件名
-z 通过gzip支持压缩或解压缩
-x 解压缩c是压缩
-f 后面必须跟上要处理的文件名
'''
- a. 压缩命令和解压命令
zip -r zjq.zip zjq/ #将zjq文件夹压缩为zjq.zip
unzip zjq.zip # 解压到同目录下
tar -cf zjq.tar zjq/ #将zjq文件夹压缩为zjq.tar
tar -xf zjq.tar -C ./ # 将zjq.tar解压到-C后面指定的路径下
gzip test.file # 压缩test.file
gunzip test.file.gz # 解压gz文件
tar -zcf zjq.tar.gz zjq/ # 压缩文件
tar -zxf zjq.tar.gz -C ./ # 解压文件到-C指定路径下
- b. 大文件压缩解压分卷压缩
mkdir sava && tar -czf - need_to_tar| split -b 500m -d - save/proc.tar.gz #分卷压缩need_to_tar目录,并保持每个压缩包的大小不超过500M(兆)。命令执行后,会生成need_to_tar.tar.gz00、proc.tar.gz01等文件保存到文件夹save中
cat proc.tar.gz* | tar -xzf - #将各个分卷压缩包解压到当前目录
cat proc.tar.gz* > need_to_tar.tar.gz #将各个分卷压缩包合成为一个need_to_tar.tar.gz文件
附录:split命令的使用
split proc.tar.gz -b 2m #将proc.tar.gz文件分割为多个小文件,并保持每个小文件的大小不超过2m字节。命令运行后,源文件依然存在。生成的小文件以默认格式命名,为:xaa、xab等
split proc.tar.gz -b 2m -d #基本同上,只是生成的小文件以数字格式命名,为:x00、x01等
split proc.tar.gz -b 2m -d proc.tar.gz #基本同上,只是生成的小文件名前缀是自定义的,为:proc.tar.gz00、proc.tar.gz01等
split a.txt -C 300k -d a.txt #将a.txt文本文件分割为多个小文件,并保持每个小文件的大小不超过300k字节,而且尽量保持每行的完整性
3.27 bash文件格式错误错误
zjq@DESKTOP-2RLT53L:401_bzlib$ source run_spec2006.sh
sssss
-bash: run_spec2006.sh: line 5: syntax error near unexpected token `elif'
'bash: run_spec2006.sh: line 5: `elif [ $1 == inst2vec ] ;then
解决方案:
vi run_spec2006.sh # 进入vim编辑
:set ff # 如下图, 回车后显示的应该是doc格式, 这是win文件的格式, 这里需要修改为unix格式
:set ff=unix # 设置文件格式为unix格式, 保存退出即可
3.28 ssh
操作
a 配置
apt install openssh-server ssh
安装
- 修改配置文件
sudo vi /etc/ssh/sshd_config
Port 22 # 开启默认端口22
PubkeyAuthentication yes # 开启验证
PasswordAuthentication yes # 开启密码验证
- 启动
sudo service ssh start
- win10防火墙开放端口22
- 局域网下访问
ssh [email protected]
b ssh
后台运行
nohup python hello.py 1>out.log 2>err.log &
ps -ef | grep nginx
c 设置win10开机自启动WSL功能
- 在本地powershell中 设置默认root登录
ubuntu1804 config --default-user zjq
- 编写 bat脚本放到win10的启动文件夹 (win+R 输入
shell:startup
)
C:\Users\nisl\AppData\Local\Microsoft\WindowsApps\ubuntu1804.exe run "sudo service ssh start"
解释:
由于前面设定了默认用户是root, 所以当win10打开的wsl默认就是root了, 因此不用在考虑sudo时候需要输入密码
另外win10启动文件夹很好找, 然后将能执行的脚本放进去, 每次开机都会默认执行的
d 设置win10自动进入桌面, 而不需要登录
3.29 设置定时任务crontab
- a crontab常用的几个
shell命令
格式
sudo service cron start // 启动定时任务管理器
crontab -l //显示用户的crontab文件的内容
crontab -e //编辑用户的crontab文件的内容
crontab -r //删除用户的crontab文件
sudo service cron restart //重启crontab文件, 每次新建定时任务后记得重启
- b 配置
crontab -e
写入的定时基本格式
* * * * * command
分 时 天 月 周 命令
每列表示意义
第一个*表示的是分钟1~59分钟,默认*表示的是每分钟都执行,x-y表示的是x~y这段每分钟都执行,*/n表示每n分钟执行一次,x,y,z表示的是x,y,z分钟都执行。
第二个*表示的是小时1~23小时,默认*表示的是每小时都执行,x-y表示的是x~y这段每小时都执行,*/n表示每n小时执行一次,x,y,z表示的是x,y,z小时都执行。
第三个*表示的是天1~31,默认*表示的是每天都执行,x-y表示的是x~y这段每天都执行,*/n表示每n天执行一次,x,y,z表示的是x,y,z天都执行。
第四个*表示的是月1~12,默认*表示的是每个月都执行,x-y表示的是x~y这个段每月都执行,*/n表示每n分钟执行一次,x,y,z表示的是x,y,z天都执行。
第五个*表示的是周0~6(0表示周天),默认周一~周天都执行,x-y表示周x~周y每天都执行。
- c 例子
30 21 * * * date>>/home/now_time.log //表示每天21:30 将当前时间写入文件
45 4 1,10,22 * * date>>/home/now_time.log //表示每月1,10,22号4:45将当前时间写入文件
0,30 18-23 * * * date>>/home/now_time.log //表示每天18 : 00至23 : 00之间每隔30分钟将当前时间写入文件
* */1 * * * date>>/home/now_time.log //表示每一小时 将当前时间写入文件
*/5 * * * * date>>/home/now_time.log //表示每5分钟 将当前时间写入文件
- d 实例
crontab -e
# 第一次启动这里需要选择编辑器, 我选择2 vim, 然后进入vim进行crontab配置定时任务
# 下面定时任务含义是: 每天的16:04进行数据库备份, 注意通过cd到脚本所在目录下在执行脚本, 不然会出错
04 16 * * * cd /home/nisl/ && ./save_mysql.py
# 退出vim后, 重启定时管理器
sudo service cron restart
3.30 安装gcc-4.9版本
Ubuntu系统维护3 gcc7.5安装gcc4.9并共存 以及g++
sudo vi /etc/apt/sources.list
# 插入下面两行
deb http://dk.archive.ubuntu.com/ubuntu/ xenial main
deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe
sudo apt update
sudo apt install g++-4.9
sudo apt install gcc-4.9
3.31 ssh客户端直接上传和下载文件
sudo apt install lrzsz
# 上传文件
rz
# 下载文件
sz 需要下载的文件名
sz needdownFile.zip
3.32 scp命令行文件上传和下载
# 1、从服务器上下载文件
scp username@servername:/path/filename /var/www/local_dir(本地目录)
# 例如scp [email protected]:/var/www/test.txt 把192.168.0.101上的/var/www/test.txt 的文件下载到/var/www/local_dir(本地目录)
#2、上传本地文件到服务器
scp /path/filename username@servername:/path
# 例如scp /var/www/test.php [email protected]:/var/www/ 把本机/var/www/目录下的test.php文件上传到192.168.0.101这台服务器上的/var/www/目录中
# 3、从服务器下载整个目录
scp -r username@servername:/var/www/remote_dir/(远程目录) /var/www/local_dir(本地目录)
# 例如:scp -r [email protected]:/var/www/test /var/www/
# 4、上传目录到服务器
scp -r local_dir username@servername:remote_dir
# 例如:scp -r test [email protected]:/var/www/ 把当前目录下的test目录上传到服务器的/var/www/ 目录
3.33 cmake升级
当编译源码提示我们cmake版本不足时, 可以通过去官方下载编译好的cmake, 然后解压后, 软链接即可
tar -vxf cmake-3.18.0-Linux-x86_64.tar.gz
mv cmake-3.18.0-Linux-x86_64 /usr/share/cmake-3.18.0
ln -s /usr/share/cmake-3.18.0/bin/* /usr/bin/
ln: failed to create symbolic link '/usr/bin/cmake': File exists
ln: failed to create symbolic link '/usr/bin/cpack': File exists
ln: failed to create symbolic link '/usr/bin/ctest': File exists
root@aeece3c36265:/usr/share/cmake-3.18.0# rm /usr/bin/cmake
root@aeece3c36265:/usr/share/cmake-3.18.0# rm /usr/bin/cpack
root@aeece3c36265:/usr/share/cmake-3.18.0# rm /usr/bin/ctest
root@aeece3c36265:/usr/share/cmake-3.18.0# ln -s /usr/share/cmake-3.18.0/bin/* /usr/bin/
ln: failed to create symbolic link '/usr/bin/ccmake': File exists
ln: failed to create symbolic link '/usr/bin/cmake-gui': File exists
root@aeece3c36265:/usr/share/cmake-3.18.0# rm /usr/bin/ccmake
root@aeece3c36265:/usr/share/cmake-3.18.0# rm /usr/bin/cmake-gui
root@aeece3c36265:/usr/share/cmake-3.18.0# ln -s /usr/share/cmake-3.18.0/bin/* /usr/bin
ln: failed to create symbolic link '/usr/bin/cmake': File exists
ln: failed to create symbolic link '/usr/bin/cpack': File exists
ln: failed to create symbolic link '/usr/bin/ctest': File exists
root@aeece3c36265:~/mycode/llvm-project# cmake --version
cmake version 3.18.0
3.34 screen xshell恢复会话工具
screen -S name
# 退出当前会话
按住ctr不松 按ad, 此时退出screen, 但程序仍然在后台运行
# 查看已有会话
screen -ls
# 进入某个已有会话
screen -r id.name
# 删除某个会话
screen -S name -X quit