随笔 - 55  文章 - 0  评论 - 0  阅读 - 1047

25_shell概述

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
小数的比较: >  >=  <  <= =  !=
posted on   鸟叔书  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示