打开文件
- vim /path/to/somefile
# vim /etc/passwd
- vim +# :打开文件,并定位于第#行
# vim +3 /etc/passwd
- vim +:打开文件,定位至最后一行
- vim +/PATTERN : 打开文件,定位至第一次被PATTERN匹配到的行的行首
# vim /ro /etc/passwd
关闭文件
- 末行模式下:
:q 退出
:wq 保存退出
:q! 强制退出
:w 保存
:w! 强制保存 - 输入模式下:
ZZ:保存退出
移动光标
- 命令模式下:
①逐字符移动
h:向左
l:向右
j:向下
k:向上
#h:移动#个字符
②以单词为单位移动
w:移到下一个单词的词首
e:跳至当前或下一个单词的词尾
b:跳至当前或上一个单词的词首
#w:表示移动#个单词
③行内跳转
0:绝对行首
^:行首第一个非空白字符
$:绝对行尾
④行间跳转
#G:跳转到第#行
G:最后一行
- 末行模式:
①行间跳转
直接输入行号 回车即可
- 翻屏
命令模式下
Ctrl+f:向下翻一屏
Ctrl+b:向上翻一屏
Ctrl+d:向下翻半屏
Ctrl+u:向上翻半屏
- 删除
①删除单个字符:
x:删除光标所在处单个字符
#x:删除光标所在处及向后共#个字符
②删除命令:d
d命令跟 跳转命令组合使用 如:dw 表示删除光标所在位置到下一个单词词首所有字符
#dw,#de,#db :#dw表示 删除当前光标所在处及向后第#个单词词首所有字符
dd:删除当前光标所在行
#dd:删除包含当前光标所在行内的#行
- 粘贴
p(小写p):如果删除的或复制的为整行内容,则粘贴到光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光
标所在字符的后面
P(大写P):如果删除的或复制的为整行内容,则粘贴到光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面
- 复制
用法同d命令
命令模式
yy:复制当前行
yw (y#w,ye,y#e,yb,y#b):复制光标当前位置到下个单词词首内容.#代表数字
y#G:复制当前位置当#行处的所有内容
末行模式
StartADD,EndADDy:复制StartADD到EndADDd位置的所有行
例如:10,15d:复制10到15行所有内容
+3y:复制当前位置向下3行
- 修改
用法通删除d命令,先删除然后再改为输入模式
- 替换
r:单字符替换,会替换光标选中字符
R:替换模式,可以做字符替换。
- 撤销
u:撤销前一次编辑操作
#u:直接撤销#次操作
Ctrl+r:撤销最近一次撤销操作
- 重复前一次操作
.:比如 上一次dd删除了一行,现在输入.就可以重复dd删除行的操作
- 查找
末行模式:
/PATTERN:从当前位置向后查找
?PATTERN:从当前位置向前查找
n:向下查找
N:向上查找
- 与shell交互
末行模式
! command即可
例如: ! ls /etc/:会列出/ect目录下所有文件及目录 按enter后回到vim编辑状态
- 高级操作
在末行模式下
①显示或取消行号
set nu(set number):显示行号
set nonu:取消显示行号
②显示忽略或区分字符大小写
set ic (set ignorecase):忽略大小写
set noignorecase:区分大小写
③设定自动缩进
set ai(set autoindent):自动缩进
set noai:取消自动缩进
④查找到的文本高亮或取消高亮显示
set hlsearch:高亮显示搜索到的文本
set nohlsearch:取消高亮显示搜索到的文本
⑤语法高亮
syntax on:打开语法高亮显示
syntax off:关闭语法高亮显示
常见的压缩命令
zip命令
- 将当前目录下的所有文件和文件夹全部压缩成test.zip文件,-r表示递归压缩子目录下所有文件
# zip -r test.zip ./*
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
- 打包目录
# zip test2.zip mnt/*
- 删除压缩文件test.zip中的Makefile.am文件
# zip -d test.zip install.log
-d 从压缩文件内删除指定的文件。
- 向压缩文件test.zip中添加rrdtool.spec文件
# zip -m test.zip install.log
-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
unzip命令
- 将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。
# unzip -n test3.zip -d /tmp
-n 解压缩时不要覆盖原有的文件。
-d<目录> 指定文件解压缩后所要存储的目录。
2. 查看压缩文件目录,但不解压.
# unzip -v test3.zip
- 将压缩文件test3.zip在指定目录tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件。
# unzip -o test3.zip -d tmp/
-o 不必先询问用户,unzip执行后覆盖原有文件。
- 解压当前目录下的所有zip文件
# unzip "*.zip"
gzip,gunzip
- 把/root/test目录下的每个文件压缩成.gz文件
# cd test/
# ls
# gzip *
# ls
- 把上例中每个压缩的文件解压,并列出详细的信息
# gzip -dv *
-v:显示指令执行过程;
d:解开压缩文件;
- 详细显示例1中每个压缩的文件的信息,并不解压
# gzip *
# ls
# gzip -l *
-l:列出压缩文件的相关信息;
- 递归的压缩目录
# gzip -rv test
-r:递归处理,将指定目录下的所有文件及子目录一并处理;
-v:显示指令执行过程;
这样,所有test下面的文件都变成了*.gz,目录依然存在只是目录里面的文件相应变成了*.gz.这就是压缩,和打包不同。因为是对目录操作,所以需要加上-r选项,这样也可以对子目录进行递归了。
打包归档命令 tar
首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。
c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
-A:追加tar文件至归档
这六个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或
解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-J: 有xz属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
-N <日期格式> 或 --newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里;
下面的参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
tar -cvf log.tar log2018.log 仅打包,不压缩!
tar -zcvf log.tar.gz log2018.log 打包后,以 gzip 压缩
tar -jcvf log.tar.bz2 log2018.log 打包后,以 bzip2 压缩
tar -N "2020/10/30" -zcvf log.tar.gz test 比某个日期新的文件打包
转换或者拷贝文件 dd
dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2
1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=inputfile >
2. of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
3. ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
bs=bytes:同时设置读入/输出的块大小为bytes个字节。
7. count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
将本地的/dev/hdb整盘备份到/dev/hdd
# dd if=/dev/hdb of=/dev/hdd
== 2.将/dev/hdb全盘数据备份到指定路径的image文件==
# dd if=/dev/hdb of=/root/image
3.将备份文件恢复到指定盘
# dd if=/root/image of=/dev/hdb
4.备份/dev/hdb全盘数据,并利用gzip工具进行压缩,保存到指定路径
# dd if=/dev/hdb | gzip > /root/image.gz
```**加粗样式**
==5.将压缩的备份文件恢复到指定盘==
```javascript
# gzip -dc /root/image.gz | dd of=/dev/hdb
6.测试硬盘的读写速度
# dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
# dd if=/root/1Gb.file bs=64k | dd of=/dev/null
Linux程序包安装及管理方式
Linux软件包分类
1. 源码包
优点:
①、开源,如果有足够的能力,可以直接修改源代码。
②、安装时可以自由选择所需的功能
③、软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高。
④、卸载方便,直接删了你安装软件的那个目录就好了。
缺点:
①、安装步骤较多,尤其安装较大的软件集合时,容易出现拼写错误。
②、编译时间过长,比后面讲的二进制安装时间长。
③、因为是编译安装,安装过程中一旦报错新手很难解决。
2. 二进制包
优点:
①、包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载。
②、安装速度比源码包快很多。
缺点:CentOS-6.8-x86_64-bin-DVD1.iso
①、已经经过编译了,看不到源代码。
②、功能选择不如源代码包灵活。
③、安装过程中有很多依赖的包,依赖性不好解决。
YUM安装方式
1、网络yum源
#安装好linux系统后在/etc/yum.repos.d目录中
# ls
CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo
CentOS-Debuginfo.repo CentOS-Media.repo
#一般以.repo结尾的文件都是yum源,如果可以联网,我们可以直接使用CentOS-Base.repo为默认yum源
#vi查看
[base]: yum源名称,名称一定要在[]中
name:yum源说明
mirrorlist:镜像站点,可以不要
baseurl:yum源服务器的地址,这里默认是CentOS官方的yum源服务器,一般情况下我们使用国内站点
gpgcheck:是否要检验数字证书,1表示校验,0表示不校验
gpgkey:数字证书保存位置
#如果是可以联网的,现在就可以直接使用yum源了
2、本地yum源(使用光盘)
①挂载光盘
# mount /dev/sr0 /media/
②将默认的网络yum源备份 创建文件夹bak
# mount /dev/sr0 /media/
# mkdir bak
# mv Cen* bak/
③新建光盘yum源文件
# vi yum.repo
#添加如下内容
[Centos]
name=centos
baseurl=file:///media #在指定服务器地址时,因为是本地文件所以用file,在这里一定要注意三个/,其中两个是标
准格式,第三个是目录路径/media
gpgcheck=0
enabled=1
④清空历史缓存并创建新缓存
# yum clean all 清空历史缓存
# yum makecache 创建新缓存
⑤查看光盘yum远中软件包
# yum list
#yum grouplist
源码安装方式
1、安装准备
# yum install gcc gcc-c++ gcc-g77 安装编译工具
2、下载源码包 ,安装并解压
①第一步:软件配置与检查./conigure
②第二步:执行编译 make ,将源码包编译为机器码
③第三步:执行 make install ,编译安装
④安装完成后启动服务