1.shell 解释器
[root@kvm ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
[root@kvm ~]#
[root@kvm ~]# echo $SHELL
/bin/bash
# 指定解释器运行脚本
[root@kvm ckh]# cat demo.sh
#!/bin/bash
if [ 3 -gt 2 -a 3 -lt 1 ];then
echo "真"
else
echo "假"
fi
[root@kvm ckh]#
[root@kvm ckh]# bash demo.sh
假
[root@kvm ckh]#
[root@kvm ckh]# /bin/bash demo.sh
假
[root@kvm ckh]#
[root@kvm ckh]# /bin/sh demo.sh
假
# 查看root当前解释器
[root@kvm ckh]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
2.快捷键
Ctrl + A 将光标移至行首
Ctrl + E 将光标移至行尾
Ctrl + C 终止
# Ctrl + D 终止输入
# Ctrl + M 回车
Ctrl + U 删除光标至行首所有内容
Ctrl + L 清屏
Ctrl + W 删除光标前一个单词(空格分割)
# Ctrl + S 挂起,冻结终端
# Ctrl + Q 解除冻结终端
Alt + . 使用前命令的最后一个单词
3.查看执行过的历史命令
[root@kvm ckh]# history | head -10
1 hostnamectl set-hostname kvm
2 exit
3 ifconfig
4 lsblk
5 ls
6 exit
7 abc=""
8 [ -z $abc ] && echo "空" || echo "非空"
9 [ ! -z $abc ] && echo "空" || echo "非空"
10 ls
# 存放文件
[root@kvm ~]# ls
ckh createVM.sh
[root@kvm ~]#
[root@kvm ~]# ls -a
. .bash_history .bash_profile .cache createVM.sh .lesshst .python_history .tcshrc .wget-hsts
.. .bash_logout .bashrc ckh .cshrc .pip .ssh .viminfo
[root@kvm ~]#
[root@kvm ~]# head -10 .bash_history
hostnamectl set-hostname kvm
exit
ifconfig
lsblk
ls
exit
abc=""
[ -z $abc ] && echo "空" || echo "非空"
[ ! -z $abc ] && echo "空" || echo "非空"
ls
# 修改存放历史指令的数量
[root@kvm ~]# cat /etc/profile | grep HISTSIZE
HISTSIZE=1000
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
# 通过序号执行历史命令
483 echo 123
484 echo 456
485 ls
486 history
[root@kvm ~]# !483
echo 123
123
[root@kvm ~]# !485
ls
ckh createVM.sh
# 临时删除历时记录
[root@kvm ~]# history -c
[root@kvm ~]#
[root@kvm ~]# history
1 history
# 永久删除历时记录
vim .bash_history # 清空该文件
4.定义自己的命令 /root/.bashrc
[root@kvm ~]# ls -a
. .bash_history .bash_profile .cache createVM.sh .lesshst .python_history .tcshrc .wget-hsts
.. .bash_logout .bashrc ckh .cshrc .pip .ssh .viminfo
[root@kvm ~]# cat .bashrc | grep ckm
alias ckm='ls /var/lib/libvirt/images'
[root@kvm ~]#
[root@kvm ~]# source .bashrc
[root@kvm ~]#
[root@kvm ~]# ckm
disk1.img stream9.qcow2 vm2.img
# 每一个用户都有 .bashrc, 添加自定义命令,只对当前用户生效
[root@kvm ~]# useradd admin
[root@kvm ~]# cd /home/
[root@kvm home]# ls
admin
[root@kvm home]# cd admin/
[root@kvm admin]# ls -a
. .. .bash_logout .bash_profile .bashrc
[root@kvm admin]#
[root@kvm admin]# pwd
/home/admin
[root@kvm admin]#
[root@kvm admin]# cd # 不要在当前目录删除当前目录
[root@kvm ~]# userdel -r admin
[root@kvm ~]#
[root@kvm ~]# ls /home/
[root@kvm ~]#
5.重定向
类型 设备文件 文件描述号 默认设备
标准输入 /dev/stdin 0 键盘
标准输出 /dev/stdout 1 显示器
标准错误输出 /dev/stderr 2 显示器
[root@kvm ckh]# ls
err.log
[root@kvm ckh]# cat err.log
[root@kvm ckh]#
[root@kvm ckh]# which python
/usr/bin/python
[root@kvm ckh]#
[root@kvm ckh]# which abcd
/usr/bin/which: no abcd in (/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/go/bin:/go/bin)
[root@kvm ckh]#
[root@kvm ckh]# which python >> err.log
[root@kvm ckh]#
[root@kvm ckh]# cat err.log
/usr/bin/python
[root@kvm ckh]#
[root@kvm ckh]# which abcd >>err.log # 直接输出到屏幕了
/usr/bin/which: no abcd in (/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/go/bin:/go/bin)
[root@kvm ckh]#
[root@kvm ckh]# cat err.log # 错误的信息没有进来
/usr/bin/python
# 重定向错误到正确
[root@kvm ckh]# which abcd >>err.log 2>&1
[root@kvm ckh]#
[root@kvm ckh]# cat err.log
/usr/bin/python
/usr/bin/which: no abcd in (/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/go/bin:/go/bin)
6.取消定义的变量
[root@kvm ckh]# abc="123"
[root@kvm ckh]#
[root@kvm ckh]# echo $abc
123
[root@kvm ckh]#
[root@kvm ckh]# unset abc
[root@kvm ckh]#
[root@kvm ckh]# echo $abc
7.字符串追加
[root@kvm ckh]# abc="123"
[root@kvm ckh]#
[root@kvm ckh]# abc=$abc"456"
[root@kvm ckh]#
[root@kvm ckh]# echo $abc
123456
8.查看环境变量都有哪些
[root@kvm ckh]# echo $SHELL
/bin/bash
[root@kvm ckh]#
[root@kvm ckh]# echo $UID
0
[root@kvm ckh]# env
SHELL=/bin/bash
HISTCONTROL=ignoredups
HISTSIZE=1000
HOSTNAME=kvm
PWD=/root/ckh
LOGNAME=root
XDG_SESSION_TYPE=tty
MOTD_SHOWN=pam
HOME=/root
9.小数运算
1.bc进入交互环境计算加减乘除
2.bc非交互式运算
echo 'scale=4;12.345+67.891011' | bc
echo 'scale=2;12.34-56.78' | bc
echo 'scale=3;12.345*56.789' | bc
echo 'scale=1;12.345/56.789' |bc
小数的比较: > >= < <= = !=