Linux学习——Shell基础
来源:互联网 发布:java 创建服务 编辑:程序博客网 时间:2024/06/06 09:03
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 shellecho -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
- Linux学习——Shell基础
- 【Linux学习笔记】Shell 基础(1) — Shell简介
- Linux基础 Shell基础学习
- Linux Bash Shell学习(七):shell编程基础——运行Shell脚本、function
- 鸟哥Linux学习之——bash shell基础
- Linux Bash Shell学习(八):shell编程基础——string操作
- 【Linux学习笔记】Shell 基础(3) — Shell流程控制语句
- Linux Shell 基础学习笔记
- Linux shell脚本基础学习
- Linux shell脚本基础学习
- linux学习之shell基础
- Linux脚本语言shell基础学习
- Linux学习之Shell基础
- Linux学习笔记-------shell基础
- Linux shell脚本基础学习
- Linux学习之shell基础
- Linux学习(Shell基础)
- Linux学习之shell基础
- c#3 方法参数
- Android6.0运行时权限,拒绝了权限还返回获取成功
- 使用AndroidStudio 导出Jar包
- [luogu2307]迷宫(并查集)
- jQuery ajaxError参数 详细整理
- Linux学习——Shell基础
- 用JGroups实现一个分布式任务分发系统
- YYCache初学
- Eclipse和java jdk 环境搭建及第一个java程序
- Android 软键盘事件imeOptions响应
- Java集合框架
- seo教程:网站SEO优化的七大基本要点!
- 设置input 的 checkbox样式
- java.text.ParseException: Unparseable date: