Shell概述1
Shell概述1
脚本文件内容(vim ex2)
#!/bin/bash
#If no arguments,then listing the current directory.
#Otherwise,listing each subdirectory.
if test $#=0
then ls .
else
for i
do
ls -l $i | grep '^d'
done
fi
#如果Shell脚本执行过程中没有参数,就列出当前工作目录的内容,如果有参数的话,就遍历参数,列出指定目录下的所有文件内容。
#后跟的内容为注释,#!/bin/bash例外,它表示当前脚本要要/bin/bash解释执行。
test后是测试条件,在Shell脚本中以$符号开始后面跟着的字符串通常都会被当做变量处理,#是一个特殊字符,一般表示数量,$#表示这个脚本执行过程中的参数个数。
无参数执行: ./ex2
有参数执行: /ex2 . ..
Shell预先定义的特殊变量及其含义
- $# 命令行上参数的个数,但不包含shell脚本名
- $? 上一条命令执行后的返回值
- $$ 当前进程的进程号
- $! 上一个后台命令对应的进程号
- $* 表示在命令行中实际给出的所有实参字符串
- $@ 它与$*基本功能相同
特殊字符
单引号
- 单引号里的都当做普通字符处理
双引号
除了"`","$","\" 外都当做普通字符处理;
"`"为命令替换(英文模式下TAB上面那个键),倒引号括起来的字符串会被shell解释为命令行
"$"为变量替换
"\"为转义
输入/输出重定向
输入重定向
bash < ex2 (用bash执行ex2命令)
输出重定向
who > w.txt(将who命令的结果直接输入到w.txt,如果w.txt之前存在内容,则会被覆盖)
who >> w.txt(将who命令的结果输入到w.txt原有内容之后)
注释
- 通常#后跟的即为注释
管道线
- 使用"|",管道线之前的命令结果作为管道线之后命令的输入
例:cat w.txt | wc -l(查看w.txt的内容并统计行数)
- 使用"|",管道线之前的命令结果作为管道线之后命令的输入
后台命令
- 使用"&",在需要后台执行的命令后跟&即可
例:apt-get update&
- 使用"&",在需要后台执行的命令后跟&即可
Shell概述1的更多相关文章
- shell概述与echo命令
一.Shell概述 1.什么是shell? 由此可见shell是用户与系统进行交互的接口,通过执行各种命令来完成时间处理与调度. 2.shell分类 Shell类别 易学性 可移植性 编辑性 快捷性 ...
- Shell概述
一,Shell原理
- Linux系列教程(二十)——Linux的shell概述以及如何执行脚本
从这篇博客开始,我们将进入Linux的shell脚本的学习,这对于Linux学习爱好者而言是特别重要的一节,也是特别有意思的一节,shell 脚本就像我们知道的Java,php类似的编程语言一样,通过 ...
- HoloLens开发手记 - HoloLens shell概述 HoloLens shell overview
使用HoloLens时,shell是由你周围的世界和来自系统的全息图像构成.我们将这种空间成为混合世界(mixed world). shell包含了一个可以让你将全息图像和应用放置在世界中的开始菜单( ...
- 【第一章】Shell 概述
一.什么是Shell? shell是一个命令解释器,它不仅包含大量的命令以实现操作系统的对话,还可以实现定义变量.条件判断.循环控制.函数调用等功能. 作用:解释执行用户输入的命令及程序等. 从键盘输 ...
- Shell 概述、截取字符操作等
Shell 是用C语言编写的程序,便于用户与Linux内核系统进行交互. Linux的Shell种类众多,常见的有: Bourne Again Shell (/bin/bash) Bourne She ...
- Linux学习笔记 (八)Shell概述
一.什么是Shell? Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动,挂起,停止甚至是编写一些程序.Shell还是一 ...
- hbase shell概述
hbase shell-general(常规指令):http://www.cnblogs.com/husky/p/6374867.html hbase shell-ddl(表定义指令):http:// ...
- Shell 01 shell概述
1.查看shells:/etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin / ...
随机推荐
- [NOI 2020 Online] 入门组T1 文具采购(洛谷 P6188)题解
原题传送门 题目部分:(来自于考试题面,经整理) [题目描述] 小明的班上共有 n 元班费,同学们准备使用班费集体购买 3 种物品: 1.圆规,每个 7 元. 2.笔,每支 4 元. 3.笔记本,每本 ...
- 补一下昨天的博客 J - Sabotage 网络流
题目链接:https://vjudge.net/contest/299467#problem/J 这个题目是一个裸的最小割问题,就不多赘述了. #include <cstdio> #inc ...
- Linux时间的相关的操作
时间(修改时区,修改时间,同步网络时间) 查看当前系统时间 date 修改时区 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 修改当前系统时间 ...
- python学习之如何一次性输出多个变量的值
如果要输出多个结果 ,中间使用逗号隔开,且引用变量为%(变量1,变量2,变量3)例如
- 龙贝格算法 MATLAB实现
龙贝格算法主要是不断递推和加速,直到满足精度要求 递推: 加速: 得到T表: MATLAB代码: function I = Romberg(f, a, b, epsilon) I = 0; h = b ...
- STM32 CubeIDE无法进行调试的问题
解决了由于一个很容易忽视的细节最终导致系统配置存在错误造成STM32 CubeIDE无法进行调试的问题: 文章目录 来龙去脉 解决方案 反思 来龙去脉 在享受CubeIDE快速和便捷的服务之后,生成了 ...
- 三分钟快速搭建分布式高可用的Redis集群
这里的Redis集群指的是Redis Cluster,它是Redis在3.0版本正式推出的专用集群方案,有效地解决了Redis分布式方面的需求.当单机内存.并发.流量等遇到瓶颈的时候,可以采用这种Re ...
- Go中操作mysql
Go中操作mysql 首先在mysql里的test数据库中创建数据表 CREATE TABLE `userinfo` ( `uid` INT(10) NOT NULL AUTO_INCREMENT, ...
- Spring MVC教程——检视阅读
Spring MVC教程--检视阅读 参考 Spring MVC教程--一点--蓝本 Spring MVC教程--c语言中午网--3.0版本太老了 Spring MVC教程--易百--4.0版本不是通 ...
- Lr运行错误Error: Socket descriptor not found. Hint: the problem might be
在controller中,运行时,报如下错误“Error: Socket descriptor not found. Hint: the problem might be solved applyi ...