linux 基础 (shell)

Shell脚本:

shell是linux的内核解释器。

bourne shell 一般的.sh。sh\ksh\Bash\psh\zsh

C shell 一般用在BSD( BerkeleySoftwareDistribution)版的unix。csh\tcsh

vi /etc/shells 查看可以支持的shell版本

 

echo -e :支持反斜线转义符。\0nn八进制。\xhh十六进制。

vi helloworld.sh

#!/bin/bash

#The first program

#Author

echo -e "Hellow World"

中间有空格需要加引号,如果没有可以不加引号。如果加!,需要使用单引号。

 

运行shell脚本:

第一种:

chmod 755 helloword.sh

./helloword.sh

第二种:

bash helloword.sh

 

如果在Windows编辑后,需要在linux下再转,dos2unix,unix2dos。

 

 

history -cw 历史保存文件:清空历史,把缓存中的写入保存文件。保存文件:/home/.bash_history。

vim etc/profile来管理环境变量,hissize调整。!n重复执行第n条命令。

 

 

命令别名:alias 别名='原始名'

执行顺序:绝对路径或相对路径》执行别名》bash内部命令》环境变量(echo $path)

永久生效别名:vi /root/.bashrc 参考文件内例子

 

bash快捷键:ctrl+l 清屏幕;ctrl+u 删除或剪切光标之前的命令;ctrl+y 粘贴;ctrl+0退出当前终端;ctrl+r 查找历史命令,可以直接回车;

 

键盘:/dev/stdin 文件描述 0

显示器:/dev/sdtout 文件描述 1

错误输出显示器:/dev/sdterr 文件描述 2

 

输出重定向:命令>文件(覆盖)命令>>文件(追加)错误命令 2>文件

 

错误命令同时输出到文件:命令 >> 文件 2>&1;命令 &>>文件

错误命令分别输出到文件:命令 >>文件1 2>>文件2

不看到命令输出数据:命令 &>/dev/null

 

输入重定向:wc -cwl:统计字节数,统计单词数,统计行数。

 

命令 ; 命令:两个命令没有关系。

命令 && 命令:逻辑与。

命令 || 命令:逻辑或。命令1正确,或者命令2正确,就可以执行。

 

date ; dd if=输入文件 of=输出文件 bs=每次字节数 count=总共写多少个数 ; date:磁盘对拷命令。最后可以输出从开始到最后时间差。

 

命令1 | 命令2:命令1正确输出,作为命令2的操作对象。

 

| grep -inv :忽略大小写,输出行号,反向查找。

| grep --color=auto :输出颜色。

 

通配符:?匹配一个字符,*匹配多个字符,[]匹配中括号当中的一个字符,[-]匹配中括号当中的范围,[^]匹配中括号当中非字符。

rm -rf * 删除所在目录下所有文件。

ls ?ab 显示?ab文件。

 

位置参数变量和预定义变量都是较小不易更改的变量。

本地变量:

name="name"

aa=123

aa="$aa"456 or aa=${aa}456

echo $aa 打印123456

 

set 查看系统内所有变量

unset name 删除变量

 

设置环境变量:

csh #进入 c shell

exit #退出

bash #进入b shell

pstree #确定进程树

 

export 变量名=变量值 #申明变量

env #(environment)查看变量

unset 变量名 #删除变量

 

系统变量:

echo $PATH

PATH="$PATH":/root/sh #变量叠加,临时生效

 

echo $PS1 #显示系统提示符的变量[root@localhost src]# 

 

位置参数变量

$n : $0是命令本身,$1-10是第一个到第九个参数,十以上的数字需要这么写${10}。

e.g :#!/bin/bash

echo $0 #本身

echo $1 #第一个参数

 

$*:代表命令中所有参数,只不过把所有参数看成一个,顺序循环一次。

$@:代表命令中所有参数,只不过把每个参数区分看,顺序循环多次。

e.g.:#!/bin/bash

for x in "$*"

    do

        echo $x

    done

for y in "$@"

    do

        echo $y

    done

$#:计算参数的个数

 

预定义变量

$?:判断上一个命令是否为0,如果不为0就是报错

$$:当前运行的进程号(PID)

$!:后台运行最后一个的进程号(PID)

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值