云计算基础知识汇总

云计算基础知识汇总

一、系统部署

  1. 获取Linux 常用发行版的方式:官网:www.centos.org,选择centos-linux-x86-DVD-ios

  2. 改变路径:cd /etc/dir1

  3. 删除文件:rm -rf 文件名 ( -f --force(强制) -r --recursive递归)

  4. 改名文件:mv file1.txt file2.txt

  5. 关机:init 0

  6. 重启:init 6

  7. pwd:查看当前所在的目录

  8. 快捷命令集锦

    ctrl+c (强制中断程序的执行,杀死程序的进程)

    ctrl+z (将任务中断,挂起的状态,进程还存在,任务还没有结束) sleep

    exit(退出)= ctrl+D

    ctrl+A(命令行最前面)

    ctrl+E(命令行最后)

    Ctrl+l(清屏)

    Ctrl+u(删除光标后的字符)

    Ctrl+k(删除光标后的字符)

二、文件和用户管理

1、文件管理

  1. touch file1.txt touch file{1..1000}.txt

  2. mkdir /home/dir1 mkdir -p -m 777 dir1/dir2/dir3(嵌套式) mkdir dir{1..1000}

    // -p --parents 需要创建的迭代目录即使已经存在不报错 -m---mode 在创建目录的时候设置权限

  3. cp 源文件 目标文件夹 cp /etc /dev/sdb1 cp file 1.txt file2.txt file3.txt dir(多个文件复制一个文件夹)

  4. mv 参数1 参数2 mv /etc /home/dir1 mv aa bb dir/(多个文件移动一个文件夹)

  5. rm -rf 文件或目录的路径 rm -rf /file1.txt rm -rf dir1/dir2/dir3/(只删除dir3)

  6. vim /vi /home/file1.txt

  7. 文本编辑
  • yy 复制
  • dd 删除
  • p 粘贴
  • u---- undo撤销
  • /every 在文件中查找every
  • set nu 设置行号
  • set nonu 取消设置行号

  • 查找 / 加查找内容
  1. cd /etc/ //任意目录cd回到家目录
  2. ./(当前目录)../(上一级目录)
  3. 查看命令小结
  • cat /home/file1.txt tail -3 /home/file1.txt head -3 /home/file1.txt tail -f file1.txt (锁定屏幕)
  • grep 12323 /dev/file.txt(过滤file.txt的12323信息,更多的时候充当辅助的作用) 如: ps aux | grep sleep
  • ls:查列出有关文件的信息 // -l --list 长列表显示ls -l = ll // -a ---all查询目录下的所有文件包括隐藏文件//-s---size 按文件大小排序 // -i----inode显示文件索引号 //-d----directory显示当前目录的目录文件

