Linux系统管理和维护

1.1 tab补全

tab一次:输入的内容能够唯一标识,直接跳出命令。

tab两次:输入的命令不能唯一标识,再tab,显示出所有匹配的命令

tab命令的补全:vi,系统根据环境变量$PATH去文件下寻找命令

1.2 shell命令操作

cat:查看文件

Ctrl+a:跳转光标至最前

Ctrl+e:跳转光标至最后

Ctrl+k:删除光标后的内容

Ctrl+u:删除光标前的内容

Ctrl+l:清空屏幕

Ctrl+r:进入寻找界面,搜索历史命令

ping+ip :测试网络是否连通

Ctrl+c:停止当前正在运行的程序

touch:创建文件

mkdir:创建目录

1.3 vi/vim操作

vim是vi的升级版(命令模式,输入模式,末行模式)
在这里插入图片描述
在这里插入图片描述

1.3.1命令模式

光标移动h:左 l:右 j:下 k:上

数字 +h/l/k/j:移动多少格(不是按字节跳)

w:跳过空格后的第一个字符(跳到下一个单词的开头)

e:跳到下一个单词的末尾

b:从后往前跳空格(跳到上一个单词的开头)

数字+w/e/b:跳过几个空格

CTRL+f、pgup:向下翻页 CTRL+b、pgdn:向上翻页 pgUP

所在行行首:home和0(有空格直接跳到最前面)、^(有空格跳到最前面的第一个单词即略过首行空格)

所在行行尾:end、$

全文行首:gg

全文行尾:G

行数+gg:跳到第几行

标出行号:set nu

取消行号:set nonu

删除整行:dd

删除多行:数字+dd,从当前行开始删除

删除一个字符:x、delete

删除光标及之后的内容:D,d+$

删除光标之前的内容:d+^

复制光标所在行:yy

复制多行:数字+yy,从当前光标行开始复制

粘贴到光标的下一行:p

粘贴到光标的上一行:P

查找:/+要查找的内容(从上往下查找)、?+要查找的内容(从下往上查找)按n

替换光标所在字符:r

可替换一串字符:R ====> ESC退出

u:撤销一次编辑操作

数字+u:撤销多次操作

Ctrl+r:恢复上一次的撤销操作

.:重复了上一步操作

v:按照字符选择

Ctrl+v:按矩形选取,但可以上下左右调整所选区域大小

1.3.2从命令模式到编辑模式

i:光标前插入

I:行首插入

a:光标后插入

A:行尾插入

o:光标下行输入

O:光标上行输入

1.3.3末行模式

:w /文件路径/文件名(文件不存在自行创建,存在的话覆盖):将该文件复制到另一个文件中
:e /文件路径/文件名 打开一个新的文件 编辑
e ~/passwd1 ===> e /root/passwd1 ===> e./passwd1

r /文件路径/文件名 读入一个文件内容
r /etc/passwd

s /旧的字符/新的字符/:替换光标所在行的第一个匹配的字段
s /旧的字符/新的字符/g:替换光标所在行的所有字段
行号1,行号2 s /旧的字符/新的字符/:指定行间所有行的第一个匹配的字段
行号1,行号2 s /旧的字符/新的字符/g:指定行间所有行的所有字段
% s /旧的字符/新的字符/:全文所有行的第一个匹配的字段
% s /旧的字符/新的字符/g:全文所有行的所有字段
% s /old/new/gc c:提示用户是否替换
% s /old/new/gci:忽略大小写

:!+shell命令 “在文档中执行shell命令”

1.3.4打开文件

vi+行号(空格)+文件夹:表示打开文件夹到指定(行号)的行

vi+/关键字+文件夹:表示打开文件锁定到指定的关键字

1.3.5关闭文件

ctrl+z,ZZ

.vimrc:配置在用户的家目录下,/home/user1/
set nu
set ai:缩进

. /etc/vimrc:配置全局

1.4 查看历史命令history

!行数:直接执行该行的命令

!$:执行最后的一个命令

echo $HISTSIZE:表示只能保存的命令个数

[root@localhost ~]# echo $HISTSIZE
1000

echo $HISTFILE:显示出保存历史命令的文件名/文件位置

[root@localhost ~]# echo $HISTFILE
/root/.bash_history

help history:查看帮助,显示history操作的其他命令

history -w:把历史命令列表同步到历史命令文件中
在这里插入图片描述
vim /etc/profile:可修改可保存的命令个数

HISTSIZE=1000

source /etc/profile:更新profile文件

如何设置历史命令的保存数量

vi或vim /etc/profile 进入修改 HISTSIZE=1000,再更新文件

如何设置历史命令的时间戳和使用用户

vi或vim /etc/profile 进入插入export HISTTIMEFORMAT="%F %T whoami "退出再更新文件。


  • a=name #当前shell进程,子进程。

echo $SHELL:显示shell的环境变量

1.5 别名alias

alias net=“vi /etc/sysconfig/network-scripts/ifcfg-ens33”#定义别名

unalias net #取消别名

\net #跳过别名

进入 vi /etc/bashrc,在最低下添加“ alias net=“vi /etc/sysconfig/network-scripts/ifcfg-ens33”” #让别名永久生效

source /etc/bashrc 更新文件

1.6变量

在这里插入图片描述

vi text1. sh:编辑shell语言

sh text1. sh:执行text1.sh文件

