**centos7.0安装
Linux的启动过程:
1.加电,BIOS对硬件自检
2.在硬盘的MBR里找系统的引导文件
3.启动grub引导菜单
4.系统初始化(激活网卡、启动系统进程)
软连接 文件 目录 跨分区
硬链接 只能对文件 同分区
1.光盘iOS镜像安装
2.桥接安装
gnome图形界面
centos 7 有5个虚拟终端tty “ctrl+alt+ f2 f3…f6” 退出终端 “ctrl+alt+f1”
查看终端 :tty
终端快捷键:
shift+ctrl + 放大
ctrl - 缩小
shift+ctrl n 开启新终端
alt F4 关闭终端
shift+ctrl t 开启终端标签
alt 1-- 切换标签
shift+ctrl w 关闭标签
shift+ctrl c 复制(图形界面)
shift+ctrl v 粘贴(图形界面)
图形界面也是一个程序 占用大量资源 cpu !一般不用
nc -l 端口号
远程连接:ssh 用户名@IP地址
Linux目录结构
单树倒置 /
root 当前用户 。 localhost 当前所在主机 。~ 当前工作目录。 #为超级管理员 。$普通用户
打开终端 也就是打开shell 系统对话
【root@localhost ~】# 命令 【选项】 参数 (目录/文件)
黑色 文件 蓝色 目录 青色 链接文件 绿色 可执行文件 (脚本/程序)
/bin 可执行文件(命令,程序的运行文件) 任何用户可执行
/sbin 可执行文件 (命令,程序的运行文件 )system 。 root系统管理命令
/etc 配置文件 (系统自身,应用程序)
/boot 系统启动引导器+kernel
/home 家目录 每创建一个用户,准备一个目录,存放自己的文件
/dev device设备 虚拟硬件 硬盘也是一个文件
/tmp 临时文件夹 7天没有访问 系统自动清理 安装 运行时产生的临
/opt option 可选 一般是空的 不使用 第三方应用程序会用到
/var 可变 一般变化频率高的文件 log 系统日志…等
/usr 安装的应用程序
/proc 当前内存映像 ,虚拟文件系统
/lib /lib64 库文件 应用程序会调用
/mut /media 挂载点 磁盘分区,磁盘管理
/root 管理员root 家目录
/run 应用程序,运行过程中,会产生一些文件
/srv /opt 可选 给第三方应用程序
/sys 硬件信息
ls list 列出目录选项 例:ls -a /etc/selinux 。 ls /boot
-a 显示所有,包括隐藏文件
-l以长格式显示
-h人类可读大小
-d显示目录本身
-S大小排列
第一位 文件类型 第二位 硬链接数 第三位文件所属人 第四位文件所属组 第五位文件大小 第六位文件最后一次编辑 第七位 文件/目录名
【 d rwxr-xr-xx.】

  • 普通文件
    d 目录
    l 软链接文件link
    符号链接
    c 字符设备文件character
    b 块设备
    p 管道
    s socket套接字
    pwd 显示当前工作目录
    cd 改变目录 cd…返回上一级目录 cd- 在最近两次工作目录中来回切换
    mkdir 创建目录 make directory mkdir -p /test/yanggang
    touch 创建文件 不区分后缀名 touch .abc 创建隐藏文件
    rm 删除 -f 强制-r递归
    man手册中文切换英文
    rmdir 删除空目录
    cp 拷贝 源文件 。。。 目的地 -r 拷贝目录 -a -p
    mv 剪切 源文件或目录 。。。 目的地
    cat/more/less/head/tail 查看文件内容 -n 显示行数
    file 查看文件格式
    wc -l 显示文件行数
    which 查看命令路径
    man 手册 (man man / man passwd) (man -k 搜索命令在哪本手册)(mandb更新man手册)1-8
    info pinfo加强版
    –help /usr/share/doc
    file 查看文件类型 例:file /etc/passwd 是一个文件
    快捷键
    tab键 自动补全 命令 选项 路径 文件名 目录都可以补全
    上下箭头 找之输入过的命令
    alt+. alt+esc 复制上一条命令最后的参数
    绝对路径 以根/开始 准确定位一个文件或目录
    相对路径 相对于当前目录 不以根 /开始
    编辑文件
    文本编辑器 vi /vim /nano /emacs /gedit/
    命令模式 comman mode 复制 剪切 粘贴 G跳到文件末尾 gg文件首 26gg跳到26行 dd行操作 删除/剪切 默认是一行 g_移动到行尾的空格前 p向光标所在行下粘贴 P 向光标所在行上粘贴 10dd剪切10行 y拷贝 r 替换 w向下个单词首字母移动 n向下翻 N向上翻 nohl 取消高亮 h左j下k上l右
    插入模式 insert mode 编辑内容 i o esc返回命令模式 shift+6 到行首 shift+4 到行尾
    末行模式 ex mode 保存 退出 :wq :q! :wq! u撤销 CTRL+R 反撤销
    s /替换什么/替换成什么/ :%s/替换什么/替换成什么/g 替换所有需要替换的内容 ,"%" 这是一个范围 (1 ,6)
    可视模式 CTRL+v 块复制 v单个字 V行 :set number 显示行数 set noli set nonu取消显示行数
    vim /etc/passwd
    用户名/账号:密码占位符:uid:gid 属于哪个组:注释描述:用户登陆系统后所在目录是哪里,用户家目录:shell
    linux权限
    用户权限
    普通权限
    特殊权限
    默认权限
    文件系统访问控制列表
    文件系统属性
    ansible saltstack 自动化创建多个用户
    超级root 0
    普通 :系统(0-----999) 普通用户:1000以上
    开发人员 的权限最难划分
    rwx r-x r-x root root
    所属人 所属组 other 其他 所属人 所属组
    r 。read 读 w 。write 写 x 。exec 执行(一个文件,里面不是普通的文件,而是可以运行的代码,那么这些代码需要执行那么必须要有执行权限)
    file 文件 cat 浏览 modify 修改 script 脚本 ------- rw r x
    directory 目录 ls浏览 创建/删除目录中的文件或目录 能不能cd进入------- rwx rx
    1.系统查看当前用户的UID,与文件所属人的UID是否一致 ,如果一致,那么就查看第一个三位组权限
    2.如果不一致,查看当前你用户是否是 文件所属组中的成员,那么就查看第二个三位组权限
    3.如果既不是所属人,也不是所属组中成员,那么就查看第三个三位组权限
    chown 更改文件所属人 chown -R user1 test/* 更改test目录下所有文件的所属人权限
    chgrp 更改文件所属组 -rw-r–r--. 1 root root 0 Jul 8 10:14 file1
    [root@localhost test]# chown linux file1
    [root@localhost test]# chgrp linux file1
    -rw-r–r--. 1 linux linux 0 Jul 8 10:14 file1
    chown Linux.Linux file1 所属人所属组一起改
    chown .linux file1改所属组
    chmod 更改文件权限 符号表示法 u用户 g组 o其他 a所有 +加 -减 =等于 r读w写x执行
    u+r ug+x a=rw a+rw
    数字表示法 chmod 640 file1 6 u 4 g 0 o (二进制)
    r-- -w- --x 100 010 001 4+2=rw- 4+0=r-- 0=—
    密码策略
    chage -E 账户过期
    -M 密码多大使用使用时间,密码过期,账号可用,,秩序在规定时间改密码即可 -W距离多 少天报警 -m 密码最少使用几天才能更改密码
    提权
    su 需输入root密码
    sudo 需输入执行者的密码 需管理员授权
    vim /etc/soduers(带颜色 无语法检查) :wq!
    visodu (语法检查)
    umask 022 002 default 777.666
    文件系统属性 lsattr chattr i.read onlly
    a.append only
    特殊权限/高级权限 文件系统的访问控制列表
    进程管理
    普通 /标准/UGO 系统标准
    rwx ugo chown chgrp chmod
    特殊权限 SUID SGID sticky
    SUID SGID 可执行文件
    SUID sticky 目录
    默认权限 0777 0666
    umask 0022 0002
    vim /etc/bashrc 可以在这里更改
    umask -S [root@vlnx050122 ~]# umask -S
    u=rwx,g=rx,o=rx
    umask -p [root@vlnx050122 ~]# umask -p
    umask 0022
    举例:umask 044 查看user1 创建目录和文件的权限

umask 0123 问目录权限是 0777-0123 =654 文件权限是 0666-0123=544

#umask 0022 和umask 0033 创建文件的权限是一样的都是 644
#目录默认是有w权限 文件是没有x权限
s S t T
特殊权限

chmod u+s 文件名称
sgid 针对目录设置
作用:目录拥有sgid权限后,在目录下新创建的文件会继承目录的属组信息
设置sgid权限
chmod g+s 目录名称
[root@vlnx050100 ~]# ls -ldh /linux
drwxr-sr-x 2 root caiwu 32 7月 16 13:06 /linux
sticky bit 针对目录设置
作用:只有目录下文件的属主用户,目录属主用户及root可删除该文件
[root@vlnx050100 ~]# ls -ldh /tmp
drwxrwxrwt. 49 root root 8.0K 7月 16 13:05 /tmp
facl
文件系统属性 a i 防止误删除 lsattr chattr
文件系统的访问控制列表 setfacl getfacl other 范围过大 进一步划分
setfacl -m g:用户组名称:权限 文件名称
[root@vlnx050100 ~]# setfacl -m u:user2:r /test/3.txt

[root@vlnx050100 ~]# getfacl /test/3.txt (查看)
getfacl: Removing leading ‘/’ from absolute path names

file: test/3.txt

owner: root

group: root

user::rw-
user:user2:r–
group::r–
mask::r–
other::r–

setfacl -x u:用户名 文件名称
[root@vlnx050100 ~]# setfacl -x u:user2 /test/3.txt
setfacl -x u: 用户名 文件名称
[root@vlnx050100 ~]# setfacl -x u:user2 /test/3.txt

.bashrc 打开新终端 vim /etc/bashrc
.bash_profile 用户登录系统 vim /etc/profile
登陆顺序
.bash_logot 注销系统
alias 命令别名 =‘命令’
针对单个用户设置别名:
[root@vlnx050100 ~]# vim /home/user2/.bashrc
alias ipshow =‘cat /etc/sysconfig/network-scripts/ifcfg-eth0’
[root@vlnx050100 ~]# source /home/user3/.bashrc (重新加载一下,不需重启)
针对所有用户设置别名:
[root@vlnx050100 ~]# vim /etc/bashrc
alias ipshow =‘cat /etc/sysconfig/network-scripts/ifcfg-eth0’
[root@vlnx050100 ~]# source /home/user3/.bashrc (重新加载一下,不需重启)
取消别名 unalias

用户管理
user用户:group用户组
useradd 创建普通用户
练习:
添加组: gid为5000 组名:haha
添加用户: uid为5000 gid为5000 描述:ceshi 家目录:/tmp下 shell:tcsh hehe
groupadd -g 5000 haha
useradd -u 5000 -g 5000 -c ceshi -d /tmp/hehe -s /bin/tcsh hehe
userdel删除用户
删除邮箱
usermod修改用户命令 登录名、家目录
-G 修改附属组 [root@localhost ~]# usermod -G group10 user2 = group10❌1004:user2
-g修改主组 [root@localhost ~]# usermod -g group10 user2 =
-L 锁定账号 [root@localhost ~]# usermod -L user2 user2:!$6$8oBWEQAn$17oaNS7cg5FUfq.2O94W2ZlqQfKsWM09FZw/ubI.ueBeRHcr8yhEfFBBx4JcxcCsf.cWrO8rWaplAsWNQ37J71:17724:0:99999:7:::
-U 解锁账号 [root@localhost ~]# usermod -U user2 user2:$6$8oBWEQAn$17oaNS7cg5FUfq.2O94W2ZlqQfKsWM09FZw/ubI.ueBeRHcr8yhEfFBBx4JcxcCsf.cWrO8rWaplAsWNQ37J71:17724:0:99999:7:::
-d 更改用户家目录 [root@localhost ~]# usermod -d /test/home user2
user2❌1001:1004::/test/home:/bin/bash
-m 通常与 -d 联合使用
-s 更改shell脚本
锁定密码
passwd 设置密码
passwd -l user2
user2:!!$6$8oBWEQAn$17oaNS7cg5FUfq.2O94W2ZlqQfKsWM09FZw/ubI.ueBeRHcr8yhEfFBBx4JcxcCsf.cWrO8rWaplAsWNQ37J71:17724:0:99999:7:::
passwd -S user2
passwd -u user2 解锁密码
user2:$6$8oBWEQAn$17oaNS7cg5FUfq.2O94W2ZlqQfKsWM09FZw/ubI.ueBeRHcr8yhEfFBBx4JcxcCsf.cWrO8rWaplAsWNQ37J71:17724:0:99999:7:::
groupadd 创建组 举例: groupadd group1 groupadd -g group2 指定组id
groups查看当前登录用户的组内成员 (举例 groups yanggang 查看yanggang用户所在组 及组内成员)
/etc/passwd 查看用户id /etc/group查看用户所属组 和组id /etc/shadow查看密码哈希值
echo 打印 > 重定向 | 管道符 echo “123*” | passwd – stdin user1 非交互式改密码
[root@localhost ~]# chage -E 2018-7-16 user3 修改指定账户过期时间
user3:$6 3 a T e . B K w 3aTe.BKw 3aTe.BKwBZNRZeAjVwXnav9YpYoZ6CRwm0BVW2Rw6xtOkG6Q9OUAfiGD0tokmS8y27GNJRqBr3RRSe/GV10pWlev.PYxe0:17724:0:99999:7::17728:
设置密码的哈希加密算法
[root@vlnx050100 ~]# openssl passwd -1 123
1 1 1jkk9sd4V$cjy0GI/Q9bll0VAKnWHCT1
pwcov 同步用户从/etc/passwd到/etc/shadow
pwck 是校验用户配置文件/etc/passwd和/etc/shadow 文件内容是否合法或完整
pwunconv 是pwcov的立逆向操作,是从/etc/shadow和/etc/passwd 创建/etc/passwd,然后后悔删除/etc/shadow 文件
su 用户切换工具 sudo是通过另一个用户来执行命令(execute a conmand as another user)
(改文件名:sudo 原文件名 改成后文件名)
(文件隐藏的格式 mv a .a)
whoami 查看当前登录用户名 存放位置/etc/group
MD5sum
算法:sha1sum sha224sum sha256sum sha384sum sha512sum
进程管理
进程: 内核空间的进程 ---->linux内核
用户空间的进程------->ls 、app
打开进程 process PID
uptime单独显示cpu平均负载
localhost ~]# uptime
20:38:50 up 3:24, 4 users, load average: 0.05, 0.03, 0.05
top动态
%CPU:
us :user用户空间的进程占用的cpu
sy:system 内核空间的进程占用的cpu
ni:nice 调整过优先级的进程占用cpu
id:idle cpu的空闲
wa:wait 等待IO操作的进程所占用的cpu
hi:hard interrupt 硬件中断所占用的cpu
si:soft interruput 软件中断所占用的cpu
st:steal 分配给虚拟化的cpu
buff缓冲:向块设备文件保存数据,数据先进buffer
cache缓存:cpu读取硬盘数据时,数据先到cache,再转交给cpu处理
top交互式指令 :
M:按内存使用排序
P:按CPU使用排序
T:按运行时间排序
l:是否显示TOP第1行信息
m:是否显示内存使用信息
t:是否显示cpu及任务信息
c:是否显示完整的命令行
q:退出TOP显示当前时刻cpu的使用情况
top选项:
-d 1:指定top信息刷新的频率
-b:以批模式显示进程信息
-n 2:共显示两批信息
[root@localhost ~]# top -d 1 -b -n 2
查看您服务器性能:mpstat 查看cpu / vmstat 查看内存 / iostat 查看磁盘
ps 、top 、df -hT 、

sysv风格 ps静态 -elf 显示所有进程
-e 显示所有进程
-l 详细信息
-f 以长格式显示更多字段内容
BSD风格 ps aux 显示所有进程 a显示与终端相关的进程 u显示启动进程的用户 x显示与终端无关的进程
ps axo user,pid,nice,command(自定义显示user ,nice,pid,等等。。。)
pidof vim [root@localhost ~]# pidof vim
4460 4395

VSZ 占物理内存加共享内存的空间
RSS 占虚拟机的物理内存的空间
STAT 状态 R:运行或就绪 T:停止 z:僵尸 Zombie S:可中断的睡眠(不需要等待磁盘IO完成)D:不可中断的睡眠(等待磁盘IO完成)
<:高优先级进程 /会被CPU优先级执行/会获取更多的CPU执行时间
N:低优先级进程
+:正在前台运行的进程
l:多线程进程Thread
s:会话进程首进程,某一个进程的父进程
pstree 父子进程 centos7里面第一个启动的进程 systemd
产生数据,存入硬盘
CPU a-------》 data cache memory------》 disk
b-------》data cache --------》disk D sleep
S sleep 守护进程 apache S —》 request R ----》 S
R
1. 一般有大量运算工作的进程
2.程序是否有问题
swap 虚拟内存 交换分区
memory --------------------------》disk swap
多线程

信号 signal kill -l 查看
常用信号:
1 SIGHUP :让进程重新读取配置文件,使配置文件修改生效
9 SIGKILL:杀死一个进程
15 SIGTERM:终止一个进程
19 SIGSTOP: 挂起一个进程
18 SIGCONT:恢复一个挂起的进程
示例:安装httpd

yum install -y httpd

systemctl start httpd

#vim/etc/httpd/conf/httpd.conf
Listen 80
结束进程 kill
控制进程的运行方式(前台/后台)
前台: 占用命令提示符,控制命令在后台运行 & [root@localhost ~]# firefox &
后台: 查看后台的应用程序 [root@localhost ~]#jobs -l
将正在运行的指令放入后台,并暂停运行 CTRL+Z
将后台的程序调回前台继续运行 fg +<后台任务编号>
nice优先级值 (-20 高 ,0 ,19低)
nice值:新优先级=旧优先级+NICE值-20----19
renice 修改已运行的优先级 nice 修改还未运行的进程
进程:unix 非实时 有40个优先 (0高- 20默认 -39低)
Linux 实时
普通用户只能降低优先级 (只能是自己的程序) 不能提高优先级
单终端 , 举例:“Firefox” 运行的程序是串行的 一个完了接下一个的模式 前台运行
“Firefox &" 后台运行
fg恢复前台
bg恢复后台
计划任务
一次性的任务
周期性的任务
COMMAND命令
时间:
分 时 日 月 周
分钟:0----59
时: 0----23
日期:1----31
月: 1----12
周: 0----6
示例:
每天晚上11:30 30 23 * * *
每天零点 0 0 * * *
每周五下午4点 0 16 * * 5

  • 连续的时间 5 8-14 * * *
    不连续的时间 5 8,10,12 * * *
    每20分钟 /20 * * * *
    每天8点到20点每隔2小时 0 8-20/2 * * *
    命令:建议命令使用全路径 /usr/bin/mkdir
    只能写一条命令(shell脚本)
    示例: 每分钟在/tmp目录创建文件
    [root@localhost ~]# crontab -e
    /1 * * * * /usr/bin/touch /tmp/date +\%F-\%T.txt
    注意:
    写命令时%在周期性计划任务中是结束的意思,因此在使用%时,需要加\右斜杠转义
    Linux系统的运行模式
    CentOS 6/5系统运行方式:
    0 关机模式
    1 单用户模式(修复)
    2 字符模式(无网络)
    3 完全字符模式
    4 预留
    5 图形模式
    6 重启模式
    查看系统当前运行模式
    [root@localhost ~]# runlevel
    N 5
    centos7系统运行方式:
    graphical.target 图形模式
    multi-user.target 多用户模式
    centos7更改当前运行模式
    systemctl get-
    文件查找
    stat
    touch 更改文件时间
    find -mtime +3 3天前修改的文件 -3是3天内修改过的文件
    find -ctime +3 查找3天前创建的文件 -exec rm -rf {} ; 查找出来后执行删除命令
    locate 查找
    需要管理员更新 updatedb
    which
    find 【目录】 【条件】【动作】
    find -type 按文件类型查找
    find -perm /222 /anyone任何人有写w的权限 find -perm -002" --everyone所有人都要有写w的权限"
    find -user
    find -name
    find -group
    find -size +100M 文件大小查找 大于100M
    find /etc/-name "
    .conf" -a -size +10M 查找/etc下 名字以 .conf 和大小为10M以上的文件
    -a 和 -o 或者
    dd if=/dev/zero of=file1 bs=1M count=1024 创建有大小的文件
    归档 压缩 tar gzip bzip2
    IO
    输入输出重定向 管道 高级文件处理的命令
    文件描述符 fd,是一个数字。来表示一个文件 0= stdin标准输入(键盘) 1 =stdout标准输出(屏幕) 2 =stderr 标准错误输出(屏幕)
    0 《---------stdin键盘
    cat -------------》1 stdout 屏幕
    ----------》 2stderr 屏幕
    输出重定向
    find
    head -n5 查看前5 行 默认都是查看10 行
    tial -n4 查看后4行 tail -f file1 监控文件file1
    wc /etc/passwd
    处理日志过大的情况
    日志轮转 rotate
    不压缩 nocompress
    每一天切换轮转一次 daily
    创建新的日志create
    日志丢失不提示 missingok
    空文件不切割 notifempty
    日志后缀名 dateext
    保存时间30天 rotate 30
    旧日志存放位置 olddir
    在以上执行完之后 要干什么 porstroate /usr/bin/kil -HUP cat /usr/local/nginx/logs/nginx.pid
    *
Logo

更多推荐