Linux基础(三)
一、正文处理命令及tar命令
1.文件合并
cat a.txt b.txt > c.txt
2.打包
归档命令tar可以把多个文件打包成一个文件
如tar cvf test.tar a.txt b.txt 可以将a.txt和b.txt打包成test.tar 文件
可以在打包的过程中指定tar包的存放位置,如tar cvf /home/test.tar *
可以用命令tar -tf test.tar 来查看test.tar 文件的内容
硬盘里可以存放的文件数是固定的,企业里常用tar命令来做文件备份,而不是cp命令
3.解tar包
把打包的文件解开用命令 tar xvf test.tar
也可以指定解压到指定位置,默认为当前位置,如tar xvf /home/test.tar -C /test2
4.用gzip工具压缩文件
可以gzip test.tar压缩,用gunzip test.tar.gz解压,但一般不这样用
可以在打包的同时压缩,tar cvzf test.tar.gz * 这样
解压的时候还是用tar xvf test.tar.gz
5.用bzip2工具压缩文件
还有一种压缩工具是bzip2,压缩后的文件格式是.tar.bz2
打包并压缩:tar cvjf test.tar.bz2
解压缩:tar xvf test.tar.bz2
二、利用vi编辑器创建和编辑正文文件
vim 文件名 就进入了vi编辑器,此刻是命令行模式
键盘上按a,i,o,A,I,O都可以进入编辑模式
编辑完成后按esc键返回命令行模式,命令行模式中的常用命令有:
G:跳到文件末尾
gg:跳回文件开头
$:跳到行末尾
数字0:跳到行首
yy:复制一行
yy命令前可以加数字指定复制几行,如3yy 表示复制三行
p:粘贴
p命令前也可以加数字指定粘贴几次,如3p表示粘贴三次
dd:删除一行,10dd表示删除10行
dd和p连用,代表剪切操作
u:撤销一步
ctrl+r:前进一步
L:跳到当前屏幕的最后一行
M:跳到当前屏幕的中间一行
H:跳到当前屏幕的第一行
/:查找内容,n选择下一个
在命令行模式中按shift+:进入扩展模式
w:保存
q:退出
s:修改
s/要修改的内容/要改成的内容/ :只更改当前行的内容
%s/要修改的内容/要改成的内容/g :更改文件的全部内容
命令行模式,编辑模式和扩展模式的切换关系如下:
三、系统的初始化和服务
Linux系统启动流程
通电-->BIOS-->MBR-->boot loader-->kernel-->init process-->login
首先,计算机通电后会从BIOS中读取程序,选择存储设备后,计算机从会从你选择的存储设备中读取起始的512Bytes,这512Bytes就是主引导记录(MBR),MBR会告诉电脑从该设备的某一个分区来装载引导加载程序(boot loader),这里面存储着操作系统的相关信息,包括操作系统内核(kernel)的所在位置等,常用的boot loader 有GRUB,LILO等。实际上,我们可以在多个分区安装boot loader,读取MBR的时候选择我们想要启动的boot loader,这就是多操作系统的原理。kernel的主要任务是操作计算机硬件资源,相当于软件和硬件的接口。我们加载Linux kernel 后,kernel 会通过驱动程序检测硬件,然后kernel会启动一个init process,它是Linux系统的1号程序,接下来就是init的操作了,init会运行一系列初始脚本,然后会给出登录选项,输入用户名和密码后登录就可以了。
知道了Linux的启动流程,那我们可以解决一些问题了,如果我们忘记了root密码,是否可以在Linux系统启动过程中修改密码呢,下面介绍两种方法修改root密码
1. 救援模式破解root密码
首先,重启系统,进BIOS选择光盘启动
f10保存退出
选择Troubleshooting,回车
输入chroot /mnt/sysimage
然后修改密码
再重启,进BIOS中把硬盘改成第一启动,f10保存退出,启动系统,会发现root用户密码已经修改成功了
2.单用户模式破解root密码
重启,按e进入kernel
定位到ro ,把ro 改成 rw init=/sysroot/bin/sh
chrl+x 保存,就进入了单用户模式
依次输入以下命令
chroot /sysroot/
passwd root
touch /.autorelabel
重启就修改成功了