2、用户管理

  1. 用户基本信息
  • useradd user1
  • useradd user1 -u 1500:创建用户user02,指定uid
  • useradd user03 -d /user03:创建用户user03 指定用户登入时的启始目录
  • useradd user04 -g xiaozu1 -G xiaozu2 // -g---选择默认组 -G---添加到额外组
  • gpasswd -d user02 hr:将用户移出扩展组 d---delete
  • userdel -r user1 r---recursive:递归
  • passwd user1 创建user1密码
  • id user1(查询用户ID,组ID,和用户所在的组)
  • cat /etc/passwd(查看七列字段-- 用户名:密码占位符:用户id 0(超管)0-999(内置用户):组id 0(超管)0-999(内置用户):描述:家目录(超管目录):登录shell(壳---应用程序)
  • cat /etc/shadow(查看用户密码信息由九字段组成)
  1. 组基本信息
  • groupadd hr
  • groupadd net01 -g 1007
  • groupdel hr

  • cat /etc/group:组名:组密码:组ID:组成员
  • tail -3 /etc/group
  1. su - user1 :切换用户 exit= ctrl+D----退出用户返回root

  2. 小结

touch /home/file1.txt(有一个默认属主属组),建一个user1、组hr,使得文件的属主属组是所建的,用户和组-------chown user1.hr /home/file1.txt

三、用户的权限

1、基本权限UGO

  1. 修改权限
  • 使用符号:u(user)用户 g(group)组 o(other)其他 r(read)读 w(write)写 x执行
  • chmod u+x (w/r) file1
  • chmod a=rwx file1 //所有人等于读写执行
  • chmod a=- file1 //所有人没有权限
  • chmod ug=rw,o=r file1 //属主属组等于读写,其他人只读
  • /root/file.txt (运行相应文件里面的程序)
  • ll file1:查看文件的权限等
  1. 使用数字修改权限
  • 4读 2写 1执行
  • chmod 644 file1
  • ll file1:查看文件的权限等
  1. 更改属主、属组
  • chown alice.hr file1:改属主、属组
  • chown alice file1 :只改属主
  • chown .hr file1:只改属组
  • -R针对目录中所有的文件。chown -R test.test testdir/ <==修改testdir及它的下级目录和所有文件到新的用户和用户组 变更属主和属组需要事先创建好。

2、基本权限 ACL

  1. setfacl -m u:alice:rw /home/test.txt m--- 更改文件或者目录的acl规则

​ 命令 设置 用户或组:用户名:权限 文件对象

  1. setfacl -m u:alice:- /home/test.txt
  2. setfacl -m o::rw /home/test.txt
  3. 删除ACL权限
  • setfacl -x g:hr /home/test.txt: x---删除文件或者目录指定的acl规则
  • setfacl -b /home/test.txt: b---删除文件或者目录所有的acl规则
  1. 查看
  • getfacl /home/test.txt----------查看文件的属主、属组,以及属主属组权限
  • lsattr file. txt(查看文件是否有特殊属性)

四、进程管理

  1. ps aux | head -2 ps (precess status)

    ps a: 显示现行终端机下的所有程序

    ps u:以用户为主的格式来显示程序状况

    ps x:不以终端机来区分

    静态显示USER,PID,%CPU,%MEM,VSZ,TTY,STAT,START,TIME,COMMAND

  2. 查看进程的CPU占比降序排列情况(-是降序)
    [root@localhost ~]# ps aux --sort -%cpu
    [root@localhost ~]# ps aux --sort %cpu

  3. 查看进程的父子关系。 请观察PID和PPID
    [root@localhost ~]# ps -ef

  4. top:动态查看进程 top -d 1 -p 10126 查看指定进程的动态信息 ,每秒刷新一次 d--- p--- process

  5. kill -15 4326(进程号) 15:正常终止信号 9:强制终止 1:重新加载配置

  6. kill -l :列出所有支持的信号 l---list

  7. ps axo pid,command,nice --sort=-nice:查看进程的nice(优先级)级别

  8. 启动具有不同nice级别的进程:nice -n -5 sleep 6000 & nice -n -10 sleep 7000 &

  9. 更改现有进程的nice级别:renice -20 2669 (2669旧的级别是0)

  10. sleep 3000 &(&:表示后台运行) jobs:查看后台进程--[1]+ Running sleep 3000 &--调回前台只需 fg 1

  11. 虚拟文件系统 proc

五、重定向管道

1、重定向

(1)FD

  1. file descriptors = FD:文件描述
  • 标准输入 0 —> 键盘
  • 标准输出 1 —> 显示器
  • 标准错误输出 2 —> 显示器 2+可读写文件
  1. 通常在 /proc/PID/fd 就能看到文件的FD调用情况
  • 打开一个进程如:vim
  • ps aux | grep vim ---找到vim进程号

  • ll /proc/43544/fd-------就可以了解相应打开文件的FD

(2)案例

  1. 正确输出:1> = > :再输入内容会覆盖掉 1>> = >> :再输入内容是一种续写的操作,不会覆盖

  2. 错误输出:2> = > :再输入内容会覆盖掉 2>> = >> :再输入内容是一种续写的操作,不会覆盖

  3. ls /home/ > file1.txt :因为执行此命令会有正确输出,故file1.txt会有信息,ls /home/ 2> file1.txt

    file.txt不会有内容

  4. ls /home/123221334 > file1.txt :因为执行此命令会有错误输出,故file1.txt不会有信息,

    ls /home/ 244216534634 2> file1.txt :file.txt有信息

  5. ls /home/ /aaaaaaaaa &> file1.txt.txt &:1/2, file1.txt一定会有信息

2、管道

  1. 语法:command1 | command2 |command3 |...
  • cat /etc/passwd | tail -3
  • ps aux | grep 'sshd'
  1. tee管道
  • cat /etc/passwd |tee 88.txt | tail -1 如同T
  1. 一些特殊命令不服从管道
  • 如rm - rf
  • 解决:使用xargs命令 如:cat files.txt |xargs rm -rvf

六、存储管理1

1、基本分区

  1. 管理磁盘
  • fdisk /dev/sdb partprobe /dev/sdb :刷新分区列表
  • mkfs -t ext4 /dev/sdb1
  • mkdir /mnt/dir1 mount /dev/sdb1 /mnt/dir1
  1. 查看磁盘信息
  • ll /dev/sd*----显示各个磁盘及权限
  • lsblk----显示各个磁盘及磁盘大小
  1. 查看挂载信息
  • df -hT (hT查询已经装载磁盘的空间容纳情况)
  • mount
  1. 自启动文件(防止重启后挂载失败)
  • vim /root/.bashrc
  • mount -t ext4 /dev/sdb1 /mnt/disk1

2、逻辑卷LVM:Logical Volume Manager

  1. 创建LVM
  • pvcreate /dev/sdb pvs pvdisplay:查看详细信息
  • vgcreate vg1 /dev/sdb vgs vgdisplay
  • lvcreate -L 100M -n lv1 vg1 lvs lvdisplay L--long 逻辑卷大小 n--name
  • mkfs - t ext4 /dev/vg1/lv1
  • mkdir /mnt/dir1
  • mount /dev/vg1/lv1 /mnt/dir1 df -HT
  1. 扩展VG
  • pvcreate /dev/sdc
  • vgextend vg1 /dev/sdc
  1. LV扩容
  • lvextend -L +200M /dev/vg1/lv1
  • resize2fs /dev/vg1/lv1:刷新LV

3、交换分区管理swap

  • fdisk /dev/sdf t---L-----82:修改为交换分区
  • partprobe /dev/sdf1 :刷新sdf盘
  • mkswap /dev/sdf1
  • swapon /dev/sdf1
  • free -m :查看分区情况 -m 参数就是用 M显示内容使用情况

七、存储管理2

1、文件系统详解

  1. EXT4文件系统
  • inode(index node 索引节点):ll -i file.txt 查询文件的索引节点 i---inode
  1. block(块 文件内容)
  • inode决定了文件系统中文件的数量:touch file{1..30000}
  • block存储空间:可以向文件对应的各个块中存储数据
  • 磁盘空间的限制:inode+block两方面
  • df -hT :可以查询已经装载磁盘的空间容纳情况

2、文件链接

  1. 软连接
  • ln -s 真实存在文件 以软连接形式存在的文件 s--
  • echo 123 > /file1.txt
  • ln -s /file1.txt /home/file11.txt
  • 查看: ll /file1.txt /home/file11.txt
  • rm -rf /file1.txt
  • 总结:软连接像快捷方式,可以对文件和目录做软连接。软连接记录的只是指向源文件的路径,软连接失去源文件不可用。
  1. 硬链接
  • echo 123 > /file2.txt
  • ln /file2.txt /home/file22.txt
  • 硬链接删除源文件,依然可以用(硬链接本质:相当于为源文件的数据块多了一个索引节点)不允许将硬链接指向目录,硬链接只能针对文件、同分区使用,不能对目录使用。

3、RAID

  1. mdadm -C /dev/md0 (只是一个名字可任意) -l5 -n3 -x1 /dev/sd{d,e,f,g} C--create

    n--number l--level x-热备磁盘数量

  2. mkfs -t ext4 /dev/md0

  3. mkdir /mnt/raid5

  4. mount /dev/md0 /mnt/raid5

  5. cp -rf /etc /mnt/raid5/etc1-----(让已经搭建的RAID存储数据 )

  6. mdadm -D /dev/md0 D--detail:查看详细信息

  7. 模拟一块硬盘损坏,并移除
  • watch -n 0.5 'mdadm -D /dev/md0 | tail' //watch----持续查看,实现动态显示。

    watch:默认 watch 会以 2s 的间隔重复运行命令,也可以用 -n 参数指定时间间隔,还有一个实用的参数是 d,这样 watch 会帮你高亮显示变化的区域,这样更加一目了然了,Ctrl+c 就可以退出。在Linux下,watch是周期性的执行下个程序,并全屏显示执行结果。

    -d, --differences[=cumulative] 高亮显示变动

    -n, --interval=<seconds> 周期(秒)

  • mdadm /dev/md0 -f /dev/sde -r /dev/sde //模拟坏了并移除 -f --fail-------force(强制) -r --remove

八、文件查找

  1. 命令查找:which 相应的命令 which vim which ls 类似的:wherels 相应的命令
  2. 任意文件查找
  • local file1.txt ----新建的文件系统需要刷新之后才能查找:updatedb
  • find [path...] [options] [expression] [action]
    命令 路径 选项 表达式 动作
  • 按文件名:find /etc -iname "hosts" i----表示不区分大小写
  • 按文件大小: find /etc -size +/-/=5M
  • 指定查找的目录深度: find / -maxdepth 4 -a -name "ifcfg-en*" -a(and)
  • 按文件属主、属组找: find /home -user jack 、 find /home -group hr
  • 按文件类型:find /tmp -type f // f普通文件,b块设备文件,d目录,p管道,l连接
  • 按文件权限: find . -perm 644 -ls ls:查找的文件已ls的显示方式展现 .(包含隐藏文件)
  • 找到后默认是显示文件: find . -perm 644 -ls
  • 找到后删除:find /etc -name "775*" -delete
  • 找到后复制:find /etc -name "ifcfg*" -ok cp -rvf {} /tmp \;

​ 占位符

  1. 文件打包及压缩
  • tar -xvf etc2.tar.bz2 -C /tmp -C重定向到/tmp目录 v--vision f--file x--解压

九、软件管理

1、RPM管理

  1. RPM:Red Hat Package Manage 无法实现个性化 软件包示例(注意后缀)

    mysql-community-common-5.7.12-1.el7.x86_64.rpm

  2. Yum:Yellow dog Updater, Modified:可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

  3. 配置yum仓库 /部署163yum源
  1. 配置EPEL文件
  1. Nginx:(配置文件)
  • 第一步:通过官网查找Nginx
  • 第二步:根据提示创建配置文件
  • 第三步: 查看服务器是否已经具备软件官方源
  • yum repolist yum list | grep Nginx
  1. 使用YUM管理RPM包
  • ping www.baidu.com :网络测试

  • yum -y install httpd vsftpd -y (yes自动确认)

    systemctl start httpd

    systemctl stop firewalld

  • 查询YUM源:yum repolist

  • 查询HTTP程序:yum list httpd

  • 卸载程序:yum -y remove httpd
  1. 当一个程序需要安装并使用时:
  • yum provides ifconfig 查询一下所要安装的程序是否为已知的名字
  • 查询出不匹配,使用查询的结果来安装:yum install -y net-tools-2.0-0.25.20131004git.el7.x86_64

2、源码包

  1. 源码包:可以实现个性化功能 软件包示例:nginx-1.8.1.tar.gz
  2. 从相应的官网获得源码包
  • Apache: www.apache.org
  • Nginx: www.nginx.org
  • Tengine: tengine.taobao.org
  1. 部署tengine
  • wget http://tengine.taobao.org/download/tengine-2.2.0.tar.g
  • tar -xvf tengine-2.2.0.tar.gz
  • cd tengine-2.2.0
  • useradd www
  • ./configure --user=www --group=www --prefix=/usr/local/nginx //配置
  • make:编译
  • make install
  • systemctl stop httpd:确保关闭httpd
  • 测试:/usr/local/nginx/sbin/nginx systemctl stop firewalld 使用浏览器访问本机的IP

十、计划任务

  1. 一次性调度执行 at
  • 语法格式:at <TIMESPEC> 如:now +5min teatime tomorrow noon +4 days
  1. 一次性任务计划
  • at now +1min
  • at> useradd uuuu
  • CTRL+D输入完毕,提交任务
  • atq:查询-----得到任务号
  • at -d 任务号 / at -d 文件名:删除任务
  1. 循环调度执行 cron
  • crontab是一个命令,存在于“/etc/crontab”文件中
  • systemctl status crond.service ps aux |grep crond :查看cron循环任务
  • 创建计划:crontab -e e---editor
  • 查询计划:crontab -l l--list
  • 删除计划:crontab -r r---remove
  • systemctl start crond //启动服务
  • systemctl stop crond //关闭服务
  • systemctl restart crond //重启服务
  • systemctl reload crond //重新载入配置
  • systemctl status crond //查看服务状态
  1. 循环任务计划
  • 循环任务内容存放在:/var/spool/cron/

  • ls:实现查看循环任务内容

  • 循环任务内容: //分时日月周:设置循环任务执行时间 + command

  • 示例

    准备创建脚本文件:vim /root/1.sh----/usr/bin/touch /root/date +%F-%H-%M-%S.txt(在已建文件中编辑)

    给文件执行权限:chmod +x /root/1.sh

    编写任务计划:crontab -e---- * /root/1.sh

十一、日志管理

1、rsyslog 系统日志管理

  1. 观察 rsyslog进程:ps aux |grep rsyslogd

  2. 常见的日志文件(系统、进程、应用程序)及存放位置
  • tail -f /var/log/messages 显示系统主日志文件 f---锁定在屏幕上

  • tailf /var/log/secure

  • tail /var/log/yum.log

  • tail /var/log/maillog

  • tail /var/log/cron

  • tail /var/log/dmesg
  1. rsyslog
  • yum install rsyslog --- 一般已经默认安装

  • systemctl start rsyslog.service

  • rpm -qc rsyslog ----查询软件包安装路径和各配置文档的具体路径 /etc/rsyslog.conf -q--query -c----config

  • rpm -qa 查看所有软件包 -a--all

  • vim /etc/rsyslog.conf---对主配置文件进行编辑 :RULES 包含设备、级别、日志存储位置

    如:authpriv.* /var/log/secure(SSH信息)

    云计算基础知识汇总

  1. 如果对某一种程序(ssh)日志有特定的需要(修改设备类型),需要将日志放到特定位置记录,方便查看
  • vim /etc/ssh/sshd_config SyslogFacility AUTHPRIV -- SyslogFacility LOCAL5:自定义程序的设备类型

  • vim /etc/rsyslog.conf local5.* /var/log/serverzz(任意添加的一个日志存放位置)
  • systemctl start rsyslog----自定义修改之后需要重新加载才能起作用
  1. vim /etc/rsyslog.conf ------ 可以修改相应设备日志存放位置

  2. 产生日志的程序 rsyslog 其他应用程序(后续安装)

2、logrotate日志轮转

  1. 按照配置进行轮转
  • 主配置文件:vim /etc/logrotate.conf: (适用于所有日志文件轮转,优先级低于子配置文件的要求)
  • 子配置文件夹:vim /etc/logrotate.d/* (自定义配置)如;/etc/logrotate.d/yum --- 实现对yum命令日志的个性化配置
  • 观察主文件和子文件: ls /etc/logrotate.conf /etc/logrotate.d/
  • 查看yum日志 ls /var/log/yum.log
  1. 配置轮转规则
  • missingok //丢失不执行
  • notifempty //空文件不论转
  • maxsize 30k //达到30k轮转
  • yearly //或者一年一轮转
  • daily //1天轮转
  • rotate 3 //轮转保留3次
  • create 0777 root root

十二、网络管理1

  1. 查看网络管理程序的状态:systemctl status NetworkManager
  2. 查看网络子管理程序的状态:systemctl status network
  3. 使用vim命令配置网络:vim /etc/sysconfig/network-scripts/ifcfg-ens33 . ----root目录
  • ONBOOT=yes//是否启用该设备
  • BOOTPROTO=none //手动(none/static)还是自动获取IP(dhcp)
  • IPADDR=192.168.142.131 IP a
  • NETMASK=255.255.255.0
  • GATEWAY=192.168.142.2 ip r
  • DNS1=192.168.142.2 cat /etc/resolv.conf
  • boot:启动 protocol:协议 获得ip地址有三种:dhcp--自动 none---手动 static—静态
  • ping 192.168.1.1 测试网络
  1. 注意事项
  • ls /etc/sysconfig/network-scripts/ifcfg-ens33 -a 查看所有文件包含隐藏文件(在你编辑文件时由于没有保存编辑文件,系统默认保存并以隐藏文件的形式存在,由此产生一系列错误)解决方法就是删除:rm -rf ()
  • cp /etc/sysconfig/network-scripts/ifcfg-ens33 . (防止修改之后产生不可挽回的错误)
  • 配置完后需要重启:systemctl restart network
  1. 查看主机名:hosname
  2. 修改主机名:vim /etc/hostname
  3. 端口号(后续学习继续补充)
  • 网站服务器端口号:80/tcp(http) 443/tcp(https)
  • 远程连接端口号:22
  • 控制端口 command :21
  • 数据端口 data :20

  1. 查端口号: ss -tnl ss--网络连接命令 t---tcp n---number l---list:列举
  2. 装最小化centos系统的注意事项
  • 配置YUM 源
  • 关防火墙:systemctl stop firewalld 开机禁用防火墙:systemctl disable firewalld 查看防火墙状态:systemctl status firewalld
  • selinux : vim /etc/sysconfig/selinux 改为SELINUX=disabled 查看:getenforce
  • 6.安装常用程序:yum install -y lrzsz sysstat elinks wget net-tools bash-completion vim
  • 拍快照

十三、网络管理实战1

  1. OSI:Open System Interconnection 开放系统互联模型
  2. OSI:7层次结构/功能:推出较早,只有理论,没有实践
  • 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层
  1. TCP/IP(Transmission Control Protocol/Internet Protocol):5层结构/功能:美国军方制定,当今通信标准
  • TCP/IP = 应用层+表示层+会话层:用户信息转换为数据,以便在网络上传输,为了实现这一功能,需要在应用层数据的前端附加一个 TCP 首部
  • 传输层:数据转换为数据段,并在发送方和接收方主机之间建立一条可靠的连接
  • 网络层:数据段转换为数据包或数据报,并在报头中放上逻辑地址,这样每一个数据包都可以通过互联网络进行传输
  • 数据链路层:数据包或数据报转换为帧,以便在本地网络中传输。在本地网段上,使用硬件地址MAC,唯一标识每一台主机。(功能:链路创建,维护,管理,帧封装,传输,同步,差错校验)
  • 物理层:帧转换为比特流,并采用数字编码和时钟方案,通过某种传输介质发送数去。
  1. 5层模型协议分类
  • 应用层:HTTP/超文本传输协议/网站 FTP/文件传输协议 SSH/远程连接协议/远程控制 DNS/域名服务/WWW
  • 传输层:TCP/传输控制协议/可靠 UDP/用户数据报协议/不可靠
  • 网络层:IP/互联网协议/寻址 ICMP/网络消息管理协议/测试
  • 数据链路层:MAC(媒体访问控制地址)Media Access Control Address
  • 物理层:光纤,网线
  1. 各进制关系和转化
  • 十进制:由0-9十个数字组成,满十进一
  • 二进制:由0-1两个数字组成,满二进一
  • 十六进制:由0-9,A,B,C,D,E,F十六个字符组成,满十六进一
  • 二进制转换为八进制
    例如:1111000010.01101
    以小数点为界,分为三三一组,然后读出该数
    例如:001 111 000 010 . 011 010
    1 ----7----0----2—.---3—2
    所以这个数转为八进制数就是1702.32
  • 二进制转换为十六进制
    还是这个数
    以小数点为界,分为四四一组,然后读出该数
    例如;0011 1100 0010 . 0110 1000
    —3-------C-----2----.—6------8
    所以这个数转为八进制数就是3C2.68
  • 八进制转换为二进制:上述的方法反向操作就可以了,把每一个数用二进制读出来,并分三个位的位置
  • 十六进制转换为二进制:把每一个数用二进制读出来,并分四个位的位置
上一篇:记录下我用过的linux系统命令


下一篇:MySQL 在Windows平台上的安装及实例多开