linux文件名变量,文件名通配符、变量以及管道知识点的总结

1.在命令行下:

ctrl +a  快速移动到首字母

ctrl +e   快速移动到行尾

ctrl +左右箭头,每次移动一个单词

ctrl + k 删除当前光标到命令行尾部的命令

ctrl +u   删除光标到 到行首

set -o vi  使用vi编辑器

ctrl +l 清屏=clear

2.文件名通配符

*  大于等于零任意字符  如:ab*d.mp3 abd.mp3,abcd.mp3,abccd.mp3都可以匹配

? 任意一个字符        如:ab?d.mp3 abd.mp3[不匹配],abcd.mp3[匹配],abccd.mp3[不匹配]

[ ]  指定范围,只能从中选择一个 如: [abc]d.mp3 ad.mp3,bd.mp3,cd.mp3

[:alpha:] 表示所有大小写字母

[:lower:] 所有小写字母

[:upper:] 所有大写字母

[:digit:]0-9的数字

[:alnum:]既包含小写字母,又包含大写字母,还包含0-9数字

[:punct:]所有标点符号

[:space:]空白字符(空格键,Tab键)

注意:使用它它们必须再加[ ],如:[[:alpha:]]b.mp3=[a-zA-Z0-9]

3.命令行展开:

1)~

ls ~   当前用户家目录

ls ~redhat   redhat 家目录

2){ }:touch {a,b}_{1,2} 即a_1,b_1,a_2,b_2

4.shell发展史

shell,bsh(sh)标准shell, 没有命令补齐功能,历史查询功能也差,由bourn创建 bsh

Bill Joy :csh-->tcsh

Korn: ksh ,GNU ksh

bourn again shell(对bsh的又一次开发):bash   遵循GPL

zsh

cat /etc/shells  显示当前系统可用shell

3)打开非系统默认shell,切换shell

直接输入想要打开的shell即可,如:在命令行直接输入ksh 使用exit退出ksh

shell,一个应用程序,提供用户作为系统接口

4)软件编程两大类:

编译类:源代码-->目标代码(编译器) c c++

脚本类:源代码,(解释器,bash),perl 5.8 面向过程(难懂),python(面向对象),ruby(on rail),shell

5.变量:(容器)命名的内存空间

1)在脚本中,一般都是不分类型,都为char

2)bash:

本地变量:局部变量,只对之前文件或者函数有效

环境变量:可以被其他程序使用,可以被一个进程或子进程共享

位置参数变量:引用脚本的一个参数所而使用的

特殊变量:引用脚本运行过程中系统某些状态的值, $?上一个命令运行的状态,

echo $? 判断上一个命令正确还是错误,如果结果显示0,则上一个命令运行正确,非0的数为命令运行错误

3)声明变量:NAME=Jerry

set class=3

unset class  撤销变量

4)引用:取变量值

A)" " 弱引用        echo "$变量名"  如:声明变量:NAME=Jerry

echo "$NAME"

echo "$NAME\n"     输出结果为Jerry\n

echo -e  "$NAME\n" 输出结果为Jerry

B)' ' 强引用  echo ‘$NAME’  输出结果$NAME

C)`` (反引号):命令引用 将命令的执行结果赋值给某个变量

FILE=`ls /root`或者 $(ls /root)

echo $FILE

cp /etc/fstab /root/fstab-`date +"%H+%M+%S"`

5)环境变量:变量名称规则(字母开头,字母数字下划线)

导出变量:export

set显示所有变量

export显示本地环境变量

env 显示环境变量(只在某个定制的环境中使用)

printenv 显示环境变量,一个或者部分

NAME=Jerry

readonly NAME(设置为只读,不能撤销,变化)

unset NAME 取消变量,注意不加$

PS1:提示符的设置  echo $PS1 显示当前提示符[\u@\h \W]\$

\u:目前用户的帐号名称

\h:仅取主机名在第一个小数点之前的名字

\H:完整的主机名

\t:显示时间,24小时格式“HH:MM:SS”

\w:完整的工作目录名称,由根目录写起的目录名称;主文件夹以~代替

\W:利用basename取得工作目录名称,仅会列出最后一个目录名

\$提示符 如果为root,提示符为#,其他为$

颜色修改:export PS1='\033[31\root\033[0m'  给root加颜色

修改后进行恢复:export PS1='[\u@\h\W]\$'

export将变量变成环境变量

locale显示语言区

6)特殊变量:

echo  $? 显示上次命令状态

1-255 上次命令失败

0   成功

echo $$ 显示当前进程号

6.命令别名:

alias cdnet='cd /etc/sysconfig/network-scripts'

alias 显示所有别名

unalias cdnet 取消命令别名

echo *.txt 能过匹配到以.txt结尾的所有文件都显示

echo *.ttx  匹配不到直接显示*.ttx

touch \*.txt  创建一个*.txt 的文件,需要\进行转义   (反斜杠,转义)

7.写脚本文件

#!/bin/bash(指明解释器)

set -x   (调试显示)

set +x   (结束调试)

chmod u+x a.sh 赋予执行权限

./a.sh 执行

或者直接bash a.sh

bash -x a.sh(执行并调试)

#!/bin/bash

SUM=$(($1+$2))

echo $SUM

chmod u+x c.sh

./c.sh 1 2

8.管道:

echo "1+1" | bc (通过管道将1+1传给bc进行计算)

echo "scale=4(精度的设置,显示四位小数);3/4"|bc

9.交互式:

profile

读取顺序:/etc/profile->/etc/profile.d/*->~/.bash_profile->~/.bashrc->/etc/bashrc

非交互式:bashrc

读取顺序:

~/.bashrc->/etc/bashrc->/etc/profile.d/*

source .bashrc  (. .bashrc)重新读取文件

11.1)文件句柄,handle,文件描述符(0-9)

标准输入:keyboard, 0

标准输出:monitor(显示器),1

标准错误输出:monitor,2

2)I/O重定向:

> 输入 ls /etc > /tmp/ls.out (不显示,保存在文件当中)

< 输出

1>标准输出重定向

2>标准错误输出重定向 ls /ect(错误) > /tmp/ls.out 会显示错误提示信息

ls /ect  2> /tmp/ls.out

&>标出输出和标准错误输出重定向 ls /etc &> /tmp/ls.out3

set -C  拒绝信息覆盖(    >|强行覆盖   )

set +C  取消拒绝覆盖

3)>>追加重定向,文件原有内容不会覆盖

2>>追加标准错误输出重定向

<< here document在脚本当中生成文件

如:cat >>/tmp/my.txt <

#!/bin/bash

cat >> /tmp/my.txt<

This is my file.

EOF

4).ls /etc/ > /tmp/ls.correct 2> /tmp/ls.error(ls /etc/如果该命令执行

正确就放在/tmp/ls.correct,错误就放在/tmp/ls.error)

&1 与 &> 一样

ls /etc/ > /tmp/ls.correct 2>$1(正确信息放在/tmp/ls.correct中,

错误信息还放在/tmp/ls.correct)

5)tr 'a-z' 'A-Z'  (替换命令)  把所有的小写字母换成大写字母

echo 'abcd'| tr 'a-z' 'A-Z'  将‘abcd’转换成大写‘ABCD’

tee

echo 'abcd'| tee /tmp/tee.out | tr 'a-z' 'A-Z'将‘abcd’先保存在/tmp/tee.out,

再转换成大写‘ABCD’

exec 3> /tmp/custom.out 定义文件标识符

ls /etc >&3    (把结果写入/tmp/custom.out)

exec 3>&-    关闭文件标识符(用完之后一定要关闭,不然就一直打开状态,占资源)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值