文件类型与文件权限
文件类型
Linux 将文件 分为以下五种类型:
a. 普通文件 ‘-’
b. 目录文件 ‘d’
c. 管道文件 ‘p’
d. 链接文件 ‘l’
e. 设备文件(块设备 ’b’ 、字符设备 ‘c’ 、套接字设备 ‘s’ )
文件权限
1.权限介绍
a.r 读权限 值: 4
b.w 写权限 值: 2
c.x 执行权限 值: 1
d.- 无权限 值: 0
a. u : 表示文件属主的访问权限 文件是谁建立的属主就是谁
b. g : 表示文件同组用户的访问权限 用户进行分组
c. o : 表示其他用户的访问权限 和创建文件的用户不是同一个组
一切皆文件
2.修改文件权限
文字设定法
chmod + u 表属主 g 同组人 o 其他人 a 所有人 + 增加权限 -去掉权限 文件路径/文件名(不能同时对u和0和g修改权限)
数字设定法
文件操作
1.ls 查看当前目录下的文件
-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
-R 若目录下有文件,则以下之文件亦皆依序列出
2.创建文件
touch + 文件路径/文件名 创建普通文件 文件路径:可以是相对路径也可以是绝对路径
mkdir + 目录路径/目录名 创建目录文件
3.删除文件
删除普通文件
rm + 文件路径/文件名 删除普通文件
删除目录文件
rmdir + 目录路径/目录名
删除空目录
rm -r +目录路径/ 目录名 -r 是rm的参数
删除非空目录
rm -r +目录路径/ 目录名
注意:rm -rf * 禁用 rm -rf /*
文件复制与重命名
复制粘贴使用cp
语法: cp [options] source… directory
• -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
• -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
• -f:覆盖已经存在的目标文件而不给出提示。
• -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
• -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
• -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
• -l:不复制文件,只是生成链接文件。
移动文件或者重命名使用mv
语法:mv [options] source… directory
• -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
• -f: 在 mv 操作要覆盖某已有的目标文件时不给任何指示;
压缩、打包
我们使用tar进行打包或者解包。使用gizp进行文件压缩。
打包
将文件打包或者解包
◼ c 创建包文件
◼ f 指定目标为文件而不是设备
◼ v 显示详细过程
◼ t 显示包中的内容而不释放
◼ x 释放包中的内容
◼ z GNU 版本新加的,使得 tar 有压缩和解压的功能
下图为 tar 解包过程:
一步打包压缩与压缩包一步解压的过程:
压缩
下图为 gzip 压缩的过程:
下图为 gzip 解压的过程
下图为 tar 对 xxx.tgz 或 xxx.tar.gz 压缩包一步解压的过程
文件查看和文件编辑
文本查看
cat
查看文件内容
合并文件
往文件中写入数据, Ctrl+d 是结束输入
more
当一个文件的内容超过一个屏幕能显示的行数,使用 more 可以分屏显示文件内容。
使用方式: more filename
less
文本内容查看器,查看文件内容,但是文件内容不会显示到界面上
head
显示文件前 n 行的内容
tail
显示文件后 n 行的内容
数据统计
wc
统计文件中单词个数(-w)、字符个数(-c)、行数(-l)
文件编辑命令
三种模式介绍
命令模式切换到插入模式:
- a //进入到当前光标后开始编辑
- A //进入到当前光标所在行的行末开始编辑
- i //进入当前光标位置开始编辑
- I //进入当前光标所在行的行头开始编辑
- o //进入当前光标下一行开始编辑
- O //进入当前光标上一行开始编辑
命令模式切换到末行模式 - : //对文本的设置或保存工作
- / //对文本进行全文向下搜索字符串 string
- ? //对文本进行全文向上搜索字符串 string
vi/vim 常用命令 - n dd //删除光标开始向下的 n 行
- n yy //拷贝光标开始向下的 n 行
- p //粘贴
- u //撤销上一次操作
- ctrl + r // 恢复上一次撤销操作
- r //替换一个字符
- shift + 6 //光标移动到当前行的行头
- shift + 4 //光标移动到当前行的行尾
- shift + g //光标移动到整个文本的最后一行 G
- gg //光标移动到整个文本的第一行
- n shift + g //光标移动到第 n 行
- d n shift + g //删除光标到 n 行的内容
- y n shift + g //拷贝光标到 n 行的内容
3.4 末行模式下的操作 - :w //保存文本
- :q //退出编辑
- :wq //保存并退出
- :q! //强制退出
- :w newfile //另存为
- :set nu //显示行号
- :set nonu //取消行号
- : set hlsearch //设置高亮搜索
- : set nohlsearch //取消高亮搜索
- : n,m s/oldstring/newstring //替换整个文本每行的第一个 oldstring
- :n, m s/oldstring/newstirng/g //替换整个文本所有的 oldstring
- /string //向下搜索 string
- ?string //向上搜索 string
vim配置文件
在用户家目录输入:vim .vimrc
输入一些编辑模式的命令:比如设置行号,设置快捷键
计算机组成与进程
计算机组成五大部件
(1) 运算器 :也叫算数逻辑单元,完成对数据的各种常规运算,如加减乘除,也包括逻辑运 算,移位,比较等。
(2) 控制器 :它是整个计算机系统的控制中心,它指挥计算机各部分协调地工作,保证计算 机按照预先规定的目标和步骤有条不紊地进行操作及处理。
(3) 存储器 :存储程序和各种数据。
(4) 输入设备 :把人所熟悉的信息如,图片,声音,文字,转换为计算机能够识别的信息存 储起来。
(5) 输出设备 : 把计算机机能识别的信息转换为人能识别的信息,进行呈现。 一台计算机可以抽象成下图: CPU 中包含控制器和运算器, 内存就是存储器。I/O 设 备就是输入设备和输出设备,如:键盘、显示器、鼠标、硬盘、网卡
进程
PID
PID(Process Identification)操作系统里指进程识别号,也就是进程标识符。操作系统里每打开一个程序都会创建一个进程ID,即PID。
PID(进程控制符)英文全称为Process Identifier,它也属于电工电子类技术术语。
PID是各进程的代号,每个进程有唯一的PID编号。它是进程运行时系统随机分配的,并不代表专门的进程。在运行时PID是不会改变标识符的,但是你终止程序后再运行PID标识符就会被系统回收,就可能会被继续分配给新运行的程序。
含义
只要运行一程序,系统会自动分配一个标识。
是暂时唯一:进程中止后,这个号码就会被回收,并可能被分配给另一个新进程。
只要没有成功运行其他程序,这个PID会继续分配给当前要运行的程序。
如果成功运行一个程序,然后再运行别的程序时,系统会自动分配另一个PID。
是暂时唯一:进程中止后,这个号码就会被回收,并可能被分配给另一个新进程。
和用户进行交互的命令解释器。
PCB
进程控制块,进程的属性信息。
在操作系统中会使用链表将PCB连接在一起,
链表中有多少个节点,这个操作系统就有多少个进程,操作系统通过管理PCB来管理运行起来的 进程
进程描述信息:
• 进程标识符用于唯一的标识一个进程(pid,ppid)。
进程控制信息:
• 进程当前状态
• 进程优先级
• 程序开始地址
• 各种计时信息
• 通信信息
资源信息:
• 占用内存大小及管理用数据结构指针
• 交换区相关信息
• I/O设备号、缓冲、设备相关的数结构
• 文件系统相关指针
现场保护信息(cpu进行进程切换时):
• 寄存器
• PC
• 程序状态字PSW
• 栈指针
进程状态
就绪 、运行、阻塞
a. ready:表示线程已经被创建,正在等待系统调度分配CPU使用权。
b. running:表示线程获得了CPU使用权,正在进行运算
c. waiting:表示线程等待(或者说挂起),让出CPU资源给其他线程使用
为什么除去new和terminated状态?
是因为这两种状态实际上并不存在于线程运行中,所以也没什么实际讨论的意义。对于Java中的线程状态无论是Timed Waiting ,Waiting还是Blocked,对应的都是操作系统线程的waiting(等待)状态。而Runnable状态,则对应了操作系统中的ready和running状态。
进程管理命令
ps
-A 列出所有的进程
-e 等于“-A”
-a 显示现行终端机下的所有进程,包括其他用户的进程;
-u 以用户为主的进程状态 ;
x 通常与 a 这个参数一起使用,可列出较完整信息。
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
-f 做一个更为完整的输出。
-L显示进程中的线程 ID
最常用的命令:
ps -aux
USER表示哪个用户启动了这个进程;
PID表示进程的ID;
%CPU表示cpu的占用率;占用越高,进程越消耗资源。
%MEM表示内存的使用率;占用越高,进程越消耗资源。
VSZ如果一个程序完全驻留在内存中一共需要会用多少内存;(该进程所占的虚拟内存大小,单位kb)
RSS表示进程当前实际上占用了多少内存,注意不要跟VSZ混淆,VSZ的前提是进程完全驻留在内存中;该进程所占的物理内存大小,单位kb)
TTY表示tty终端;tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符结面终端,tty是图形终端。ps/0-256代表虚拟终端。
STAT表示当前进程的状态,(S表示处于休眠状态,D表示不可终端的状态,Z表示僵尸进程,X表示死掉的进程);
START启动这个命令的时间点;
TIME 进程执行起到现在总的CPU占用时间;
COMMAND表示启动这个进程的命令。
ps -ef
UID: 说明该程序被谁拥有(用户ID)
PID:就是指该程序的 ID(进程ID)
PPID: 就是指该程序父级程序的 ID(父进程号)
C: 指的是 CPU 占用率
STIME: 程序的启动时间
TTY: 指的是登录终端
TIME : 表示进程执行起到现在总的CPU占用时间
CMD: 启动这个进程的命令,它其实就是一个启动进程的命令
jobs
显示当前终端的任务
sleep
睡眠 n 秒。
&
后台运行程序
fg bg
fg %任务号 将后台运行的或挂起的进程挪到前台执行
bg %任务号 将挂起的进程唤醒到后台执行
kill
结束或者挂起一个进程
-9 强制结束进程
-stop 挂起进程
pkill
结束一组同名的进程
top
查看系统资源使用情况以及进程信息
前五行信息:
统计信息区
• 第一行:任务队列信息,与uptime命令执行结果相同。
• 17:25:29:系统当前时间
• up 1:10:主机已运行时间
• 1 users:用户连接数(不是用户数,who命令)
• load average: 0.00, 0.00, 0.00:系统平均负载,统计最近1,5,15分钟的系统平均负载
补充:uptime -V可查询版本
• 第二行:进程信息
• Tasks: 287 total:进程总数
• 1 running:正在运行的进程数
• 146 sleeping:睡眠的进程数
• 0 stopped:停止的进程数
• 0 zombie:僵尸进程数
• 第三行:CPU信息(当有多个CPU时,这些内容可能会超过两行)
• 1.7 us:用户空间所占CPU百分比
• 3.3sy:内核空间占用CPU百分比
• 0.0 ni:用户进程空间内改变过优先级的进程占用CPU百分比
• 94.2 id:空闲CPU百分比
• 0.0 wa:等待输入输出的CPU时间百分比
• 0.0 hi:硬件CPU中断占用百分比
• 0.0 si:软中断占用百分比
• 0.0 st:虚拟机占用百分比
第四行:内存信息(与第五行的信息类似与free命令)
• 1021564 total:物理内存总量
• 93224 used:已使用的内存总量
• 51540 free:空闲的内存总量(free+used=total)
• 416800 buffers:用作内核缓存的内存量
• 第五行:swap信息
• 998396 total:交换分区总量
• 996852 used:已使用的交换分区总量
• 1544 free:空闲交换区总量
• 351844 cached Mem:缓冲的交换区总量,内存中的内容被换出到交换区,然后又被换入到内存,但是使用过的交换区没有被覆盖,交换区的这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
PID:进程ID,进程的唯一标识符
USER:进程所有者的实际用户名。
PR:进程的调度优先级。这个字段的一些值是’rt’。这意味这这些进程运行在实时态。
NI:进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级
VIRT:进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES:驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR:SHR是进程使用的共享内存。共享内存大小,单位kb
S:这个是进程的状态。它有以下不同的值:
• D - 不可中断的睡眠态。
• R – 运行态
• S – 睡眠态
• T – 被跟踪或已停止
• Z – 僵尸态
%CPU:自从上一次更新时到现在任务所使用的CPU时间百分比。
%MEM:进程使用的可用物理内存百分比。
TIME+:任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。
COMMAND:运行进程所使用的命令。进程名称(命令名/命令行)
还有许多在默认情况下不会显示的输出,它们可以显示进程的页错误、有效组和组ID和其他更多的信息。
•