码迷,mamicode.com
首页 > 其他好文 > 详细

常用命令 - 输入输出、执行状态

时间:2016-06-15 23:59:31      阅读:403      评论:0      收藏:0      [点我收藏+]

标签:

输入输出

标准输入:默认为键盘,可以指定为文件。

标准输出:默认为屏幕,可以指定为文件。

*****如果在终端输入时,一行不能结束,可以使用反斜杠 \ 在下一行接着输入。

echo 

echo用于将字符串输出
1 使用时如果用双引号字符串,内部的$变量将会被替换,内部的反单引号中的命令会输出``,但是转义字符不会发生转义。
2 使用单引号字符串,$变量不会被替换,返单引号不会执行命令,同样不发生转义字符转义。
3 不使用引号等于使用双引号。

echo有三个控制选项:
-n do not output the trailing newline
-e enable interpretation of backslash escapes
-E disable interpretation of backslash escapes (default)

# 输出后没有换行
echo -n "what‘s your first name: "
read first_name
# 输出后换行
echo "what‘s your last name: "
read last_name
# 没有输出tab字符
echo "first name\tlast name"
# 输出后有tab字符
echo -e "${first_name}\t${last_name}"

 read

read后跟变量名称,会读取输入流,直到换行或者EOF(可以通过Ctrl+d)。
1. 如果变量有多个,那么每次读入的,将会通过空白字符分割赋值给变量。
2. 如果分割的个数多,最后一个变量获得到之后全部的输入。

用法
read [-ers] [-a 数组] [-d 分隔符] [-i 缓冲区文字] [-n 读取字符数] [-N 读取字符数] [-p 提示符] [-t 超时] [-u 文件描述符] [名称 ...]

cat

用来显示文件内容,控制字符,行号等。

如果没有指定文件,或者文件为"-",则从标准输入读取。

-A, --show-all equivalent to -vET
-b, --number-nonblank number nonempty output lines, overrides -n
-e equivalent to -vE
-E, --show-ends display $ at end of each line
-n, --number number all output lines
-s, --squeeze-blank suppress repeated empty output lines
-t 与-vT 等价
-T, --show-tabs 将跳格字符显示为^I
-u (被忽略)
-v, --show-nonprinting 使用^ 和M- 引用,除了LFD和 TAB 之外

管道pie

管道可以将一个命令的输出传递给另一个命令作为输入。管道用 | 表示。形式为
命令1 | 命令2

如下命令,将文件中的内容读取到变量中去。

cat text.txt | read var

tee

把标准输入,输出到标准输出。同时,也拷贝到相应的文件中去。

Angel@DESKTOP-254LBLA ~
$ echo abcdefg | tee a.txt
abcdefg

Angel@DESKTOP-254LBLA ~
$ cat a.txt
abcdefg

***** tee有一个-a选项,表示追加到文件。

重定向

打开shell时,每个进程有三个打开的文件与之关联,分别是:

标准输入:默认是键盘  文件描述符:1
标准输出:默认是屏幕  文件描述符:2
标准错误:默认是屏幕  文件描述符:3

如果有其他文件需要描述符,可以任意使用3-9的数字。

重定向的方式:

  1. >  重定向标准输出到一个新文件中。
  2. >> 重定向标准输出,会在文件中追加。
  3. < 重定向标准输入。

重定向的形式:

  1. 输出文件描述符 > 文件名
  2. 输出文件描述符 > &输出文件描述符
  3. < 输入文件名
  4. < &输入文件描述符

command > filename

把标准输出重定向到一个新文件中

command >> filename

把标准输出重定向到一个文件中 (追加)

command 1 > fielname

把标准输出重定向到一个文件中

command > filename 2>&1

把标准输出和标准错误一起重定向到一个文件中

command 2 > filename

把标准错误重定向到一个文件中

command 2 >> filename

把标准输出重定向到一个文件中 (追加)

command >> filename 2>&1

把标准输出和标准错误一起重定向到一个文件中 (追加)

command < filename >filename2

把command命令以filename文件作为标准输入,以filename 2文件

作为标准输出

command < filename

把command命令以f i l e n a m e文件作为标准输入

command << delimiter

把从标准输入中读入,直至遇到delimiter分界符

command <&m

把文件描述符 m作为标准输入

command >&m

把标准输出重定向到文件描述符 m中

command <&-

把关闭标准输入

 

执行状态

exec

exec用于清除当前shell环境,重新启动一个shell,并执行跟随的命令。命令执行完成之后,shell随之关闭。新shell与原shell具有相同的PID。

如果单纯执行shell script文件,并且文件第一行声明了shell路径,则启动子shell执行其中的命令
如果使用source命令执行shell文件,则在当前shell执行文件中的命令。

后台执行命令

与后台执行命令相关的有:

  1. &放到命令最后,可以将这行命令立即放到后台执行。为了不干扰,通常会将输出重定向到文件,不让它显示在屏幕。
  2. nohup命令,其后跟随的命令行在用户退出后仍然后再后台继续运行。
    通常使用nohub command &
  3. ctrl+z:将当前执行的命令放到后台,并暂停执行。
  4. jobs:查看后台执行的命令
  5. fg %jobnumber:将编号为num的后台命令调到前台执行。
  6. bg %jobnumber:将任务放到后台去处理
  7. kill %jobnumber:杀死后台任务

 

常用命令 - 输入输出、执行状态

标签:

原文地址:http://www.cnblogs.com/qiusuo/p/5587871.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!