大家好,又见面了,我是全栈君。
1 shell概述
-
Shell 是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动,挂起,停止甚至编写一些程序。
-
Shell 还是一个功能强大的编程,易编写、易调试、灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。
-
用户通过shell向Linux内核发指令,Linux内核通过shell将返回内容显示给用户。
B Shell 和 C Shell , Linux中标准的shell 为bash。
echo $SHELL :当前系统shell
[root@localhost shell]# echo $SHELL
/bin/bash
2 脚本执行方式
(1)echo 输出命令
echo [选项] [输出内容]
注:输出的内容中间有空格,需要加”“双引号,使用 ! 会报错。
(2)第一个脚本
#!/bin/bash 这句中的#不是注释,必须要写。
#!/bin/bash #这个必须是第一行,其他行会认为是注释
#This is my first shell
echo -e "\e[1;30mHello World\e[0m"
echo -e "\e[1;35m good do it\e[0m"
注: \e[1; 开启颜色 , \e[0m 结束开启颜色
(3)脚本写完:脚本执行
1.赋予执行权限,直接运行
chmod 755 hello.sh # chmod u+x hello.sh
./hello.sh
2.通过Bash 调用执行脚本
bash hello.sh
sh hello.sh #sh 是bash的软连接
重要:虽然下面的不是必需的,但是优秀来源于规范和好的习惯!
(1):Shell脚本的第一行是指定的脚本解释器。(虽然有些Linux系统不写也可以执行,但是规范起见,还是写为好)
#!/bin/bash
或
#!/bin/sh
(2)Shell脚本开头注释(注释内容不要使用中文)
#Date 20:13:14 2017-07-01
#Author dufy
#Description This is a test shell
#Version 1.0
3 别名与快捷键
(1)别名:命令别名 == 人的小名
查看别名: alians
设定别名: alias 别名='原命令' #重启失效
vi ~/.bashrc # ~:家目录
source .bashrc
删除别名:unalias 别名 #临时生效,永久生效需删除配置文件内容
命令生效顺序:
1.绝对路径或相对路径
2.别名
注:别名不要和系统命令重名!
(2)快捷键
Ctrl + c # 强制终止当前命令
Ctrl + l # 清屏
Ctrl + a # 光标移动到命令行首
Ctrl + e # 光标移动到命令行尾
Ctrl + u # 从光标所在位置删除到行首
4 历史命令
history #查看执行过的历史命令
/etc/profile -- historysize #修改历史记录的数量
5 输出重定向
输出重定向:从原来的输出到屏幕现在输出到文件。
> 输出,并覆盖
>> 输出,追加
例子;
ls > test.log
ll > test.log #覆盖 test.log
ifconfig >> test.log #追加内容到test.log
6 管道符
(1)多命令顺序执行
> ; 顺序 # 命令1 ; 命令2 ; 命名3
场景例子:
a: date 执行命令 date # 查看执行时间
b: 多个命令执行,中间某个命令报错,还会继续执行
> && 逻辑与 #命令1 && 命令2
命令1错误,命令2不执行
> || 逻辑或 #命令1 || 命令2
-- 命令1正确执行。命令2不执行
ls && echo yes || echo no
命令1正确 :yes
命令1错误 : no
(2)管道符
命令格式: 命令1 | 命令2
#命令1的正确输出作为命令2的操作对象
#ls -l /etc | more
# netstat -an | grep 8080
7 通配符
? 匹配一个任意字符
* 匹配0个或任意多个任意字符
[] 匹配中括号中任意一个字符
[-] 配置中括号中任意一个字符,-代表一个范围
[^] 逻辑非,表示匹配不是中括号内的一个字符
'' 单引号,单引号中所有的特殊字符没有特殊含义
"" 双引号,特殊字符如$ 有特殊含义
`` 反引号, 括起来的是系统命令, 和$()使用一样
$()
# shell 中注释
$ 用于调用变量的值
\ 转义符 ,使用\$ 使$失去含义
欢迎访问我的csdn博客,我们一同成长!
“不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!”
博客首页:http://blog.csdn.net/u010648555
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/121156.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...