2022年1月

光标跳转

上下左右

上下左右
#command:跳转#个字符

单词跳转

w:下个单词的词首
e:下个单词的词尾
b:上个单词的词首
#command:跳转#个单词

行首行尾跳转

^:行首非空白字符
0:行首
$:行尾

行间移动

#G:跳到第#行
G:跳到尾巴
gg:跳到开头

文本编辑

删除

d:配合光标跳转删除
d^
d$
d#command
d0
dw
de
db
dd:删除光标所在行
#dd:删除多行
ggdG:删除全部

x删除光标所在字符
#x

复制剪切粘贴撤销

y,复制,用法类d
yy 以行为单位
#yy #行
ygg
yG

p粘贴

u撤销

模式转换

插入模式

a:选中字母后
i:选中字母
o:选中一行下面新建一行
A:行尾
esc:退出

末行模式

:
#:进入第几行
w:保存
w filename:另存为
q:退出
command!:强制
x 、ZZ:保存并退出
X:加密文档
r filename:读入文件到当前行后
# r filename:读入文件到5行后

查找替换

s/old/new/选项(g全文,c交互确认) 替换

50,100 s/man/MAN/gc 把50到100的man换成MAN并确认每一个替换

,$ s/.*// 从光标所在行开始一直到最后替换为空
如果出现替换文本里面有/,担心会造成歧义,可以使用#或者@来替代/

环境配置

在vim里面输入的都是临时的配置,如需永久环境,个人修改自己目录下的.vimrc,全局修改/etc/vimrc

set nu:行号
set nonu:取消行号
set ai:自动缩进
set noai:取消自动缩进
set ic:忽略字符的大小写
set noic:不忽略
set hlsearch:高亮搜索
set nohlsearch:不高亮
set sm:括号匹配
set nosm:不匹配
help:帮助

