系统基础管理和维护
- 1 tab补全
- tab 一次;输入的内容能够唯一标识,直接跳出命令。
- 输入的内容不能唯一标识,再 tab,显示出所有匹配的命令
- tab命令补全的原理:vi ,系统根据环境变量$PATH 去文件下寻找命令。
-
2
shell 命令操作 ctrl + a :调到最前 ctrl + e:跳到最后 ctrl +k:删除光标后的内容 ctrl+u:删除光标前的内容 ctrl+l:清屏 ctrl+r:搜索历史命令。
-
3 vi 操作
- 编辑模式
i | 在当前光标下插入 |
---|---|
O | 上一行插入 |
o | 下一行插入 |
-
命令行模式
:q 退出 :q! 强制退出 :w 保存 :w! 强制保存 : wq! 强制保存退出 :x 保存并退出 :set nu 添加行号
*新建一个file6文件,编辑
- 4 history
! 10 : ! +历史命令的列表行数
!$ 执行最后一次的历史命令
help history | 查看帮助 |
---|---|
history -w | 把历史命令列表同步到历史命令文件中 |
echo $HISTFILE | 查看历史命令文件位置 |
如何设置 历史命令的保存数量
echo $HISTSIZE
vi /etc/profile
HISTSIZE=1000
:wq
source /etc/profile
如何设置历史命令的时间戳,和使用用户
vi /etc/profile
export HISTTIMEFORMAT="%F %T
whoami"
:wq
source /etc/profile
history
1.5 alias
alias net=“vim /etc/sysconfig/network-scripts/ifcfg-eth0” #定义别名
[root@localhost ~]# unalias net #取消别名
[root@localhost ~]# \net #跳过别名
让别名永久生效
[root@localhost ~]# vim /etc/bashrc
alias net=“vim /etc/sysconfig/network-scripts/ifcfg-eth0”
:wq
[root@localhost ~]# source /etc/bashrc
- 6 变量
#!/bin/bash
who=`whoami` #全局变量,作用于对当前文件
test(){
IP='192.168.254.125' #局部变量,作用于一行代码,或者代码块
#ping $IP
echo $who
}
#test
ping $IP
环境变量:正对于当前的shell下的所有进程及子进程都生效
- 7 标准输入,输出
"> filename " 标准输出到文件
[root@localhost ~]# ls >file1
[root@localhost ~]# ll >>test1
2> eername 错误输出到文件
[root@localhost ~]# mysql 2>err
[root@localhost ~]# fdisk 2>test2
[root@localhost ~]# fdisk 2>>test2
"> filename 2>eername " 将标注输出到filename文件,错误输出到errname
[root@localhost ~]# ll anaconda-ks.cfg anaconda-ks1.cfg > ceu 2>err
把正确的和错误的放到一个文件
[root@localhost ~]# ll anaconda-ks.cfg anaconda-ks1.cfg &>file4
[root@localhost ~]# ll anaconda-ks.cfg anaconda-ks1.cfg >file5 2>&1
[root@localhost ~]# ll anaconda-ks.cfg anaconda-ks1.cfg >>test5 2>&1
标准输入到文件file3
[root@localhost ~]# cat > file3 <<EOF
123
abc
EOF
`
扩展:
echo $? :判断上一条命令执行是否成功,若成功,返回0;失败,返回非0;
脚本
#!/bin/bash
IP='192.168.42.145'
ping -c1 $IP &>/dev/null
if [ $? -eq 0 ]
then
echo 'tong,,,'
fi
执行脚本: sh+ 脚本名称
- 8特殊符号,通配符
“|”:把上个命令的执行结果交给了下一个命令继续处理
[root@localhost ~]# ll |grep err
[root@localhost ~]# ip a |grep inet
“tee”把过滤的结果打印到文件中
[root@localhost ~]# ip a |grep inet| tee test4
两个点 代表上级目录
"."当前目录
“;”多条命令的分割
``把内容还原成命令
[root@localhost test]# a=ls
;echo $a
“星” * :表示匹配所有
[root@localhost ~]# ls te*
“?” 匹配单个任意符
[root@localhost ~]# ll te?
- 1
系统管理的常用命令
ls
ls -a 显示所有的隐藏文件及目录,ls -A 显示影藏文件
ls -l ===> ll
ls : 显示是链接文件及链接路径,
ls -L,显示的是链接路径下的真实文件
2. 2
相对路径,绝对路径,pwd
用绝对路径,表示index.html ;/root/test/app/index.html
用相对路径,表示index.html ;app/index.html
pwd :显示的是当前路径
pwd -P 显示 链接文件的真实路径
2. 3
[root@localhost ~]# cd ~ 切换到用户的家目录
[root@localhost var]# cd - 切换到上一次文件所在的路径。
[root@localhost mail]# cd ../ 切换到上曾目录
[root@localhost mail]# cd ../../ 切换到上上层目录
3
data
时钟显示格式的拼接:
[root@localhost ~]# date "+%Y-%m-%d %H:%M:%S 明确每个参数的含义。
修改系统时间
[root@localhost ~]# date -s 17:54:30
显示时区:
[root@localhost ~]# date +%Z
扩展:
#!/bin/bash
time=date "+%H"
echo $time.log
4.
wget
[root@localhost ~]# free
[root@localhost src]# wget -b -c http://mirrors.sohu.com/centos/7.6.1810/extras/x86_64/Packages/ansible-2.4.2.0-2.el7.noarch.rpm /usr/local/src/
[root@localhost src]# wget -P /usr/local/src/ http://mirrors.sohu.com/centos/7.6.1810/extras/x86_64/Packages/ansible-2.4.2.0-2.el7.noarch.rpm
-b 后台运行
-c端点续传
-P 指定下载路径
uname
[root@localhost src]# uname -a 查看系统内核信息
[root@localhost src]# uname -r
6.
free
[root@localhost src]# free
[root@localhost src]# free -m
[root@localhost src]# free -h
mem:内存
swap: 在磁盘上格式化的一个和内存格式相同的分区
buff:数据读的缓存空间
cache:数据写的缓存空间
Reboot 重启
shutdown -h now 关机