精华内容
下载资源
问答
  • 接收输入的命令,是一个命令行解释器,把接收到的命令转为二进制传给内核,由内核调用硬件处理 解释执行的脚本语言,可以直接调用Linux系统命令,可以编写一些程序,方便运维人员使用 Shell的分类 Bourne Shell ...
    • Shell概述
      shell的作用
      • 接收输入的命令,是一个命令行解释器,把接收到的命令转为二进制传给内核,由内核调用硬件处理
      • 解释执行的脚本语言,可以直接调用Linux系统命令,可以编写一些程序,方便运维人员使用
    • Shell的分类
      • Bourne Shell (sh,ksh,Bash,psh,zsh) Bash是Linux标准Shell
      • C Shell (csh,tcsh) 语法与C语言类似
      • 查看当前系统使用的Shell可以使用命令行:echo $SHELL

    • echo 输出命令
      echo [选项] [内容]
      -e:支持反斜线控制的字符转换
      设置输出字体的颜色 31m=红色,32m=绿色,34m=蓝色,0m=重置
      echo -e "\e[1;31m 我是红色的字体 \e[0m"
      设置背景颜色 41m=红色,42m=绿色,43m=黄色,0m=重置
      echo -e "\e[1;42m 我的背景颜色是绿色 \e[0m"
    • 写一个脚本
      vi hello.sh:用vim编辑器写一个hello.sh文件
      #!/bin/bash : 位于首行,声明我这个文件是Linux的标准脚本,即声明使用Bash的命令解释器(不可省略)
      #这是第一个shell脚本:#代表注释
      echo -e "\e[1;31m 我是红色的字体 \e[0m"
      :wq退出vim编辑器并保存
      chmod 755 hello.sh:修改文件权限
      ./hello.sh:执行当前目录下的hello.sh脚本

    • 命令的别名
      alias:查看系统中所有的命令别名
      alias cp='cp -i':此时执行cp时相当于cp -i(临时生效,注销后则失效,永久生效需修改环境变量配置文件)
      unalias:删除别名
    • 命令生效顺序 (先后依次排序如下)
      • 绝对路径或相对路径执行的命令
      • 执行别名
      • 执行Bash内部命令
      • 执行$PATH环境变量下定义的目录里的命令

    • 常用快捷键
      • ctrl+c:强制终止当前命令
      • ctrl+z:把当前执行命令放入后台
      • ctrl+a:光标移动到当前命令行的行首
      • ctrl+e:光标移动到当前命令行的行尾
      • ctrl+u:从当前光标位置删除命令行到行首
      • ctrl+r:在历史命令中搜索
      • ctrl+l:清屏相当于clear

    • history [选项] [历史命令保存文件]
      -c:清空历史命令
      -w:把缓存中的历史命令写入到历史命令保存文件中 默认为~/.bash_history
    • 历史命令的调用
      • 按上下箭头
      • !!:执行上一条命令
      • !字符串:执行匹配最后一条以该字符串开头的命令
    • 使用Tab键 进行命令和文件目录的补全,若当前匹配的有多个则再摁多一次,则会列出所有匹配的文件或目录

    • 输出重定向:把原来应该输出到显示器的内容,输出到其他地方,一般输入到文件
      • 文件描述符
        0:标准输入
        1:标准输出
        2:标准错误输出
      • 标准输出重定向 只能保存正确命令的执行的结果
        命令 > 文件:覆盖的方式输出到文件
        命令 >> 文件:追加的方式输出到文件
      • 标准错误输出重定向 只能保存错误命令的执行的结果
        错误命令 2> 文件:覆盖的方式输出到文件
        错误命令 2>> 文件:追加的方式输出到文件
        注意2>之间没有空格,否则会报错
      • 正确输出和错误输出同时保存
        命令 > 文件 2>&1
        命令 >> 文件 2>&1
        命令 &> 文件
        命令 &>> 文件
        命令 >> 文件1 2>> 文件2
      • &>/dev/null:系统黑洞可以当成垃圾站,就是执行命令不想看到结果
    • 输入重定向:wc [选项] [文件名]
      选项
      -c:统计字节数
      -w:统计单词数
      -l:统计行数

      • 例子:
        执行wc命令
        输入:
        asdf asdfg
        再按ctrl+d结束
        举个栗子1
      • wc < 文件wc 文件:则是统计文件
      • wc << 字符串:当输入相同字符串时结束输入,进行统计
        举个栗子2
    • 管道符
      命令1 | 命令2 : 命令1的正确输出作为命令2的操作对象

      举个栗子3

    • 通配符
      ?:匹配一个任意字符
      *:匹配任何内容,0个或多个任意字符
      []:匹配中括号中的任意一个字符,[ab] 则匹配到的是a或b
      [ - ]:-代表的是一个范围,[0-9]表示的就是匹配一个数字
      [ ^ ]:匹配除了[]范围中的一个字符,[^a-z]表示匹配一个不是小写字母的字符

      举个栗子4

    • 其他特殊符号
      ''在单引号中,会认为是字符串
      ""在双引号中,'$'被认为是调用变量,'`'被认为是引用命令,'\'被认为是转义符
      $()应用系统命令
      举个栗子5
    展开全文
  • linux中shell脚本命令

    千次阅读 2020-02-16 17:05:34
    •0:标准输入 •1:标准输出 •2:错误输出 –控制程序I/O位置 –一切皆文件 •/proc/$$/fd –程序是否处理I/O? –绑定顺序:从左到右 02 特殊: –$#:位置参数个数 –$*:参数列表,双引号引用为一个字符串...

    00 基本操作

    •1,花括号 mkdir -p sdfsdf/{a,b,c}sdfsdf
    
    •2,波浪线 cd ~god
    
    •3,变量&参数 $ $$ ${}(.....)
    
    •4,命令替换 ls -l `echo $path`
    
    •5,算术扩展 num=$((3+4))
    
    •6,word拆分,$IFS
    
    •7,路径 *(零到多个任意字符)?
    
    •8,引用删除  echo "hello"
    
    •*,重定向 > 
    

    01 程序自身都有I/O

    •0:标准输入
    
    •1:标准输出
    
    •2:错误输出
    

    –控制程序I/O位置

    –一切皆文件

    •/proc/$$/fd
    

    –程序是否处理I/O?

    –绑定顺序:从左到右

    02 特殊:

    –$#:位置参数个数$*:参数列表,双引号引用为一个字符串
    
    –$@:参数列表,双引号引用为单独的字符串
    
    –$$:当前shell的PID:接收者
    
    •$BASHPID:真实
    
    
    

    03 管道

    $?:上一个命令退出状态
    
    •0:成功
    
    •other:失败
    

    04 环境变量

    环境变量:env,printenv,export
    export定义变量
    导出到子shell
    fork()     Copy On Write      O(1)
    适用于函数
    unset:取消变量
    set:查看shell的变量
    

    05 退出状态

    `–echo $?`
    

    06 逻辑判断

    –command1 && command2
    
    –command1 || command2
    

    07 算术表达式

    –let 算术运算表达式
    
    •let C=$A+$B
    
    –$[算术表达式]
    
    •C =$[$A+$B]$((算术表达式))
    
    •C=$(($A+$B))
    
    –expr 算术表达式 
    
    •注意:表达式中各操作数及运算符之间要有空格。而且要使用命令引用
    
    •C=`expr $A + $B`
    
    •help let
    

    08 条件表达式

    [ expression ]
    
    –test expression
    
    –[[ expression ]]
    

    练习题:

    1. 添加用户
    2. 用户密码同用户名
    3. 静默运行脚本
    4. 避免捕获用户接口
    5. 程序自定义输出

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • 有效解决linux后台运行python脚本

    千次阅读 2020-02-13 20:28:02
    1.sh test.sh & 将sh test.sh任务放到后台 ,即使关闭xshell退出当前session依然继续运行,但标准输出和标准错误...将sh test.sh任务放到后台,关闭标准输入,终端不再能够接收任何输入(标准输入),重定向标...

    1.sh test.sh &
    将sh test.sh任务放到后台 ,即使关闭xshell退出当前session依然继续运行,但标准输出和标准错误信息会丢失(缺少的日志的输出)

    将sh test.sh任务放到后台 ,关闭xshell,对应的任务也跟着停止。

    2. nohup sh test.sh
    将sh test.sh任务放到后台,关闭标准输入,终端不再能够接收任何输入(标准输入),重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell退出当前session依然继续运行。

    3. nohup sh test.sh &
    将sh test.sh任务放到后台,但是依然可以使用标准输入,终端能够接收任何输入,重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell退出当前session依然继续运行。

    nohup python3 blog.py &
    

    转载:nohup 详解

    展开全文
  • linux【Shell脚本】逐行处理文本文件

    千次阅读 2017-03-01 17:59:04
    read命令接收标准输入,或其他文件描述符的输入,得到输入后,read命令将数据放入一个标准变量中. 利用read读取文件时,每次调用read命令都会读取文件中的"一行"文本. 当文件没有可读的行时,read命令将

    经常会对文体文件进行逐行处理,在Shell里面如何获取每行数据,然后处理该行数据,最后读取下一行数据,循环处理.有多种解决方法如下:

    1.通过read命令完成.

    read命令接收标准输入,或其他文件描述符的输入,得到输入后,read命令将数据放入一个标准变量中.

    利用read读取文件时,每次调用read命令都会读取文件中的"一行"文本.

    当文件没有可读的行时,read命令将以非零状态退出.

    复制代码
    1 cat data.dat | while read line
    2 do
    3     echo "File:${line}"
    4 done
    5 
    6 while read line
    7 do 
    8     echo "File:${line}"
    9 done < data.dat
    复制代码

    2.使用awk命令完成

    awk是一种优良的文本处理工具,提供了极其强大的功能.

    利用awk读取文件中的每行数据,并且可以对每行数据做一些处理,还可以单独处理每行数据里的每列数据.

    1 cat data.dat | awk '{print $0}'
    2 cat data.dat | awk 'for(i=2;i<NF;i++) {printf $i} printf "\n"}'

    第1行代码输出data.dat里的每行数据,第2代码输出每行中从第2列之后的数据.

    如果是单纯的数据或文本文件的按行读取和显示的话,使用awk命令比较方便.

    3.使用for var in file 命令完成

    for var in file 表示变量var在file中循环取值.取值的分隔符由$IFS确定.

    复制代码
    1 for line in $(cat data.dat)
    2 do 
    3     echo "File:${line}"
    4 done
    5 
    6 for line in `cat data.dat`
    7 do 
    8     echo "File:${line}"
    9 done
    复制代码

    如果输入文本每行中没有空格,则line在输入文本中按换行符分隔符循环取值.

    如果输入文本中包括空格或制表符,则不是换行读取,line在输入文本中按空格分隔符或制表符或换行符特环取值.

    可以通过把IFS设置为换行符来达到逐行读取的功能.

    IFS的默认值为:空白(包括:空格,制表符,换行符).


    本文转载自博客园文章:【Shell脚本】逐行处理文本文件

    展开全文
  • 近期对序列文件处理的比較多,时常要看一些核酸序列的反向互补序列,长度。可能的翻译序列。曾经我常用seqBuider 来查看。假设能在命令行直接查看。...-i 是必要的參数,用来接收标准输入; -r ...
  • 从实现来看,shell是一个命令解释器,从标准输入接收用户命令,将命令进行解析并传递给内核,内核则根据命令,作出相应动作,如果有反馈信息,则输出到标准输出上,如图: 因为shell命令一条一条手动执行过于麻烦...
  • Linux - SHELL基础

    2021-03-14 00:52:11
    文章目录shell基础输出命令 - echo语法选项:...tab命令别名与常用快捷键临时设置别名:alias永久别名删除别名命令执行顺序Bash常用快捷键输入输出重定向标准输入输出输出重定向 >> >输入重定向 << <
  • 声明:本文参考C语言中文网和Linux命令大全 一、read命令 前面讲过,位置参数变量是可以把用户的输入用参数的方式输入脚本的,...read 命令接收标准输入(键盘)的输入,或者其他文件描述符的输入。得到输入后,read...
  • 命令组合shell程序的编辑与运行小九九乘法表脚本执行通配符标准输入和输出Bash中其他特殊符号接收键盘输入 第八章 vi编辑器 基本命令 命令选项 选项说明 dd(两次按d) 剪切当前行 yy(两次按y) 将当前行...
  • Linux基础----read命令

    2019-03-13 01:16:29
    read命令接收标准输入(键盘录入)或其他文件描述符的输入,得到输入后,read命令将数据放入一个标准变量中。就像Java的Scanner功能。 read命令从键盘读取变量的值,通常用在shell脚本中与用户进行交互的场合。该...
  • Linux学习第四天

    2019-07-12 22:43:17
    文本查看命令: cat连接并显示文件内容到...不带任何选项时,从标准输入接收输出到标准输出 逆序显示文件:tac 从头开始逐行查看:more /var/log/messages 在没有翻到最后一屏时支持向前翻 前后查看文件内容:l...
  • 接收输入命令2.将命令翻译成0101,传递给内核。由内核调用硬件,进行操作。Unix中的shell为CShelllinux中的标准shell叫Bash查看当前计算机shell类型echo $SHELL 二. 脚本执行方法echo 命令echo [选项] [输出内容] ...
  • shell脚本简洁,易懂,且运行速度比C程序快,非常适合文本处理和搭建工作流程。...默认使用标准输入/输出 避免喋喋不休 输出格式必须与可接收的输入格式一致 让工具去做困难的部分 构建特定工具前,先想想 ...
  • 发送模式:应用程序或用户可以使用“发送模式”从标准输入中的文本发送消息 接收模式:接收模式更面向交互式用户,可以在此交互模式下阅读和发送邮件 在此把mailx当作一个小型的邮件发送程序 邮件发送测试流程 1、...
  • Linux系统分析part2

    2008-10-29 14:56:33
    9.8.2 脚本文件 82 第10章 内存管理 83 10.1 内存管理的作用 83 10.2 虚拟内存的抽象模型 83 10.3 按需装入页面 84 10.4 交换 85 10.5 共享虚拟内存 85 10.6 存取控制 85 10.7 高速缓存 86 10.7.1 缓冲区高速缓存 86...
  • Linux系统分析part1

    2008-10-29 14:20:24
    9.8.2 脚本文件 82 第10章 内存管理 83 10.1 内存管理的作用 83 10.2 虚拟内存的抽象模型 83 10.3 按需装入页面 84 10.4 交换 85 10.5 共享虚拟内存 85 10.6 存取控制 85 10.7 高速缓存 86 10.7.1 缓冲区高速缓存 86...
  • 本书介绍Linux环境下的编程方法,内容包括Linux系统命令、Shell脚本、编程语言、系统内核、安全体系、X Windows 等,内容丰富、论述全面,涵盖了Linux 系统的方方面面。本书附带光盘包括了Redhat Linux系统的最新...
  • 9.8.2 脚本文件 82 第10章 内存管理 83 10.1 内存管理的作用 83 10.2 虚拟内存的抽象模型 83 10.3 按需装入页面 84 10.4 交换 85 10.5 共享虚拟内存 85 10.6 存取控制 85 10.7 高速缓存 86 10.7.1 缓冲区高速缓存 86...
  • 9.8.2 脚本文件 82 第10章 内存管理 83 10.1 内存管理的作用 83 10.2 虚拟内存的抽象模型 83 10.3 按需装入页面 84 10.4 交换 85 10.5 共享虚拟内存 85 10.6 存取控制 85 10.7 高速缓存 86 10.7.1 缓冲区高速缓存 86...
  • 本书介绍Linux环境下的编程方法,内容包括Linux系统命令、 Shell脚本、编程语言(gawk、Perl)、系统内核、安全体系、X Window等,内容丰富、论述全面,涵盖了Linux系统的方方面面。 目 录 前言 第一篇 Linux系统介绍 ...
  • shell是用户操作接口的意思,操作系统运行起来后都会给用户提供一个操作界面,这个界面就叫shell,用户...命令行shell:该死循环包含3个模块(命令接收、命令解析、命令执行),命令行有一个标准命令集,用户输入的...

空空如也

空空如也

1 2 3
收藏数 56
精华内容 22
关键字:

linux脚本接收标准输入

linux 订阅