Shell入门基础
2016-07-28 17:07
295 查看
Shell基础
一、Shell概述
Shell是命令行解释器
Shell是依赖Ascii码表翻译成二进制
用户--->Shell--->计算机内核
计算机内核---> Shell ---> 用户
Shell还是功能强大的编程语言
分类
Bourne Shell
C Shell
这两种语法彼此不兼容。
Bourne家族主要包括sh、ksh、Bash、psh、zsh
C家族主要包括:csh、tcsh
linux 执行的是Bash
echo $SHELL 命令 #当前计算机执行的shell
vi /etc/shells #查看计算机兼容的shell
二、脚本执行方式
1、echo输出命令
echo "hello world"
echo "hello\b world"
echo "hello\b\t\n world"
echo "\x68\t\x65\t\x6c\n\x6c\t\x6f"
echo -e "南海是中国的"
echo -e "\e[1;31m 南海是中国的\e[0m"
2.第一个脚本
vi hello.sh
#!/bin/bash
#The first program
echo -e "\e[1;31m 天上掉下来一个林妹妹\e[0m"
3. chmod 755 hello.sh #赋予权限
./hello.sh #执行脚本
bash hello.sh
三、Bash的基本功能
1、命令别名与快捷键
alias 查看系统的中所有的命令别名
alias ls='ls --color=never'
alias ls='ls --color=auto'
alias vi='vim' #重启后无效
vi ~/.bashrc #环境变量配置文件中写入 别名设置命令
unalias vi
常用的快捷键
Ctrl + c 强制退出命令
Ctrl + l 清屏
Ctrl + u 删除到行首
Ctrl + a 光标移到命令行首
Ctrl + e 光标移到命令行尾
Ctrl + z 把命令放入后台
Ctrl + r 在历史命令中搜索
2、历史命令
history [选项] [历史命令保存文件]
选项
-c:清空历史命令
-w:把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
history
cat /home/.bash_history
history -w
history -c
历史命令默认保存的是1000条
vi /etc/profile 修改默认保存的条数
history
!n 执行第n条命令
!! 执行上一次命令
!字串 调用最后一个字串开头的命令
命令补全
tab键
3、输出重定向
标准输入输出
设备名 设备文件名 文件描述符 类型
键盘 /dev/stdin 0 标准输入
显示器 /dev/sdtout 1 标准输出
显示器 /dev/sdterr 2 标准错误输出
标准输出重定向
命令 > 文件 覆盖到文件
命令 >> 文件 追加都文件
标准错误输出重定向
错误命令 2>文件 覆盖到文件
错误命令 2>>文件 追加到文件
ifconfig > test.log
ls >> test.log
lschang 2>>test.log
正确或错误信息都写到文件的命令:
命令 > 文件 2>&1
命令 >> 文件 2>&1
命令 &>文件
命令 &>>文件
ifconfig >> test.log 2>&1
ifconfig laoshi >> test.log 2>&1
ls &>test.log
ls dhhf &>test.log
cat xdy >> access.log 2>>error.log #正确命令日志保存到前者,错误日志保存到后者
输入重定向
wc [选项][文件]
选项
-c :统计多少行
-w :统计多少单词
-l :统计多少字符
wc access.log
4、多命令顺序执行
; 命令1;命令2 #顺序执行
&& 命令1&&命令2 #按逻辑且执行
|| 命令1||命令2 #按逻辑或执行
date;ls;cd/etc/;pwd
date;tar -zcvf test.tar.gz;date
ls && echo yes || echo no #检测命令是否正确
管道符
格式:命令1 | 命令2
ps -ef | grep java
ls -l /etc | more
netstat -an | grep ESTABLISHED | wc -l
5、Shell中特殊符号
通配符
?匹配一个字符
* 匹配多个字符
[] 匹配中括号中任意一个字符
[-] 匹配中括号中任意的字符串
[0-9] 匹配中0到9中的一个数字
[^] 逻辑非
也就是正则表达式
其他特殊字符了解下
''
""
`` 反引号
$()
#
$
\ 转义符
ls c*
一、Shell概述
Shell是命令行解释器
Shell是依赖Ascii码表翻译成二进制
用户--->Shell--->计算机内核
计算机内核---> Shell ---> 用户
Shell还是功能强大的编程语言
分类
Bourne Shell
C Shell
这两种语法彼此不兼容。
Bourne家族主要包括sh、ksh、Bash、psh、zsh
C家族主要包括:csh、tcsh
linux 执行的是Bash
echo $SHELL 命令 #当前计算机执行的shell
vi /etc/shells #查看计算机兼容的shell
二、脚本执行方式
1、echo输出命令
echo "hello world"
echo "hello\b world"
echo "hello\b\t\n world"
echo "\x68\t\x65\t\x6c\n\x6c\t\x6f"
echo -e "南海是中国的"
echo -e "\e[1;31m 南海是中国的\e[0m"
2.第一个脚本
vi hello.sh
#!/bin/bash
#The first program
echo -e "\e[1;31m 天上掉下来一个林妹妹\e[0m"
3. chmod 755 hello.sh #赋予权限
./hello.sh #执行脚本
bash hello.sh
三、Bash的基本功能
1、命令别名与快捷键
alias 查看系统的中所有的命令别名
alias ls='ls --color=never'
alias ls='ls --color=auto'
alias vi='vim' #重启后无效
vi ~/.bashrc #环境变量配置文件中写入 别名设置命令
unalias vi
常用的快捷键
Ctrl + c 强制退出命令
Ctrl + l 清屏
Ctrl + u 删除到行首
Ctrl + a 光标移到命令行首
Ctrl + e 光标移到命令行尾
Ctrl + z 把命令放入后台
Ctrl + r 在历史命令中搜索
2、历史命令
history [选项] [历史命令保存文件]
选项
-c:清空历史命令
-w:把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
history
cat /home/.bash_history
history -w
history -c
历史命令默认保存的是1000条
vi /etc/profile 修改默认保存的条数
history
!n 执行第n条命令
!! 执行上一次命令
!字串 调用最后一个字串开头的命令
命令补全
tab键
3、输出重定向
标准输入输出
设备名 设备文件名 文件描述符 类型
键盘 /dev/stdin 0 标准输入
显示器 /dev/sdtout 1 标准输出
显示器 /dev/sdterr 2 标准错误输出
标准输出重定向
命令 > 文件 覆盖到文件
命令 >> 文件 追加都文件
标准错误输出重定向
错误命令 2>文件 覆盖到文件
错误命令 2>>文件 追加到文件
ifconfig > test.log
ls >> test.log
lschang 2>>test.log
正确或错误信息都写到文件的命令:
命令 > 文件 2>&1
命令 >> 文件 2>&1
命令 &>文件
命令 &>>文件
ifconfig >> test.log 2>&1
ifconfig laoshi >> test.log 2>&1
ls &>test.log
ls dhhf &>test.log
cat xdy >> access.log 2>>error.log #正确命令日志保存到前者,错误日志保存到后者
输入重定向
wc [选项][文件]
选项
-c :统计多少行
-w :统计多少单词
-l :统计多少字符
wc access.log
4、多命令顺序执行
; 命令1;命令2 #顺序执行
&& 命令1&&命令2 #按逻辑且执行
|| 命令1||命令2 #按逻辑或执行
date;ls;cd/etc/;pwd
date;tar -zcvf test.tar.gz;date
ls && echo yes || echo no #检测命令是否正确
管道符
格式:命令1 | 命令2
ps -ef | grep java
ls -l /etc | more
netstat -an | grep ESTABLISHED | wc -l
5、Shell中特殊符号
通配符
?匹配一个字符
* 匹配多个字符
[] 匹配中括号中任意一个字符
[-] 匹配中括号中任意的字符串
[0-9] 匹配中0到9中的一个数字
[^] 逻辑非
也就是正则表达式
其他特殊字符了解下
''
""
`` 反引号
$()
#
$
\ 转义符
ls c*
相关文章推荐
- xShell终端调用VBS脚本 使用方法说明
- shell中export理解误区
- shell脚本常用
- hive 脚本接受参数
- matlab /bin/bash: ffmpeg: command not found 解决办法
- 汉诺塔 游戏开发shell版本
- Shell中的bash环境
- USB有时adb shell连不上设备
- USB有时adb shell连不上设备
- shell循环遍历多条字符串
- Jupyter notebook 集成 bash kernel
- shell 中if的使用
- -bash: /bin/cp: 参数列表过长 的解决办法
- 刚学习shell,碰到问题.执行时总出错:unexpected operator
- 为了 SHELL脚本开发汉诺塔游戏 部分草稿 shell建立二维数组并打印
- Shell_Find
- iptables防火墙测试
- shell编程sed命令使用详解
- linux bash shell 特殊字符大全
- spark-shell的学习