------------------3.17----------------
标准输入的文件的描述符为-----------> 0
标准输出的文件的描述符为-----------> 1
标准错误的文件的描述符为-----------> 2
标准输入输出 是输出输入到终端
(输出到文件里用重定向—>: >)
commmand>file--------->将命令的输出结果重定向到这个文件里
gcc -hello.c>hello-------->把hello.c内容输出到hello
shell就是一个命令解释器,它为用户提供了一个向Linux内核发送请求以便运行程序界面的系统级程序
目前流行的几种shell:ash,bash,ksh,csh,zsh
#echo:(输出)
$SHELL:查看shell命令
管道:pipe
command1|command2[|command3…]------->将一个程序的输出送到另一个程序的输入
command1|&command2[|&command3…]------>将标准错误输出到管道
shell常用的环境变量:
1.HOME:(家目录)----->用来保存注册目录的完全路径名
2.PATH:用于保存用冒号分隔的目录路径名,shell将按PATH变量给出的顺序搜索这些目录,找到的第一个与命令名称一致的可执行文件将被执行
2.PATH:决定了shell将到哪些目录中寻找命令或者程序,PATH的值是一系列目录
2.Linux修改PATH变量
(1).只想对本次登陆有效的话-------->PATH=
P
A
T
H
<
路
径
1
>
<
路
径
2
>
.
.
.
.
.
(
2
)
.
永
久
有
效
在
b
a
s
h
r
c
里
面
加
上
这
句
话
(
P
A
T
H
=
PATH<路径1><路径2>..... (2).永久有效在bashrc里面加上这句话(PATH=
PATH<路径1><路径2>.....(2).永久有效在bashrc里面加上这句话(PATH=PATH<路径1><路径2>…)
3.TERM:终端类型
4.UID:当前用户的标识符
5.PWD:当前工作目录的绝对路径名
6.PS1:主提示符,在特权用户下(root),默认的主提示符是#,在普通用户下,默认的主提示符是$。
6.PS1变量的特殊符号
PS1=’[\u@\h\w]$’
\u:当前用户的账号名称
\h:仅取主机名的第一个名字
\w:工作目录名称,仅列出最后一个目录名
$:提示符,如果是root用户就是#,否则就是$
shell的语法:
主要有开头部分,注释部分以及语句执行部分组成
1.开头:
#!----->用来告诉系统他后面的参数是用来执行该文件的程序,在这个例子中使用bin/bash来执行程序(#! /bin/bash)
vim szj.sh(编写shell文件)
bash szj.sh(编译输出szj.sh)
开头:#!/bin/bash
#!:用来告诉系统他后面的参数是用来执行该文件的程序,在这个例子中使用/bin/bash/来执行
shell变量:(调用变量------>$+变量名)
1.本地变量
2.环境变量------>可以用在所有的进程(也可以在子shell里面运行)
3.特殊变量
使用set命令可以查看所有的本地变量和环境变量
本地变量----->用户自定义变量,是在当前shell环境,当前进程内有效的变量。当前用户注销,或者启用子shell,子进程时,该变量不起作用
变量定义:定义本地变量
1.bash shell环境下,定义本地变量的格式如下;
变量名=变量值(若等号两边有空格,则必须使用引号括起来)----->指的是变量值或者变量名里面有空格,而不是等号的两侧有空格(等号两侧不能有空格)
#s1=hello
#s2=“hello world”
2.变量设置的规定
(1).变量名称只能是英文字母,下划线,与数字,但是数字不能是开头字符
(2).若有空格,可以使用双引号或单引号将变量内容连接起来
(3).用户也可以在命令行上同时定义多个变量赋值,赋值语句之间要用空格分开---------->#x=4 y=5
1.readonly命令---->只读
有时需要在说明一个变量对他设置为一个特定值后就不需要他在改变时,可以用readonly保证一个变量的只读性
例:readonly x=10
y=20 x=$y
echo $x $y
输出:x=10 y=20
2.read
语法:read[-pt]变量名
功能:读取来自键盘输入的变量
可选项
-p:后面可以接提示信息
-t:后面可以接等待的秒数,为了防止一直等待用户
eg:
1.让用户通过键盘输入内容,将内容改成atest变量
输入:read atest
输出:this is a test
输入:echo $atset
输出:this is a test
2.提示用户30秒内输入自己的名字,将该输入字符串做成name变量
输入:read -p “shuchu:” -t 30 named(named 为变量名)
结果:shuchu:szj
输入:echo $named
输出: szj