title: linux 系统高级
categories: linux
tags: [linux,运维,vim]
vim介绍
- vi和vim的联系,vi比较老了,vim是vi的升级
vim 1.txt
如果1.txt不存在的话就会自动创建,如果存在的话就直接打开同时进行处理yum install -y vim-enhanced
安装vim的安装包- 按 i 进入编辑模式,
esc + :+ wq
保存退出 vim /etc/init.d/iptables
返现vim打开的文件会有颜色vi !$
其中!$表示上一个命令最后的一个参数vim +10 !$
打开文件,进入文件的第10行- 使用vim打开文之后输入:之后输入set nu就会显示行号
vim一般模式下使用光标移动
- vim的三种模式:一般模式,编辑模式,命令模式
cp /etc/init.d/iptables 1.txt
将文件进行拷贝vim 1.txt
打开文件- 按下 j 或者 k 都可以实现向上向下的查看
- h 向左,l 向右
- 先按下 2 再按 j 会向下走两行,按下 4 再按下 k 会向上走四行
ctrl + f
可以向下翻页,ctrl + b
向上翻页- 按下 gg 就能进入文档的第一行
shift + 4
也就是**$**,进入行尾- 0 或者
shift + 6
进入到行首,0 是到最前边,后者会去掉空格进入非空字符的第一行 - 10 + G 进入到第十行
vim一般模式下赋值剪切粘贴
- x在一般模式下光标定位到一个字符上边的时候可以将其删除
- shift + x 表示向前删除字符
- 4 + x可以删除从光标位置开始的第四个字符
- dd删除一行,实际上是剪切了,按下 p 键可以将刚才的dd剪切的行粘贴到光标的下一行,shift + p将其粘贴在光标的上一行
- u 表示将刚才的操作撤销,最多可以回退50次
- ctrl + r 反撤销
- yy 表示复制,p粘贴在光标的下一行
- 3dd表示删除三行,3yy表示复制3行
- 3x表示剪切三个字符
- P表示粘贴到某一行的某个位置
- 按v进入可视模式下,然后去按上下左右或者hkjl选择出高亮的部分,然后实现自己选择的部分的复制或这操作
vim编辑模式
- i 进入到编辑模式下
- Esc 在编辑模式下进入一般模式
- shift + I (大写的i)进入光标所在的行首进行编辑
- a可以在光标的后边进入编辑模式进行编辑
- shift + A 可以进入到行尾进入编辑模式进行编辑
- o在原来光标的下边另外起一行
- shift + O 光标的上一行空行进入编辑模式
vim命令行模式
- wq就是命令行模式下的保存退出命令
- w表示写入
- q表示退出
- q! 表示强制退出不保存
- wq! 强制保存退出
- set nu 显示行号
- set nonu 去掉行号
- / + 字符,查找字符,n表示一个一个进行跳转,shift + N 表示向上跳转
- ? +字符,查找字符,n往上跳,shift + N 向下跳
- / 和 ? 搜索字符恰好相反
:1,1000 s/IPTABLES/iptables/g
其中s表示替换;1,1000表示1到1000行;将IPTABLES替换成iptables;g表示全局替换,不加上g的话每行就值替换第一个IPTABLES:1,$ s/IPTABLES/iptables/g
$表示整个文档:%$ s/IPTABLES/iptables/g
表示全部整个文档- 上下箭头也可以找命令
:%$ /s\/etc/sysconfig\//1111/g
其中/这样表示单纯的/斜杠:%$ s#/etc/sysconfig/@1111#g
其中可以使用#或者@表示命令行中的/,从而当中的/就表示目录的/,这样就不会出现歧义了:nohl
去掉高亮的颜色
gzip讲解(文件的压缩打包)
- 将大文件压缩成小一点的文件,降低磁盘的使用率,但是有点耗费cpu
gzip 文件名字
- ls 列出文件
du -sh install.log.syslog
查看文件的大小信息cat /etc/init.d/iptables >> install.log.syslog
追加文件信息!du
执行命令历史中最近的du命令history
查看命令历史gzip install.log.syslog
实现压缩功能- ls 显示被压缩的文件
gzip -1
使用1级别压缩(1-9是级别,默认的是6级别)gzip -9
表示压缩的比例最大,但是压缩的速度最慢gzip -d file.gz
解压缩文件gzip 12.txt
压缩文件zcat 12.txt.gz
查看压缩内容
bzip2讲解(和gzip的区别,大多数情况下压缩的效率更高)
bzip2 install.log.syslog
压缩文件之后install.log.syslog.bz2du -sh 文件
查看文件的大小bzip2 -d install.log.syslog.bz2
解压缩文件- ls显示文件的信息
- 注意:gzip和bzip2都不能压缩目录
zip和unzip
zip
查看压缩选项yum install zip unzip (xz bzip2 gzip)
使用yum安装命令工具zip 111.txt.zip 111.txt
压缩的时候必须指明压缩之后的文件名字,原文件不会消失unzip 111.txt.zip
解压缩文件zip -r 111.zip 111
其中zip可以压缩目录,但是必须使用r选项du -sh 111
查看文件的大小du -sh 111.zip
查看压缩之后的文件的大小信息zip -r 111.zip 111 222
将两个目录同时压缩到一个文件中去unzip 111.zip
解压缩文件
xz压缩和解压缩
- xz gzip bzip2的用法差不多一样
xz 12.txt
压缩之后的原文件消失成了12.txt.xzxz -d 12.txt.xz
解压缩文件(也有1-9的压缩级别)xcat 12.txt.xz
查看压缩文件信息
tar打包工具详解(将文件目录打包传输)
tar -cvf 1.tar 111 222 12.gz
打包文件,同时写好打包的名字(c 建包,v可视化,f是file),原来的文件不会消失du -sh 1.txt
打包不会压缩文件的大小du -sh(sb) 111 222 12.gz
显示文件的大小tar -tf 1.tar
查看包的内容tar -xvf 1.txt
解包,x表示解lsattr -R 111
查看特殊属性chattr -i 111/12.txt
去掉 i 属性tar -C /tmp/ -xvf 1.tar
解包到指定的目录下边
tar打包和压缩并用
- tar在打包的时候可以压缩,支持gzip bzip2 xz 三种格式的压缩打包
tar -zcvf 1.tar.gz 111 222
使用gzip的方式压缩打包同时写上压缩之后的名字,先打包后压缩du -sh 1.tar.gz
tar -zxvf 1.tar.gz
解压缩同时解包,不会删除压缩的包,原来的目录和文件将被覆盖掉tar -tf 1.tar.gz(bz2)
查看包的内容,在查看gz和bz2两种格式的时候只需要加上tf就行,但是查看xz格式的时候必须加上 Jtar -c /tmp/ -zxvf 1.tar.gz
在解包的时候指定路径tar -jcvf 1.tar.bz2 111 222
支持bzip2的格式tar -Jcvf 1.tar.xz 111 222
支持xz格式tar -tJf 1.tar.xz
查看xz给的文件信息tar -jxvf (Jxvf,zxvf) 1.tar.bz2(xz,gz)
解压缩和解包tar --exclude 12.txt -cvf 111.tar 111
在tar 打包的同时过滤掉不想被打包的文件tar --exclude 12.txt --exclude filename -cvf 11.tar 111
打包的时候过滤多个文件
rpm的安装和卸载(redhat package manager)
mount /dev/cdrom /mnt/
将光驱挂载到mnt挂载点下边cd /mnt
cd Packages/
下边的rpm红色的文件就是rpm包,下边是信息介绍- 第一段:包名
- 第二段:版本号
- 第三段:系统平台
- 第四段:多少位的系统平台,i686表示32位,x86表示64位
ls | grep 'centos'
过滤文件显示出的结果rpm -ivh zip-3.0-11.el7.x86_64.rpm
安装rpm包,有的时候包和包之间存在依赖关系,有的包必须在特定的包安装之后才能安装,当遇到两个包相互依赖时可以同时安装解决相互依赖的包的问题rpm -e yp-tools
卸载包rpm -ivh --nodeps zip...rpm
其中–nodeps表示强制安装有依赖关系的rpm包,只是安装的包是不完整的包,有的时候可以先强制安装其中一个包然后再安装另外一个依赖的包,不得已的情况下再使用rpm -Uvh zip...rpm
升级包的版本,一般是对次版本的升级,升级主版本的话可能出现问题
rpm查询
rpm -qa
查询所有安装过的rpm包rpm -e 包名字
卸载包,只写包名就行rpm -qa gnome-doc-urils
查询这个包的信息rpm -qa | grep vim
过滤出vim包,查看包的信息rpm -qi 包名
查询包的详细信息rpm -ql 包名
查看安装的包安装了哪些信息rpm -qf 文件名
查看文件是由哪个包安装而来的(文件必须是找的着的,写文件的绝对路径或者相对路径比较好)which vim
查看vim的路径rpm -qf 'which vim'
=rpm -qf /user/bin/vim
查看文件由哪个包安装得到的,其中which vim
命令的结果被 rpm 命令继续用
yum工具详解
- yum 工具是管理rpm包的工具,
- 自动解决rpm包安装的依赖关系
- 在指定的源或者网站搜索到rpm包,通过网络资源下载安装
yum install
表示安装的意思yum list
列出所有可以安装的网络资源,包括安装过的和没有安装过的- yum安装的源,
vim /etc/yum.repos.d/CentOS-Base.repo
打开编辑网站 yum list | grep vim
过滤vim- 使用
yum list
命令查看的结果中,有@符号的表示安装过的,没有@符号的表示没有安装过的 yum install vim-X11
安装这个rpmyum search 'vim'
搜索yum install -y vim-enjanced
安装,-y表示的是跳过提示内容yum remove vim-enhanced
卸载包,也可以加上-y,但是不推荐,可能有依赖关系,看清楚再进行卸载yum update vim-enhanced
升级包yum update
和yum upgrade
可以实现升级系统中所有的包yum grouplist
列出所有的资源LANG=en
将语言变成英文的yum grouplist install '套件名'
安装的是套件yum groupremove '套件名'
卸载套件LANG=zh_CN.UTF-8
将语言设置成中文的
搭建本地的yum环境
-
ls /mnt/Packages/
查看下载好的rpm包 -
如何制作本地的yum源:
-
mount /dev/cdrom /mnt
先挂载 -
cd /etc/yum.repo.d/
查看这个文件信息 -
cp -r yum.repo.d/ yum.repo.d.bak
在修改之前对文件进行拷贝 -
rm -rf CentOS-Base.repo
删除这个文件就表示不能在网络上去找资源了 -
yum list
查询出来都是@符号的表示本地已经下载好的 -
vim CentOS-Media.repo
修改文件中的信息- 前边的 [ ] 和名字自己写
- baseurl 是路径,写成自己挂载的位置
- gpgcheck表示是否检测
- enabled表示是否生效
- 最后一个注释掉
# yum --disablerepo=\* --enablerepo-... [local_cdrom] name=cd baseurl=file:///mnt/ gpgcheck=0 enabled=1 #gpgkey=file:///etc/pki/.......
-
修改完成之后,
yum list
列出包,源名发生了变化 -
yum grouplist install -y 包名字
-
yum如何下载rpm包到本地
yum install -y yum-plugin-downloadonly
安装这个之后就能够下载了yum install vte --downloadonly
下载vte这个包yum install vte --downloadonly --downloaddir=/tmp/
下载vte到/tmp/路径下yum reintall vim-enhanced --downloadonly --downloaddir=/tmp/
若果是install则只能下载没有安装过的包,reinstall支持重新下载即使安装过的包
源码的编译安装(真正的源码)
yum install -y wget
安装一个网络相关的wget包wegt //http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.29.tar.bz2
下载这个源码文件,httpd是类似于nginx的web服务cd /usr/local/src/
以后的源码包都放在这个目录下面,方便维护tar jxvf httpd-2.2.29.tar.bz2
解压这个包cd httpd-2.2.29
进入文件目录下边查看文件的信息(以下 的操作是在此文件目录下进行的)vim INSTALL
vim README
以上的两个文件都是安装相关的信息,需要多看./configure --prefix=/usr/local/apache
进入到解压的包的文件目录下边,使用此命令安装源码的的路径echo $?
查看结果,0表示成功make
编译make install
把翻译成机器的文件拷贝到指定的目录下