首页 > 系统相关 >Linux Shell概述

Linux Shell概述

时间:2023-04-13 22:38:34浏览次数:35  
标签:输出 Shell cc 命令 管道 概述 ls Linux

 Linux系统的Shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。Shell的分类:

Bourne Shell

C Shell

Korn Shell

Bourne-Again Shell 

Shell的基本功能:

命令的解释执行

环境变量的设置

输入输出的重定向

shell程序语言的设计

Linux/UNIX系统中标准流的定义  

★ 命令处理流:加工、信息。

★ UNIX 信息流标准定义

标准定义   文件描述符  默认映射对象


标准输入流      0             键盘

标准输出流      1           显示器

标准错误流      2       输出错误信息(显示器)

shell命令解释

输出shell提示符(#/$/%)→接收信息,分析命令→转去执行命令或程序→命令结束返回 

输入输出重定向

在命令中用>,>>,<符号修改信息流的走向。

也有<<用作输入重定向的特例,需指定输入信息的定界符,如:cat >file<<!......!。

例:   ls –l > dir1

  pwd > dir1  

 date>>dir1

  prog < infile > outfile  

cc abc.c >log (若出错仍回输出错误信息到屏幕)

  cc abc.c >& log 等同于cc abc.c 1>& log

&代表标准输出和标出错误处理,unix有复制的意思

 cc abc.c &>log

 ls f1 f2 2>ef1 1>&2 

★管道线的处理  

管道线“|”可以将一个程序或命令的输出作为另一个程序或命令的输入。

 ls –l >tempfile

  wc –l tempfile (计算文件中的行数)  

rm tempfile

上面三条命令等价于命令:

  ls –l | wc -l 

管道线处理可以使用的分隔符:

& 在命令行尾表示管道线输出为后台作业

&& 代替管道线符,表示左边的命令输出为“真”时执行右边的命令。

|| 代替管道线符,表示左边的命令输出为“假”时执行右边的命令。

例: write zhang <letter ||mail zhang <letter        mail zhang <letter && rm letter     test -f file11 &&echo "y"||echo "n"      ps –ef |tee progm.ps (tee 三通命令,同时显示到屏幕上) 

★shell组合键

Ctrl+c 终止命令

Ctrl+z 挂起命令

Ctrl+m 相当于按回车键

Ctrl+d 输入结束,即EOF,或注销登录

 例:vi编辑文件时,命令行方式时挂起进程(ctrl-Z),用jobs(-l 进程号)或bg 查看后台,用fg %n唤回前台;

 再用cat>>file查看多次追加文件的后台和文件情况。

★利用管道线对命令的输出进行处理

如:从who命令的输出中筛选出指定的用户名

  who|grep username|tr -s ' '|cut -f1 -d' '

如从ifconfig 输出中筛选出IP地址

 ifconfig ens33|???

 ifconfig ens33|sed -nr

'2s/^.*inet(.*)netmask.*$/\1/gp'  

  ifconfig ens33|awk -F '[ ]+' 'NR==2{print $3}'  

标签:输出,Shell,cc,命令,管道,概述,ls,Linux
From: https://blog.51cto.com/u_16058240/6188444

相关文章

  • Linux环境tomcat安装步骤详细教程
    下载tomcat包:https://tomcat.apache.org/tomcat-10.1-doc/index.html将下载的安装包放至linux环境的/usr/local/tomcat目录下:执行解压命令tar-xvfapache-tomcat-9.0.73.tar.gz将解压出来的目录改名为tomcat9,然后进入tomcat9/bin目录,执行./startup.sh命令启动tomcat:执行启动命令......
  • Linux运维进阶之路
    前言首先在我看来,不论你以后是做运维亦或者是做后端开发,云计算等。只要和后端搭边,Linux都是必会的基础知识。所以说Linux是伴随我们工作中一个特别重要的知识。 不过很多同学在初学Linux的时候,始终不得其法,发现越学越摸不着头脑。到最后不了了之。   在我看来,这些同学......
  • Linux运维进阶之路
    前言首先在我看来,不论你以后是做运维亦或者是做后端开发,云计算等。只要和后端搭边,Linux都是必会的基础知识。所以说Linux是伴随我们工作中一个特别重要的知识。 不过很多同学在初学Linux的时候,始终不得其法,发现越学越摸不着头脑。到最后不了了之。   在我看来,这些同学......
  • Linux运维进阶之路
    前言首先在我看来,不论你以后是做运维亦或者是做后端开发,云计算等。只要和后端搭边,Linux都是必会的基础知识。所以说Linux是伴随我们工作中一个特别重要的知识。 不过很多同学在初学Linux的时候,始终不得其法,发现越学越摸不着头脑。到最后不了了之。   在我看来,这些同学......
  • linux环境下安装Docker
    1、概念:docker是一个开源的应用容器引擎,docker可以让开发者打包他们的应用以及依赖环境包到一个轻量级、可移值的容器中。然后发布到任何流行的linux机器上。安装过程:1、yum包更新到最新yumupdate2、安装需要的软件包yuminstall-yyum-utilsdevice-mapper-persistent-da......
  • Linux配置IP和网关
    Linux配置IP和网关​ 配置IP的目的使虚拟机可以联网。1、配置动态IP(随着环境的改变IP也会改变)①打开虚拟机,输入vi/etc/sysconfig/network-scripts/ifcfg-ens33输入命令:修改配置文件 vi/etc/sysconfig/network-scripts/ifcfg-ens33按i可修改文件内容②修改ONBOOT......
  • 如何查看Linux的内存使用状况
    导读我想要监测Linux系统的内存使用状况。有哪些可用的图形界面或者命令行工具来检查当前内存使用情况?当涉及到Linux系统性能优化的时候,物理内存是一个最重要的因素。自然的,Linux提供了丰富的选择来监测珍贵的内存资源的使用情况。不同的工具,在监测粒度(例如:全系统范围,每个......
  • Linux运维进阶之路
    前言首先在我看来,不论你以后是做运维亦或者是做后端开发,云计算等。只要和后端搭边,Linux都是必会的基础知识。所以说Linux是伴随我们工作中一个特别重要的知识。 不过很多同学在初学Linux的时候,始终不得其法,发现越学越摸不着头脑。到最后不了了之。   在我看来,这些同学的......
  • #yyds干货盘点#Linux CPU 的上下文切换一
    我们都知道Linux是一个多任务操作系统,它支持的任务同时运行的数量远远大于CPU的数量。当然,这些任务实际上并不是同时运行的(SingleCPU),而是因为系统在短时间内将CPU轮流分配给任务,造成了多个任务同时运行的假象。CPU上下文(CPUContext)在每个任务运行之前,CPU需要知道在哪里加......
  • Linux操作系统内存管理RAID磁盘阵列与配置
    1、RAID磁盘阵列简称:独立冗余磁盘阵列把多块独立的物理硬盘按不同的方式组合起来形成一个硬盘组(逻辑硬盘)。从而提供比单个硬盘更高的存储性能和提供数据备份技术。1.1RAID级别组成磁盘阵列的不同方式称为RAID级别(RAIDLevels)常用的RAID级别:RAID0、RAID1、RAID5、RAID6、RAID1......