终端用户登录linux服务器,为每一个终端用户启动一个shell程序。

echo命令

  • 可以显示文本行或变量,或者把字符串输入到文件。
  • 格式:echo [option] string
  • -e 解析转义字符
  • -n 回车不换行,linux系统默认回车换行
  • -变量或者字符串中的转义字符(\c(回车不换行) \f(禁止)\t(回车换行) \n(回车换行))
  • echo 空,后面没有任何东西,将要有一个回车换行
  • 示例代码
#!/bin/bash

 echo "don't  anylisize special charaters.."
 echo  "demo\n\n\n"
 echo "anylisize special charaters.."
 echo -e "demo\n\n\n"
 echo "default"
 echo "next line"
 echo "with option -n"
 echo -n "next line"
  • 演示效果
zhenjunliu@~/Documents/shell$./01.sh
don't  anylisize special charaters..
demo\n\n\n
anylisize special charaters..
demo



default
next line
with option -n
next linezhenjunliu@~/Documents/shell$vim 01.sh

read命令

  • read语句可以从键盘或文件的某一行文本中读入信息,并将其制复制给一个变量。
  • read var1 var2 …. 若只指定了一个变量,那么read将会把所有的输入赋给该变量,直至遇上第一个文件结束符或者回车。如果给了多个变量,他们按照顺序分别赋予不同的变量。shell将用空格作为变量之间的分隔符。
  • 示例代码
#!/bin/bash
#readme


echo -n "First Name:"
read firstname

echo -n "Last Name:"
read lastname lastname2 

echo -e "FirstName: ${firstname}\n" 
echo -e "LastName: ${lastname}\n" 
echo -e "LastName2: ${lastname2}\n"

cat命令

  • 是一个简单而通用的命令,可用它显示文件内容、创建文件、还可以用它来显示控制字符。
  • 格式:cat [options] filename1 … filename2 ….
  • -v 显示控制字符
  • 使用cat命令时注意,它不会在文件分页处停下来;它会一下显示完整个文件。如果希望每次显示一页,可以使用more命令 或把cat命令的输出通过管道传递到另外一个具有分页功能的命令(more、less)中。
    cat –v dos.txt 显示dos文件的^M
    cat longfile |more ;
    cat longfile | less;
    less longfile

管道

  • 可以通过管道把一个命令的输出传递给另外一个命令做输入。管道用竖线表示
  • 格式:命令1 | 命令2

tee命令

  • 把结果输出到标准输出,另一个副本输出到相应文件
  • tee –a file -a: 表示追加 不加-a表示覆盖
  • 该命令一般用于管道之后 (一般看到输出,并存文件)
    who | tee –a who.out

标准:输入/输出/错误

  当我们在shell中执行命令的时候,每个进程都和三个打开的文件相联系,并使用文件描符来引用这些文件。由于文件描述符不容易记忆, shell同时也给出了相应的文件名。
  下面就是这些文件描述符及它们通常所对应的文件名:
* 输入文件—标准输入 0
* 输出文件—标准输出 1
* 错误输出文件—标准错误 2
  系统中实际上有12个文件描述符,但是正如我们在上表中所看到的,0、1、2是标准输入、输出和错误。可以任意使用文件描述符3到9。