沈超+shell课件_shell学习1

博客已搬家,点击进入新博客:

1.shell第一讲

沈超主讲,微博:weibo.com/lampsc

shell简介:

命令解释器

linux下默认shell是bash,路径是/bin/bash,是标准shell

sh 是早期shell,比较简单

csh ksh tcsh是unix shell上常用的shell。

/etc/shells 显示linux支持的shell列表

键入csh,进入csh,exit退出这个shell。

shell脚本

脚本以#! /bin/bash 表示以下代码用bash执行

#是shell的注释

----第一个脚本,打印hello world----

#!/bin/bash

echo "Hello World."

-----------------------------------

需要赋予执行权限 chmod u+x filename

执行shell的第一种方式:绝对路径执行,如 ./echo.sh

第二种:bash echo.sh

bash功能

history 显示之前执行的命令,命令保存的数量,在配置文件/etc/profile下保存 HISTSIZE=1000。

历史命令保存的位置在用户的家目录下的.bash_history文件内。

history -w 将内存中的命令(目前用的)保存到文件,因为只有退出shell后,你敲入的命令才会保存进文件。

history -c 清空所有历史记录

!n 执行第n条历史命令

!str 重复最后一个以str开头的命令

方向箭头 调用前面的命令

别名

alias 查看系统中生效的别名

alias ls = "ls --color=never" 临时定义别名

家目录/.bashcrc 下定义别名,使别名永久生效

rm -i 删除时询问(-i)

输入输出重定向

·······················文件名              文件描述符            默认设备

标准输入            /dev/stdin                   0                          键盘

标准输出            /dev/stdout                 1                         显示器

标准错误输出    /dev/stderr                  2                         显示器

输出重定向:改变输出方向,比如输入到文件

> 覆盖输出 ls >ls.txt ls输出的内容写入ls.txt文件,如果之前有文件,会覆盖

>> 追加到文件

如果一条命令执行的时候有错误怎么办?把错误输入到一个文件,如:ls sfsfs 2>>err.txt #会把错误信息输出到err.txt文件

ls &>out.txt 错误的和正确的都会输出到out.txt,新版本shell可以追加进文件。

ls . >>a 2>>b #将正确的输出到a文件,错误信息输出到b文件

ls >> aa 2>&1 #错误和正确文件都输入到aa,2>&1 把标准错误重定向到标准正确输出

多命令顺序执行

cmd1;cmd2;cmd3 顺序执行,之间没有关系

cmd1 && cmd2  cmd1正确执行,cmd2才执行

cmd1 || cmd2 cmd1不正确执行,cmd2才执行

ls aa && echo "yes" || echo "no" #ls正确执行,输出yes,否则输出no

管道符 |,命令1 | 命令2 命令1的执行结果,作为命令2的执行条件

netstat -tlun | grep 80 #查看80端口

ls -l /etc/ | more #分屏显示第一个命令的结果

错误输出,不能有空格

变量

分类:本地变量,环境变量,位置参数变量,预

定义变量

shell把所有变量都识别成字符串型

本地变量:

a=123 #不能有空格

echo $a #打印a的内容

echo Hello #打印出Hello

set 查看本地和环境变量

unset a 删除a变量

变量设定规则:

以=相接,不能有空格

变量值有空格,则用双引号包裹

双引号能解析变量,类似PHP,如echo "$a" 输出"123",单引号不解析

cc = `ls /root` 将ls /root的结果赋值给cc

cc=$(ls /root) 与上面一样

a=123

a="$a"456

echo $a 123456

环境变量一定为大写

pstree命令

本地变量只在当前shell中有效,环境变量在每个shell中都有效

如何设置环境变量呢?

export 变量名,如

export a 或 export b=100

env export只能查看环境变量

export可以查看变量的类型

declare 声明变量类型,如果没特别声明,则默认为是字符串类型

declare -i 声明int类型

-x 声明为环境变量

比较重要的环境变量是PATH,它是程序查找的路径

echo $PATH

增加当前路径到PATH

PATH="$PATH":/home/code

增加/home/code到PATH变量

环境变量配置文件:

对所有用户有效:

/etc/profile

/etc/bashrc

对当前用户有效

~/.bashrc

~/.bash_profile

博客已搬家,点击进入新博客:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值