ctrl+c 取消命令
ctrl+k 删除光标到尾的命令
ctrl+u 删除光标到首的命令
ctrl+a 光标命令首
ctrl+e 光标命令尾
ctrl+l 清屏
文件名匹配:
* .mp3 2.mp3,sul.mp4
?
[],[abc]d.mp3,ad.mp3,abd.mp3
[0-9]
[a-z]
[A-Z]
[[:alpha:]]b.mp3 7b.mp3
[:lower:],[:upper:],[:digit:],[:alnum:],[:punct:],[:space:]
ab?d.mp3 abd.mp3,abcd.mp3,abccd.mp3
rm -f *.doc
ls ab*ab
file a
ls ~redhat
touch {a,b}_{c,d}
cat:
-n:显示
bash,
shell,应用程序,提供用户作为系统接口
bash:
本地变量 NAME=Jerry unset NAME
环境变量 可以为进程和子进程使用
位置参数变量
特殊变量,$? echo $?
引用:取变量值,“”,‘’,``,
"": 弱引用
‘’: 强引用
``: 命令引用
echo
变量替换
$var,${var}
‘’强引用中变量替换不会发生
export,导出,输出
readonly NAME 命为常量
env 显示环境变量
printenv
HISTSIZE,HSTFILE,HISTFILESIZE,HISTCONTROL
PS1:
PS2:
PS3:
PS4:
LANG
命令别名:
alias cdnet='cd /etc/sysconfig/nework-scripts'
alias mntcd='mount /dev/cdrom /media/cdrom'
alias rm='rm -i'
unalias cdnet
#!/bin/bash
Linux ,# a.sh
echo "1+1" | bc
echo "scale=4;2/6" | bc
交互式:
profile <--环境变量的定义
非交互式:
bashrc <--别名等的定义
/etc/profile --> /etc/profile.d/* --> ~/.bash_profile -->~/.bashrc -->/etc/bashrc
~/.bashrc -->/etc/bashrc--> /etc/profile.d/*
程序,(代码,数据)
文件句柄,handle,文件描述符
标准输入:keyboard,0
标准输出:monitor,1
标准错误输出:monitor,2
I/O重定向:
>文件原有内容被覆盖掉set -C拒绝覆盖
2>
&>错误正确都放到一个文件中
>|强行覆盖
<
>>追加
<<here document
2〉&1
&>
管道
echo abcd | tr 'a-z' 'A-Z'
ls /etc > /tmp/a.out
ls /var >> /tmp/a.out
ls /home >> /tmp/a.out
exec 3> /tmp/a.out
ls /etc >&3
exec 3>&- 关闭
cat :dump
more,less
head,tail
head -n 20
tail -f显示新内容
grep:全面搜索正则表达式,并打印之
grep [options] 'pattern' filename
egrep = grep -E
fgrep = grep -F