一、
1、命令行编辑(emas风格和vi风格)
ctrl+a (moves to beginning of line)
ctrl+e (moves to end of line)
ctrl+u (deletes to begining of line)
ctrl+k (deletes to end of line)
ctrl+<-或-> (一次移动一个单词)
ctrl+l (=clear)清屏
命令行编辑模式,默认为emacs,变为vi风格:
set -o vi
2、File Globbing文件名通配
* 匹配任意个/长字符 >=0
?匹配任意单个字符 =1
[]指定范围内任意单个字符 =1 如:[abc]
[0-9]数字
[a-z]小写字母
[A-Z]大写字母
CHARATER CLASS
[:alpha:]=[a-zA-Z](字母表)charaters in a predefined charater class can be matched
[:upper:]=[A-Z]
[:lower:]=[a-z]
[:digit:]=[0-9]
[:alnum:]=[a-zA-Z0-9]
[:punct:]标点符号[:space:]空格
[^abc]matches any one character except those in the list
引用,如:[[:alpha:]]
file 查看文件内容类型
~当前用户家目录 如:ls ~redhat
{} 如:touch {a,b}_{c,d}
二、
shell:
bsh(sh) 以前标准默认shell(bourn于bell实验室开发)目前unix默认
csh(Bill Joy编写)改进bsh,但麻烦
ksh(Korn)非免费----》GNU ksh
bash(bourn again shell)GPL目前默认shell
zsh功能更强大先进,体积大
软件编程:
编译类:源代码-->目标代码,c,c++,JAVA -------速度快,面向程序,操作系统
脚本类:源代码---解释器,bash(本身是编译类)---速度慢,面向应用
perl、python(完全面向对象,构建大型应用)、ruby(on rail)构建web应用
注:cat一次显示一个或多个文件内容(不带参数,将输入内容显示出来)
-n显示行号
-v显示非打印字符,如回车
如:cat /etc/shells查看当前系统所有可用shell总类
切换shell:
which ksh 查看ksh在哪
ksh 切换到ksh
exit 退出ksh
三、
变量(命名的内存空间)
变量类型:int(4B) float char 等。
bash:本地变量(局部)
环境变量(共享)export NAME导出变量,为环境变量
位置参数变量,如:$1
特殊变量,如:echo $? echo $$ 当前进程号
NAME=jay
set CLASS=3
unset CLASS撤销
readonly不可撤销变量
NAME=jay
readonly NAME
引用:取变量值,“”弱引用(变量替换),‘’强引用(不做变量替换),``命令引用(反引号)
如:echo “$NAME” (自动换行)
printf “%s\n” $NAME
\t制表符
规范化:echo ${ANIMAL} echo ${ANIMAL}s
FILE=`ls /var` 或 FILE=$(ls /var)
echo $FILE
cp /etc/fstab /root/fstab-`date +"%H-%M-%S"`
set显示本地及环境变量
export显示本地变量
env显示本地变量env PATH=/bin ls在独特环境下,在定制环境下
printenv
5、PS1:用来显示[root@localhost ~]# echo $PS1--->[\u@\h \w]\$ 宏替换 man bash /PS1
\W 基名 (basename /etc/passwd取基名) \w \h \H \t \u \! \$ 如:export PS1='\033[31m\u\033[0m-\t \!\$' 效果为:root-1515:43:19 99#(root为红色,只有基准色:红澄黄绿青蓝紫可这样表示)
PS2:\续航符
PS3:
PS4:
PATH:
DISPLAY---定义显示信息的显示位置
HOSTNAME
LANG默认语音区locale
OLDPWD 如:cd -
PWD
SHELL
TERM
USER
四、命令别名:(当前生效,重启或l退出当前shell都会失效,编辑环境配置文件可永久生效)
alias cdnet='cd /etc/sysconfig/network-scripts'
alias 显示当前系统命令别名
unlias cdnet 撤销
五、set -x 脚本中追踪调试执行
set +x关闭
或 命令行 bash -x a.sh不需执行权限也可执行
六、算术运算
$(($1+$2))或$[$1+$2]
如:echo "scale=4;1/3"|bc
七、定义环境变量文件:
系统设置/etc/profile /etc/profile.d/* /etc/bashrc
用户设置~/.bash_profile ~/.bashrc (~/.bash_history ~/.bash_logout)
注:profile登录用户设定,交互式 (环境变量定义) ,如root登录
bashrc非登陆用户设定,非交互式 (别名等的定义),如脚本
交互式/etc/profile--->/etc/profile.d/*--->~/.bash_profile--->~/.bashrc--->/etc/bashrc
非交互式~/.bashrc--->/etc/bashrc--->/etc/profile.d/*
source .bashrc或. .bashrc
八、I/O
1、总线:BUS,PCI,ISA,EISA,AGP,USB 桥
程序(代码,数据)
文件句柄(handle),文件描述符 0-9
标准输入 0
标准输出 1
标准错误输出 2
I/O重定向:
1)覆盖重定向:
0<
1> 2>
&> 无论对错输出都重定向=2>&1
2)追加重定向:
(set -C 拒绝信息覆盖
set +C 允许覆盖
>|强行覆盖)
>>追加
<<here document cat >> /tmp/my.txt << EOF
ls /etc/ > /tmp/ls.correct 2> /tmp/ls.error
2、管道 |
command | command | command
最后一个命令在子shell中运行,变量引用需注意
tr 'a-z' 'A-Z'
tee 如:echo 'abcd' | tee /tmp/tee.out | tr 'a-z' 'A-Z'
自定义文件描述符,不用必须关闭,占用内存空间
exec 3> /tmp/3.out
ls /etc/ >&3
cat /tmp/3.out
关闭:exec 3>&-