4VOTA[7XQ0{JYQX{D98(QNC.png
个人答案

cd /tmp
[root@server1 tmp]# mkdir vitest

[root@server1 tmp]# cd vitest/

[root@server1 vitest]# cp /etc/man_db.conf man.config

vi man.config


set nu

58G
40l

gg
?bzip2

50,100 s/man/MAN/gc   g为每行全部替换,不然只换一个,c为确认

u

65G
9yy
G
$
p

21,42 g/^#/d

w ./man.test.config

27G
d15l

gg
o
I am a student

esc
wq

基础概念

Linux系统内核指的是硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序。 Linux操作系统是由Linux内核与各种常用软件的集合产品

shell:shell是系统的用户界面,他起到命令解释器的作用,能够把用户输入翻译成内核能够理解的内容

avatar

文件目录

avatar

bin -> usr/bin:普通用户使用的命令
sbin -> usr/sbin:管理员使用的命令
dev:设备文件(usb等连接到系统的任何设备)和特殊文件(块设备和字符设备等)
boot:引导加载程序文件
etc:配置文件
home:家目录,存放普通用户的个人档案
lib -> usr/lib:系统库,共享库文件以及内核模块文件
lib64 -> usr/lib64:专用于x86_64的辅助共享文件库
media:便携移动设备挂载点
mnt:临时文件系统挂载点
opt:第三方应用安装的地方
proc:输出内核与进程信息相关的虚拟文件系统
root:系统管理员的主目录
run:运行中进程相关的数据,存储进程的pid文件
srv:系统上运行的服务用到的数据,包含服务器特定服务相关的数据
tmp:临时文件存放位置,重启时清空
usr:二进制文件、库文件、文档、二级程序的源代码
var:存放着经常发生变化是数据文件

绝对位置、相对位置

常用命令

ip a 查看ip

ssh 用户名@ip

yum install 包名 安装软件包

hostnamectl set-hostname 主机名 修改主机名

systemctl disable firewalld 关闭防火墙开机自启

poweroff关机

pwd:查看当前所在目录

关闭selinux

setenforce 0
sed -i "s/=enforcing/=disabled/g" /etc/sysconfig/selinux

配置防火墙

firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload 12

初始化

yum install -y bash-completion //自动补全
yum install -y vim
hoatnamectl set-hostname server1 //修改主机名
systemctl disable firewalld //关闭防火墙开机自启

//做完后记得拍快照

基础指令

echo 字符串:输出字符串

whoami:输出当前用户名

date:查看当前时间

ls:查看当前目录的文件:

-a:查看所有文件
-d:目录
-l:将文件的详细信息以长格式的形式展开,可以直接输入ll
-h:将文件的大小以人看得懂的单位显示
-t:按时间逆序排序
-r:文件名逆序,默认是顺序
-i:打印inode号

命令后面的参数有两种-短参数和--长参数,短参数可以多条合并

history:查看命令历史

-a:追加记录到.bash_history
-d id:删除历史中指定的命令
-c:清空历史命令
!id:执行对于命令
!$:执行上一个命令的最后一个参数,如果没有参数,就执行命令本身
!string:查找以string开头的命令
^R:搜索历史命令

.bash_history文件记录了所有的命令历史,但是不是同步更新

alias str='cmd':别名,临时生效

想要永久别名需要修改/etc/bashrc,alias str='cmd'

cd des:切换目录

pwd:显示当前目录

文件管理

mkdir [-] name:创建目录

-m:配置文件权限
-p:递归创建
-v:显示创建过程

mkdir -pv /home/file{a..d}#一次性创建多个文件

touch name:创建新文件,当文件/目录已存在时,会更改其时间属性

cp [] src des:拷贝文件和目录

-f:强制,如果目标文件依旧存在且无法开启,则删除后再来一次
-i:如果目标已存在,覆盖前先询问,默认cp=ci -i
-l:复制为硬链接
-s:复制为软连接
-d:如果目标是链接,想要复制连接而非复制原文件,则使用这个,只复制连接属性
-p:连同属性一起复制过去
-r:递归
-a:-pdr
-u:如果des比src旧才升级
-v:显示过程

src为单个文件:

    des不存在,则把src写入到des中
    des存在,覆盖

src存在,des是目录:创建并写入

src是多个文件
    des必须是目录,src为目录:-r

    des为目录:
    des不存在:创建
    des存在:写入,如果文件已存在则覆盖
    des为文件:报错


mv src des:移动,可以改名

rm [] file:删除


-r:递归
-f:强制
-v:详细过程

建议移动到对应文件夹使用!以防从入门到删库跑路!

cat:一次性加载所有内容,顺序

tac:同cat,但是逆序

less:不会一次性加载所有内容,空格翻页,回车加载一行,可以回看

more:和less类似,但是不可回看

head:查看文件开头部分


-n:指定行数

tail:从文件尾部读取,并且会监控文件的更新

-n:指定行数,``-n +10``表示从第十行到结尾
-f:循环读取,监视更新

grep 'str' file:对内容进行过滤

vi/vim

光标跳转

上下左右

上下左右
#command:跳转#个字符

单词跳转

w:下个单词的词首
e:下个单词的词尾
b:上个单词的词首
#command:跳转#个单词

行首行尾跳转

^:行首非空白字符
0:行首
$:行尾

行间移动

#G:跳到第#行
G:跳到尾巴
gg:跳到开头

文本编辑

删除

d:配合光标跳转删除
d^
d$
d#command
d0
dw
de
db
dd:删除光标所在行
#dd:删除多行
ggdG:删除全部

x删除光标所在字符
#x

复制剪切粘贴撤销

y,复制,用法类d
yy 以行为单位
#yy #行
ygg
yG

p粘贴

u撤销

模式转换

插入模式

a:选中字母后
i:选中字母
o:选中一行下面新建一行
A:行尾
esc:退出

末行模式

:
#:进入第几行
w:保存
w filename:另存为
q:退出
command!:强制
x 、ZZ:保存并退出
X:加密文档
r filename:读入文件到当前行后
# r filename:读入文件到5行后

查找替换

s/old/new/选项(g全文,c交互确认) 替换

50,100 s/man/MAN/gc 把50到100的man换成MAN并确认每一个替换

,$ s/.*// 从光标所在行开始一直到最后替换为空
如果出现替换文本里面有/,担心会造成歧义,可以使用#或者@来替代/

环境配置

在vim里面输入的都是临时的配置,如需永久环境,个人修改自己目录下的.vimrc,全局修改/etc/vimrc

set nu:行号
set nonu:取消行号
set ai:自动缩进
set noai:取消自动缩进
set ic:忽略字符的大小写
set noic:不忽略
set hlsearch:高亮搜索
set nohlsearch:不高亮
set sm:括号匹配
set nosm:不匹配
help:帮助