`
zhengdl126
  • 浏览: 2538999 次
  • 性别: 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操作命令1

    - `head`:显示文件的前几行,如`head -n 10 file`显示前10行。 - `tail`:显示文件的后几行,如`tail -n 10 file`显示后10行。 - `nl`:显示带行号的文件内容,如`cat -n file`。 8. Linux文件权限: 文件权限...

    Linux Shell PPT

    `cat`、`less`、`tail`和`head`用于处理文件内容。`cat`常用于查看文件内容,`less`则提供分页浏览,`tail`显示文件末尾的内容,`head`则显示文件开头的部分。 环境变量在Linux中扮演着重要角色,例如`USER`存储...

    Linux教程相当详细 相当好用

    - `tail`:显示文件的末尾几行,例如`tail -n 3`显示最后3行。 - `ln -s`:创建软链接,类似于Windows的快捷方式。 5. **权限管理**: - `chmod`:改变文件或目录的权限。例如,`chmod u+x file`为文件增加所有...

    linux教程——很使用的那种

    r:read w:write x:execute执行 -:表示无此权限 所有者:u user 所属组:g group 其他人:o other 2:表示硬链接数。 第一个root:是所有者。 第二个root:是所属组。 4096:目录大小,不是目录中所有文件的...

    linux编程含有shell内部各种指令

    - `head`/`tail`: 查看文件头或尾部分。 3. **流程控制指令** - `if`: 条件判断,如`if [ condition ]; then commands; fi`。 - `for`: 循环,如`for i in {1..10}; do echo $i; done`。 - `while`: 当条件满足...

    shell介绍及编程

    常用的Shell命令包括ls、cd、pwd、cp、mv、rm、touch、mkdir、rmdir、cat、more、less、head、tail、grep、awk、sed、find、xargs等。这些命令是进行文件管理、文本处理和任务自动化的核心工具。通过组合使用这些...

    Linux常用命令简介

    `head` 和 `tail` 分别显示文件开头和结尾的部分内容。`grep` 命令则用于在文件中搜索特定字符串。 在系统管理上,`ps` 命令列出当前系统运行的进程,`kill` 和 `killall` 用于结束指定进程。`top` 或 `htop` 提供...

    solaris命令收集

    2. **文件查看和编辑**:`cat`、`more`和`less`用于查看文件内容,`vi`或`vim`是强大的文本编辑器,`head`和`tail`分别显示文件的开头和结尾部分。 3. **系统信息和状态**:`uname`显示系统信息,`ps`列出进程状态...

    Linux命令.pdf

    - 示例:`scp readName.sh study@192.168.0.224:/home/study/chenqian` 24. **head**:用于显示文件的前几行。 - 语法:`head [选项] 文件名` - 示例:`head -n 20 file.txt` 25. **lsattr**:用于查看文件的...

    Linux常用命令

    - 文件查看,如`cat`用于显示文件内容,`more`和`less`用于分页查看文件内容,`head`和`tail`分别用于查看文件的开头和结尾部分。 - 文件权限管理,如`chmod`用于改变文件权限,`chgrp`用于改变文件的组,`chown`...

    Linux程序设计知识点整理.docx

    - 其他命令:`pwd`显示当前工作目录,`cd`改变目录,`ar`归档工具,`file`检测文件类型,`grep`、`tar`、`more`、`less`、`head`、`tail`、`cat`则用于文本处理和文件查看。 2. **Linux工具**: - 编辑器:`vi`和...

    Linux必学的60个命令v1.zip

    19. **head/tail**:查看文件头或尾部内容,如`head myfile.txt`查看前10行。 20. **sort**:排序文件内容,如`sort -n myfile.txt`按数字排序。 21. **uniq**:去除重复行,常与`sort`配合使用。 22. **wc**:...

    Linux/Shell命令详解

    - `head`/`tail`:查看文件开头或结尾的内容。 - `du`:查看文件或目录占用的磁盘空间。 - `df`:查看磁盘空间的总体使用情况。 3. **流程控制**: - `if...else`:条件判断语句。 - `for`/`while`循环:实现...

    linux学习笔记

    - `rwx` 分别代表读(read)、写(write)、执行(execute)权限。 - 第一组 `rwx` 是所有者的权限。 - 第二组 `rwx` 是所属组的权限。 - 第三组 `rwx` 是其他用户的权限。 - **特殊文件类型**: - `d` 表示目录...

    linux shell 笔记 (未整理)

    3. **文本处理命令**:`cat`查看文件内容,`more`和`less`分页查看,`head`和`tail`查看文件开头和结尾。 4. **流程控制命令**:`echo`打印字符串,`read`读取用户输入,`|`管道符用于连接命令。 三、Shell脚本 1....

    bash cheat sheet

    - cat <fileName>:显示文件内容。 - less 或 more:用于浏览文件,less 命令提供了向前和向后翻页的功能,而 more 通常只能向前翻页。 - head:查看文件开头指定行数的内容。 - tail:查看文件结尾指定行数的内容。...

    Busybox for Android v1.20.2

    gunzip, gzip, halt, hd, hdparm, head, hexdump, hostname, httpd, hush, hwclock, id, ifconfig, ifdown, ifup, inetd, init, inotifyd, insmod, install, ionice, iostat, ip, ipaddr, ipcalc, ipcrm, ipcs, ...

    Linux命令高阶参考手册,1527页的命令大全

    - **head**/ **tail**:查看文件的前几行或后几行。 5. **文本处理工具**: - **sed**:流编辑器,用于文本转换。 - **awk**:强大的文本处理工具,支持复杂的模式匹配和数据处理。 - **cut**/ **paste**:分割...

    Linux学习笔记-初学者

    - `touch`:创建一个新的空文件或者更新现有文件的时间戳。 - `cp`:复制文件或目录。 - `mv`:移动文件或目录,也可以用来重命名文件。 - `wc`:统计文件的行数、字数和字符数。 - `vi`:文本编辑器,类似于...

Global site tag (gtag.js) - Google Analytics