Ubuntu

命令行生存指南:监视命令输出

隐身守侯 提交于 2020-11-02 08:03:31
作为一个工程师,我们经常与命令行打交道,但除了工作用的命令,你是否尝试过让命令来替代你生活中方方面面? 为了让更多的爱好者可以用命令行作为自己的有效工具,Linux 中国特别邀请了三位作者,撰写了《命令行生存指南》,希望可以通过这个系列的文章,让你换一个视角,来看待命令行的存在。如果你想体验一下不一样的命令行,那就不妨来看看今天的《命令行生存指南》。 本次的内容为试读内容,也欢迎你针对今天的内容提出自己的意见和建议。 操作概述 有时候需要不断的执行某个命令并追踪其输出产生的变化情况。一种常见的方法是通过写一段死循环的 shell 脚本来实现,不过 Linux 本身已经提供了一个工具来帮你定期执行指定的程序并将结果全屏输出,本节将会介绍该工具。 概念和术语 在 shell 上执行一个命令行时通常会自动打开三个标准文件,即标准输入文件( stdin ),通常对应终端的键盘;标准输出文件( stdout )和标准错误输出文件( stderr ),这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。 操作实战 场景一:使用 watch 定期执行命令并监视输出 难度 ★ 演示用发行版 Ubuntu 涉及命令 watch watch 的基本用法 watch 的使用方法很简单,只需要: watch 命令 就行了,这样

Docker容器和镜像的区别

强颜欢笑 提交于 2020-11-02 07:10:17
  在学习使用docker过程中会遇到镜像和容器,两者之间的区别是什么?有什么关联?本文将用图文并茂的方式介绍容器、镜像的区别,能够很好的帮助各位深入理解Docker。                一、什么是镜像? 1.1 Image Layer(镜像层)   镜像可以看成是由多个镜像层叠加起来的一个文件系统( 通过UnionFS与AUFS文件联合系统实现 ),镜像层也可以简单理解为一个基本的镜像,而每个镜像层之间通过指针的形式进行叠加。          根据上图,镜像层的主要组成部分包括镜像层 ID、镜像层指针 「指向父层」、元数据「 Layer Metadata,包含了 Docker 构建和运行的信息和父层的层次信息」。只读层和读写层「Top Layer」的组成部分基本一致,同时读写层可以转换成只读层「 通过 docker commit 操作实现」。   元数据(metadata)就是关于这个层的额外信息,它不仅能够让Docker获取运行和构建时的信息,还包括父层的层次信息。需要注意,只读层和读写层都包含元数据。                      每一层都包括了一个指向父层的指针。如果一个层没有这个指针,说明它处于最底层。                Metadata Location:   在docker主机中镜像层(image layer)的元数据被保存在名为

samba服务器安装测试

拜拜、爱过 提交于 2020-11-01 20:57:01
samba服务器安装 1、简介 作用:samba文件服务器允许通过网络跨步同的操作系统进行文件共享。 2、安装samba服务器 $ sudo apt- get update $ sudo apt - get install samba 安装完成后使用下面命令检测是否安装成功 $ whereis samba 安装成功后,将输出以下 samba: /usr/sbin/samba /etc/samba /usr/lib/samba /usr/share/samba /usr/share/man/man8/samba. 8 .gz /usr/share/man/man7/samba. 7 .gz 3、samba服务器配置 创建共享目录: $ mkdir /home/username/samba_share 修改配置文件: $ sudo vim /etc/samba/smb.conf 在文件的最后面,添加相关信息: [sambashare] comment = Samba on Ubuntu path = /home/username/ sambashare read only = no browseable = yes 配置说明: [sambashre]:共享的名称 comment:简要说明 path:共享的路径 read only:当这个指令的值为no时,才会赋予修改共享文件夹内容的权限

centos7安装ceph

