Linux文件操作命令和进程

文件操作命令

文件查看命令

cat

查看文件内容:
在这里插入图片描述
合并文件:
在这里插入图片描述
往文件中写入数据,Ctrl+d结束输入:
在这里插入图片描述

more

当一个文件的内容超过一个屏幕能显示的行数,使用 more 可以分屏显示文件内容。
使用方式: more filename

less

文本内容查看器,查看文件内容,但是文件内容不会显示到界面上

head

显示文件前 n 行的内容

tail

显示文件后 n 行的内容

wc

统计文件中单词个数(-w)、字符个数(-c)、行数(-l)

文件编辑命令

VIM命令

三种模式:
在这里插入图片描述

命令模式切换到插入模式:

  1. a //进入到当前光标后开始编辑
  2. A //进入到当前光标所在行的行末开始编辑
  3. i //进入当前光标位置开始编辑
  4. I //进入当前光标所在行的行头开始编辑
  5. o //进入当前光标下一行开始编辑
  6. O //进入当前光标上一行开始编辑

命令模式切换到末行模式

  1. : //对文本的设置或保存工作
  2. / //对文本进行全文向下搜索字符串 string
  3. ? //对文本进行全文向上搜索字符串 string

vi/vim 常用命令

  1. n dd //删除光标开始向下的 n 行
  2. n yy //拷贝光标开始向下的 n 行
  3. p //粘贴
  4. u //撤销上一次操作
  5. ctrl + r // 恢复上一次撤销操作
  6. r //替换一个字符
  7. shift + 6 //光标移动到当前行的行头
  8. shift + 4 //光标移动到当前行的行尾
  9. shift + g //光标移动到整个文本的最后一行 G
  10. gg //光标移动到整个文本的第一行
  11. n shift + g //光标移动到第 n 行
  12. d n shift + g //删除光标到 n 行的内容
  13. y n shift + g //拷贝光标到 n 行的内容

末行模式下的操作

  1. :w //保存文本
  2. :q //退出编辑
  3. :wq //保存并退出
  4. :q! //强制退出
  5. :w newfile //另存为
  6. :set nu //显示行号
  7. :set nonu //取消行号
  8. : set hlsearch //设置高亮搜索
  9. : set nohlsearch //取消高亮搜索
  10. : n,m s/oldstring/newstring //替换整个文本每行的第一个 oldstring
  11. :n, m s/oldstring/newstirng/g //替换整个文本所有的 oldstring
  12. /string //向下搜索 string
  13. ?string //向上搜索 string

VIM小技巧

定位命令:
在这里插入图片描述
删除命令:
在这里插入图片描述
复制粘贴命令:
在这里插入图片描述
替换和取消命令:
在这里插入图片描述
保存或退出命令:
在这里插入图片描述
在这里插入图片描述
恢复上一次撤销操作
ctrl + r
导入另外一个文件的内容:
esc :r 文件名
vim中的快捷操作:
在这里插入图片描述
vim配置文件
在用户家目录输入:vim .vimrc
输入一些编辑模式的命令:比如设置行号,设置快捷键

基础命令

find

find 在那个路径下查找文件 -以哪种方式查找文件 test
在目录树中搜索指定的文件,也可以指定开始的搜索位置
-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
-amin n : 在过去 n 分钟内被读取过
-anewer file : 比文件 file 更晚被读取过的文件
-atime n : 在过去n天内被读取过的文件
-cmin n : 在过去 n 分钟内被修改过
-cnewer file :比文件 file 更新的文件
-ctime n : 在过去n天内被修改过的文件
-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-type c : 文件类型是 c 的文件。
d: 目录
c: 字型装置文件
b: 区块装置文件
p: 具名贮列
f: 一般文件
l: 符号连结
s: socket

grep

在文件中过滤出包含指定字符串的行
-a 或 --text : 不要忽略二进制的数据。
-A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
-b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
-B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
-c 或 --count : 计算符合样式的列数。
-C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
-d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
-E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。
-f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
-F 或 --fixed-regexp : 将样式视为固定字符串的列表。
-G 或 --basic-regexp : 将样式视为普通的表示法来使用。
-h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
-H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
-i 或 --ignore-case : 忽略字符大小写的差别。
-l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。
-L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。
-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
-o 或 --only-matching : 只显示匹配PATTERN 部分。
-q 或 --quiet或–silent : 不显示任何信息。
-r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。
-s 或 --no-messages : 不显示错误信息。
-v 或 --revert-match : 显示不包含匹配文本的所有行。
-V 或 --version : 显示版本信息。
-w 或 --word-regexp : 只显示全字符合的列。
-x --line-regexp : 只显示全列符合的列。
-y : 此参数的效果和指定"-i"参数相同。

管道 |

A进程将执行的结果输出到管道中,B进程再将其从管道中读出来。
将前一个命令的输出结果作为后一个命令的输入。进程间通讯的一种方式。

进程

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

pstree
pstree命令以树状图显示进程间的关系(display a tree of processes)。ps命令可以显示当前正在运行的那些进程的信息,但是对于它们之间的关系却显示得不够清晰。在Linux系统中,系统调用fork可以创建子进程,通过子shell也可以创建子进程,Linux系统中进程之间的关系天生就是一棵树,树的根就是进程PID为1的init进程。
以树状图形式显示进程之间的关系
jobs
显示当前终端的任务
sleep
睡眠 n 秒。
&
后台运行程序
g bg
fg %任务号 将后台运行的或挂起的进程挪到前台执行
bg %任务号 将挂起的进程唤醒到后台执行
kill
结束或者挂起一个进程
-9 强制结束进程
-stop 挂起进程
pkill
结束一组同名的进程
pkill [选项][信号]进程名
-t 按照终端号提出用户。
killAll
顾名思义杀死所有。加信号和kill通用;
killall [选项][信号]进程名
-i 交互式,询问是否要杀死某个进程。
-I 忽略进程名的大小写。
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和其他更多的信息。

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页