Linux
管理 RHEL7 的用户和组
用户的属性修改
chage -l [username] #查看用户信息
usermod --expiredate=YYYY-MM-DD [username] #有限时间内授予账户访问
groups [username] #查看组别
id [username] #查看用户id,组id,组名
--append --group [组名,组名] #-aG#添加用户
--home / --d [绝对路径] #修改主路径
--shell []
usermod --append --groups gacanepa,users --home /tmp --shell /bin/sh [username]
用户的锁定与解锁
usermod --lock [username] #锁定密码来停用帐户
usermod --unlock [username] #解锁密码
用户与组的删除
如果一些文件属于该组,删除组时它们不会也被删除。但是组拥有者的名字将会被设置为删除掉的组的GID
groupdel [group_name] # 删除组
userdel -r [user_name] # 删除用户,并删除主目录和邮件池
文件权限
“ls -l”输出中的前10个字符表示每个文件的属性
- 第一个字符
- – (连字符): 一个标准文件
- d: 一个目录
- 一个符号链接
- 字符设备(将数据作为字节流,例如终端)
- 块设备(以块的方式处理数据,例如存储设备)
- 接下来的九个字符,分为三个组,被称为文件模式,并注明读(r)、写(w)、和执行(x)权限授予文件的所有者、文件的所有组、和其它的用户
出于安全考虑,你应该确保在正常情况下,尽可能避免777权限
ls -l /etc | grep rwxrwxrwx #寻找777权限的文件
chmod 777 filename #修改权限
# u:用户权限 g:组所有者权限 o:所有权限
#权限可以通过+ 或 -来授予和收回
chmod a+x filename #修改权限
文件所有组和所有者
chown user:group filename #改变所有组和所有者
chown :group filename # 仅改变所有组
chown user: filename # 仅改变所有者
chown --reference=ref_filename filename #“克隆”一个文件的所有权(所有组和所有者)到另一个文件
编辑文本文件及分析文本
grep 和正则表达式
grep -Ei 'svm|vmx' /proc/cpuinfo
grep -Ei '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}' -o /etc/fstab #存储设备的 UUID
grep -Ei [[:digit:]]{4} /etc/passwd
- [:alnum:] 任意字母或数字 [a-zA-Z0-9]
- [:alpha:] 任意字母 [a-zA-Z]
- [:blank:] 空格或制表符
- [:cntrl:] 任意控制字符 (ASCII 码的 0 至 32)
- [:digit:] 任意数字 [0-9]
- [:graph:] 任意可见字符
- [:lower:] 任意小写字母 [a-z]
- [:print:] 任意非控制字符
- [:space:] 任意空格
- [:punct:] 任意标点字符
- [:upper:] 任意大写字母 [A-Z]
- [:xdigit:] 任意十六进制数字 [0-9a-fA-F]
- [:word:] 任意字母,数字和下划线 [a-zA-Z0-9_]
进程管理:开机,关机
- 初始化 POST(加电自检)并执行硬件检查;
- 当 POST 完成后,系统的控制权将移交给启动管理器的第一阶段(first stage),它存储在一个硬盘的引导扇区(对于使用 BIOS 和 MBR 的旧式的系统而言)或存储在一个专门的 (U)EFI 分区上。
- 启动管理器的第一阶段完成后,接着进入启动管理器的第二阶段(second stage),通常大多数使用的是 GRUB(GRand Unified Boot Loader 的简称),
它驻留在 /boot 中,然后开始加载内核和驻留在RAM 中的初始化文件系统(被称为 initramfs,它包含执行必要操作所需要的程序和二进制文件,以此来最终
挂载真实的根文件系统)。 - 接着展示了闪屏(splash)过后,呈现在我们眼前的是类似下图的画面,它允许我们选择一个操作系统和内核来启动:
- 内核会对接入到系统的硬件进行设置,当根文件系统被挂载后,接着便启动 PID为 1 的进程,这个进程将开始初始化其他的进程并最终呈现给我们一个登录提示符界面。
它们的父进程(或者换句话说,就是那个开启这些进程的进程)为systemd
- 在系统启动期间,systemd 允许并发地启动更多的进程(相比于先前的SysVinit,SysVinit 似乎总是表现得更慢,因为它一个接一个地启动进程,检查一个进程是否依赖于另一个进程,然后等待守护进程启动才可以启动的更多的服务)
- 在一个运行着的系统中,它用作一个动态的资源管理器。这样在启动期间,当一个服务被需要时,才启动它(以此来避免消耗系统资源)而不是在没有一个合理
的原因的情况下启动额外的服务。 - 向后兼容 sysvinit 的脚本。
systemd 由 systemctl 工具控制
service servicename stop #旧版
systemctl stop servicename #新版
shutdown -h now #旧版
systemctl poweroff #新版
chkconfig -list #旧版
systemctl -type=service #新版
renice [-n] priority [-gpu] identifier #调整一个进程的执行优先级
kill -9 identifier # 杀死一个进程或一个进程组
kill -s SIGNAL identifier # 杀死一个进程或一个进程组
pkill -s SIGNAL identifier # 通过名称或其他属性来杀死一个进程
Docker
Docker基本知识
区别 | 传统虚拟机 | Docker |
---|---|---|
传统虚拟机技术是虚拟出一套硬件后,在其上运行个完整操作系统,在该系统上再运行所需应用进程 | 容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟 |
特性 | 容器 | 虚拟机 |
---|---|---|
启动 | 秒级 | 分钟级 |
硬盘使用 | 一般为 MB | 一般为 G B |
性能 | 接近原生 | 弱于 |
系统支持量 | 单机支持上千个容器 | 一般几十个 |
docker基本概念:镜像(Image)容器(Container)仓库(Repository)
Docker 不是虚拟机,容器就是进程。
镜像使用的是分层存储,容器也是如此。每一个容器运行时,是以镜像为基础层,在其上创建一个当前容器的存储层,我们可以称这个为容器运行时读写而准备的存储层为容器存储层(容器消亡时,容器存储层也随之消亡)。
数据卷的生存周期独立于容器,容器消亡,数据卷不会消亡。因此,使用数据卷后,容器可以随意删除、重新 run ,数据却不会丢失
Docker配置与使用
- 安装Docker Toolbox(安装到C盘)
- 在C:\Program Files\Docker Toolbox路径下右键打开git-bash.exe
- 运行sh start.sh(需要下载Boot2Docker.ISO文件)(把最新ISO文件放在用户目录/.docker/machine/cache中)
- docker-machine设置别名dm,如下
- dm create test
- 进入Docker
- dm env test dm ssh test
- dm env test eval $("C:\Program Files\DockerToolbox\docker-machine.exe" env test)
git-bash别名设置
在git安装目录下/etc/bash.bashrc中加入别名
alias cdvagrant='cd ~/tranning/vagrant/centos7.3'
alias ll='ls -l'
alias ls='ls -F --color=auto --show-control-chars'
alias node='winpty node.exe'
7.12实习培训日志 Linux Docker的更多相关文章
-
7.13实习培训日志 Docker
静态博客github地址 静态博客github地址轻量版 Docker Docker镜像 Docker镜像概念 Docker镜像下载时的分层体现:一层层下载,下载过程中给出了每一层的 ID 的前 12 ...
-
7.11实习培训日志-Git Linux
Git git子模块 先在GitHub创建两个空的respository,一个super_project和一个sub_project. 然后在git bash中向库中写入一些文件. 在super_pr ...
-
7.31实习培训日志-docker sql
docker mysql docker问题 今天问了老师有关docker的问题,entrypoint和cmd的区别,两者同时存在cmd的执行结果会被当做参数传入entrypoint. dockerfi ...
-
7.25实习培训日志-Oracle SQL(一)
Oracle SQL(一) 重点 尽量避免select *,影响性能,不直观. 慎用Distinct,会排序,影响性能,用exists 排序尽量利用索引,索引有序 索引列不要加函数,会使索引失效 外连 ...
-
7.24实习培训日志-Docker-Compose
Docker-Compose 对于昨天的考试,需要 项目根目录下需要docker/mysql/Dockerfile 文件用于构建mysql镜像 项目根目录下需要docker/java/Dockerfi ...
-
7.23实习培训日志-JDBC
总结 今天下午考试,JDBC,这个本身很简单,但是需要我们Dockerfile+Docker Compose运行,这个东西就很复杂.原来学习时没有怎么看,这一次就很懵,完全不知道怎么弄,反正环境都没有 ...
-
7.10实习培训日志-Maven 敏捷编程
总结 今天早上主要学习了Maven和Idea的Docker插件,遇到了一些坑,对于Idea的Docker插件,不能下载,然后我去访问Idea插件官网,发现被墙了,只要开个VPN就好.下午主要是张总经理 ...
-
7.30实习培训日志-SQL优化
总结 今天早上考试,下午主要是老师引导我们学习SQL优化,晚上主要是同学的技术分享,杨松柏同学主要给我们分享了java的io的一些东西,c10k问题,bio(同步阻塞IO),NIO(同步非阻塞IO), ...
-
7.27实习培训日志-Oracle SQL(三)
Oracle SQL(三) 视图 特性 简单视图 复杂视图 关联的表数量 1个 1个或多个 查询中包含函数 否 是 查询中包含分组数据 否 是 允许对视图进行DML操作 是 否 CREATE [OR ...
随机推荐
-
Oracle_12c_RAC_service_died问题分析处理
接上篇,通过分析listener日志发现rac1数据库无法连接时出现了listener_20160628.log:28-JUN-2016 07:55:47 * service_died * LsnrA ...
-
自然语言18.2_NLTK命名实体识别
QQ:231469242 欢迎nltk爱好者交流 http://blog.csdn.net/u010718606/article/details/50148261 NLTK中对于很多自然语言处理应用有 ...
-
HDU 3652 B-number(数位DP)
题目链接 学习大神的数位DP模版. #include <iostream> #include <cstdio> #include <cstring> using n ...
-
ubuntu 清除缓存
2013-03-31 10:20 sudo apt-get autoremove //自动卸载不使用的内容 sudo apt-get autoclean //自动清理,但不会删除用于安装而下载的临时文 ...
-
NX 8.5 License Server Firewall Setting
Reference: http://eng-tips.com/viewthread.cfm?qid=284511 The FLEXNet Server(lmgrd) listens to 28000 ...
-
javascript进击(三)简介
JavaScript 表单验证(可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证) 被 JavaScript 验证的这些典型的表单数据有: 用户是否已填写表单中的必填项目? 用户输 ...
-
mybatis审查要点
1.where条件遗漏情况 <select id="findActiveBlogLike" resultType="Blog"> SELECT * ...
-
nginx.conf 完整的集群配置
###############################nginx.conf 整配置############################### #user nobody; # user 主模 ...
-
Spring Security4.1.3实现拦截登录后向登录页面跳转方式(redirect或forward)返回被拦截界面
一.看下内部原理 简化后的认证过程分为7步: 用户访问网站,打开了一个链接(origin url). 请求发送给服务器,服务器判断用户请求了受保护的资源. 由于用户没有登录,服务器重定向到登录页面 填 ...
-
pydoc用法
pydoc是python自带的一个文档生成工具,使用pydoc可以很方便的查看类和方法结构 本文主要介绍:1.查看文档的方法.2.html文档说明. 一.查看文档的方法 方法1:启动本地服务, ...