linux5
vim中存在三种模式:命令模式、编辑模式、末行模式
1、命令模式:在该模式下是不能对文件直接编辑,可以输入快捷键进行一些操作(删除行、复制行、移动光标、黏贴等等)【打开进入的默认模式】
2、编辑模式:在该模式下可以对文件内容进行编辑
3、末行模式:可以在末行输入命令对文件进行操作(搜索、替换、保存、高亮等)
vim打开文件的方式:
vim 文件路径 作用:打开指定的文件
vim +数字 文件路径 作用:打开指定的文件,并将光标移动到指定行
vim +/关键词 文件路径 作用:打开指定的文件,并且高亮显示关键词
vim 文件路径1 文件路径2 文件路径3 作用:同时打开多个文件
一、命令模式
注意:该模式是打开文件的第一个看到的模式(打开文件即可进入)
1、光标移动操作:
(1)光标移动到行首:按键:shift+6
(2)光标移动到行尾 :按键shift+4
(3)光标移动到首行: 按键:gg
(4)光标移动到末行:按键:G
(5)翻屏:向上翻屏:按键ctrl+b
向下翻盘:按键ctrl+f
2、复制操作
(1)复制光标所在行:按键:yy 黏贴:在想要黏贴的地方按下p
(2)以光标所在行为准,向下复制指定行数 :按键: 数字 yy
(3)可视化复制:按键ctrl+V。 然后按上下箭头标记选中, 按下yy ,然后按下p建黏贴。
3、 剪切、删除
(1)剪切、删除 光标所在行 按键:dd(删除之后下一行上移)
注意:dd严格意义上是剪切命令,但是如果剪切了不黏贴就是删除的效果
(2)剪切、删除光标所在行为准(包含当前行),向下删除、剪切指定的行
按键:数字 dd(删除之后上移)
(3)剪切、删除光标所在的当前行,但是删除之后下一行不上移
按键:D (当前行会变成空白行)
(4)撤销/恢复
撤销:输入:u(不属于命令模式)
恢复:ctrl+r 恢复(取消)之前的撤销操作
命令行模式扩展:
1、光标的快速移动到指定的行
按键:数字 G
2、以当前光标为准向上、上下移动n行
按键:数字 箭头
3、以当前光标为准向左、向右移动n字符
按键 数字 箭头
4、末行模式下:按下输入英文的“:”,其后输入行数数字
四、模式间的切换
命令模式切换成末行模式,输入英文":",按ESC退出
五、末行模式
进入方式:由命令模式进入,按下":",即可进入
退出方式:
a、按下esc
b、连按两下esc键
c、删除末行全部输入字符
保存操作:输入:":w" 保存文件
输入":w 文件路径" 另存文件
退出文件":q"
保存并退出:输入":wq"
强制(!)
输入:“:q!” 强制退出,刚才做的修改操作不做保存
调用外部命令::!ls
当外部命令执行结束之后按下任意键回到vim编辑器打开的内容。
(1)搜索、替换
输入:"/关键词"
在搜索结果中切换上/下一个结果:N/n
取消高亮则需要输入":nohl"
(2)替换
😒 /搜索的关键词/新的内容 替换光标所在行的第一处符合条件的内容。
😒 /搜索的关键词/新的内容/g 替换光标所在行的所有符合条件的内容
:%s/搜索的关键词/新的内容 替换整个文档中每行第一个符合条件的内容
:%s/搜索的关键词/新的内容/g 替换整个文档中所有符合条件的内容
g表示全局(global)
(3)显示行号
输入":set nu"
不想显示: :set nonu
查看当前已经打开的文件名称: ":files"
%a:a=active 表示当前打开的文件 #:表示上一个打开的文件。
切换文件的方式:
a.如果需要打开特定的文件,则输入":open group"
b. 可以通过其他命令切换上一个文件/下一个文件
输入:":bn"切换到下一个文件
输入:":bp"切换到上一个文件
三、编辑模式
进入编辑模式:i:光标所在字符前开始插入
a:在光标所在字符后开始插入
o:在光标所在行的下面另起一新行插入
S:删除光标所在行并开始插入
退出方式:按ESC
七、实用功能,
代码着色
显示:":syntax on"
关闭显示功能:":syntax off"
2、vim中计算器的使用
当在编辑文件的时候突然需要使用计算器去计算一些公司,则此时需要用计算器,但是需要退出,vim集成了一个简易的计算器
a,进入编辑模式
b,按下按键"ctrl+R",然后输入"=",此时,光标会变到最后一行
c,输入需要计算的内容,按下回车。
八、扩展
1、vim的配置
vim配置的三种情况:
a,在文件打开的时候在末行模式下输入的配置(临时的)
b,个人配置文件(~/,vimrc)
c,全局配置文件(vim自带,/etc/vimrc)
新建好个人配置的文件之后进入编辑
问题:如果某个配置项,在个人配置文件与全局配置文件产生冲突的时候应该以谁为准?
针对同一个配置项,个人配置文件中存在,则以个人配置文件中的设置为主
2、异常退出
在编辑文件之后并没有正常的去wq(保存退出),而是遇到突然关闭终端或者断电的情况,则会显示下面的效果
解决方法:将交换文件(在编程过程中产生的临时文件)删除掉即可。
3、别名机制
作用:相当于创建一些属于自己的自定义命令
别名机制依靠一个别名映射文件 : ~/.bashrc
alias rm='rm -i' 这样的话输入rm就相当于输入rm -i
命令生效必须得重新登录账号。
.bashrc
User specific aliases and functions
alias rm='rm -i'
Source global definitions
if [ -f /etc/bashrc ]: then
/etc/bashrc
fi
退出方式:
除了":q"和":wq"
":x":保存并退出。在文件没有修改的情况下,表示直接退出。在文件修改的情况下表示保存并退出。
2、如果文件并没有被修改,但是使用:wq进行退出的话,则文件的修改时间会更新,但是如果使用:x
来使用的话,文件没修改时不会更新时间。不会混淆用户对文件修改时间。
不要使用X,X表示对文件进行一个加密操作
Linux自有服务:
不需要用户独立安装的软件,而是系统自带的服务
一、运行模式/运行级别
在linux中存在一个进程:init ,进程id为1,对应的是系统的运行级别配置文件:inittab文件
:在配置文件中是注释。
根据上述描述,存在7中运行级别/模式
0-表示关机的级别(不要将默认的运行级别设置为0)
1-单用户模式
2-多用户模式,不带NFS
3-多用户模式,完全的多用户模式
4-没有被使用的模式(保留模式)
5-X11,完整的图形化界面模式
6-重启级别。(不要将默认的运行级别设置为该值)
init 0 表示关机
init3 表示切换到不带桌面的模式
init5 切换到图形界面
init6 重启电脑
init指令需要超级管理员权限。
3、设置模型永久为命令行模式:
将/etc/inittab文件中的initdefault值设置为3,然后重启操作系统即可
用户管理:用户账号的添加、删除、修改以及用户密码的管理
用户组的管理。
注意三个文件:/etc/passwd 存储用户的关键信息
/etc/group 存储用户组的关键信息
/etc/shadow 存储用户的密码信息
1、用户管理
(1)添加用户
常用语法:useradd 选项 用户名
常用选项
-g :表示指定用户的用户组
-G :表示用户组的用户附加组,选项的值可以是用户组的id,也可以三组名
-u :uid,用户的id(用户的标识符),系统会从500之后顺序分配uid,如果想使用系统分配的可以通过该选项自定义。
验证/etc/passwd的最后一行,查看是否含有新创建的用户的信息
验证是否存在home目录
扩展:passwd文件:
用户名:密码:UID:用户ID:用户组ID:注释:家目录:解释权shell
执行了useradd之后会执行一系列的操作。
(2)修改用户
常用语法:usermod 选项 用户名
常用选项:
-g:表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名
-G:表示指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名
-u:uid,用户的id(用户的标识符),系统默认从500之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义【类似于腾讯QQ的自选号情况】
-l:修改用户名
usermod -l 新用户名 旧用户名
(3)设置密码
linux不允许没有密码的用户登录到系统
常用语法:passwd 用户名
(4)删除用户
常用语法:userdel 选项 用户名
常用选项:
-r:表示删除用户的同时,删除其家目录
(5)切换用户
用法:su 用户名称
二、用户组的管理
用户组的添加、删除与修改。
实际是对/etc/group文件的更新
文件结构:用户组名:密码:用户组ID:组内用户名
组内用户名:表示附加组是该组的用户名称
(1)用户组添加
常用语法:groupadd 选项 用户组名
常用选项:
-g:类似用户添加里的"-u",-g表示选择自己设定一个自定义的ID数字
(2)用户组的编辑
常用语法:groupmod 选项 用户组名
常用选项:
-g:类似用户添加里的"-u",-g表示选择自己设定一个自定义的ID数字
-n:类似于用户修改里面的“-l”,表示设置新的用户组的名称
(3)用户组删除
在配置文件中进行配置
配置好之后vim打开文件就会永久显示行号
三、网络设置
网卡配置文件位置:/etc/sysconfig/network-srcipts
在目录中网卡的配置文件命名格式为 ifcfg-网卡名称
ONBOOT:是否开机启动
BOOTPROTO:ip地址分配方式,DHCP表示动态主机分配协议
HWADDR:硬件地址,MAC地址
/etc/init.d 这个目录中放着很多服务的快捷方式
在实际工作中最好不要随意禁网卡
SSH服务文件传输
可视化传输文件工具Filezilla
pscp.exe(必须通过cmd命令行打开)
用法: pscp 选项 用户名@linux 主机地址:资源路径 windows 本地的地址
一、设置主机名
hostname -f FQDN (全限定域名)
hostname 修改的主机名(需要切换用户使之生效)
(1)设置永久主机名(需要重启)
先找到一个文件
/etc/sysconfig/network 主机名的配置文件
修改其中的HOSTNAME 即可永久更改
二、chkconfig
作用:相当于电脑管家,提供的开机启动项管理服务
chkconfig --list:开机启动项服务查询
删除服务:
chkconfig --del 服务名
添加开机启动服务
chkconfig --add 服务名 【必须保证服务正常运行,才可以添加】
设置服务在某个级别下开机启动【重点命令】
chkconfig --level 连在一起的启动级别 服务名 on/off
例如chkconfig --level 35 httpd on
三、ntp服务
作用:ntp主要用于对计算机的时间同步管理操作
时间对于服务器来说很重要,一般很多网站都需要读取服务器的时间来记录相关信息。
同步服务器的方式:一次性同步、通过服务自动同步
(1)一次性同步时间(简单)
ntpdate 时间服务器的域名或ip地址
(2)通过服务自动同步
服务名:ntpd
启动ntpd服务
防火墙服务
防火墙:防范一些网络攻击。防火墙选择性让请求通过,从而保证网络安全
查看iptables 的状态
service iptables status
查看规则的命令:iptables -L -n
-L:表示列出规则
-n:表示将单词表达形式改成数字形式显示
iptables -A INPUT -p tcp --dport 80 -j ACCEPT #允许访问80端口
iptables:主命令
-A:add,添加规则
INPUT:进站请求
-p:protocol,指定协议(icmp/tcp/udp)
--dport:指定端口号
-j:指定行为结果,运行/禁止
一、rpm管理
rpm的作用类似于windows上的电脑管家中"软件管理"、安全卫士里面的软件管家,主要是对linux服务器上的软件包进行对应管理操作,管理分为:查询、卸载、安装。
1、查询某个软件的安装情况
rpm -qa|grep 关键词
选项: -q:查询
-a:全部
卸载:某个软件
rpm -e 软件的名称
当存在依赖关系又不想解决这个问题的时候可以
rpm -e 软件包名 -nodeps
软件的安装:a,去官网下载
b,不介意老版本时,可以从光盘中读取
查看块状设备的信息:
lsblk
NAME:名称
SIZE:设备大小
Type:类型
MountPoint:挂载点
扩展:光盘的挂载和解挂
解挂操作:
命令:umount 当前挂载点(路径)
相当于u盘已经弹出了
挂载光盘:
mount 设备的原始地址 要挂载的位置路径
设备的原始地址: 地址统一都在/dev 下,然后根据大小确定具体name值,拼凑在一起组成原始地址,例如当前:/dev/sr0
建议挂载的位置一般放:mnt目录中
安装软件的命令:
rpm -ivh 软件包完整名称
-i:install 安装
-v:显示进度条
-h:以#形式显示进度条
cron/crontab 计划任务
作用:24h值守,操作系统在指定的时间去执行任务
crontab 选项
常用选项:
-l: list, 列出指定用户的计划任务列表
-e:edit 编辑指定用户的计划列表
-u:user,指定用户名,如果不指定,则表示当前用户
-r:remove,删除指定用户的计划任务列表
编辑计划任务:
计划任务的规则语法格式,以行为单位,一行则为一个计划:
分 时 日 月 周 需要执行的命令
例如想要每天的0点0分执行reboot指令,则
0 0 * * * reboot
分:取值范围:0~59
时:0~23
日:1~31
月:1~12
周:0~6,0表示星期天
四个符号:
:取值范围中的每一个数字
-:做区间表达式
/:表示每多少个,例如:想每十分钟一次,则可以在分的位置:/10
,:表示多个取值,比如想在1,2,6点执行,则可以在时的位置写:1,2,6
例如:每一分钟在root的家目录中的RT.txt中输入当前的时间信息,为了看到效果使用追加输出:
计划任务:*/1 * * * * date+"%F %T" >> /root/RT.txt
权限管理
linux系统一般将文件可存/取访问的身份分为3个类别:owner、group、others,3种身份各有read、write、execute等权限
Linux中分别有读、写、执行权限
读权限:对于文件夹来说、读权限影响用户能否列出目录结构
对于文件来说,读权限影响用户是否可以查看文件内容
写权限:
对文件夹来说,写权限影响用户是否可以在文件夹下“创建、删除、复制到、移动到”文档
对于文件来说,写权限影响用户可以编辑文件内容
执行权限:一般都是对于文件来说,特别脚本
Owner(文件的所有者、文档的所有者)
Group(与文件所有者同组的用户):多个团队在同一台主机上开发资源的时候。
Others身份(其他人)
root用户(超级用户)
权限设置
chmod 选项 权限模式 文档
注意事项:常用选项
-R:递归设置权限(当文档类型为文件夹的时候)
权限模式:该文档需要设置的权限信息
文档:可以是文档,也可以是文件夹,可以是相对路径也可以是绝对路径
授权:
给谁设置:u:表示所有者身份(owner)
g:表示所有者同组用户设置(group)
o:表示others,给其他用户设置权限
a:表示all,给所有人设置权限
权限字符:
r:读
w:写
x:表示执行
权限分配方式:
+:表示给具体的用户新增权限
-:表示删除用户的权限
=:表示将权限设置成具体的值(注重结果)
例如:
chmod u+x,g+rx,o+r 文档路径
ll 文档名称 :查看权限
数字形式:
读:r 4
写:w 2
执行:x 1
属主,所属的用户(文件的主人)
属组:所属的用户组
如果有时候删除某个用户,则该用户对应的文档的属主和属主信息就需要去修改
chown:用于修改文档的所属用户
语法:chown -R username 文档路径
chgrp
更改文档的所属用户组
chgrp -R groupname 文档路径
sudo 配置文件 /etc/sudoers
Visuo配置文件中
Root 表示用户名
ALL:表示允许登录的主机
(ALL)表示以谁的身份执行,ALL表示root身份
ping:主机与主机之间的连通性
ping ip/域名
netstat:查看网络的连接信息
语法:netstat -tnlp