终端用户登录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。