Linux基础学习5
ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
S - wait pts/ :: bash
S - wait pts/ :: bash
R - - pts/ :: ps
[root@www ~]# tar -zpcf /tmp/etc.tar.gz /etc &
[] <== [job number] PID
[root@www ~]# tar: Removing leading `/' from member names
# 在中括号内的号码为工作号码 (job number),该号码与 bash 的控制有关。
# 后续的8400 则是这个工作在系统中的 PID。至于后续出现的数据是 tar 执行数据流,
# 由与我们没有加上数据流重导向,所以会影响画面!不过不会影响前景的操作
[root@www ~]# tar -zpcvf /tmp/etc.tar.gz /etc > /tmp/log.txt >& &
[]
[root@www ~]#
将『目前』的工作丢到背景中『暂停』
[root@www ~]# vi ~/.bashrc
# 在 vi 的一般模式下,按下 [ctrl]-z 这两个按键
[]+ Stopped vim ~/.bashrc
[root@www ~]# <==顺利取得了前景的操控权!
[root@www ~]# find / -print
....(输出省略)....
# 此时屏幕会非常的忙碌!因为屏幕上会显示所有的文件名。请按下 [ctrl]-z 暂停
[]+ Stopped find / -print
范例一:观察目前的 bash 当中,所有的工作,与对应的PID
[root@www ~]# jobs -l
[]- Stopped vim ~/.bashrc
[]+ Stopped find / -print
选项与参数:
%jobnumber :jobnumber 为工作号码(数字)。注意,那个 % 是可有可无的!
范例一:先以 jobs 观察工作,再将工作取出:
[root@www ~]# jobs
[]- Stopped vim ~/.bashrc
[]+ Stopped find / -print
[root@www ~]# fg <==预设取出那个 + 的工作,即 []。立即按下[ctrl]-z
[root@www ~]# fg % <==直接规定取出的那个工作号码!再按下[ctrl]-z
[root@www ~]# jobs
[]+ Stopped vim ~/.bashrc
[]- Stopped find / -print
看到区别了吗,现在+号对应的就是此刻最新放入背景当中的工作噢;
范例一:一执行 find / -perm + > /tmp/text.txt 后,立刻丢到背景去暂停!
[root@www ~]# find / -perm + > /tmp/text.txt
# 此时,请立刻按下 [ctrl]-z 暂停!
[]+ Stopped find / -perm + > /tmp/text.txt
范例二:让该工作在背景下进行,并且观察他!!
[root@www ~]# jobs ; bg % ; jobs
[]- Stopped vim ~/.bashrc
[] Stopped find / -print
[]+ Stopped find / -perm + > /tmp/text.txt
[]+ find / -perm + > /tmp/text.txt & <==用 bg% 的情况!
[]+ Stopped vim ~/.bashrc
[] Stopped find / -print
[]- Running find / -perm + > /tmp/text.txt &
[root@www ~]# kill -l
选项与参数:
例子:
# . 先编辑一支会『 睡着 秒』的程序:
[root@www ~]# vim sleep500.sh
#!/bin/bash
/bin/sleep 500s
/bin/echo "I have slept 500 seconds."
# . 丢到背景中去执行,并立刻注销系统:
[root@www ~]# chmod a+x sleep500.sh
[root@www ~]# nohup ./sleep500.sh &
[]
[root@www ~]# nohup: appending output to ‘nohup.out’ <==会告知这个讯息!
[root@www ~]# exit
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 13639 13637 0 75 0 - 1287 wait pts/1 00:00:00 bash
选项与参数:
[root@www ~]# nice [-n 数字] command
选项与参数:
-n :后面接一个数值,数值的范围 - ~ 。
[root@www ~]# renice [number] PID
选项与参数:
PID :某个程序的ID 啊!
选项与参数:
-a :所有系统相关的信息,包括底下的数据都会被列出来;
-s :系统核心名称
-r :核心的版本
选项与参数:
drwxr-xr-x root root root:object_r:user_home_t Desktop
-rw-r--r-- root root root:object_r:user_home_t install.log
[root@www ~]# ll -Zd /usr/sbin/httpd /var/www/html
-rwxr-xr-x root root system_u:object_r:httpd_exec_t /usr/sbin/httpd
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t /var/www/html
# 两者的角色字段都是 object_r ,代表都是档案!而 httpd 属于 httpd_exec_t类型,
# /var/www/html 则属于 httpd_sys_content_t 这个类型!
# . 先启动这个网络服务吧!
[root@www ~]# /etc/init.d/httpd start
正在激活 httpd: [ 确定 ]
# . 观察有无此程序,并且观察此程序的SELinux 安全性本文数据
[root@www ~]# pstree | grep httpd
|-httpd---*[httpd] <==httpd 会产生多子程序来负责网络服务
# . 观察此程序的SELinux 安全性本文数据
[root@www ~]# ps aux -Z | grep http
root:system_r:httpd_t root 0.2 1.2 ? Ss : : /usr/sbin/httpd
root:system_r:httpd_t apache 0.0 0.6 ? S : : /usr/sbin/httpd
root:system_r:httpd_t apache 0.0 0.6 ? S : : /usr/sbin/httpd
- fork-and-exec
- 进程都会由父进程以复制(fork),之后再以exec的方式来执行
- job control
- 管理自己的bash
- 前景
- 控制与下达指令的这个环境
- 背景
- 可以自信运行的工作,无法ctrl+c终止,可以使用bg/fg呼叫该工作
- 背景中执行的程序不能等待terminal/shel的输出(input)
- 前景与背景切换
- &: 直接将指令丢到背景中执行
- tar -zcvf /tmp/etc.tar.gz /etc &
- ctrl+z:将目前的工作丢到背景中 并 暂停
- &: 直接将指令丢到背景中执行
- jobs: 观察目前的背景工作状态
- jobs [-lrs]
- fg %jobnumber ,将背景工作拿到前景来处理
- bg %jobnumber ,让工作在背景下的状态变成运行中
- kill -signal %jobnumber
- nohup
- 在脱机或注销系统之后,还能继续工作
- nohup [指令与参数]
- ps
- ps -l 查阅自己bash程序
- ps -aux 查询系统所有运行的程序
- 状态字段
- F,程序旗标,常见4,程序权限为root
- S,运行状态,
- R(running),S(sleep),T(stop)
- Z(Zombie) 僵尸状态,程序以及终止,但无法移除到内存外
- UID,PID,PPID
- C,cpu使用率
- PRI/NI:Priority/nice,程序优先级, 数值越小优先级越高。
- addr/sz/wchan:都与内存相关
- TTY:登录中端
- TIME:使用掉的CPU时间
- CMD:
- pstree :以树状结构来显示
- top
- top -p 指定某个PID来进行监测。
- 在top执行过程中使用按键指令
- P :以 CPU 的使用资源排序显示;
- M :以 Memory 的使用资源排序显示;
- N :以 PID 来排序喔!
- T:由该 Process 使用的CPU 时间累积 (TIME+) 排序。
- k :给予某个 PID 一个讯号 (signal)
- r :给予某个 PID 重新制订一个 nice 值。
- signal
- 1 SIGHUP,类似重启,重新读取配置文件,
- 2 SIGINT,类似ctrl+c,中断一个程序的进行
- 9 SIGKILL, 强中中断
- 15 SIGTERM,正常终止。
- 17 SIGSTOP,类似ctrl+z 暂停程序
- kill -signal PID
- PRI
- 越小CPU执行优先级越高
- PRI=PRI+nice 动态调整
- nice 范围-20---19
- root可以随意调整自己或他人程序的nice值,且范围-20--19
- 普通用户仅可以调整自己的nice值,且范围0--19
- 也就是说普通用户只能降低自己的优先级,不能提高
- nice ,renice
- nice 范围-20---19
- free,内存观察
- free [-b|-k|-m|-g] [-t]
- netstat
- -a(all),-t(tcp),-u(udp),-l(listen),-p(pid)
- selinux
- 使用场景
- 黑客拿到web server 这个程序的控制权,而这个程序有root权限。黑客可以用这个root权限的程序控制整个系统。
- 而selinux则是让你拿到这个用户root权限的程序也不能对整个系统为所欲为,拿到这个web server 只能在规定的目录干事情。其他目录依然没有权限。
- 运作模式
- 透过MAC的方式来管控程序,他控制的【主体】是程序,而目标是该程序能否读取的【档案资源】
- 主体(subject),程序
- 目标(object),档案资源
- 政策(policy)
- targeted:对网络限制多,对本机限制少,是默认政策
- strict:完整的限制
- 政策内需要制定详细的domian/type相关性;若档案的type设定错误,那么即使权限设为777,该主体程序也无法读取目标资源。
- 安全性文本(security context)
- 主体能不能存取目标除了政策之外,主体与目标的安全性文本必须一致,才能顺利存取。
- 简单理解
- 能不能存取还得要看两者的安全性文本是否匹配。而安全性文本中,就是看主体的domain与目标的type是否搭配。而这种搭配是在政策中规定好的。最终主体能不能拿到目标还要看,目标的rwx是否服务Linux权限的规范。
- 查看
- ls -Z
- 文本三字段意义
- identify:role:type
- 主要身份识别:
- root:root 账号身份
- system_u:系统程序方面的识别,通常就是程序
- user_u:普通用户账号
- 角色
- object_r:代表档案或目录等档案资源,最常见
- system_r:代表的就是程序。一般使用者也指定为system_r
- 类型(最重要)
- 在默认targeted政策中,identify与role基本没用。主体能不能取得目标,重点是这个类型字段。
- 而主体与目标的关于这个类型字段定义不同分别是:
- type:目标object中,称类型(type)
- domain:主体subject中,称领域(domain)
- domian与type搭配,主体才能顺序拿到目标。
- selinux的启动,关闭与观察
- 三种模式
- enforcing:强中模式。开启限制。
- permissive:宽容模式:只发警告信息,并不限制。
- disable:关闭
- getenforce,获取模式
- setenforce,模式切换
- sestatus,获取政策
- /etc/selinux/config selinux配置文件
- 三种模式
- selinux安全性文本操作
- chcon [-R] [-t type] [-u user] [-r role] 档案
- chcon [-R] --reference=范例文件 档案
- 还原到预设的安全性文本
- restorecon [-Rv] 档案或目录
- 政策观察
- seinfo,政策整体查阅
- sesearch,查询详细规则
- 使用场景
Linux基础学习5的更多相关文章
- linux基础学习之软件安装以及常用命令
linux基础学习之软件安装以及常用命令 调用中央仓库: yum install wget 然后下载nodejs: wget https://nodejs.org/dist/v10.14.2/node ...
- Linux基础学习系列目录导航
Linux基础学习-通过VM安装RHEL7.4 Linux基础学习-命令行与图形界面切换 Linux基础学习-基本命令 Linux基础学习-RHEL7.4之YUM更换CentOS源 Linux基础学习 ...
- linux基础学习路线&review
linux基础学习网址: https://www.runoob.com/linux/linux-tutorial.html 比较重点的是这个启动过程的介绍学习:https://www.runoob.c ...
- Linux 基础学习1
目录 Linux 基础学习 用户登录 终端 交互式接口 bash 修改ssh连接慢的步骤 命令提示符 显示提示符格式 命令 别名 命令格式 获取命令的帮助信息 man bash 快捷键 tab 键 引 ...
- Linux 基础学习2
目录 Linux 基础学习2 文件目录结构 文件命名规范 文件系统结构 linux应用程序的组成 绝对路径和相对路径 目录名和基名 切换目录 切换到家目录 切换到上一次的目录 显示当前的工作目录 列出 ...
- Linux基础学习(全)
使用的Linux发行版本为Redhat 1.Linux(RedHat)基础学习-命令行使用入门 2.Linux(RedHat)基础学习-文件寻址与管理 3.Linux(RadHat)基础学习-vim编 ...
- Linux基础学习(1)--Linux系统简介
第一章——Linux系统简介 1.UNIX和Linux发展史: 1.1 unix发展史: (1)1965年,美国麻省理工学院(MIT).通用电气公司(GE)及AT&T的贝尔实验室联合开发Mul ...
- Linux 基础学习(第二节)
free命令用于显示当前系统中内存的使用量信息,格式为:“free [-h]”. 为了保证Linux系统不会突然卡住宕机,因此内存使用量应该是运维人员时刻要关注的数据啦,咱们可以使用-h参数来以更人性 ...
- Linux基础学习(二)
前言: 我们在上一节了解了一下linux的硬件组成,虽然也许对具体的东西还不甚了解,但是我们知道了linux下一切皆文件这一特性 我们装好了CentOS7的虚拟机(这个可以看别人教程来装起来,比较简单 ...
- Linux基础学习(一)
前言:这个学习笔记是为了督促自己能够更好的学习Linux的有关知识. 参考书目 鸟哥的linux私房菜 Chapter 1:入门建议 新手建议:重点 基础一定一定要学好 那么什么是基础呢? 先从Lin ...
随机推荐
- cf980d Perfect Groups
题意 定义一个串的权值是将其划分成 \(k\) 组,使得每一组在满足"从组里选出一个数,再从组里选出一个数,它们的乘积没有平方因子"这样的前提时的最小的 \(k\).每组的数不必相 ...
- Asp.net Mvc 页面静态化
http://www.cnblogs.com/gowhy/archive/2013/01/01/2841472.html
- leetcode 【 Search in Rotated Sorted Array 】python 实现
题目: Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 ...
- phpMyAdmin 4.7.x CSRF
phpMyAdmin 4.7.x CSRF 场景:管理员登陆phpmyadmin之后,我试验了一下,发现只要是登陆session没有失效应该是都可以的, 利用,phpmyadmin可以通过get方式操 ...
- MongoDB用PCRE正则表达式
介绍 下面说明 PCRE 所支持的正则表达式的语法和语义.Perl 文档和很多其它书中也解说了正则表达式,有的书中有很多例子.Jeffrey Friedl 写的“Mastering Regular E ...
- Leetcode 554.砖墙
砖墙 你的面前有一堵方形的.由多行砖块组成的砖墙. 这些砖块高度相同但是宽度不同.你现在要画一条自顶向下的.穿过最少砖块的垂线. 砖墙由行的列表表示. 每一行都是一个代表从左至右每块砖的宽度的整数列表 ...
- json对象中根据主键判断是否有重复数据
function funCheckRepeat() { var ids = $(gridId).jqGrid('getGridParam', 'selarrrow'); if (ids.length ...
- easyui 右键绑定事件
$(function(){ $('#hospitalTree').bind('contextmenu', function(e) { e.preventDefault(); ...
- ssh公钥私钥
ssh配置文件vi /etc/ssh/sshd_config putty下载http://www.chiark.greenend.org.uk/~sgtatham/putty/download.htm ...
- e.keyCode和e.which使用
1. 不使用jquery获取keyCode var key = 'which' in e ? e.which : e.keyCode;//或者var key = e.which || e.keyCod ...