环境变量:针对于当前的shell下的所有进程及子进程都生效

1.7标准输入,输出

在这里插入图片描述

> filename  标准输出到文件

在这里插入图片描述

2> eername  错误输出到文件

在这里插入图片描述

> filename 2>eername  将标准输出到filename文件,错误输出到eername

在这里插入图片描述

将标准输入到file3文件

在这里插入图片描述

标准输出和错误输出都放到一个文件中

在这里插入图片描述在这里插入图片描述


>> 表示追加,不会覆盖前一个内容

在这里插入图片描述

$?:判断上一条命令是否成功,若成功,返回0;失败,返回非0.
在这里插入图片描述
shell语言,判断网络是否连通
在这里插入图片描述
在这里插入图片描述

1.8 特殊符号,通配符

管道符:“|”把上一个命令的执行结果交给了下一个命令继续处理

grep:过滤结果
grep ^root passwd :以root开头的行
grep -i root passwd:不区分大小写
grep -c root passwd:统计打印的行数
grep -n root passwd:打印行号
grep-v:取反
在这里插入图片描述

[root@localhost log]# ip a |grep inet |grep -v inet6
inet 127.0.0.1/8 scope host lo
inet 192.168.220.15/24 brd 192.168.220.255 scope global noprefixroute ens33
[root@localhost log]# ip a |grep inet
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
inet 192.168.220.15/24 brd 192.168.220.255 scope global noprefixroute ens33
inet6 fe80::b7f7:d485:e3be:f754/64 scope link noprefixroute
tee:把过滤的结果打印到文件中

在这里插入图片描述
在这里插入图片描述

“.”:代表当前目录,两个点代表上级目录

ll ./
在这里插入图片描述
“;”:代表多条目录的分割
在这里插入图片描述
``:把内容还原成命令
在这里插入图片描述
“*”:匹配所有
在这里插入图片描述
“?”:匹配单个任意字符
在这里插入图片描述
‘ ’(单引号):强引用,可见即可得
“ ”(双引号):弱引用,把变量正常输出( \t:tab \n:换行 )

[root@localhost test1]# echo -e “womendoushi\nhaohaizi”
womendoushi
haohaizi

touch text{2…5}:创建text2,text3,text4,text5文件

[root@localhost ~]# touch text{2…5}
[root@localhost ~]# ll
total 16
-rw-------. 1 root root 1536 Jul 24 09:31 anaconda-ks.cfg
-rw-r–r--. 1 root root 29 Jul 25 08:59 file
-rw-r–r--. 1 root root 29 Jul 25 09:00 file1
-rw-r–r--. 1 root root 210 Jul 24 17:48 test
-rw-r–r--. 1 root root 0 Jul 25 09:31 text1
-rw-r–r--. 1 root root 0 Jul 25 09:33 text2
-rw-r–r--. 1 root root 0 Jul 25 09:33 text3
-rw-r–r--. 1 root root 0 Jul 25 09:33 text4
-rw-r–r--. 1 root root 0 Jul 25 09:33 text5

ll text[0-9]( ll text[[:digit:]]):查找text后数字为1-9的所有文件

[root@localhost ~]# ll text[0-9]
-rw-r–r--. 1 root root 0 Jul 25 09:31 text1
-rw-r–r--. 1 root root 0 Jul 25 09:33 text2
-rw-r–r--. 1 root root 0 Jul 25 09:33 text3
-rw-r–r--. 1 root root 0 Jul 25 09:33 text4
-rw-r–r--. 1 root root 0 Jul 25 09:33 text5
[root@localhost ~]# ll text[[:digit:]]
-rw-r–r--. 1 root root 0 Jul 25 09:31 text1
-rw-r–r--. 1 root root 0 Jul 25 09:33 text2
-rw-r–r--. 1 root root 0 Jul 25 09:33 text3
-rw-r–r--. 1 root root 0 Jul 25 09:33 text4
-rw-r–r--. 1 root root 0 Jul 25 09:33 text5

ll text1.[a-z](ll text1.[[:alpha:]]):查找以a-z为后缀的所有文件

[root@localhost ~]# ll text[a-z]
-rw-r–r--. 1 root root 0 Jul 25 09:52 texta
-rw-r–r--. 1 root root 0 Jul 25 09:52 textb
-rw-r–r--. 1 root root 0 Jul 25 09:52 textc
-rw-r–r--. 1 root root 0 Jul 25 09:52 textd
-rw-r–r--. 1 root root 0 Jul 25 09:52 texte
[root@localhost ~]# ll text[[:alpha:]]
-rw-r–r--. 1 root root 0 Jul 25 09:52 texta
-rw-r–r--. 1 root root 0 Jul 25 09:52 textb
-rw-r–r--. 1 root root 0 Jul 25 09:52 textc
-rw-r–r--. 1 root root 0 Jul 25 09:52 textd
-rw-r–r--. 1 root root 0 Jul 25 09:52 texte

^为非,与本意相反

[root@localhost ~]# ll text[ ^ [: alpha :] ]
-rw-r–r--. 1 root root 0 Jul 25 09:31 text1
-rw-r–r--. 1 root root 0 Jul 25 09:33 text2
-rw-r–r--. 1 root root 0 Jul 25 09:33 text3
-rw-r–r--. 1 root root 0 Jul 25 09:33 text4
-rw-r–r--. 1 root root 0 Jul 25 09:33 text5

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值