Shell - 基础篇

一、Shell是什么

Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至时编写一些程序。Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令
Shell - 基础篇

 

二、Shell分类

Bourne Shell:主文件名为sh
C Shell:BSD版的Unix
两种语法类型有Bourne和C,彼此不兼容。Bourne家族主要包括sh,ksh,Bash(Linux标准Shell),psh,zsh;C家族主要包括:csh,tcsh
echo $SHELL 查看Shell
Bash:Bash与sh兼容,现在使用的Linux就是使用Bash作为用户的基本Shell
vi /etc/shells

 

三、echo输出命令

格式:echo [选项] [输出内容]
选项: -e:支持反斜线控制的字符转换
Shell - 基础篇
echo -e "\e[1;31m嫁人就要嫁凤姐\e[0m"
#输出颜色 \e[1;##m - 开启颜色显示; \e[0m - 关闭颜色显示
#30m=黑色,31m=红色,32m=绿色,33m=黄色
#34m=蓝色,35m=洋红,36m=青色,37m=白色

 

四、脚本执行

方法1:赋予执行权限,直接运行
chmod 755 hello.sh
./hello.sh(或者绝对路径执行 /root/hello.sh)

方法2:通过Bash调用执行脚本
bash hello.sh

Ps:
#!/bin/Bash
不是注释,它标称下面的内容是linux的标准脚本程序
如果该脚本使用纯shell语句完成,不加#!/bin/Bash,运行没问题
但,脚本调用了其他语言,就会报错

五、Bash的基本功能——使用别名
****使用别名****
alias--查看系统当中默认已经生效的别名
alias ls = 'ls --color=never'--设定别名(临时生效,重启或重登录后失效)
vi ~/.bashrc(不止一个环境变量文件) --写入环境变量配置文件(用来更新用户环境变量~代表用户家目录)
vi /root/.bashrc --增加alias ls = 'ls --color=never’(系统再次重启后永久生效)
source .bashrc--使当前环境变量设置生效(不需要系统再次重启后永久生效)
unalias ls -- 删除别名,临时生效

****命令生效顺序****
第一顺位执行绝对路径或者相对路径的命令
第二顺位执行别名
第三顺位执行Bash的内部命令
第四顺位执行按照$PATH环境变量设置定义的目录顺序的第一个命令

 

六、Bash的基本功能——快捷键

****快捷键****
ctrl + c 强制终止
ctrl + l 清屏相当于clear
ctrl + a 光标快速回到行首
ctrl + e 光标快速去到行尾
ctrl + u 从光标所在位置删除到行首
ctrl + z 把命令放入后台--这个命令很谨慎使用
ctrl + r 历史命令搜索

 

七、Bash的基本功能——历史命令

history [选项] [历史命令保存文件]
-c 清空历史命令
-w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
#默认保存1000条
HISTSIZE=1000
#vi /etc/profile 环境变量配置文件

基本调用
上下箭头来重复调用
!n 来执行第n条历史命令
!! 重复执行上一条命令
!字符串 重复执行后一个该串开头的命令

Tab键
进行命令(环境变量)和目录补全(操作路径)
如果只有唯一的命令,则按一次即可,如果没反应说明有多个,可以再按一次Tab;要么就没有。

 

八、Bash的基本功能——输出重定向

标准输入输出:
(设备):(设备文件名)、(文件描述符)、(类型)
键盘:/dev/stdin、0、标准输入
显示器:/dev/sdtout、1、标准输出
显示器:/dev/sdterr、2、标准错误输出

输出重定向1(不推荐)
命令 > 文件 “覆盖方式把命令的正确输出 输出到指定文件或设备中”
命令 >> 文件 “追加方式把命令的正确输出 输出到指定文件或设备中”
命令 2>(2>>)文件 “覆盖(追加)方式把命令的错误输出 输出到指定文件或设备中”注意带2的错误输出后面不能有空格

输出重定向2(推荐)
Shell - 基础篇

输出重定向3
命令 &> /dev/null 将命令的结果丢入null(作用类似于垃圾箱)中只执行,不显示

输出重定向4(不常用)
wc 执行后 输入 ctrl+d结束 会统计输入行数 单词数 字母数
wc [选项] [文件名] -c字节数 -l行数 -w单词数
wc < 文件名 用文件的内容作为输入 
wc << 标记 统计标记到标记再次出现之间的字符

 

九、Bash的基本功能——管道符

Shell - 基础篇
注意&& echo yes || echo no 顺序不能颠倒,不然命令出错的时候会同时输出no yes

"|" 管道符 命令1|命令2 //命令1正确的结果作为命令2的操作对象
例如:
ls -l > /etc/ | more //用于分页显示命令执行结果
netstat -an | grep ESTABLISHED | wc -l //用于查看当前连接本机的客户端 并 统计客户端数量

 

十、Bash的基本功能——通配符

Shell - 基础篇

Shell - 基础篇

 

附:

  1. Centos如何设置IP地址,LINUX怎么修改IP地址:https://jingyan.baidu.com/article/e4d08ffdd417660fd3f60d70.html
  2. 待更新...