时光毁灭记忆、已成空白 提交于 2020-11-01 14:27:33
一、CEPH 简介 ¶ 不管你是想为 云平台 提供 Ceph 对象存储 和/或 Ceph 块设备 ,还是想部署一个 Ceph 文件系统 或者把 Ceph 作为他用,所有 Ceph 存储集群 的部署都始于部署一个个 Ceph 节点 、网络和 Ceph 存储集群。 Ceph 存储集群至少需要一个 Ceph Monitor 和两个 OSD 守护进程。而运行 Ceph 文件系统客户端时,则必须要有元数据服务器( Metadata Server )。 Ceph OSDs : Ceph OSD 守护进程 ( Ceph OSD )的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向 Ceph Monitors 提供一些监控信息。当 Ceph 存储集群设定为有2个副本时,至少需要2个 OSD 守护进程,集群才能达到 active+clean 状态( Ceph 默认有3个副本,但你可以调整副本数)。 Monitors : Ceph Monitor 维护着展示集群状态的各种图表,包括监视器图、 OSD 图、归置组( PG )图、和 CRUSH 图。 Ceph 保存着发生在Monitors 、 OSD 和 PG上的每一次状态变更的历史信息(称为 epoch )。 MDSs : Ceph 元数据服务器 ( MDS )为 Ceph 文件系统 存储元数据(也就是说

《深入理解计算机系统》(CSAPP)实验 —— Data Lab

大憨熊 提交于 2020-10-31 17:41:47
本文是CSAPP第二章的配套实验,通过使用有限的运算符来实现正数,负数,浮点数的位级表示。通过完成这13个函数,可以使我们更好的理解计算机中数据的编码方式。 准备工作   首先去官网 Lab Assignments 获得实验相关的文件(也可以加我QQ获取教学视频、PPT等内容)在每个实验文件的README中都详细介绍了如何修改程序,编译程序等。建议仔细阅读,有不明白的可以留言,看到后会及时回复。   我的编译环境:Ubuntu 16.04,gcc 5.4.0。   编译时会报如下错误。   执行以下命令,安装64位包。 sudo apt-get purge libc6-dev sudo apt-get install libc6-dev sudo apt-get install libc6-dev-i386   再次编译,没有报错,正常。 题目 bitXor 思路   德摩根律,也叫反演。 代码 /* * bitXor - x^y using only ~ and & * Example: bitXor(4, 5) = 1 * Legal ops: ~ & * Max ops: 14 * Rating: 1 */ int bitXor ( int x , int y ) { return ~ ( x & y ) & ~ ( ~ x & ~ y ) ; } tmin 思路  

ubuntu安装、升级、卸载go语言

痴心易碎 提交于 2020-10-31 09:51:15
ubuntu安装、升级、卸载golang 一、安装go 二、升级go 1.卸载go 2.重新安装新版本的golang ubuntu安装、升级、卸载golang 一、安装go 下载go 方法一:官网下载: https://golang.org/dl/ 方法二:打开ubuntu输入: wget https : / / dl . google . com / go / go1 . 15.3 . linux - amd64 . tar . gz 解压安装包: sudo tar - C / usr / local - xzf go1 . 15.3 . linux - amd64 . tar . gz 建立软连接: (1) sudo ln - s / usr / local / go / bin /* /usr/bin/ (2) sudo vim ~ / . bashrc 进入编辑界面后Shift+G跳转至尾行,按o新插入一行,输入: export GOPATH = "$HOME/go" export PATH = "$PATH:/usr/local/go/bin:$GOPATH/bin" Esc退出编辑,输入以下代码退出文件保存并生效: : wq source ~ / . bashrc 查看安装是否生效: go version 二、升级go 1.卸载go 删除目录: sudo rm - rf

Pytorch报错记录

£可爱£侵袭症+ 提交于 2020-10-31 08:51:49
1.BrokenPipeError 执行以下命令时: a,b = iter(train_loader).next() 报错:BrokenPipeError: [Errno 32] Broken pipe 错误原因 :子进程原因 On Windows the subprocesses will import (i.e. execute) the main module at start. You need to insert an if __name__ == '__main__': guard in the main module to avoid creating subprocesses recursively. 解决方法: Please see my edited response where I did exactly that. The requirement for wrapping the code inside of if __name__ == '__main__' code isn't immediately obvoius, as it is only required for Windows machines.就是说在windows下必须将上面的代码打包在if __name__ == '__main__'语句下面。这时不会报错了。 还有人说:I also

Ubuntu20.04开机卡在logo页面

☆樱花仙子☆ 提交于 2020-10-31 05:46:18
注:资料来自 https://zhuanlan.zhihu.com/p/27549771 开机后系统一直提示需要更新,我想着可以正常使用就没必要去更新了。没想到今天开机时候卡死在logo页面,还好已经被前人踩过坑了~~ 总结步骤: 1.开机时选择高级选项,选择recovery mode进入恢复模式;此时打印一些状态,我这边看到一个system file err一闪而过…… 2.选择root选项,此时会要求输入root的密码,输入后进入命令行模式 3.执行命令 $ sudo apt update $ sudo apt install --reinstall unity unity-common unity-lens* ubuntu-desktop lightdm $ sudo apt autoremove --purge $ reboot 我这里安装的时候提示没有找到unity-lens*,执行重启命令后终于是进去了…… 来源: oschina 链接: https://my.oschina.net/u/3508700/blog/4280607