`
zhengdl126
  • 浏览: 2509930 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

read,cat,touch,head,tail

 
阅读更多

===================== read    接收标准输入(键盘)的输入,或其他文件描述符的输入

-d[输入结束字符,默认结束符是换行]
-p("提示语句")
-n[字符个数]
-t(等待时间)
-s(不回显)
-a [数组名]




#!/bin/bash
echo -n "Enter your name:"   //参数-n的作用是不换行,echo默认是换行
read  name                   //从键盘输入
echo "hello $name,welcome to my program"     //显示信息
exit 0                       //退出shell程序。


由于read命令提供了-p参数,允许在read命令行中直接指定一个提示。
所以上面的脚本可以简写成下面的脚本::
#!/bin/bash
read -p "Enter your name:" name
echo "hello $name, welcome to my program"
exit 0



-t选项指定read命令等待输入的秒数。当计时满时,read命令返回一个非零退出状态;
#!/bin/bash
if read -t 5 -p "please enter your name:" name
then
    echo "hello $name ,welcome to my script"
else
    echo "sorry,too slow"
fi



可以设置read命令计数输入的字符。当输入的字符数目达到预定数目时,自动退出,并将输入的数据赋值给变量。

#!/bin/bash

read -n1 -p "Do you want to continue [Y/N]?" answer
case $answer in
Y | y)
      echo "fine ,continue";;
N | n)
     echo "ok,good bye";;
*)
     echo "error choice";;
esac
使用了-n选项,后接数值1,指示read命令只要接受到一个字符就退出。只要按下一个字符进行回答,read命令立即
接受输入并将其传给变量。无需按回车键。



默读(输入不显示在监视器上)
有时会需要脚本用户输入,但不希望输入的数据显示在监视器上。典型的例子就是输入密码,当然还有很多其他需要隐藏的数据。
-s选项能够使read命令中输入的数据不显示在监视器上(实际上,数据是显示的,只是 read命令将文本颜色设置成与背景相同的颜色)。
#!/bin/bash
read  -s  -p "Enter your password:" pass
echo "your password is $pass"
exit 0


-----------------读文件

最后,还可以使用read命令读取Linux系统上的文件。
每次调用read命令都会读取文件中的"一行"文本。当文件没有可读的行时,read命令将以非零状态退出。
读取文件的关键是如何将文本中的数据传送给read命令。
最常用的方法是对文件使用cat命令并通过管道将结果直接传送给包含read命令的 while命令
例子::
#!/bin/bash
count=1    //赋值语句,不加空格
cat test | while read line        //cat 命令的输出作为read命令的输入,read读到的值放在line中
do
   echo "Line $count:$line"
   count=$[ $count + 1 ]          //注意中括号中的空格。
done
echo "finish"
exit 0

 

 

===================== cat

 

使用方式:cat [-AbeEnstTuv] [--help] [--version] fileN

 


说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)
参数:
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting

 

 


范例:
cat -n textfile1 > textfile2 把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -b textfile1 textfile2 >> textfile3 把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。

 


范例:
把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -n textfile1 > textfile2

 


把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。
cat -b textfile1 textfile2 >> textfile3

 


cat /dev/null > /etc/test.txt 此为清空/etc/test.txt档案内容

 


cat 也可以用来制作 image file。例如要制作软碟的 image file,将软碟放好后打
cat /dev/fd0 > OUTFILE
相反的,如果想把 image file 写到软碟,请打
cat IMG_FILE > /dev/fd0
注:
1. OUTFILE 指输出的 image 档名。
2. IMG_FILE 指 image file。
3. 若从 image file 写回 device 时,device 容量需与相当。
4. 通常用在制作开机磁片。

 

 

 


cat主要有三大功能:
1.一次显示整个文件。$ cat   filename
2.从键盘创建一个文件。$ cat  >  filename
只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件。 $cat   file1   file2  > file

 

 

 

 

 

将输出文件的内容与标准输入拼接在一起

 

#echo  "text through stdin" | cat - file.txt

- 被作为来自stdin文本的文件名

 

 

 

 

移除多个换行符:

cat -s text.txt

或者

cat  text.txt | tr -s '\n'

 

 

 

=====================touch 创建文件

 

如果文件存在,则可以修改文件的时间

 

 

a 改变档案的读取时间记录。
m 改变档案的修改时间记录。
c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
f 不使用,是为了与其他 unix 系统的相容性而保留。
r 使用参考档的时间记录,与 --file 的效果一样。
d 设定时间与日期,可以使用各种不同的格式。
t 设定档案的时间记录,格式与 date 指令相同。
--no-create 不会建立新档案。
--help 列出指令格式。
--version 列出版本讯息。

范例:
最简单的使用方式,将档案的时候记录改为现在的时间。若档案不存在,系统会建立一个新的档案。

touch file
touch file1 file2

将 file 的时间记录改为 5 月 6 日 18 点 3 分,公元两千年。时间的格式可以参考 date 指令,至少需输入 MMDDHHmm ,就是月日时与分。 安全技术

touch -c -t 05061803 file
touch -c -t 050618032000 file

 

 

 

=============== head

 

head命令查看具体文件最初的几行内容,该命令默认是前10行内容,如果你想查看前面更多内容,你可以通过一个数字选项来设置,例如

head -20 install.log

 

 

=============== tail

 

 

tail命令是用来查看具体文件后面几行的内容,默认情况下,是查看该文件尾10行的内容,

 

tail -20 install.log

 

你还可以使用 tail 来观察日志文件被更新的过程。使用 -f 选项,tail 会自动实时
地把打开文件中的新消息显示到屏幕上。例如,要即时观察 /var/log/messages的变化,以根用户身份在 shell 提示
下键入以下命令:
tail -f /var/log/messages

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Linux文本查看命令及其选项详解(cat,head,tail)

    linux系统内置命令可以通过以下两种方式查询:“cat –help” 或者“man cat”。 cat命令的常用选项和官方解释如下: cat file_name 显示文件全部内容 ...With no FILE, or when FILE is -, read standard

    Linux 命令head和tail常见用法详解

    head和tail是一组想对应的命令,默认分别显示文件的开头和末尾10行记录。 head head 命令可以将一段文本的开头一部分输出到标准输出。 head命令既可以处理文本文件也可以处理标准输入。 基本应用 处理文本文件: ...

    Linux系统head与tail命令详解.doc

    在Linux系统内head命令是显示文件开头的行,tail命令是显示文件末尾行,默认都是只显示10行

    大数据基础-Linux基础详解课程27.基本命令-查看命令(cat,more,less,head,tail).mp4

    大数据基础-Linux基础详解课程

    linux基本操作命令 ls du touch mkdir cp mv which find cat more less head tail |(管道) wc grep gzip tar

    ls(list)列表显示目录的文件以及子目录 l (long)以长格式显示文件和目录的列表 -a 显示所有的子目录和文件的信息 -d 显示目录本身的属性,常与-l 同时使用 -h 人性化的方式显示出目录的大小,常与-l 同时使用 ...

    linus实验报告单模板

    linus实验报告单,------- -1、用户和工作组管理 (1)使用命令(head、tail、cat等)熟悉及查看相关文件:passwd文件、shadow文件、group文件、gshadow文件 head /etc/passwd head /etc/shadow head /etc/group

    Linux网络操作系统基础:文件命令读取文件头尾命令head和tail.pptx

    Linux网络操作系统基础:文件命令读取文件头尾命令head和tail.pptx

    head-stream:直通流,用于作用于流中发出的第一个缓冲区。 比如head和tail的head命令,first and rest

    就像head和tail的head命令一样,首先和休息。用法将一个流和一个回调管道传递给它,该回调将使用第一个缓冲区调用,如下所示: someStream.pipe(headStream(onFirstRow)).pipe(someOtherStream)function onFirstRow...

    windows下的tail备份

    tail for Windows 是 Windows 下的 tail DOS 命令(类似 UNIX/Linux 下的相同命令)。可用来显示文件尾部内容以及跟踪/监控文件内容变化。你也可以借助重定向符号(> 或 >>)从一个文件的指定行号开始截取内容生成另...

    windows下使用tail命令-tail2win

    windows下使用tail命令-tail2win 下载之后解压到c:/windows/system32目录下 然后就可以像linux那样使用tail -f 指令

    cat、tail、head、grep、sed查看文件任意几行的数据

    ①grep -A 10 关键字 file名 –>显示file文件里匹配”关键字”那行及后10行 示例:grep -A 10 “err” log-file.log ②grep -B 10 关键字 file名 –>显示file文件里匹配”关键字”那行及前10行 ...grep … | head

    head-to-tail

    head ⇒ tail node main.js head tail 结果 [ 'head' , 'heal' , 'teal' , 'teil' , 'tail' ] 执行 以第一个单词为根节点构建单词树。 树的每一层代表来自父节点的单个字母突变。 单词只使用一次,一旦放入树中,...

    windows的tail

    找过好几个windows的tail工具,都有很多问题,比如手动改写一下文件,就无法再监控等等。于是自己写了一个。 用法: 1. 将tail.exe放在特定的路径,然后把该路径加入到系统path中,之后就可以在控制台,像linux的...

    Linux文档操作命令-(cat/more/less/head/tail)

    1、cat命令 描述:查看文件内容;文件创建;文件合并。常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。 用法:cat [参数选项] [文件名称] 参数: 参数 ...

    win 平台类似linux的tail 工具

    win 平台类似linux的tail 工具

    pandas-head-to-tail

    熊猫.head()到.tail() 我的首次设置 () 如果您已经有了conda,则可以跳过此步骤; 也可以使用virtualenv + pip。 您应该可以通过pip install -r requirements.txt来获得与步骤4相同的软件包版本。 确保在安装...

    windows cmd tail 工具

    windows cmd tail 工具 以前在公司时服务器上面可以实现tail 命令查看程序运行日志,感觉相当不错,上网查了下这些命令是linux 下的,还好有好心人开发了一个可以在Windows下的运行的小工具,来给分享一下: 使用...

    windows tail加强版

    在原来基础上修改了下,以前用tail是只要我把文件的内容删除了一点,tail就会崩溃。读取2G以下的文件还是没有问题的。 新加的功能: 1.命令格式,默认是显示文件最后的10行,如果文件没有,则会创建 tail 文件路径 ...

Global site tag (gtag.js) - Google Analytics