一.文件操作
>:覆盖到文件中,如果文件不存在则创建
>>:添加到文件尾,追加
文件合并
cat a文件 b文件 > c文件
文件归档:将许多文件(或目录)打包成一个文件,和压缩不一样
文件类型和文件名后缀名没有关系,改后缀名不能改变文件格式,因为文件符合怎样的格式是通过它的字节流来体现的
归档:tar -cvf 打包文件.tar 要打包的文件
解包:tar xvf 打包文件.tar -C 路径
重要参数
- -c create
- -v 显示过程
- -f filename
- -t 查看
- -x 解包
- -C 指定目录
- -z:使用gzip压缩算法来压缩打包后的文件。
- -j:使用bzip2压缩算法来压缩打包后的文件
文件压缩:将一个大文件通过一些压缩算法变成一个小文件,节省存储文件磁盘空间,也节省了传输时的网络带宽
两种压缩算法
1.gzip和gunzip
gzip file1 -c > /路径/name.gz
2.bzip2和bunzip2
bzip2 file1 -c > /路径/name.bz2
可以在使用tar的时候一起进行文件的压缩
tar -zcvf 压缩打包文件名.tar.gz 要打包压缩文件
tar -jcvf 压缩打包文件名.tar.bz2 要打包压缩文件
Vim编辑器
终端中ctrl+a跳到头部,ctrl+e跳到尾部
Vim编辑器有三种基本模式:命令行模式、编辑模式和扩展模式。
一打开编辑器即储在命令行模式下,输出a,i,o之一进入编辑模式,或者使用:进入扩展模式
a:进入插入模式并在光标之后进行添加。
i:进入插入模式并在光标之前进行插入。
o:进入插入模式并在当前(光标所在)行之下开启新的一行;大写的O则是上一行
其他两个模式下使用ESC返回命令行模式,但两个模式之间不能直接切换,只能返回命令行模式再切换
常用命令
键组合 | 含义 |
$ | 光标移动到当前行结尾 |
0 | 光标移动到当前行开始 |
dd | 删除光标所在那一行 |
ndd | n是数字,光标所在向下删除n行 |
yy | 复制光标所在那一行 |
nyy | n是数字,复制光标所在向下n行 |
p | 将已复制的数据在光标下一行粘贴 |
P | 将已复制的数据在光标上一行粘贴 |
U | 复原前一次操作 |
ctrl+r | 重做上一次操作 |
G | 光标移动到该文件最后一行 |
nG | 移动到文件第n行 |
gg | 移动到该文件第一行 |
H | 光标移动到屏幕最上方那一行第一个字符 |
M | 光标移动到这个屏幕中央那一行的第一个字符 |
L | 光标移动到这个屏幕最下那一行的第一个字符 |
二.系统启动流程
/cat/redhat-release:操作系统版本
uname -r:内核版本
uname -a:内核、主机名、内核信息等
Linux的运行等级:默认运行等级是3或者5
0——halt
1——单用户模式
2——多用户模式,无NFS服务
3——多用户模式,有NFS服务
4——系统保留级别,未使用
5——X11,同3,但使用X Window
6——reboot,重启
runlevel:打印系统的上一个和当前运行级别
/etc/inittab中保存中默认init id
MBR512B,其中446B为引导信息,64B为分区信息,2B为标志位
在boot loader中任意进入单用户就可以绕开密码,很危险,所以在这里使用Grub加密
使用grub-md5-crypt对密码进行md5加密,得到一串字符
在/etc/grub.conf中添加password,也可以直接添加明文,但不安全
grub加密可以被救援模式(bios中)破解,所以还需要进行bios加密
bios加密同样可以破解,把电池拿一下放一会电,让系统复位
三.进程管理
僵尸进程:父进程死亡,但子进程还存在,占据内存空间,但不会再运行使用CPU
top命令:Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器
系统默认每5秒刷新一次,所以会占用挺多内存
第一行是任务队列信息
12:38:33 | 当前时间 |
up 50days | 系统运行时间,格式为时:分 |
1 user | 当前登录用户数 |
load average: 0.06, 0.60, 0.48 | 系统负载。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。 |
第二、三行为进程和CPU的信息
Tasks: 29 total | 进程总数 |
1 running | 正在运行的进程数 |
28 sleeping | 睡眠的进程数 |
0 stopped | 停止的进程数 |
0 zombie | 僵尸进程数 |
Cpu(s): 0.3% us | 用户空间占用CPU百分比 |
1.0% sy | 内核空间占用CPU百分比 |
0.0% ni | 用户进程空间内改变过优先级的进程占用CPU百分比 |
98.7% id | 空闲CPU百分比 |
0.0% wa | 等待输入输出的CPU时间百分比 |
0.0% hi | 硬件中断占用CPU时间的百分比 |
0.0% si | 软件中断占用CPU时间的百分比 |
第三行是内存信息,内存总数和交换分区
下面则是进程信息
列名 | 含义 |
PID | 进程id |
PPID | 父进程id |
RUSER | Real user name |
UID | 进程所有者的用户id |
USER | 进程所有者的用户名 |
GROUP | 进程所有者的组名 |
TTY | 启动进程的终端名。不是从终端启动的进程则显示为 ? |
PR | 优先级 |
NI | nice值。负值表示高优先级,正值表示低优先级 |
P | 最后使用的CPU,仅在多CPU环境下有意义 |
%CPU | 上次更新到现在的CPU时间占用百分比 |
TIME | 进程使用的CPU时间总计,单位秒 |
TIME+ | 进程使用的CPU时间总计,单位1/100秒 |
%MEM | 进程使用的物理内存百分比 |
VIRT | 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES |
SWAP | 进程使用的虚拟内存中,被换出的大小,单位kb。 |
RES | 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA |
CODE | 可执行代码占用的物理内存大小,单位kb |
DATA | 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb |
SHR | 共享内存大小,单位kb |
nFLT | 页面错误次数 |
nDRT | 最后一次写入到现在,被修改过的页面数。 |
S | 进程状态。 D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 |
COMMAND | 命令名/命令行 |
WCHAN | 若该进程在睡眠,则显示睡眠中的系统函数名 |
Flags | 任务标志,参考 sched.h |
buffer和cache
buffer将数据缓冲下来,解决速度慢和快的交接问题;速度快的需要通过缓冲区将数据一点一点传给速度慢的区域。例如:从内存中将数据往硬盘中写入,并不是直接写入,而是缓冲到一定大小之后刷入硬盘中。
cache实现数据的重复使用,速度慢的设备需要通过缓存将经常要用到的数据缓存起来,缓存下来的数据可以提供高速的传输速度给速度快的设备。例如:将硬盘中的数据读取出来放在内存的缓存区中,这样以后再次访问同一个资源,速度会快很多。
free命令
内存在用的时候就是使用buffer和cache,第一行中的used就是分配给buffer和cache的量,后面的buffers和cached是已经分配但还没使用的,第二行的used才是真正的目前内存使用量
used:551180=341808+24620+184752
free:1564472=1355100+24620+184752
tty终端
守护进程:后台运行并提供系统服务的一些进程
ps aux:显示所有的与用户相关的完整信息
grep 是查找含有指定文本行的意思,比如grep 'test' 就是查找含有test的文本的行
grep -v 是反向查找的意思,比如 grep -v "grep" 就是查找不含有 grep 字段的行; grep -v ^# /etc/profile就是不显示以#开头的行
kill -9 pid:强制杀死进程
ctrl+c:终止命令执行
&:后台进行
jobs命令:显示了当前shell环境中已启动的作业状态
fg %工作号:后台程序调到前台运行
bg %工作号:后台暂停的程序运行
pstree:进程树
pkill -9 '进程名':但可能会把包含有进程名的进程一起杀死,如bash和bash1