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个字符表示每个文件的属性

  1. 第一个字符

    • – (连字符): 一个标准文件
    • d: 一个目录
    • 一个符号链接
    • 字符设备(将数据作为字节流,例如终端)
    • 块设备(以块的方式处理数据,例如存储设备)
  2. 接下来的九个字符,分为三个组,被称为文件模式,并注明读(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_]

进程管理:开机,关机

  1. 初始化 POST(加电自检)并执行硬件检查;
  2. 当 POST 完成后,系统的控制权将移交给启动管理器的第一阶段(first stage),它存储在一个硬盘的引导扇区(对于使用 BIOS 和 MBR 的旧式的系统而言)或存储在一个专门的 (U)EFI 分区上。
  3. 启动管理器的第一阶段完成后,接着进入启动管理器的第二阶段(second stage),通常大多数使用的是 GRUB(GRand Unified Boot Loader 的简称),

    它驻留在 /boot 中,然后开始加载内核和驻留在RAM 中的初始化文件系统(被称为 initramfs,它包含执行必要操作所需要的程序和二进制文件,以此来最终

    挂载真实的根文件系统)。
  4. 接着展示了闪屏(splash)过后,呈现在我们眼前的是类似下图的画面,它允许我们选择一个操作系统和内核来启动:
  5. 内核会对接入到系统的硬件进行设置,当根文件系统被挂载后,接着便启动 PID为 1 的进程,这个进程将开始初始化其他的进程并最终呈现给我们一个登录提示符界面。

它们的父进程(或者换句话说,就是那个开启这些进程的进程)为systemd

  1. 在系统启动期间,systemd 允许并发地启动更多的进程(相比于先前的SysVinit,SysVinit 似乎总是表现得更慢,因为它一个接一个地启动进程,检查一个进程是否依赖于另一个进程,然后等待守护进程启动才可以启动的更多的服务)
  2. 在一个运行着的系统中,它用作一个动态的资源管理器。这样在启动期间,当一个服务被需要时,才启动它(以此来避免消耗系统资源)而不是在没有一个合理

    的原因的情况下启动额外的服务。
  3. 向后兼容 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配置与使用

  1. 安装Docker Toolbox(安装到C盘)
  2. 在C:\Program Files\Docker Toolbox路径下右键打开git-bash.exe
  3. 运行sh start.sh(需要下载Boot2Docker.ISO文件)(把最新ISO文件放在用户目录/.docker/machine/cache中)
  4. docker-machine设置别名dm,如下
  5. dm create test
  6. 进入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的更多相关文章

  1. 7.13实习培训日志 Docker

    静态博客github地址 静态博客github地址轻量版 Docker Docker镜像 Docker镜像概念 Docker镜像下载时的分层体现:一层层下载,下载过程中给出了每一层的 ID 的前 12 ...

  2. 7.11实习培训日志-Git Linux

    Git git子模块 先在GitHub创建两个空的respository,一个super_project和一个sub_project. 然后在git bash中向库中写入一些文件. 在super_pr ...

  3. 7.31实习培训日志-docker sql

    docker mysql docker问题 今天问了老师有关docker的问题,entrypoint和cmd的区别,两者同时存在cmd的执行结果会被当做参数传入entrypoint. dockerfi ...

  4. 7.25实习培训日志-Oracle SQL(一)

    Oracle SQL(一) 重点 尽量避免select *,影响性能,不直观. 慎用Distinct,会排序,影响性能,用exists 排序尽量利用索引,索引有序 索引列不要加函数,会使索引失效 外连 ...

  5. 7.24实习培训日志-Docker-Compose

    Docker-Compose 对于昨天的考试,需要 项目根目录下需要docker/mysql/Dockerfile 文件用于构建mysql镜像 项目根目录下需要docker/java/Dockerfi ...

  6. 7.23实习培训日志-JDBC

    总结 今天下午考试,JDBC,这个本身很简单,但是需要我们Dockerfile+Docker Compose运行,这个东西就很复杂.原来学习时没有怎么看,这一次就很懵,完全不知道怎么弄,反正环境都没有 ...

  7. 7.10实习培训日志-Maven 敏捷编程

    总结 今天早上主要学习了Maven和Idea的Docker插件,遇到了一些坑,对于Idea的Docker插件,不能下载,然后我去访问Idea插件官网,发现被墙了,只要开个VPN就好.下午主要是张总经理 ...

  8. 7.30实习培训日志-SQL优化

    总结 今天早上考试,下午主要是老师引导我们学习SQL优化,晚上主要是同学的技术分享,杨松柏同学主要给我们分享了java的io的一些东西,c10k问题,bio(同步阻塞IO),NIO(同步非阻塞IO), ...

  9. 7.27实习培训日志-Oracle SQL(三)

    Oracle SQL(三) 视图 特性 简单视图 复杂视图 关联的表数量 1个 1个或多个 查询中包含函数 否 是 查询中包含分组数据 否 是 允许对视图进行DML操作 是 否 CREATE [OR ...

随机推荐

  1. 九度OJ 1161:Repeater(复制器) (递归)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1449 解决:508 题目描述: Harmony is indispensible in our daily life and no one ...

  2. django使用自己的setting的方法

    创建一个自己的setting xxx.setting export DJANGO_SETTINGS_MODULE="xxx.setting" 然后在项目中import原生的sett ...

  3. 一个比较好用的Socket测试工具——Hercules SETUP

    官网:http://www.hw-group.com/products/hercules/index_en.html 不要再自己傻傻的写socket测试客户端了 Hercules is great u ...

  4. 我的Android进阶之旅------>自己写个Activity来调节Android系统背光亮度Brightness

    今天终于算初步写好了一个调节系统背光亮度Brightness的代码,本来不看Android源代码以为可以直接调用某个Action来启动系统的那个调节Brightness的对话框,但是看了代码后发现系统 ...

  5. Java基础之Comparable接口, Collections类,Iterator接口,泛型(Generic)

    一.Comparable接口, Collections类 List的常用算法: sort(List); 排序,如果需要对自定义的类进行排序, 那就必须要让其实现Comparable接口, 实现比较两个 ...

  6. 转 EBP ESP 的理解

    PS:EBP是当前函数的存取指针,即存储或者读取数时的指针基地址:ESP就是当前函数的栈顶指针.每一次发生函数的调用(主函数调用子函数)时,在被调用函数初始时,都会把当前函数(主函数)的EBP压栈,以 ...

  7. 【转】BigInteger、BigDecimal详解

    参考 http://lavasoft.blog.51cto.com/62575/228705/ 从Java4到Java5,Java对BigInteger.BigDecimal两个类功能一直再做扩展与改 ...

  8. ES6 Fetch API HTTP请求实用指南

    本次将介绍如何使用Fetch API(ES6 +)对REST API的 HTTP请求,还有一些示例提供给大家便于大家理解. 注意:所有示例均在带有箭头功能的 ES6中给出. 当前的Web /移动应用程 ...

  9. jquery.dataTables.min.js: Uncaught TypeError: Cannot read property 'style' of undefined

    原因:datatable表格内容有操作列,而表头没有定义操作列 少写了一行:<th>操作</th>

  10. CentOS 7 设置自定义开机启动,添加自定义系统服务

    详细文档,http://www.linuxidc.com/Linux/2015-04/115937.htm 摘自: http://www.centoscn.com/CentOS/config/2015 ...