Shell——基础

查看使用的shell种类

echo $SHELL

centos ubuntu使用的bash

echo输出命令

echo打印到屏幕上。

echo [选项] [输出内容]
选项: -e:支持反斜线控制的字符转换
控制字符 作用
\a 输出警告音
\b 退格键,向左删除键
\n 换行符
\r 回车符
\t 制表符,Tab键
\v 垂直制表符
\0??? 按照八进制ASCII码表输出字符
\x?? 按照十六进制ASCII码表输出字符
echo "hello world"

[root@bogon ~]# echo -e "hello\b"
hello
[root@bogon ~]# echo -e "hell o\b"
hell o
[root@bogon ~]# echo -e "hell o\b a "
hell  a 
[root@bogon ~]# echo -e "\x68\x65\x6c\x6c\x6f"
hello

输出颜色

# 30m:黑色 31m:红色 32m:绿色 33m:黄色 34m:蓝色 35m:洋红 36m:青色 37m:白色
echo -e "\e[1;31m哈哈哈\e[0m"

第一个脚本

vi hello.sh

然后编辑脚本

# !/bin/bash
# 这是第一个shell脚本

echo -e ”\e[1;34m 天上掉下个猪八戒\e[0m“

脚本执行

方法一:赋予执行权限,直接运行

chmod 755 hello.sh
./hello.sh

方法二:通过bash调用执行脚本

bash hello.sh

命名别名

# 查看系统中所有的命令别名
alias
# 设定命令别名,重启计算机之后失效
alias 别名 = '原命令'

alias ls = 'ls --color=never' 

# 别名永久生效与删除别名
# 写入环境变量配置文件
vi ~/.bashrc
# 删除别名
unalis 别名(临时删除)

命令生效顺序:

  • 第一顺位执行用绝对路径或相对路径执行的命令
  • 第二顺位执行别名
  • 第三顺位执行bash的内部命令
  • 第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令

常用快捷键

快捷键 作用
ctrl+c 强制终止当前命令
ctrl+l 清屏
ctrl+a 将光标移动到行首
ctrl+e 将光标移动到行尾
ctrl+u 将光标所在位置删除到行首
ctrl+z 把命令放入后台
ctrl+r 在历史命令中搜索

历史命令

查看历史命令

history [选项] [历史命令保存文件]
选项:
-c:清空历史命令
-w:将缓存中的历史命令写入历史命令保存文件~/.bash_history

历史默认命令会保存1000条,可以在环境变量配置文件/etc/profile中进行修改(HISZIZE字段)

历史命令的调用

  • 使用上下箭头调用以前的历史命令
  • 使用"!n" 重复执行第n条历史命令
  • 使用"!!"重复执行上一条命令
  • 使用"!字串" 重复执行最后一条以该字串开头的命令

命令与文件补全

在bash中,命令与文件补全使用tab键,一次或两次。

输出输入重定向

标准输入输出

设备 设备文件名 文件描述符 类型
键盘 /dev/stdin 0 标准输入
显示器 /dev/stdout/1 标准输出
显示器 /dev/stderr/2 标准错误输出

输出重定向

类型 符号 作用
标准输出重定向 命令 > 文件 以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中
标准输出重定向 命令 >> 文件 以追加的方式,把命令的正确输出输出到指定的文件或设备当中
标准错误输出重定向 错误命令 2>文件 以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中
标准错误输出重定向 错误命令 2>>文件 以追加的方式,把命令的错误输出输出到指定的文件或设备当中
正确输出和错误输出同时保存 命令>文件 2>&1 以覆盖的方式,把正确输出和错误输出都保存在同一个文件当中
正确输出和错误输出同时保存 命令>>文件 2>&1 以追加的方式,把正确输出和错误输出都保存在同一个文件当中
正确输出和错误输出同时保存 命令&>文件 以覆盖的方式,把正确输出和错误输出都保存在同一个文件当中
正确输出和错误输出同时保存 命令&>>文件 以追加的方式,把正确输出和错误输出都保存在同一个文件当中
正确输出和错误输出同时保存 命令>>文件1 2>>文件2 把正确输出追加到文件1中,把错误输出追加到文件

2中

输入重定向

命令<文件,把文件作为命令的输入
命令<<标识符,把标识符之前的内容作为命令的输入

wc [选项] [文件名]
选项:
-c:统计字节数
-w:统计单词数
-l:统计行数

wc本身统计行数,单词数,字节数,ctrl+d

多命令顺序执行

多命令执行符 格式 作用
; 命令1;命令2 多个命令顺序执行,命令之间没有任何逻辑联系
&& 命令1&&命令2 逻辑与
当命令1执行正确,命令2执行
当命令1执行不正确,命令2不执行
命令1 命令2 逻辑或
当命令1执行正确,命令2不执行
当命令1执行不正确,命令2执行
# 命令正确执行打印yes,错误执行打印no
命令 && echo yse || echo no
ls && echo yes || echo no

管道符

# 命令1的正确输出作为命令2的操作对象
命令1 | 命令2

ll -a /etc/ | more
netstat -an |grep ESTABLISHED |wc -l

通配符

?,*,[abc],[0-9],[^0-9](非数字)
符号 作用
'' 单引号。单引号中的所有特殊符号都没有含义
"" 双引号。双引号中特殊符号都没有特殊含义,"$","`",""是例外
`` 反引号。反引号括起来的内容是系统命令,在bash中会先执行它。作用同$()
$() 引用系统命令
# 注释
$ 用于调用变量的值,格式为 $name
转义符。跟在\之后的特殊符号将失去特殊意义,变为普通字符
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一节 Shell概述 1.Shell是什么 Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送...
    littlexjing阅读 1,994评论 0 1
  • 一、Shell概述 1. Shell是什么? Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送...
    鲁克巴克诗阅读 668评论 0 3
  • 概述 首先,咱们来了解一下,什么是Shell。操作系统内核给我们提供了各种接口,同时也提供了各种用户层的库,理论上...
    keysaim阅读 1,429评论 0 0
  • Shell是一个"命令行解释器",它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以...
    tf_dejs阅读 435评论 0 1
  • 熬着夜等你 手机刷了又刷 纸张翻了又翻 你没有回来 不等你 又能怎样 不是有女儿 不是女儿的陪伴 我的笑都是我自己...
    湍河故事阅读 196评论 4 2